我有一个没有权重的2D网格上带有A*脚本的人工智能。什么是理想的或典型的方式来管理一个“无路径”的情况与这些人工智能,例如,人工智能是从他们的最终目标被无法行走的砖块?我可以看到开放列表的上限,但这似乎是武断的--毕竟,通往目标的道路可能很长--但是,达到这个目标的典型方式是什么呢?
发布于 2020-09-09 13:44:54
通常,A*应该对它应该执行的迭代次数有一个限制。没有可以使用的“默认限制”,因为可以使用多个策略对此进行测试。
TLDR:使用分治简化较小问题的解决方案,以获得最佳结果,并将A*限制在受限空间或迭代量上。
从最坏到最好。
发布于 2020-09-09 14:02:44
如果两个瓷砖之间从来没有任何可行走的路径,那么它们就没有理由成为同一个图的一部分。如果映射是静态的,则可以将映射预处理为保证在所有瓷砖之间具有有效路径的区段。
如果映射是完全动态的,那么您可能必须设置一个严格的节点数量上限。
如果只有特定的节点可以被阻塞/解除阻塞,那么您可能需要一个多层次的策略。也就是说,为每个部分创建一个节点,并在这个图中运行一个初步的路径查找。
对于被NPC阻塞的节点,需要另一种解决方案,例如在路径查找过程中忽略节点,并在冲突发生时处理冲突。
https://stackoverflow.com/questions/63812638
复制相似问题