资源描述
西安理工大学工商管理学院,运筹学OperationsResearch,运筹学OperationsResearch,Chapter8图与网络分析GraphandNetwork,1.图与网络的基本知识树3.最短路问题4.最大流问题,C,B,A,引例:哥尼斯堡七桥问题,您能从A、B、C或D任意一点出发走遍7座桥并且每座桥只走一次最后回到原出发点吗?,D,E.Euler提出(1736年):,中国邮路问题:管梅谷(1962年)提出一个邮递员,负责某一地区的信件投递。他每天要从邮局出发,走遍该地区所有街道再返回邮局,问应如何安排送信的路线可以使所走的总路程最短?,我们在实际生活、生产和科研活动中经常看到许多的网络,如互联网、通信网、公路网、管道网、销售网等。对网络进行研究是希望解决其中的一些优化问题,网络最优化能为人们管理和控制这些网络系统提供一套有效的方法。,例某家电配送中心需要为多个销售点送货,配送中心与销售点以及销售点之间的相对位置和运输情况可以用图来表示。其中,点v1,v2,v7代表销售点,边表示运输路线。若已知每条路线行走所需的时间,请帮助配送中心管理人员设计一条送货路线,使送货车辆用最短的时间送完货物,并回到配送中心。,基本的网络最优化问题有4个,即最小树问题,最短路问题、最大流问题、最小费用最大流问题。这些问题的数学模型实际上大都是线性规划问题,但使用线性规划的单纯形法去求解,过程非常繁琐,本章介绍的网络分析方法能有效的解决这些问题。,图可定义为点和边的集合,记作,式中是点的集合,是边的集合。注意上面定义的图区别于几何学中的图。在几何学中,图中点的位置、线的长度和斜率等都十分重要,而这里只关心图中有多少点以及哪些点之间有线相连,如果给图中的点和边赋以具体的含义和权数,如距离、费用、容量等,把这样的图称为网络图,记作。图和网络分析的方法已广泛应用于物理、化学、控制论、信息论、计算机科学和经济管理等各个领域。,8.1图与网络的基本知识,如图8-1,定义1端点,关联边,相邻若有边e可表示为e=vi,vj,称vi和vj是边e的端点,反之称边e为点vi或vj的关联边。若点vi、vj与同一边关联,称点vi和vj相邻;若边ei和ej具有公共的端点,称边ei和ej相邻。,例如图81,,v2和v4是边e6的端点,反之边e6是点v2、v4的关联边。点v2、v4相邻;边e6与e5、e4相邻。,图81,e2可记作:,一、图与网络的基本概念,定义2环,多重边,简单图如果边e的两个端点相重,称该边为环。如图8中边e1为环。如果两个点之间的边多于一条,称为多重边,如图8中的e4和e5,对无环、无多重边的图称作简单图。,定义3次,奇点,偶点,孤立点与某一个点vi相关联的边的数目称为点vi的次(也叫做度),记作d(vi)。图中d(v1),d(v3)=5,d(v5)=1。次为奇数的点称作奇点,次为偶数的点称作偶点,次为0的点称作孤立点。,定理1任何图中,顶点次数的总和等于边数的2倍。,定理2任何图中,次为奇数的顶点必为偶数个。,定义4有向图:如果图的每条边都有一个方向则称为有向图,定义5混合图:如何图G中部分边有方向则称为混合图,有向图,定义6有向图中,以Vi为起始点的边数称为点Vi的出次,用表示;有向图中,以Vi为终点的边数称为点Vi的入次,用表示。,结论1:Vi点的出次与入次之和就是该点的次。,结论2:有向图中,所有顶点的入次之和等于所有顶点的出次之和。,定义7:子图、生成子图(支撑子图),图G1=V1、E1和图G2=V2,E2如果称G1是G2的一个子图。若有则称G1是G2的一个支撑子图(部分图)。图8-2(a)是图6-1的一个子图,图8-2(b)是图8-1的支撑子图,注意支撑子图也是子图,子图不一定是支撑子图。,定义8网络(赋权图):,设图G(V,E),对G的每一条边(vi,vj)相应的有一条数w(vi,vj)(或记为wij),wij称为边(vi,vj)的权,赋有权的图G称为网络(赋权图)。,这里的权数可以是时间、费用、距离等,视不同背景代表不同的含义。,赋权图,定义9链、路、回路(圈)无向图中有些点和边的交替序列对任意vi,t1和vit(2tk)均相邻,称从v0到vk的链。,图81中,1=v5,e8,v3,e3,v1,e2,v2,e4,v3,e7,v5是一条链,1中因顶点v3重复出现,不能称作路。,二、连通图,如果链中所有的顶点v0,v1,vk也不相同,这样的链称初等链(或路)。,如果链中各边e1,e2,ek互不相同称为简单链。,当v0与vk重合时称为回路(或圈),如果边不重复称为简单回路,如果边不重复点也不重复则称为初等回路。,是一条链也是一条路。是一条回路并且是简单回路。,定义10连通图,若在一个图中,如果每一对顶点之间至少存在一条链,称这样的图为连通图,否则称该图是不连通的。图81是连通图。,3=v4,e7,v3,e3,v1,e2,v2,e6,v4,欧拉回路,定义11连通图G中,若存在一条回路,经过每边一次且仅一次,则称这条回路为欧拉回路。具有欧拉回路的图称为欧拉图(E图)。,哥尼斯堡七桥问题:寻找一条欧拉回路,定理3无向连通图G是欧拉图,当且仅当G中无奇点。,七桥问题:d(A)=3,d(B)=3,d(C)=5,d(D)=3有四个奇点,故不是欧拉图,定理4有向连通图G是欧拉图,当且仅当G中每个顶点的出次等于入次。,中国邮路问题,讨论:奇偶点图上作业法,v1,v2,v3,v4,v5,v6,v7,v8,v9,8.2树,树的概念,树是图论中结构最简单但又十分重要的图,在许多领域都有应用。如:运动员抽签结构图,定义树、生成树:,无圈的连通图称为树;若G1是G2的一个支撑子图并且是一棵树,则称G1是G2的一棵生成树。,图83(a)是一棵树,图83(b)是图81的一棵生成树。,v1,v1,图81,图83(a),图83(b),定理:图G=(V,E)有生成树的充分必要条件为G是连通图。,生成树的寻求方法,在图中,每步选出一条边使它与已选边不构成圈,直到选够n-1条边为止。,()深探法步骤:任取一点v,给v以标号;若某点u已得标号i,检查其端点w是否已标号;若端点w未标号,则给w以标号i+1;重复若端点均已标号,则退到标号i1的点,重复。,(2)广探法,任取一点v,给v以标号;检查其所有端点wi是否已标号;若端点w未标号,则给所有wi以标号i+1;对标号i+1的点重复。,(3)破圈法在图中任意取一个圈,从圈上任意舍弃一条边,将这个圈破掉;重复上述步骤,直到图中没有圈为止。,例:某乡有9个自然村,其乡间道路如下图,要求:以v0村为中心沿道路架设有线广播网络,应如何架设?,最小生成树,定义:设GV,E是一个连通图,每一条边eiE具有长度C(ei)0,G的任意生成树T各条边的长度之和称为树T的长度,记为C(T)。长度最小的生成树称为最小树。,最小树的应用:电信网络(计算机网络、电话专用线网络、有线电视网络等等)的设计低负荷运输网络的设计,使得网络中提供链接的部分(如铁路、公路等等)的总成本最小高压输电线路网络的设计电器设备线路网络(如数字计算机系统)的设计,使得线路总长度最短连接多个场所的管道网络设计,求最小树是在一个无向连通图G中求一棵最小生成树。,避圈法(加边法):去掉G中所有边,得到n个孤立点;然后加边;,加边的原则:从最短边开始添加,加边的过程中不能形成圈,直到连通(n1条边)。,v1,v2,v3,v4,v5,v6,4,3,5,2,1,MinC(T)=15,求最小树的方法:避圈法和破圈法,破圈法:任取一圈,去掉圈中最长边,直到无圈。,v1,v2,v3,v4,v5,v6,4,3,5,2,1,得到最小树:,MinC(T)=15,根树及其应用,定义有向树:若一个有向图是一棵树,则称这个有向图为有向树。,定义若有向树T恰有一个结点的入次为0,其余各点入次均为1,则称T为根树。,入次为0的点,称为根,出次为0的点,称为叶,其它顶点,称为分枝点,根到某顶点vi的道路长度,称为vi点的层次。,定义在根树T中,若每个顶点的出次小于或等于m,则称T为m叉树。若每个顶点的出次恰好等于m或零,则称T为完全m叉树。,当m=2时,称为二叉树、完全二叉树。,记二叉树各叶子的权为pi,根到各叶子的距离(层次)为li二叉树的总权数:,最优二叉树:满足总权最小的二叉树称为最优二叉树。霍夫曼(DAHuffman)给出了一个求最优二叉树的算法,又称霍夫曼树。,例:最优检索问题用计算机进行图书分类。现有五类图书共100万册,其中有A类50万册,有B类20万册,C类5万册,D类10万册,E类15万册。问如何安排分检过程,可使总的运算次数最小?,算法步骤:1.将s个叶子按权由小至大排序;2.将二个具有最小权的叶子合并成一个分枝点,其权为p1+p2;将新的分枝点作为一个叶子,合并,,解:构造一棵具有5个叶子的最优二叉树,其叶子的权分别为50,20,5,10,15.步骤如下:1.将5个叶子按权由小到大排序:5,10,15,20,502.找出二个最小权的叶子,合并成一个分枝点,其权为15;,依次,继续。,总权为:,分检过程是:先把A类50万册从总数中分检出来,其次将B类20万册分检出来,然后再将E类15万册分检出来,最后再将D、C分检出来。,8.3最短路问题,有些问题,如选址、管道铺设时的选线、设备更新、投资、某些整数规划和动态规划的问题,也可以归结为求最短路的问题。因此这类问题在生产实际中得到广泛应用。,求最短路有两种算法,一是求从某一点至其它各点之间最短离的狄克斯屈拉(Dijkstra)算法;另一种是求网图上任意两点之间最短的矩阵算法。,最短路问题,就是从给定的网络图中找出一点到各点或任意两点之间距离最短的一条路.,渡河问题,一老汉带了一只狼、一只羊、一棵白菜想要从南岸过河到北岸,河上只有一条独木舟,每次除了人以外,只能带一样东西;另外,如果人不在,狼就要吃羊,羊就要吃白菜,问应该怎样安排渡河,才能做到既把所有东西都运过河去,并且在河上来回次数最少?这个问题就可以用求最短路方法解决。,设:M人W狼S羊V白菜,渡河方案共有10种,构造如下一个图,每条边的距离为1,问题变为求一条从MWSV到的最短路。,北岸,南岸,狄克斯屈拉(Dijkstra)标号算法,点标号:b(j)起点vs到点vj的最短路长;,边标号:k(i,j)=b(i)+dij,,步骤:1.令起点的标号;b(s)0。,先求有向图的最短路,设网络图的起点是vs,终点是vt,以vi为起点vj为终点的弧记为(i,j),距离为dij,2.找出所有vi已标号vj未标号的弧集合B=(i,j)如果这样的弧不存在或vt已标号则计算结束;,3.计算集合B中弧k(i,j)=b(i)+dij的标号,4.选一个点标号返回到第2步。,【例】求下图v1到v7的最短路长及最短路线,0,8,6,2,2,5,4,4,11,14,7,5,10,7,12,11,v7已标号,计算结束。从v1到v7的最短路长是11,最短路线是:v1v4v6v7,无向图最短路的求法,无向图最短路的求法只将上述步骤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已标号则计算结束;,【例】求下图v1到各点的最短路及最短距离,0,4,5,2,2,3,10,3,9,6,12,6,4,11,6,6,18,8,12,24,8,24,18,所有点都已标号,点上的标号就是v1到该点的最短距离,最短路线就是红色的链。,有负权的最短路算法,假设图中没有负回路。如下图是一条负回路,最短路权无下界。,当vi到vj之间没有弧连接时,令lij,列表迭代计算:,设vs到vj经过vi到达vj,则vs到vj的最短距离为:,迭代:,【例】求下图v1到v8的最短路长及最短路线,2,0,3,6,11,0,2,0,3,6,6,15,0,2,0,3,3,6,14,10,(表中空格为),020-336910,采用”反向追踪”的方法找出从v1到v8的最短路.,已知:P(v1,v8)=10,而P(v1,v8)=minP(v1,vi)+li8,寻找:P(v1,v6)+l68=6+4=10,记下:v6v8,再检查:P(v1,v6)=6,寻找:P(v1,v3)+l36=0+6=6,记下:v3v6v8,v1v2v3v6v8,再检查:P(v1,v3)=0,寻找:P(v1,v2)+l23=2+(-2)=0,记下:v2v3v6v8,8.4最大流问题,许多系统中都涉及到流量问题,例如网络系统中有信息流、公路系统中有车辆流、金融系统中有现金流等等。对于这些包含了流量问题的系统,我们往往需要求出其系统的最大流量。例如,某公路系统的容许通过的最大车辆数,某网络系统的最大信息流量等,以便于对某个系统加以认识并进行管理。,例某石油公司建有一个可以把石油从采地输送到不同销售点的管道网络,如下图。由于管道的直径变化,使得各段管道(vi,vj)的最大通过能力(容量)cij也是不一样的,cij的单位为万加仑/小时。要求我们制定一个输送方案,将石油从v1输送到v6,使得输送的石油达到最大,基本概念,容量:在某时期内弧(i,j)上的最大通过能力。记为C(i,j)或Cij在上图中,C12=4,C138,C234等,怎样安排运输方案,才能使在某一时期内从v1运到v6的物资最多,这样的问题就是最大流问题,,网络中所有流起源于一个叫做发点的节点(源),所有的流终止于一个叫做收点的节点,其余所有的节点叫做中间点(转运点),通过每一条弧的流只允许沿着弧的箭头方向流动,目标是使得从发点到收点的总流量最大,8.4最大流问题,流量:弧(i,j)的实际通过量,记为f(i,j)或fij,可行流:如果fij满足:1.对于所有弧(i,j)有0fijCij,则称流量集合fij为网络的一个可行流,简记为f。,以下假设网络是一个简单连通图。,2.对于中间点点vm有:,链:从发点到收点的一条路线(弧的方向不一定都同向)称为链。从发点到收点的方向规定为链的方向。,前向弧:与连的方向相同的弧称为前向弧。,后向弧:与连的方向相反的弧称为后向弧。,增广链设f是一个可行流,如果存在一条从vs到vt的链,满足:,1.所有前向弧上fij0,则该链称为增广链,容量,流量,【定理】设网络G的一个可行流f,如果存在一条从vs到vt的增广链,那么就可改进一个值更大的可行流f1,并且valf1valf,【证】设valfv,对改进的可行流f1:,最大流的标号算法,步骤1.找出第一个可行流,例如所有弧的流量fij=0,2.用标号的方法找一条增广链A:发点标号(,),,B:选一个已标号的点vi,对于vi的所有未给标号的邻接点,按下列规则处理:如果是前向弧并且有fijCij,令j=minCijfij,i,则vj标号(+vi,j)如果是后向弧vi并且有fj0,令j=minfij,i,则vj标号(-vi,j),当收点不能得到标号时,说明不存在增广链,计算结束。,当收点已得到标号时,说明已找到增广链。,【定理】可行流是最大流当且仅当不存在发点到收点的增广链,4.调整流量,得到新的可行流,去掉所有标号,从发点重新标号寻找增广链,直到收点不能标号为止。,3.依据vi的第一个标号反向跟踪得到一条增广链;依据vi的第二个标号求最小值得到调整量,(,+),4,2,2,0,2,2,2,2,0,4,(+v1,6),【例】求下图v1到v6的最大流及最大流量,【解】1.通过观察得到初始可行流,2.标号,3.得到增广链,(+v2,2),(+v2,1),(+v5,1),(+v1,2),(,),5,2,2,1,2,2,2,3,0,4,得到增广链,4.求调整量,5.调整可行流,去掉所有标号,重新标号,(+v1,1),(+v1,6),(+v2,1),(-v4,0),(+v4,1),求调整量,调整可行流,去掉所有标号,重新标号,(,),(+v1,6),(-v3,2),(+v2,1),(-v4,0),(+v4,1),求调整量,调整可行流,去掉所有标号,重新标号,标号不能继续进行,说明不存在从发点到收点的增广链,得到最大流.,最大流量v=6+3=9,(,),(+v1,5),(-v3,1),截集将图G(V,E)的点集分割成两部分,称为一个截集,截集中所有弧的容量之和称为截集的截量。,下图所示的截集为,又如下图所示的截集为,上图所示的截集为,所有截量中此截量最小且等于最大流量,此截集称为最小截集。,【定理】最大流量等于最小截集的截量。,TheEndofChapter6,作业:教材P285T10.1110.1210.14,Exit,1.基本概念容量、流量、可行流、前向弧、后向弧、增广链、最大流、最大流量、割集、割量、最大流量最小割量定理2.如何用标号方法求增广链3.怎样求调整量、如何调整流量4.用QSB软件求最大流问题,
展开阅读全文