知情搜索和不知情搜索有什么区别?

What is the difference between informed and uninformed searches?

知情搜索和不知情搜索有什么区别?你能用一些例子解释一下吗?

盲目或统一搜索

这是一个没有"information"关于目标节点的搜索。

广度优先搜索 (BFS) 就是一个例子。在 BFS 中,搜索一层接一层地进行。换句话说,先访问同一层中的节点,然后再访问连续层中的节点。执行此操作直到 "expanded" 的节点是目标节点。在这种情况下,没有关于目标节点的信息用于访问、扩展或生成节点。

我们可以将盲目搜索或制服搜索视为暴力搜索。

启发式或知情搜索

这是关于目标 "information" 的搜索。

此类算法的一个示例是 A*。在此算法中,还使用有关目标节点的信息访问和扩展节点。有关目标节点的信息由 启发式函数 给出(该函数将有关目标节点的信息与状态 space 的每个节点相关联)。在 A* 的情况下,与每个节点 n 关联的启发式信息是对从 n 到目标节点的距离的估计。

我们可以将知情搜索视为大约 "guided" 搜索。

不知情的搜索 是暴力搜索或"blind" 搜索。它不使用关于问题的知识,因此可能不如知情搜索有效。

不知情搜索算法的例子有广度优先搜索、深度优先搜索、深度限制搜索、均匀成本搜索、深度优先迭代加深搜索和双向搜索。

知情搜索(也称为 "heuristic search")使用有关问题 ("domain knowledge") 的先验知识,因此可能比不知情搜索更有效。

最佳搜索算法和 A* 是知情搜索算法的示例。

统一搜索和知情搜索的区别如下:

  1. 统一搜索技术只能访问问题定义 而知情搜索技术可以访问启发式功能和 问题定义。

  2. 统一搜索效率较低,而知情搜索效率更高。

  3. 统一搜索称为盲目搜索,而知情搜索称为启发式搜索。
  4. 统一搜索使用更多计算量,而知情搜索使用更少计算量。