图搜索策略
搜索的过程实际上就是转化为在状态空间图上寻找一条从初识节点到目标节点的路径。
盲目搜索
BFS 宽度优先搜索
DFS 深度优先搜索
UCS 一致代价搜索(又名Dijkstra算法,由BFS拓展而来)
DFS遍历到目标节点就结束,因此找到的不一定是最短的路线,但BFS(适用于没有权重路径的移动过程)、UCS每次用最短的进行下一次更新,为最短路算法,三个算法均不需要遍历所有节点。
DFS使用递归可以遍历所有到达目标节点的路线,但要遍历所有节点,耗时间。使用回溯法输出所有路线。
UCS目标就是找最短的,没有更短即停止,可以输出所有到达目标的最短路线,但不一定遍历所有节点。以第一组输出的结果为最优,评价后面的输出是否也是最优。
它们的缺点就是:盲目。效率低,耗费过多的计算空间和时间。
两节点之间的权重为1的UCS等价于BFS。
启发式搜索
有序搜索
A*算法
在盲目搜索的基础上,在下一次更新前,会对节点表进行一个排序,使用估价函数去评价。
它们的目标明确,迅速找出一条最优路线,效率高。
想要输出多种路线,可以使用递归,以第一组输出的结果为最优,评价后面的输出是否也是最优。
后面再补充~