首页 > 其他分享 >上下界网络流

上下界网络流

时间:2023-01-09 17:56:32浏览次数:37  
标签:原图 可行 源点 网络 流量 下界 rightarrow

上下界网络流,就是每条边既有流量上界也有流量下界的网络流。分为无源汇上下界可行流、有源汇上下界最大流、有源汇上下界最小流三种。

我们回顾网络流模型的两个关键要素:流量守恒和容量限制。流量守恒是除了源点和汇点之外点的总流量均为 \(0\) 的限制,而容量限制则是对每条边加了一个限制:不仅要小于一个 \(c_上\),还要大于一个 \(c_下\)。

想象之前学的最大流模型都是有源点汇点,并且求的最大流是源点流出的流量最大值。没有源点和汇点的时候,每个点流量都为 \(0\)。没有下界的时候图可以静如死水,也就没有什么最大流一说了。加了下界之后,网络流这张图不可以静如死水,可能必须要动起来了。这时候我们就遇到了一个问题,需要求出一个可行流。

例如这样,用 \([c_{下},c_上]\) 表示上下界,红色标注是一个可行流。
image

加上源点汇点之后,我们同样有求最大流环节;并且由于加上了上下界,我们还有求最小流环节。

image

例如这张图,最大流和最小流分别为如下两张图:

image
image

接下来我们具体讨论这三种问题怎么解决。

无源汇上下界网络流

上下界网络流是没法维护的,我们基本的想法是要把它转化为只有上界。考虑对于一条边,我们把流量和容量都减去 \(c_下\),然后最后还原的时候复原。

这样做会有一个什么错误呢?容量限制依然满足,但是流量不守恒了!这是因为,每个点删掉的出边和入边下界和之差不一定是 \(0\)。假设所有入边下界之和为 \(c_入\),出边下界之和为 \(c_出\)。原流量为 \(0\) 的点如今流量(流出-流入)为 \(c_入 - c_出\)。

这怎么办?我们其实可以考虑建立一个虚拟的源点,补充消失的流量。也就是说,要求 \(s\) 对该点有 \(c_入 - c_出\) 的流量。如果是负数,要求该点对 \(t\) 有 \(c_出 - c_入\) 的流量

怎么处理新加流量?其实直接加为容量求最大流就好了,并且要求这个最大流必须满流。也就是说,\(s\) 连出去的每一条边都必须满流,\(t\) 连进来的每一条边都必须满流。这两个一定同时达到,因为 \(\sum \limits_{i} c_入 - c_出 = 0\)。

考虑该做法的正确性:对于新图 \(G'\)(唯一确定)和新图的一个最大流 \(f'\),对最大流只取出中间部分,每条边加上原有的下界,依然保持容量限制和流量守恒。

另外,原图的每一个可行流和新图的每一个最大流一一对应。这个不证明了。

有源汇上下界最大最小流

考虑存在源点和汇点的情况。这种情况下,我们先建一条 \(t \rightarrow s\),容量为 \(+\inf\)。然后变成无源汇上下界可行流,先求出一个可行流再说。然后直接在这个可行流上抓出原图,在残量网络上直接跑 \(s \rightarrow t\) 或者 \(t \rightarrow s\) 的最大流(取决于题目问的是最大还是最小流)。

这个为什么是对的?考虑增广路定理:对于原图 \(G\) 的一个流 \(f\),如果原图上不存在增广路,那么 \(f\) 是最大流。

那么这张图里呢?求出的流 \(f\) 是新图里的,甚至不是原图的可行流。(\(S,T\) 流量不守恒)但是我们把新图里的任意一个在 \(f\) 上寻找若干条 \(s \rightarrow t\) 的增广路得到的图中 \(t \rightarrow s\) 的那条新增边上的流量 \(f'\) 减去 \(f\),得到的是一个 \(s \rightarrow t\) 的可行流。为什么呢?

证明:首先 \(S,T\) 满流,因此减掉之后 \(S,T\) 流量不仅守恒,而且不存在流量。这样图的范围就缩减为原图的了。接着看每条边的流量。显然是增广路上的流量,所以是可行的。然后 \(s,t\) 两个点如果看成之前的无源汇,那么 \(t \rightarrow s\) 减去增广路上的对应流量即可,还是一个无源汇可行流。如果看成原图上的有源汇,那么是正常的退流/加流操作。

由于 \(|f|\) 固定,所以只需要找到一个最大的新增边上的流量 \(|f'|\) 即可。(关键边思想)

这里来一张求最小流的图,看的比较清楚。

原图:
image
新图:
image
找到的一个满流:
image
dinic的结果:
image
最小流:
image

标签:原图,可行,源点,网络,流量,下界,rightarrow
From: https://www.cnblogs.com/Zeardoe/p/17037767.html

相关文章

  • 普通家庭网络两台基本千兆路由器组网实现同WiFi名同密码
    普通家庭网络两台基本千兆路由器组网实现同WiFi名同密码准备工作:1.确认家里的两台路由器属于基础入门版路由器,如小米A4,支持IPv6,同时带有5Ghz的频段,不支持mesh组网模式(mes......
  • [安卓]微信迁移聊天记录,手机端总显示无线网络 wifi
    安卓手机:备份记录,迁移记录都无法成功,显示不在同一网络,手机网络名称总为wifi其实是需要给微信一个权限:开启WLAN的权限给微信设置好权限之后,重启微信或者重启手机,然后就......
  • 后端面试网络部分(一)
    后端面试整合(一)网络部分1.OSI的七层模型分别是?各自的功能是什么?物理层:底层数据传输,如网线;网卡标准。数据链路层:定义数据的基本格式,如何传输,如何标识;如网卡MAC地址......
  • 全景剖析阿里云容器网络数据链路(二):Terway EN
    作者:余凯本系列文章由余凯执笔创作,联合作者:阿里云容器服务谢石对本文亦有贡献前言近几年,企业基础设施云原生化的趋势越来越强烈,从最开始的IaaS化到现在的微服务化,客户的......
  • webERP的网络资源
       官方网址:​​www.weberp.org​      ​​http://weberp-accounting.1478800.n4.nabble.com/​​      ​​http://www.minghao.hk/bbs/thread.php......
  • 【卷积神经网络】01 卷积神经网络简介
    戳一戳!和我一起走进深度学习的世界导读深度学习发展已久,我们经常听到别人说神经网络,如果做计算机视觉,我们也会经常听到别人说卷积神经网络。今天要分享这篇文章带我们一起了......
  • 网络运维实用小工具
    常用工具一:tcping.exe我们需要测试tcp端口,ping命令虽然好用,但​不能测试端口,因为ping基于ICMP协议,属于IP层协议,所以无法测试传输层的TCP/UDP端口。1、WIN+R按键,输入CMD打开......
  • 获取网络图片报错,url编码问题(url中含有中文)
    报错信息:java.io.IOException:ServerreturnedHTTPresponsecode:400forURL:http:// 错误:使用poi导出会议记录word,其中包含文字和图片,导出时图片无法显示。原因......
  • 从零开始学神经网络 2
    大家好,我是gdut本科生一枚,本文是我的学习笔记,内容来自目前正在学习的神经网络课程,内容部分来自csdn博客,视频来源于b站,如有侵权请联系我删除,谢谢。内容写的一般,希望这个博客......
  • 【晶振】NTP网络校时服务器(卫星时钟)电路里的主心跳
    【晶振】NTP网络校时服务器(卫星时钟)电路里的主心跳【晶振】NTP网络校时服务器(卫星时钟)电路里的主心跳京准电子科技官微——ahjzsz晶振是NTP网络校时服务器(卫星时钟)电路......