240 likes | 348 Views
第十一章 图与网络分析. 引论 哥尼斯堡七桥问题. A. D. C. B. A. 简捷表示事物之间的本质联系,归纳事物之间的一般规律. D. C. B. 引论 图的用处. A、B、C、D、E 某公司的 五支球队进行循环赛 组织机构设置图. 工厂或办事处. A. 总公司. 分公司. B. C. D. E. 11.1 图的基本概念. 图是由 点 和 线 构成的。 点的集合 V 表示, V= {v 1 , v 2 , v 3 ……v n }
E N D
第十一章 图与网络分析 • 引论 哥尼斯堡七桥问题 A D C B A 简捷表示事物之间的本质联系,归纳事物之间的一般规律 D C B
引论 图的用处 • A、B、C、D、E 某公司的 五支球队进行循环赛 组织机构设置图 工厂或办事处 A 总公司 分公司 B C D E
11.1 图的基本概念 • 图是由点和线构成的。 • 点的集合V表示,V={v1, v2 ,v3 ……vn} • 不带箭头的连线叫做边(edge),边的集合记为E= { ej} ,一条边可以用两点( vi,vj )表示,ej= ( vi,vj ). • 带箭头的连线叫做弧(arc),弧的集合记为A,A= { ak},一条弧也是用两点表示,ak= ( vi,vj ),弧有方向:vi为始点,vj为终点
图的基本概念(续) • 由点和边组成的图叫做无向图,记为G=(V,E) • 由点和弧组成的图叫做有向图,记为D=(V,A) • 例1. e1 v3 a8 v5 v1 e2 v2 v7 a1 a10 a4 e3 e4 a6 a11 a9 e5 v1 a3 v6 a2 a7 v2 a5 v3 v4 v4 e6 e7 无向图:点集、边集 有向图:点集、弧集
图的基本概念(续) • 以点u为端点的边的条数,叫做点u的次,记为d(u);次为1的点叫做悬挂点;次为0的点叫做孤立点;次为奇数则称奇点;次为偶数则称偶点。 • 点边交替序列称为链;闭合的链称为圈 • 点弧交替序列称为路;闭合的路称回路 • 任意两点之间都有边相连,称为连通图
e1 d(v1)=5 d(v2)=1 d(v3)=3 d(v4)=3 d(v5)=0 V1是悬挂点 V5是孤立点 v1 e2 e6 e3 v2 v4 e4 v5 v3 e5
图的基本概念(续) • 无向图G的每一条边上对应的数称为边( vi,vj )上的权,记为wij,G为赋权无向图; • 有向图D的每一条弧上对应的数称为弧( vi,vj )上的权,记为cij ,D为赋权有向图; • 在附权有向图D中,指定一点作为发点( vs ),另一点作为收点( vt ),其余称为中间点,并把D中的每一条弧的赋权数cij称为弧( vi,vj )的容量。这样的赋权有向图称为网络。
11.2 最短路问题 • 例6 某交通网络如下图,求v1到v8的最短路线 • 解:用双标号法 v2 1 v5 6 6 2 v8 3 3 v1 6 v3 4 10 4 1 2 4 v7 10 v4 v6
双标号法的步骤: • 双标号:即对图中的点vj赋予两个标号(lj,kj),第一个标号lj表示从起点vs到vj的最短路的长度,第二个标号kj表示在vs至vj的最短路上vj前面一个邻点的下标号。 • 具体步骤: • (1)给起点v1标号(0,s); • (2)确定两点一弧的集合: • I, J, {(Vi,Vj)/Vi∈I,Vj∈J}; • (3)对弧集合中每条弧计算距离sij=li+cij,取其中最小值sij, 并给相应的vj标号(sij, ki); • (4)重复上述步骤(2),(3),直至弧集合为空集。
解: V2(6,1) V2(5,3) V5(6,2) 1 6 6 V8(12,5) 2 6 3 V1 (0,s) 3 V3(3,1) 4 4 10 2 1 4 10 V7(9,5) V4(1,1) V6(10,5)
课堂习题:求最短路。 V2 V4 V6 5 9 4 4 7 4 V1 5 V8 4 1 5 6 V3 7 V5 6 V7
最短路问题的应用 • 交通问题 • 设备更新问题
11.3 最大流问题 • 引例:如下输水网络,南水北调工程,从vs到vt送水,弧旁数字为管道容量,问应当如何输水使得流量最大? v2 4 v4 3 5 3 vs 1 1 vt 5 2 3 v1 v3
最大流问题的相关概念 • 网络:给定了弧的容量Cij(vi,vj)的有向图D=(V,A,C)叫做一个网络。 • 可行流:各点流入量=流出量,且vs的流出量=vt的流入量,且fij≤cij,这样的流称之为可行流。 • 最大流问题:给定一个带收发点(vs,vt)及每条弧的弧容量cij的网络中,在不超过每条弧的容量的前提下(即fij≤cij),求出从发点到收点的最大流量。
最大流问题的网络图论解法 • 1、改进弧容量。对每一条弧(vi,vj)的容量用一对数 cij,0标在弧上,其中cij靠近vi点,0靠近vj点,表示从vi到vj容许通过的容量为cij,反之,从vj到vi容许通过的容量为0。 • 2、求解最大流。 • (1)寻路。从包含弧数最少的路开始寻找,该路上所有顺流容量cij>0,若不存在这样的路,则已求得最大流。 • (2)增流。找出各弧的最小顺流容量pf,通过该路增加流量pf ,即F+ pf。 • (3)改进。顺减逆加。 • 3、绘图。绘制最大流量图。
改进弧容量(如图) V2 0 V4 4 5 0 0 0 0 0 3 vs Vt 5 0 1 3 1 0 2 V1 0 3 V3
解水网最大流问题 第一次迭代:选择路为vs v2 v4 vt pf=min{3,4,5}=3 F=3 . V2 0 3 V4 4 1 5 2 3 0 0 0 0 0 3 0 3 vs 3 3 Vt 5 0 1 3 1 0 2 V1 0 3 V3
解水网最大流问题 第二次迭代:选择路为vs v1 v3 vt pf=min{5,3,2}=2 F=3+2=5 . V2 0 3 V4 4 1 5 2 3 0 0 0 0 0 3 3 0 vs 5 5 Vt 3 5 0 2 1 3 1 2 0 2 0 V1 2 0 3 1 V3
解水网最大流问题 第三次迭代:选择路为vs v1 v3 v4 vt , pf=min{3,1,3,2}=1 F=5+1=6 . V2 0 3 V4 4 1 2 1 3 0 0 0 1 0 1 4 0 3 vs 6 6 Vt 2 3 0 2 1 3 2 1 3 2 2 0 V1 3 2 1 0 V3
解水网最大流问题 第四次迭代:选择路为vs v1 v2 v4 vt , pf=min{2,1,1,1}=1 F=6+1=7 . V2 3 4 V4 1 0 1 0 3 0 0 0 1 0 1 4 5 0 3 vs 7 7 Vt 1 2 0 2 1 3 2 1 0 4 1 2 0 V1 3 2 1 0 V3
最大流量图为: v2 4 v4 5 3 1 vs 7 1 7 vt 4 2 3 v1 v3
习题:求下列最大流问题: v2 v1 1 7 3 4 4 v3 2 vt vs 3 5 10 8 3 v4 v5 4
v2 v1 1 6 3 4 4 v3 14 1 14 vt vs 3 5 7 8 3 v4 v5 4
11.4 最小费用最大流问题 • 求最小费用最大流的基本算法与上节求最大流问题完全一样,不同的是:在寻找路径的时候,是从总的单位费用最小的路开始,而不是包含边数最少的路。