Dijkstra 是否适用于所有负权重

Does Dijkstra work with all negative weights

考虑到我们选择最负值并继续执行的条件,Dijkstra 是否会处理所有负权重? [普通 Dijkstra 算法]

网上找不到答案。

谢谢。

如果所有权重都是负数并且您选择了最小负权重那将是等距的传统Dijkstra,其中权重是正数并且选择最小的正权重,因此将工作正常。换句话说,您需要选择 最大 权重(最小负值)。

选择负权重就像选择最正权重一样。它不起作用,因为 Dijkstra 是一种最小化算法。

当您混合使用正权重和负权重并且图形具有循环时,Dijkstra 也会失败。如果目标是最大化总权重,那么负权重的循环会很好,但正权重的循环会导致无限循环,算法会选择一遍又一遍地循环。