算法横向和纵向遍历点

时间:2009-12-05 22:39:48

标签: path algorithm shortest

2D平面中有n个点。机器人想要访问所有这些但只能水平或垂直移动。它应该如何访问它们所以它所覆盖的总距离是最小的?

1 个答案:

答案 0 :(得分:4)

这是Travelling Salesman Problem,其中每对点之间的距离是| y2-y1 | + | x2-x1 | (称为直线距离或Manhattan distance)。它是NP-hard,这基本上意味着没有已知的有效解决方案。

维基百科上的

Methods to solve it

最简单的算法是一种天真的强力搜索,您可以在其中计算每个可能的点排列的距离并找到最小值。它的运行时间为O(n!)。这可以达到大约10个点,但是对于更多的点来说它会很快变得太慢。