1 / 25

图与网络分析 ( Graph Theory and Network Analysis)

图与网络分析 ( Graph Theory and Network Analysis). 赵芳玲. 图论是运筹学的一个重要分支,它是建立和处理 离散类 数学模型的一个重要工具 。用图论的方法往往能帮助人们解决一些用其它方法难于解决的问题。图论的发展可以追溯到 1736 年欧拉所发表的一篇关于解决著名的“哥尼斯堡七桥问题”的论文。由于 这种数学模型和方法直观形象,富有启发性和趣味性, 深受人们的青睐。到目前为止,已被广泛地应用于系统工程、通讯工程、计算机科学及经济领域。传统的物理、化学、生命科学也越来越广泛地使用了图论模型方法。. 图与网络分析

linus
Download Presentation

图与网络分析 ( Graph Theory and Network Analysis)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 图与网络分析 (Graph Theory and Network Analysis) 赵芳玲

  2. 图论是运筹学的一个重要分支,它是建立和处理离散类数学模型的一个重要工具。用图论的方法往往能帮助人们解决一些用其它方法难于解决的问题。图论的发展可以追溯到1736年欧拉所发表的一篇关于解决著名的“哥尼斯堡七桥问题”的论文。由于这种数学模型和方法直观形象,富有启发性和趣味性,深受人们的青睐。到目前为止,已被广泛地应用于系统工程、通讯工程、计算机科学及经济领域。传统的物理、化学、生命科学也越来越广泛地使用了图论模型方法。图论是运筹学的一个重要分支,它是建立和处理离散类数学模型的一个重要工具。用图论的方法往往能帮助人们解决一些用其它方法难于解决的问题。图论的发展可以追溯到1736年欧拉所发表的一篇关于解决著名的“哥尼斯堡七桥问题”的论文。由于这种数学模型和方法直观形象,富有启发性和趣味性,深受人们的青睐。到目前为止,已被广泛地应用于系统工程、通讯工程、计算机科学及经济领域。传统的物理、化学、生命科学也越来越广泛地使用了图论模型方法。

  3. 图与网络分析 (Graph Theory and Network Analysis) 图的基本知识 树及最小生成树 最短路问题 最大流问题 最小费用最大流问题

  4. 四、 最大流问题 (一)、 基本概念 1、网络:设一个赋权有向图D=(V, A),在V中指定一个发点vs和一个收点vt,其它的点叫做中间点。对于D中的每一个弧(vi, vj)∈A ,都有一个非负数cij,叫做弧的容量。我们把这样的图D叫做一个容量网络,简称网络,记做 D=(V,A,C,Vs,Vt)。 2、流量、可行流、流出量、流入量: (1)流量:是指定义在网络D上的每一条弧上的一个函数 其中f(vi,vj) =fij叫做弧(vi,vj)上的流量。

  5. (2)可行流:称满足下列条件的流为可行流:(2)可行流:称满足下列条件的流为可行流: 1)容量约束:对于每一个弧(vi ,vj)∈A有 0 ≤fij≤cij。 2)守恒条件:对于所用的中间点 有 顶点vi 的流入量 顶点vi的流出量 则称f 为D上的可行流。其流量v(f )为 (发点vs ) (收点vt )

  6. 5 (3) 9 (5) 6(3) 13 (5) 5 (2) 4 (1) 4 (2) 5 (2) 4 (1) 9 (3) 5 (0) 10 (1) (3)饱和弧:可行流中 fij=cij的弧叫做饱和弧。 (4)非饱和弧:可行流中fij<cij的弧叫做非饱和弧。 (5)零流弧: fij=0 的弧叫做零流弧。 (6)非零流弧:fij>0 的弧为非零流弧。 例6下图给出一个可行流 (容量约束、守恒条件)

  7. 5 (3) 9 (5) 6(3) 13 (5) 5 (2) 4 (1) 4 (2) 5 (2) 4 (1) 9 (3) 5 (0) 10 (1) 图中 为零流弧,其余为非饱和弧、非零流弧。 例7下图给出一个可行流 流量v(f ) =8

  8. 最 大 流 • 网络上的流量最大的可行流称作的最大流 • 所谓最大流问题就是求给定网络的最大流

  9. v1 v3 9 5 8 2 6 t 5 s 10 7 v4 v2 9 (二)最大流的算法 1、由图编写程序 2、由lingo8.0软件求最大流 例8 现需要将城市s 的石油通过管道运送到城市t,中间有4个中转站v1,v2,v3 和v4,城市与中转站的连接以及管道的容量如下图所示,求从城市s 到城市t 的最大流

  10. v1 v3 9 5 8 2 6 t 5 s 10 7 v4 v2 9 附程序 MODEL: sets: nodes/s,1,2,3,4,t/; arcs(nodes,nodes)/ s,1 s,2 1,2 1,3 2,4 3,2 3,t 4,3 4,t/:c,f; endsets data: c= 8 7 5 9 9 2 5 6 10; enddata max = flow; @for(nodes(i)|i #ne# 1 #and# i #ne# @size(nodes): @sum(arcs(i,j):f(i,j))-@sum(arcs(j,i):f(j,i))=0); @sum(arcs(i,j)|i #eq# 1:f(i,j)) = flow; @for(arcs:@bnd(0,f,c)); END 程序结构 1、集合定义部分(sets到endsets) 2、数据输入部分(data到enddata) 3、其他部分(优化目标和约束)

  11. Global optimal solution found at iteration: 6 Objective value: 14.00000 Variable Value Reduced Cost FLOW 14.00000 0.000000 C( S, 1) 8.000000 0.000000 C( S, 2) 7.000000 0.000000 C( 1, 2) 5.000000 0.000000 C( 1, 3) 9.000000 0.000000 C( 2, 4) 9.000000 0.000000 C( 3, 2) 2.000000 0.000000 C( 3, T) 5.000000 0.000000 C( 4, 3) 6.000000 0.000000 C( 4, T) 10.00000 0.000000 F( S, 1) 7.000000 0.000000 F( S, 2) 7.000000 0.000000 F( 1, 2) 2.000000 0.000000 F( 1, 3) 5.000000 0.000000 F( 2, 4) 9.000000 -1.000000 F( 3, 2) 0.000000 0.000000 F( 3, T) 5.000000 -1.000000 F( 4, 3) 0.000000 1.000000 F( 4, T) 9.000000 0.000000

  12. v1 v3 (9,5) (5,5) ( 8,7) (2,0) (6,0) t (5,2) s (10,9) (7,7) v4 v2 (9,9) Global optimal solution found at iteration: 6 Objective value: 14.00000 Variable Value Reduced Cost FLOW 14.00000 0.000000 F( S, 1) 7.000000 0.000000 F( S, 2) 7.000000 0.000000 F( 1, 2) 2.000000 0.000000 F( 1, 3) 5.000000 0.000000 F( 2, 4) 9.000000 -1.000000 F( 3, 2) 0.000000 0.000000 F( 3, T) 5.000000 -1.000000 F( 4, 3) 0.000000 1.000000 F( 4, T) 9.000000 0.000000

  13. 例9求右图中网络D的最大流。 sets: nodes/s,1,2,3,t/; arcs(nodes,nodes)/ s,1 s,2 s,3 1,2 1,t 2,3 2,t 3,t/:c,f; endsets data: c= 5 7 8 5 7 4 6 7; enddata max = flow; @for(nodes(i)|i #ne# 1 #and# i #ne# @size(nodes): @sum(arcs(i,j):f(i,j))-@sum(arcs(j,i):f(j,i))=0); @sum(arcs(i,j)|i #eq# 1:f(i,j)) = flow; @for(arcs:@bnd(0,f,c)); END

  14. Global optimal solution found at iteration: 5 Objective value: 18.00000 Variable Value Reduced Cost FLOW 18.00000 0.000000 C( S, 1) 5.000000 0.000000 C( S, 2) 7.000000 0.000000 C( S, 3) 8.000000 0.000000 C( 1, 2) 5.000000 0.000000 C( 1, T) 7.000000 0.000000 C( 2, 3) 4.000000 0.000000 C( 2, T) 6.000000 0.000000 C( 3, T) 7.000000 0.000000 F( S, 1) 5.000000 -1.000000 F( S, 2) 6.000000 0.000000 F( S, 3) 7.000000 0.000000 F( 1, 2) 0.000000 1.000000 F( 1, T) 5.000000 0.000000 F( 2, 3) 0.000000 0.000000 F( 2, T) 6.000000 -1.000000 F( 3, T) 7.000000 -1.000000

  15. F( S, 1) 5.000000 -1.00000 F( S, 2) 6.000000 0.000000 F( S, 3) 7.000000 0.00000 F( 1, 2) 0.000000 1.000000 F( 1, T) 5.000000 0.000000 F( 2, 3) 0.000000 0.000000 F( 2, T) 6.000000 -1.000000 F( 3, T) 7.000000 -1.000000 FLOW 18.00000

  16. 例10 (多发点多收点网络的最大流问题)某种物资有两个产地s1和s2,三个销地,t1,t2和t3。运输系统如图7-18所示,其中v1和v2是两个中转站。所标数字是线路的最大运输能力。求从产地到销地的最大运输量 。

  17. 这是一个多发点多收点的网络。为了能够用前面介绍的算法求它的最大流,需要把它化成只有一个发点和一个收点的网络.这并不困难.在网络中添一个发点vs和一个收点vt以及vs到s1,s2的弧,t1,t2,t3到vt弧.

  18. sets: nodes/vs,s1,s2,v1,v2,t1,t2,t3,vt/; arcs(nodes,nodes)/ vs,s1 vs,s2 s1,t1 s1,v1 s1,v2 s2,v2 s2,t3 v1,t1 v1,t2 v2,v1 v2,t2 v2,t3 t1,vt t2,vt t3,vt/:c,f; endsets data: c= 27 27 10 5 12 15 12 8 6 3 6 10 18 12 22 ; enddata max = flow; @for(nodes(i)|i #ne# 1 #and# i #ne# @size(nodes): @sum(arcs(i,j):f(i,j))-@sum(arcs(j,i):f(j,i))=0); @sum(arcs(i,j)|i #eq# 1:f(i,j)) = flow; @for(arcs:@bnd(0,f,c)); END

  19. Global optimal solution found at iteration: 10 Objective value: 46.00000 Variable Value Reduced Cost FLOW 46.00000 0.000000 F( VS, S1) 19.00000 0.000000 F( VS, S2) 27.00000 0.000000 F( S1, T1) 10.00000 -1.000000 F( S1, V1) 5.000000 -1.000000 F( S1, V2) 4.000000 0.000000 F( S2, V2) 15.00000 0.000000 F( S2, T3) 12.00000 0.000000 F( V1, T1) 8.000000 0.000000 F( V1, T2) 0.000000 0.000000 F( V2, V1) 3.000000 -1.000000 F( V2, T2) 6.000000 -1.000000 F( V2, T3) 10.00000 0.000000 F( T1, VT) 18.00000 0.000000 F( T2, VT) 6.000000 0.000000 F( T3, VT) 22.00000 -1.000000

  20. 这个运输系统的最大运量为46

  21. 练习: 求下图网络的最大流,最大流的流量和最小截集。图中弧旁的数字是弧的容量。

  22. 5 (3) 9 (5) 6(3) 13 (5) 5 (2) 4 (1) 4 (2) 5 (2) 4 (1) 9 (3) 5 (0) 10 (1) sets: nodes/v1,v2,v3,v4,v5,v6,v7/; arcs(nodes,nodes)/ v1,v2 v1,v3 v2,v5 v2,v4 v3,v2 v3,v4 v3,v6 v4,v5 v4,v7 v4,v6 v5,v7 v6,v7/:c,f; endsets data: c= 13 9 5 6 4 5 5 5 4 4 9 10 ; enddata max = flow; @for(nodes(i)|i #ne# 1 #and# i #ne# @size(nodes): @sum(arcs(i,j):f(i,j))-@sum(arcs(j,i):f(j,i))=0); @sum(arcs(i,j)|i #eq# 1:f(i,j)) = flow; @for(arcs:@bnd(0,f,c)); END 图c

  23. 5 (5) 9 (9) 6(6) 13 (11) 5 (4) 4 (0) 4 (2) 5 (4) 4 (4) 9 (9) 5 (5) 10 (9) Variable Value Reduced Cost FLOW 20.00000 0.000000 F( V1, V2) 11.00000 0.000000 F( V1, V3) 9.000000 -1.000000 F( V2, V5) 5.000000 -1.000000 F( V2, V4) 6.000000 -1.000000 F( V3, V2) 0.000000 1.000000 F( V3, V4) 4.000000 0.000000 F( V3, V6) 5.000000 0.000000 F( V4, V5) 4.000000 0.000000 F( V4, V7) 2.000000 0.000000 F( V4, V6) 4.000000 0.000000 F( V5, V7) 9.000000 0.000000 F( V6, V7) 9.000000 0.000000

  24. Thanks

More Related