网络流&二分图匹配

本文详细探讨了网络流和二分图匹配的概念,包括最大流、最小割、Ford-Fulkerson和Dinic算法。同时介绍了二分图匹配的Hall定理和匈牙利算法,并给出了经典模型如最大权闭合子图、最小费用最大流的解决方案。最后,讨论了二分图最大权匹配的KM算法及其应用实例。

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

网络流

最大流

问题简述:
有一个有向图,存在源点 S S S 和汇点 T T T,每条边有一个流量,求从 S S S T T T 最多能经过多少流量。

例如,在下图中:
在这里插入图片描述
最大流为 4 4 4

最小割

:表示一个切面或切线,将网络分为分别包含源点和汇点的两个子集,该切线或切面与网络相交的边的集合,称为图像的割。
最小割:网络的所有割中,边权值和最小的割。
具体解释还可以参考百度百科

显然的,最大流=最小割

Ford-Fulkerson算法

基本思想:
这是一种贪心思想,只要存在从源点到汇点的路径,我们就沿着其中一个扩充路径(具有可用容量的路径)发送流。 然后我们找到另一条路径,依此类推。
当不再能够找到流量增加路径时,将达到最大流量。
但是可能存在一直循环的情况,流可能甚至不会收敛到最大流量。

Dinic算法

每次 b f s bfs bfs先把图分层,然后在分层图上增广(多路增广,当前弧优化)。

经典模型

最大权闭合子图

有一个有向图,选择某个点就必须选择其后继点。选择每个点都有一个花费或奖励,求总奖励的最大值。

解决方案:
建图,所有正权点连向S,所有负权点连向T,假设初始全选所有的正权点,减掉最小割即为答案。

最小费用最大流

每条边有一个费用,每经过1的流量就会消耗固定的费用,求最大流时费用最小是多少。

解决方案:
建反向边然后贪心,每次找最短的增广路。

上下界网络流

  • 上下界可行流
  • 有源汇上下界最小流
  • 有源汇上下界最大流
  • 上下界最小费用可行流

二分图匹配

问题简述:
给定一个二分图,左侧n个点右侧m个点,求能选出多少条端点不重复的边。

可以用匈牙利算法或 Dinic \text{Dinic} Dinic 算法求解。

Hall定理

是一个用来判断二分图是否存在完美匹配的定理。
内容如下 二 分 图 存 在 完 美 匹 配    ⟺    对 于 任 意 S , 都 有 ∣ N ( S ) ∣ > = ∣ S ∣ 二分图存在完美匹配\iff 对于任意S,都有|N(S)|>=|S|

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值