连接n个点的最短路径

时间:2014-10-15 18:43:28

标签: algorithm graph shortest-path

enter image description here

我有n分,我需要连接所有这些,最小化最终距离。上面的图像表示一种算法,在每个节点中它连接到最近的一个,但最终输出可能真的是。

我一直在寻找很多,我知道一些寻路的算法,但不知道一个解决这个问题的人。我在Math Stackexchange上发现了一个问题,但答案是没有提供任何算法 - https://math.stackexchange.com/a/581844/156584

是否有任何算法可以解决这个问题?否则我就可以强迫它了。

编辑:关于我期望的结果的一些说明:每个节点可以连接到其他2个节点,创建一个连续的路径(比如拿笔而不提起它,连接节点,最小化最终距离) )。我不想创建一个循环(这是旅行商问题)。

PS:这个问题也可以翻译成“带有n个顶点的完整图形,并且想要选择边缘集合,使图形连接起来,但边缘权重之和最小化”

1 个答案:

答案 0 :(得分:2)

这个问题被称为最短的哈密顿路径问题,它是NP难的。因此,如果点数很小,您可以使用回溯或动态编程来找到最佳解决方案。如果点数很大,您可以使用启发式和/或近似值来获得相对较好的答案(但在这种情况下,并不总是能找到最佳答案)。