※ 引述《saladim (杀拉顶)》之铭言:
: : 中文 最小费用最大流
: : 英文 minimum cost maximum s-t flow 古代文献经常省略s-t
: : 我猜你看到的是 中文 最小费用流 的SSPA算法。那是不一样的主题。
: : 英文 minimum cost flow
: http://perso.ens-lyon.fr/eric.thierry/Graphes2010/amaury-pouly.pdf
: 我看的是这个, 就是因为如同内文提到, 这提可以用另一种解法, 就想说一起看看证明
: 是长什么样子, 没想到不只样子有差, 连要怎么转化都有点疑惑.
跟我猜的一样,你看的这篇标题就写着 minimum cost flow 啊。
不一样的两个问题,无论你怎么转化都转不过去。
: 另一种解法在UVA 的forum还有一个本质相同 但是我想是另一种变形的方式,
: 另外看不出来cost在每个iteration有变化是因为每个arc的e.cost并没有变化阿?
: ( http://mycodebattle.com/2014/10/UVa-10806/ )
int u = ed;
while (u != st)
{
edges[p[u]].flow += a[ed];
edges[p[u] ^ 1].flow -= a[ed];
u = edges[p[u]].from;
}
return true;
剩余容量变了,图上多出许多反方向的边,也就是负的cost的边。
: 这边指的cost是指走过arc的cost, 而不是total cost. 这也是理论里面说每个
: iteration需要变化的地方 所以我想是哪里理解错误吧?
你看的文献就不对,要怎么跟你讨论?
但是你说的大致上是正确的,
无论是 最小费用流 还是 最小费用最大流 的SSPA都是如此。
: 另外我还会去看一下 最小费用流 跟 最小费用最大流的差别 ORZ
建议你找英文的资料,因为中文网络上几乎没有人把这件事搞清楚,尤其是竞赛选手。
图论算法强者tarjan有写一本网络流的书,
它里面有稍微提到 minimum cost maximum flow,
可以加减参考看看。
https://books.google.com.tw/books?id=m1rAB3uWwBwC
: 恳请解惑~~
: 谢谢~