Blossom算法,开花算法简单理解

开花算法,又称Blossom算法,用于求解无向图的最大匹配问题。通过交错路径、增广路径和Berge定理,不断改进匹配,直至找不到增广路径为止。在树上进行BFS搜索,遇到花朵时进行特殊处理,最终找到最大匹配。算法适用于解决如夏令营分组等公平分配问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有条件的建议去油管上看,讲的很清楚https://www.youtube.com/watch?v=3roPs1Bvg1Q

引例:如果你是夏令营负责人,你的任务是将一群人分为两组。为了公平起见,每个人在卡片上写下了自己希望匹配的人,根据这些卡片,你要尽可能让希望彼此在一起的人更多。

1 基本概念

开花算法用于图中最大匹配的计算,为了方便理解我们给出几个概念:

1.1 匹配

若G=(V,E)是无向图,边集M属于E,M中任意两边均不相邻,M是G的匹配。下图黄色部分就是一个匹配。

1.2 渗透点

顶点v和M中边关联,则v为渗透点,否则为非渗透点。图中橙色即为非渗透点,也是在寻找最大路径要用到的。

1.3 交错路径

M是G的一个

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值