我正在开发一个带虚拟机器人的项目(计算机工具模块中的Turtles for Minecraft),机器人将在迷宫般的隧道中,并且必须在其中导航。世界很方便地已经分为瓦片(它们的2D笛卡尔图,每个都有一个布尔可通过/不可通过的值),构建隧道的机器人将在他们去的时候映射它们。
此外,在机器人需要快速进入的区域内散布着传送器“快捷方式”。
问题是:让机器人找到目的地的最佳途径是什么?系统如何识别需要传送器的区域? A *是最着名的算法,但还有其他更适合应用程序的算法吗?请记住,我对寻路算法的经验很少,因此您可能需要将其分解为基本术语,以便我理解。有什么建议吗?
答案 0 :(得分:2)
使用A *的唯一问题是为您的问题找到admissible heuristic。幸运的是,已经回答here。
系统如何识别需要传送器的区域?
这取决于乌龟实际上往哪里移动。如果他总是移动到相同的起点/终点,那么答案是微不足道的:在开始和结束时添加传送。对于更复杂的设置,我的猜测是这是NP难的;如果是真的,你将不得不调查global-optimization strategies (或者只是尝试一堆随机位置并采取最好的位置)。