有一个绘图仪可以绘制以'x'和'y'坐标形式提供给它的点。绘图仪手只能水平或垂直移动。输入将以'n'坐标列表的形式提供:{(x1,y1),(x2,y2} ...(xn,yn)}。最初,绘图仪将在原点。
需要提供一个算法来返回所有'n'点的列表,这些点表示绘图仪手以输出列表中提供的确切顺序绘制所有'n'点的最小累积距离。
通过一些初步的回忆,我很想到输出会有一个'n'点列表,这些点按'x'和'y'坐标排序。
例如,
输入 - (3,5),(1,2),(4,3)
输出 - (1,2),(3,5),(4,3)
但是,我担心这将是正确的算法。
所以,问题是:导出一个算法来解决这个问题,如果上面的说法是正确的,那就证明一下。
此外,如果绘图仪也允许对角线移动,派生算法会观察会发生什么变化!
答案 0 :(得分:2)
这个问题是旅行商问题的NP难度变体,因此精确解决方案仅适用于小问题。有关一般说明,请参阅Traveling Salesman Problem。 Software与某些可能有用的程序有关联。
答案 1 :(得分:0)
正如帕特里夏已在她的评论中写道,这相当于曼哈顿距离的旅行商问题。这是一个NP完全优化问题,最好通过近似或启发式算法解决实际问题(比如说超过10个点)。任何始终产生最优解的确定性算法都可能会对更大的问题规模进行非常严格的扩展。