最大流最小費用演算法中的spfa找增廣路是貪心演算法嗎?

時間 2021-06-02 17:49:25

1樓:yougth

寫個我部落格中的通俗易懂的理解吧

所謂最小費用最大流:就是在保證從源點 S 到匯點 T 的流量最大的前提下,使費用最小

這就在原先最大流問題的網路中,給每條邊上新加上了費用,求的不在是最大流,而是在最大流的前提的下最小費用,最大流的路可能有多條。

求解最大流的時候,我們不斷的在殘餘網路上不斷的貪心增廣而得到最大流,現在邊上多了費用,而求得正好是最小的費用,那麼我們是不是每次可以沿著最短路增廣呢,每條邊的費用看作是權值,這樣求得的必然是最小費用最大流。

至於寫錯了,先找個模板研究研究,研究懂了自己寫乙個自己的模板,網路流難點在於建圖,建圖好了就剩套模板的事情了。

2樓:豬鼻蛇

首先反正是你錯了。

其次在這裡SPFA的意義是代替EK演算法裡面的BFS的功能(這個BFS又是為了代替FF裡面DFS的功能),具體是什麼你自己想想。

最後其他人到底在回答什麼我完全沒看懂。

3樓:Coldwings

不是貪心

是你用錯了

spfa是單源最短路演算法,其實質與dijkstra一致,理論原理都是動態規劃的最優子結構與無後效性,找增廣路是單源最短路問題,沒毛病。

所以,要麼你寫錯,要麼構圖錯,要麼理解有誤,可以從中選一樣來描述你的問題。

如何使最大流的 Dinic 演算法達到理論上的最壞時間複雜度?

何文陽 不知道有沒有人認真研究過Dinic演算法的時間複雜度證明。Dinic演算法每輪從源點到匯點建一次分層圖,然後進行一次dfs,尋找增廣路徑,每次增廣至少使分層圖中一條邊容量變為0,並且複雜度為O 增廣路徑長度 當找不到增廣路徑時再進行下一輪。這樣計算的話,由於每一輪結束後源點到匯點不再連通,因...

為什麼飛機剩餘功率最大對應最小阻力速度?

剩餘功率 發動機拉力一阻力 X速度 假設飛機油門較小,發動機拉力 最小阻力,則只有在最小阻力速度時剩餘功率為0,其餘速度下剩餘功率均小於0 愛愛艾琳 因為飛機要開始運動需要發動機功率,隨著速度增大,功率需要的越來越小,但是到了乙個臨界點,就是速度增大減少的功率小於速度增加需要的功率,就是最低點,你可...

最大最小處理器狀態該調成多少?

最近剛好遇到這個問題,對於執行緒撕裂者來說,32個核心,3975wx,如果採用節能,所有處理器會顯示2.17GHZ,但是功耗方面就上穿下跳,30多w到60多瓦亂跳,系統也變慢,非常不適合日常工作,設定成高效能模式或者卓越模式吧,日常待機就在4Ghz到3.5G之間跳動,一點不穩定,溫度方面也不穩定,然...