Algorithm 最短路径算法-起点和终点已知的所有节点

Algorithm 最短路径算法-起点和终点已知的所有节点,algorithm,shortest-path,factorial,Algorithm,Shortest Path,Factorial,考虑到以下规则,我正试图找到一种算法来生成最短路径: 起点和终点是已知和固定的 只访问所有节点一次,不重复 请参考所附示例 除了简单地计算所有可能组合的总和并选择最低值之外,还有什么算法可以使用吗?如果你有大的数字,这是非常无用的 关于这一点,问题中提到的图是有方向的,所以,你们应该看看 有关详细说明和实施情况,请访问 然而,该解决方案是不可行的,即NP难,因此您也可以查看答案中的近似值Dijkstra算法用于找到从a点到Z点的最短路径。然而,在这种情况下,参考上述规则,起点和终点之间的所有

考虑到以下规则,我正试图找到一种算法来生成最短路径:

  • 起点和终点是已知和固定的
  • 只访问所有节点一次,不重复
请参考所附示例

除了简单地计算所有可能组合的总和并选择最低值之外,还有什么算法可以使用吗?如果你有大的数字,这是非常无用的


关于这一点,问题中提到的图是有方向的,所以,你们应该看看

有关详细说明和实施情况,请访问


然而,该解决方案是不可行的,即NP难,因此您也可以查看答案中的近似值

Dijkstra算法用于找到从a点到Z点的最短路径。然而,在这种情况下,参考上述规则,起点和终点之间的所有节点都必须是路由的一部分。您提供的链接是使用MST的TSP的2-近似值。这很有趣,但我不认为它回答了书面的问题。如果你在答案中提到这是一个近似值也会更好。这个答案的第一部分看起来不太好。让我们先看看条件:有开始节点、结束节点,所有节点都必须遍历。现在使用Prims algo,你可以得到一棵边代价最低的树,你必须得到一种线性的树,开始和结束节点都是叶子。使用TSP就是解决这个问题的方法,这个问题的可能的副本本质上就是TSP。虽然TSP的起点和终点都在同一个节点上,但您可以将问题转化为它——添加一个额外的节点,并将其与起点和终点的距离指定为小,将其与其他每个节点的距离指定为无穷大。然后,从额外节点开始和结束的任何最佳TSP路由都将是问题的解决方案(或解决方案的相反方向)。这是一个极难解决的问题。