我正在用一个虚拟机器人(《我的世界》的ComputerCraft模块中的海龟(进行一个项目,在这个项目中,机器人将处于迷宫般的隧道中,必须在隧道中四处导航。世界已经很方便地被划分为瓦片(它们的2D笛卡尔图,每个瓦片都有一个布尔可通过/不可通过值(,建造隧道的机器人会在行进时绘制它们的地图。
此外,在机器人需要快速进入的区域,还散布着传送机的"快捷方式"。
问题是:让机器人找到目的地的最佳方法是什么?系统将如何识别需要传送机的区域?A*是最著名的算法,但还有其他更适合应用程序的算法吗?请记住,我对寻路算法几乎没有经验,所以你可能必须把事情分解成基本术语才能让我理解。有什么建议吗?
使用A*的唯一问题是为您的问题找到一个可接受的启发式方法。幸运的是,这里已经回答了这个问题。
系统将如何识别需要传送机的区域?
这取决于乌龟实际移动的位置。如果他总是从同一个起点/终点移动,答案很简单:在起点和终点添加传送。对于更复杂的设置,我的猜测是这是NP困难;如果为true,则必须研究全局优化策略(或者只尝试一堆随机位置并选择最佳位置(。