盲目搜索和启发式搜索有什么区别?

What is the difference between blind search and heuristic search?

我正在寻找人工智能领域中使用的盲目搜索和启发式搜索之间的区别。

这是一个非常模糊的问题,但使用启发式通常意味着在搜索过程中使用逻辑或先验数据进行有根据的猜测。盲目搜索(我猜)在没有这种启发式方法的情况下进行特定搜索,并使用蛮力方法。

盲目搜索 - 在没有信息的情况下进行搜索。
例如:BFS(盲目搜索方法之一)。我们只是为currentstate(当前节点)生成所有的后继状态(子节点),然后找到其中是否有一个目标状态,如果没有我们将生成一个子节点的后继状态等等。因为我们没有信息,所以只生成所有。

启发式搜索 - 搜索信息。
例如:A* 算法。我们根据成本和 'heuristic information' 启发式函数选择下一个状态。

案例示例:找到最短路径。
通过盲目搜索,我们只是尝试所有位置(蛮力)。
使用启发式算法,假设我们有关于起点和每个可用位置之间距离的信息。我们将使用它来确定下一个位置。

盲人通常 uninformed.that 是,它没有关于问题的任何具体知识,而启发式搜索是具有关于问题的信息,因此在决策中使用逻辑。

盲目搜索:

  • 它本质上是完全粗暴的,因为它没有任何领域特定的知识。
  • 这是一个非常漫长的过程
  • 它也被称为不知情或蛮力搜索。
  • 占用内存大
  • 搜索过程会记住所有对搜索过程没有用的不需要的节点。
  • 它不使用任何特殊的搜索功能。
  • 示例:深度优先搜索和广度优先搜索。

启发式搜索:

  • 他们使用特定领域的知识来进行搜索。
  • 通过使用启发式搜索过程减少了。
  • 这称为知情搜索。
  • 这种类型的搜索不会浪费时间。
  • 没有使用大内存。
  • 启发式函数用于搜索。
  • 示例:爬山、最佳优先搜索以及 A* 和 AO*。