2017-07-29 81 views
1

我知道爲什麼Dijkstra不適用於負重,但允許0作爲重量? 我認爲如果兩個節點的權重爲0,那麼連接這些節點的邊可以被消除,節點可以合併爲一個。 這是正確的嗎?或者我錯過了什麼?Dijkstra是否適用於非負面或正面權重?

+0

請注意,*非負*和*正*是相同的,'0'是一個正值。 – Zabuza

+0

嗯,我喜歡認爲'0'是無符號的,積極的意思是嚴格肯定的,根據我。 – Intersect

+0

沒關係,但是當別人說*「Dijkstra爲正面權重而工作」*那麼這意味着它也適用於'0',因爲對他們而言'0'是正面的,請記住。 – Zabuza

回答

1

是的,如果段的權重爲零,我們可以刪除它,如果該對點之間的所有區段均爲零,則可以全部刪除它們,並將兩個點合併!

希望這篇文章可以幫助你!

+2

擴展答案:通常的Dijkstra算法對零權重邊緣沒有問題。即使不合並,它也會輸出正確的結果。 – Zabuza