Algorithm 在图中查找从s到所有顶点的最短路径
鉴于以下问题: 给定有向图G=(V,E)和权函数W:V→描述一个算法 找到从S到所有其他顶点的最短路径,其中 路径等于所有顶点之和。您需要更改现有算法, 这样就不需要编写新的算法了 请注意,权重函数在顶点上,而不是(!!)在边上。 我的想法是更改Bellman-Ford算法,并将Relax检查更改为以下内容:Algorithm 在图中查找从s到所有顶点的最短路径,algorithm,graph,shortest-path,Algorithm,Graph,Shortest Path,鉴于以下问题: 给定有向图G=(V,E)和权函数W:V→描述一个算法 找到从S到所有其他顶点的最短路径,其中 路径等于所有顶点之和。您需要更改现有算法, 这样就不需要编写新的算法了 请注意,权重函数在顶点上,而不是(!!)在边上。 我的想法是更改Bellman-Ford算法,并将Relax检查更改为以下内容: 1.if d[v]>d[u]+w[u] 1.1 d[v] <<-- d[u]+w[u] 1.2 PI[v] <<-- u 1.如果d[v]>d[u]+
1.if d[v]>d[u]+w[u]
1.1 d[v] <<-- d[u]+w[u]
1.2 PI[v] <<-- u
1.如果d[v]>d[u]+w[u]
1.1 d[v]让w:v->R
作为您的权重函数
创建一个加权函数:w':E->R
如下:w'(u,v)=w(v)
与w'一起运行dijkstra/bellman ford。根据w,设d'[v]是到v的最小路径的权重
如果最短路径是s->u1->u2->…->un->v
,则得到:d'[v]=w'(s,u1)+w'(u1,u2)+…+w’(un,v)
[根据dijkstra/bellman fofrd的正确性]因此d'[v]=w(u1)+w(u2)+……+w(un)+w(v)
[根据w'的定义]
因此,总的来说,你会得到:d[v]=w(s)d'[v]
,而d[v]是顶点的最短路径。我认为这是最好的起点。当然,维基百科今天遭到了抗议:)