图论及其算法 张莉 Tongji University

Slides:



Advertisements
Similar presentations
1 数学建模理论与实践 —— 基于图论的数学建模. 2 基于图论的数学建模 一、欧拉环游问题与中国邮递员问题 二、最小生成树模型 三、最短路模型.
Advertisements

练一练: 在数轴上画出表示下列各数的点, 并指出这些点相互间的关系: -6 , 6 , -3 , 3 , -1.5, 1.5.
Chapter6 图与网络分析 ( Graph Theory and Network Analysis )
平面向量.
运输问题与分派问题 是图论(二分图)问题,有图论方面的算法。 也可以用数学规划解决,比如05年B题:
3.4 空间直线的方程.
第6讲 图论模型 图论模型中包含的内容很多,我们重点介绍两种建模中用的最广泛的图论算法。
限时综合强化训练 限时综合强化训练.
岳阳市教学竞赛课件 勾股定理 授课者 赵真金.
专题二 识图题增分技巧.
B F C D G E B E A 下图是沿20°经线所作的地形剖面示意图
第三节 格林公式及其应用(2) 一、曲线积分与路径无关的定义 二、曲线积分与路径无关的条件 三、二元函数的全微分的求积 四、小结.
第二讲 图论模型 1. 问题引入与分析 2. 图论的基本概念 3. 最短路问题及算法 4. 最小生成树及算法 5. 旅行售货员问题
勾股定理 说课人:钱丹.
七 年 级 数 学 第二学期 (苏 科 版) 复习 三角形.
八年级下数学课题学习 格点多边形的面积计算 数格点 算面积.
探索三角形相似的条件(2).
初中数学八年级下册 (苏科版) 10.4 探索三角形 相似的条件(2).
第17讲 Euler图与Hamilton图 主要内容: 1. Euler图. 2. Hamilton图.
第七部分 图论方法 第十二章 图论方法.
强连通分量 无向图 1、任意两顶点连通称该图为连通图 2、否则将其中的极大连通子图称为连通分量 A D C B E 有向图
SOA – Experiment 3: Web Services Composition Challenge
^3^ ΔTSP 张子谦.
人教版数学四年级(下) 乘法分配律 单击页面即可演示.
1.1特殊的平行四边形 1.1菱形.
使用矩阵表示 最小生成树算法.
平行四边形的性质 灵寿县第二初级中学 栗 彦.
无向树和根树.
§1 图与网络的基本概念 §2 树图与最小生成树 §3 最短路问题 §4 最大流问题 §5 最小费用最大流问题
实数与向量的积.
线段的有关计算.
2.3等腰三角形的性质定理 1.
2.6 直角三角形(二).
相似三角形 石家庄市第十中学 刘静会 电话:
⑴当∠MBN绕点B旋转到AE=CF时(如图1),比较AE+CF与EF的大小关系,并证明你的结论。
12.2全等三角形的判定(2) 大连市第三十九中学 赵海英.
2.6 直角三角形(1).
岱山实验学校欢迎你 岱山实验学校 虞晓君.
哥尼斯堡(Konigsberg) 七桥问题
图论初步 柏钧文.
复习: 若A(x1,y1,z1) , B(x2,y2,z2), 则 AB = OB - OA=(x2-x1 , y2-y1 , z2-z1)
知识点回顾 图的深度优先和广度优先遍历思想 图的深度优先遍历算法(用邻接表作为存储结构) 图的广度优先遍历算法(用邻接矩阵作为存储结构)
直线与平行垂直的判定.
3.1.2 空间向量的数量积运算 1.了解空间向量夹角的概念及表示方法. 2.掌握空间向量数量积的计算方法及应用.
1.2 子集、补集、全集习题课.
辅助线巧添加 八年级数学专项特训: ——倍长中线法.
13.3 等腰三角形 (第3课时).
1.设A和B是集合,证明:A=B当且仅当A∩B=A∪B
树和图 tree and graph 蔡亚星.
O x y i j O x y i j a A(x, y) y x 5.4 平面向量的坐标运算 5.4 平面向量的坐标运算 5.4 平面向量的坐标运算 5.4 平面向量的坐标运算 5.4 平面向量的坐标运算 5.4 平面向量的坐标运算 5.4 平面向量的坐标运算.
第七、八次实验要求.
9.1.2不等式的性质 周村实验中学 许伟伟.
数学建模理论与实践 —— 基于图论的数学建模.
3.4圆周角(一).
平行四边形的性质 鄢陵县彭店一中 赵二歌.
轴对称在几何证明及计算中的应用(1) ———角平分线中的轴对称.
高中数学必修 平面向量的基本定理.
§2-2 点的投影 一、点在一个投影面上的投影 二、点在三投影面体系中的投影 三、空间二点的相对位置 四、重影点 五、例题 例1 例2 例3
9.5空间向量及其运算 2.共线向量与共面向量 淮北矿业集团公司中学 纪迎春.
4.6 图形的位似     观察思考:这两幅图片有什么特征? 都是有好几张相似图形组成,每个对应顶点都经过一点.
美丽的旋转.
第四节 向量的乘积 一、两向量的数量积 二、两向量的向量积.
欧拉图与汉密尔顿图.
用向量法推断 线面位置关系.
3.2 平面向量基本定理.
3.4 角的比较.
位似.
最小生成树 最优二叉树.
第三章 图形的平移与旋转.
3.3.2 两点间的距离 山东省临沂第一中学.
Presentation transcript:

图论及其算法 张莉 Tongji University

§1 最小支撑树问题 1. 树:无回路的无向连通图. 一. 基本概念 2. 叶:树中度数为 1 的顶点. 3. 森林:连通分支大于 1 ,且每个连通分支均为 树的非连通图.

1. 例 1 :在偏远地区,可以通过公路连接分散的村落, 但没有任何电话服务。我们希望铺设电话线路, 使得每一对村落都可以通过电话线连接 ( 不必是 直接的 ) 。沿着现存的公路铺设电话线最便宜, 问沿着哪些公路铺设电话线,可以确保每一对 村落被连接,且电话线的总长度达到最小 ( 电话 线总长度可能与安装总成本成正比 ) ? 二. 最小生成树 解:寻找最小生成树.

例 2 :假设在一个没有良好高速公路的偏远地区涌现 了几个城市,理想的是建筑足够多的高速公路, 使得城市之间或者直接通过高速公路往来,或 者可以通过去其他城市来实现彼此的互相往来. 现在我们希望成本最小化. 注 : (1) 成本最小化即:可以实现城市间的互通,同时, 每条高速路都不浪费 ( 即去掉后就不能互通了 ). (2) 不允许高速路在所研究的城市以外的某点 处连接.

此问题可抽象为设△ ABC 为等边三角形,,连接三 顶点的路线(称为网络)。这种网络有许多个, 其中最短路线者显然是二边之和 ( 如 AB ∪ AC). A B C 最短网络问题 : 如何用最短的线路将三部电话连起来?

 但若增加一个周转站(新点 P ),连接 4 点的新网 络的最短路线为 PA + PB + PC 。最短新路径之长 N 比原来只连三点的最短路径 O 要短。  这样得到的网络不仅比原来节省材料,而且稳定性 也更好。 A BC P

斯坦纳( Steiner )最小树是可以在给定的点之外再增加 若干个点 ( 称为斯坦纳点 ) ,然后将所有这些点连起来。 如果不允许增加任何额外的点作为网络的顶点,这种最 短网络称为最小生成树。 在前面的例子中 Steiner 最小树的长为. 最小生成树的长为 年贝尔实验室波雷克 (Pollak) 和研究员吉尔伯特 (Gilbert) 提出如下猜想:平面上任意 n 点集,斯坦纳最 小树长与最小生成树之长的比值的最小值是.

1967 年前,贝尔公司按照连结各分部的最小生成树 的长度来收费。 1967 年一家航空公司戳了贝尔公司 一个大洞。当时这家企业申请要求贝尔公司增加一 些服务点,而这些服务点恰恰位于构造该公司各分 部的斯坦纳最小树需增加的斯坦纳顶点上。这使得 贝尔公司不仅要拉新线,增加服务网点,而且还要 减少收费。这一意外事件迫使贝尔公司自此以后便 采用了斯坦纳最小树原则 。 Steiner 猜想起源于在美国贝尔电话公司发生的一个 富有戏剧性的事件。

1. 问题描述:如村落间铺设电话线的问题. 三. Kruskal 算法 2. 算法思想 ( 贪婪算法 ) :总是选择权最小的边.

3. 算法描述: 步骤 1 :按照权的递增顺序排列图 G 的边,置集合 T 为空集. 步骤 2 :检查排列序表中第一条未检查的边,此边被放入 T 中当且仅当它不与 T 中的边形成回路。若这条边被加 入 T 中,进入步骤 3 ,否则重复步骤 2. 步骤 3 :若 T 有 n-1 条边,则停止, T 即为所找的最小支撑 树,否则,进入步骤 2.

5. 实例: b 53 d 8 54 e a 63 c 解: ab—cd—de--bd 排序: ab, cd,de,ec,bd,be,ac,ae

四. Prim 算法 1. 算法思想 ( 贪婪算法 ) : 从顶点出发,对任意点,总是选择与其关联的 权最小的边放入 T 中.

2. 算法描述: 步骤 1 :置集合 T 为空集, 任选一点 v 放入树 T 中. 步骤 2 :将连接 T 中的点与 V-V(T) 中的点的所有边中权最小 的边加入到 T 中,若权最小的边有多条,任选其一, 若不可能把任一条边加入到 T 中,则停止,输出 G 非 连通. 步骤 3 :若 T 有 n-1 条边,则停止, T 即为所找的最小支撑 树,否则,重复步骤 2.

5. 实例: b 53 d 8 54 e a 63 c 解: ab—bd—dc--de 1). 选点 a,T={a}, 选出 ab, 2). T={ab}, 选出 bd, 3). T={ab,bd}, 选出 dc, 4). T={ab,bd,dc}, 选出 de

§2 最短路径问题 一. 简介 1. 问题:寻找网络中两个顶点之间的最短路径问题. 2. 实例:希望利用公路开车从上海到北京,希望路程 最短. 注: (1) 点 — 城市,边 — 公路, 权 — 距离,连通赋权图. (2) 所有权均非负.

二. Dijkstra 算法 (1959) 1. 算法思想:

2. 算法描述 ( 从 u 0 到 u n-1 ) :

3. 实例: a 3 d 3 5 x 8 b 2 1 y 4 e 8 c 1 1) S 0 ={x}, 其他 l(v)=∞,l(x)=0 2) l(a)=3,l(b)=8,l(c)=4,S 1 ={x,a} 3) l(b)=8,l(c)=4,l(d)=6, S 2 ={x,a,c} 4) l(b)=8,l(e)=5,l(d)=6,S 3 ={x,a,c,e} 5) l(d)=6,l(b)=7,l(y)=13, S 4 ={a,c,e,d} 6) l(b)=7,l(y)=11,S 5 ={a,c,e,d,b} 7) l(y)=11,S 6 ={a,c,e,d,b,y}

一笔画问题 )  在哥尼斯堡有七座桥将普雷格尔 河中两个岛及岛与河岸连接起来 ( 如图 ) 。 Euler 在 1736 年访问 Konigsberg 时,他发现当地的市民正从事一项 非常有趣的消遣活动。这项有趣的消遣活动是在星期六作一次走 过所有七座桥的散步,每座桥只能经过一次而且起点与终点必须 是同一地点。 Euler 证明了不可能存在这样的路线。

三. 中国邮递员问题 (1962 ,管梅谷 ) 1. 问题:邮递员每天从邮局选好邮件,送到他所管辖 的邮区的客户手中,再返回邮局,他每天必须走过每 条街道至少一次,问如何选择邮递路线,使得他走过 的投递总行程最短? 2. 模型:非负赋权图 G : 顶点 ---- 交叉口或终端,边 ---- 街道,权 街道长度, 此即求图的通过每条边至少一次的闭途径, 称为 G 的环 游.

3. 最优环游:即具有最小权的环游. 注: (1) 若 G 是欧拉图,则欧拉环游即最优. (2) 若 G 不是欧拉图,则重复边权和最小的即最优. 4. 定理:设 P 是赋权连通图 G 中一条包含 G 的所有边 至少一次的闭途径,则 P 最优当且仅当它满足以下两 个条件: (1) P 中没有二重以上的边. (2) 对 G 中的任意圈 C ,其重复边集 E 的长度之和不 超过圈长的一半,即 w(E)≤1/2w(C).

步骤 1 :取 V 0 ={v|d(v) 为奇数 } , (G 中一定有偶数个奇点 ). 步骤 2 :对 V 0 中任意 u,v ,求 d(u,v), ( 用 Dijkstra 算法 ). 步骤 3 :构造完全图 K |v 0 |, 其中边 {u,v} 的权为 d(u,v). 步骤 4 :求 K |v 0 | 中的权最小的完美匹配 M. 步骤 5 :在 G 中求以 M 中每条边的两端点为端点的最短路. 步骤 6 :将步骤 5 中所求的每条最短路上的每条边都添上 一条等权的 “ 倍边 ” ,得到新图 G‘. 步骤 7 :在新图 G’ 中用 Fleury 算法求欧拉环游,则即为 G 的最优环游. 5. Edmonds-Johnson 算法

三. 旅行商问题 1. 问题:设有 n 个城镇,已知每两个城镇之间的距离, 一个售货员自一个城镇出发巡回售货,问他该如何 选择路线,能使每个城镇经过一次且仅一次,最后 再回到出发地而且行程最短。 2. 模型:此即在赋权完全图中,寻找最小权的哈密尔 顿圈. 注:这个问题是 NPC 的.

3. 近似算法 ( 最邻近算法 )

4. 实例:求下列赋权完全图的最优 Hamilton 回路. A B 5 E C 8 D 解: ACEBDA: 权和 25 BACEDB: 权和 25 CABEDC : 权和 22 DACEBD : 权和 25 EACDBE: 权和 27 所选初始点不同,得到的近似解也不同.

5. 修改方法:最邻近插入法 思想方法:每次迭代中都让其构成一个闭的旅行路线, 它由多个阶段形成,每次都比上一次多一个顶点。 求解时,在已建立旅程之外的顶点中,寻找最邻近 于旅程中某个顶点的顶点,将其插入该旅程中,并 使增加的距离尽可能小,当全部顶点收入这个旅程 后,就找到了最短哈密尔顿回路的近似解.

实例: A B 5 E C 8 D (1) 初始点为 A ,组成闭旅程 AA , 下一阶段,最邻近 A 的顶点为 C , 建立闭旅程 ACA, 再寻找最邻近 A 与 C 的顶点 B ,组成闭旅程 ACBA. (2) 从 D,E 中找一个最邻近 ACBA 的顶点 D , 将其插入,分别得到 ACDBA( 权和 20) , ACBDA(23),ADCBA(23), 选择 ACDBA. (3) 最后将 E 插入 ACDBA, 有 4 个位置 AECDBA(30),ACEDBA(25),ACDEBA(22),ACDBEA( 27) ,选择最小的 ACDEBA(22) 即为所求.

网络流问题 随着中国经济快速的增长,城市化是未来中国的发 展方向。我们要把物流业作为战略重点列入要大力 发展的新兴服务产业。如何制定一个运输计划使得 生产地到销售地的产品输送量最大?这就是一个网 络最大流问题。

6. Ford-Fulkerson 算法 (1) 标号过程

(2) 调整过程

8. 算法思想:从任何一个可行流 ( 如零流 ) 出发,寻 找增广路,调节修正流量. 缺陷:符号顺序任意,导致增广路任意. 改进:最短增广路算法. 注:算法最终停止时, S 为已标号点, T 为未标号 点, C(S, T) 即为最大流.

7. 实例 v 1 (5,2) v 4 (5,5) (3,3) (4,2) x (4,2) v 2 (3,0) v 5 (3,3) y (3,2) (2,2) (5,4) v 3 (2,2) v 6 (-v5,2) (+v1,2) v 1 (5,2) v 4 (5,5) (3,3) (4,2) x (4,2) v 2 (3,0) v 5 (3,3) y ( △, ∞) (+x, 2) (+v2,2) (+v4,2) (3,2) (2,2) (5,4) v 3 (2,2) v 6 (+x,1) 找到一条 x-y 增广路 P=xv 2 v 5 v 1 v 4 y, 调整 P 中边的流量 : v 1 (5,4) v 4 (5,5) (3,1) (4,4) x (4,4) v 2 (3,2) v 5 (3,3) y (3,2) (2,2) (5,4) v 3 (2,2) v 6 再重新标号,只能从 x 标到 v 3 , S={x,v 3 },T={v 1,v 2,v 4, v 5,v 6,y},C(S,T)=11=v(f).