【问题标题】:Pathfinding with limited knowledge and no distance heuristic知识有限且无距离启发式的寻路
【发布时间】:2014-01-05 13:12:58
【问题描述】:

在我正在编写的一个简单的精英式游戏中,我无法为 AI 编写寻路程序。

这个游戏中的世界是由“虫洞”连接的少数“系统”,一艘船每回合可以从它所在的系统跳到它所连接的任何系统。人工智能仅限于知道它应该知道的事情;它不知道哪些链接来自它没有去过的系统(尽管它可以从它所见过的系统中解决它,因为链接是双向的)。 AI 的其他部分会根据其库存中的货物以及它在所经过的系统上记住的物品的价值来决定船舶需要到达哪个系统。

问题是,我不知道如何解决寻找目标系统路径的问题。我不能使用 A*;没有路径就无法确定到另一个系统的“距离”。我还需要这个算法高效,因为每次玩家轮到他时它都需要运行大约 100 次。

有人知道合适的算法吗?

【问题讨论】:

  • 如果人工智能从未到过系统,因此不知道哪里有虫洞进入系统,那么人工智能就无法知道通往它的路径,也就没有算法。你的问题有点自相矛盾。
  • 根据您的描述,这听起来更像是一个最大流量问题。查找 Edmonds Karps 算法。
  • @AnttiHuima 它永远不会尝试访问它没有去过的系统。如果它去过一个与未访问系统有链接的系统,它也知道虫洞从哪里进入系统;它只是不会知道所有这些链接。
  • @Martol1ni 这似乎更多是关于寻找流体向下流动的路径,这不是我在这里要做的。我试图找到一条从 A 点到 B 点的路径,其中两个点都是链接节点网络中的节点,而无法估计从一个节点到另一个节点所需的跳转次数。
  • 你可以让每艘船都保存一张它已经访问过的系统的图表吗?然后当它想返回之前访问过的系统时,可以对图进行广度优先搜索,找到路径。

标签: algorithm artificial-intelligence path-finding


【解决方案1】:

我最终实现了广度优先搜索的双向贪婪版本,它非常适合目的。简而言之,我只是让程序查看其起始节点所连接的每个节点,然后是这些节点所连接的每个节点,然后是所连接的每个节点......直到找到目标节点。

通常会建立一个适当路径的列表并选择最短的路径,但我尝试了另一种方法;我让程序并行运行两个搜索,一个从起点开始,一个从终点开始。当 'from' 搜索找到 'to' 搜索的最后一个节点时,就认为该路径已找到。

然后它通过检查路径上的每个节点是否连接到路径中更靠前的节点来优化路径,并删除它们之间的每个节点。

这种时髦的算法实际上是否比直接 BFS 更好还有待观察。

【讨论】:

    【解决方案2】:

    当涉及到未知环境时,我通常使用进化算法的方法。它并不能保证您会在有限的时间内找到最佳解决方案,但它是解决此类问题的一种方法。

    【讨论】:

      【解决方案3】:

      看看Partially Observable Markov Decision Problems (POMDP)。你应该能够用这个模型表达你的问题。

      然后您可以使用解决这些问题的算法来尝试找到一个好的解决方案。请注意,解决 POMDP 通常非常昂贵,您可能不得不求助于近似方法。

      【讨论】:

        【解决方案4】:

        最简单的作弊方法是通过,或至少尝试访问尽可能多的系统,然后将距离启发式实施为您去过的所有系统的总和。

        或者,更酷:

        我已经使用 ACO(蚁群优化)实现了类似的东西,并且与 PSO(粒子群优化)结合使用效果很好,但是,您的系统施加的额外限制意味着您必须花费一些(在至少一个)确定环境布局的会话,如果它是动态的......好吧......不过。
        好消息是这个算法完全绕过了启发式生成的需要,这是你需要的,因为你是盲目的。但请注意,如果您的搜索空间(运行次数)很小,这是一个坏主意。 (100 个可能是可以接受的,但 10 或 5 个......不是那么多)。

        这在处理大量节点(系统)时可以很好地扩展,并且它绕过了每个节点到节点关系的启发式距离计算需求,从而提高了效率。

        祝你好运。

        【讨论】:

          猜你喜欢
          • 2019-04-06
          • 2018-08-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-06-05
          • 2019-04-17
          相关资源
          最近更新 更多