网络流/二分图建模方法小结(不完全)

本文总结了网络流和图论中的多种建模方法,包括二分图最大匹配、最小覆盖、最大独立集、DAG最小路径覆盖等,以及它们在实际问题中的应用,如最大权闭合子图、固定流量最小费用流、最大密度子图等问题的解决策略。

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

网络流/二分图建模方法小结(不完全)

  1. 二分图最大匹配:S⟶1X,X⟶1/INFY,Y⟶1TS \stackrel{1}\longrightarrow X,X\stackrel{1/INF}\longrightarrow Y,Y \stackrel{1}\longrightarrow TS1X,X1/INFY,Y1T
  2. 二分图最小覆盖:选择尽量少的点,使得每条边至少一个端点被覆盖。最小覆盖===最大匹配(原理:最小割)
  3. 二分图最大独立集:选择尽量多的结点,使得任意两点不相邻。与最小覆盖互补。(X+Y−X+Y-X+Y最小覆盖)。
  4. DAG的最小路径覆盖:在图中找尽量少的路径,使得每个结点恰好在一条路径上。
  • 不相交路径覆盖:将所有结点拆为XXX结点iiiYYY结点i′i'i,如果原图有i→ji\rightarrow jij,那么加边i→j′i\rightarrow j'ij,最小路径覆盖===结点数−-最大匹配数。
  • 可相交路径覆盖:先FloydFloydFloyd求传递闭包,将所有连通的点之间加边,转化为上面的问题。
  1. 网格模型常见二分图建图方法:
  • 按照(r+c)%2(r+c)\%2(r+c)%20/10/10/1作为X/YX/YX/Y结点(原理:XXX结点之间/YYY结点之间互不相邻)
  • 每行作为XXX结点,每列作为YYY结点
  1. 最大权闭合子图:给定带权图GGG,求权和最大的点集,使得起点在该点集中的任意边,终点也在该点集。建图方法:将所有正权点与SSS相连,负权点与TTT相连,容量为权值的绝对值,保留原图的边,则最大权闭合子图===正权点的权和−-最小割
  2. 固定流量k的最小费用流:增广时检查一下如果flow+a>kflow+a>kflow+a>k,则只增广k−flowk-flowkflow单位
  3. 二分图的最大团:选最多点,使得这些点诱导的子图是完全图。最大团===补图的最大独立集
  4. 二分图最小覆盖/最大独立集输出方案:DFS,从Y列的所有非匹配点出发,依次走非匹配边,匹配边,非匹配边,匹配边…最后以匹配边结尾,并把路径上的点均标记。这样,{ YYY 列未标记+XXX 列标记 }就是最小覆盖,{YYY 列标记+XXX列未标记 } 就是最大独立集。
  5. 无源无汇有容量上下界网络的可行流:(原理:下界流满+所有点流量守恒,即:将新建的图的所有必要弧合并回原图的这一过程,满足所有边的下界必定流满+++所有点入流量===出流量)
    ①增加一个附加源和汇S,T。
    ②把每个节点的∑bu,i\sum{b_{u,i}}bu,i∑bi,v\sum{b_{i,v}}bi,v求出来,bbb是指下界。
    ③对于每个节点,若∑bu,i−∑bi,v>0\sum{b_{u,i}}-\sum{b_{i,v}}>0bu,ibi,v>0,则添一条从SSSiii,容量为∑bu,i−∑bi,v\sum{b_{u,i}}-\sum{b_{i,v}}bu,ibi,v的边。
    ∑bu,i−∑bi,v<0\sum{b_{u,i}}-\sum{b_{i,v}}<0bu,ibi,v<0,则添一条从iiiTTT,容量为∑bi,v−∑bu,i\sum{b_{i,v}}-\sum{b_{u,i}}bi,vbu,i的边。
    ④对于原网络中的点,连一条容量为 c−bc-bcb 的边。
    ⑤求从SSSTTT的最大流,若所有与SSS相连的边或与TTT相连的边都满载,则这是一个可行解,方案为④中所连边的剩余流量+b+b+b
  6. 有源汇有容量上下界网络的最大/最小流:先求有源汇的网络有上下界的可行流,这一问题与上面问题的唯一不同在于,并非所有点满足流量守恒,那么,我们连接t→st \rightarrow sts,下界为000,上界为INFINFINF,就转化为了前述问题。建好图后,运行最大流,这个可行流的大小就是t→st \rightarrow sts这条边的流量。然后删去t→st \rightarrow sts这条边(必须删,并且清掉G[s]G[s]G[s]G[t]G[t]G[t]对应的,若要求最大流,就求s−ts-tst最大流,答案就是可行流+{s−ts-tst最大流};若要求最小流,就求t−st-sts最大流答案就是可行流-{t−st-sts最大流}。
  7. 费用与流量平方成正比的最小费用流:设流量为xxx时,费用为ax2ax^2ax2。用拆边法,容量为ccc的边拆成ccc条容量均为1的边,费用分别为a,3a,5a,7a...a,3a,5a,7a...a,3a,5a,7a...,转化为最小费用最大流问题。
  8. 流量不固定的最小费用流:费用关于流量是下凸函数,因此不断增广,直到SPFASPFASPFA中单位流量费用为正时停止。
  9. 区间k覆盖问题:数轴上有一些左闭右开/左开右闭/左开右开的区间,选出权和最大的区间集,使得数轴上任一点最多被k个选中的区间覆盖。建图:所有的区间(u→v)(u \rightarrow v)(uv)加边u⟶1,−wvu\stackrel{1,-w}\longrightarrow vu1,wv,所有相邻点i⟶k,0i+1i\stackrel{k,0}\longrightarrow i+1ik,0i+1
  10. 最大密度子图:给定一个无向图,要求它的一个子图,使得子图中边数 ∣E∣|E|E 与点数 ∣V∣|V|V 的比值最大,即最大化:∣E∣∣V∣\frac{|E|}{|V|}VE。二分答案为k ,则要求解的问题是:选出一个合适的点集 VVV 和边集 EEE,令(∣E∣−k∗∣V∣)(|E|−k∗|V|)(EkV) 取得最大值。所谓“合适”是指满足如下限制:若选择某条边,则必选择其两端点。 建图:以原图的边作为左侧顶点,权值为1;原图的点作为右侧顶点,权值为 −k。若原图中存在边 (u,v)(u,v)(u,v),则新图中添加两条边 ([uv]−>u),([uv]−>v)([uv]−>u),([uv]−>v)([uv]>u),([uv]>v),,转换为最大权闭合子图。
  11. 给定图G=<V,E>G=<V,E>G=<VE>,初始时111属于AAA,nnn属于BBB,对于点iii,划给 AAA集合得 VAiV_{A_i}VAi分,划给 BBB集合得 VBiV_{B_i}VBi分,对于一条边iii,若它连接两个AAA集合点,得EAiE_{A_i}EAi分,若连接两个BBB集合点,得EBiE_{B_i}EBi分,分别连接A,BA,BA,B点,扣除ECiE_{C_i}ECi分,求最大总得分。建图方法:s⟶VAii,i⟶VBits \stackrel{V_{A_i}}\longrightarrow i,i\stackrel{V_{B_i}}\longrightarrow tsVAii,iVBit ,例外的,s⟶INF1s \stackrel{INF}\longrightarrow 1sINF1,n⟶INFtn \stackrel{INF}\longrightarrow tnINFt,对于原图的每条边,将其转化为容量为EAi2+EBi2+ECi\frac{E_{A_i}}{2}+\frac{E_{B_i}}{2}+E_{C_i}2EAi+2EBi+ECi的双向边,并且对于两个端点,再连边s⟶EAi2i,i⟶EBi2ts \stackrel{\frac{E_{A_i}}{2}}\longrightarrow i,i\stackrel{\frac{E_{B_i}}{2}}\longrightarrow ts2EAii,i2EBit,求出最小割,答案就是∑VAi+∑VBi+∑EAi+∑EBi−\sum{V_{A_i}}+\sum{V_{B_i}}+\sum{E_{A_i}}+\sum{E_{B_i}}-VAi+VBi+EAi+EBi最小割。
  12. Dilworth定理:对于任意偏序集都有,最大反链(最大独立集)=最小链的划分(最小可相交路径覆盖). 通过Dilworth定理, 我们就可以把偏序集(DAG)的最大独立集问题转化为最小可相交路径覆盖问题了。
  13. 霍尔定理:二分图G中的两部分顶点组成的集合分别为X,YX, YX,Y(假设有∣X∣≤∣Y∣|X|≤|Y|XY)。G中有一组无公共点的边,一端恰好为组成X的点(也就是存在完美匹配)的充分必要条件是:X中的任意k个点至少与Y中的k个点相邻,即对于X中的一个点集W ,令N(W)N(W)N(W)为W的所有邻居, 霍尔定理即对于任意W,∣W∣≤∣N(W)∣|W|≤|N(W)|WN(W)。推论:假设两边的点集分别为X,Y,则二分图的最大匹配数为∣X∣−max{∣W∣−∣N(W)∣}|X|−max\{|W|−|N(W)|\}Xmax{WN(W)},其中W是X的子集
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值