2017-07-29 78 views
1

我知道为什么Dijkstra不适用于负重,但允许0作为重量? 我认为如果两个节点的权重为0,那么连接这些节点的边可以被消除,节点可以合并为一个。 这是正确的吗?或者我错过了什么?Dijkstra是否适用于非负面或正面权重?

+0

请注意,*非负*和*正*是相同的,'0'是一个正值。 – Zabuza

+0

嗯,我喜欢认为'0'是无符号的,积极的意思是严格肯定的,根据我。 – Intersect

+0

没关系,但是当别人说*“Dijkstra为正面权重而工作”*那么这意味着它也适用于'0',因为对他们而言'0'是正面的,请记住。 – Zabuza

回答

1

是的,如果段的权重为零,我们可以删除它,如果该对点之间的所有区段均为零,则可以全部删除它们,并将两个点合并!

希望这篇文章可以帮助你!

+2

扩展答案:通常的Dijkstra算法对零权重边缘没有问题。即使不合并,它也会输出正确的结果。 – Zabuza