人工智能中的深度限制搜索2025年4月1日 | 阅读 8 分钟 在人工智能方法的问题领域中,最重要的算法之一是深度受限搜索。 理解深度优先搜索 (DFS)深度优先搜索算法从树或图的根节点开始,沿着每条分支尽可能深地探索,然后再回溯。它从根节点沿着一条路径到达叶节点,然后掉头去探索其他路径。当处理大型或无限的树时,这种方法可能效率低下,因为它可能会检查不包含目标的深层分支,从而浪费时间和资源。 介绍深度受限搜索 (DLS)深度受限搜索是 DFS 的一种变体,它对搜索的深度进行了限制。通过限制节点探索到特定深度,有效地阻止了算法沿着不太可能导向目标的过深路径进行搜索。DLS 旨在通过设置最大深度限制来提高效率并提供更可控的搜索时长。 深度受限搜索的操作
深度受限搜索在人工智能中的应用
这些是 DFS 的一些应用:在两个节点之间找到路径,遍历树或图中的所有节点,以及解决特定的谜题。它通常作为更大算法或应用的一部分在 AI 中应用,例如迷宫求解、游戏状态分析以及在 minimax 算法等搜索算法中探索决策树,例如应用于井字棋或国际象棋的游戏。 使用深度受限搜索算法在机器人领域寻找路径问题设置
将使用以下过程利用深度受限搜索算法解决问题 步骤 1:定义环境网格我们创建一个代表代理的 6x6 网格环境的二维列表,其中 1 代表障碍物,0 代表自由单元格。 代码 步骤 2:定义起始和目标位置定义代理在网格上的起始和目标位置。 代码 步骤 3:定义问题结构SearchProblem 类封装了搜索问题,包括检查代理是否已到达目标以及确定从给定位置开始的可能移动的方法。 代码 步骤 4:定义深度受限搜索 (DLS) 函数将 limited_depth_search 定义为主函数,将 recursive_dls 定义为辅助函数。 代码 步骤 5:初始化问题实例使用定义的网格、起始位置和目标位置创建 SearchProblem 类的实例。 代码 步骤 6:执行带有深度限制的深度受限搜索设置深度限制,并应用 DLS 在该限制内查找从起始点到目标点的路径。相应地显示结果。 代码 步骤 7:可视化网格上的路径display_path 函数可视化网格并突出显示 DLS 算法找到的路径。 代码 完整的机器人路径查找代码程序 输出 ![]() 说明 此代码通过实现深度受限搜索 (DLS) 技术,为代理在有障碍物的 6x6 网格区域中进行探索找到路径。在网格中,自由单元格用 0 表示,障碍物用 1 表示。代理从位置 (0, 0) 开始,向上、向下、向左或向右移动到相邻的单元格,试图到达目标位置 (5, 5),只要它们在网格边界内且没有障碍物。除了用于验证目标和识别合法相邻单元格的方法外,SearchProblem 类还定义了网格、起始和目标状态。together with the helper recursive_dls,limited_depth_search 函数搜索深度最多为预定深度限制的节点,要么找到路径,要么在深度限制处停止。 搜索完成后,使用 Matplotlib 可视化网格和找到的路径。起始点显示为绿色,目标点显示为红色,路径显示为蓝色。如果未在深度限制内找到解决方案,则会显示相应的消息。 结论通过设置预定的深度限制,深度受限搜索 (DLS) 作为深度优先搜索 (DFS) 的变体,有助于避免对深层路径的无益探索,并解决棘手的路径查找问题。这种方法可在可容忍的时间内实现可控搜索,这在机器人、网络路由和游戏开发等人工智能应用中非常有用。提供的代码通过使用 DLS 帮助代理在有障碍物的 6x6 网格中找到路径,演示了 DLS 在限制搜索区域方面的有效性。网格可视化还有助于理解该算法如何避开障碍物到达目标。由于这种方法,DLS 可用于需要资源受限环境中资源高效解决方案的应用。 下一话题游戏行业的人工智能 |
我们请求您订阅我们的新闻通讯以获取最新更新。