最新图与网络优化幻灯片.ppt

上传人:豆**** 文档编号:34132599 上传时间:2022-08-14 格式:PPT 页数:92 大小:4.37MB
返回 下载 相关 举报
最新图与网络优化幻灯片.ppt_第1页
第1页 / 共92页
最新图与网络优化幻灯片.ppt_第2页
第2页 / 共92页
点击查看更多>>
资源描述

《最新图与网络优化幻灯片.ppt》由会员分享,可在线阅读,更多相关《最新图与网络优化幻灯片.ppt(92页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、 图论是应用十分广泛的运筹学分支,它已广泛地应用在物理学、化学、控制论、信息论、科学管理、电子计算机等各个领域。在实际生活、生产和科学研究中,有很多问题可以用图论的理论和方法来解决。例如,在组织生产中,为了完成某项任务,各工序之间怎样衔接,才能使生产任务完成得既快又好。一个邮递员送信,要走完他负责的全部街道,完成任务后回到邮局,应该按照怎样的路线走,使所走的路程最短。再例如,各种通信网络的合理架设,交通网络的合理分布等问题,应用图论的方法求解都很简便。 欧拉在1736年发表图论方面的第一篇论文,解决了著名的哥尼斯堡七桥问题(哥尼斯堡城中有一条河普雷格尔河,该河中有两个岛,河上有七 现在讨论有向

2、图的情形。设给定一个有向图 D =(V , A),从 D 中去掉所有弧上的箭头,就得到一个无向图,称之为 D 的基础图基础图,记为 G(D)。 给 D 中的一条弧 a=(u , v),称 u 为 a 的始点始点, v 为 a 的终点终点, 称弧 a 是从 u 指向 v 的。v1v2v3v4v5v1v2v4v5v1v2v3v4v5 设 (vi1 , ai1 , vi2 , ai2 , , vik-1 , aik-1 , vik) 是 D 中的一个点弧交错序列,如果这个序列在基础图 G(D) 中所对应的点边序列是一条链,则称这个点弧交错序列是 D 的一条链。类似定义圈和初等链(圈)。 如果 (vi

3、1 , ai1 , vi2 , ai2 , , vik-1 , aik-1 , vik) 是 D 中的一条链,并且对 t=1,k-1,均有 ait=(vit , vit+1),则称之为从从 vi1 到到 vik 的一条路的一条路。若路的第一个点和最后一点相同,则称之为回路回路。类似定义初等路初等路(回路)。对于无向图,链与路(圈与回路)这两个概念是一致的。 类似于无向图,可定义简单有向图、多重有向图。以后除非特别交代,否则,说到图均指简单图。 第二节第二节 树树 2.1 树及其性质树及其性质 在各式各样的图中,有一类图是极其简单然而却很有用的,这就是树。 定义定义1:一个无圈的连通图称为树:一

4、个无圈的连通图称为树。 下面介绍树的一些重要性质。 定理定理3:设图:设图 G=(V , E) 是一个树,是一个树, p(G) 2,则则 G 中中至少有两个悬挂点。至少有两个悬挂点。 证明证明:令 P=(v1 , v2 , , vk) 是 G 中含边数最多的一条初等链,因为 p(G)2,并且 G 是连通的,故链 P 中至少有一条边,从而 v1与 vk 是不同的。现在来证明: v1 是悬挂点,即 d(v1)=1。用反证法,如果 d(v1)2,则存在边 v1 , vm,使 m2。若点 vm 不在 P 上,那么 (vm , v1 , v2 , , vk) 是 G 中的一条初等链, 它所含边数比 P

5、多一条,这与 P 是含边数最多的初等链相矛盾。若点 vm 在 P 上,那么(v1 , v2 , , vm , v1) 是G 中的一个圈,这又与树的定义相矛盾。于是必有 d(v1)=1,即 v1 是悬挂点。同理可证 vk 也是悬挂点。因而G 中至少有两个悬挂点。 定理定理4:图图 G=(V , E) 是一个树的充分必要条件是是一个树的充分必要条件是G不不含圈,且恰有含圈,且恰有 p-1 条边。条边。 证明证明:“必要性”:设G是一个树,根据定义, G不含圈,故只要证明 G 恰有 p-1 条边。对点数 p 施行数学归纳法。当 p1,2时,结论显然成立。假设对点数 pn时,结论成立。设树 G 含有n

6、+1个点。由定理3,G 含有悬挂点,设 v1 是 G 的一个悬挂点,考虑图 G-v1,易见 p(G-v1)=n,q(G-v1)=q(G)-1。因 G-v1 是 n 个点的树,由归纳假设, q(G-v1)n-1,于是 q(G)= q(G-v1)+1=(n-1)+1=n=p(G)-1 “充分性”:只要证明 G 是连通的。用反证法,设 G 是不连通的,G 含有 s 个连通分图 G1 , G2 , , Gs,(s2)。因每个 Gi (i=1,s) 是连通的,并且不含圈,故每个 Gi (i=1,s) 是树,设 Gi 有 pi 个点,则由必要性, Gi 有 pi1条边,于是: 这与 q(G)=p(G)-1

7、的假设相矛盾。 定理定理5:图图 G=(V , E) 是一个树的充分必要条件是是一个树的充分必要条件是G 是连通图,并且是连通图,并且 q(G)=p(G)-1。 证明证明:“必要性”:设 G 是树,根据定义, G 是连通 21111GpsGpsppGqGqsiisiisii 图,由定理4, q(G)=p(G)-1。 “充分性”:只要证明 G 不含圈,对点数施行归纳法。当 p1,2时,结论显然成立。设 p(G)n(n1)时结论成立。现设 p(G)n1,首先证明 G 必有悬挂点。若不然,因 G 是连通的,且 p(G)2,故对每个点 vi ,有 d(vi)2。从而: 这与 q(G)=p(G)-1相矛

8、盾,故 G 必有悬挂点,考虑 G-v1 ,这个图仍然是连通的, q(G-v1)=q(G)-1=p(G)-2=p(G-v1)-1 由归纳假设知道 G-v1不含圈,于是 G 也不含圈。 定理定理6:图:图 G 是树的充分必要条件事任意两个顶点之是树的充分必要条件事任意两个顶点之 GpvdGqGpii121 间恰有一条链。间恰有一条链。 证明证明:“必要性”:因 G 是连通的,故任意两个点之间至少有一条链。但如果某两个点之间有两条链的话,那么图 G 中含有圈,这与树的定义相矛盾,从而任何两个点之间恰有一条链。 “充分性”:设图 G 中任两个点之间恰有一条链,那么易见 G 是连通的。如果 G 中含有圈

9、,那么这个圈上的两个顶点之间有两条链,这与假设相矛盾,故 G 不含圈,于是 G 是树。 由这个定理,很容易推出如下结论: (1)从一个树中去掉任意一条边,则余下的图是不连通的。由此可知,在点集合相同的所有图中,树是含边数最少的连通图。 (2)在树中,不相邻的两个点间添上一条边,则恰好得到一个圈。进一步说,如果再从这个圈上任意去掉一条边,可以得到一个树。 2.2 图的支撑树图的支撑树 定义定义2:设图:设图 T=(V , E/) 是图是图 G=(V , E)的支撑子图,的支撑子图,如果图如果图 T=(V , E/) 是一个树,则称是一个树,则称 T 是是 G 的一个支的一个支撑树。撑树。 若 T

10、=(V , E/) 是 G=(V , E)的一个支撑树,则显然,树 T 中边的个数是 p(G)-1,G 中不属于树 T 的边数是:q(G)-p(G)+1。 定理定理7:图:图 G 有支撑树的充分必要条件是图有支撑树的充分必要条件是图 G 是连是连通的。通的。 证明证明:必要性是显然的。 “充分性”:设图 G 是连通图,如果 G 不含圈,那么 G 本身就是一个树,从而 G 是它自身的一个支撑树。现假设 G 含圈,任取一个圈,从圈中任意地去掉一条边,得到图 G 的一个支撑子图 G1 。如果 G1 不含圈,那么 G1 就是 G 的一个支撑树(因为 G1 的顶点数与 G 相同,且连通);如果 G1 仍

11、然含圈,那么从 G1 中任取一个圈,从圈中再任意去掉一条边,得到图 G 的一个支撑子图 G2 ,如此重复,最终可以得到 G 的一个支撑子图 Gk ,它不含圈,于是 Gk 是 G 的一个支撑树。 定理7充分性的证明,提供了一个寻求连通图的支撑树的方法。这就是任取一个圈,从圈中去掉一个边,对余下的图重复这个步骤,直到不含圈时为止,即得到一个支撑树。称这种方法为“破圈法破圈法”。 也可以用另一种方法来寻求连通图的支撑树。在图中任取一条边 e1 ,找一条与 e1 不构成圈的边 e2 ,再找一条与 e1 、 e2 不构成圈的边 e3 ,一般,设已有e1 , e2 、 ek,找一条与 e1 , e2 、

12、ek 中的任何一些边不构成圈的边 ek+1 。重复这个过程,直到不能进行为止。这时,由所有取出的边所构成的图就是一个支撑树,称这种方法为“避圈避圈法法”。 2.3 最小支撑树问题最小支撑树问题 定义定义3:给图:给图 G=(V , E),对对 G 中的每一条边中的每一条边 ui , vj,相应地有一个数相应地有一个数 wij ,则称这样的图则称这样的图 G 为赋权图,为赋权图, wij 称为边称为边 ui , vj上的权。上的权。 这里所说的“权”,是指与边有关的数量指标。根据实际问题的需要,可以赋予它不同的含义,如表示距离、时间、费用等等。 赋权图在图的理论及其应用方面有着重要的地位。赋权图

13、不仅指出各个点之间的邻接关系,而且同时也表示出各点之间的数量关系。所以,赋权图被广泛地应用于解决工程技术及科学生产管理等领域的最优化问题。最小支撑树问题就是赋权图上的最优化问题之一。 设有一个连通图 G=(V , E),每一个边 e=ui , vj,有一个非负权 w(e)=wij (wij 0)。 定义4:如果 T=(V , E/) 是 G 的一个支撑树,称 E/中所有边的权之和为支撑树 T 的权,记为 w(T),即: 如果支撑树 T* 的权 w(T*) 是 G 的所有支撑树中权最 TvuijjiwTw, 小者,则称 T*是 G 的最小支撑树(也称最小树)。即有: 式中对 G 的所有支撑树 T

14、 取最小。 最小支撑树问题就是要求给定连通赋权图 G 的最小支撑树。 假设给定一些城市,已知每对城市间交通线的建造费用。要求建造一个联结这些城市的交通网,使总的建造费用最小,这个问题就是赋权图上的最小树问题。 下面介绍求最小树的两个方法。 方法一:避圈法方法一:避圈法(kruskal) 开始选一条最小权的边,以后每一步中,总从与已选出的边不构成圈的那些未选边中,选出一条权最小的。 TwTwTmin* (每一步中,如果有两条或两条以上的边都是权最小的边,则从中任选一条)。算法的具体步骤如下: 第一步:第一步:令 i=1,E0=,( 表示空集); 第二步:第二步:选一条边 eiEEi-1 ,使 e

15、i 是使 (V , Ei-1ei) 不含圈的所有边 e (eEEi-1 ) 中权最小的边。令 Ei= Ei-1ei,如果这样的边不存在,则T=(V , Ei-1) 就是最小树; 第三步:第三步:把 i 换成 i+1 ,转入第二步。v1v2v3v4v5v6v1v2v4v3v5v6651725344 现在来证明方法一的正确性。 令 G=(V , E) 是连通赋权图,根据2.2中所述可知:方法一终止时,T=(V , Ei-1) 是支撑树,并且这时i=p(G)。记:E(T)=e1 , e2 、 ep-1,式中 p=p(G),T 的权为: 用反证法来证明 T 是最小支撑树,设 T 不是最小支撑树,在 G

16、 的所有支撑树中,令 H 是与 T 的公共边数最公共边数最多多的最小支撑树。因 T 与 H 不是同一个支撑树,故 T 中至少有一条边不在 H 中。令 ei (1 i p-1) 是第一个不属于 H 的边,把 ei 放入 H 中,必得到一个且仅一个圈,记这个圈为 C 。因为 T 是不含圈的,故 C 中必有一条边不属于 T ,记这条边为 e 。在 H 中去掉 e ,增加 ei ,就得到 G 的另一个支撑树 T0 , 11piiewTw 可见: W(T0)=w(H)+w(ei)-w(e) 因为 w(H) W(T0),推出 w(e)w(ei)。但根据算法, ei 是使 (V , e1 , e2 、 ei

17、) 不含圈的权最小的边,而(V , e1 , e2 、 ei-1、e) 也是不含圈的,故必有 w(ei) w(e),从而 w(ei) w(e),也就是 W(T0)=w(H)。这就是说 T0 也是 G 的一个最小支撑树,但是 T0 与 T 的公共边数比 H 与 T 的公共边数多一条,这与 H 的选取相矛盾。 方法二:破圈法方法二:破圈法 任取一个圈,从圈中去掉一条权最大的边(如果有两条或两条以上的边都是权最大的边,则任意去掉其中一条)。在余下的圈中,重复这个步骤,直至 得到一个不含圈的图为止,这时的图便是最小树。 第三节第三节 最短路问题最短路问题 3.1 引例引例 已知如下图所示的单行线交通网

18、,每弧旁的数字表示通过这条单行线所需要的费用。现在某人要从 v1 出发,通过这个交通网到 v8 去,求使总费用最小的旅行路线。v1v2v3v4v5v6v7v8v9110226243263104361 从这个例子可以引出一般的最短路问题,即给了一个有向图 D =(V , A) ,对于每一个弧 a=(vi , vj),相应地有权 w(a)=wij ,又给定 D 中的两个顶点 vs , vt 。设 P是 D 中从 vs 到 vt 的一条路,定义路 P 的权是 P 中所有弧的权之和,记为 w(P) 。最短路问题就是要在所有从 vs 到 vt 的路中,求一条权最小的路,即求一条从 vs 到 vt 的路

19、P0 ,使得: 式中对 D 中所有从 vs 到 vt 的路 P 取最小,称 P0 是从 vs 到 vt 的最短路最短路。路 P0 的权称为从 vs 到 vt 的距距离离,记为 d (vs , vt) 。显然 d (vs , vt) 与 d (vt , vs) 不一定相等。 最短路问题是重要的最优化问题之一,它不仅可以 PwPwPmin0 直接应用于解决生产实际的许多问题,诸如管道铺设、路线安装、厂区布局、设备更新等,而且经常被作为一个基本工具,用于解决其他最优化问题。 3.2 最短路算法最短路算法 本节将介绍在一个赋权有向图中寻求最短路的方法,这些方法不仅求出了从起点 vs 到终点 vt 的最

20、短路,更是求出了从给定一个点 vs 到任意一个点 vj 的最短路。 如下事实经常要利用到的,即:如果 P 是有向图 D 中从 vs 到 vj 的最短路,vi 是 P 中的一个点,那么,从 vs 沿 P 到 vi 的路是从 vs 到 vi 的最短路。 首先介绍所有 wij 0 的情形下,求最短路的方法。当所有的 wij 0 时,目前公认最好的方法是由 Dijkstra 于1959年提出来的。 Dijkstra方法的基本思想是从 vs 出发,逐步地向 外探寻最短路。执行过程中,与每个点对应,记录下一个数(称为这个点的标号),它或者表示从 vs到 该点的最短路的权(称为 P 标号),或者是从 vs

21、到 该点的最短路的权的上界(称为 T 标号),方法的每一步是去修改 T 标号,并且把某一个具 T 标号的点改变为具 P 标号的点,从而使 D 中具 P 标号的顶点数多一个,这样,至多经过 p-1 步,就可以求出从 vs到各个点的最短路。 在下述 Dijkstra方法具体步骤中,用 P,T 分别表示某个点的 P 标号、T 标号,Si 表示第 i 步时,具 P 标号点的集合。为了求出从 vs 到各点的距离的同时,也求出从 vs 到各点的最短路,给每一个点 v 以一个 值,算法终止时,如果 (v)=m ,表示在从 vs 到 v 的最短路上, v 的前一个点是 vm ;如果 (v)=M, 则表示 D

22、中不含从 vs 到 v 的路; (v)=0 表示 v=vs 。 对于给定的赋权有向图 D =(V , A),Dijkstra 方法的具体步骤如下: 开始(i=0),令 S0=vs,P(vs)=0,(vs)=0,对每一个 vvs ,令 T(v)=+, (v)=M,令 k=s; (1)如果 Si=V,算法终止,这时,对每个 vSi ,d(vs , v)=P(v);否则转入(2); (2) 考查每个使 (vk , vj)A 且 vjSi 的点 vj ;如果 T(vj)P(vk)+wkj ,则把 T(vj) 修改为 P(vk)+wkj ,把 (vj) 修改为 k ;否则转入(3); (3) ,令标号标

23、号变为的,则把。如果令:iiiiiijijiijjjjjSvjvSSvTvPPTvvTvTvT1min k=ji ,i:=i+1,转入(1);否则终止,这时对每一个vSi ,d(vs , v)=P(v),而对每个 vSi , d(vs , v)=T(v)。 上面介绍了求一个赋权有向图中,从一个顶点 vs 到各个顶点的最短路。对于赋权无向图 G=(V , E),因为沿边vi , vj既可以从 vi 到达 vj ,也可以从 vj 到达 vi ,所以边vi , vj可以看着是两条弧 (vi , vj) 及 (vj , vi) ,它们具有相同的权 wvi , vj。这样,在一个赋权无向图中,如果所有的

24、 wij 0,只要把 Dijkstra方法中的第2步,即(2)“考查每个使 (vk , vj)A 且 vjSi 的点 vj ”改为(2)考查每个使 vk , vjE 且 vjSi 的点 vj ”,同样地可以求出从 vs 到各个顶点的最短路(对于无向图来说,即为最短链)。 现在来证明 Dijkstra方法的正确性。只要证明对于每 一个点 vSi ,P(v) 是从 vs 到 v 的最短路的权,即 d(vs , v)=P(v) 即可。 对 i 施行归纳法,i=0 时结论显然成立。设对 i=n 时,结论成立,即对每一个点 vSn , d(vs , v)=P(v)。现在考查 i=n1 时,因 Sn+1=

25、Snvjn,所以只要证明 d(vs , vjn)=P(vjn) 。根据算法, vjn 是这时的具最小 T 标号的点,即: 这里为了清晰起见,用 Tn(v) 表示当 i=n 时执行步骤(3)时点 v 的 T 标号。假设 H 是 D 中任一条从 vs 到 vjn 的路,因为 vsSn ,而 vjnSn , 那么从 vs 出发,沿 H 必存在一条弧,它的始点属于 Sn ,而终点不属于 Sn 。假设 (vr , vl) 是的一条这样的弧,即: jnSvjnvTvTnjn min H =(vs , , vr , vl , , vjn) W(H)=w(vs , , vr) + wrl + w(vl , ,

26、 vjn) 由归纳假设,P(vr) 是从 vs 到 vr 的最短路的权,于是: W(H) P(vr) + wrl + w(vl , , vjn) 根据方法中 T 标号的修改规则,因 vrSn , vlSn,所以, P(vr) + wrl Tn(vl)。而 Tn(vl) Tn(vjn),所以: W(H) Tn(vjn) + w(vl , , vjn) Tn(vjn) 又因为所有的 wij 0,从而, w(vl , , vjn) 0。 这就证明了 Tn(vjn) 是从 vs 到 vjn 的最短路的权,由方法,P(vjn) = Tn(vjn) ,这样就证明了: d(vs , vjn)=P(vjn)

27、Dijkstra 算法只适用于所有 wij 0 的情形,当赋权有 向图中存在负权时,则算法失效。如下图所示: 如果用 Dijkstra 方法,可得出从 v1 到 v2 的最短路的权是 1,但这显然是不对的,因为从 v1 到 v2 的最短路是 (v1 , v3 , v2),权是1。 下面介绍当赋权有向图 D 中,存在具负权的弧时,求最短路的方法。 为方便起见,不妨假设从任一个点 vi 到任一个点 vj 都有一条弧(如果 (vi , vj)A ,则添加弧 (vi , vj) ,且v1v2v312-3 令 wij = + )。 显然,从 vs 到 vj 的最短路总是从 vs 出发,沿着一条路到某个点

28、 vi ,再沿 (vi , vj) 到达 vj ,由本节开始时介绍的一个结论可知,从 vs 到 vi 的这条路必定是从 vs 到 vi 的的最短路,所以 d(vs , vj) 必满足如下方程: 为求得这个方程的解 d(vs , v1) , d(vs , v2) , , d(vs , vp),可用如下的递推公式: 开始时,令: d(1)(vs , vj) =wsj (j=1 , 2 , , p) 对 t=2 , 3 , ,ijisijswvvdvvd,min, ijistijstwvvdvvd,min,1 j=1 , 2 , , p 若进行到某一步,例如第 k 步时,对所有 j=1 , 2 ,

29、, p,有:d(t)(vs , vj) = d(t-1)(vs , vj) 则 d(t)(vs , vj),j=1 , 2 , , p ,就是 vs 到各点的最短路。 例:求下图所示赋权有 向图中从 v1 到各点 的最短路。 解:解:利用上述 递推公式, 求解结果如下 表所示(表中未填v1v2v3v4v5v6v7v86-138-2-3-512-12-1117-5-3 数字的空格内表示 )。 可以看到,当 t 4时,对所有 j=1 , , 8,有: d(t)(v1 , vj) = d(t-1)(v1 , vj) 于是,表中最后一列的数值就是从起点 v1 到 v1、 v2、 v8 的最短路的权。

30、为了进一步求得从 vs 到各点的最短路,可以类似于 Dijkstra 方法中,给每一个点以 值,开始时,令: (vs)=0, (vi)=s (ij);在迭代过程中,如果: 则把这时的 (vj) 修改为 i0 。迭代终止时。根据各点的 值,可以得到从 vs 到各点的最短路。 jiistijistijstwvvdwvvdvvd0011,min,点点wijd(t)(v1 , vj)v1v2v3v4v5v6v7v8t=1t=2t=3t=4v10-1-230000v2602-1-5-5-5v3-30-51-2-2-2-2v4023-7-7-7v5-101-3-3v61017-1-1-1v7-105-5-

31、5v8-3-5066 定义定义5:设:设 D 是赋权有向图,是赋权有向图,C 是是 D 中的一个回路,中的一个回路,如果如果 C 的权的权 w(C) 小于零,则称小于零,则称 C 是是 D 中的一个负中的一个负回路。回路。 根据定义,我们可以证明如下结论: (1)如果 D 是不含负回路的赋权有向图,那么,从 vs 到任一个点的最短路必可取为初等路,从而最多包含 p-2 个中间点; (2)上述递推公式中的 d(t)(vs , vj) 是在至多包含 t-1 个中间点的限制条件下,从 vs 到 vj 的最短路的权。 由(1),(2)可知:当 D 中不含负回路时,上述算法最多经过 p-1 次迭代必定收

32、敛,即对所有的 j=1 , , p ,均有 d(t)(vs , vj) = d(t-1)(vs , vj) ,从而求出从 vs 到各个顶点的最短路的权。 如果经过 p-1 次迭代,存在某个 j ,使得: d(t)(vs , vj) d(t-1)(vs , vj) 则说明 D 中含有负回路。显然,这时,从 vs 到 vj 的路的权是没有下界的。 为了加快收敛速度,可以利用如下的递推公式: J. Y . Yen 提出了一个改进的递推算法: ,3,2,2,1,min,minmin,2, 1,1tpjwvvdwvvdvvdpjwvvdijistjiijistjijstijjs pjwvvdijjs,2

33、, 1,1 对 t =2 , 4 , 6 , ,按 j 1 , 2 , , p 的顺序计算: 对 t =3 , 5 , 7, ,按 j p , p-1 , , 1 的顺序计算: 同样地,当对所有的 j=1 , , p ,均有: d(t)(vs , vj) = d(t-1)(vs , vj) 时,算法终止。 3.3 应用举例应用举例 例13(设备更新问题)。某企业使用一台设备,在每年年初,企业领导部门就要决定是购置新的,还 ijistjijstjstwvvdvvdvvd,min,min,1 ijistjijstjstwvvdvvdvvd,min,min,1 是继续使用旧的。若购置新设备,就要支付

34、一定的购置费用;若继续使用旧设备,则需要支付一定的维修费用。现在的问题是如何制定一个几年之内的设备更新计划,使得总的支付费用最少。我们用一个五年之内要更新某种设备的计划为例,若已知该种设备在各年年初的价格为: 还已知使用不同时间(年)的设备所需维修费用为:第1年第2年第3年第4年第5年1111121213使用年数0 11 22 33 44 5维修费用5681118 可供选择的设备更新方案有很多。例如,每年都购置一台新设备,则其购置费用为 111112121359,而每年支付的维修费用为5,五年合计为25。于是五年总的支付费用为 592584。 又例如决定在第一、三、五年各购进一台,这个方案的设

35、备购置费为11121336,维修费为5656527。五年总的支付费用为63。 如何制定使得总的支付费用最少的设备更新计划?可以把这个问题化为最短路问题,见下图:v1v2v3v4v5v6161617171859413022234131302322 用点 vi 代表“第 i 年年初购进一台新设备”这种状态(这里的 v6 可理解为第五年年底)。从 vi 到 vi+1 , v6 各画一条弧。弧 (vi , vj) 表示在第 i 年年初购进的设备一直使用到第 j 年年初(即第 j-1 年年底)。 每条弧的权可按已知资料计算出来。例如,(v1 , v4) 表示第1年年初购进一台新设备(支付购置费11),一

36、只用到第3年年底(支付维修费56819),故 (v1 , v4) 上的权为 30。 这样,该问题就转换成为寻求从 v1 到 v6 的最短路的问题。 按求最短路的计算方法,v1 , v3 , v6 及 v1 , v4 , v6 均为最短路,即有两个最有方案。一个是在第1、3年初各购置一台新设备;另一个方案是在第1、4 年初各购置一台新设备。五年总的支付费用为 53。 3.4 最短路方法的数学模型最短路方法的数学模型 已知赋权有向图 D =(V , A , W),其中: V=v1 , v2 , , vn, v1 为起点, vn 为终点; A=e1 , e2 , , em; B=(bij)nm 为

37、D 的点边关联矩阵; b=(b1 , b2 , , bn), b11, bn=-1,bi=0 , 1 i n-1; xi 为决策变量,当最短路线通过弧 ei 时取值为1,否则取值为0。CT=(c1 , c2 , , cm) 为各对应弧上的权;XT=(x1 , x2 , , xm),则从 v1 到 vn 的最短路数学模型为:10min或iTxbBXXC 第四节第四节 网络最大流问题网络最大流问题 许多系统包含了流量问题。例如,公路系统中有车辆流,控制系统中有信息流,供水系统中有水流,金融系统中有现金流等。 如下图是联结某产品产地 v1 和销售地 v6 的交通网,每一弧 (vi , vj) 代表从

38、 vi 到 vj 的运输线,产品经这条弧由 vi 输送到 vj ,弧旁的数字表示这条运输线的最大通过能力。产品经过交通网从 v1 输送到 v6 。现在要求制定一个运输方案,使从 v1 运到 v6 的产品数量最多。 如下图(2) 给出了一个运输方案,每条弧旁的数字表示在这个方案中,每条运输线上的运输量。这个方案使 8 个单位的产品 v1 运到 v6 ,在这个交通网上输送量是否还可以增多,或者说在这个运输网络中, 从 v1 到 v6 的最大输送量是多少?这就是我们这一节要研究的问题。 (1) (2) 4.1 基本概念与基本定理基本概念与基本定理 1. 网络与流网络与流 定义定义6:给定一个有向图:

39、给定一个有向图 D=(V , A),在在 V 中指定了中指定了一点称为一点称为发点发点(记为记为 vs ),而另一个点称为而另一个点称为收点收点(记为记为 vt ),其余的点叫着中间点。对于每一个弧其余的点叫着中间点。对于每一个弧(vi , vj) A ,对应有一个对应有一个 c(vi , vj) 0(或简写成或简写成 cij ),),称称v1v2v3v4v5v6v1v2v3v4v5v61084356531117 为弧的为弧的容量容量。通常我们就把这样的通常我们就把这样的 D 叫做一个叫做一个网络网络。记做:记做: D=(V , A , C) 所谓网络上的流,是指定义在弧集合所谓网络上的流,是

40、指定义在弧集合 A 上的一个函上的一个函数数 f=f(vi , vj),并称并称 f(vi , vj) 为弧为弧 (vi , vj) 上的上的流量流量(有时也简记作(有时也简记作 fij )。)。 2. 可行流与最大流可行流与最大流 在运输网络的实际问题中可以看出,对于流有两个明显的要求:一是每个弧上的流量不能超过该弧的最大通过能力(即弧的容量);二是中间点的流量为零。因为对于每个点,运出这点的产品总量与运进这点的产品总量之差,是这点的净输出量,简称为是这点的流量;由于中间点只起转运作用,所以中间点的流量必为零。易见发点的净流出量和收点 的净流入量必相等,也是这个方案的总输送量。因此,我们有:

41、 定义定义7:满足下述条件的流:满足下述条件的流 f 称为可行流:称为可行流: (1)容量限制条件:对每一个弧)容量限制条件:对每一个弧 (vi , vj) A , 0 fij cij (2)平衡条件:对于中间点,流出量等于流入量,平衡条件:对于中间点,流出量等于流入量,即对每个即对每个 i (i s , t ) 有:有: 对于发点对于发点 vs ,记:记:0,AvvjiAvvijijjiff fvffAvvjsAvvsjsjjs, 对于收点对于收点 vt ,记:记: 式中式中 v(f) 称为这个可行流的流量,即发点的净输出称为这个可行流的流量,即发点的净输出量或收点的净输入量。量或收点的净输

42、入量。 可行流总是存在的。比如令所有弧的流量 fij=0,就得到一个可行流(称为零流)。这时 v(f)=0。 最大流问题就是求一个流 fij 使其流量 v(f) 达到最大,并满足: fvffAvvjtAvvtjtjjt, 2,01,0tifvtsisifvffAvvcfjiijjiijij 最大流问题是一个特殊的线性规划问题。即求一组 fij ,在满足条件(1) , (2) 下使 v(f) 达到极大。下面我们将会看到,利用图的特点,解决这个问题的方法较之线性规划的一般方法要方便、直观得多。 3. 增广链增广链 若给定一个可行流 f=fij ,我们把网络中使 fij=cij 的弧称为饱和弧饱和弧

43、,使 fij 0 的弧称为非零流弧非零流弧。 若 是网络中的联结发点 vs 和收点 vt 的一条链,我们定义链的方向是从 vs 到 vt ,则链上的弧被分为两类:一类是弧的方向与链的方向一致,叫做前向弧前向弧。前向弧的全体记为 。另一类与链的方向相反,称为后向弧后向弧。后向弧的全体记为 。 定义定义8:设:设 f 是一个可行流,是一个可行流, 是从是从 vs 到到 vt 的一条链,的一条链,若若 满足下列条件,则将其称之为(关于可行流满足下列条件,则将其称之为(关于可行流 f 的)的)增广链增广链。 前向弧前向弧 中的每一个弧是非饱和弧中的每一个弧是非饱和弧 ,即:,即: 当弧当弧 (vi ,

44、 vj) 时,时,0 fij cij 后向弧后向弧 中的每一个弧是非零流弧中的每一个弧是非零流弧 ,即:,即: 当弧当弧 (vi , vj) 时,时,0 0,令: *min,minminijijijffcjiijjiijjiijijvvfvvfvvff,* 容易验证 f * 是一个可行流,v(f *)=v(f *)+ v(f *)。这与 f * 是最大流的假设相矛盾。 其次,现在假设 D 中不存在关于f * 的增广链,证明 f * 是最大流。我们利用下面的方法来定义 V1*: 令:vsV1*; 若:viV1*,且 fij* 0 ,则令 vjV1*; 因为不存在关于f * 的增广链,所以 vtV

45、1*。 记 V2*=VV1*,于是得到一个截集 (V1* , V2*)。显然必有:反向弧正向弧*2*1*2*1*,0,VVvvVVvvcfjijiijij 所以, v(f *) = c(V1* , V2*)。于是, f * 必是最大流。 由上述证明过程中可见,若 f * 是最大流,则网络中必存在一个截集 (V1* , V2*) ,使:v(f *) = c(V1* , V2*)。于是,有如下重要的结论: 最大流量最小截集定理:任一个网络最大流量最小截集定理:任一个网络 D 中,从中,从 vs 到到 vt 的最大流量等于分离的最大流量等于分离 vs , vt 的最小截集的截量的最小截集的截量。 定

46、理8 为我们提供了寻求网络中最大流的一个方法。若给定了一个可行流 f ,只要判断 D 中有无关于 f 的增广链。如果有增广链,则可以按定理8 前半部证明中的办法,改进 f ,得到一个流量增大的可行流。如果没有增广链,则得到最大流。而利用定理8 后半部证明中定义 V1* 的办法,可以根据 vt 是否属于 V1* 来判断 D 中有无关于 f 的增广链。 实际计算时,用给顶点标号的方法来定义 V1* 。在标号的过程中,有标号的顶点表示是 V1* 中的点,没有标号的点表示不是 V1* 中的点。一旦 vt 有了标号,就表明找到一条增广链;如果标号过程无法进行下去,而 vt 尚未标号,则说明不存在增广链,

47、于是得到最大流。而且同时也得到一个最小截集。 4.2 寻求最大流的标号法寻求最大流的标号法 (FordFulkerson方法方法) 从一个可行流出发(若网络中没有给定 f ,则可以假设其为零流),经过标号过程与调整过程。 1. 标号过程 在这个过程中,网络中的点或者是标号点(又分为已检查和未检查两种),或者是未标号点。每个标号点的标号包含两部分:第一个标号表明它的标号 是从哪一点得到的,以便找出增广链;第二个标号是为了确定增广链的调整量 用的。 标号过程开始,总先给 vs 标上 (0 , +),这时 vs 是标号而未检查的点,其余都是未标号点。一般地,取一个标号而未检查的点 vi ,对一切未标

48、号的点 vj : (1)若在弧 (vi , vj)上,fij0,则给 vj 标号(-vi , l(vi)这里 l(vj) = minl(vi) , fji 。这时点 vj 成为标号而未检查的点。 于是 vi 成为标号而已检查过的点。重复上述步骤,一旦 vt 被标上号,表明得到一条从 vs 到 vt 的增广链 ,转入调整过程。 若所有标号都是已检查过的,而标号过程进行不下去时,则算法结束,这时的可行流就是最大流。 2. 调整过程 首先按 vt 及其他的点的第一个标号,利用“反向追踪”的办法,找出增广链 。令调整量 是 l(vt),即 vt 的第二个标号。令: 去掉所有的标号,对新的可行流 f /

49、=f ij/ ,重新进入标号过程。jiijjiijjiijijvvfvvfvvff,/ 例:用标号法求如下图所示网络的最大流。 解:(1)标号过程 首先给 vs 标上 (0 , +), 检查 vs ,在弧(vs , v2)上,fs2=cs2=3,不满足标号 vsvtv1v2v3v4(3 , 3)(5 , 1)(2 , 2)(4 , 3)(1 , 1)(5 , 3)(2 , 1)(1 , 1)(3 , 0) 条件。弧(vs , v1)上,fs1=10,则给 v2 记下标号为(v1 , l(v2),其中: l(v2)minl(v1) , f21=min4 , 1=1 检查 v2 ,在弧 (v2 ,

50、 v4)上 , f24=30,则给 v3 记下标号为(v2 , l(v3),其中: l(v3)minl(v2) , f32=min1 , 1=1 在 v3 , v4 中任选一个检查。例如:在弧 (v3 , vt)上 , f3t=1 c3t=2,则 vt 的标号:(v3 , l(vt),其中: l(vt)minl(v3) , (c3t-f3t)=min1 , 2-1=1 因 vt 有了标号,故转入调整过程。 (2)调整过程 按点的第一个标号找到一条增广链,如下图红箭头线所示: vsv1v2v3v4vt(3 , 3)(5 , 1)(2 , 2)(4 , 3)(1 , 1)(3 , 0)(1 , 1

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁