Re: [問題] 最大流最小費用問題

作者: DJWS (...)   2015-04-03 23:54:53
※ 引述《FRAXIS (喔喔)》之銘言:
: ※ 引述《DJWS (...)》之銘言:
: : 然後min cost flow有一些莫名其妙的特例,
: 這邊就是我很難搞懂的地方
: : 例如circulation problem/transportation problem之類的。
: : 這些都不是重點,這些只是流量下限為0、supply/demand為0之類的,
: : 圖論方式的演算法還是一樣沒變。
: : 線性規劃的演算法可能有差一點點,我沒有仔細去研究。
: 書上大部分都是介紹 min cost circulation problem,因為這可以解其他所有問題。
: 像是 min-cost max flow 、 min-cost flow 、 transshipment 、 transportation
: 和 assignment 。
: 理論上是只要解 transshipment 就可以了,因為他跟 circulation problem 是等價
: (線性時間轉換),只是實際上應用有點麻煩。
: 每類問題自己又有分 有向/無向 、 上下限(正負) 、 cost正負 、
: supply/demand 等等變化。
: 雖然有技巧可以把這些都正規化成有向無上下限且cost皆為正,
: 但是要記起來挺麻煩的。
: 而且 把 cost 從負變正 和 無向轉有向 還會互相衝突??
你寫的那些問題,就是我所謂的莫名其妙的特例。
我覺得這些問題是冷知識,沒有必要鑽研。
事情其實可以很簡單,
考慮 是st還是循環 、 supply/demand 、 上下限 這三件事情就夠了。
最後總是可以用 min cost max st flow 的演算法解決。
---------------------------------------
正規化的方式也很簡單,orlin那本書有介紹。
 1. 下限變不見     (事先流一些,a supply -k , b supply +k)
 2. -cost變成+cost     (事先流到滿,residual network完全變反向,
             (cost就完全變號了。SSPA就有這種情況。)
 3. feasible flow變成max st flow (新增st,s連到supply,demand連到t,很直覺。)
只有這三步。很直覺,應該不會太難記。
---------------------------------------
至於無向邊,幾乎沒人討論。
因為無向邊必須規定如何流動,這很難搞。
例如可以同時雙向對流,又例如只能選擇一個方向流。
前者就很智障,不就是來回不斷流來流去,單純衝流量嗎?沒有討論意義。
後者的重點,已經不是流的問題了,而是 graph orientation 的問題了。
所以沒人想要討論這種奇怪的東西。
作者: FRAXIS (喔喔)   2015-04-04 00:16:00
我只是想釐清一下 那上下限可以是負數嗎?我知道負數的上限可以看成 反向邊的下限但是如果正向反向邊同時都有上下限(正負不限) 那該怎麼作?取交集?
作者: DJWS (...)   2015-04-04 06:52:00
上下限是複數很不自然 通常不會用到負數如果有負數 不如建兩條邊 或者討論無向邊(但不值得討論)然後正反邊都有上下限 照常處理 外觀像是來回折返一遍概念上有一種繞圈做白工的感覺 只是為了滿足下限
作者: FRAXIS (喔喔)   2015-04-04 21:31:00
那再問一下 有沒有什麼特殊圖上面最大流或是最小費用流有比較快速的算法?除了平面圖求最大流之外 還有比較特殊的圖可以加速嗎?喔 正確來說應該是 st 平面圖 一般的平面圖有點難搞..
作者: DJWS (...)   2015-04-05 07:07:00
不清楚沒有研究有好的計算性質的特殊圖 就是沒有環DAG/tree 無環 bipartite 無奇環 chordal無>3的洞可以往這邊去找至於平面圖的話 klein 前幾年有研究
作者: FRAXIS (喔喔)   2015-04-05 21:51:00
我有找到這個 http://ppt.cc/Aj1x 平面圖最小割算法
作者: DJWS (...)   2015-04-06 14:40:00
minimum st cut = shortest st path in dual graph
作者: alen332l (alen3321)   2014-03-14 10:10:00

Links booklink

Contact Us: admin [ a t ] ucptt.com