宽度优先搜索与深度优先搜索有何不同?在何种情况下 宽度优先搜索优于深度优先搜索?在何种情况下
宽度优先搜索与深度优先搜索有何不同?在何种情况下,宽度优先搜索优于深度优先搜索?在何种情况下,深度优先搜索优于宽度优先搜索?
请帮忙给出正确答案和分析,谢谢!
-
正确答案:深度优先搜索与宽度优先搜索的区别就在于:在对节点n进行扩展时其后继节点在OPEN表中的存放位置。宽度优先搜索是将后继节点放入OPEN表的末端而深度优先搜索则是将后继节点放入OPEN表的前端。即宽度优先搜索按照“先扩展出的节点先被考察”的原则进行搜索而深度优先搜索则按照“后扩展出的节点先被考察”的原则进行搜索。宽度优先搜索是一种完备搜索即只要问题有解就一定能够求出而深度优先搜索是不完备搜索。 在不要求求解速度且目标节点的层次较深的情况下宽度优先搜索优于深度优先搜索因为宽度优先搜索效率低但却一定能够求得问题的解;在要求求解速度且目标节点的层次较浅的情况下深度优先搜索优于宽度优先搜索。因为当搜索算法在一个扩展的很深但又没有解的分支上进行搜索是一种无效搜索降低了求解的效率有时甚至不一定能求得问题的解。
深度优先搜索与宽度优先搜索的区别就在于:在对节点n进行扩展时,其后继节点在OPEN表中的存放位置。宽度优先搜索是将后继节点放入OPEN表的末端,而深度优先搜索则是将后继节点放入OPEN表的前端。即宽度优先搜索按照“先扩展出的节点先被考察”的原则进行搜索,而深度优先搜索则按照“后扩展出的节点先被考察”的原则进行搜索。宽度优先搜索是一种完备搜索,即只要问题有解就一定能够求出,而深度优先搜索是不完备搜索。在不要求求解速度且目标节点的层次较深的情况下,宽度优先搜索优于深度优先搜索,因为宽度优先搜索效率低,但却一定能够求得问题的解;在要求求解速度且目标节点的层次较浅的情况下,深度优先搜索优于宽度优先搜索。因为当搜索算法在一个扩展的很深但又没有解的分支上,进行搜索是一种无效搜索,降低了求解的效率,有时甚至不一定能求得问题的解。
