深度优先搜索是什么

深度优先搜索是一种在开发爬虫早期使用较多的方法。它的目的是要达到被搜索结构的叶结点(即那些不包含任何超链的HTML文件) 。

深度优先搜索是一种在开发爬虫早期使用较多的方法。它的目的是要达到被搜索结构的叶结点(即那些不包含任何超链的 HTML 文件) 。在一个 HTML 文件中,当一个超链被选择后,被链接的 HTML 文件将执行深度优先搜索,即在搜索其余的超链结果之前必须先完整地搜索单独的一条链。深度优先搜索沿着 HTML 文件上的超链走到不能再深入为止,然后返回到某一个 HTML 文件,再继续选择该 HTML 文件中的其他超链。当不再有其他超链可选择时,说明搜索已经结束。

深度优先搜索是什么

详细解释

事实上,深度优先搜索属于图算法的一种,英文缩写为 DFS 即 Depth First Search.其过程简要来说是对每一个可能的分支路径深入到不能再深入为止,而且每个节点只能访问一次.

举例说明之:下图是一个无向图,如果我们从 A 点发起深度优先搜索(以下的访问次序并不是唯一的,第二个点既可以是 B 也可以是 C,D),则我们可能得到如下的一个访问过程:A->B->E(没有路了!回溯到 A)->C->F->H->G->D(没有路,最终回溯到 A,A 也没有未访问的相邻节点,本次搜索结束).

简要说明深度优先搜索的特点:每次深度优先搜索的结果必然是图的一个连通分量.深度优先搜索可以从多点发起.如果将每个节点在深度优先搜索过程中的”结束时间”排序(具体做法是创建一个 list,然后在每个节点的相邻节点都已被访问的情况下,将该节点加入 list 结尾,然后逆转整个链表),则我们可以得到所谓的”拓扑排序”,即 topological sort.

基本思路

深度优先遍历图的方法是,从图中某顶点 v 出发:

(1)访问顶点 v;

(2)依次从 v 的未被访问的邻接点出发,对图进行深度优先遍历;直至图中和 v 有路径相通的顶点都被访问;

(3)若此时图中尚有顶点未被访问,则从一个未被访问的顶点出发,重新进行深度优先遍历,直到图中所有顶点均被访问过为止。 当然,当人们刚刚掌握深度优先搜索的时候常常用它来走迷宫.事实上我们还有别的方法,那就是广度优先搜索(BFS).

穷举

在我们遇到的一些问题当中,有些问题我们不能够确切的找出数学模型,即找不出一种直接求解的方法,解决这一类问题,我们一般采用搜索的方法解决。搜索就是用问题的所有可能去试探,按照一定的顺序、规则,不断去试探,直到找到问题的解,试完了也没有找到解,那就是无解,试探时一定要试探完所有的情况(实际上就是穷举);

对于问题的第一个状态,叫初始状态,要求的状态叫目标状态。

搜索就是把规则应用于实始状态,在其产生的状态中,直到得到一个目标状态为止。

产生新的状态的过程叫扩展(由一个状态,应用规则,产生新状态的过程)

搜索的要点:(1)初始状态;

(2)重复产生新状态;

(3)检查新状态是否为目标,是结束,否转(2);

如果搜索是以接近起始状态的程序依次扩展状态的,叫宽度优先搜索。

如果扩展是首先扩展新产生的状态,则叫深度优先搜索。

深度优先搜索

深度优先搜索用一个数组存放产生的所有状态。

(1) 把初始状态放入数组中,设为当前状态;

(2) 扩展当前的状态,产生一个新的状态放入数组中,同时把新产生的状态设为当前状态;

(3) 判断当前状态是否和前面的重复,如果重复则回到上一个状态,产生它的另一状态;

(4) 判断当前状态是否为目标状态,如果是目标,则找到一个解答,结束算法。

(5) 如果数组为空,说明无解。

对于 pascal 语言来讲,它支持递归,在递归时可以自动实现回溯(利用局部变量)所以使用递归编写深度优先搜索程序相对简单,当然也有非递归实现的算法。

搜索是人工智能中的一种基本方法,是一项非常普遍使用的算法策略,能够解决许许多多的常见问题,在某些情况下我们很难想到高效的解法时,搜索往往是可选的唯一选择。按照标准的话来讲:搜索算法是利用计算机的高性能来有目的的穷举一个问题的部分或所有的可能情况,从而求出问题的解的一种方法。

搜索虽然简单易学易于理解,但要掌握好并写出速度快效率高优化好的程序却又相当困难,总而言之,搜索算法灵活多变,一般的框架很容易写出,但合适的优化却要根据实际情况来确定。在搜索算法中,深度优先搜索(也可以称为回溯法)是搜索算法里最简单也最常见的,今天我们就从这里讲起,下面的内容假设读者已经知道最基本的程序设计和简单的递归算法。

系统算法

所有的搜索算法从其最终的算法实现上来看,都可以划分成两个部分──控制结构和产生系统。正如前面所说的,搜索算法简而言之就是穷举所有可能情况并找到合适的答案,所以最基本的问题就是罗列出所有可能的情况,这其实就是一种产生式系统。

我们将所要解答的问题划分成若干个阶段或者步骤,当一个阶段计算完毕,下面往往有多种可选选择,所有的选择共同组成了问题的解空间,对搜索算法而言,将所有的阶段或步骤画出来就类似是树的结构(如图)。

从根开始计算,到找到位于某个节点的解,回溯法(深度优先搜索)作为最基本的搜索算法,其采用了一种“一只向下走,走不通就掉头”的思想(体会“回溯”二字),相当于采用了先根遍历的方法来构造搜索树。

上面的话可能难于理解,没关系,我们通过基本框架和例子来阐述这个算法,你会发现其中的原理非常简单自然。

(0)
时间不会说谎  的头像时间不会说谎  

相关推荐

  • 大型冷藏柜多少钱一台,市面上常见的价格区间是多少

    大型冷藏柜是商家、酒店、超市等场所常用的一种冷藏设备。它可以存储大量的食品、饮料等物品,为商家提供便捷的存储和管理。那么,大型冷藏柜多少钱一台呢?下面就来详细介绍一下市面上常见的价格区间。一、价格区间市面上大型冷藏柜的价格区间比较广泛,

    2023年10月24日
  • 荣耀 Magic6 Pro怎么取卡?

    荣耀Magic6Pro是一款支持双卡双待功能的智能手机,用户可以将两张不同运营商的SIM卡插入手机中,并同时管理两个手机号码。为了方便用户取卡,具体的取卡教程已经为大家准备好了,如果说大家不知道荣耀Magic6Pro要怎么取卡,那么

    2024年1月17日
  • 怎么做到每层楼都有无线网络,实用技巧分享

    无线网络已成为我们生活中不可或缺的一部分,但在一些多层建筑中,网络信号的覆盖却是一个难题。有时候你在楼下可以顺畅地使用网络,但当你到了楼上却发现网络信号非常弱,这时候怎么办呢?本文将为大家介绍一些实用技巧,帮助你在每层楼都拥有稳定的无线网络

    2023年10月2日
  • vivo y50值不值得购买,全面评测解答

    作为一款价格不高的手机,vivoy50在市场上备受关注。但是,很多人对它的性能和质量存在疑虑,不知道它是否值得购买。在本文中,我们将对vivoy50进行全面评测,解答这个问题。外观设计vivoy50的外观设计相当不错。它采用了6.

    2024年1月28日
  • 行程码能查到具体地址吗

    行程码页面只能看到到过的城市,不能看到具体的位置。行程码提供的位置查询服务数据来源是“手机信令数据”,通过用户手机所处的基站位置获取。手机用户可通过服务,查询本人前14天到过的所有…

  • 手机信号放大器,如何选择最适合你的信号放大器

    在现代社会,手机已经成为人们生活中必不可少的一部分。但是,有时候在某些地方,我们会遇到手机信号不好的情况。这时候,手机信号放大器就成为了一个不错的选择。但是,如何选择最适合你的信号放大器呢?在本文中,我们将为大家介绍选择手机信号放大器的几个

    2023年10月8日
  • 华为T8830G309T,该机型有哪些优点和缺点

    本文目录一览华为T8830G309T(该机型有哪些优点和缺点)优点缺点总结华为T8830G309T(该机型有哪些优点和缺点)华为T8830G309T是一款2012年发布的智能手机,当时它的配置算得上是非常不错的。在这篇文章中,我们将

    2023年11月30日
  • 中国名牌冰箱最新排行榜,哪些品牌值得购买?

    作为家电市场中的重要品类,冰箱的销售量一直都很高。随着人们生活水平的提高和消费观念的转变,越来越多的消费者开始注重冰箱的品牌和质量。本文将为大家介绍中国名牌冰箱最新排行榜,帮助消费者了解哪些品牌值得购买。一、海尔海尔作为中国家电行业的领

    2024年1月3日
  • 一体机不通电,怎样解决这个问题

    一体机是一种非常方便的设备,它将电脑主机、显示器、音响等多个设备集成在一起,使得我们的办公和娱乐更加便捷。但是,当一体机不通电时,我们该怎么办呢?在本文中,我将为大家介绍一些解决这个问题的方法。第一步:检查电源线一体机不通电的原因可能是

    2023年12月3日
  • 小米14怎么设置私密相册?

    随着社交媒体的普及,我们拍摄的照片和视频越来越多,其中不乏一些我们希望保留在私密空间的珍贵回忆。为了满足用户的需求,小米14特别引入了私密相册功能,从而保护用户的个人隐私。那么,小米14如何设置私密相册呢?下面我们就来一起了解一下。小米14

    2024年3月12日
  • 红米RedmiK70E怎么设置HD高清摄像?

    红米RedmiK70E这款手机的性价比是非常不错的,自从正式开售以来就拥有很高的热度,销量一直保存在很高的水平,这款手机的摄像头功能是大家比较关注的,那么红米RedmiK70E怎么设置HD高清摄像?下面就让我们来一起看看吧!红米RedmiK

    2024年1月29日
  • Mu变异毒株是什么

    Mu 是 2019 新型冠状病毒变异毒株。Mu变异毒株有一系列突变现象,表明其有免疫逃逸(疫苗抗性)的潜在特性,因此需进一步研究其特征,以更好地制定防疫方案。 Mu 是 2019 …

  • 金钟大为什么叫chen,解析韩国艺人的名字来源

    *艺人的名字来源多种多样,有些是因为家庭背景,有些是因为喜欢的事物,还有些是因为名字的含义。今天我们要解析的是金钟大为什么叫chen。一、金钟大的背景金钟大是一位*男演员,出生于1982年。他在演艺圈中的代表作品有《请回答1997》、《

    2023年12月30日
  • vivoxfold3怎么截屏?

    有许多款智能手机都配备了出色的截屏功能,其中包括了备受瞩目的vivoxfold3。vivoxfold3作为一款最新推出的折叠屏手机,不仅具备了出色的硬件性能,还配备了一系列丰富的功能,其中包括了简便易用的截屏功能。那么,我们该如何利用viv

    2024年3月8日
  • 一加ace3怎么看激活时间?

    在现如今的智能手机市场中,竞争异常激烈,各大品牌纷纷推出了各种新款手机来满足消费者的需求。而其中,一加ace3作为一加品牌的最新力作,备受关注。除了强大的性能和出色的拍摄能力,激活时间也是用户关注的重要指标之一。那么,我们一起来探讨一下一加

    2024年1月27日

发表回复

登录后才能评论