知情搜索和不知情搜索之间的区别

作者: Laura McKinney
创建日期: 2 四月 2021
更新日期: 15 可能 2024
Anonim
[Python] BFS和DFS算法(第1讲)
视频: [Python] BFS和DFS算法(第1讲)

内容


搜索是查找解决任何问题所需的一系列步骤的过程。明智的搜索和不明智的搜索之间的先验区别在于,明智的搜索提供有关在哪里以及如何找到解决方案的指南。相反,不知情的搜索仅给出其问题以外就没有提供有关该问题的其他信息。

但是,在有信息和无信息的搜索技术之间,有信息的搜索更加有效和具有成本效益。

    1. 比较表
    2. 定义
    3. 关键差异
    4. 结论

比较表

比较依据知情搜索不知情的搜索
基本的
使用知识查找解决方案的步骤。不使用知识
效率
高效,消耗更少的时间和成本。效率是中介
成本比较高
性能更快地找到解决方案速度比知情搜索慢
演算法
启发式深度优先和广度优先搜索,以及A *搜索深度优先搜索,宽度优先搜索和最低成本优先搜索

知情搜索的定义

明智的搜索技术利用特定于问题的知识,以便为解决问题提供线索。这种类型的搜索策略实际上可以防止算法绊倒目标和解决方案的方向。就成本而言,知情搜索可能是有利的,其中以较低的搜索成本实现了最优性。

为了通过实施明智的搜索策略在图中搜索最佳路径成本,将最有希望的节点n插入启发式函数h(n)。然后,函数返回一个非负实数,该实数是从节点n到目标节点的近似路径成本。

此处,信息技术的最重要部分是启发式功能,该功能有助于将问题的其他知识赋予算法。结果,它有助于找到通过各个相邻节点到达目标的方法。基于通知搜索的算法有很多种,例如启发式深度优先搜索,启发式广度优先搜索,A *搜索等。现在,让我们了解启发式深度优先搜索。


启发式深度优先搜索

与下面提供的深度优先搜索方法类似,启发式深度优先搜索选择一条路径,但在选择另一条路径之前先遍历所选路径中的所有路径。但是,它会在本地选择最佳路径。如果最小的启发式值是边界的优先级,则称为最佳优先搜索。

另一种明智的搜索算法是A *搜索,它融合了成本最低的优先搜索和最佳的优先搜索的概念。该方法在搜索和选择要扩展的路径的过程中同时考虑路径成本和启发式信息。从起点到目标节点的每条位于边界上的路径的估计总路径成本。因此,它同时使用两个函数-成本(p)是发现路径的成本,而h(p)是从起始节点到目标节点的路径成本的估计值。

不知情的搜索的定义

不知情的搜索与知情的搜索的不同之处在于,它仅提供问题的定义,而无需进一步寻找问题的解决方案。不知情的搜索的主要目的是区分目标状态和非目标状态,并且它完全忽略了它正在寻找的目标,直到发现目标并报告后继。此策略也称为盲搜索。

此类别下有多种搜索算法,例如深度优先搜索,统一成本搜索,广度优先搜索等。现在让我们借助深度优先搜索来了解不知情搜索背后的概念。

深度优先搜索

在深度优先搜索中,后进先出堆栈用于添加和删除节点。一次仅添加或删除一个节点,并且从堆栈边界删除的第一个元素将是添加到堆栈的最后一个元素。通过在边界中使用堆栈,可以以深度优先的方式进行路径搜索。当使用深度优先搜索来搜索最短和最佳路径时,即使不是所需路径,也要首先完成由相邻节点创建的路径。然后,通过回溯搜索替代路径。

换句话说,该算法在每个节点上选择第一个替代方案,然后回溯到另一个替代方案,直到它遍历了从第一个选择方案开始的所有路径。这也引起了一个问题,即由于图中存在无限循环(循环),搜索可能会停止停止。

  1. 前一种知情搜索技术使用知识来找到解决方案。另一方面,后者的不知情的搜索技术不使用知识。简单来说,没有提供有关该解决方案的更多信息。
  2. 有信息的搜索的效率要比无信息的搜索更好。
  3. 与知情搜索相比,不知情的搜索会浪费更多的时间和成本,因为它不了解解决方案。
  4. 深度优先搜索,广度优先搜索和最低成本优先搜索是算法,属于不知情的搜索类别。与之相反,知情搜索涵盖诸如启发式深度优先,启发式广度优先搜索和A *搜索等算法。

结论

知情的搜索提供了有关解决方案的指导,而在不知情的搜索中,没有给出有关解决方案的建议。当实施算法时,这会使不知情的搜索变得更长。