“若把源到某个左点的容量提高,就允许该点承担多次配对,输出已不再是本页的普通匹配。边权需要匈牙利算法或费用流;一般图的奇圈需要开花算法等方法,不能直接套用左右分层网络。二分图匹配也可视为两个划…”
形式陈述
Oracle 模型与目标
给定同一有限底集
以及独立性 oracle:输入
算法从
次独立性查询和同阶的附加图搜索工作。这里可用成员位数组表示查询集合,临时改动至多两个位置、查询后恢复;若接口要求每次显式复制整个集合,还须另计复制成本。若一次 oracle 成本至多为
交换有向图的方向
固定当前公共独立集
源集合与汇集合为
因此一条
最短增广路与对称差
若
其中
外部顶点比内部顶点多一个,所以
最短性使这些单元素交换能够按次序合并。先用一个基本回路事实:若
在
从独立集
无增广路时的最优性证书
若从
具体地,对
对
取
另一方面,任意公共独立集
所以当前
直觉
交换图把“加入一个外部元素会破坏哪套独立性”拆成交替方向:沿路径依次移出旧元素、放入新元素,最终外部元素多一个。最短性阻止局部交换之间产生回路冲突;若再无增广路,可达集又把当前解切成两侧秩和恰等于其大小的上界证书。
例子与边界
具体例子:二分匹配
给二分图
要求每个左端点至多关联一条已选边; 要求每个右端点至多关联一条已选边。
公共独立集恰是匹配。交换图中的外部边若能替换一条冲突的已匹配边,就对应沿交替路翻转端点占用;源表示左端未被占用的外部边,汇表示右端未被占用的外部边;二者之间的交换路径恢复普通 匹配增广路。交换图中的长度零路径是一条两端均空闲的边,在原图中对应长度一的匹配增广路。拟阵交算法把“端点冲突”推广成任意两套拟阵独立性 oracle。
推论与应用
失败边界与近邻算法
单拟阵最大权基由贪心解决;两个拟阵的无权公共独立集需要交换图增广。加权拟阵交还必须给弧赋 reduced cost、维护势并找最短路径,不能把本页 BFS 中的“最短”简单改成按元素权排序。
三个 partition matroid 的交已经能表达三维匹配,一般为 NP-hard;“两个”是该多项式算法的结构边界。共同独立集族自身通常不是拟阵,因此不能对
参考资料
- Michel X. Goemans, Lecture Notes on Matroid Intersection, MIT 18.433, 2015-04-08,§6.2(Largest Common Independent Set):交换图方向、最短路径增广与可达集秩证书。
- Jack Edmonds, “Matroid Intersection,” Annals of Discrete Mathematics 4, 1979, 39–49.
- William H. Cunningham, “Improved Bounds for Matroid Partition and Intersection Algorithms,” SIAM Journal on Computing 15(4), 1986.
- Alexander Schrijver, Combinatorial Optimization: Polyhedra and Efficiency, Springer, 2003, chapters 39–41.