首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有向加权图中两个节点间最短路径的求取

有向加权图中两个节点间最短路径的求取
EN

Stack Overflow用户
提问于 2014-12-20 15:38:38
回答 1查看 3.1K关注 0票数 1

我有一个有向加权图G = <V, E>。我需要在st之间找到最短的O((V + E)*logV)路径。这将是一个非常简单的任务,如果我有一个经典的度量权重的路径。但事实并非如此。

Weight of path = two heaviest edges in this path

因此,经典的Dijkstra's algorithm with modified binary heap不起作用。我认为,我必须修改这个算法。我正试着去做,但我没有成功。

Example.

35之间的路径权重=4+2=6

37之间的路径权重=4+4=8

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-20 15:54:43

根据的反例编辑了我的答案。

你在问题中给出的例子并不是Dijkstra何时不起作用的好例子。

我相信你可以通过修改Dijkstra来做到这一点。关键是要跟踪每个顶点的多个备选方案。您不仅必须存储构成最短路径的weigth,还必须存储max < shortest.max和min > shortest.min中的备选方案。

Dijkstra是贪婪的,所以你必须弄清楚:一旦确定了最短路径,是否有可能找到另一条更短的路径。因为您将在增加的长度中发现路径,所以这是不可能的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27581717

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档