匹配算法:从基础到加权的深入解析
1. 匹配相关基础概念与Tutte - Berge公式
在匹配问题的研究中,有不少关键的概念和公式。对于一个图,匹配的相关操作和性质是研究的重点。
1.1 花的次匹配实现
在花(blossom)的次匹配(hypomatching)实现过程中,有如下要点:
- 每次收缩一个奇数回路 $C$ 时,会创建一个新的(超级)节点 $c$,该节点有一个指针 blossom[supervertex[c]] 指向 $C$ 的顶点有序列表。
- 当遇到一条增广路径 $P$ 穿过对应超级节点 $b$ 的花 $B$ 时, blossom[supervertex[b]] 会得到一个奇数回路 $C$。设 $v$ 和 $w$ 分别是 $C$ 中与增广路径 $P$ 中的匹配边和非匹配边相邻的唯一顶点。若 $v = w$ 则完成操作;否则,$w$ 在 $C$ 中被匹配,$v$ 未被匹配。此时,$w$ 处的匹配边为 $C$ 提供了一个方向,沿着该方向移动 $C$ 中的匹配,直到 $v$ 被匹配。若 $v$ 是超级节点,则递归应用此过程。
在 CardinalityMatching.alg 的实现中,不会显式地进行移动直到遇到 $v$,而是在 $C$ 的除最后一条边外的所有边上交替使用非匹配边和匹配边,这与上述操作结果相同。
1.2 Tutte - Berge公式
Tutte - Berge公式给出了匹配问题中的一个重要对偶结果。当算法终止时,图中有外顶点、内顶点和未标记顶点。所有未匹配顶点都是外顶点,且它
超级会员免费看
订阅专栏 解锁全文
1402

被折叠的 条评论
为什么被折叠?



