首页 > 其他分享 >网络流最大流

网络流最大流

时间:2024-01-29 20:55:06浏览次数:21  
标签:二分 tmp 最大 level int 增广 网络

最大流问题

有向图 G 中,有两个特殊的点,源点和汇点,每条边有指定的容量,求S到T的最大流。

就像从源点放水,水量无穷大,汇点的水量是多少?

定义

c为容量,f为流量

流量守恒

\(f(x,y)\leq c(x,y)\)

容量性质

\(\sum f(u,x) = \sum f(x,u)\)

斜对称性

\(f(x,y) = -f(y,x)\)

容量网络,流量网络

残留网络=容量网络-流量网络,连两条边

增广路:残留网络上从源点到汇点的简单路径

反向弧:给算法“返悔的机会”

增广路定理:当前流为最大流的充要条件是无增广路

Ford-Fulkerson 方法

Edmonds-Karp 算法

残留流量为正,BFS

\(O(VE^2)\)

Dinic 算法

分层网络,用DFS一次求解多个增广路

BFS分层,DFS多路增广,当前弧优化:一个点被dfs两次,而接上去的前几个点无法增广,所以记录当前弧

正常时 \(O(V^2E)\)

二分图时 \(O(\sqrt{V}E)\)

实现

斜对称修改

u->v的边要记录v->u的边的下标。

链式前向星只需要把下标换成从2开始,异或1 tot=1

int dinic(){
	int res=0;
	while(dinic_bfs())res+=dinic_dfs(S,INF);
	return res;
}
bool dinic_bfs(){
	for(int i=1;i<=T;++i)h[i]=oh[i],level[i]=0;
	queue<int> q;
	q.push(S);
	level[S] = 1;
	while(!q.empty()){
		int x=q.front();q.pop();
		for(int i=h[x];i;i=e[i].ne){
			int y=e[i].to;
			if(!level[y]&&e[i].c>e[i].f){
				level[y] = level[x]+1;
				q.push(y);
			}
		} 
	}
	return level[T]!=0;
}
int dinic_dfs(int x,int cp){
	if(x==T)return cp;
	int tmp=cp;
	for(int &i=h[x];i;i=e[i].ne){//邻接表
		int y=e[i].to;
		if(level[y]==level[x]+1&&e[i].c>e[i].f){
			int t=dinic_dfs(y,min(tmp,e[i].c-e[i].f));//记住流量要实时减少tmp而非cp
			e[i].f += t;e[i^1].f -= t;
			tmp -= t;
			if(tmp==0)break;//当前弧更换要注意可能是tmp不够了而不是无法增广,所以不能放在for的条件判断上
		}
	}
	return cp-tmp;
}

实际应用(建模)

常用构图方式

S->T流对应原题中的方案

拆点

餐厅一题:拆点

状态表示优化

猪圈问题:一轮建m+1个点,顾客和m个猪圈,跑最大流

优化:一个好几轮没打开的猪圈,出边入边相同,可以合并

多个人使用同一个猪圈,则在他们顾客之间连无穷大的边,省去猪圈的点,和很多很多边,然后从顾客连出去边,符合题意中“特定数量”

行列建点

打扫卫生:行列建点

转化为二分图最小顶点覆盖

马:坏的格子不用连,二分图最大独立集

流网络 割 \((S,T)\) 分成 \(S\) 和 \(T=V-S\) 两个部分

割的容量不算反方向,净流量算反方向

最大流等于最小割定理

二分图性质

二分图匹配,选边,两两间没有公共点(匹配)

二分图最小顶点覆盖,选点,每条边至少有一个端点被选出(覆盖集)

二分图最大独立集,选点,点两两间没有边相连(独立集)

  1. 因为网络流的模型相同,根据最大流最小割定理,二分图最小点覆盖等于最大匹配。

  2. 二分图最大独立集等于总点数减去最小覆盖集。

通过反证,先证充分性,去掉独立集如果不是覆盖集,那么独立集间有边相连,矛盾。再证必要性,覆盖集一定占据了任意一条边的一个端点,那么独立集一定没有相连的边。(充分必要逻辑有问题)

最大权闭合子图问题

一些项目做了会赚钱,一些员工雇佣要花钱。一个项目需要指定的员工,一个员工雇佣后可以参加任意多项目,问经过项目取舍,最多可以挣多少钱?

可以建模成图,一个点选了,则出边都要选。建立网络流模型,原点向项目连边,员工向汇点连边,中间边权无穷大。应当在图上求最小割。

如果 \(S->P\) 没有被割且 \(P->Q->T\) 没有被割,则选了项目没有选人,不合法,而建模与题意吻合,跑最小割。

建模总结

数学研究性质,信息解决问题。

数学善于建立定理,概念。理念和建模是两码事,要符合实际问题。

标签:二分,tmp,最大,level,int,增广,网络
From: https://www.cnblogs.com/life-of-a-libertine/p/17995314

相关文章

  • 常见的八种网络攻击和防范措施
    在数字化时代,网络安全成为了一个重要的议题。保护个人和组织的网络安全是至关重要的。网络攻击又是一种针对我们日常使用的计算机或信息系统的行为,其目的是篡改、破坏我们的数据,甚至直接窃取,或者利用我们的网络进行不法行为。你可能已经注意到,随着我们生活中越来越多的业务进行数字......
  • Cisco Catalyst Center 2.3.7.4-VA - 网络管理和自动化
    CiscoCatalystCenter2.3.7.4-VA-网络管理和自动化CiscoCatalystCenter-NetworkManagementandAutomation请访问原文链接:https://sysin.org/blog/cisco-catalyst-center/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgCiscoCatalystCenter节约时间,不再......
  • 百望云受邀参加2024数据要素创新发展大会 共同发布“匿名数据网络”
    近日,由中国信息通信研究院(以下简称“中国信通院”)泰尔终端实验室主办的2024数据要素创新发展大会在天津举办。百望云受邀参会,与中国信通院、中移信息、联通在线、天翼数字生活、个推、极光、中互数科、数据空间研究院等行业企业共同发布了匿名数据网络。会议重点聚焦企业数据安全......
  • 4_物联网IwIP物联网网络开发
    相关技能:1以太网基础硬件设计及外设 TCP/IP协议2IwIP协议栈,RawAPI编程模型,TCP回响服务器的实现3Socket基础,socket接口函数的分析及应用4  FreeRTOS&IwIP的配置,及C/S架构的设计及编程5UDP模型6并发服务器7DNS域名解析,心跳......
  • 备份---网络设备的配置定时自动备份
    公司现有江苏、浙江、上海的所有网络设备配置备份的需求。我是kalilinux环境,ubuntu,CentOS,OracleLinux,RedHatLinux理论上支持。aptupdateaptupgrade–yapt-getinstallrubyruby-devlibsqlite3-devlibssl-devpkg-configcmakelibssh2-1-devgeminstalloxidize......
  • 代码随想录 day34 K 次取反后最大化的数组和 加油站 分发糖果
    K次取反后最大化的数组和按照元素的绝对值大小进行排序把绝对值大的且小于0的取反如果还能取反那么奇数次的话就把绝对值小的取反偶数次不用管加油站首先如果总油量小于总消耗是一定不能跑完的这里的思路是如果[0,i]区间不能油量小于消耗那么就尝试从下一个i+1......
  • 工作中的网络知识之四_时延
    工作中的网络知识之四_时延时延的巨大影响高性能最大的杀手是时延.不管是CPU取指还是取操作数.还是内存读取和写入还是磁盘的读写.以及网络的收发包.高性能最大的屏障其实是时延.本机的很多时延可以通过增加cache,增加索引,利用程序的时间和空间局限性进行优化.网......
  • 工作中的网络知识之三802.3和802.11
    工作中的网络知识之三802.3和802.11背景网络知识其实不仅仅有硬件,软件,IP地址性能相关,其实还有一些协议相关的内容.比如wifi或者是4G/5G的网络.所以想着这里再总结一下部分协议相关802协议簇IEEE802系列标准是IEEE802LAN/MAN标准委员会制定的局域网、城域网技术标准。......
  • 工作中的网络知识之一
    工作中的网络知识之一背景日常工作中环境问题其实有很多种,有应用自己的,数据库的,客户端的浏览器或者是移动app的但是更多的更难排查的问题其实是网络相关的环境问题.所以想分几个小组简单讲解一下网络相关的内容网络的基础知识现阶段的办公网络基本上都是TCP/IP协议簇下面.......
  • 网络要素服务(WFS)详解
    通过实例详细介绍了WebGIS中网络要素服务(WFS)的具体内容。目录1.概述2.GetCapabilities3.DescribeFeatureType4.GetFeature4.1Get访问方式4.2Post访问方式5.Transaction5.1Insert5.2Replace5.3Update5.4Delete6注意事项1.概述WMS是一个返回图片......