1、运 筹 学 Operations Research,Chapter 7 图与网络 Graph and Network,1. 图的基本概念 Basic Concepts of Graph 2. 最小树问题 Minimum Spanning Tree Problem 3. 最短路问题 Shortest Path Problem 4. 最大流问题 Maximum Flow Problem,2018年11月5日星期一,A,C,B,D,C,B,A,引例:哥尼斯堡七桥问题,您能从A、B、C或D任意一点出发 走遍7座桥并且每座桥只走一次最 后回到原出发点吗?,D,2018年11月5日星期一,图可 定义为点和
2、边的集合,记作,式中是点的集合,是边的集合。注意上面定义的图区别于几何学中的图。在几何学中,图中点的位置、线的长度和斜率等都十分重要,而这里只关心图中有多少点以及哪些点之间有线相连,如果给图中的点和边赋以具体的含义和权数,如距离、费用、容量等,把这样的图称为网络图,记作。图和网络分析的方法已广泛应用于物理、化学、控制论、信息论、计算机科学和经济管理等各个领域。,2018年11月5日星期一,例如图61,,端点,关联边,相邻 若有边e可表示为e=vi,vj,称vi和vj是边e的端点,反之称边e为点vi或vj的关联边。若点vi、vj与同一边关联,称点vi和vj相邻;若边ei和ej具有公共的端点,称边
3、ei和ej相邻。,例如图61,,v2和v4是边e6的端点,反之边e6是点v2、v4的关联边。点v2、v4相邻;边e6与e5、 e4j相邻。,图61,e2可记作:,2018年11月5日星期一,环,多重边,简单图 如果边e的两个端点相重,称该边为环。如图中边e1为环。如果两个点之间多于一条,称为多重边,如图中的e4和e5,对无环、无多重边的图称作简单图。,次,奇点,偶点,孤立点与某一个点vi相关联的边的数目称为点vi的次(也叫做度),记作d(vi)。图中d(v1),d(v3)=5,d(v5)=1。次为奇数的点称作奇点,次为偶数的点称作偶点,次为0的点称作孤立点。,图的次一个图的次等于各点的次之和。
4、,2018年11月5日星期一,链、路、回路(圈)图中有些点和边的交替序列对任意vi,t1 和vit(2tk)均相邻,称从v0到vk的链。如果链中所有的顶点v0,v1,vk也不相同,这样的链称初等链(路)。如果链中各边e1,e2,ek互不相同称为简单链。当v0与vk重合时称为回路(圈),如果边不重复称为简单回路(圈),图61中, 1=v5,e8,v3,e3,v1,e2,v2,e4,v3,e7,v4是一条链1中因顶点v3重复出现,不能称作路。,2018年11月5日星期一,是一条链也是一条路。是一条回路并且是简单回路。,连通图,若在一个图中,如果每一对顶点之间至少存在一条链,称这样的图为连通图,否则
5、称该图是不连通的。图61是连通图。,3=v4,e7,v3,e3,v1,e2,v2,e6,v4,2018年11月5日星期一,子图、支撑子图,图G1=V1、E1和图G2=V2,E2如果称G1是G2的一个子图。若有 则称 G1是G2的一个支撑子图(部分图),图6-2(a)是图 6-1的一个子图,图6-2(b)是图 6-1的支撑子图,注意支撑子图也是子图,子图不一定是支撑子图。,v3,e7,e6,e1,e2,e3,v1,v2,v4,v5,e4,v3,e8,e5,e6,v2,v4,v5,图62(a),图62(b),2018年11月5日星期一,有向图 如果图的每条边都有一个方向则称为有向图,混合图 如何图
6、G中部分边有方向则称为混合图,有向图,2018年11月5日星期一,赋权图,设图G(V,E),对G的每一条边(vi,vj)相应的有一条数w (vi,vj) (或记为wij),wij称为边(vi,vj)的权,赋有权的图G称为赋权图。,这里的权数可以是时间、费用、距离等,视不同背景代表不同的含义。,赋权图,2018年11月5日星期一,网络图,在一个有向赋权图G 中规定了一个起点(发点)和一个终点(收点),其余是中间点,这样的图称为网络。,9,10,20,15,7,14,19,25,6,11,30,起点为v1终点为v7的一个网络图,2018年11月5日星期一,树、支撑树:,无圈的连通图称为树; 若G1
7、是G2的一个支撑子图并且是一棵树,则称G1是G2的一棵支撑树。,图62(a)、62(b)都不是树。想一想,为什么?,图63(a)是一棵树,图63(b)是图61的一棵支撑树。,v1,v1,图61,图63(a),图63(b),2018年11月5日星期一,最小树问题,【性质1】任何树中必存在次为1的点。,【性质2 】具有n个顶点的树的边数恰好为(n1)条,【性质3 】任何具有n个点、(n1)条边的连通图是树图。,Exit,2018年11月5日星期一,定义:设GV,E是一个无向图,对每一条边eiE有一个长度C(ei) 0,G的任意支撑树T各条边的长度之和称为树T的长度,记为C(T)。长度最小的支撑树称
8、为最小树。,求最小树是在一个无向连通图G中求一棵最小支撑树。求最小树问题的应用:电信网络(计算机网络、电话专用线网络、有线电视网络等等)的设计低负荷运输网络的设计,使得网络中提供链接的部分(如铁路、公路等 等)的总成本最小高压输电线路网络的设计 电器设备线路网络(如数字计算机系统)的设计,使得线路总长度最短连接多个场所的管道网络设计,2018年11月5日星期一,求最小树的方法:破圈法和避圈法,破圈法:任取一圈,去掉圈中最长边,直到无圈。,避圈法:即选边法;加边的原则:从最短边开始选择,每次都从未选边中取最短者,但已选边中不能形成圈,直到连通(n1条边)。,最短路问题,作业:P283 10.4
9、10.5,Exit,进入演示和练习,2018年11月5日星期一,最短路问题,有些问题,如选址、管道铺设时的选线、设备更新、投资、某些整数规划和动态规划的问题,也可以归结为求最短路的问题。因此这类问题在生产实际中得到广泛应用。,求最短路有两种算法,一是求从某一点至其它各点之间最短离的狄克斯屈拉(Dijkstra)算法;另一种是求网图上任意两点之间最短的矩阵算法。,最短路问题,就是从给定的网络图中找出一点到各点或任意两点之间距离最短的一条路 .,2018年11月5日星期一,渡河问题,一老汉带了一只狼、一只羊、一棵白菜想要从南岸过河到北岸,河上只有一条独木舟,每次除了人以外,只能带一样东西;另外,如
10、果人不在,狼就要吃羊,羊就要吃白菜,问应该怎样安排渡河,才能做到既把所有东西都运过河去,并且在河上来回次数最少?这个问题就可以用求最短路方法解决。,设:M人W狼S羊V白菜,渡河方案共有10种,构造如下一个图,每条边的距离为1,问题变为求一条从MWSV到的最短路。,北岸,南岸,2018年11月5日星期一,狄克斯屈拉(Dijkstra)标号算法,点标号:b(j) 起点vs到点vj的最短路长;,边标号:k(i,j)=b(i)+dij,,步骤:1.令起点的标号;b(s)0。,先求有向图的最短路,设网络图的起点是vs,终点是vt ,以vi为起点vj为终点的弧记为(i,j),距离为dij,2.找出所有vi
11、已标号vj未标号的弧集合 B= (i,j) 如 果这样的弧不存在或vt已标号则计算结束;,3.计算集合B中弧k(i,j)=b(i)+dij的标号,4.选一个点标号返回到第2步。,2018年11月5日星期一,【例】求下图v1到v7的最短路长及最短路线,0,8,6,2,2,5,4,4,11,14,7,5,10,7,12,11,v7已标号,计算结束。从v1到v7的最短路长是 11,最短路线是:v1 v4 v6 v7,2018年11月5日星期一,从上例知,只要某点已标号,说明已找到起点vs到该点的最短路线及最短距离,因此可以将每个点标号,求出vs到任意点的最短路线,如果某个点vj不能标号,说明vs不可
12、达vj .,无向图最短路的求法,无向图最短路的求法只将上述步骤2改动一下即可。,点标号:b(i) 起点vs到点vj的最短路长;,边标号:k(i,j)=b(i)+dij,,步骤:1.令起点的标号;b(s)0。,3.计算集合B中边标号:ki,j=b(i)+dij,4.选一个点标号:返回到第2步。,2.找出所有一端vi已标号另一端vj未标号的边集合 B= i,j 如果这样的边不存在或vt已标号则计算结束;,2018年11月5日星期一,【例】求下图v1到各点的最短路及最短距离,0,4,5,2,2,3,10,3,9,6,12,6,4,11,6,6,18,8,12,24,8,24,18,所有点都已标号,点
13、上的标号就是v1到该点的最短距离,最短路线就是红色的链。,进入演示和练习,2018年11月5日星期一,有负权的最短路算法,假设图中没有负回路。如下图是一条负回路,最短路权无下界。,当vi到vj之间没有弧连接时,令wij,列表迭代计算:,设vs到vj经过vi到达vj,则vs到vj的最短距离为:,迭代:,2018年11月5日星期一,【例】求下图v1到v8的最短路长及最短路线,2018年11月5日星期一,5,2,7,1,1,5,0,5,2,7,3,1,5,6,0,5,2,7,3,1,5,6,2018年11月5日星期一,2018年11月5日星期一,*任意两点间最短距离的矩阵算法*(选讲),【例】在下图
14、中用矩阵计算法求各点之间的最短距离,【解】定义dij为图中两相邻点的距离,若i与j不相邻,令dij=。则,2018年11月5日星期一,步骤:1.,2018年11月5日星期一,应用(教材P270例4),16,16,17,17,18,22,30,41,59,22,30,41,23,31,23,最优更新方案:1.第一年和第三年购置新设备;2.第一年和第四年购置新设备。总费用为53。,2018年11月5日星期一,最大流问题,作业:教材P284 10.6 10.7 10.9 10.8* 10.10*,Exit,1.理解点标号和弧(边)标号的含义 2.掌握一个点到其它任意点最短路的求法 3.掌握无向图的最
15、短路的求法,进入练习,2018年11月5日星期一,基本概念,容量:在某时期内弧(i,j)上的最大通过能力。记为C (i,j)或Cij在上图中,C12=4,C138,C234等,怎样安排运输方案,才能使在某一时期内从v1运到v6的物资最多,这样的问题就是最大流问题,,网络中所有流起源于一个叫做发点的节点(源),所有的流终止于一个叫做收点的节点,其余所有的节点叫做中间点(转运点),通过每一条弧的流只允许沿着弧的箭头方向流动,目标是使得从发点到收点的总流量最大,2018年11月5日星期一,流量:弧(i,j)的实际通过量,记为f (i,j)或f ij,可行流:如果f ij满足:1.对于所有弧(i,j)
16、有0f ijCij2.对于发点vs有:,3.对于收点vt有:,则称流量集合f ij为网络的一个可行流,简记为 f , v称为可行流的流量或值,记为v(f).,以下假设网络是一个简单连通图。,4.对于中间点点vm有:,2018年11月5日星期一,截集 将图G(V,E)的点集分割成两部分,称为一个截集,截集中所有弧的容量之和称为截集的截量。,下图所示的截集为,请看演示,2018年11月5日星期一,又如下图所示的截集为,上图所示的截集为,所有截量中此截量最小且等于最大流量,此截集称为最小截集。,【定理】最大流量等于最小截集的截量。,2018年11月5日星期一,链:从发点到收点的一条路线(弧的方向不一
17、定都同向)称为链。从发点到收点的方向规定为链的方向。,前向弧:与链的方向相同的弧称为前向弧。,后向弧:与链的方向相反的弧称为后向弧。,增广链 设 f 是一个可行流,如果存在一条从vs到vt的链,满足:,1.所有前向弧上fijCij,2.所有后向弧上fij0,则该链称为增广链,容量,流量,2018年11月5日星期一,【定理】设网络G的一个可行流f,如果存在一条从vs到vt的增广链,那么就可改进一个值更大的可行流f1,并且val f1val f,【证】设val fv,对改进的可行流f1 :,2018年11月5日星期一,最大流的标号算法,步骤 1. 找出第一个可行流,例如所有弧的流量fij =0,2
18、. 用标号的方法找一条增广链A1:发点标号(),,A2:选一个点 vi 已标号并且另一端未标号的弧沿着某条链向收点检查:如果弧的方向向前并且有fij0,则vj标号(fji),当收点不能得到标号时,说明不存在增广链,计算结束。,当收点已得到标号时,说明已找到增广链。,【定理】可行流是最大流当且仅当不存在发点到收点的增广链,2018年11月5日星期一,4. 调整流量,得到新的可行流,去掉所有标号,从发点重新标号寻找增广链,直到收点不能标号为止。,3. 依据vi 的第一个标号反向跟踪得到一条增广链;依据vi 的第二个标号求最小值得到调整量,进入演示和练习,2018年11月5日星期一,4,2,2,0,
19、2,2,2,2,0,4,6,2,1,7,【例】求下图v1 到v6 的最大流及最大流量,【解】1. 通过观察得到初始可行流,2.标号,3. 得到增广链,2018年11月5日星期一,4,2,1,1,3,2,2,3,0,4,2,2,3,得到增广链,4.求调整量,5.调整可行流,去掉所有标号,重新标号,2018年11月5日星期一,求调整量,调整可行流,去掉所有标号,重新标号,5,标号不能继续进行,说明不存在从发点到收点的增广链,得到最大流.,最大流量 v=6+3=9,1,2018年11月5日星期一,The End of Chapter 6,作业: 教材P285 T10.11 10.12 10.14,下一章:网络计划,Exit,1.基本概念 容量、流量、可行流、前向弧、后向弧、增广链、最大流、最大流量、割集、割量、最大流量最小割量定理 2.如何用标号方法求增广链 3.怎样求调整量、如何调整流量,