什么是图搜索过程?其中,重排 OPEN 表意味着什么,
什么是图搜索过程?其中,重排 OPEN 表意味着什么,重排的原则是什么?
图搜索的一般过程如下: (1) 建立一个搜索图 G(初始只含有起始节点 S),把 S 放到未扩展节点表中(OPEN 表)中。 (2) 建立一个已扩展节点表(CLOSED 表),其初始为空表。 (3) LOOP:若 OPEN 表是空表,则失败退出。 (4) 选择 OPEN 表上的第一个节点,把它从 OPEN 表移出并放进 CLOSED 表中。称此节点为节点 n,它是 CLOSED 表中节点的编号 (5) 若 n 为一目标节点,则有解并成功退出。此解是追踪图 G 中沿着指针从 n 到S 这条路径而得到的(指针将在第 7 步中设置) (6) 扩展节点 n,生成不是 n 的祖先的那些后继节点的集合 M。将 M 添入图 G 中。 (7) 对那些未曾在 G 中出现过的(既未曾在 OPEN 表上或 CLOSED 表上出现过的)M 成员设置一个通向 n 的指针,并将它们加进 OPEN 表。对已经在 OPEN 或 CLOSED 表上的每个 M 成员,确定是否需要更改通到 n的指针方向。对已在 CLOSED 表上的每个M 成员,确定是否需要更改图 G 中通向它的每个后裔节点的指针方向。 (8) 按某一任意方式或按某个探试值,重排 OPEN 表。 (9) GO LOOP。重排 OPEN 表意味着,在第(6)步中,将优先扩展哪个节点不同的排序标准,对应着不同的搜索策略。重排的原则当视具体需求而定,不同的原则对应着不同的搜索策略,如果想尽快地找到一个解,则应当将最有可能达到目标节点的那些节点排在 OPEN 表的前面部分,如果想找到代价最小的解,则应当按代价从小到大的顺序重排OPEN 表。