loading

费用流求解二分图最大权匹配

二分图最大权匹配问题:

\(n_1\) 个左部点,\(n_2\) 个右部点,\(m\) 条边,边有边权 \(w_i\),表示若选择这条边就会获得 \(w_i\) 的收益,求获得收益最大的一种图的匹配方案。

若考虑用费用流求解,建立超级源点 \(S\) 和超级汇点 \(T\)\(S\) 向每个左部点连边,流量 1 费用 0;每个右部点向 \(T\) 连边,流量 1 费用 0。图中每条边就按照对应点连边,流量 1 费用 \(w_i\),求最大费用最大流。

但这是错误的。因为费用流是在满足最大流的前提下的最大/小花费,而实际问题中可能存在流量更少而费用更大的方案。

为了处理这种方案,我们肯定要构造一组方案使得必定满足最大流的限制,然后就可以考虑费用最大的限制了。将每个左部点向 \(T\) 连边,流量 1 费用 0,代表这个左部点不匹配任何右部点。这样就是正确的了。

但是二分图最大权匹配仍应使用 KM 算法,因为费用流做法与边数有关,导致边数稍大就会 TLE,过不了 UOJ 板子。

posted @ 2024-02-03 17:41  dcytrl  阅读(160)  评论(0)    收藏  举报