人工智能中的最佳优先搜索

2025 年 4 月 14 日 | 阅读 8 分钟

引言

最佳优先搜索(BFS)是人工智能(AI)中一种用于导航图和树的搜索算法。它结合了深度优先和广度优先搜索的思想,以找到通往目标最有希望的路径。BFS 使用优先级队列,通常利用启发式函数根据节点到达目标的估计成本来评估和优先排序节点。启发式函数 h(n) 计算从当前节点到目标的最低成本路径。

Best First Search in Artificial Intelligence

该算法从起始节点开始,根据启发式值优先探索最有前途的节点。它不断扩展节点,直到达到目标或没有更多节点可供探索。BFS 在需要最佳路径的场景中非常有效,利用启发式方法高效地指导搜索。然而,其性能严重依赖于启发式函数的质量,因为糟糕的启发式函数可能导致次优或低效的搜索。

概述

  • 了解人工智能中以启发式驱动的计算——最佳优先搜索。
  • 学习最佳优先搜索算法如何使用启发式函数。
  • 探索最佳优先搜索在人工智能应用中的作用。
  • 了解最佳优先搜索算法的具体实现细节。
  • 找出人工智能中最佳优先搜索的限制和挑战。

什么是最佳优先搜索?

最佳优先搜索(BFS)是一种根据特定规则运作,并使用优先级队列和启发式搜索的搜索算法。它非常适合计算机评估通过可能性迷宫的最佳最短路径。假设你陷入一个大迷宫,不知道如何以及在哪里快速出去。在这里,人工智能中的最佳优先搜索帮助你的系统程序评估并选择每个后续步骤的正确路径,以尽快到达目标。

例如,在像《魂斗罗》或《超级马里奥兄弟》这样的电子游戏中,你必须到达终点并杀死敌人。最佳优先搜索帮助计算机系统控制马里奥或魂斗罗,以检查最快的路线或杀死敌人的方法。它评估特定的路径,并选择最近的、没有其他风险的路径,以尽快到达目标并杀死敌人。

人工智能中的最佳优先搜索是一种有信息的搜索,它使用评估函数在各种可用节点中选择有希望的节点,然后才切换(遍历)到下一个节点。在搜索图空间时,最佳 AI 优先搜索算法使用两个列表来监控遍历:Open 和 CLOSED。Open 列表监控当前可用于遍历的直接节点。另一方面,CLOSED 列表监控已经遍历过的节点。

BFS 的关键概念

Best First Search in Artificial Intelligence

以下是人工智能最佳优先搜索的一些基本特征:

当使用最佳优先搜索时,你的系统总是寻找可能的节点或路径。然后,它选择最有前途或最佳的节点或路径,以最短的距离穿过该节点或路径,从而到达目标并走出迷宫。在人工智能中,最佳优先搜索算法帮助计算机系统跟踪它已经遍历或打算遍历的路径或节点。

它防止系统陷入最近尝试过的路径或节点的循环,并避免错误。计算机程序继续重复上述三个步骤的过程,直到达到目标并走出迷宫。因此,人工智能中的最佳优先搜索根据启发式函数,持续重新评估最有前途的节点或路径。

什么是启发式函数?

启发式函数指的是在知情搜索和评估中使用的能力,用于评估导致目标的最佳或有前途的路径、路线或方案。它有助于更快地估计正确的路径。另一方面,启发式函数不一定总是产生理想或精确的结果。在某些情况下,启发式函数 h(n) 会产生次优结果。在确定状态之间最佳路线或路径的成本时,它始终具有正值。

算法细节

搜索算法分为两类:

标准计算:它也被称为盲法或彻底法。搜索是在没有额外信息的情况下进行的,只考虑问题陈述中已提供的信息。例如,深度优先搜索和广度优先搜索。基于提供额外信息的智能算法,计算机系统执行查询,从而能够描述评估目标解决方案或路径的后续步骤。这种著名的方法就是启发式技术,也称为启发式搜索。与盲法相比,有信息的方法在效率、整体性能和成本效益方面表现更好。

最佳优先搜索(BFS)是人工智能中一种有信息的搜索算法,旨在在搜索空间中找到最短路径或最小成本解决方案。这是一种图遍历算法,它利用启发式方法估计从每个节点到达目标的成本,与广度优先搜索(BFS)或深度优先搜索(DFS)等无信息搜索方法相比,更有效地指导搜索过程。

最佳优先搜索的关键概念

1. 启发式函数 (h(n))

启发式函数估算从当前节点到目标节点的成本。它根据启发式估计值,关注那些似乎更接近目标的节点。根据问题的性质,常见的启发式函数包括曼哈顿距离和直线距离。

2. 优先级队列

最佳优先搜索使用优先级队列(通常实现为最小堆)来跟踪要探索的节点。每个节点的优先级由其启发式值决定,启发式值最低的节点优先级最高。

3. 搜索过程

该算法从初始节点开始,并根据启发式值探索最有希望的节点。它通过生成其后继节点并使用启发式函数评估它们来扩展所选节点。后继节点被添加到优先级队列中,该过程继续进行,直到达到目标节点或搜索空间已满。

最佳优先搜索的伪代码

应用

以下是最佳优先搜索算法的一些最常见用例:

机器人技术

最佳优先搜索在挑战性环境中指导机器人,并采取有效行动导航至其目标。在复杂的任务中,有效的规划至关重要,这样机器人才能评估通往目标的正确路径并相应地做出明智的决策。

游戏对弈

它帮助游戏角色发现威胁,避开障碍物,做出正确的战略决策,并评估准确的路径,在时间目标内达到目标。

导航应用

人工智能中的最佳优先搜索被用于像谷歌地图这样的导航应用程序,以帮助找到最快的路线。当我们从一个地方到另一个地方时,该算法会考虑路况、交通、U型转弯、距离等因素,以较少的障碍物更快地导航路线。

数据挖掘与自然语言处理

最佳优先搜索是人工智能在数据挖掘中使用的一种方法,用于找到与数据最兼容且更易于选择的特征。这降低了人工智能的计算复杂性并提高了信息模型性能。最佳优先搜索算法评估语义相似的表达式或术语以赋予意义。它们简化了任务复杂性,并广泛应用于搜索引擎和文本摘要。

调度和规划

人工智能(AI)应用最有效的初始搜索方法是识别活动和工作日程、资源优化和按时完成任务。这项功能对项目管理、物流和制造至关重要。

实施

为了执行它,计算机程序会用各种脚本语言编写代码,例如 Python、C、JavaScript、C++ 和 Java。代码告诉计算机系统如何使用启发式函数并评估路线、路径或解决方案。以下是人工智能中最佳优先搜索如何实现的简要概述。

  • 步骤 1: 首先,选择一个初始节点(假设为 n)并将其添加到 OPEN 列表。
  • 步骤 2: 如果初始节点为空,则必须停止并返回失败。
  • 步骤 3: 从 OPEN 列表中移除节点后,将其移至 CLOSED 列表。这里,节点是 h(n) 值最低的,即启发式函数。
  • 步骤 4: 扩展节点并生成其后继节点。
  • 步骤 5: 仔细检查每个后继节点,看它们是否通向目标。
  • 步骤 6: 如果后继节点通向目标,则应返回成功并结束搜索过程。否则,可以继续执行步骤 7。
  • 步骤 7: 该算法检查每个后继节点的评估函数 f(n)。之后,它分析节点是否在 OPEN 或 CLOSED 列表中。如果它在这两个列表中都没有找到节点,则将其添加到 OPEN 列表。
  • 步骤 8: 迭代回步骤 2。

挑战和局限性

人工智能中的最佳优先搜索有一些优点,但也有一些挑战和限制。启发式必须是高质量的。如果你在质量上妥协,它可能无法提供有效的估计,并且你在寻找最佳解决方案时可能会遇到错误。此算法有助于确定最佳路径或解决方案,但它并不总是选择最佳路径,并且通常采用次优路径。陷入循环的可能性更高。在人工智能中,最佳优先搜索处理大量数据时会占用大量内存。它限制了在资源受限情况下高效工作的能力。它将选择正确的路线置于其他考虑因素之上,例如其质量和更短的长度。因此,评估精确的路线可能具有挑战性。

结论

在信息结构中,BFS 从选定的根节点开始逐层检查节点,确保彻底和系统地遍历图。

它特别擅长在无权图中找到最短路径,因为它在进入下一层之前会探索一层中的所有节点。使用队列数据结构遵循先进先出(FIFO)规则,这对于保持节点探索的控制至关重要。BFS 用于许多应用程序,例如网络、人工智能、路径查找等等,展示了其多功能性和重要性。对于遍历由 V 个顶点和 E 条边组成的图,BFS 的时间复杂度为 O(V + E),因此计算效率很高。