Algorithm 给定一组可能的起始节点,找到访问特定节点并返回的最小路径

Algorithm 给定一组可能的起始节点,找到访问特定节点并返回的最小路径,algorithm,graph-theory,Algorithm,Graph Theory,我有一组节点(这里是O(E log V)解决方案: 让我们考虑启动节点必须通过节点< /LI> 使用Dijkstra查找所有“必须通过”节点对之间的最短路径 现在问题归结为6个城市的旅行商问题 我们可以检查O(6!)时间内的所有排列,也可以使用O(2^6*6^2)的动态规划,因为对于这部分,6是一个常数复杂性为O(1) 如果我没有弄清楚,我很抱歉,但我理解的是:我们从可能的起点(这里,4和5)取任意点。假设我们取4,将其包含在必须通过的列表中,然后找到最短完整循环的路径,就像在TSP中一样。我们

我有一组节点(这里是O(E log V)解决方案:

让我们考虑启动节点必须通过节点< /LI>
  • 使用Dijkstra查找所有“必须通过”节点对之间的最短路径
  • 现在问题归结为6个城市的旅行商问题
  • 我们可以检查O(6!)时间内的所有排列,也可以使用O(2^6*6^2)的动态规划,因为对于这部分,6是一个常数复杂性为O(1)

  • 如果我没有弄清楚,我很抱歉,但我理解的是:我们从可能的起点(这里,4和5)取任意点。假设我们取4,将其包含在必须通过的列表中,然后找到最短完整循环的路径,就像在TSP中一样。我们存储此距离。然后,以5为起点进行类似操作,并将此距离与之前的距离进行比较,以找到最小的距离。我们可以有近10000个起点,因此我们对一个实例执行相同的过程所有这些节点都将找到最佳解决方案?即找到最佳起点?@ShivenSinha在每个必经节点上运行Dijkstra将为您提供从每个必经节点到其他每个节点的最短路径。最后一步是循环所有非必经节点,并确定对于此初始/fi,必经节点的顺序是最佳的nal非必须通过节点。
    1 -> 2 : 1
    1 -> 5 : 2
    3 -> 2 : 3
    3 -> 4 : 5
    4 -> 2 : 7
    4 -> 5 : 10