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