




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第八章图与网络分析 图的基本概念与模型 树图和图的最小部分树 最短路问题 网络最大流问题 最小费用最大流问题 第八章图与网络分析 图的基本概念与模型 树图和图的最小部分树 最短路问题 网络最大流问题 最小费用最大流问题 图论是应用非常广泛的运筹学分支,它已经广泛地应用于物理学控制论,信息论,工程技术,交通运输,经济管理,电子计算机等各项领域。对于科学研究,市场和社会生活中的许多问题,可以同图论的理论和方法来加以解决。例如,各种通信线路的架设,输油管道的铺设,铁路或者公路交通网络的合理布局等问题,都可以应用图论的方法,简便、快捷地加以解决。引 言 1736年瑞士科学家欧拉发表了关于图论方面的第一
2、篇科学论文,解决了著名的哥尼斯堡七座桥问题。即一个漫步者如何能够走过这七座桥,并且每座桥只能走过一次,最终回到原出发地。如图1所示。引例1欧拉将这个问题抽象成一笔画问题。即能否从某一点开始不重复地一笔画出这个图形,最终回到原点。欧拉在他的论文中证明了这是不可能的,因为这个图形中每一个顶点都与奇数条边相连接,不可能将它一笔画出,这就是古典图论中的第一个著名问题。 在实际的生产和生活中,人们为了反映事物之间的关系,常常在纸上用点和线来画出各式各样的示意图。引例2左图是我国北京、上海、重庆等十四个城市之间的铁路交通图,这里用点表示城市,用点与点之间的线表示城市之间的铁路线。诸如此类还有城市中的市政管
3、道图,民用航空线图等等。连云港武汉南京徐州上海北京塘沽青岛济南天津郑州 有六支球队进行足球比赛,我们分别用点v1v6表示这六支球队,它们之间的比赛情况,也可以用图反映出来,已知v1队战胜v2队,v2队战胜v3队,v3队战胜v5队,如此等等。这个胜负情况,可以用下图所示的有向图反映出来。引例3v3v1v2v4v6v5图的基本概念与模型点:研究对象(车站、国家、球队);点间连线:对象之间的特定关系(陆地间有桥、铁路线、两球队比赛及结果)。对称关系:桥、道路、边界;用不带箭头的连线表 示,称为边。非对称关系:甲队胜乙队,用带箭头的连线表示,称为弧。图:点及边(或弧)组成。注意:一般情况下,图中的相对
4、位置如何,点与点之间线的长短曲直,对于反映研究对象之间的关系,显的并不重要,因此,图论中的图与几何图,工程图等本质上不同。对称关系非对称关系无向图:图由点和边所构成的, 记作G = V ,E(V是点的集合,E是边的集合) 连接点vi,vjV的边记作eij=vi,vj,或者vj,vi。有向图:图是由点和弧所构成的, 记作D=V ,A(V是点的集合,A是弧的集合) , 一条方向从vi指向vj的弧,记作(vi,vj)。 图的相关概念网络图:给图中的点和边赋予具体的含义和权数,如距离, 费用,容量等,记作N.图的相关概念若边eij=vi,vjE,称vi,vj是eij的端点,也称vi,vj是相邻的。称e
5、ij是点vi(及点vj)的关联边。若两条边有一个公共的端点,则称这两条边相邻。vivjevi,vj相邻 e 与vi,vj关联vie1vjvke2点与边关联点与点相邻边与边相邻若某条边两个端点相同,称这条边为环。若两点之间有多于一条的边,称这些边为多重边。 无环、无多重边的图称为简单图。无环、但允许有多重边的图称为多重图。v1e1e2e3v2v3e5e4v4v5注:无特别声明我们今后讨论的图都是简单图图的相关概念 图G中以点v为端点的边的数目,称为v在G中的次(度), 记为d(v)。d(v1)=2 d(v2)=3 d(v3)=4 d(v4)=1 次为1 的点为悬挂点,悬挂点的关联边称为悬挂边,次
6、为零的点称为孤立点。v1e1e2e3v2v3e5e4v4v5次为奇数的点称为奇点,否则称为偶点。图的相关概念给定图G=(V,E),若图G=(V,E),其中VV,E E ,则称G是G的子图。给定图G=(V,E),若图G=(V,E),其中EE,则称G是G的一个支撑子图(部分图)。点全部保留(a)(b)子图(c)部分图子图与部分图(支撑子图)图的连通性链:设图G=(V,E)中有一个点、边交替序列 v1 ,e1,v2,vn-1,en-1 ,vn,若ei=(vi,vi+1),即这(n-1)条边把n个顶点串连起来,我们称这个交替序列为图G中的一条链,而称点v1,vn为该链的两个端点。对于简单图链也可以仅用
7、点的序列来表示。如果一条链的两个端点是同一个点,则称它为闭链或圈;如果一条链的各边均不相同,则称此链为简单链;更若一条链的各点、各边均不相同,则称该链为初等链。v1v3v5e1e2v7v8e7v2v4v6e3e4e5e6e8e9简单链:1=(v2,v1,v3,v6,v4,v3,v5)初等链:2=(v2,v1,v3,v5)图的连通性最短链:网络中链上权值的和称为链的长度,以点v1,vn为端点的诸链中长度最短的链称为这两点的最短链。连通图:如果图G=(V,E)中的任意两点都是其某一条链的两个端点,则称图G是连通图,否则,称图G是不连通的。v1v3v5e1e2v7v8e7v2v4v6e3e4e5e6
8、e8e9为不连通图,有两个连通分图组成图的矩阵表示图的矩阵表示主要方法有:权矩阵、邻接矩阵。权矩阵网络图N=(V,E),边vi,vj的权为wij ,构造矩阵称矩阵A为网络N的权矩阵。v4v5v2v1v3234567894其权矩阵为: 注:当G为无向图时,权矩阵为对称矩阵。图G=(V,E),p=n,构造矩阵称矩阵A为G的邻接矩阵。邻接矩阵?vi与vj不相邻图的矩阵表示其邻接矩阵为: v4v5v2v1v3注:当G为无向图时,邻接矩阵为对称矩阵。 思考:有甲、乙、丙、丁、戊、己六名运动员报名参加A、B、C、D、E、F六个项目的比赛,下表中打的是个运动员报名参加比赛的项目,问六个项目的比赛顺序应如何安
9、排?做到每名运动员都不连续地参加两项比赛。ABCDEF分析:点表示项目,边表示两个项目有同一名运动员参加目的:在图中找出点序列,使得依次排列的两个点不相邻,就找到了每名运动员不连续参加两项比赛的安排方案A、C、B、F、E、D(不唯一)第八章图与网络分析图的基本概念与模型树图和图的最小部分树最短路问题网络最大流问题最小费用最大流问题 第八章图与网络分析图的基本概念与模型树图和图的最小部分树最短路问题网络最大流问题最小费用最大流问题 7个村庄要在他们之间架设电话线,要求任何两个村庄都可以互相通电话(允许中转),并且电话线根数最少?引例村庄1村庄4村庄3村庄6村庄2村庄5村庄7分析:用七个点代表村庄
10、,如果在某两个村庄之间架设电话线,则相应的在两点之间连一条边,这样电话线网就可以用一个图来表示,并且满足如下要求:连通图图中有圈的话,从圈中任去掉一条边,余下的图仍连通为什么?树村庄1村庄4村庄3村庄6村庄2村庄5村庄7如果G=(V,E)是一个无圈的连通图,则称G为树。 树中必存在次为1的点(悬挂点)树中任两点必有一条链且仅有一条链;在树的两个不相邻的点之间添加一条边,就得到一个圈; 反之,去掉树的任一条边,树就成为不连通图;n个顶点的树有(n-1)条边。树是无圈连通图中边数最多的,也是最脆弱的连通图!145241575237图的部分树(支撑树)如果图G=(V,E)的部分图G=(V,E)是树,
11、 则称G是G的部分树(或支撑树)。村庄1村庄4村庄3村庄6村庄2村庄5村庄7部分树上各树枝上权值的和称为它的长度,其中长度最短的部分树,称其为该图的最小部分树(最小支撑树)。点保留边可去仍是树不唯一思考:如何铺设电话线,使得电话线长度最少?ijkml最小部分树的求法定理:图中任一个点i,若j是与相邻点中距离最近的, 则边i,j一定必含在该图的最小部分树内。推论:把图的所有点分成 和 两个集合,则两集合之间连线的最短边一定包含在最小部分树内。避圈法破圈法227541435175ABCDEST算法的步骤: 1、在给定的赋权的连通图上任选一点vi ,其余点在 中。 2、从 与 的连线中找出权数最小的
12、边vi, vj,这条边一定包含在最小部分树内,做以标记。 3、令 vi , ; 4、重复2、3两步,直至所有点都包含在 中为止。vi求解最小生成树的避圈算法S77ABCDEST2254143515求解最小生成树的破圈算法算法的步骤: 1、在给定的赋权的连通图上任找一个圈。 2、在所找的圈中去掉一个权数最大的边(如果有两条或两条以上的边都是权数最大的边,则任意去掉其中一条)。 3、如果所余下的图已不包含圈,则计算结束,所余下的图即为最小生成树,否则返回第1步。第八章图与网络分析图的基本概念与模型树图和图的最小部分树最短路问题网络最大流问题最小费用最大流问题 第八章图与网络分析图的基本概念与模型树
13、图和图的最小部分树最短路问题网络最大流问题最小费用最大流问题 什么是最短路问题?固定起点的最短路 Dijkstra(狄克斯拉) (荷兰)算法:标号法 逐次逼近算法(Ford(美国)算法):修正标号法每 对 顶 点 之 间 的 最 短 路 路矩阵算法(Floyd(佛洛伊德)算法)最短路问题最短路问题提出 在现实生活中,除公路运输网络、电讯网络等网络图以外,还有输油管线这样的图。在输油管线图中,为反映油的输送情况,两点间不仅有连线,线上往往还标有箭头,以表示油的流动方向。又如,指挥系统图、控制系统图等图中都标有指向。从这样的一类图中就可以概括为有向图的概念。有向图由点集 和V 中元素的有序对的一个
14、集合 所组成的二元组称为有向图,记为D=(V,A)。 其中 V中的元素 vi叫做顶点, A中元素aij叫做以vi为始点(尾),vj为终点(首)的弧。 aij与aji作为具有不同指向的弧是不同的。有向网络与混合图如果在图D=(V,A)中,给每一弧赋予权值,如 将弧aij=(vi,vj)有权值 wij,记为w(aij)=wij则赋权有向图D=(V,A)称为有向网络,在不至于混淆时,也简称网络。混合图如果一个图中既有边,也有弧,那么称这种图为混合图。它往往出现在既有单行线,又有双行线的交通图中。12534372最短路问题引例下图为单行线交通网,每弧旁的数字表示通过这条线所需的费用。现在某人要从v1出
15、发,通过这个交通网到v8去,求使总费用最小的旅行路线。v2v523464v3v1v4v6121061210v8v9v72363从v1到v8:P1=(v1,v2,v5,v8) 费用 6+1+6=13P2=(v1,v3,v4, v6, v7, v8) 费用 3+2+10+2+4=21P3= 从v1到v8的旅行路线 从v1到v8的路。旅行路线总费用 路上所有弧权之和。最短路问题中,不考虑有向环、并行弧。v2v523464v3v1v4v6121061210v8v9v72363几个概念路:设p是D中一个首尾相连的弧的集合,如果vs是它的第一条弧的始点,vt是它的最后一条弧的终点,则称它是以点vs为始点,
16、以点vt为终点的一条路。路长:路p中所有弧的权值的和称为路p的长,记为设图D=(V,A)是一有向网络 v2v523464v3v1V4 v6121061210v8v9v72363设P是以点vs为始点,以点vt为终点的所有路的集合, 如果 ,且 ,则称p0是以点vs 为始点,以点vt为终点的最短路。而称其路长为点 vi到点vj的距离,记为 。几个概念注意:在有向网络中,一般最短路及一点到另一点的距离 最短路问题是重要的最优化问题之一,可以直接应用于解决生产实际的许多问题:管道铺设、线路安排、厂区布局等。而且经常被作为一个基本工具来解决其他的优化问题。最短路问题求解方法Dijkstra算法逐步逼近算
17、法路矩阵算法最短路问题求解方法Dijkstra算法逐步逼近算法路矩阵算法求解最短路问题的Dijkstra算法条件:当所有 wij 0 时,用来求给定点vs到任一 个点vj 最短路的公认的最好方法。事实:如果P是D中从vs到vj的最短路,vi是P中的一 基解 个点,那么,从vs沿P到vi的路是从vs到vi的最基解 短路。 Dijkstra算法是Dijkstra在1959年提出的,可用于求解指定两点间的最短路问题,或从指定点到其余各点的最短路问题。由于其以标号为主要特征,又称为标号法。v1v2v3v4v5最短路的子路是最短路Dijkstra算法基本思想 从始点vs出发,逐步顺序地向外探寻,每向外延
18、伸一步都要求是最短的。执行过程中,与每个点对应,记录下一个数(称为这个点的标号) 1.标号 P(固定标号或永久性标号)从始点vs到该标号点vj的最短路权P (vj) 。 2.标号 T(临时性标号)从始点vs到该标号点vj的最短路权上界T (vj) 。j ,P (vj)j, T (vj) 该方法的每一步就是去修改T标号,并且把某一个具T标号的点改变为具有P标号的点,从而使D中具P标号的顶点数多一个,至多经过n-1步,就可以求出始点vs到各点的最短路。前点标号j 表示始点vs到vj的最短路上vj的前一点。Dijkstra算法步骤: 第二步:考虑满足条件 的所有点; vi具有P 标号;vj具有T 标
19、号; 修改vj的T标号为 ,并将结果仍记为T(vj)第一步:始点标上固定标号 ,其余各点标临时性标号 T(vj)=, j1; 第三步:若网络图中已无T标号点,停止计算。否则, 令 ,s为T标号点集, 然后将 的T 标号改成P 标号 ,转入第二步。v1,6图上标号法v5v223464v3v1v41210 6 1210v8v9v72363v60,0M, M, v1,3M, M, M, v1,1v1,1永久标号永久标号临时标号v1出发到v8去,使总费用最小的旅行路线v1,6图上标号法v5v223464v3v1v41210 6 1210v8v9v72363v60,0M, M, v1,3M, M, M,
20、 0,0v1,1v4,11v1,3永久标号临时标号v1出发到v8去,使总费用最小的旅行路线v5v223464v3v1v41210 6 1210v8v9v72363v60,0M, v1,1M, M,M, 1,3图上标号法v4,11v1,3v1,6v3,5v3,5永久标号临时标号v1出发到v8去,使总费用最小的旅行路线v5v223464v3v1v41210 6 1210v8v9v72363v60,0M, v4,11v1,1M, M, M, v1,3图上标号法v3,5v2, 6v2, 6永久标号临时标号v1出发到v8去,使总费用最小的旅行路线v5v223464v3v1v41210 6 1210v8v
21、9v72363v60,0M, v4,11v1,1M, M, v1,3v5,12v5,9v5,9图上标号法v3,5v2, 6永久标号临时标号v5,10v1出发到v8去,使总费用最小的旅行路线v5v223464v3v1v41210 6 1210v8v9v72363v60,0v5,10v1,1M, v5, 12 v1,3v5,9v5, 12 v3,5v2, 6图上标号法永久标号临时标号v5,10v1出发到v8去,使总费用最小的旅行路线v5v223464v3v1v41210 6 1210v8v9v72363v60,0v5,10v1,1M, v1,3v5, 12 v3,5v2, 6图上标号法v5,9永久
22、标号临时标号标号结束 反向追踪v1出发到v8去,使总费用最小的旅行路线Dijkstra算法步骤: 第二步:考虑满足条件 的所有点; vi具有P 标号;vj具有T 标号; 修改vj的T标号为 ,并将结果仍记为T(vj)第一步:始点标上固定标号 ,其余各点标临时性标号 T(vj)=, j1; 第三步:若网络图中已无T标号点,停止计算。否则, 令 ,s为T标号点集, 然后将 的T 标号改成P 标号 ,转入第二步。例 求如下交通网络中v1 到各点间最短路路长。Dijkstra算法(标号法)算例31025v4v1v2v5v312262448混合图无向网络:负权弧时。wijvivjwijwijvjvi无向
23、网络中,最短路最短链。 多个点对之间最短路?v1v2v312-3Dijkstra算法失效Dijkstra算法注意的问题逐步逼近算法路矩阵算法5727461263202657710v3v1v2v4v5v6v7练习:求如下无向网络中v1到v7的最短链Dijkstra算法求最短链最短路问题求解方法Dijkstra算法逐步逼近算法路矩阵算法最短路问题求解方法Dijkstra算法逐步逼近算法路矩阵算法逐次逼近算法思想 该公式表明, P(1)1j中的第j个分量等于P(0)1j的分量与基本表(权矩阵)中的第j列相应元素路长的最小值,它相当于在v1与vj之间插入一个转接点(v1,v2,vn中的任一个,含点v1
24、与vj)后所有可能路中的最短路的路长;每迭代一次,就相当与增加一个转接点,而P(k)1j中的每一个分量则随着k的增加而呈不增的趋势!v1v2v312-3用于计算带有负权弧指定点v1到其余各点的最短路j=1,2,n. k=1,2,tn.2.计算逐次逼近算法基本步骤 j=1,2,n.1.令其元素即是v1到vj的最短路长。3.当出现时,v1v2v312-3例 计算从点v1到所有其它顶点的最短路解:初始条件为 以后按照公式 进行迭代。 直到得到 ,迭代停止。v1v2v3v4v6v5v8v72-35467-24-3342-1v1v2v3v4v5v6v7v8v8v7v6v5v4v3v2v1wijv1v2v
25、3v4v6v5v8v72-35467-24-3342-1400-160240-33-3075-204200利用下标追踪路径基本表空格为无穷大v1v2v3v4v5v6v7v8v8v7v6v5v4v3v2v1wijv1v2v3v4v6v5v8v72-35467-24-3342-1400-160240-33-3075-204200利用下标追踪路径基本表空格为无穷大最短路问题求解方法Dijkstra算法逐步逼近算法路矩阵算法最短路问题求解方法Dijkstra算法逐步逼近算法路矩阵算法 某些问题需要求网络上任意两点间的最短路。当然,它也可以用标号算法依次改变始点的办法来计算,但是比较麻烦。 这里介绍Fl
26、oyd在1962年提出的路矩阵法,它可直接求出网络中任意两点间的最短路。Floyd算法(路矩阵法)思想 考虑D中任意两点vi,vj,如将D中vi,vj以外的点都删掉,得只剩vi,vj的一个子网络D0,记wij为弧( vi,vj)的权。 在D0中加入v1及D中与vi,vj,v1相关联的弧,得D1,D1中vi到vj的最短路记为 ,则一定有vivjv1wijFloyd算法(路矩阵法)思想 网络D=(V,A,W),令U=(dij)nn, 表示D中vi到vj的最短路的长度。dij 再在D1中加入v2及D中与vi,vj,v1, v2相关联的弧,得D2,D2中vi到vj的最短路长记为 ,则有Floyd算法(
27、路矩阵法)思想Floyd算法(路矩阵法)步骤设有有向网络D=(V,A),其权矩阵为A=(aij)nn,如下构造路矩阵序列:则n阶路矩阵D(n)中的元素d(n)ij就是vi到vj的最短路的路长。 令权矩阵A为初始路矩阵D(0),即令D(0)=A2. 依次计算K阶路矩阵D(K)=(d(k)ij)nn, k=1,2,n,这里路矩阵序列的含义 K阶路矩阵D(K) 其中的元素表示相应两点间可能以点v1、v2、vk为 转接点的所有路中路长最短的路的路长。 D(0) 其中的任一元素表示相应两点间无转接点时最短路路长。一阶路矩阵D(1) 其中的元素表示相应两点间可能以点v1为转接点的所有路中路长最短的路的路长
28、;为使计算程序化,转接点按顶点下标的顺序依次加入n阶路矩阵D(n) 其中的元素d(n)ij就是vi到vj的可能以点v1、v2、vn为转接点的所有路中路长最短的路的路长。既是vi到vj的最短路的路长。例 求如下交通网络中各对点间最短路路长。该图的权矩阵为:Floyd算法(路矩阵法)算例31025v4v1v2v5v312262448例 求如下交通网络中各对点间最短路路长。Floyd算法(路矩阵法)算例31025v4v1v2v5v312262448利用公式发现第一行,第一列元素不变31025v4v1v2v5v312262448利用公式发现第二行,第二列元素不变31025v4v1v2v5v312262448利用公式发现第三行,第三列元素不变31025v4v1v2v5v312262448利用公式发现第四行,第四列元素不变31025v4v1v2v5v31226244831025v4v1v2v5v312262448D(5)中的元素给出相应两点间的最短路,其下标给出最短路个顶点下标,比如:6254已知有7个村子,相互间道路的距离如下图示。拟合建一所小学,已知A处有小学生30人,B处40人,C处25人,D处20人,E处50人,F处60人, G处60人,问小学应建在哪一个村子,使学生上学最方便(原则所有人走的总路程最短;尽可能公平。)。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《2025专利权许可合同》
- 人工草坪铺设合同标准文本
- 中铁货物采购合同样本
- 仪器安装服务合同样本
- 保管合同样本写
- 供气出售意向合同样本
- 公司变更终止合同样本
- 农村养殖牛蛙合同样本
- 供应商战略合同标准文本
- 个人住宅出租合同样本
- 室内设计服务内容及设计深度要求
- 安装工程开工报告表格
- 全文解读2022年新制订《农村集体经济组织财务制度》PPT课件
- 绘本《大大行我也行》PPT
- 设计输入和参考现有平台技术协议222m helideck proposal for gshi
- Duncans 新复极差检验SSR值表
- 小学生A4日记本打印版(田字格+拼音格)(共1页)
- 北京市教育委员会关于建立民办学校办学情况年度报告制度的通知
- 桥墩尺寸经验值
- ICOM 2720中文说明书
- 初中英语语法-介词、连词.ppt
评论
0/150
提交评论