找到图形中所有顶点之间的最短路径,而不给出起点或终点

时间:2013-10-23 08:10:08

标签: matlab graph artificial-intelligence shortest-path

我知道旅行商问题,但有没有其他算法/问题更符合我的需求/描述?我需要借助这样的数学描述来描述我的问题。

我有一组具有已知起始和终点的节点。所以我只需要计算访问这两者之间所有三个点的最短路径。 Dijkstra和类似的算法试图找到两点之间的最短路径,所以在这里它们可能不会访问它们之间的所有点。或者是否有一种算法可以找到最短路并访问两点之间的所有点?

2 个答案:

答案 0 :(得分:2)

您可以使用蚁群优化算法来实现它。请参阅Ant colony optimization algorithms

答案 1 :(得分:1)

您的问题的一般情况的复杂性至少与旅行商问题一样高。想象一下你的两个端点基本上处于相同位置的情况,那么你的问题就等同于旅行推销员了。

如果你的图表中从未期望超过五个点,你真的需要打扰花哨的算法吗?您可以直接搜索最佳解决方案。由于唯一的决定是您访问中间三个点的顺序,因此您只需要测试3个! = 6条不同的路径。即使我误解了你,你想要访问所有节点的总体最短开放路径,那仍然只有5个! = 120个不同的测试路径(如果两个方向的距离相同,则为60)。