Algorithm 查找给定源和一组目标之间的最短路径
您将获得一个加权连通图(20个节点),其中所有边都具有正权重。我们有一个机器人从a点开始,它必须在B点、D点和E点通过。其思想是找到连接所有这4个点的最短路径。机器人的电池也很有限,但它可以在某些地方充电 在研究了互联网之后,我想到了两种算法:Dijkstra的和TSPDijkstra的将找到一个节点与其他每个节点之间的最短路径,TSP将找到连接所有点的最短路径。TSP是否存在只在一组节点之间找到最短路径的变体?毕竟,在TSP中,所有节点都标记为“必须通过”。我仍然没有考虑到电池的限制Algorithm 查找给定源和一组目标之间的最短路径,algorithm,dijkstra,shortest-path,traveling-salesman,Algorithm,Dijkstra,Shortest Path,Traveling Salesman,您将获得一个加权连通图(20个节点),其中所有边都具有正权重。我们有一个机器人从a点开始,它必须在B点、D点和E点通过。其思想是找到连接所有这4个点的最短路径。机器人的电池也很有限,但它可以在某些地方充电 在研究了互联网之后,我想到了两种算法:Dijkstra的和TSPDijkstra的将找到一个节点与其他每个节点之间的最短路径,TSP将找到连接所有点的最短路径。TSP是否存在只在一组节点之间找到最短路径的变体?毕竟,在TSP中,所有节点都标记为“必须通过”。我仍然没有考虑到电池的限制 提前谢谢
提前谢谢 您可以将图形简化为TSP,然后在其上调用TSP算法:
u
和v
的距离u,v
u
和v
以上是最优的,因为假设有一条较短的路径
D0=u->...D1->...->D2->...->Dk->...->t=D{k+1}
Di->…->D{i+1}
至少具有FloydWarshall(Di,D{i+1})
(Floyd-Warshall的正确性)的权重,因此边(D0,D1,D2),…,(Dk,D{k+1)
存在于修改后的图中,其权重小于/等于给定路径中的权重
因此,根据TSP解算器的正确性,通过使用
D0->D1->…->Dk->D{k+1}
,您可以得到一条至少与候选最优路径一样好的路径。您可能还想研究广义旅行商问题(GTSP):节点被划分为子集,问题是找到在每个子集中恰好访问一个节点的最小长度路由。允许模型从每个子集中选择它想要访问的节点。如果有必须访问的节点,您可以将它们自己放在子集中。注意TSP是一个问题,而不是一个算法。我一直在关注你的很多答案,这些答案都是非常完整和精确的+1@sasha谢谢你的反馈,感觉很好:)谢谢@amit,这真的帮了我很多忙!:)这在电池限制下仍然适用吗?@多元主义我认为可以,但它的简单/难易程度取决于充电点。例如,如果你可以在任何“必须通过”点充电,您只需从修改后的图表中修剪每个重量高于电池容量的边。对于任意节点,这将更加困难,需要考虑一下,但这似乎有点超出了这个问题的范围(特别要求忽略它)。