第05讲 图论模型
图论模型
![图论模型](https://img.taocdn.com/s3/m/092bea543c1ec5da50e27021.png)
图论模型此模型解决的是垃圾清运路线的最佳方案。
1、收集路线方案:用中国邮递员问题解决达到最佳经济效益和环保效果的垃圾清运路线问题是在车辆限载约束条件下的最优路径选择的问题,同时本项目涉及到深圳市南山区38个垃圾中转站,而每个中转站所覆盖的收集区域的选取需要满足最大覆盖域(即总体能够消耗最少资源来覆盖整片区域),收集区域的划分又要同时考虑实地情况(地形、路线、用地性质、人流量、垃圾量等)。
1.1模型建立:为简化问题讨论,在转运站覆盖区域的划分的问题上,需要运用“最大覆盖”及“模糊划分”的思想,具体划分出每个转运站所对应 的片区的近似最优划分。
将问题简化后,所要求解的问题就是每个垃圾中转站所对应的每个小分区的街道所构成的收集网络的垃圾收运车辆优化路线的问题,也就是要求每一条街道至少有一辆垃圾收运车经过并且车辆重复走过的街道的总长度最小化的问题。
对于这个问题,我们采用图论模型,将每个小分区的街道及收集点简化成网络图(也叫赋权图)。
对于网络图中的圈用圈点来表示,计算各个圈点的垃圾量(也即围成圈的街道上的垃圾量的和),将相邻(有公共顶点)的圈点用线连接起来,这就构成了圈点图。
遵循以垃圾中转站为圆心沿径向发散求最小生成树的原则将圈点图中相邻的圈点组块,使得每块的垃圾量近似于垃圾收运车载限,对应于圈点分块,网络图分开成了各个子网络图,对于每一个子网络图即可利用欧拉回路求得其最小路径线路。
现在给出最短欧拉回路求解举例:图代表的是其中一个收集子网络图,其中直线表示车辆需要经过的街道,线上的数字表示该街道的长度,该子网络图各条街道的垃圾量之和近似于收集车辆的载限。
现要求的是车辆经过每一条街道至少一次的最短回路,现在对这个问题分步求解:第一步:找出图中的奇点,如图中橙色小圆点所在处为奇点。
第二步:将各对奇点沿街道连接起来,使得连接奇点的所有街道总长度最小。
如下图绿色线条:第三步:得出经过每条街道至少一次的最短路径长度为所有街道的总长加上连接奇点的街道的长度。
图论模型实例优秀课件
![图论模型实例优秀课件](https://img.taocdn.com/s3/m/be3d5389011ca300a6c390f4.png)
存在,考虑增环,增环后权值应减小 ▪ 换枝原则 环路上某顶点长出一条枝,该枝末梢和环路另
一顶点接近,可考虑换枝
问题1的分析与求解--最小生成树法
问题1的分析与求解 --TSP方法
公路边的数字为该路段的公里数.
问题分析:
本题给出了某县的公路网络图,要求的是在不 同的条件下,灾情巡视的最佳分组方案和路线.
将每个乡(镇)或村看作一个图的顶点,各乡 镇、村之间的公路看作此图对应顶点间的边,各条 公路的长度(或行驶时间)看作对应边上的权,所 给公路网就转化为加权网络图,问题就转化图论中 一类称之为旅行售货员问题,即在给定的加权网络 图中寻找从给定点O出发,行遍所有顶点至少一次 再回到点O,使得总权(路程或时间)最小.
图论模型实例
专题
❖ 图的表示与锁具问题 ❖ 最小生成树、TSP和灾区巡视问题 ❖ 最短路、网络流和运输问题 ❖ 作业
图的表示与锁具问题
不积硅步,无以至千里 --荀子·劝学
图的矩阵表示
邻接矩阵: (以下均假设图为简单图).
1) 对无向图 G,其邻接矩阵 A(aij),其中:
1, aij 0,
若vi与vj相邻 , 若vi与vj不相.邻
i1
定义 称
为最大容许均衡度.
为该分组的实际均衡度.
显然0 0 1,0越小,说明分组的均衡性越 好. 取定一个 后,0与 满足条件 3)的分组是
一个均衡分组. 条件 4)表示总巡视路线最短.
此问题包含两方面:a)对顶点分组, b)在每组中求 (单个售货员)最佳旅行售货员回路.
因单个售货员的最佳旅行售货员回路问题不存在多 项式时间内的精确算法.因此多个售货员的最佳旅行售 货员回路问题也不存在多项式时间内的精确算法.
图论讲稿
![图论讲稿](https://img.taocdn.com/s3/m/af69e0b29b89680202d82540.png)
2020年7月13日星期一
图论模型基础知识
1. 图论的基本概念 2. 最短路问题及算法 3. 最小生成树问题及算法 4. 哈密尔顿图 5. 欧拉图
1.图论的基本概念
1) 图的概念 2) 赋权图与子图 3) 图的矩阵表示 4) 图的顶点度 5) 路和连通
1) 图的概念
定义 一个图G是指一个二元组(V(G),E(G)),其中
替i,并转2).
,则用 i+1 代
Dijkstra算法: 求G中从顶点u0到其余顶点的最短路.
1) 置
,对 ,
,
且
. 2) 对每个
,用
代替 ,计算
,并把达到这个最小值的
一个顶点记为 ,置
3) 若
,则停止;若
替i,并转2).
,则用 i+1 代
Dijkstra算法: 求G中从顶点u0到其余顶点的最短路.
可化为最短路问题的多阶段决策问题
选址问题--中心问题
S(v1)=10, S(v2)=7, S(v3)=6, S(v4)=8.5, S(v5)=7, S(v6)=7, S(v7)=8.5
S(v3)=6,故应将消防站设在v3处。
选址问题--重心问题
3.最小生成树及算法
1) 树的定义与树的特征
定义 若图
的每一条边e 都赋以
一个实数w(e),称w(e)为边e的权,G 连同边上的权 称为赋权图.
定义 设 1) 若
2) 若 ,
和
是两个图.
,称 是 勇于的开一始,个才能子找图到成,记
,则称 功是的路的生成子图.
3) 若
,且 ,以 为顶点集,以两端点
均在 中的边的全体为边集的图 的子图,称
图论模型(最优连线问题最短路问题)PPT课件
![图论模型(最优连线问题最短路问题)PPT课件](https://img.taocdn.com/s3/m/2618af6a26fff705cc170af0.png)
(3)当(2)不能继续执行时停止。
(其思想是:在剩余边集中找边权最小的边添加到生成树中,同时又 不能产生回路即以局部的最优谋求全局的最优。)
上述的描述实际上是最小生成树的逐 步生长过程,上例的最小生成树如下:
A 5
1 3
D
8 E
水厂
9
B 7
6 10
著名数学家欧拉
七桥问题
图的基本概念
无 向 图
1 定义:由顶点和边组成的图形称为图。 有 向 图
赋
权
图
2 边e与顶点u、v相关联。顶点u与v相邻。
e
u
边e1与e2相邻。
e1
v
e2
u=v时,边e称为环。
3度
定义:与顶点v关联的边的数目称为顶点的度数, 记为d(v)。(注:环算2度。)
对于有向图的顶点的度数,还可分为出度 d ( v ) 和 入度 d ( v ) 。
u3
u6
0 8
1
6
u8
5
10
5
2
6
1
1
u4
10
u7
第五步:min{8,11,11,9,8,12,7,11,11},u3。
u2
1
2
u5
3
2
7
5
3
9
u1
u3
u6
0
8
7
1
6
u8
5
10
5
2
6
1
1
u4
10
u7
第六步:min{11,12,11,11,9},u7。
u2
1
2
05第5讲 图论模型
![05第5讲 图论模型](https://img.taocdn.com/s3/m/23411da1fd0a79563c1e7298.png)
4
目标函数是使得 z wij xij 最小化。
i 1 j 1
n
n
约束条件分成如下 4 类: (1)根 v1 至少有一条边连接到其他的顶点,
v1
4 2 4 5 3
v2
1 3 4 4 2
v3
v1
1
v8
1
v0
1
v4
1
v8
v7
2
v2 1
v0
1
v3 1 v4 v5
5
v7
2 v6 (a)
5
v5
2 3
v6
2
图 5.4 生成的最小生成树
v0 , v1 ,
求最小生成树的 Kruskal 算法的 MATLAB 程序如下(用 MATLAB 计算时,顶点 : , v8 分别编号为 1, 2, ,9 ) clc, clear a=zeros(9); a(1,[2:9])=[2 1 3 4 4 2 5 4]; a(2,[3 9])=[4 1]; a(3,4)=1; a(4,5)=1; a(5,6)=5; a(6,7)=2; a(7,8)=3; a(8,9)=5; a=a'; %转成 MATLAB 需要的下三角元素 a=sparse(a); %转换为稀疏矩阵 b=graphminspantree(a,'Method','Kruskal') %注意要写 Kruskal 算法,否则使用 Prim 算法 L=sum(sum(b)) %求最小生成树的权重 view(biograph(b,[],'ShowArrows','off','ShowWeights','on')) %画最小生成树,
数学建模图论模型课件
![数学建模图论模型课件](https://img.taocdn.com/s3/m/fa9b613d7f21af45b307e87101f69e314232fa60.png)
1, aij 0,
vij E; vij E.
0 1 0 1
A
0 1 1
0 0 0
1 0 1
0
1 0
21
无向图G的邻接矩阵A是一个对称矩阵.
0 1 1 1
A
1 1 1
0 1 0
1 0 1
0
1 0
⑵ 权矩阵 一个n阶赋权图G = (V, E, F)的权矩阵A = (aij ) n×n , 其中
矩阵A = (aij )n×m ,
其中 1,
若vi是ej的始点;
aij 1, 若vi是ej的终点;
0, 若vi与ej不关联.
有向图的关联矩阵每列的元素中有且仅有一个1,有且仅 有一个 - 1.
1 0 0 1 1 0 1
A
1 0 0
1 1 0
0 1 1
0 0 1
0 1 0
0 0
1 1
01
① V称为G的顶点集, V≠, 其元素称为顶点或结点, 简称点;
② E称为G的边集, 其元素称为边, 它联结V 中的两个点, 如 果这两个点是无序的, 则称该边为无向边, 否则, 称为有向边.
如果V = {v1, v2, … , vn}是有限非空点集, 则称G为有限图或 n阶图.
如果E的每一条边都是无向边, 则称G为无向图(如图1); 如 果E的每一条边都是有向边, 则称G为有向图(如图2); 否则, 称 G为混合图.
若v0 v1 … vm 是图G中从v0到vm的最短路, 则1≤k≤m, v0v1 … vk 必为G中从v0到vk的最短路.
即:最短路是一条路,且最短路的任一段也是最短路. 求非负赋权图G中某一点到其它各点最短路,一般用 Dijkstra标号算法;求非负赋权图上任意两点间的最短路,一般 用Floyd算法. 这两种算法均适用于有向非负赋权图. 下面分别介绍两种算法的基本过程.
数学建模-图论模型
![数学建模-图论模型](https://img.taocdn.com/s3/m/44227fb16c175f0e7dd13755.png)
思路分析
• 每学期任课老师都有一定工作量的要求往往可能要上不止一门课 程。
• 每位同学需要在学期内完成若干门课程的学习。 • 某些对上课设施有特殊要求的课程,也不可以安排在同一时间。 • 为了方便开展一些全校性的活动,有些时段不安排课程。 • 受到教室数量的限制,在同一时段无法安排太多的课程。
模型建立
• 以每个课程为顶点,任何两个顶点之间连一条边当且仅当两门课 程的任课老师为同一人,或有学生同时选了这两门课或上课教室 冲突。
• 那么一个合理的课程安排就是将图中的点进行分化,使得每一个 部分里的点为一个独立集。
• 通过极小覆盖找出图中的极 大独立集,然后删去该极大 独立集,在剩下的图中找出 极大独立集,直到剩下的图 为一个独立集。
匈牙利算法
• 饱和点:M是图G的一个匹配,若G中顶点v是M中某条边的端 点,则称M饱和v,否则称v是M的非饱和点。
• 可扩路:一条连接两个非饱和点x和y的由M外的边和M的边交错 组成的路称为M的(x,y)可扩路。
• 算法基本步骤:
Kuhn-Munkres算法
1.2 图的独立集应用
• 问题描述:各大学学期临近结束时,需要根据老师任课 计划和学生选课情况,再结合教室资源情况安排下一学 期的课程及上课时间和地点。下表所示是某大学电信学 院的大三各专业部分课程情况。该学院每届学生按专业 分班,统一选课。另外,学院只有一间普通机房和一间 高级机房。那么应该如何合理地排这些课程呢?
则称其是双连通或强连通的。对于不是双连通的图,都可以分解成 若干个极大的双连通分支,且任意两分支之间的边是同向的。
举例:
• 右图所示竞赛图不是双连通的
•
为一条有向
的D哈密尔A顿路B。 C E
图论模型及方法
![图论模型及方法](https://img.taocdn.com/s3/m/a5e5a32c7375a417866f8fd1.png)
第五章 图与网络模型及方法§1 概论图论起源于18世纪。
第一篇图论论文是瑞士数学家欧拉于1736 年发表的“哥尼斯堡的七座桥”。
1847年,克希霍夫为了给出电网络方程而引进了“树”的概念。
1857年,凯莱在计数烷22 n n H C 的同分异构物时,也发现了“树”。
哈密尔顿于1859年提出“周游世界”游戏,用图论的术语,就是如何找出一个连通图中的生成圈,近几十年来,由于计算机技术和科学的飞速发展,大大地促进了图论研究和应用,图论的理论和方法已经渗透到物理、化学、通讯科学、建筑学、生物遗传学、心理学、经济学、社会学等学科中。
图论中所谓的“图”是指某类具体事物和这些事物之间的联系。
如果我们用点表示这些具体事物,用连接两点的线段(直的或曲的)表示两个事物的特定的联系,就得到了描述这个“图”的几何形象。
图论为任何一个包含了一种二元关系的离散系统提供了一个数学模型,借助于图论的概念、理论和方法,可以对该模型求解。
哥尼斯堡七桥问题就是一个典型的例子。
在哥尼斯堡有七座桥将普莱格尔河中的两个岛及岛与河岸联结起来问题是要从这四块陆地中的任何一块开始通过每一座桥正好一次,再回到起点。
当然可以通过试验去尝试解决这个问题,但该城居民的任何尝试均未成功。
欧拉为了解决这个问题,采用了建立数学模型的方法。
他将每一块陆地用一个点来代替,将每一座桥用连接相应两点的一条线来代替,从而得到一个有四个“点”,七条“线”的“图”。
问题成为从任一点出发一笔画出七条线再回到起点。
欧拉考察了一般一笔画的结构特点,给出了一笔画的一个判定法则:这个图是连通的,且每个点都与偶数线相关联,将这个判定法则应用于七桥问题,得到了“不可能走通”的结果,不但彻底解决了这个问题,而且开创了图论研究的先河。
图与网络是运筹学(Operations Research )中的一个经典和重要的分支,所研究的问题涉及经济管理、工业工程、交通运输、计算机科学与信息技术、通讯与网络技术等诸多领域。
图论模型讲义
![图论模型讲义](https://img.taocdn.com/s3/m/4e27c3eb4afe04a1b071de76.png)
目录目录 (1)第8章图论模型 (1)8.1图的基本知识 (2)8.1.1图的相关定义 (2)8.1.2图的顶点的度 (3)8.1.3子图及运算 (4)8.1.4 图的连通性 (5)8.1.5一些特殊图 (7)8.2图的矩阵表示 (7)8.2.1邻接矩阵 (7)8.2.2 关联矩阵 (8)8.3图的方法建模 (9)8.3.1 图的最小生成树问题及算法 (10)1.树及最小生成树 (10)2.克鲁斯卡尔算法 (11)3.普利姆算法 (13)8.3.2图的最短路问题及算法 (15)1.迪克斯特拉算法 (15)8.3.3图的匹配及应用 (20)1. 图的匹配 (20)2.指派问题: (23)3.最优指派 (27)8.3.4 图的覆盖及应用 (33)1. 逻辑算法 (34)2.启发式算法: (35)3.利用关联矩阵求极小覆盖: (37)8.3.5图的遍历问题 (38)1.边的遍历-中国邮差问题 (38)2.点的遍历-旅行商问题 (41)8.3.6 竞赛图问题 (48)1.竞赛图的定义 (48)2.循环比赛排名 (50)8.4 实战篇 (51)第8章图论模型图论(Graph Theory)18世纪起源于欧洲。
瑞士著名数学家欧拉(Euler)于1736 年发表的第一篇图论论文—“哥尼斯堡七桥问题”,不但解决了曾经困扰了人们多年的难题,同时它宣告了图论这门学科的诞生。
在普鲁士的小镇哥尼斯堡,一条河穿城而过,河中央有两个小岛,小岛之间及岛与河岸共有七座桥连接。
能否从四块陆地中的任何一处出发,恰好通过每座桥一次再回到起点,这就是著名的“哥尼斯堡七桥问题”。
人们曾经做过很多尝试,但是都没有获得成功。
为了解决这个问题,欧拉将问题进行几何抽象:将陆地分别用“点”代替,将桥用连接这些点的“线”来代替,得到一个包含四个“点”,七条“线”的“图”,将问题转化为“如何从一点出发一笔画出这个图,最后回到起点”的问题。
因为每次经过一个点必须消耗掉两条与该点相关联的边(从一边进入,另一条边离开),所以和每个点相关联的边的数量应该是一个偶数,此问题显然是无解的。
第五章图论与网络模型-推荐下载
![第五章图论与网络模型-推荐下载](https://img.taocdn.com/s3/m/553ccabe80eb6294dd886c9e.png)
有如下性质:① Σ v ∈ Vd(v)= 2 |E| ;② 图中次数为奇数的顶点必为偶数个;③ Σ v ∈ Vd + (v )= Σ v ∈ Vd - (v) .每个 顶点的度为n - 1 的n 阶无向图称为n 阶无向完 全图,记为K n .每个顶点的出度和入度均为n - 1 的n 阶有向图称为n 阶有向完全图,也记为K n .若G 的顶点集V 可分成两个不相交的非空子集V 1 ,V 2 ,使G 的每条边的端点,一个属于V 1 ,另一个属于V 2 ,则称G 为二分图或偶图,记为 G = (V 1 ,V 2 ,E) .若简单二分图G = (V 1 ,V 2 ,E)中V 1 的每个顶点与V 2 的 所有顶点相邻,则称G为完全二分图,记为K n ,m ,其中n = |V 1 | ,m = |V 2 | .图论 中的图与位置、大小、形状、面积、体积等几何要 素无关,是一种更抽象的图.图的最本质的内容实 际上就是一个二元关系,即点与边的关联关系.因 此具有二元关系的系统或结构便可用图作为数学模 型,且图具有直观性和艺术性,应用相当广泛. 设G = (V ,E) ,G′ = (V′ ,E′) ,若 V′ 彻V ,E 彻E′ ,则称G′为G的子图.特别地, 若V′ = V ,则称G′为G 的生成子图;若V′ 彻V ,E′含G 在V′之间的所有边,则称G′为由V′导 出的子图,记为G[V′] ,· 170 · 数学建
图论 模型
![图论 模型](https://img.taocdn.com/s3/m/f16ea49fa45177232e60a239.png)
图论模型图论是运筹学的一个经典和重要分支,专门研究图与网络模型的特点、性质以及求解方法。
许多优化问题,可以利用图与网络的固有特性而形成的特定方法来解决,比用数学规划等其他模型来求解往往要简单且有效得多。
图论起源于1736年欧拉对柯尼斯堡七桥问题的抽象和论证。
1936年,匈牙利数学家柯尼希(D. Kӧnig )出版的第一部图论专著《有限图与无限图理论》,树立了图论发展的第一座里程碑。
近几十年来,计算机科学和技术的飞速发展,大大地促进了图论研究和应用,其理论和方法已经渗透到物理、化学、计算机科学、通信科学、建筑学、生物遗传学、心理学、经济学、社会学各个学科中。
9.1 图的基础理论9.1.1 图的基本概念所谓图,概括地讲就是由一些点和这些点之间的连线组成的。
定义为(,)G V E =,V 是顶点的非空有限集合,称为顶点集。
E 是边的集合,称为边集。
边一般用(,)i j v v 表示,其中,i j v v 属于顶点集V 。
以下用V 表示图(,)G V E =中顶点的个数,E 表示边的条数。
如图9.1是几个图的示例,其中图9.1 (a)共有3个顶点、2条边,将其表示为(,)G V E =,123{,,}V v v v =,1213{(,),(,)}E v v v v =.23v 45v 34(a)(c)图9.1 图的示意图1.无向图和有向图如果图的边是没有方向的,则称此图为无向图(简称为图),无向图的边称为无向边(简称边)。
如图9.1 (a)和(b)都是无向图。
连接两顶点i v 和j v 的无向边记为(,)i j v v 或(,)j i v v 。
如果图的边是有方向(带箭头)的,则称此图为有向图,有向图的边称为弧(或有向边),如图9.1 (c)是一个有向图。
连接两顶点i v 和j v 的弧记为,i j v v 〈〉,其中i v 称为起点,j v 称为终点。
显然此时弧,i j v v 〈〉与弧,j i v v 〈〉是不同的两条有向边。
东北大学数学建模-图论模型朱和贵
![东北大学数学建模-图论模型朱和贵](https://img.taocdn.com/s3/m/60ab0e1aa300a6c30c229fcc.png)
每对顶点间的最短路算法
寻求赋权图中各对顶点之间最短路,显然 可以调用 Dijkstra 算法。具体方法是:每次以 不同的顶点作为起点,用 Dijkstra 算法求出从 该起点到其余顶点的最短路径,反复执行次这 样的操作,就可得到每对顶点之间的最短路。 但这样做需要大量重复计算,效率不高。R. W. Floyd(弗洛伊德)另辟蹊径,提出了比这更好 的算法,操作方式与 Dijkstra 算法截然不同。
一个点v6表示第5年年底。 E ={vivj | 1≤i<j≤6}。
F (vi v j ) bi ck
k 1
34
j i
这样上述设备更新问题就变为:在有向赋权 图G = (V, E, F )(图解如下)中求v1到v6的最短路问 题。
35
从上图中容易得到v1到v6有两条最短路: v1v3v6和v1v4v6。
20
重要性质: 如果P是D中从vs到vj的最短路,vi是P中 的一个点,那么,从vs沿P到vi的路是从vs到vi
的最短路。
21
求非负赋权图G中某一点到其它各点最 短路,一般用Dijkstra (迪克斯特拉)标号算 法;求非负赋权图上任意两点间的最短路, 一般用Floyd(弗洛伊德)算法。这两种算法均 适用于有向非负赋权图(Floyd算法也适应 于负赋权图)。
(3,V1)
v2 3 1
6 4 1
v4 3 2
5
v3
(4,V2)
v6
6
v5
(5,V3)
28
(5) S:{V1,V2,V3, V5} S’:{V4,V6} 求出(S→ S’)所有 弧,分别计算: (0,V1) S24 =3 + 6=9 v1 S34 =4 + 4=8 S54 =5 + 2=7 S56=5 + 6=11 Min Sij=S54
图论模型简介
![图论模型简介](https://img.taocdn.com/s3/m/803456d86f1aff00bed51e2c.png)
图论模型简介一、图及其矩阵表示1、起源:哥尼斯堡七桥问题:欧拉为了解决这个问题,建立数学模型:陆地——点,桥——边,得到一个有四个“点”,七条“边”的“图”。
问题转化为能否从任一点出发一笔画出七条边再回到起点。
欧拉考察了一般一笔画的结构特点,给出了一笔画判定法则:图是连通的,且每个顶点都与偶数条边相关联(这种图称为欧拉图)。
由此可以得出结论:七桥问题无解。
2、基本概念:图(graph):由顶点和边(又称线,边的两端必须是顶点)组成的一个结构。
邻接:一条边的两个端点称是邻接的;关联:边与其两端的顶点称是关联的。
无向图(graph):边无方向的图;有向图(digraph):边有方向的图。
路(path):由相邻边组成的序列,其中中间顶点互不相同。
圈(cycle):首、尾顶点相同的路,即闭路。
连通图(connected graph):图中任意两顶点间都存在路的图。
树(tree):无圈连通图完全图(complete graph):任意两个顶点之间都有边相连的无向图,记为K n。
竞赛图(tournament):由完全图给每条边定向而得到的有向图。
二部图(bipartite graph):图的顶点分成两部分,只有不同部分顶点之间才有边相连。
图G的子图H(subgraph):H是一个图,H的顶点(边)是图G的顶点(边)。
网络(Network):边上赋了权的有向图。
3、图的矩阵表示无向图 有向图01000101100101101100010⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦ ⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡011101000001001000001104、著名的图论问题例1 最短路问题(shortest path problem)出租车司机要从城市甲地到乙地,在纵横交错的路中如何选择一条最短的路线?例2 最小生成树问题(minimum-weight spanning tree problem)为了给小山村的居民送电,每户立了一根电杆,怎样连接可使连线最短?例3 中国邮递员问题(chinese postman problem)一名邮递员负责投递某个街区的邮件。
图论模型
![图论模型](https://img.taocdn.com/s3/m/27374526eff9aef8941e0625.png)
第七部分图论方法第十六章图论模型图论是应用数学的一个分支,它的概念和结果来源非常广泛,最早起源于一些数学游戏的难题研究,如欧拉所解决的哥尼斯堡七桥问题,以及在民间广泛流传的一些游戏难题,如迷宫问题、博弈问题、棋盘上马的行走路线问题等.这些古老的难题,当时吸引了很多学者的注意.在这些问题研究的基础上又继续提出了著名的四色猜想和汉米尔顿(环游世界)数学难题.1847年,图论应用于分析电路网络,这是它最早应用于工程科学,以后随着科学的发展,图论在解决运筹学,网络理论,信息论,控制论,博弈论以及计算机科学等各个领域的问题时,发挥出越来越大的作用.在实践中,图论已成为解决自然科学、工程技术、社会科学、军事等领域中许多问题的有力工具之一,图论模型属于离散类数学模型,是数学模型中比较容易为学生接受的一类模型,具有直观性、趣味性和简洁性,深得大学生的青睐。
另外,图论模型属于较为近代的前沿性数学知识,又具有强烈的,易于为学生接受的数学建模味道,对于培养学生通过建模解决实际问题的能力与学习兴趣都是不可多得的知识内容,因此越来越受到数学家和建模工作者的喜爱.我们所学的这一章只是介绍一些基本概念、原理以及一些典型的应用实例,目的是在今后的学习研究时,可以把图论的基本知识、方法作为工具.本章先介绍图论的基本概念,然后通过哥尼斯堡七桥问题、最短路径问题、中国邮递员问题、人员分派问题、稳定匹配问题、竞赛图等例子介绍图论的具体应用。
16.1 图的基本概念图是一个有序对<V,E>,V是结点集,E是边集,以表示结点数目,表示边的数目,则当∣V∣和∣E∣有限时,<V,E>称为有限图;否则称无限图.无向边, 与无序结点对(v, u)相关联的边;有向边,与有序结点对<v, u>相关联的边;无向图,每条边都是无向边的图,记作G=<V,E>; 有向图,每条边都是有向边的图,记作D=<V,E>.混合图,既有有向边,也有无向边的图.平凡图,仅有一个结点的图;零图,边集为空集的图<V, ∅>,即仅有结点的图.自回路(环),关联于同一个结点的边.无向平行边,联结相同两个结点的多于1条的无向边;有向平行边,联结两个结点之间的多于1条且方向相同的有向边.简单图,不含平行边和自回路的图.在有向图D=<V,E>中,以v(∈V)为起点的边之条数为出度deg+(v);以v(∈V)为终点的边之条数为入度deg-(v).在无向图G=<V,E>中,与结点v(∈V)关联的边数,即为结点度数deg(v)或d(v).;在有向图中,结点v的出度和入度之和为度数.最大度数,∆(G)=max{deg(v)∣v∈V};最小度数,δ(G)=min{deg(v)∣v∈V}有n个结点的且每对结点都有边相连的无向简单图,称为无向完全图.此时有)1(21-=n n E ;有n 个结点的且每对结点之间都有两条方向相反的边相连的有向简单图为有向完全图. 此时有)1(-=n n E 。
图论模型笔记
![图论模型笔记](https://img.taocdn.com/s3/m/3e19660479563c1ec5da71b4.png)
Graphical Model1.1 贝叶斯网络联合概率可以写成:()()()()P a,b,c =P c|a,b P b|a P a(0.1)那么用图形就可以表示成图 0-1所示,这是一个有向图,指向的箭头代表着条件概率。
图 0-1 表示(0.1)式的有向图图论模型表示概率的普通形式为(0.2)式。
其中k pa 为k x 的父节点1(x)(|)Kk k k p p x pa ==∏(0.2)这一类图称为有向无环图(Directed Acyclic Graphs ,简称DAG )。
1.1.1 线性回归的图论模型线性回归的概率模型中的随机变量为参数W 以及观察数据12={t ,t t }T N t ,。
另外模型还包含了输入数据12{,,}T M x x x x =,噪声方差2σ以及W 的高斯概率先验中的超参数α(precision ),这些都只是模型的参数而非随机变量。
随机变量W 和t 的联合概率分布为1(,)()(|)Nn n p p p t ==∏W t W W(0.3)其图论模型对应为:图 0-2其中重复的n t 用如图的方框表示。
另外,我们可以将模型的参数加进来:221(,|,,)(|)(|,,)Nn n n p p p t x ασασ==∏W t x W W(0.4)得到的模型为图 0-3,其中n t 是被观察得到的节点,我们给它染上颜色并称之为observed variables 。
W 是未被观察到的,称之为隐藏变量(hidden variables )。
图 0-3在通常情况下,我们的最终目的是当给定一个新的输入ˆx,以及在给定一组观察数据的时候得到ˆt 的概率。
首先有联合概率: 2221ˆˆˆˆ(,,|,,,)(|)(|,,)(|,,)Nn n n p tx p p t x p t x ασασσ=⎡⎤=⋅⎢⎥⎣⎦∏W t x W W W (0.5)用图论模型表示为:图 0-4要得到在输入ˆx以及已有模型下ˆt 的概率,将(0.5)式的W 积分出来即可:22ˆˆˆˆ(|,,,)(,,|,,,)p tx p t x d ασασ∝⎰x W t x W (0.6)1.2 条件独立多变量概率分布的一个重要概念就是条件独立(conditional independence )。
数学建模之图论模型讲解
![数学建模之图论模型讲解](https://img.taocdn.com/s3/m/927dfe242af90242a895e579.png)
过河问题:摆渡人Ferryman,狼wolf,羊sheep,卷 心菜cabbage过河问题 . 如何摆渡使得它们不能互 相伤害.
考试安排问题:学校期末考试安排n门课的考 试时间时,不能把同一位学生选修的两门课安排在 同一时间考试,问学校考试最少要进行多长时间?
信道分配问题:发射台所用频率从小到大编号 为1,2, …称为信道。用同一信道的两个台站相距得 少于一个常数d,问各台至少需同时使用几个不同 的信道?
A—R,A—C,A—T,
R—P,P—S,S—T,
T—B,B—D,D—C,
A
R—S,R—B,P—D,
S—C,S—D.
T
每种药品作为一个顶 点,不能放在一起的 S 连边。相邻顶点用不 同颜色着色。
R P
这一问题就是图论中的顶点着色问题。
至少需用3个房间:A,S,B/D,T,R/C,P
B C
D
例3 最短路问题(SPP-shortest path problem) 一名司机奉命在最短的时间内将一车货物从甲
问题变成了:能否从这个图上任一顶点出发,
经过每条边一次且仅一次而回到出发顶点。
--Euler-回路(圈)问题。
A
A
B
D
B
D
C
C
例2 药品存储问题
▪ 有8种化学药品A、B、C、D、P、R、S和T要放 进贮藏室保管,出于安全原因,下列各组药品不能 贮在同一室内:A—R,A—C,A—T,R—P, P—S,S—T,T—B,B—D,D—C,R—S, R—B,P—D,S—C,S—D,试为这8种药品设 计一个使用房间数最少的贮藏方案。
G[{v1,v2,v3}] G[{e3,e4,e5,e6}]
3) 若 V V,且 V ,以 V 为顶点集,以两端点 均在V 中的边的全体为边集的图 G 的子图,称 为G的由V 导出的子图,记为 G[V ] .
图论模型
![图论模型](https://img.taocdn.com/s3/m/929c246d647d27284b73515f.png)
常用术语
1) 边和它的两端点称为互相关联.
2邻的边.
3) 端点重合为一点的边称为环, 端点不相同的边称为连杆.
4) 若一对顶点之间有两条以上的边联结,则这些边 称为重边.
5) 既没有环也没有重边的图,称为简单图.
常用术语
本题给出了某县的公路网络图,要求的是在不 同的条件下,灾情巡视的最佳分组方案和路线.
将每个乡(镇)或村看作一个图的顶点,各乡 镇、村之间的公路看作此图对应顶点间的边,各条 公路的长度(或行驶时间)看作对应边上的权,所 给公路网就转化为加权网络图,问题就转化图论中 一类称之为旅行售货员问题,即在给定的加权网络 图中寻找从给定点O出发,行遍所有顶点至少一次 再回到点O,使得总权(路程或时间)最小.
解决此类问题的一般方法是不现实的,对于规模较大
的问题可使用近似算法来求得近似最优解.
2.图论的基本概念
1) 图的概念 2) 赋权图与子图 3) 图的矩阵表示 4) 图的顶点度 5) 路和连通
1) 图的概念
定义 一个图G是指一个二元组(V(G),E(G)),其中: 1) V (G) {v1,v2, ,v }是非空有限集,称为顶点集, 其中元素称为图G的顶点. 2) E(G)是顶点集V(G)中的无序或有序的元素偶对 (vi ,v j ) 组成的集合,即称为边集,其中元素称为边.
d (u3) 2
d (u3) 3
5) 路和连通
定义1) 无向图G的一条途径(或通道或链)是指 一个有限非空序列 W v0e1v1e2 ekvk ,它的项交替 地为顶点和边,使得对 1 i k,ei的端点是vi1和 vi , 称W是从v0到 vk 的一条途径,或一条 (v0,vk ) 途径. 整 数k称为W的长. 顶点 v0 和 vk 分别称为的起点和终点 , 而 v1,v2, ,vk1称为W的内部顶点.
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
A 为弧(带箭头的边)的集合, W (wij )nn 为邻接矩阵,其中
顶点vi v j的弧的权重, 当vi v j 有弧时 wij 0 或) , 当vi v j 无弧时. (
当 G (或 D )为非赋权图时,也可以看成赋权图,邻接矩阵
(5-2)
1, 当vi与v j间有边(弧)时, wij 0, 当vi与v j间无边(弧)时.
(5-3)
5.1.2 Matlab 中邻接矩阵的表示 在 Matlab 中邻接矩阵以稀疏矩阵的格式存储。 在数学上,稀疏矩阵是指矩阵中零元素很多,非零元素很少的矩阵。对于计算机的数 据结构,稀疏矩阵只是一种存储格式,只存放非零元素的行地址、列地址和非零元素本身的 值,即按如下方式存储 (非零元素的行地址,非零元素的列地址) ,非零元素的值。 在 Matlab 中无向图和有向图邻接矩阵的使用上有很大差异。 对于有向图,只要写出邻接矩阵,直接使用 Matlab 的 sparse 命令,就可以把邻接矩阵 转化为稀疏矩阵的表示方式,供 Matlab 工具箱使用。 对于无向图, 由于邻接矩阵是对称阵, Matlab 中只使用邻接矩阵的下三角元素, 即 Matlab 把截取的邻接矩阵的下三角矩阵,用 sparse 命令转化为稀疏矩阵。 在 Matlab 中,普通矩阵使用 sparse 命令变成稀疏矩阵,稀疏矩阵使用 full 命令变成普 通矩阵。 另外要注意,在数学上按照邻接矩阵的定义式(5-1) ,如果两个顶点间无边连接,对应 的元素为 0 或 。在 Matlab 工具箱中,由于使用稀疏矩阵,隐含着两个顶点间无边连接时, 邻接矩阵的对应元素为 0。 5.1.3 例题
0 0 0 A 0 0 0
1 1 0 0 0 0 1 0 0 0 1 0 0 1 0 1 0 0 0 1 1 0 1 0 1 0 0 0 1 0
v2 v4
v1
v6
v3
v5
图 5-2 用 Matlab 重新画出图 5-2。 clc, clear a=zeros(6); a(1,[2 3])=1; a(2,3)=1; a(3,[2 5])=1; a(4,[2 6])=1; a(5,[2 4 6])=1; a(6,5)=1; b=sparse(a); h=biograph(b,[],'ShowArrows','on') %生成图形对象 set(h,'LayoutType','equilibrium'); %设置属性:图形的布局是平衡的 view(h) %显示图形
v1
4 2 4 5 3
v2
1 3 4 4 2
v3
v1
1
v8
1
v0
1
v4
1
v8
v7
2
v2 1
v0
1
v3 1 v4 v5源自5 v72 v6 (a)
5
v5
2 3
v6
2
图 5-4 生成的最小生成树
求最小生成树的 Kruskal 算法的 Matlab 程序如下(用 Matlab 计算时,顶点 v0 , v1 ,, v8 分别编号为 1,2,,9 ) : clc, clear a=zeros(9); a(1,[2:9])=[2 1 3 4 4 2 5 4]; a(2,[3 9])=[4 1]; a(3,4)=1; a(4,5)=1; a(5,6)=5; a(6,7)=2; a(7,8)=3; a(8,9)=5; a=a'; %转成 Matlab 需要的下三角元素 a=sparse(a); %转换为稀疏矩阵 b=graphminspantree(a,'Method','Kruskal') %注意要写 Kruskal 算法,否则使用 Prim 算法 L=sum(sum(b)) %求最小生成树的权重 view(biograph(b,[],'ShowArrows','off','ShowWeights','on')) %画最小生成树, %Matlab2014B 和 2015A,'ShowWeights'有 bug,属性值为'off'时没有问题,属性值为'on'时 出错,但图形显示是正确的 5.4 最短路算法 求最短路的算法有 Dijkstra 标号算法和 Floyd 算法等方法。 Dijkstra 标号算法只适用于权 重是非负的情形。 5.4.1 Dijkstra 算法 给定赋权图 G (V , E,W ) ,其中 V {v1 ,, vn } 为顶点集合, E 为边的集合,邻接 矩阵 W ( wij ) nn ,求顶点 u0 到 v0 的最短距离 d (u0 , v0 ) 。记 l (vi ) 表示顶点 vi 的标号值。 Dijkstra 标号算法的计算步骤如下:
第5讲
图论模型
司守奎 烟台市,海军航空工程学院数学教研室 Email:sishoukui@ 5.1 图与网络的数据结构 5.1.1 图的概念 定义 5.1 非赋权图 一个非赋权图是由点集 V {vi } 和 V 中元素的无序对的一个集合 E {ek } 所构成的二 元组,记为 G (V , E ) , V 中的元素 v i 叫做顶点, E 中的元素 e k 叫做边。 定义 5.2 赋权图 赋权图(网络) G 是一个三元组,记为 G (V , E, W ) ,其中 V {v1,, vn } 为顶点集 合, E 为边的集合, W ( wij )nn 为邻接矩阵(或权重矩阵) ,其中
2
5.2 Matlab 图论工具箱的命令
Matlab 图论工具箱的命令见表 5-1。
表 5-1 命令名 graphallshortestpaths graphconncomp graphisdag graphisomorphism graphisspantree graphmaxflow graphminspantree graphpred2path graphshortestpath graphtopoorder graphtraverse Matlab 图论工具箱的相关命令 功能 求图中所有顶点对之间的最短距离 找无向图的连通分支,或有向图的强(弱)连通分支 测试有向图是否含有圈,不含圈返回 1,否则返回 0 确定两个图是否同构,同构返回 1,否则返回 0 确定一个图是否是生成树,是返回 1,否则返回 0 计算有向图的最大流 求图的最小生成树 把前驱顶点序列变成路径的顶点序列 求图中指定的一对顶点间的最短距离和最短路径 执行有向无圈图的拓扑排序 求从一顶点出发,所能遍历图中的顶点
然后按照边的排列顺序,取定 e1 (v0 , v2 ) , e2 (v2 , v3 ) , e3 (v3 , v4 ) , e4 (v1 , v8 ) ,
e5 (v0 , v1 ) , e6 (v0 , v6 ) , e7 (v5 , v6 ) , 由于下一个未选边中的最小权边 (v0 , v3 ) 与已选边 e1 , e2 构成圈, 所以排除。 选 e8 (v6 , v7 ) 。 得到图 5-4,就是图 G 的一颗最小生成树,它的权是 13。
5.3 最小生成树 5.3.1 prim 算法构造最小生成树 构造连通赋权图 G (V , E, W ) 的最小生成树,设置两个集合 P 和 Q ,其中 P 用于存放
G 的最小生成树中的顶点,集合 Q 存放 G 的最小生成树中的边。令集合 P 的初值为 ,集合 Q 的初值为 Q (空集) 。prim P {v1}(假设构造最小生成树时,从顶点 v1 出发) 算法的思想是,从所有 p P , v V P 的边中,选取具有最小权值的边 pv ,将顶点 v 加 入集合 P 中, 将边 pv 加入集合 Q 中, 如此不断重复, 直到 P V 时, 最小生成树构造完毕, 这时集合 Q 中包含了最小生成树的所有边。
顶点vi与v j 之间边的权重, (vi , v j ) E wij 0 或) , vi与v j 之间无边时. (
(5-1)
当顶点与顶点之间的关系是对称关系时,对应的图是无向图,除非特殊说明,我们所说 的图都是指无向图。当顶点与顶点之间的关系是非对称关系时,对应的图为有向图。 定义 5.3 有向图 有向图 D 是一个二元组,记为 D (V , A) ,其中 V 为顶点集合, A 为弧(带箭头的边) 的集合。 定义 5.4 赋权有向图 赋权有向图 D 是一个三元组,记为 D (V , A, W ) ,其中 V {v1,, vn } 为顶点集合,
prim 算法如下: (1) P {v1} , Q ; (2)while P ~ V 找最小边 pv ,其中 p P, v V P ;
P P {v} ; Q Q { pv} ;
end 5.3.2 Kruskal 算法构造最小生成树 科茹斯克尔(Kruskal)算法是一个好算法。Kruskal 算法如下: (1)选 e1 E ,使得 e1 是权值最小的边。 (2)若 e1 , e2 ,, ei 已选好,则从 E {e1, e2 ,, ei } 中选取 ei 1 ,使得 i) {e1, e2 , , ei , ei 1} 中无圈,且 ii) ei 1 是 E {e1, e2 ,, ei } 中权值最小的边。 (3)直到选得 e|V |1 为止。 5.3.2 最小生成树举例 例 5.3 一个乡有 9 个自然村,其间道路及各道路长度如图 5-3 所示,各边上的数字表 示距离,问架设通讯线时,如何拉线才能使用线最短。
(v0 , v6 ) 2 , (v5 , v6 ) 2 , (v0 , v3 ) 3 , (v6 , v7 ) 3 , (v0 , v4 ) 4 , (v0 , v5 ) 4 , (v0 , v8 ) 4 , (v1 , v2 ) 4 , (v0 , v7 ) 5 , (v7 , v8 ) 5 , (v4 , v5 ) 5