【问题标题】:find the Shortest Path between all the vertices in a graph without giving start or end points在不给出起点或终点的情况下找到图中所有顶点之间的最短路径
【发布时间】:2013-10-23 08:10:08
【问题描述】:

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

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

【问题讨论】:

    标签: matlab graph artificial-intelligence shortest-path


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      您的问题的一般情况的复杂性至少与旅行商问题一样高。试想一下你的两个端点基本在同一位置的情况,那么你的问题就相当于旅行商。

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

      【讨论】:

      • 不同。您的问题明确指出“我有多达五个已知起点和终点的点。”我不知道如何有效地解决更大的问题,但 Visruth 的回答看起来不错。
      猜你喜欢
      • 1970-01-01
      • 2023-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多