图与网络分析.ppt
- 文档编号:30841329
- 上传时间:2024-01-31
- 格式:PPT
- 页数:199
- 大小:1.53MB
图与网络分析.ppt
《图与网络分析.ppt》由会员分享,可在线阅读,更多相关《图与网络分析.ppt(199页珍藏版)》请在冰豆网上搜索。
图与网络分析,引言第一节图与网络的基本概念第二节树第三节最短路径问题第四节网络最大流问题第五节最小费用最大流问题,引言,图论(GraphTheory)是研究图的理论,是运筹学中一重要的分支.有200多年历史,大体可划分为三个阶段.,目前图论与网络流理论被广泛应用于管理科学、计算机科学、信息论、控制论、物理、化学、生物学、心理学等各个领域.,例1:
Konigsber七桥问题,Konigsber是欧洲一个城市,Pregei河把该城分成两部分,河中有两个小岛,十八世纪时,河两边及小岛之间共有七座桥,当时人们提出这样的问题:
Konigsber,图1,有没有办法从某处(如A)出发,经过各桥一次且仅一次最后回到原地呢?
?
Euler在1736年发表了一篇题为“依据几何位置的解题方法”论文,有效解决了Konigsber七桥难题,这是有记载的第一篇图论论文,Euler也被公认为图论的创始人.,A,B,给出一个正12面体图形,共有20个顶点,分别表示全球20个主要城市,要求从某个城市出发沿着棱线寻找一条经过每个城市一次而且仅一次,最后回到原处的周游世界线路(并不要求经过每条边).环球旅行问题.,例2:
Hamilton回路是19世纪英国数学家Hamilton提出,图4,伦敦,例3:
一个班级的学生共计选修A、B、C、D、E、F六门课程,其中一部分人同时选修A、C、D,一部分人同时选修B、C、F,一部分人同时选修B、E,还有一部分人同时选修A、B,期终考试要求每天考一门课,六天内考完,为了减轻学生负担,要求每人都不会连续参加考试,试设计一个考试日程表.,图5,解:
以每门课程为一个顶点,共同被选修的课程之间用边相连,得图5.,按题意,相邻顶点对应课程不能连续考试,不相邻顶点对应课程允许连续考试,因此作图5的补图(图-6).,图6,图7,问题是在图7中寻找一条经过每个顶点一次且仅一次的路线(Hamilton回路).,如CEAFDBC是一Hamilton回路,图8,第一节图与网络的基本概念,一、图与网络的基本概念,图是由一些点及一些点之间的联线(不带箭头或带箭头)的组成的.,例4在图9中,V=v1,v2,v3,v4,v5,v6,E=e1,e2,e3,e4,e5,e6,e7,e8.其中:
e1=v1,v2e2=v1,v2e3=v2,v3e4=v3,v4e5=v4,v1e6=v1,v3e7=v3,v5e8=v4,v4,图9,定义4:
若图G=(V,E)的点集V可分为两个非空子集X,Y,满足:
XY=V,XY=,使得E中的每条边的两上顶点必有一个端点属于X,而另一个端点Y,则称G为二部图(偶图),图11,3、子图,定义7设G=(V,E)和G1=(V1,E1).若V1V,E1E则称G1为G的子图;若G1=(V1,E1)是G=(V,E)的子图,且V1=V,则称G1为G的生成子图(支撑子图)若G1=(V1,E1)是G=(V,E)的子图,且V1V,E1是E中所有端点属于V1的边组成的集合,则称G1是G的关于V1的导出子图,v2,e6,图G=(V,E),v1,v5,v4,v2,e1,e5,e3,(a)G的子图,v1,v5,v4,v2,v3,e8,e6,e5,e2,G的生成子图,v1,v5,v2,e1,e6,e5,G的导出子图,4、网络,定义由点或边带有某种数量的指标的图称为网络与无向图相对应的网络称为无向网络与有向图相对应的网络称为有向网络,二、连通图,定义8无向图G=(V,E),若图G中某些点与边的交替序列可以排成的形成,且,则称这个点边序列为连接的一条链(chain),链长为k.若点边列中没有重复的点与重复边者称为初等链,定义9无向图G=(V,E),连接的一条链是同一个点时,称为圈(circle).若圈中没有重复的点与重复边者称为初等圈,定义(链)如果图中的某些点、边可以排列成点和边的交错序列,则称此为一条链.定义(圈)如一条链中起点和终点重合,则称此为一条圈.,p258,v1,v5,v4,v2,v3,e1,e7,e6,e5,e4,e3,e2,有向图,v1,v5,v4,v2,v3,e1,e8,e7,e6,e5,e4,e3,e2,有向图,v1,v5,v4,v2,v3,e1,e8,e7,e6,e5,e4,e3,e2,有向图,v1,v5,v4,v2,v3,e1,e8,e7,e6,e5,e4,e3,e2,有向图,v1,v5,v4,v2,v3,e1,e7,e6,e5,e4,e3,e2,有向图,v1,v5,v4,v2,v3,e1,e7,e6,e5,e4,e3,e2,有向图,v1,v5,v4,v2,v3,e1,e7,e6,e5,e4,e3,e2,链,v1,v5,v4,v2,e1,e7,e6,e3,v1,v5,v4,v2,e1,e7,e6,e3,v1,v5,v4,v2,e1,e7,e6,e3,v1,v5,v4,v2,e1,e7,e6,e3,圈,第二节树,树是一类极其简单而很有用的图,在自然和社会科学中的许多领域中均有广泛的应用.例:
乒乓球单打比赛抽签后,可用如下的图来表示相遇情况.,一、树的概念与性质,定义14连通且不含圈的无向图称为树.树中次为1的点称为树叶,次大于1的点称为分枝点.如果一个无圈的图中每一个分支都是树,则称图为森林.,树的性质:
1在图中任意两点之间必有一条而且只有一条通路.2在图中划去一条边,则图不连通.3在图中不相邻的两个顶点之间加一条边,可得一个且仅得一个圈.4图中边数有p-1(p为顶点数),a,b,c,f,e,d,h,g,例,b,f,e,d,b,f,d,g,b,c,e,d,a,b,c,h,a,f,d,g,二、图的生成树,定义15如果图T是G的一个生成子图,而且T又是一棵树,则称图T为一棵生成树(支撑树).图G中属于生成树的边称为树枝,不在生成树中的边称为弦(chord)一个子图与生成树的区别是:
子图与原图相比少弦又少点,生成树与原图相比少弦不少点.,图(a)图(b),例如,图(b)是图(a)的一个支撑树,v1,v4,v3,v2,v5,v6,图,v1,v4,v3,v2,v5,子图,v1,v4,v3,v2,v5,v6,生成子图,v1,v4,v2,v5,v6,树,v1,v4,v3,v2,v5,v6,生成树,三、最小生成树问题,定义16若连通图G=(V,E),每条边上有非负权L(e),则一棵生成树所有树枝上权的总和,称为这个生成树的权.具有最小权的生成树称为最小生成树(最小支撑树)简称最小树.,许多网络问题都可以归结为最小树问题.如设计长度最小的公路网把若干城市联系起来;设计用料最省的电话线网把有关单位联系起来等等.,求最小生成树问题的两种算法,1、破圈法:
在连通图中取一圈,去掉一条权数最大边,在余下图中重复上述步骤,直到无圈为止,即得最小生成树.,【例7】一个镇有7个自然村,其间道路及各道路长度如下图所示,各边上的数字表示距离,问题如何拉线才能使用线最短.,v1,v7,v4,v3,v2,v5,v6,20,15,9,16,25,3,28,17,4,1,23,36,破圈法,v1,v7,v4,v3,v2,v5,v6,20,15,9,16,25,3,28,17,4,1,23,36,v1,v7,v4,v3,v2,v5,v6,20,15,9,16,25,3,28,17,4,1,23,v1,v7,v4,v3,v2,v5,v6,20,15,9,16,25,3,28,17,4,1,23,v1,v7,v4,v3,v2,v5,v6,15,9,16,25,3,28,17,4,1,23,v1,v7,v4,v3,v2,v5,v6,15,9,16,25,3,28,17,4,1,23,v1,v7,v4,v3,v2,v5,v6,9,25,3,28,17,4,1,23,v1,v7,v4,v3,v2,v5,v6,9,25,3,28,17,4,1,23,v1,v7,v4,v3,v2,v5,v6,9,3,28,17,4,1,23,v1,v7,v4,v3,v2,v5,v6,9,3,28,17,4,1,23,v1,v7,v4,v3,v2,v5,v6,9,3,17,4,1,23,总线长=1+4+9+3+17+23=57,2、避圈法:
将连通图所有边按权数从小到大排序,每次从未选的边中选一条权数最小的边(如果有几条都是最小权数的边,则可从中任选一条),并使之与已选取的边不能构成圈,直到得到最小生成树.,v1,v7,v4,v3,v2,v5,v6,20,15,9,16,25,3,28,17,4,1,23,36,避圈法,v1,v7,v4,v3,v2,v5,v6,20,15,9,16,25,3,28,17,4,1,23,36,v1,v7,v4,v3,v2,v5,v6,20,15,9,16,25,3,28,17,4,1,23,36,v1,v7,v4,v3,v2,v5,v6,20,15,9,16,25,3,28,17,4,1,23,36,v1,v7,v4,v3,v2,v5,v6,20,15,9,16,25,3,28,17,4,1,23,36,v1,v7,v4,v3,v2,v5,v6,20,15,9,16,25,3,28,17,4,1,23,36,v1,v7,v4,v3,v2,v5,v6,20,15,9,16,25,3,28,17,4,1,23,36,总线长=1+4+9+3+17+23=57,第三节最短路问题,在实践中常遇到的一类网络问题是最短路问题.给定一个连通赋权图G=(V,E),图中各边(vi,vj)相应有权,指定G中的vs为发点,vt为终点.最短路问题就是要在所有vs到vt的路中,求出一条总权数最小的路.这里权数可以是距离,也可以是时间,或者是费用等等.最短路问题是最重要的优化问题之一,它不仅可以直接应用于解决生产实际的许多问题,如管道铺设、线路安排、厂区布局、设备更新等等,而且经常被作为一个基本工具,用于解决其它优化问题.,例下图为单行线交通网,每有向边旁的数字表示通过这条线所需的费用.现在某人要从v1出发,通过这个交通网到v8去,求使总费用最小的旅行路线.,一、DijkstraAlgorithm,算法的基本思路:
从发点vs出发,有一个假想的流沿网络一切可能的方向等速前进,遇到新节点后,再继续沿一切可能的方向继续前进,则最先到达终点vt的流所走过的路径一定是最短的.,最短路问题可以化为线性规划问题求解,也可以用动态规划方法求解,这里介绍一种有效算法-Dijkstra(狄克斯拉)算法,这一算法是1959年首次被提出来.该算法适用于每条弧的权数情形.是目前公认为求非负权网络最短路问题的最好办法.,为了实现这样一个想法,对假想流依次到达的点,依次给予P标号,表示vs到这些点的最短距离.对于假想流尚未到达的点给予T标号,表示vs到这些点的最短距离的估计值.具体作法(步骤)如下:
(1)给vs以P标号,P(vs)=0,其余各点均给T标号,T(vi)=+无穷大.
(2)若vi点为刚得到P标号的点,考虑这样的点vj:
(vi,vj)属于E,且vj为T标号.对vj的T标号进行如下的更改:
(3)比较所具有T标号的点,把最小者改为P标号,即:
当存在两以上最小者时,可同时改为P标号.若全部点均为P标号,则停止.否则用代vi,转
(2).,【例】用Dijkstra算法求如下图中v1到v8的最短路.,
(1)首先给v1以P标号,P(v1)=0,给其余所有点T标号,
(2)由于(v1,v2),(v1,v3)边属于E,且v2,v3为T标号,所以修改这两个点的标号:
(3)比较所有T标号,T(v2)最小,所以令P(v2)=4.并记录路径(v1,v2).,解:
5,9,7,4,4,v1,v2,v3,v5,v7,v6,v4,4,1,5,5,4,6,7,6,v8,(0),(4),(4)v2为刚得P标号的点,考察边(v2,v4),(v2,v5)的端点v4,v5.,5,9,4,1,5,5,7,4,4,4,6,7,6,v1,v2,v3,v5,v7,v8,v6,v4,(5)比较所有T标号,T(v3)最小,所以令P(v3)=6.并记录路径(v1,v3).,(6)考察点v3,有,(7)比较所有T标号,T(v5)最小,所以令P(v5)=8.并记录路径(v2,v5).,5,9,4,1,5,5,7,4,4,4,6,7,6,v1,v2,v3,v5,v7,v8,v6,v4,(8)考察点v5,有,(9)比较所有T标号,T(v4)最小,所以令P(v4)=9.并记录路径(v2,v4).,5,9,4,1,5,5,7,4,4,4,6,7,6,v1,v2,v3,v5,v7,v8,v6,v4,(0),(10)考察点v4,有,(11)比较所有T标号,T(v6)最小,所以令P(v6)=13.并记录路径(v5,v6).,5,9,4,1,5,5,7,4,4,4,6,7,6,v1,v2,v3,v5,v7,v8,v6,v4,(12)考察点v6,有,(13)比较所有T标号,T(v7)最小,所以令P(v7)=14.并记录路径(v5,v7).,5,9,4,1,5,5,7,4,4,4,6,7,6,v1,v2,v3,v5,v7,v8,v6,v4,(14)考察点v7,有,(15)因为只有一个T标号T(v8),所以令P(v8)=15.并记录路径(v7,v8),计算结束.,5,9,4,1,5,5,7,4,4,4,6,7,6,v1,v2,v3,v5,v7,v8,v6,v4,全部计算结果见图,v1到v8之最短路为v1v2v5v7v8,路长P(v8)=15,同时得到v1点到其余各点的最短路.,5,9,4,1,5,5,7,4,4,4,6,7,6,v1,v2,v3,v5,v7,v8,v6,v4,注:
Dijkstra算法只适用于全部权为非负情况,如果某边上权为负的,则算法无效.如下图中,按DijkstraP(v1)=5为从vsv1的最短路长显然是错误的,从而vsv2v1.,vs,v2,v1,5,-5,8,练习:
下图为单行线交通网,每有向边旁的数字表示通过这条线所需的费用.现在某人要从v1出发,通过这个交通网到v8去,求使总费用最小的旅行路线.,二、BellmanAlgorithm,当网络含负权数时,求最短路的Dijkstra算法不再起作用.,Bellman算法适用于求指定点v1到网络中任意点的具有任意实数权数网络图的最短路问题.Bellman算法基本思路是用逐次逼迫来求网络中最短路.,Bellman算法的基本思想是基于以下事实:
若vi到vj的最短路总沿着该路从v1先到某一点vi,然后再沿边(vi,vj)到达vj,则v1到vi这条路必然也是v1到vi的最短路.若令P1j表示从v1到vj的最短路长,P1i为v1到vi的最短路长,则有,用迭代方法解这个方程.开始时令,即用v1到vj的直接距离做初始解,若v1与vj间无边,则记v1,vj间的最短路长为+00.,从第二步起,使用迭代公式,求P(k)lj,当进行到第t步,若出现,则停止,P(t)lj(j=1,2,n)即为v1点到各点的最短路长.,【例】求下图中v1点到各点的最短路.,解初始条件为,第一轮迭代,类似地,可得:
可以推出P
(2)1j表示从v1点两步到vj(j=1,8)的最短路长.,第二轮迭代,类似地,可得:
第三轮迭代:
全部计算结果如下表.,迭代到第六步时,发现P(5)1j=P(6)1j(j=1,2,8)则停止.表中最后一列数字表示v1到各点的最短路长.,若需要知道v1到各点的最短路径,可采取“反向追踪”方法.,例如:
求v1到v8的最短路径,已知P18=10.而P18=minP1i+li8,在表中求满足等式的vi点,知P16+l68=10,记下(v6,v8).再考查v6,由于P16=6,而6=0+6=P13+l36,记下(v3,v6).再考查v3,由于P16=0,而0=2+(-2)=P12+l23,记下(v2,v3).再考查v2,由于P12=6,而2=0+2=P11+l12,记下(v1,v2).所以由v1到v8的最短路为v1v2v3v6v8.,-3,练习:
求下有向图中从v1到各点的最短路.,三、FloydAlgorithm,某些问题中,要求网络上任意两点间的最短路.这样的问题可以用Dijkstra算法依次改变始点的办法计算,但太繁琐.62年Floyd提出了可直接求这类问题的算法Floyd算法.为方便,令网络权矩阵为D=(dij)n.n,lij为vi到vj的距离,其中,7.4网络最大流问题,许多系统都包含了流量问题.例如公路系统中有车辆流,控制系统有信息流,供水系统有水流等等.如何充分发挥系统的最大功能?
网络最大流问题!
如图是联接某产品产地v1和销地v6的交通网,每一弧(vi,vj)代表从vi到vj的运输线,产品经这条弧由vi输送到vj,弧旁边的数字表示这条运输线的最大通过能力.现在要制定一个运输方案使从v1运到v6的产品数量最多.,产品足够多,可行方案,最大运输量是多少?
产量足够大,定义设有一有向连通图D=(V,A),G的每条弧(vi,vj)有非负数cij称为边的容量,仅有一入次为0的点vs称为发点(源),一个出次为0的点称为收点(汇),其余点为中间点,这样的网络D称为容量网络,常记为D=(V,A,C)网络上的流是指定义在弧集合A上一个函数f=f(vi,vj),并称f(vi,vj)为弧上的流量.,一、最大流有关概念,对任一D中的弧(vi,vj)有流量fij,称集合fij为网络D上的一个流.称满足下列条件的流f为可行流:
(1)容量条件:
对D中每条边(vi,vj),有
(2)平衡条件:
对中间点vi,有即中间点vi的物资输入与输出量相等.对收、发vt,vs有即从vs点发出的物资的净输出量等于vt点输入的物资的净流入量.W=v(f)为网络的总流量.,可行流总是存在的.如令所有弧的流量fij=0,就得到一个可行流(称为零流),其流量W=v(f)=0.所谓最大流问题就是在容量网络中,寻找流量最大的可行流.即求一个流fij使其流量v(f)达到最大,并且满足:
使得从网络上始点(发点)到终点(收点)的总流量W=v(f)达到最大的可行流f=fij称为最大流.一个流f=fij,当fij=cij,则称流f对边(vi,vj)是饱和的,否则称f对(vi,vj)不是饱和的.,最大流问题实际上是个线性规划问题,容量网络中的一个可行流相当于线性规划模型中的一可行解,而寻找网络中的最大流则相当于线性规划模型的最优解.不过,用网络模型方法求解,简单、直观.,
(1)D(V,A-A/)不连通;
(2)A/为A/的真子集,而D(V,A-A/)仍连通,则称始点在V1,终点在V1的所有弧组成的集合称为D的割(截)集,记为(V1,V1).(V1,V1)中所有弧的容量之和,称为(V1,V1)的截量,记为C(V1,V1).,1,1,2,18,2,2,2,17,2,3,2,3,13,2,4,2,4,12,5,2,11,6,2,9,7,2,9,2,8,8,7,容量网络D的截集不是唯一的,截集个数是有限的.其中截量最小者称为网络D的最小截集(最小割),二、最大流最小截量定理,由割集的定义知,在容量网络中截集是由vs到vt的必经之路,无论拿掉哪个截集,vs到vt便不存在路,所以任何一个可行流量不会超过任一截集的容量,也即网络的最大流量与最小截量(最小割)满足如下定理.,定理10设f为网络D=(V,A,C)的任一可行流,流量为W,(V1,V1)是分离vs,vt的任一截集,则WC(V1,V1).,由定理可知,若能找到一个可行流f*,一个截集(V1*,V1*),使得f*的流量W*=C(V1*,V1*),f*一定是最大流,而(V1*,V1*)就是所有容量最小的一个.,定理11(最大流量最小截量定理)任一网络D中,从vs到vt的最大流量等于分离vs,vt的最小截集的容量.最大流的流量等于最小截集的容量证明(略),定义22容量网络D中,若为网络中从vs到vt的一条链,给定向为从vs到vt,上的弧凡与同向称为前向弧,凡反向称为后向弧,其集合分别用+和表示,f是一个可行流,若满足:
则称为从vs到vt的(关于f的)增广链.,v1,v2,v4,v3,v5,v6,如:
在链=(v1,v2,v3,v4,v5,v6)中=(v1,v2),(v2,v3),(v3,v4),(v5,v6)=(v5,v4),v1,v2,v4,v3,v5,v6,3,5,1,2,1,3,2,3,6,2,在上图中:
链=(v1,v2,v3,v4,v5,v6)是一条增广链.因为+、中的边满足增广链的条件.如(v1,v2),f12=50,等等,推论可行流f是最大流的充要条件是不存在从vs到vt的(关于f的)增广链.证明:
(略)寻找最大流的方法是:
从一个可行流开始,寻求关于这个可行流的增广链,若存在,则可以经过调整,得到一个新的可行流,其流量比原来的可行流要大,重复这个过程,直到不存在关于该流的增广链时就得到了最大流.,如果在一个网络中,有多个发点或收点,则可以将其变为只有一个发点和收点的网络.这只需增加一个新的总发点和一个新的总收点.从总发点到各个发点分别连接一条容量为+无穷大的弧,从各个收点到总收点分别连接一条容量为+无穷大的弧.这样就可将问题变为单发点和单收点的网络流问题.所以,以后只讨论一个发点和一个收点的网络流问题.,三、求最大流的标号算法,这里介绍计算网络最大流的简便方法:
标号法,它是FordFulkerson1956年提出,其原理是利用寻找增广链来不断改善可行流.,下面介绍的标号法,就是一种通过搜索增广链,不断改进可行流,直至求得最大流的方法.,在标号法中,网络中的点可分为三类:
标了号且检查过的点;标了号但未检查的点;未标号点.前两种都称为标号点,对于标号点vj,它的标号包含两部分内容,第一部分指出vj的紧前点,第二部分表示从vs到vj的可能调整量,记为l(vj)=.,标号法从一个可行流f出发(若网络中没有给定f,则可以设f是0流),反复经过标号过程与调整过程来寻找最大流.,设fij为可行流,标号方法分两步:
第1步是标号过程,通过标号来寻求增广链;第2步是调整过程,沿增广链调整f以增加流量.,
(一)标号过程,算法,3o重复2o直到收点vt被标号或不再有顶点可标号为止.若vt得到标号,说明存在一条增广链,转
(二)调整过程.若vt未获得标号,标号过程已无法进行时,说明f是最大流.,
(二)调整过程,
(2)去掉所有标号,回到第一步,对行流重新标号.,例用标号法求下图的最大流.弧旁的数字是(cij,fij).,解:
(一)标号过程,
(1)首先给vs标号(0,+),
(2)检查vs.在(vs,v2)上,fs2=cs2=3,是饱和弧,不满足标号条件.,在(vs,v1)上,fs1=1cs1=5,满足标号条件,则令,q1=min(cs1-fs1,qs)=min(5-1,+)=4,给v1以标号(+vs,4).,(3)检查v1.,在弧上(v1,v3)上,f13=c13,是饱和弧,不满足标号条件.,在弧(v2,v1)上,f21=10,满足标号条件.则令,q2=min(f21,q1)=min(1,4)=1,给v2以标号(-v1,1).,在弧(v3,v2)上,f32=10,令q3min(1,1)=1,则给v3以标号(-v2,1).,(4)检查v2.(相邻的未标号的点v4,v3.),在弧(v2,v4)上,f24=3c24=4,令q4min(4-3,1)=1,则给v4以标号(+v2,1).,至此,所有点都有了标号,得到一条增广链(vs,v1,v2,v3,vt),故转入调整过程.,(5)检查v3.在弧(v3,vt)上,f3t=1c3t=2,令qtmin(c3t-f3t,q3)=1,则给vt以标号(+v3,1).,(+v3,1),
(二)调整过程,在增广链中,前向弧(边):
=(vs,v1),(v3,vt)后向弧(边):
=(v2,v1),(v3,v2),令qqt=1,在增广链上调整可行流f:
前向弧(边)上:
fs1+q=1+1=2,f3t+q=1+1=2后向弧(边)上:
f21-q=1-1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网络分析