问题描述
我想对图(图中的示例图)执行 Edmond 匹配算法或 Blossom 算法,但如何从空匹配集开始?
算法是这样工作的:
给定:图 G 和匹配 G 中的 M
任务:找到匹配的 M' 和 |M'| = [男| + 1 或 |M'| = 即时消息|如果 M 最大
1 令 F 为所有暴露于 M 的节点组成的森林; 2 在那里的时候 是外部节点 x 和边 {x,y) 与 y \in V(F),添加 (x,y} 和 匹配边覆盖 y 到 F;
3 如果在同一棵树中有相邻的外部节点 x,y,则收缩 在 F \cup {x,y) 中循环 (M-blossom) 并转到第 2 步;
4 如果不同树中有相邻的外节点x,y,则 沿M-增广路径增广M P(x) \cup {x,y} \cup P(y);
5 以相反的顺序,撤消每次收缩并重新建立近乎完美的 开花的匹配。
解决方法
不要以空的 M
开始算法。您必须提供一个,通常通过使用贪婪算法生成它,该算法解析图 e
的所有边 G
并将每个 e
添加到 M
if {{1} } 形成一个匹配。