- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
图论模型案例:最佳灾情巡视路线 乡镇、村的公路网示意图见下图 问题一 若分为三组巡视,设计总路程最短且各组尽可能均衡的巡视路线. 第四节 网络流及其应用 树 T 是连通图 G 的生成树(spanning tree),若 T 是 G的子图且包含图 G 的所有的节点;包含图 G 中部分指定节点的树称为 steiner tree 每个节点有唯一标号的图称为标记图,标记图的生成树称为标记树(labeled tree) Caylay 定理:n (?2)个节点,有nn?2个不同的标记树 2. 图的生成树 2 . 图的生成树 如何找到一棵生成树 深探法(depth first search):任选一点标记为 0 点开始搜索,选一条未标记的边走到下一点,该点标记为 1,将走过的边标记;假设已标记到 i 点,总是从最新标记的点向下搜索,若从 i 点无法向下标记,即与 i 点相关联的边都已标记或相邻节点都已标记,则退回到 i ?1 点继续搜索,直到所有点都被标记 广探法(breadth first search):是一种有层级结构的搜索,一般得到的是树形图 3. 最小生成树 有n 个乡村,各村间道路的长度是已知的,如何敷设光缆线路使 n 个乡村连通且总长度最短 显然,这要求在已知边长度的网路图中找最小生成树 最小生成树的算法: Kruskal 算法:将图中所有边按权值从小到大排列,依次选所剩最小的边加入边集 T,只要不和前面加入的边构成回路,直到 T 中有 n?1 条边,则 T 是最小生成树 3. 最小生成树 Kruskal 算法基于下述定理 定理 3 指定图中任一点vi,如果 vj 是距 vi 最近的相邻节点,则关联边 eij 必在某个最小生成树中。 推论 将网路中的节点划分为两个不相交的集合V1和V2,V2=V?V1,则V1和V2间权值最小的边必定在某个最小生成树中。 3. 最小生成树 最小生成树不一定唯一 定理 3 推论是一个构造性定理,它指示了找最小生成树的有效算法 Prim 算法:不需要对边权排序,即可以直接在网路图上操作,也可以在边权矩阵上操作,后者适合计算机运算 3. 最小生成树 边权矩阵上的 Prim 算法: 1、根据网路写出边权矩阵,两点间若没有边,则用?表示; 2、从 v1 开始标记,在第一行打 ? ,划去第一列; 3、从所有打 ? 的行中找出尚未划掉的最小元素,对该元素画圈,划掉该元素所在列,与该列数对应的行打 ? ; 4、若所有列都划掉,则已找到最小生成树(所有画圈元素所对应的边);否则,返回第 3 步。 该算法中,打 ? 行对应的节点在 V1中,未划去的列在 V2中 3. 最小生成树 Prim算法是多项式算法 Prim算法可以求最大生成树 网路的边权可以有多种解释,如效率 次数受限的最小生成树—尚无有效算法 最小 Steiner 树—尚无有效算法 ? ? ? ? ? ? 行 遍 性 问 题 行 遍 性 问 题 一、中 国 邮 递 员 问 题 二、推 销 员 问 题 三、建模案例:最佳灾情巡视路线 (一) 欧 拉 图 (二) 中 国 邮 递 员 问 题 (一) 哈 密 尔 顿 图 (二) 推 销 员 问 题 V7 e3 v1 v2 v3 v4 e1 e2 e4 e5 V5 V6 e6 e7 e8 e9 割边 G的边e是割边的充要条件是e不含在G的圈中. 割边的定义:设G连通,e E(G),若从G中删除边e后,图G-{e}不连通,则称边e为图G的割边. e3 v1 v2 v3 v4 e1 e2 e4 e5 e6 欧 拉 图 e3 v1 v2 v3 v4 e1 e2 e4 e5 巡回:v1e1v2e2v3e5v1e4v4e3v3e5v1 欧拉道路:v1e1v2e2v3e5v1e4v4e3v3 欧拉巡回:v1e1v2e2v3e5v1e4v4e3v3e6v1 e3 v1 v2 v3 v4 e1 e2 e4 e5 e3 v1 v2 v3 v4 e1 e2 e4 e5 e6 欧拉图 非欧拉图 返回 中国邮递员问题-定义 中国邮递员问题-算法 Fleury算法-基本思想:从任一点出发,每当访问 一条边时,先要进行检查.如果可供访问的边不只 一条,则应选一条不是未访问的边集的导出子图的 割边作为访问边,直到没有边可选择为止. V7 e3 v1 v2 v3 v4 e1 e2 e4 e5 V5 V6 e6 e7 e8 e9 e10 若G不是欧拉图,则G的任何一个巡回经过某些边必定多于一次. 解决这类问题的一般方法是,在一些点对之 间引入重复边(重复边与它平行的边具有相同 的权)
文档评论(0)