Python,循环最短路径

时间:2015-02-23 09:18:06

标签: python algorithm geometry shortest-path

我正在尝试制作奇怪的最短路径查找器方法。但我不知道我怎么做。

我需要一个算法。我做了一些研究,发现了一些寻找最短路径的算法,如Dijkstra算法,Floyd-Warshall算法,Johnson's算法。但我认为他们没有达到我的期望。

enter image description here

我想要的是:应该从红点开始,应该遍历所有蓝点并以红点结束。

有算法吗?

(真的很抱歉我的英语。我希望你能理解我。)

1 个答案:

答案 0 :(得分:6)

您的问题是Hamiltonian Cycle Problem的变体,NP-Complete,因此没有已知的有效解决方案(并且大多数人认为解决方案不存在,但尚未得到证实)

汉密尔顿循环问题说:给定一个图G=(V,E),找出是否有一个简单的循环(每个顶点最多被遍历一次)穿过所有顶点,并且是一个经典的NP完全问题。 / p>

在给定哈密顿循环问题时,减少非常简单,颜色为红色的随机点,其余的点为蓝色。当且仅当问题的解决方案是新图上“修改”问题的简单路径时,才能解决汉密尔顿循环问题。


由于问题是NP-Complete,这意味着没有已知的最佳有效解决方案。您可以尝试使用一些可能适用于小图形的强力技术,或者尝试使用适用于近似/启发式解决方案的技术。