線性規劃可見單純形演算法
網路流:
增廣路演算法主體
具體增廣路增流方案
演算法步驟:
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。試設計乙個將倉庫中所有貨物運送到零售商店的運輸方案,使總運輸費用...