5.4.1 A* 算法搜索步骤
2025年09月20日
5.4.1 A
* 算法搜索步骤
A* 算法的搜索主要设置两个数据集,OPEN集和CLOSED集。其中,OPEN集中主要存储未考察的节点,而CLOSED集中则记录已考察(已访问)的节点。每个节点还包含一个指针,指向其父节点,以确定节点生成的次序。初始状态下,OPEN集中仅包含一个元素:起始点,而CLOSED集为空。具体如下:
step1:初始化OPEN集和CLOSED集,把起始节点加入OPEN集,将所有的障碍节点加入CLOSED集;
step2:寻找OPEN集中f(n)值最小的节点,作为当前节点;
step3:将当前节点从OPEN集中删除并加入CLOSED集;
step4:寻找相邻可通过的下一个节点,如果该节点已经在CLOSED集中,则跳过该节点不考虑,否则将该点加入到OPEN 集,并把当前节点作为它的父节点,计算该节点的f(n),选择最小值节点;
step5:将选择的节点加入CLOSED集中,并将其从OPEN集中移除,若该节点为目标点,则搜索结束;
step6:若OPEN集非空,则转到step3继续执行。
根据以上步骤,当A* 搜索结束时,若OPEN集为空,则可能获得一条路径,也可能搜索不到结果;若OPEN集非空,则必然找到了一条路径,表示搜索成功。如果搜索成功,A* 算法需要确定这一条路径:根据父节点指针,从最后一个节点开始顺次往前回溯以获得这条路径。