数学建模与数学实验 行遍性问题
行 遍 性 问 题 数学建模与数学实验
行遍性问题 、中国邮递员问题 (一)欧拉图 (二)中国邮递员问题 、推销员问题 (一)哈密尔顿图 (二)推销员问题 三、建模案例:最佳灾情巡视路线
行 遍 性 问 题 一、中 国 邮 递 员 问 题 二、推 销 员 问 题 三、建模案例:最佳灾情巡视路线 (一) 欧 拉 图 (二) 中 国 邮 递 员 问 题 (一) 哈 密 尔 顿 图 (二) 推 销 员 问 题
定义设图G=(V,E),McE,若M的边互不相邻,则 称M是G的一个匹配 若顶点v与M的一条边关联,则称v是M饱和的 设M是G的一个匹配,若G的每个顶点都是M饱和的,则称 M是G的理想匹配
定义 设图 G =(V,E),M E,若 M 的边互不相邻,则 称 M 是 G 的一个匹配. 若顶点v 与 M 的一条边关联,则称 v 是 M 饱和的. 设 M 是 G 的一个匹配,若 G 的每个顶点都是 M 饱和的,则称 M 是 G 的理想匹配
割边的定义:设G连通,e∈E(G),若从G中删除边e后, 图G-{e}不连通,则称边e为图G的割边 割边 G的边e是割边的充要条件是不含在G的圈 中
7 3 1 2 3 4 1 4 5 2 5 6 6 7 8 9 割边 G的边 是割边的充要条件是 不含在G的圈 中. 割边的定义:设G连通, E(G),若从G中删除边 后, 图G-{ }不连通,则称边 为图G的割边. e e e e e e v v v v v v v e e e e e e e e e
欧抗图 定义1设G=(V,E)是连通无向图 (1)经过G的每边至少一次的闭通路称为巡回 (2)经过G的每边正好一次的巡回称为欧拉巡回 3)存在欧拉巡回的图称为欧拉图. (4)经过G的每边正好一次的道路称为欧拉道路. e e2 e5 2 V4 V3 欧拉道路:ve1v2e2l3esve4ve3v3欧拉巡回 巡回:v1e1v2e2v3esyv1e4v4e3v3ev1 V1e1v2e2v3esvie4v4e3v3e6v1
e3 v1 v2 v3 v4 e1 e4 e5 e2 e6 欧 拉 图 定义1 设 G=(V,E)是连通无向图 (1)经过 G 的每边至少一次的闭通路称为巡回. (2)经过 G 的每边正好一次的巡回称为欧拉巡回. (3)存在欧拉巡回的图称为欧拉图. (4)经过 G 的每边正好一次的道路称为欧拉道路. e3 v1 v2 v3 v4 e1 e4 e5 e 2 巡回:v1e1v2e2v3e5v1e4v4e3v3e5v1 欧拉道路:v1e1v2e2v3e5v1e4v4e3v3 欧拉巡回: v1e1v2e2v3e5v1e4v4e3v3e6v1
定理1对于非空连通图G,下列命题等价 (1)G是欧拉图 (2)G无奇次顶点 (3)G的边集能划分为圈 欧拉图 非欧拉图 推论1设G是非平凡连通图,则G有欧拉道路的充要条 件是G最多只有两个奇次顶点 返回
定理1 对于非空连通图 G,下列命题等价: (1)G 是欧拉图. (2)G 无奇次顶点. (3)G 的边集能划分为圈. 推论1 设 G 是非平凡连通图,则 G 有欧拉道路的充要条 件是 G 最多只有两个奇次顶点. e3 v1 v2 v3 v4 e1 e4 e5 e2 e3 v1 v2 v3 v 4 e1 e4 e5 e2 e6 欧拉图 非欧拉图 返回
中国邮递员问题-定义 邮递员发送邮件时,要从邮局出发,经过他投递范围内的 每条街道至少一次,然后返回邮局,但邮递员希望选择一条行 程最短的路线.这就是中国邮递员问题 若将投递区的街道用边表示,街道的长度用边权 表示,邮局街道交叉口用点表示,则一个投递区构成 一个赋权连通无向图.中国邮递员问题转化为:在 个非负加权连通图中,寻求一个权最小的巡回.这样 的巡回称为最佳巡回
中国邮递员问题-定义 邮递员发送邮件时,要从邮局出发,经过他投递范围内的 每条街道至少一次,然后返回邮局,但邮递员希望选择一条行 程最短的路线.这就是中国邮递员问题. 若将投递区的街道用边表示,街道的长度用边权 表示,邮局街道交叉口用点表示,则一个投递区构成 一个赋权连通无向图.中国邮递员问题转化为:在一 个非负加权连通图中,寻求一个权最小的巡回.这样 的巡回称为最佳巡回.
中国邮递员问题一犷法 1.G是欧拉图 多此时G的任何一个欧拉巡回便是最佳巡回.问题归结 在欧拉图中确定一个欧拉巡回 Fleury算法:求欧拉图的欧拉巡回 Fleury算法基本思想:从任一点出发,每当访问 条边时,先要进行检查.如果可供访问的边不只 条,则应选一条不是未访问的边集的导出子图的 割边作为访问边,直到没有边可选择为止
中国邮递员问题-算法 1. G 是欧拉图 此时 G 的任何一个欧拉巡回便是最佳巡回.问题归结 为在欧拉图中确定一个欧拉巡回. Fleury 算法:求欧拉图的欧拉巡回. Fleury算法基本思想:从任一点出发,每当访问 一条边时,先要进行检查.如果可供访问的边不只 一条,则应选一条不是未访问的边集的导出子图的 割边作为访问边,直到没有边可选择为止
Fleury算法一算法步骤: (1)任选一个顶点v,令道路vo=vo (2)假定道路w;=ve1v1e2nv;已经选好,则从E{e1,e2,…;e;}中选 一条边e+1,使 a)er+1与v;相关联 b)除非不能选择,否则一定要使e+1不是G;=G[E-{e1,e2,…;e} 的割边 (3)第(2)步不能进行时就停止 e V2e10 e e e 8 e 4
v 7 e 3 v 1 v 2 v 3 v 4 e 1 e 4 e 5 e 2 v 5 e 6 e 6 e 7 e 8 e 9 e10 Fleury 算法—算法步骤: (1)任选一个顶点 v0,令道路 w0 =v0. (2)假定道路 wi=v0e1v1e2…eivi 已经选好,则从 E\{e1 ,e2,…,ei}中选 一条边 ei+1,使: a)ei+1 与 vi 相关联 b)除非不能选择,否则一定要使 ei+1 不是 Gi =G[E-{e1 ,e2,…,ei }] 的割边. (3)第(2)步不能进行时就停止.
2G不是欧拉图 若G不是欧拉图,则G的任何一个巡回经过某 些边必定多于一次 解决这类问题的一般方法是:在一些点对之间 引入重复边(重复边与它平行的边具有相同的权) 使原图成为欧拉图,但希望所有添加的重复边的 权的总和为最小
2. G 不是欧拉图 若G不是欧拉图,则G的任何一个巡回经过某 些边必定多于一次. 解决这类问题的一般方法是:在一些点对之间 引入重复边(重复边与它平行的边具有相同的权), 使原图成为欧拉图,但希望所有添加的重复边的 权的总和为最小.