给出了一个绘图仪,它可以以“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)
但是,恐怕这是正确的算法。
所以,问题是:导出一个算法来解决这个问题,如果上面的方法是正确的,那么就证明它。
另外,如果绘图仪也允许对角移动,派生算法将观察到什么变化!

最佳答案

该问题是旅行商问题的NP-难变量,因此精确解只适用于小问题有关一般说明,请参见Traveling Salesman ProblemSoftware链接到一些可能有用的程序。

10-08 19:58