图论瓶颈边定义疑问:单条扩容增流才算还是集体扩容就算?
问题核心是「瓶颈边」的两种定义差异,不存在逻辑冲突
- 你最初认知的是单条可生效的瓶颈边定义:仅单独提升该边容量,就能直接提升整个网络的最大流,这类边也常被称为「关键边」,只有当该边是所有最小割的公共前向边时,才满足这个条件。
- Stack Overflow回答中使用的是最小割边集成员的定义:只要某条边属于任意一个s-t最小割的前向边,就被归为瓶颈边。只要集体提升某一个最小割内所有边的容量,网络最大流就会同步提升。
针对你举的示例做验证:
当前网络最大流为6,存在两个容量为6的最小割:
- 割集1:顶点划分为
{S}和{a,b,T},跨割前向边为S→a,割容量为6 - 割集2:顶点划分为
{S,a}和{b,T},跨割前向边为a→b,割容量为6
按第一种定义,两条边都不属于瓶颈边:
- 单独把
S→a的容量提升到10,此时最小割变成割集2,容量仍为6,最大流不变 - 单独把
a→b的容量提升到10,此时最小割变成割集1,容量仍为6,最大流不变
按第二种定义,两条边都属于瓶颈边:
- 同时提升
S→a和a→b的容量到10,最小割容量上升为10,最大流也会同步提升到10
两种定义在不同的研究和应用场景下均有使用,没有对错之分,使用前明确对应场景的定义边界即可。
内容的提问来源于stack exchange,提问作者kd8sp
相关产品推荐
相关产品推荐

