線性規劃網路流問題總結

2021-10-02 10:37:37 字數 738 閱讀 8799

線性規劃可見單純形演算法

網路流:

增廣路演算法主體

具體增廣路增流方案

演算法步驟:

isap演算法

即貼標籤,對所有的頂點標記到匯點的最短距離

最開始從匯點開始,匯點a的層數記錄為0

遍歷與a相鄰的點的層數,計算公式為在a的層數基礎上加一即可

重複第二步驟,直到到大源點

然後尋找增廣路徑,按照_floor[ u ] == _floor[ v ] + 1 和 容量大於流量的 的關係尋找u的下乙個頂點

如果當前頂點無法前進,那麼令當前的頂點的高度等於所有相鄰頂點的高度的最小值 + 1;如果沒有鄰接點,那麼高度等於節點數,即以後都不再訪問此節點;然後退回一步,重新搜尋即可

先找最小費用路,然後在該路徑中增加流量即可,見博文線性規劃–最小費用最大流

先找最大流,然後找負費用圈,減小到最小費用

重點講一下消圈演算法

在找到的最大流的網路中尋找負費用圈,找到後,負費用圈同方向加d,反方向減d,d是某路徑中的最小可增量。

消除負費圈的目的是,如果在乙個流網路中求出了乙個最大流,但對於一條增廣路上的某兩個點之間有負權路,那麼這個流一定不是最小費用最大流,因為我們可以讓一部分流從這條最小費用路流過以減少費用,所以根據這個思想,可以先求出乙個最大初始流,然後不斷地通過負圈分流以減少費用,直到流網路中不存在負圈為止。

增加源點與匯點即可,其他與上述求解最大流實現一樣

匈牙利演算法,見博文匈牙利演算法 – 匹配問題

學習筆記 線性規劃 網路流

max min 來道例題 洛谷p3337 zjoi2013 防守戰線 列出式子 begin mathrm sum i c i y i s.t.forall i in 1,n sum y j geq d i forall i in 1,n y i geq 0 end 令 a intercal j in...

線性規劃與網路流24 魔術球問題

題目點這裡 最小路徑覆蓋問題 這道題,一開始我花了100多ms,看了下排行榜,發現個10多ms的。看了很久他的 才明白怎麼回事。同時更加加深了我對匈牙利演算法的理解。我從他的 中學到的是 1 若多加幾條邊,並不需要重新跑一邊匈牙利,只需要從沒匹配的點開始dfs就可以了,2 若因為多加了乙個點,從而多...

線性規劃與網路流24題 17 運輸問題

description w公司有m個倉庫和n 個零售商店。第i 個倉庫有ai個單位的貨物 第j個零售商店需要bj個單位的貨物。貨物供需平衡,即sigma ai sigma bj 從第i個倉庫運送每單位貨物到第j個零售商店的費用為cij。試設計乙個將倉庫中所有貨物運送到零售商店的運輸方案,使總運輸費用...