盲目搜索算法 您所在的位置:网站首页 excel选定范围跳着选 盲目搜索算法

盲目搜索算法

#盲目搜索算法| 来源: 网络整理| 查看: 265

盲目搜索算法指的是不使用领域知识的不知情搜索算法。主要包括三种算法:深度优先搜索(DFS)、广度优先搜索(BFS)和迭代加深(DFS-ID)的深度优先搜索。

è¿éåå¾çæè¿°

深度优先搜索:1->2->3  1->2->4->5 1->6->7 1->6->8

广度优先搜索:1->2 1->6 1->2->3 1->2->4 1->6->7 1->6->8 1->2->4->5

每种搜索算法都有一个共同属性,即维护两个列表:开放列表(OPEN)和封闭列表(CLOSE)。

开放列表:包含树中所有等待搜索(或扩展)的节点 。

封闭列表:包含所有已经探索过的节点和不再考虑的节点。

深度优先搜索是用栈表示开放列表,栈是先进后出的数据结构。

广度优先搜索是用队列表示开放列表,队列是先进先出的数据结构。

以上图为例,假设5是终点

深度优先搜索:

Open=[1];                          Closed=[]

Open=[2,6];                       Closed=[1]

Open=[3,4,6];                    Closed=[2,1]

Open=[4,6];                       Closed=[3,2,1]

Open=[5,6];                       Closed=[4,3,2,1]

广度优先搜索:

Open=[1];                          Closed=[]

Open=[2,6];                       Closed=[1]

Open=[6,3,4];                    Closed=[2,1]

Open=[3,4,7,8];                 Closed=[6,2,1]

Open=[4,7,8];                    Closed=[3,6,2,1]

Open=[7,8,5];                    Closed=[4,3,6,2,1]

Open=[8,5];                       Closed=[7,4,3,6,2,1]

Open=[5];                          Closed=[8,7,4,3,6,2,1]

 

选深度优先搜索还是广度优先搜索?

当树很深、分支因子不大、在树中解出现的位置相对较深时,选择深度优先搜索。

当搜索树的分支因子不太大、在树中解出现的位置在合理的深度级别、路径不是非常深的时候,选择广度优先搜索。

 

迭代加深的深度优先搜索(DFS-ID)

DFS-ID使用深度界限零,执行DFS的状态空间。

以上图为例:

DFS-ID:1->2 1->6 2->3 2->4->5 6->7 6->8 4->5

使用DFS-ID若没有找到目标,就会执行另一个DFS,深度界限为1,每次迭代深度界限加1,搜索都要重新开始。

 

总结

BFS是完备和优选的(在各种约束下),但过量的空间需求使其在应用上受到阻碍。

DFS既不是完备也不是优选的,DFS可能变得非常长或迷失在无限的路径中,但是空间需求合理。

DFS-ID同时具备DFS和BFS的有利性,即DFS的合理空间以及BFS的完备和优选。

 

 

 

 

 

 

 

 

 

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有