1、运筹学及应用,运筹学讲稿,教材:运筹学教程(第二版)胡运权主编 清华大学出版社,第八章 图与网络,1)图的分类,8.1 图与网络的基本知识,A,B,D,E,C,甲,已,A,B,定义一,一个图是由点集V=vi和V中元素的无序对的一个集合E=ek所构成的二元组,记G=V,E,V中的元素vi称为顶点,E中的元素ek称为边。,当V、E为有限集合时,称G为有限图;否则称G为无限图。,第八章 图与网络,v1,v2,v3,v5,v4,e1,e3,e4,e2,e5,e6,e7,e8,e9,v1,v2,v3,v4,e1,e2,e3,e4,相邻点, 如v1 、 v2 , 同时它们也称为边e1的端点,边相邻, 如e
2、1 、e2 (有公共端点) ,同时它们也称为点v1的关联边,无向边端点无序, 如图1 中e1 、e2等,有向边端点有序, 如图2 中e1 、e2等,图1,图2,环(自回路)边的各个端点相同, 如图1 中e9,有向图边是有向的, 如图2,无向图边是无向的, 如图1,第八章 图与网络,v1,e1,v3,v2,e2,e3,e4,e5,图3,多重边, 如图3 中v2 、 v3 , 同时有两条边e4、e5,定义二,一个图既不含环、也不含多重边,则该图称为简单图;一个图含多重边,则该图称为多重图。,第八章 图与网络,定义三,每一对顶点都有且只有一条无向(有向)边相连的简单图称为完全图;,定义四,设G=V,
3、E,X、Y V,且XYV,XY=,任意边ek=( Vi ,Vj )E,有Vi X, Vj Y或者Vi Y, Vj X ,称为二部图(偶图);,A,B,C,D,A,B,C,D,第八章 图与网络,定义五,以点v为端点的边数叫做点v的次(度),记d(v),定理1,任何图中,顶点的次数的总和等于边数的2倍,定理2,任何图中,顶点的次为奇数的顶点(奇点)数为偶数,定义六,有向图中,以v为起始的边数叫做点v的出次(度),记d+(v),以v为终点的边数叫做点v的入次(度),记d-(v),定义七,设G=V,E,X V,E E,且E中的边仅与X中的顶点相关联, 则称G=X,E为G的子图;如X=V,称G为G的生成
4、子图,定义八,设G=V,E,如果任意ek=( Vi ,Vj )E,f是E到正实数集上的一个函数,则称G为加权图,其中f(ei) 称为ei 的权,第八章 图与网络,定义九,设G=V,E,如G中的某些边与点的交替序列可以排成(vi0, ei1, vi1, ei1 ,vik-1, eik, vik),且eil=( vil-1, vil )(l=1,2k),则称该序列为一条链, 链长为k (注意,对于有向图时不考虑边的方向),定义十,在无向图中,如果一条链的起始与终点相同时,称该链为圈,定义十一,设G=V,E,任意v1、v2 V,都存在一条链,称该图为连通图;,定义十,在有向图中,如果一条链的所有边的
5、方向相同时,称该链为道路;同样圈中所有边的方向相同时,称该圈为回路。,任意不连通的图,都可以分成若干个连通子图,每个子图称为原图的分图,第八章 图与网络,2)图的表示类,v1,v2,v3,v4,v5,9,7,6,5,4,8,3,2,4,A=,aij =,wij (vj , vj) E,0 其它,0 9 2 4 79 0 3 4 02 3 0 8 54 4 8 0 67 0 5 6 0,权矩阵,令所有权为1,A=,0 1 1 1 11 0 1 1 01 1 0 1 11 1 1 0 11 0 1 1 0,邻接矩阵,第八章 图与网络,A=,0 1 1 0 0 00 0 1 0 0 00 1 0 0
6、 1 00 1 0 0 0 10 1 0 1 0 10 0 0 0 1 0,v1,v2,v3,v4,v5,v6,其邻接矩阵为:,第八章 图与网络,3)欧拉回路,定义十二,连通图G中,如存在一条路,经过每一边且仅一次,则称这条路为欧拉路,如该路为一条回路,称欧拉回路。具有欧拉回路的图称为欧拉图。,定理3,无向图G是欧拉图的充分必要条件为G中没有奇点,推论1,无向图G是欧拉图,当且仅当G的边集可以划分成若干个初等回路,推论2,无向图G有欧拉路,当且仅当G的中有两个奇点,定理3,有向图G是欧拉图的充分必要条件为G每个顶点的入次等于出次,第八章 图与网络,4)树,定义十三,连通且不含圈的无向图称为树。
7、树中次为1的点称叶,否则称分枝点,定理6,T是树T无圈且m=n-1(其中n为顶点数,m为边数,下同)T连通且m=n-1T无圈,但加一条新边即得唯一一个圈T连通,但舍去任一边则不连通T中任意两点有唯一链相连,定义十四,无向图G中,如生成图为树,则该树为图G的生成树,定理,无向图G中有生成树充分必要条件:G是连通图,第八章 图与网络,4)生成树,最小生成树算法:1)Kruskal 2)破圈法,第八章 图与网络,最小生成树算法,避圈法(Kruskal),vs,破圈法(Kruskal),A,B,F,G,E,C,D,例:从某供气站要向A、B、C、D E、F、G小区供气,问如何铺设 煤气管道,使的需要铺设
8、管道 的总长度最短,第八章 图与网络,最短路算法, DijKstra算法,例:从油田铺设管道,把原油从A地 运到G地,要求管道必须按照图中 给定的道路铺设,问如何铺设 煤气管道,使的需要铺设管道 的长度最短,A,G,B,C,D,E,F,5,2,2,4,1,3,8,2,6,5,5,3,2,5,4,4,6,5,5,10,5,10,第八章 图与网络,4)网络最大流,(1)基本概念,某煤矿(A)的煤需要运往B地,现可以提供的铁路网及能提供的运量如右图。问如何进行调度,才能充分利用能够提供的运量,使尽可能的煤运往B地?,2,10,3,1,3,5,8,9,4,7,4,容量网络:加权有向连通图,仅有一个入次
9、为0的点,有一个出次为0的点。 记G=V,E,C,权容量,入次为0的点发点,出次为0的点收点,流:G中任意边上的非负数,记fij,可行流:,2)对中间点Vi, fij fki= 0,1) 0 fij Cij,最大流:,0流:如果所有fji= 0,最大的可行流,第八章 图与网络,最大的可行流,如何求?,饱和边:如果fij = Cij,不饱和边:如果fij Cij,增广链(增流链):如果存在从发点到收点一条链lst,如果所有前向边都为非 饱和边,而反向边为非零流边。,零流边:如果fij = 0,非零流边:如果fij 0,前向边:如果链lst , 如果方向与s-t同向,称前向边;否则称为反向边,最大
10、流最小割定理,顶点的流量: fij fji,割集:设G=(V,E,C),V1 V2 =V,V1V2=且发点s V1,收点t V2,割集的容量: fij,vi V1, vj V2, 记C(V1,V2),第八章 图与网络,定理4-1: 设G=(V,E,C),V1, V2为割集, fij为G的任一可行流,W为其流量,必有 CV1,V2)W,最大流最小割定理: 设G=(V,E,C),V1, V2为割集, fij为为最大流充分必要条件 W=min(C(V1,V2)| V1,V2 为G的割集),定理4-2: 设G=(V,E,C), fij为为最大流充分必要条件不存在增广链,利用该定理求最大流,如何求?,枚
11、举法,把求最大流转化为求是否存在增广链问题,第八章 图与网络,如何求增广链?,最大流的标号算法,算法: (前提条件为已经存在可行流),1)从发点开始标号(),2)选择一个已经标号顶点vi,对于与顶点vi相邻而未标号的顶点(vj)进行如下处理: (1)若( vi , vj) E,且fij0,则令j = min(fji, i),并给vj标以(-vi, j),3)重复(2)直到收点vt或不再有顶点可标记为止。,一、标号过程,二、调整过程,其实,这是寻找增广链的过程,如果不能把vt进行标号时,即不存在增广链,根据定理,初始流就是最大流,结束,否则转第二步,1)令fij =,fij + t 前向边,fi
12、j t 后向边,fij 其他,2擦除所有标号,重新开始,第八章 图与网络,例15 P271,5)非标准网络的最大流问题,(1)发点不唯一 (2)收点不唯一 (3)收发点都不唯一,P273,6)最大匹配问题,(2)匹配定义:,(1)背景:简介工作安排,二部图G=(X,Y,E),若M中任意两条边都没有公共端点,P274,第八章 图与网络,7)最小费用流问题,(1)费用:,定理:,已知网络G=(V,E,C,d),f 是可行流, 为从vs到vt的一条可增广链,则称,当(vi, vj)E,d(f) =,链 的费用,若f是流量为W(f)的最小费用, 为从vs到vt的一条最小费用增广链,则f经过调整的流量后得到的新流f,一定是流量为W(f)+的可行流中的最小费用流。,长度网络定义:已知网络G=(V,E,C,d),f 是可行流,保持原网络各点,每条边用两条方向相反 的有向边代替,各边的权lij为:,lij =,dij fij 0,fij = 0,第八章 图与网络,(3)最小费用流问题算法,P276,