問(wèn)一下為什么dijkstra算法不能處理負(fù)權(quán)邊.最好舉例說(shuō)明啊,越仔細(xì)越好...
問(wèn)一下為什么dijkstra算法不能處理負(fù)權(quán)邊.最好舉例說(shuō)明啊,越仔細(xì)越好...
數(shù)學(xué)人氣:115 ℃時(shí)間:2020-06-19 03:19:29
優(yōu)質(zhì)解答
會(huì)形成環(huán),使得路越走越短,到不了終點(diǎn).不是應(yīng)該每遍歷一個(gè)點(diǎn)后就放進(jìn)一個(gè)集合,這樣最后另外一個(gè)集合中不會(huì)再有結(jié)點(diǎn)了,怎么會(huì)死循環(huán)....你試試用dijkstra求這個(gè)路...因?yàn)閐ijkstra算法所需要的是當(dāng)前最短路徑,也就是說(shuō),它所求的必定是最短的,當(dāng)每條邊都是正數(shù)時(shí),它可以保證,以后每條邊,因?yàn)槭羌臃?,所以肯定比?dāng)前邊的值要大,但有負(fù)數(shù)就不一定了.....上面那幾個(gè)數(shù)分別是7,5,-5...看的清嗎?會(huì)出現(xiàn)錯(cuò)誤答案我知道,但是有人說(shuō)回出現(xiàn)死循環(huán),我覺(jué)得不會(huì)啊,1->2 1,2->1 -5,2->3 7;有人說(shuō)上面那個(gè)例子是死循環(huán),可我覺(jué)得不會(huì)出現(xiàn)這個(gè)...不會(huì)出現(xiàn)啊.....因?yàn)楸粯?biāo)記了....我記錯(cuò)了...如果用Bellman_ford會(huì)有負(fù)權(quán)值回路......dijkstra 不能處理負(fù)權(quán)邊,是因?yàn)樗鼰o(wú)法保證當(dāng)前所選的邊一定是最短邊,比如說(shuō)上面的例子,如果把-5改成5的話,它就可以保證5一定為最短邊,因?yàn)楹竺娴倪\(yùn)算為加法,而如果有負(fù)權(quán)邊的話,后面就變成減了,它就無(wú)法保證了....
我來(lái)回答
類(lèi)似推薦
- Dijkstra算法問(wèn)題
- dijkstra算法為什么不能處理邊權(quán)值負(fù)數(shù)的情況,哪位師兄師姐解釋下.清晰的有不少于20的加分.
- 迪杰斯特拉算法為什么不能有負(fù)權(quán)邊
- dijkstra算法是什么?
- Dijkstra 算法是什么?
- 初中化學(xué)計(jì)算題!很簡(jiǎn)單的.
- ET走了還剩多少個(gè)字母?
- 根據(jù)首字母補(bǔ)全單詞:I think robots can p____ do most things like people in the future.
- It is all same to me
- 游泳池長(zhǎng)50米,小明游了20個(gè)這樣的長(zhǎng)度,他一共游了多少千米?
- ax+b=o
- 已知直線的兩點(diǎn)坐標(biāo) 求直線斜率 那個(gè)公式是什么?
猜你喜歡
- 1列式計(jì)算的要求是什么?題目只要求列式計(jì)算,沒(méi)有補(bǔ)充說(shuō)明,那么能不能分步計(jì)算或是用解方程來(lái)計(jì)算?
- 2overall 和 all in all 是不是都可以表示 “總的來(lái)說(shuō);總之”的意思?
- 3詩(shī)詞 望穿秋水 不見(jiàn)高軒的意思
- 4若a=-5,a+b+c=-5.2,求代數(shù)式a2(-b-c)-3.2(c+b)的值.
- 5求兩道列式計(jì)算
- 6X=6+(6+X)×1/3 22-X×1/4-1/5X=1 (126-X)×2/9-1/6X=7
- 7等腰梯形底角為60度,如何平分成四個(gè)大小形狀都一樣的
- 8山字下面一個(gè)豆字念什么?
- 9關(guān)于物質(zhì)的ph值
- 10How much is this seeater?同義句()()()this sweater cost?
- 11一般血毒的癥狀是什么?
- 12一艘宇宙飛船A與另一艘正在空中環(huán)繞地球運(yùn)行的飛船B對(duì)接在一起,以( )