1、- 4-1 -第 4 章 图与网络图与网络是运筹学的一个重要分支。其中,图论是从实践中抽象出来的最早的数学问题之一,如 1736 年欧拉提出的“哥尼斯堡七桥问题” 、 “哈密尔顿环问题”以及“地图四色问题”等。随后又发展出网络理论,并应用于电路分析、运输系统、信息论、工程设计和管理等方面。本章着重介绍有关图与网络的基本概念,以及网络最优化的两个基本问题最短路问题和最大流问题。一、 图与网络的基本概念1. 概念的引入图论的理论和方法可用于解决企业管理、交通运输、日常生活等许多不同领域的问题,例如,在运输规划中,应怎样合理地组织运输路线和运量,使总的运费最省;又如,在组织生产时,应如何安排各生产工
2、序间的衔接,才能使生产任务完成得既快又好;再如,邮递员送信时,应选择何种路线才能使所走的距离最短等。这些问题都可以用图论的方法进行求解。在实际生活中,人们为了反映某些对象间的关系,常用点和线画出各种各样的示意图。例 1 我国北京、上海等 10 个城市间的铁路交通示意图如图所示,它反映了这 10 个城市的铁路分布情况。图中,用点代表城市,点与点之间的连线代表两个城市之间的铁路线。诸如此类的示意图还有电话线分布图、煤气管道图、航空线图等。2. 基本概念(1)图图:图是由一些点以及点之间的连线所组成的。其中,这些点又称为顶点。边(弧):两顶点之间不带箭头的连线称为边;带箭头的连线称为弧。边(或弧)上
3、相应的数值称为边(或弧)的权。无向图:由点和边构成的图称为无向图(简称图) ,记作 G = (V,E) ,其中 V、E 分别是 G 的顶点集合和边的集合。连接两顶点 vi, vjV 的边 e 记为 e = (vi,v j)或 e = (vj,v i)。有向图:由点和弧构成的图称为有向图,记作 D = (V,A),其中 V、A 分别是 D 的顶点集合和弧的集合。从起始点 viV 指向终点 vjV 的弧 a 记为 a = (vi,v j)(v j,v i)。多重边和环:两个顶点间具有两条以上的边称为多重边;若边的两端为同一顶点则称其为环,如图 1(参见 P82 图 4-1)中的“边 7”。多重图和
4、简单图:含多重边的图称为多重图;无环且无多重边的图称为简单图。本章讨论的图一般都是简单图。- 4-2 -图 1 环 图 2 支撑子图支撑子图:如果图 G = (V,E),G = (V ,E )且 V V,E E,则称 G 为 G 的子图,如图 2(b) 所示(参见 P82 图 4-2(b)) ;若在同一图中,V = V,E E,则称 G 为 G 的支撑子图,如图 2(c) 所示(图 4-2(c)) 。(2)链链:在图 G = (V,E)中,由一些顶点和边所组成的交错序列v 1, e1, v2, e2, , vk1, ek , vk就称为一条联结顶点 v1、v k 的链。开链和闭合链:起点和终点
5、不是同一顶点的链,则称其为开链,否则就称其为闭合链。单纯链和基本链:一条没有重复边的链称为单纯链,如图 3(参见 P82 图 4-3)中的边序列5, 6, 2, 7, 8;一个没有重复顶点的链称为基本链,如图 3 中的边序列1, 2, 3。路和回路:一个开的基本链称为路,如图中的边序列1, 6, 7, 3;一个闭合的基本链称为回路,如图中的边序列1, 6, 5。连通图:如果在一个图中任意两个不同的顶点之间至少有一条路,则该图就称为连通图。图 3 链 图 4 树(3)树树:如果连通图 G 的子图 G l 也是连通的,并包含了 G 的所有顶点,且没有回路,则称 G l 为 G 的一个生成树(简称树
6、) ,记为 T,如图 4(参见 P83 图 4-4)中的(b)、(c)、(d) 即为图(a)的树:T 1 = l, 3, 5,T 2 = 2, 3, 5,T 3 = 2, 4, 5。组成树的边就称为树枝。树的性质如下:树的任意两个顶点之间只有一条链; 1在树中不相邻的两个顶点间添上条边,则恰好得到一个回路; 2在树中去掉任何一条边,则成为不连通图; 3含有 n 个顶点的树,则有 n1 条边。 4例 2 已知有五个城市,试问如何在它们之间架设电话线,使任何两个城市都可以互相通话(允许通过其它城市) ,且电话线的根数最少?解 用五个点 v1, v2, v3, v4, v5 代表五个城市,如果某两个
7、城市之间架设电话线,则在相应的两点之间连一条边,则该电话线网就可以用一个图来表示。为了使任何两个城市都可以互相通话,则此图必须是连通图;另外,若此图中有回路,从回路上任意去掉一条边,使余下的图仍是连通的,且可以省去一根电话线。因此,满足要求的电话线网所对应的图- 4-3 -必定是一个树,如图 5 所示。 (注意:由于连通图对应的树有多个,故这里只给出了其中一个树)图 5 电话线网 图 6 割集(4)割集割集:将连通图分割为两个子图所需割断的最少边集就称为割集,如图 6(参见 P83图 4-5)中的边集8, 9、1, 3, 6、4, 5, 6等。注意:割集的定义表明,当去掉构成割集的一 组边时,
8、 则原 连通图被分割成相互分离的两部分;而只要少去掉一条边,则被分开的两部分仍是 连通的。例如,边集7, 8, 9就不是割集,因为移去这个边集可以使图分离为两部分,但若再 连上边 7,已分离的 图仍不能连通,不符合割集的定义。最小割集:对于一个图有若干个割集,其中边数最少的割集,则称其为最小割集(简称最小割) ,如图 6 中的边集8, 9。二、 最短路问题1. 问题的提出在企业经营活动和日常生活中,常会遇到所谓的最短路问题,例如,从家中出发上班时,应走怎样的路线才能在最短时间内到达单位;假日外出旅游时,怎样选择旅游路线才能使花费最省;在企业经营中,需要运送一批物资到达某地,应选择怎样的运输路线
9、才能使运费最省。类似于各种管道铺设、线路安排、设备更新、选址等都属于最短路问题。例 3(管道铺设问题) 从油田铺设管道,把原油运输到原油加工厂。要求管道必须沿图 7 所给定的路线铺设,图中 v1 点为油田,v 9 点为原油加工厂,弧权为相应路段的管道长度,试问如何铺设管道才能使管道总长最短?图 7 油田管道路线图 图 8 油田管道最短路线图解 显然,可能的油田管道铺设方案有多种,而不同方案的管道总长不同,则现在的问题是要寻求一条从 v1 到 v9 的路线,使油田的管道总长最短。若 v1 vi v9 是从 v1到 v9 的最短路,则 v1 vi 是从 v1 到 vi 的最短路,根据这一原理来求出
10、该最短路问题。(1)与 v1 直接相连的点为 v2、v 3,但 l13 = 2 0,则将 j 点标记为(i , ( j)) ,表示 i 点向 j 点可以少提供的流量为 ( j), 1实质上也等于 j 点向 i 点多提供的流量为 ( j),其中 ( j)表示 i 点可以少提供的数量和流量中最小的一个,且 ( j) = min( i), C (j,i ),如图 11(b)所示;图 11 标记法当 ( i) X(S, 2),则点 2 应标记 (S+, (2),(2) = min, C(S, 2) X(S, 2) = min, 6 = 6,所以点 2 标记(S +, 6),它表明由 S 可增加 6 单
11、位流量到点2。此时,由于 C(S, 3) = 9,X(S, 3) = 9 为饱和支路;无指向点 S 的支路,故点 S 已检查完,成为已标记、已检查的点。点 2 成为已标记未检查的点,对其进行检查。先看由点 2 出发的两条支路(2, 4) 、(2, 5),C(2, 5) = X(2, 5),C(2, 4) = X(2, 4)均为饱和支路;再看流向点 2 的支路(3, 2),因 X(3, 2) 0,(3) = min(2), C(3, 2) = min6, 4 = 4,所以点 3 标记(2 , 4),表明点 2 可以向点 3提供 4 个单位,或点 3 可以少向点 2 提供 4 个单位。故点 2 成
12、为已标记、己检查的点,点3 成为已标记未检查的点。再继续按第二步检查点 3,在支路(3, 4)中,C(3, 4) = 5,X(3, 4) = 0,C(3, 4) X(3, 4);支路(3, 6) 中,C(3,6) = X(3, 6)为饱和的,故点 3 检查完毕,点 4 又成为己标记未检查的点,其标记为(3 +, 4)。对点 4 进行检查:C(4, 5) = 5,X(4, 5) = 2,C(4, 5) X(4, 5),(5) = min4, 5 2 = 3,则点 5 标记为(4 +, 3);C(4, 6) = 11,X(4, 6) = 0,C(4, 6) X(4, 6),(6) = min4,
13、11 = 4,则点 6 标记为(4 +, 4);由于 C(4, T) = 4,X(4, T) = 4,属饱和支路,故点 4 检查完毕。对点 5 进行检查:C(5, T) = 9,X(5, T) = 7,C(5, T) X(5, T),(T) = min3, 9 7 = 2,则点 T 标记(5 +, 2)。但点 6 尚未检查,且它也与点 T 有关,因此需在检查完点 6 之后再确定了点的标记。对点 6 进行检查:C(6, T) = l0,X(6, T) = 5,C(6, T) X(6, T)。(T) = min4, 10 5 = 4,则点 T 应标记(6 +, 4)。此时点 T 出现了两个标记,这
14、两个标记说明,若从点 5 扩充,可使点 T 增加的流量数为 2,而若从点 6 扩充,可使点 T 增加 4,我们当然希望点 T 增加的越多越好,因此,点T 的标记应取(6 +, 4)。第三步,寻找扩充路径并确定扩充量T6432S 为扩充线路并按实际的箭头方向标出,同时在带箭头的连线上标出扩充值如图 13 所示。- 4-12 -图 13 扩充值 图 14 最大流由图可见,虽然点 S 向点 2 可提供的增量为 6,但由于以后的线路只允许通过 4 个单位砾石,因此只能在所有可能的扩充量中选一个最小的量进行扩充,即 *(j) = min( j) = min6, 4, 4, 4, 4, 4 = 4。把扩充后的数字填在图上,再按上述步骤重新开始扩充,直到进行不下去为止,即得到最大流,如图 14 所示。该公路网络的最大流为源点 S 发出 11+9 = 20,汇点 T 收到 9+4+7 = 20。该采石场每天只能运出 20 单位砾石。若要提高公路运输能力,因最后计算是在点 2 停止的,故由点 2出发的路是“瓶颈”支路。