【发布时间】:2012-12-20 11:43:02
【问题描述】:
我想知道,当无向图中存在多个直接连接时,Dijkstra 算法是否能正常工作。
例如:
我想使用 Dijkstra 找到最快的路径,但是还有一个附加条件。边缘上所有附加数据的总和不能> = x。因此,如果出现 weight: 3 的边使用错误,我的程序将尝试使用第二条边。
编辑:
我的任务是在边缘的additional_data之和不能高于x的附加条件下找到最快的路径。你能告诉我如何处理这个问题吗?
edit2:(设置赏金)
我一直在研究互联网,直到找到link。 有一个关于如何做我要求的事情的解释。 (中上级)
我现在正在尝试以某种方式使用它 2 天,但我担心我无法正确理解此算法。我想请你们中的一些人帮助我解决这个问题,通过更多地解释我的例子(几个第一步)。示例如下:
【问题讨论】:
-
平行边不会破坏 Dijkstra,但附加条件会。
-
这是一个完全相同的副本,但原始问题没有解决方案 - 仅声明其他地方存在解决方案(并且 SPOJ 的 815 人已经找到了解决方案)。
-
这 不是 完全重复——另一个问题根本没有提到一对节点之间可能存在两条或更多路径的可能性,也没有附加在下摆上的额外条件。
-
这个问题是 np-complete,但如果
sum(additional_data)的界限不是相当低,您将需要研究近似算法