Algorithm 用传送机寻路

Algorithm 用传送机寻路,algorithm,path-finding,robotics,cartesian,Algorithm,Path Finding,Robotics,Cartesian,我正在与一个虚拟机器人(Minecraft的ComputerCraft mod中的海龟)合作一个项目,在这个项目中,机器人将处于迷宫般的隧道中,并且必须在其中导航。世界已经被方便地划分成了块(一个二维笛卡尔图,每个块都有一个布尔可通过/不可通过的值),建造隧道的机器人将在行进中绘制它们的地图 此外,在机器人需要快速进入的区域,还散布着传送“捷径” 问题是:让机器人找到目的地的最佳方式是什么?系统将如何识别需要远程传送的区域?A*是最著名的算法,但是否还有其他更适合该应用程序的算法?请记住,我在寻

我正在与一个虚拟机器人(Minecraft的ComputerCraft mod中的海龟)合作一个项目,在这个项目中,机器人将处于迷宫般的隧道中,并且必须在其中导航。世界已经被方便地划分成了块(一个二维笛卡尔图,每个块都有一个布尔可通过/不可通过的值),建造隧道的机器人将在行进中绘制它们的地图

此外,在机器人需要快速进入的区域,还散布着传送“捷径”


问题是:让机器人找到目的地的最佳方式是什么?系统将如何识别需要远程传送的区域?A*是最著名的算法,但是否还有其他更适合该应用程序的算法?请记住,我在寻路算法方面的经验很少,所以您可能需要将事情分解为基本术语,以便我理解。有什么建议吗?

使用*唯一的问题是找到解决问题的方法。幸运的是,这一点已经得到了回答

系统将如何识别需要远程传送的区域


这取决于海龟实际移动的位置。如果他总是在同一个起点/终点移动,答案很简单:在起点和终点添加远程传送。对于更复杂的设置,我猜这是NP难的;如果是真的,你必须仔细研究(或者只是尝试一堆随机的位置,然后选择最好的位置)。

为什么不先尝试一个*并看看它的性能如何?我当然可以,但我假设a*没有经过任何破解就不会考虑像传送机那样的“快捷方式”。我还得研究一下算法是如何工作的。什么黑客?我认为A*可以处理零长度边。我很好奇。我将做一些研究并编写一个实现。可能是开箱即用,谁知道呢。