人工智能中的迭代加深搜索2025年7月22日 | 阅读 13 分钟 迭代加深搜索 (IDS),因其迭代加深深度优先搜索 (DFS) 的过程而得名,是人工智能中一种基本的搜索算法,它结合了深度优先搜索 (DFS) 和广度优先搜索 (BFS) 的优点。当解决方案的深度未知且对存储效率要求较高时,它特别有用。 IDS 执行一系列深度限制搜索,每次调用都增加深度限制,直到找到解决方案。这种方法与 BFS 一样是完整的,并且像 DFS 一样内存效率高。时间复杂度和空间复杂度之间的这种权衡使其在人工智能的路径查找和游戏玩法等众多应用中得到广泛应用。 迭代加深搜索的变体标准迭代加深深度优先搜索 (IDDFS)这是标准的 IDS,即一系列限制在特定深度(0, 1, 2...)的 DFS 调用。它与 BFS 存在相同的理论问题,即它是完整的且最优的,但内存占用与 DFS 相同,为 O(d)。虽然有时它会重复访问较低级别的节点,但开销可以忽略不计;其分支因子很高。 这使得它对于深度未知的树或图非常有效。由于其良好的开销、简单性和路径长度最小化保证,IDDFS 在 AI 的图搜索中被广泛教授和应用。 迭代加深 A* (IDA*)IDA* 通过使用启发式成本来扩展 IDS;它不计算深度,而是计算一个限制 f(n)=g(n)+h(n)。下一个 f 阈值是最低的,可以设置为确保每次迭代都是相对于当前 f 阈值的 DFS;如果超过此 f 阈值,则使用最小的新 f 作为新的 f 阈值。这提供了 A* 似的完整性和最优性,同时内存线性。 与 IDDFS 类似,IDA* 也会重新访问节点,但 IDA* 会沿着有希望的路径引导搜索,因此是一种反向搜索算法,可以处理带权重的图,并且可以在内存受限的搜索系统中使用。其应用领域包括益智游戏、机器人技术和游戏 AI。 ![]() 双向 IDDFS它通过并行运行两个不同的迭代加深搜索来交替向前和向后搜索,一个朝向初始目标,另一个朝向初始起点。每个搜索交替扩展越来越深的探索,直到边界相遇。在搜索是双向的情况下,这会导致搜索空间大大减小。 它在无向图或可逆问题中非常有用。然而,由于处理截断和维护有效合并条件的问题,实现起来很棘手。 并行 IDA*IDA* 可以并行化以利用多核或 GPGPU 架构。例如,块并行 IDA* 将树的探索并行化到处理器块中——使用不同的 f 阈值。这可以节省重复的工作,并且在许多核心计算(如 GPU 上的滑动拼图)上,可以实现近乎线性的加速。 并行 IDA* 在迭代加深和并行前沿扩展模型之间取得了平衡,并能显著提高 IDA* 的性能,同时保持与 IDA* 相同的内存效率。 迭代加深分支定界这是 IDA* 对调度或 TSP 等优化问题的泛化。它用实际成本的成本界限替换启发式 f 成本(即分支定界技术)。DFS 在每次迭代中都在一个界限内搜索,因为成本阈值正在提高(例如,通过增量或估计)。 这提供了最佳解决方案并限制了内存消耗。它特别应用于调度和背包问题。这种方法保留了 IDS 的效率,尽管它能够适应实值成本优化。 指数二分迭代加深一种混合模型,可加速成本约束选择:它不重复地增加搜索阈值,而是通过指数搜索和二分搜索来交替查找最优锚点,从而以最少的步骤完成。首先是最初将成本界限加倍,直到超过解决方案成本,然后在此界限之间使用二分搜索。 这会将多项式开销减少到与对数相关的内部步骤。它可以用于成本有限的 DFS 和启发式搜索(以及 IDA*),提高收敛速度,特别是在成本范围很广的情况下。 IDS 在 AI 中的应用![]() 游戏树搜索与实时决策制定在国际象棋或棋盘游戏等游戏 AI 中,IDS 是基础。随着搜索一步一步加深,早期版本会快速但肤浅地给出答案,而后一个版本则会缩小策略范围。这在时间有限的情况下非常宝贵:如果必须在搜索过程中途停止,AI 就能根据最后一次完整迭代中找到的最佳结果做出合理的移动。 此外,迭代加深与加速走法排序启发式和 alpha-beta 剪枝相结合,使得后期深度的搜索使用更小的搜索空间。 机器人路径规划在机器人技术中解决路径规划问题时,AI 代理经常需要在瞬息万变或部分熟悉的世界中找到起点和终点之间的最佳路径点。迭代加深使机器人能够缓慢覆盖某些区域并在必要时回溯,而不会浪费大量内存。它像 DFS 一样节省空间,但像 BFS 一样完整,因此适用于内存有限的应用,例如无人机或自动驾驶汽车中的嵌入式系统。 此外,当与启发式(例如 IDA*)结合使用时,它还可以用于规划不仅可行而且在距离、时间和能量消耗方面成本较低的路径。它特别适用于实时避障。 解决谜题迭代加深在经典的 AI 问题(如 8 拼图、15 拼图或魔方)中发挥着重要作用。这些基本上是状态空间问题,代理必须从某个配置开始移动到目标配置。传统的 DFS 可能会陷入死胡同,BFS 可能会导致内存爆炸,而 IDS 则缓慢探索,以较低的空间成本提供完整性和最优性。 它经常与 IDA* 形式的启发式相结合。该技术表明,虽然解决方案可能在树的深处,但可以找到该解决方案而无需使用几乎无限的内存,因此它适用于 AI 中的约束满足和组合优化。 AGI 研究通用人工智能 (AGI)高效且通用的搜索是 AGI 研究的基础,因为系统需要像人类一样学习和解决许多不同类型的任务。迭代加深因其结构良好且高效的内存利用而备受关注,是一种基本搜索方法。它在 Soar 或 ACT-R 等认知架构中应用,以模拟类似人类的解决问题方式。 迭代加深类似于人类的试错学习,它从更简单的策略开始,然后发展到更复杂的策略。当领域知识稀缺时,这种技术也很有用,因为代理不会因为某些解决方案在搜索树的末端而排除它们。在规则不确定或多变的场景下,它将是理想的选择。 AI 规划系统迭代加深也应用于自动化规划,即让 AI 代理生成一系列动作步骤以完成目标的任务,以限制算法的搜索空间。例如,在 STRIPS 风格的规划或偏序规划中,代理会逐渐加深其搜索,直到找到一个有效计划。 这在大规模规划场景中至关重要,例如在物流、工作流程自动化或太空任务规划中。IDS 确保在寻找长计划之前先寻找短计划,因此最优解通常是找到最短或最高效的计划。它可以在启发式建议不足的情况下使用。 使用 NLP 进行解析任务迭代加深在基于语法的句子分析和句法解析中得到了应用,尤其是在约束语法中,尽管它通常不与自然语言处理相关。在这些系统中,解析器会遍历潜在的组合以找到有效的语法结构。IDS 可以通过限制搜索深度并随着解析空间增大(如在模糊的自然语言中)逐渐增加复杂性来提供帮助。 它确保在尝试更复杂的解释之前尝试更简单的解释,这对于 AI 代理与用户交互时的自然语言理解 (NLU) 尤其有益。这与人们理解语言的方式类似,从简单的短语逐渐过渡到复杂的结构。 边缘和嵌入式技术的人工智能随着边缘 AI 的出现,内存和处理能力成为关键限制,边缘 AI 在可穿戴设备、智能手机和物联网传感器等小型设备上运行 AI 模型。迭代加深在这种环境中提供了一种轻量级的搜索策略。例如,IDS 可用于在基于边缘的异常检测或智能家居自动化中搜索动作序列或系统状态,而无需将整个模型加载到内存中。 IDS 是有限硬件(如微控制器或边缘处理器)上 AI 的可行选择,因为它可以在与剪枝或浅层启发式结合时,以最小的开销提供快速决策。 IDS 在 AI 中的优势![]() 保证完整性迭代加深的主要优点之一是它是完整的;只要存在解决方案,它就能保证找到。与可能陷入无限分支的深度优先搜索不同,迭代加深会系统地分析所有级别直到目标深度。这可以确保它不会忽略任何较浅的解决方案,而 DFS 则可能因贪婪或不充分的探索而错过。 这在实际应用中是一个非常有用的特性,例如在解谜或玩游戏时,因为它可以保证算法在未知或高度演变的环境中也不会失败。 在无权图上找到最优解迭代加深将找到到目标的最佳路径(在每一步成本相等的无权图中)。这是因为它的逐级加深结构,使得更深的解决方案先被发现。这与 BFS 的最优性相同,但没有 BFS 的空间问题。 当应用于 AI 搜索问题,例如寻找最短路径、解决谜题(如 8 拼图)或在边成本相同的情况下,对游戏决策树的早期阶段进行搜索时,这一特性特别有用,并且人们寻求最少的步骤。 适用于时间受限的环境在需要精确时间预算来做出决策的实时 AI 系统中,迭代加深尤其有用。由于算法始终能够提供先前迭代中找到的最佳解决方案,因此可以随时中断它并仍然获得一个有效(但可能不是最优)的移动。 这使其在实时游戏代理、机器人导航或自主系统等 AI 中非常方便,因为提前获得一个可接受的决策比错过最优决策要好。每次 IDS 对时间受限的系统有益时,系统都会在计算资源有限的情况下优雅地退化。 IDS 在 AI 中的局限性![]() 状态重复扩展迭代加深的主要缺点之一是冗余计算。它会在每个深度级别重新访问相同的节点,例如,当目标在深度 d 时,根节点会被访问 d 次。在大多数情况下,开销是可忽略的,但在深度解决方案或计算成本高的节点扩展时,这可能会导致性能非常高。 在分支因子很高的树或图中,与 A* 等技术相比,这种冗余可能效率低下,A* 使用内存密集型跟踪系统(如已访问集或优先级队列)仅访问节点一次。 不适用于带权图ID-迭代加深搜索不适用于边权重变化的图。由于 IDS 在扩展节点时并不考虑路径成本,而是基于成本进行扩展,因此它不一定能找到成本最低的解决方案。 在这种情况下,更适合使用的算法是统一成本搜索或 A*(这两种算法都优先考虑总成本而不是深度)。在计算要求更高的 AI 应用中,例如交通物流、网络路由或金融建模,其中成本和优先级很重要,IDS 可能产生次优解决方案,或者需要大量修改(例如 IDA*)才能变得有用。 深度或无限树在非常深的搜索空间或无限深的搜索空间中,迭代加深可能会效率低下,尤其是在目标距离根节点很远的情况下。由于算法从深度零开始并逐渐加深,它将在每个级别上浪费时间重复访问之前的节点。 在规划过程中,IDS 在涉及长动作序列、大型状态空间或复杂分层系统的场景中也可能难以扩展。此外,除非通过 IDA* 等方法进行增强,否则它没有启发式或学习到的优先级。即使没有这些增强,IDS 最适合进行浅层和中等深度的搜索。 比较分析迭代加深与广度优先搜索 (BFS) 的比较迭代加深使用的内存和空间少得多。它在内部采用深度优先搜索 (DFS) 策略,其空间复杂度为 O(d),其中 d 是目标节点的深度,并且只需要存储当前路径上的节点及其兄弟节点。这在资源受限的环境中很有优势,例如机器人或嵌入式系统,其中内存限制至关重要。 在巨大或无限的搜索空间中,优先使用 BFS 等内存密集型算法,尽管 IDS 会重新探索先前迭代中的节点,但由于其较低的空间要求,仍需要保留所有前沿节点。 迭代加深与深度优先搜索 (DFS) 的比较迭代加深搜索 (IDS) 纠正了传统深度优先搜索 (DFS) 的主要弱点:即容易陷入无限路径。DFS 使用极少的内存,但在无限空间中是不完整的,并且不保证最优性。然而,IDS 比 DFS 更完整,它利用了 DFS 的空间优势,并通过逐渐增加深度限制来完成。 这使得它能够在大型或无限的树中找到更浅(可能更完美)的解决方案,而 DFS 可能会在此处陷入困境。唯一的权衡是浪费的计算,IDS 乐于为这些时间敏感或不可预测的 AI 系统付出代价,以换取可靠性。 迭代加深与统一成本搜索 (UCS) 的比较统一成本搜索 (UCS) 通过提高路径成本而不是深度来搜索路径。它在加权图上也具有最优性和完整性,而普通 IDS 则假定每次移动的成本都相同。UCS 在需要最低成本路径的情况下具有优势,例如在路线规划或物流中。 UCS 在具有大量小成本边的情况下确实会变得内存密集且速度变慢。IDS 在未修改的情况下无法处理变化成本(IDA*),因此在成本敏感的情况下应使用 UCS。相反,IDS 在成本不重要或内存效率比路径最优性更重要的领域要好得多。 贪婪最佳优先搜索与迭代加深的比较贪婪最佳优先搜索 (GBFS) 基于启发式方法,扩展最接近目标的节点,因此它可能比 IDS 更快。然而,它是不完整的,并且不总是全局最优的;它的算法很容易陷入局部最小值或被启发式路线误导。IDS 不基于启发式,因此其搜索是无偏的且系统化的。 虽然 GBFS 在速度是关键因素且启发式方法接近准确(例如某些游戏 AI)的情况下很有用,但在必须保证找到解决方案(或好的解决方案)的情况下,IDS 是一个更可靠的选择,尤其是在缺乏良好启发式方法的情况下。 迭代加深与 A* 搜索的比较A* 搜索是一种有效的技术,它通过平衡成本和启发式方法来混合 UCS 和 GBFS,从而在加权图上提供最优计算。A* 在路径查找(例如 GPS 和机器人技术)中很受欢迎,因为它在有良好启发式方法的情况下非常有效且高效。然而,A* 内存密集,因为它需要保存所有已访问和前沿节点。 IDS 则内存效率高,不需要启发式,但速度较慢,且不适用于加权问题。IDS 应应用于内存有限的环境,并且边成本统一,而 A* 应应用于有启发式方法且需要精度的情况。 迭代加深与爬山法的比较爬山法是一种 局部搜索算法,它使用启发式评估技术来转向价值更高的状态。它速度很快,但可能会陷入局部最大值、平台或鞍点;因此,它不能保证找到全局解决方案。另一方面,IDS 只要花费一些时间,就能保证找到正确的答案(如果存在)。 在必须探索完全展开的状态空间(例如逻辑谜题或决策树)的情况下,IDS 更受青睐。爬山法可用于优化或 AI 学习代理,其目标是优化到足够好的解决方案,而不是最优或理想的结果。 迭代加深与 IDA*(迭代加深 A*)的比较IDA* 是一种组合搜索算法,它通过增加成本界限启发式(通常是 f(n) = g'(n) + h(n))来结合 IDS 的内存效率和 A* 的最优性。它不是按深度,而是按成本限制进行迭代加深。这使得 IDA* 可以在内存受限的加权图应用中使用,例如益智游戏求解器和嵌入式系统。 在需要成本敏感的解决方案的情况下,IDA* 比标准 IDS 更适合。然而,它与 IDS 一样会重新探索节点。 结论迭代加深搜索 (IDS) 是一种人工智能搜索算法,它具有同时最优和完整的巨大优势,并且像深度优先搜索一样只需少量内存即可运行。它探索搜索空间的能力,系统地搜索,非常适合解决未知深度的解决方案以及内存有限的问题。 存在一些局限性,例如不必要的状态探索和在加权图上的效率低下,但改进已导致其在应用技术上的扩展,例如通过 IDA* 使用回溯来增加。总的来说,IDS 仍然是 AI 领域的基本算法,尤其是在实时应用、游戏和需要可靠性、空间效率和完整性的系统中。 下一个主题深度学习在人工智能中的应用 |
我们请求您订阅我们的新闻通讯以获取最新更新。