Johnson算法是一種用于解決帶有負權邊的稀疏圖的最短路徑問題的算法。它的主要思想是通過對圖進行一些變換,使得圖中不存在負權環,然后利用Dijkstra算法求解每對頂點之間的最短路徑。
下面是Johnson算法的詳細步驟:
添加一個新的頂點s到圖中,并且從s到圖中的每個頂點v添加一條權重為0的邊。這樣就得到了一個新的圖G’。
使用Bellman-Ford算法計算從頂點s到圖中每個頂點v的最短路徑長度h(v)。如果Bellman-Ford算法檢測到圖中存在負權環,則算法終止,因為這意味著沒有最短路徑存在。
對于原始圖G中的每個邊(u, v),將邊的權重更新為w’(u, v) = w(u, v) + h(u) - h(v)。這個步驟的目的是消除負權邊,因為在原始圖中存在負權邊時,Dijkstra算法無法正確工作。
對于新的圖G’,使用Dijkstra算法計算從每個頂點u到每個頂點v的最短路徑長度d’(u, v)。根據步驟3中的轉換,最短路徑長度d’(u, v)實際上是原始圖G中頂點u到頂點v的最短路徑長度。
對于每對頂點u和v,計算原始圖G中頂點u到頂點v的最短路徑長度d(u, v) = d’(u, v) - h(u) + h(v)。
最后,根據步驟5得到的結果,可以得到原始圖G中每對頂點之間的最短路徑長度。
Johnson算法的時間復雜度為O(V^2 log V + VE),其中V是頂點的數量,E是邊的數量。雖然該算法在稀疏圖上的時間復雜度相對較高,但它可以處理含有負權邊的圖,并且相對于其他算法來說,它具有更好的性能。
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
c語言中正確的字符常量是用一對單引號將一個字符括起表示合法的字符常量。例如‘a’。數值包括整型、浮點型。整型可用十進制,八進制,十六進制。八進制前面要加0,后面...
2022年天津專場考試原定于3月19日舉行,受疫情影響確定延期,但目前延期后的考試時間推遲。 符合報名條件的考生,須在規定時間登錄招考資訊網(www.zha...
:喜歡聽,樂意看。指很受歡迎?!巴卣官Y料”喜聞樂見:[ xǐ wén lè jiàn ]詳細解釋1. 【解釋】:喜歡聽,樂意看。指很受歡迎。2. 【示例】:這是...
散戶線和主力線指標哪里看?散戶線和主力線指標在股票軟件上看,用戶輸入個人信息登錄之后進行查看即可。只要是進入股票市場的用戶都是可以查詢到自己投資的股票變化的。散戶線指標是指根據市場交易的數據,統計、判斷得出大約的散戶持股數,這指標可以用于反映某一家股票集中或分散的趨勢。主力進出指標的綠線向上突破黃線、白線且三線向上發散,表示主力有效控盤,可逢底介入,持股待漲。需要注意的是,散戶線上升,說明籌碼較為...
【資料圖】關于商細蕊結局的知識大家了解嗎?以下就是小編整理的關于商細蕊結局的介紹,希望可以給到大家一些參考,一起來了解下吧!1、商細蕊結局生死未卜、下落不明。程鳳臺和范湘兒(佘詩曼飾演)離開北平的時候,也給了商細蕊一張火車票。2、程鳳臺在火車站一直等待,可是再也沒有等到商細蕊出現。昔日風光無限的梨園魁首,早已消失得無影無蹤。...
支付寶余額寶是有風險的,只是風險比較小。余額寶的本質就是貨幣基金,其收益是來自投資的貨幣基金,收益并不是固定的,是基金投資就會有風險,但貨幣基金的風險較小。在賬戶安全方面,支付寶里的資金被盜時,客服會積極的幫助用戶找回資金,如果資金確實找不回,用戶還可以向支付寶申請全額理賠,所以支付寶的安全性還是比較高的。余額寶的安全性余額寶的風險自然沒有銀行存款低,但是余額寶的安全性并不比銀行存款的安全性低。余...