发布时间:2025-02-08 14:24:52 点击量:
HASH GAME - Online Skill Game GET 300
近年来,人们对缩小最先进的规划求解器与广义规划(GP)之间的性能差距重新产生了兴趣。广义规划是人工智能(AI)的一个研究领域,旨在研究如何自动合成能够解决多个经典规划实例的类算法解决方案。当前的一项进展是引入了基于最佳优先搜索(Best-First Generalized Planning, BFGP)的广义规划算法,该算法基于一种新颖的解空间,可以通过启发式搜索进行探索,而启发式搜索是现代规划器的基础之一。本文评估了并行搜索技术在 BFGP 中的应用,这是缩小性能差距的另一个关键组成部分。我们首先讨论了 BFGP 为何适合并行化,以及它与经典规划器的一些区别特征。然后,我们提出了两种简单的共享内存并行策略,这些策略能够随着核心数量的增加实现良好的扩展。
广义规划(GP)一直是人工智能(AI)中长期研究的一个领域 [6, 15]。广义规划的基础是自动规划,它研究如何构建从特定初始状态到目标状态的动作序列(通常称为计划)[3]。由于规划是一个难题(PSPACE 完全问题)[1],解决来自同一领域的多个问题实例在计算上是昂贵的。鉴于这一认识,广义规划研究如何合成能够解决来自同一领域的多个问题实例的通用计划,从而将计算复杂度降低为一次性前期成本 [5, 14]。
最先进的规划求解器通常是基于启发式的规划器 [16]。这些规划器使用启发式方法引导从初始状态到目标状态的组合搜索,通常基于计算放松计划的解成本作为到达实际解的估计成本 [2]。鉴于启发式搜索在规划中的成功,Segovia-Aguas 等人 [11, 13] 提出了一种基于启发式的广义规划方法,称为最佳优先广义规划(BFGP)。BFGP 利用一组新颖的广义规划原生启发式方法和一个独立于输入实例数量的新解空间,来计算通用的算法解决方案。
并行编程与 AI 的近期成功紧密相关,因为 CPU 制造商由于单核性能停滞而转向多核处理器 [7]。因此,人们对并行化基础算法(如最佳优先搜索(BFS))进行了显著的努力,这些技术已成功应用于规划领域 [1, 7, 9]。最具影响力的算法之一是哈希分布式 A*(Hash Distributed A*, HDA*)[7],它有效地处理了并行 BFS 的两个最具挑战性的通信开销:搜索节点的分布和保持一致的已访问节点列表。为此,他们使用哈希函数将每个状态分配给一个唯一的进程(允许本地重复检测),并使用异步通信。
关于 BFGP 的另一个相关细节是,它是一种贪心最佳优先搜索(Greedy Best-First Search, GBFS)。与 A* 不同,GBFS 由评估函数 ( f(n) = h(n) ) 引导,该函数仅考虑从当前节点 ( n ) 到达目标的估计成本(而不是同时考虑到达当前节点的解成本,即 ( f(n) = g(n) + h(n) ))[9]。在 GBFS 中,我们只对找到问题的解感兴趣,而不一定是最优解。同样,这一特性简化了 BFGP 的并行化任务,因为一旦找到解,就不需要检查其最优性。
并行策略 #2。在这种策略中,线程在并行搜索阶段分发有前途的节点,因此在搜索最有前途的状态和最小化通信开销之间存在权衡。在我们的解决方案中,我们计算每个生成节点的成本到目标值,如果该值等于或优于最后扩展的节点,我们将新节点发送给另一个线程。与 HDA* 不同,HDA* 使用哈希函数确定哪个进程将接收节点,我们只是简单地在所有线程之间循环。这种方法是可行的,因为 BFGP 不需要执行重复检测。表 2 评估了该策略的扩展性。
第一种策略表现非常好,在最复杂的领域中,加速比范围从 ∼4 倍到 ∼98 倍。此外,增加线程数量总是会带来更好的性能。另一方面,没有一种并行策略严格优于其他策略。在某些领域(如 Visitall),第二种策略比第一种策略具有更好的扩展性和性能,但在其他领域,它的执行时间更长。我们认为,更好的有前途节点优先级排序和异步通信的使用将有助于第二种策略比第一种策略表现更好。总之,我们的结果表明 BFGP 非常适合并行化,进一步的发展可以使 BFGP 能够处理来自 IPC 规划领域 [16] 的更复杂问题。