我有一系列的图形坐标,我需要通过它们全部找到最短的单向路径。我没有预定的开始/结束,但每个点只能触摸一次,不需要返回到最佳原点。通过多个节点的最短单向路径
我已经尝试了一些TSP方法,但它们似乎都基于在这种情况下在最终返回原点而导致极低效率的结果。
例
1,13
3,0
3,7
2,21
2,11
3,12
1,19
3,6
将解析为
3,0
3,6
3,7
3,12
2,11
1,13
1,19
2,21
注:
是的,我试图搜索功能,有一个基本相同的问题 Algorithm: shortest path between all points 然而,唯一真正的答案是TSP,再次,闭路电路效率低下。
它并不需要100%准确的,我已经有置换的方法,但它的速度太慢,我需要处理至少〜25-30点,具有良好的近似稳定工作对我来说
提前致谢。
编辑澄清,TSP趋向于解决在IMG#1,我期望的结果是IMG#2
图3是通过一个TSP和IMG#4解决了上述样品所期望的(X COORDS移回 - 0.5用于可见性)
夫妇更良好的措施#1 = TSP,#2 =期望
基本上我想的最短连接n个点,使用无论哪个起点和终点都是最高效的
这与PHP有什么关系?您是否有要显示的代码代表节点和图形的结构? – rik 2011-01-24 08:59:08
嗯,我猜它不直接与PHP相关,除了我更喜欢PHP解决方案,因为它是我希望它结束的语言(假设PHP可以在合理的时间内处理处理),但算法或一些体面的评论使用主要语言(C++,java,ruby等)编写的代码就足够了 – 2011-01-24 09:04:20
图形中的模式表示不需要路径_changing directions_。如何增加与(x2,y2)<(x1,y1)的链接的成本?它会将标准TSP算法偏向左上角附近的解决方案,并在右下角附近完成。 – Apalala 2011-01-25 15:45:04