题目
31.判断题(1分)在图搜索算法中,如果按估价函数f(x)=g(x)+h(x)作为Frontier中的结点排序的依据,则该算法就是深度优先算法。()A. 错B. 对
31.判断题(1分)
在图搜索算法中,如果按估价函数$f(x)=g(x)+h(x)$作为Frontier中的结点排序的依据,则该算法就是深度优先算法。()
A. 错
B. 对
题目解答
答案
A. 错
解析
本题考查图搜索算法中估价函数与不同搜索算法的关系。解题思路是明确深度优先算法的特点以及估价函数 $f(x)=g(x)+h(x)$ 在不同情况下对应的搜索算法,通过对比来判断该说法是否正确。
深度优先算法的特点
深度优先算法是一种盲目搜索算法,它沿着树的深度遍历树的节点,尽可能深的搜索树的分支。在搜索过程中,它总是优先扩展最新生成的(即最深的)节点,不考虑节点的代价等因素。
估价函数 $f(x)=g(x)+h(x)$ 的含义
- $g(x)$ 表示从初始节点到节点 $x$ 已经实际付出的代价。
- $h(x)$ 是从节点 $x$ 到目标节点的估计代价。
- $f(x)$ 是对从初始节点经过节点 $x$ 到目标节点的总代价的估计。
不同搜索算法与估价函数的关系
- 当 $h(x)=0$ 时,$f(x)=g(x)$,此时估价函数只考虑从初始节点到当前节点的实际代价,这种情况下算法是广度优先搜索算法,因为它会优先扩展距离初始节点最近的节点。
- 当 $h(x)$ 是一个合理的启发式函数时,该算法是启发式搜索算法,如 A* 算法,它会综合考虑已付出的代价和到目标节点的估计代价来选择下一个扩展的节点。
而深度优先算法并不使用这样的估价函数来对 Frontier 中的节点进行排序,它只关注节点的深度,优先扩展最深的节点。所以“在图搜索算法中,如果按估价函数 $f(x)=g(x)+h(x)$ 作为 Frontier 中的结点排序的依据,则该算法就是深度优先算法”这一说法是错误的。