本文主要是介绍人工智能 —— 代价树的盲目搜索,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
代价树的代价
用g(n)表示从初始结点S0到结点n的代价,用c(n, n1)表示从父结点n到其子结点n1的代价。这样,对结点n1的代价有:
- g(n1)=g(n)+c(n, n1)。
代价树搜索的目的是为了找到最佳解,即找到一条代价最小的解路径。
代价树的广度优先搜索算法
(1)搜索算法的过程
- 把初始结点S0放入Open表中,置S0的代价g(S0)=0;
- 如果Open表为空,则问题无解 ,失败退出;
- 把Open表的第一个结点取出放入Closed表,并记该结点为n;
- 考察结点n是否为目标。若是,则找到了问题的解,成功退出;
- 若结点n不可扩展,则转第(2)步;
- 扩展结点n,生成其子结点ni(i=1, 2, …),将这些子结点放入Open表中,并为每一个子结点设置指向父结点的指针。
- 按如下公式:g(ni)=g (n) +c (n , ni) i=1,2,…,计算各子结点的代价,并根据各子结点的代价对Open表中的全部结点按由小到大的顺序排序。然后转第(2)步。
(2)广度优先搜索实例
这篇关于人工智能 —— 代价树的盲目搜索的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!