我正在实现一个需要我进行一些寻路的模拟。
当我的环境没有改变时,A* 对我来说很好。
当我遇到原始 map 中没有的静态障碍物时,LPA* 和 D* Lite 对我来说效果很好。
但是,当这些障碍物以一定速度移动时,我该如何处理?
是否有处理此问题的 LPA* 或 D* Lite 算法的变体?
或者我是否必须将某种形式的转向行为与这些算法结合起来?
最终,在我的模拟中,我希望我的“代理”在有障碍物移动的环境中从起点移动到终点。
最佳答案
您最好考虑将问题分成两部分,而不是尝试使用单个算法来解决它。
角色移动有两个组成部分:高级目标选择和寻路,以及局部转向。寻路解决了“我在这里,我需要知道如何到达那里”的问题。本地转向解决了“我正在去那里但有人挡住了我的路”的问题。
保持你现在的寻路方式。您需要添加的是角色在沿该路径移动时检测障碍物的能力,然后调整路径的该局部部分以避开障碍物。
游戏人工智能一书(作者网站:http://ai4g.com/ 和亚马逊:http://amzn.to/k9K62F)详细介绍了将寻路与避免碰撞相结合的几种方法。这个 paper 还很好地涵盖了高层次的转向算法。我实现的一种高效技术是转向管道,也称为协作仲裁。
任何完整的答案都取决于您的世界代表和其他特定于您的实现的因素,但我希望这会有所帮助。