Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm A*启发式:多点通过一次的最短路径_Algorithm_Shortest Path_Pacman - Fatal编程技术网

Algorithm A*启发式:多点通过一次的最短路径

Algorithm A*启发式:多点通过一次的最短路径,algorithm,shortest-path,pacman,Algorithm,Shortest Path,Pacman,我正试图想出一个好的和快速的启发一个明确的地图吃豆人游戏 我的启发式算法是计算吃豆人到达地图上每一个有食物的地点所需的最小距离。我目前的算法基本上是Prim的MST,它给我一个O(n logn)的运行时间,但没有考虑到pacman需要沿着一条边吃东西,以及返回到上一个顶点的情况 还有更好的吗 用另一种方式说:不提我的笔连接几个点的最低成本是多少 谢谢在运行全对最短路径算法并用食物标识顶点之后,这就成为了最重要的问题。你不能有效地求解它,但你可以在多项式时间内构造任意好的近似解。除非可以预先计算所

我正试图想出一个好的和快速的启发一个明确的地图吃豆人游戏

我的启发式算法是计算吃豆人到达地图上每一个有食物的地点所需的最小距离。我目前的算法基本上是Prim的MST,它给我一个O(n logn)的运行时间,但没有考虑到pacman需要沿着一条边吃东西,以及返回到上一个顶点的情况

还有更好的吗

用另一种方式说:不提我的笔连接几个点的最低成本是多少


谢谢

在运行全对最短路径算法并用食物标识顶点之后,这就成为了最重要的问题。你不能有效地求解它,但你可以在多项式时间内构造任意好的近似解。除非可以预先计算所有内容,否则可能需要使用近似值。如果你可以预先计算(或者保证你有足够的时间找到精确的解),那么一旦你得到了所有对的最短路径,你就可以简单地在你吃食物的顺序的所有可能排列中找到最小的总行走长度。通过注意两个食物块之间的最短路径何时与另一个食物块相交,这种蛮力方法可能会有所改进。

那么,什么是逼近TSP解的最简单方法?我上面的回答中有一个错误:为了得到有界误差近似,您需要稍微更改约束。“所有对最短路径”步骤确保距离是度量的(代价是可能让您重新访问一个点),这允许您使用Christofides算法获得最小值的150%以内。如果可以进一步保证距离是欧几里德距离(即正常几何中的直线距离),则可以构造任意好的近似值,但它们通常不值得额外的麻烦。更多信息,请参阅维基百科文章。