Graph 找到起始节点,以便通过特定节点获得最短路径

Graph 找到起始节点,以便通过特定节点获得最短路径,graph,dijkstra,Graph,Dijkstra,我有一个无向图,最多有10000个节点和50000条边。我需要找到我应该开始的节点,这样通过一些mustpass节点的距离将是最短的 我想在图的节点之间应用Dijkstra,但我不知道如何选择最佳的起始节点 mustpass节点可以以任何顺序访问。听起来像是NP难的版本,所以不存在简单快速的解决方案 您可以尝试使用启发式和近似算法找到次优解决方案,而且,因为您只需要访问节点的子集,所以可以将搜索限制在这些子集上。因此您的输入是G=(V,E)、节点p(必须通过的节点)和最终节点F。您希望找到节点S

我有一个无向图,最多有10000个节点和50000条边。我需要找到我应该开始的节点,这样通过一些mustpass节点的距离将是最短的

我想在图的节点之间应用Dijkstra,但我不知道如何选择最佳的起始节点


mustpass节点可以以任何顺序访问。

听起来像是NP难的版本,所以不存在简单快速的解决方案

您可以尝试使用启发式和近似算法找到次优解决方案,而且,因为您只需要访问节点的子集,所以可以将搜索限制在这些子集上。

因此您的输入是G=(V,E)、节点p(必须通过的节点)和最终节点F。您希望找到节点S,以便∂(S,P)∂(P,F)是极小值吗?如果是这种情况,则选择S=P并使用最短路径算法查找∂(P,F)。给你0+∂(P,F)。