将边权重加倍后的最短路径

Posted

技术标签:

【中文标题】将边权重加倍后的最短路径【英文标题】:Shortest path after doubling edge weights 【发布时间】:2015-06-24 11:54:42 【问题描述】:

假设我们有一个加权有向图 G,并且我们使用 A* 搜索或任何其他最短路径算法找到了 G 中顶点 u 和 v 之间的最短路径。现在假设我们将 G 中的所有边权重加倍。最短路径会改变吗?

我的论点如下:最短路径不会改变。调用原始路径 P 并假设存在从 u 到 v 的第二条不同的路径 P',使得在将边的权重加倍后,P' 比 P 短。那么,

    weight(P') < weight(P)

翻倍之后。然而,将两边除以 2,我们看到 P' 在加倍之前肯定也更短,所以 P 不是开始时的最短路径,我们有矛盾。因此,在将边缘权重加倍后,P 仍然是最短路径。

有人可以批评这个解决方案吗?对吗?

【问题讨论】:

【参考方案1】:

是的,最短路径保持不变。对边缘权重应用线性变换不会改变最短路径,只要您不否定边缘权重即可。

【讨论】:

我认为这可能有点夸大了......将每个边权重乘以一个正常数因子不会改变最短路径 - 这是正确的(因为乘法分布在加法之上)。然而,在每条路径边上加 1,这也是一种“线性变换”,会比段数较少的路径对段数多的路径进行更大程度的惩罚,这通常意味着存在不同的最短路径......跨度> @twalberg 将每个权重加 1 更恰当地描述为“仿射”,但我同意这里的措辞有待改进。 @DavidEisenstat 嗯......是的,我相信你是对的......已经有几年......几年......自从我上次完全精通线性代数概念以来,所以词汇量有点下滑。但是,如果区分线性与高阶多项式、指数、超越等,那么在“线性”的保护伞下考虑仿射变换并不太遥远……

以上是关于将边权重加倍后的最短路径的主要内容,如果未能解决你的问题,请参考以下文章

图上权重变化的最短路径

图-最短路径-Dijkstra及其变种

图 - 具有顶点权重的最短路径

数据结构8——最短路径

算法珠玑单源最短路径问题

数据结构图之三(最短路径--迪杰斯特拉算法——转载自i=i++