《运筹学课件第8章 图与网络分析》由会员分享,可在线阅读,更多相关《运筹学课件第8章 图与网络分析(60页珍藏版)》请在金锄头文库上搜索。
1、第8章图与网络分析 图与网络模型GraphTheory引言 十八世纪的哥尼斯堡城中流过一条河 普雷 格尔河 河上有7座桥连接着河的两岸和河中的两个小岛 当时那里的人们热衷于这样一个游戏 一个游者怎样才能一次连续走过这7座桥 回到原出发点 而每座桥只允许走一次 没有人想出走法 又无法说明走法不存在 这就是著名的 哥尼斯堡7桥 难题 A B C D 图与网络模型GraphTheory引言 哥尼斯堡7桥 难题最终在1736年由数学家Euler的一篇论文给予了完满的解决 这是图论的第一篇论文 在后来的两百年间图论的发展是缓慢的 直到1936年匈牙利数学家O K nig写出了图论的第一本专著 有限图与无
2、限图的理论 在图论的发展过程中还有两位著名科学家值得一提 他们是克希霍夫和凯莱 克希霍夫在研究电网络时对图的独立回路理论作出了重要的贡献 而化学家凯莱在对碳氢化合物的同分异构体的数量进行计数时推动了图论中树的计数问题的研究 图论的历史上最具有传奇色彩的问题也许要数著名的 四色猜想 了 历史上许许多多数学猜想之一 它描述对一张地图着色的问题 曾经有一位数学家这样说 对于这个问题 一位数学家可以用不到五分钟的时间向马路上任何一位行人讲述清楚它 然后 两人都明白这一问题 但是 两人都无能为力 幸运的是在1970 s终于由美国的两位数学家借助大型计算机将其证明了 图与网络模型GraphTheory图与
3、网络的基本概念 图论与网络分析理论所研究的问题十分广泛 内容极其丰富 正如一位数学家所说 可以说 图论为任何一个包含了某种二元关系的系统提供了一种分析和描述的模型 下面我们来看一个案例 国庆大假期间旅游非常火爆 机票早已订购一空 成都一家旅行社由于信誉好 服务好 所策划的国庆首都游的行情看好 要求参加的游客众多 游客甚至不惜多花机票钱暂转取道它地也愿参加此游 旅行社只好紧急电传他在全国各地的办事处要求协助解决此问题 很快 各办事处将其已订购机票的情况传到了总社 根据此资料 总社要作出计划 最多能将多少游客从成都送往北京以及如何取道转机 下面是各办事处已订购机票的详细情况表 图与网络模型Grap
4、hTheory图与网络的基本概念 各办事处已订购机票情况表 成都重庆武汉上海西安郑州沈阳昆明广州北京 成都重庆武汉上海西安郑州沈阳昆明广州北京 105158121030 1061525 10 158 86 148 18 810 82610 图与网络模型GraphTheory图与网络的基本概念 将此问题通过图的模型描述 下图中 点 各城市 带箭头连线 从箭尾城市到箭头城市已订购有机票 带箭头连线旁的数字 机票数量 成 重 武 昆 上 广 西 郑 沈 京 8 郑州办事处已订有的到北京的机票数量 图与网络模型GraphTheory图与网络的基本概念 一 图及其分类和术语1 图论中所研究的图并非几何学
5、中的图 也不是绘画中的图 在这里我们所关心的仅仅是图中有多少个点 点与点之间有无线来连接 也就是说我们研究的是某个系统中的元素 点 以及这些元素之间的某种关系 连线 定义 图 一个图G是一个有序二元组 V E 记为G V E 其中 1 V是一个有限非空的集合 其元素称为G的点或顶点 而称V为G的点集V v1 v2 vn 2 E是V中元素的无序对 vi vj 所构成的一个集合 其元素称为G的边 一般表示为e vi vj 而称E是G的边集 边 无向边 没有方向的连线弧 有向边 带有方向的连线无向图 有向图 简单图 多重图 完全图 二部图 偶图 双图 图与网络模型GraphTheory图与网络的基本
6、概念 子图 真子图 生成子图 点生成子图 边生成子图 点的次 奇次点 偶次点 链 圈 路 回路 赋权图 2 连通图在众多各类图中有一类在实际应用中占有重要地位的图连通图 在图中 任意两点间至少存在着一条链 连通图 不连通图 图与网络模型GraphTheory图与网络的基本概念 3 图与矩阵在图与网络分析的应用中 将面临一个问题 如何分析 计算一个较大型的网络 这当然需借助快速的计算工具 计算机 那么 如何将一个图表示在计算机中 或者 如何在计算机中存储一个图呢 现在已有很多存储的方法 但最基本的方法就是采用矩阵来表示一个图 图的矩阵表示也根据所关心的问题不同而有 邻接矩阵 关联矩阵 权矩阵等
7、邻接矩阵 对于图G V E V n E m 有n n阶方矩阵A aij n n 其中aij k当且仅当vi与vj之间有条边时0其它 图与网络模型GraphTheory图与网络的基本概念 邻接矩阵 图与网络模型GraphTheory图与网络的基本概念 关联矩阵 对于图G V E V n E m 有m n阶矩阵M mij m n 其中mij 2当且仅当vi是边ej的两个端点1当且仅当vi是边ej的一个端点例 0其它 v1 v2 v3 v5 v4 v8 v6 v7 e1 e2 e3 e4 e6 e5 e7 e9 e12 e10 e11 e8 M mij 10100000000011001000000
8、0010001110000000000001001001111000000000000001100000000000111000100110000 v1v2v3v4v5v6v7v8 e1e2e3e4e5e6e7e8e9e10e11e12 图与网络模型GraphTheory最小树问题 二 树 Tree 和最小树树是图论中一类重要的图 实际中有很多系统的结构都是树 树 连通且不含圈的图 简记为T 下面的说法是等价的 T是一个树 T无圈 且m n 1 T连通 且m n 1 T无圈 但每加一条新的边即出现唯一一个圈 T连通 但每舍去一条边就不连通 T中任意两点 有唯一的一条链相连 T是边数最少的连通图
9、 图的生成树 若G图的一个点生成子图是一个树 则称此树是G图的一个生成树 树的权 若Tk是加权图G的一棵树 则树T的全部边的权之和称为树Tk的权 记为 Tk e e Tk最小树 T 是加权图G的一棵最小树 即 T min Tk k 图与网络模型GraphTheory最小树问题 破圈法 避圈法求生成树 图G 生成树T 生成树T 图与网络模型GraphTheory最小树问题 破圈法 避圈法求最小生成树 图G 生成树T 生成树T 1 5 4 2 4 5 3 1 3 4 4 2 1 5 1 2 1 2 3 1 2 1 1 2 1 2 3 1 2 1 1 2 图与网络模型GraphTheory最短路问题
10、 三 路 Path 和最短路最短路问题是网络分析中应用最广泛的问题之一 尽管前面介绍了用动态规划方法求解 但有时却较困难 此时图论的方法却十分有效 最短路问题的一般描述 G V E 是连通图 图中各边 vi vj 有权lij 表示vi vj间无边 vs vt为图中任意两指定点 求一条路 使其是从vs到vt的所有路中最短 路中各边的权之和最小 的一条路 即 L min lij vi vj 图与网络模型GraphTheory最短路问题 E W Dijkstra算法 标号算法 算法基本思路分析 逐步向外搜索 5 2 1 6 5 8 2 8 9 9 7 2 2 1 2 1 0 X P标号 Y T标号
11、起点到该点的最短距离 起点到该点的最短距离的上界 2 5 2 7 5 11 12 12 10 5 7 5 6 6 7 9 9 10 10 6 3 3 人 狼 羊 草渡河游戏 一个人带着一条狼 一只羊 一筐白菜过河蛤由于船太小 人一次只能带一样东西乘船过河 狼和羊 羊和白菜不能单独留在同岸 否则羊或白菜会被吃掉 人 M Man 狼 W Wolf 羊 G Goat 草 H Hay 点 vi表示河岸的状态 边 ek表示由状态vi经一次渡河到状态vj 权 边ek上的权定为1 我们可以得到下面的加权有向图 图与网络模型GraphTheory最短路问题 v1 u1 M W G H v2 u2 M W G
12、v3 u3 M W H v4 u4 M G H v5 u5 M G 此游戏转化为在下面的二部图中求从v1到u1的最短路问题 v1 v2 v3 v4 v5 u5 u4 u3 u2 u1 图与网络模型GraphTheory最短路问题 在E W Dijkstra算法中必须满足一个条件 在图G中所有边的权lij 0 若在图G中存在有负权边 当然 这种情形只针对有向图而言 时必须对E W Dijkstra算法加以修改 称为修改的E W Dijkstra算法 2 情况二 wij 0设从V1到Vj j 1 2 t 的最短路长为P1jV1到Vj无任何中间点P1j 1 wijV1到Vj中间最多经过一个点P1j
13、2 min P1j 1 wij V1到Vj中间最多经过两个点P1j 3 min P1j 2 wij V1到Vj中间最多经过t 2个点P1j t 1 min P1j t 2 wij 终止原则 1 当P1j k P1j k 1 可停止 最短路P1j P1j k 2 当P1j t 1 P1j t 2 时 再多迭代一次P1j t 若P1j t P1j t 1 则原问题无解 存在负回路 例 求下图所示有向图中从v1到各点的最短路 v1 v4 v2 v3 v5 v6 v7 v8 2 5 3 4 6 7 4 2 3 1 3 4 2 wijd t v1 vj v1v2v3v4v5v6v7v8 v1 v2 v3
14、 v4 v5 v6 v7 v8 0 2 5 3 0 2 4 0 6 4 0 0 3 0 7 2 0 3 2 0 t 1t 2t 3t 4t 5t 6 0 2 5 3 0 2 0 3 6 11 0 2 0 3 6 6 15 0 2 0 3 3 6 14 10 0 2 0 3 3 6 9 10 0 2 0 3 3 6 9 10 说明 表中空格处为 4 例设备更新问题 制订一设备更新问题 使得总费用最小 第1年第2年第3年第4年第5年购买费1314161924使用年数0 11 22 33 44 5维修费810131827 解 设以vi i 1 2 3 4 5 表示 第i年初购进一台新设备 这种状态
15、以v6表示 第5年末 这种状态 以弧 vi vj 表示 第i年初购置的一台设备一直使用到第j年初 这一方案 以wij表示这一方案所需购置费和维护费之和 v1 v2 v3 v5 v6 v4 21 44 32 22 89 62 31 63 45 24 47 34 27 37 32 0 Vs 0 V1 31 V1 44 V1 62 V1 78 V3 这样 可建立本例的网络模型 于是 该问题就可归结为从图中找出一条从v1到v6的最短路问题 用Dijkstra标号法 求得最短路为v1 v3 v6 即第一年初购置的设备使用到第三年初予以更新 然后一直使用到第五年末 这样五年的总费用最少 为78 图与网络模
16、型GraphTheory距离矩阵摹乘法 Dijkstra算法比较简单 但是 对于含有负权弧的网络可能失效 这时 应对算法加以修改 即所谓 修改的Dijkstra算法 下面 介绍一种算法 距离矩阵摹乘法 它适用于任何网络的最短路问题 例如 v1 v3 v4 v2 v6 v5 3 4 2 3 3 2 4 4 1 1 1 6 3 3 3 图与网络模型GraphTheory距离矩阵摹乘法 1 网络的距离矩阵设一网络N中有n个点 其中任意两点vi与vj之间都有一条边 vi vj 其权数为wij 若vi与vj不相邻 则虚设一条边 vi vj 并令其权数wij 距离矩阵W wij 前例中的距离矩阵为 W v1v2v3v4v5v6v1032 4v2 04 41v3 0 16 v43 2 01 v55 03v6 33 0 图与网络模型GraphTheory距离矩阵摹乘法 2 求各点至某点的最短路求vi i 1 2 n 至某点vr的最短路 令 dir k vi走k步达到vr的最短距离 i 1 2 n则有dir 1 wir i 1 2 n dir k min wij djr k 1 i 1 2 n 1 j