经过不知道多少天的百度,今天终于看懂A*算法了;

A*算法:

(1)生成一个仅包含开始节点n0搜索树Tr。把n0放在一个称为open的有序列表中

(2)生成一个初始值为空的列表CLOSED

(3)如果open为空,则失败退出

(4)选出open中的第一个节点,并将它从open中移除,放入closed中,称为该节点为n

(5)如果n是目标节点,顺着Tr中的父节点回溯到n0找到一条路径,获得解决方案,则成功退出。否则(6)

(6)扩展节点n,生成n的后继结点集M,通过在Tr中建立从n到M中的每个成员的弧生成n的后继(如果n的节点中有在closed表中,依然进行评价,并与closed表中相应的评价相比较,如果当前评价要低则将其放入open表中,必修改相应的father节点信息)

(7)open表排序

(8)重复(3)

大致思路如此。。。。