人工智能中的知情搜索算法

2025年8月21日 | 阅读10分钟

有信息搜索算法是人工智能中最重要的组成部分之一。有信息搜索中的搜索技术以最高效和最优的方式运行。有信息搜索算法通过利用特定领域的知识来提高搜索过程的效率。

有信息搜索算法也可以称为启发式搜索。启发式搜索是指寻找能够确定为最有效、最高产和最具成本效益的达到预定目标的方法、路径、选项或程序。

informed-search-algorithms-in-artificial-intelligence

有信息搜索算法的关键特征

  1. 启发式函数:有信息搜索算法(也称为启发式搜索)使用启发式函数。它通过提供最短路径和最低成本来帮助到达目标节点。
  2. 效率:就效率而言,有信息搜索比无信息搜索等其他搜索更有效率,探索解决方案的速度更快。
  3. 最优性:如果存在,有信息搜索算法会产生最优化解。如果保证有解,则该算法通常被认为是完整的;如果存在最优解,则为最优。例如,A*搜索算法是一个完整的算法。

启发式函数

启发式函数是一个蓝图,它利用问题中最优猜测的力量来找出到目标状态的成本或距离。启发式搜索使用启发式函数来相当准确地计算最佳距离或成本。

它只关注最短或最低成本的路径,可能会忽略更好的路径。

就像你为了省油而选择一条最短但糟糕的路去某个地方,而不是走那条好路一样。

例如,在国际象棋比赛中,先手玩家通常在获胜方面占有优势。就启发式函数而言,控制棋盘中心的人有更大的获胜几率。

人工智能中几种有信息搜索的类型

人工智能中有几种有信息搜索的类型。我们将详细讨论其中一些,以便深入理解该主题。

1. 贪婪最佳优先搜索

最佳优先搜索算法是人工智能中的一种有信息搜索策略。它也称为贪婪搜索。它基本上关注即时目标,以在当前时刻找到节点之间的最近距离,而不考虑到达它们所需的成本。

贪婪最佳优先搜索如何工作?

初始化:在初始化阶段,贪婪最佳优先搜索会探索所有路径及其指定的成本。启发式函数在此搜索过程中用于找到最低成本路径。

节点扩展和选择:在此节点扩展和选择步骤中,从开放列表中移除具有最低启发式值的节点,因为该节点被认为是最佳的,因为到目标的距离由启发式值确定。

选择最佳节点:在早期版本中,从优先级队列中选择并选出具有最低启发式值的节点,因为该节点被认为是最佳的。

目标检查:如果选定的节点恰好是目标,则搜索和过程全部终止;如果不是目标,则算法继续搜索。

重复:如果未找到目标状态,则重复上述步骤,直到找到目标或搜索空间耗尽。

贪婪最佳优先搜索的优点

  • 如果应用了良好的启发式函数,它可以快速探索解决方案。
  • 贪婪最佳搜索可应用于多种问题。
  • 它的实现非常简单。

贪婪最佳优先搜索的缺点

  • 主要缺点是它无法衡量到达目标所实际花费的成本。它只能衡量预期距离。
  • 如果没有合适的或良好的启发式函数,它就无法运行。

2. A*搜索

A*算法通过查看到达目标估计成本最低的节点来开始探索。该算法的主要用途是识别从一个节点到另一个节点的最具成本效益的方式,通过估算从每个节点到最终节点的成本。该算法可以产生图中的最优路径,这是传统搜索算法无法实现的。

公式

f(n)=g(n)+h(n)是我们用于查找从一个节点到另一个节点的最短路径的总成本的公式。

在人工智能中执行A*搜索的步骤

  • 初始化:第一步,将初始节点放入优先级队列。优先级队列包含所有待评估的节点。它也称为开放列表。
  • 评估:第二步,选择队列中f(n)值最低的节点进行下一个处理。
  • 扩展:在前一个评估步骤中选择的f(n)值最低的节点与其邻居进行比较。
  • 更新:比较后,如果邻近节点的f(n)值低于先前记录的值,则会更新并添加到开放列表中。
  • 目标检查:在此步骤中,进行目标检查以确定是否已达到目标节点。如果开放列表为空,也可以确认这一点,这意味着没有更多可供遍历的内容了。
  • 重构:最后一步,通过从最终或目标节点或初始节点进行回溯或跟踪步骤来重构路径。

A*搜索的优点

  • A*搜索可以找到到达目标的最佳成本,并且如果接受合适的启发式函数,它永远不会高估成本。
  • 它在时间和空间复杂度上都很高效,因为它有效地优先处理可能导致最优成本的最佳节点。

A*搜索的缺点

  • 如果所有节点的成本都低于目标节点,A*搜索可能无用或不完整。
  • 如果我们不使用适当的启发式函数,那么必须有比A*搜索更好的搜索算法,这可能会高估成本,最终会破坏其目的。

3. 爬山法

爬山算法是人工智能中一种重要的有信息搜索算法的例子。它旨在通过不断向前移动来始终寻找更好的选择。

它将其当前状态与前面的相邻状态进行比较;如果更好,它将移动到下一个节点。

爬山算法如何工作?

爬山算法包含几个步骤。让我们来理解它们

  1. 初始状态:初始状态是开始或当前状态;它可以是随机的解决方案。
  2. 相邻状态:相邻状态用于下一个或相邻的可用解决方案,它可能比当前或初始状态更好。
  3. 移动到相邻节点:在此步骤中,将相邻状态与当前状态进行比较。如果相邻状态具有更好的评估分数,则算法将移动到该状态。
  4. 终止:这是最后一个阶段,发生在算法无法搜索到比当前状态更好的相邻状态时。此时达到局部最大值或最小值。

人工智能中的爬山法类型

爬山法有3种类型

  1. 简单的爬山算法
  2. 最陡上升爬山法
  3. 随机爬山法

爬山算法的优点

  • 易于理解:与其他有信息搜索算法相比,爬山算法相对容易理解。
  • 效率:该算法对于复杂问题来说非常快速和有效,并且仅存储当前状态和即时未来邻居,从而节省空间。

爬山算法的缺点

  • 依赖于初始状态:爬山法依赖于初始或起始搜索点,这会影响最终结果。
  • 不保证最优解:爬山法提供的解决方案不保证是最佳或全局最优解。
  • 可能在没有改进的情况下继续:如果搜索空间是平坦的或有高原,爬山搜索可能难以找到进一步改进的节点。

4. 束搜索

束搜索是一种有信息搜索算法。它基本上在搜索的每个级别上仅限制要保留在内存中的最佳节点。束搜索算法有助于保持效率和最优性。

束搜索算法如何工作?

  • 在搜索的每个阶段,保留由启发式函数确定的最佳节点(k个节点),其中k表示束宽度。
  • 算法在搜索空间中前进,并忽略根据其启发式分数看起来不太有希望的节点。

束搜索的优点

  • 效率:束搜索通常比有信息搜索算法中的其他搜索方法更有效。
  • 准确性:它比贪婪最佳优先搜索算法更准确。
  • 可扩展性:束搜索易于扩展,这使得我们能够解决复杂问题或大规模应用。

束搜索的缺点

  • 不保证最优性:如果束宽度太窄,束搜索算法不保证全局最优解。
  • 重复性:束搜索有时可能会产生重复的解决方案。

有信息搜索算法的应用

有信息搜索算法有多种应用。让我们讨论其中一些

游戏中的路径追踪

许多视频游戏使用A*来帮助其角色移动、控制敌人的行为以及探索地点之间旅行的最佳路线。由于它可以利用成本和启发式来找到最快的路径,因此游戏设计师可以依赖它来进行实时应用。

机器人和自动驾驶汽车

A*算法用于机器人和自主导航规划,它有助于检测必须避免的物体和地形障碍物。它可以为自动驾驶汽车找到最佳最短路径。实现这一点对于确保您的移动安全顺畅至关重要。

路线规划和导航

在这些系统中,A*可以通过考虑距离、当前道路状况和道路网络的拓扑结构来计算地图上任意两点之间的最佳路线。例如,谷歌地图。

解谜

A*可以解决各种图形谜题,如滑块谜题、数独、贪吃蛇游戏、国际象棋和8谜题。当需要确定分配资源的最高效方法时,就使用A*,并且它也能以最低的成本做到这一点。

自然语言处理(NLP)

一些自然语言处理(NLP)应用允许A*根据对可能性和相关性相关的词序列的搜索来生成可理解的陈述。

人工智能中信息搜索算法的优点

信息搜索算法有几个优点。让我们看一些

  • 最优性:在存在准确且合适的启发式的情况下,有信息搜索算法能够提供速度和策略,从而产生最优结果。例如,A*在可接受的启发式中产生优化结果。
  • 效率:使用有信息搜索算法可以减少搜索空间,从而获得更快的搜索结果。
  • 可扩展性:有信息搜索算法有助于扩展搜索空间,从而有助于解决复杂问题。
  • 收敛速度更快:快速收敛是一种策略,我们可以通过扩展启发式值较低的节点来避免状态空间中不具生产力的区域。

人工智能中信息搜索算法的缺点

  • 设计复杂性:它需要对该主题和领域有广泛而深入的了解才能开发高质量的启发式,这会导致将有信息搜索算法扩展到解决新问题时出现问题和复杂性。
  • 不保证最优性:尽管A*搜索和贪婪搜索等有信息搜索算法可以产生最优结果,但它们有时可能会陷入复杂且误导性的启发式中。因此,不能保证有信息搜索会产生最优结果。
  • 次优启发式:要获得最大最优解,有信息搜索算法所需的主要东西是“完美的启发式”。但糟糕的启发式可能会误解距离和空间搜索,这会严重影响结果。
  • 问题特异性:启发式取决于问题的结构、目标定义等,改变它们没有意义,这意味着启发式是为特定问题设计或创建的,不能用于其他问题。

结论

有信息搜索中的搜索技术以最高效和最优的方式运行。有信息搜索算法,也称为启发式函数,是一个蓝图,它利用问题中最优猜测的力量来找出到目标状态的成本或距离。

我们学习了贪婪最佳优先搜索、A*搜索和爬山法等类型。我们还了解了它们的优点、缺点和应用。

有信息搜索算法常见问题解答

1. 什么是信息搜索算法?

有信息搜索算法是一种通过利用特定领域的知识来提高搜索过程效率的搜索算法。它也称为启发式搜索,是指寻找能够确定为最有效、最高产和最具成本效益的达到预定目标的方法、路径、选项或程序。

2. 有信息搜索与无信息搜索有何不同?

有信息搜索使用启发式来决定后续行动,而无信息搜索则在没有任何知识的情况下随机探索。

3. 何时应使用有信息搜索而不是无信息搜索?

当以下情况时,我们应使用有信息搜索:

  • 有良好的启发式可用
  • 需要更快地获得解决方案
  • 需要更高的效率
  • 需要更好的优化
  • 需要更好的方向
  • 搜索空间很大

4. 什么是启发式?

启发式函数是一个蓝图,它利用问题中最优猜测的力量来找出到目标状态的成本或距离。它只关注最短或最低成本的路径,可能会忽略更好的路径。

5. 请给出一些信息搜索算法的例子。

有信息搜索的例子是贪婪最佳优先搜索、A*搜索算法爬山法

6. 有信息搜索算法的应用有哪些?

有信息搜索算法有多种应用,例如:

  • 游戏中的路径追踪
  • 机器人和自动驾驶汽车
  • 路线规划和导航
  • 解谜
  • 自然语言处理 (NLP)

7. 有信息搜索在没有启发式的情况下能否工作?

不可以,有信息搜索算法在没有启发式的情况下无法工作。如果你没有一个好的启发式,那么你就可以使用无信息搜索方法。


下一主题AI的子集