数学建模-图论篇

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 设有向图或无向图具有 n 个结点,则用 结点表、边表表示该有向图或无向图。 • 结点表:用数组或单链表的形式存放所有的结点。如果结点数n已知,则采用数
组形式,否则应采用单链表的形式。 • 边表(边结点表):每条边用一个结点进行表示。同一个结点的所有的边形成
它的边结点单链表。 • 优点:内存 = 结点数 + 边数 • 缺点:确定 i --> j 是否有边,最坏需耗费 O(n) 时间。无向图同一条边表示两次
A1 = {<A,B>, <A,C>,
A2 = {(A,B), (A,C),(B,D),
<C,D>, <D,A>}
(B,E>, (C,E),(D,E)}
图的定义和术语
有向图 G1
有向图G1的子图
A
B
A
A
B
A
B
C
D
无向图 G2
A
B
E
C
D
C AA
C
DC
无向图G2的子图
BA
BA
D B
E
E
DC
DC
D
图的定义和术语
有向图顶点v出度 是指以顶点v为
无向图G1
始点的弧
A
B
的数目,
E
记为OD (v)。

H
TD (v)=ID (v)+OD (v)。
M
C
D
有向图G2
A
B
n个顶点的 图中顶点度 和边的关系
n
2e TD(v )
i 1
i
C
D
图的存储结构
图的四种常用邻接矩阵 matrix)
结点出发的的第一条边的 边结点的地址。
•边结点表中的结点的表示:
info: 边结点的数据域,保存边
mark ivex ilink jvex jlink
info 的
权值等。
ivex: 本条边依附的一
jvex: 本条边依附的另 mark:边结点的标志域,用于标识
个结点的地址。
一个结点的地址。
该条边是否被访问过。
2C 3D
20 30 ∧
data firstin firstout
tailvex headvex hlink tlink
0
1
02

31∧
2
3
∧∧
3 2 ∧∧
图的存储结构
4、邻接多重表
•结点表中的结点的表示

data
firstedge
data:结点的数据域,保存结点的 数据值。
firstedge: 结点的指针域,给出自该
tailvex: 本条边的出发结点
hlink:出发结点相同的边
的地址。
中的下一条边的地址。
headvex:本条边的终止结点
tlink:终止结点相同的边
的地址。
中的下一条边的地址。
图的存储结构
3、十字链表 •实例:
向图 G1
A
B
•用途:用于有向图, 查询 进入结点和离开结点 的边容易。
C
D
A 0
1B ∧
顶点的入度=矩阵中对应该顶点的列中非零元 素的个数。
2019/5/12
12
V1 V2 V3 V4 入度 出度
V1
V3
V1 0 0 1 0 1
1
V2 0 0 0 1 0
1
V3 0 0 0 1 1
1
V2
V4
V4 1 0 0 0 2
1
度数 V1 V2 V3 V4
V1 0 1 1 1
3
V1
V3
V2 1 0 0 1
a
A
B
A BCD A ∞ a b ∞∞
b
a
b
表示成右图矩阵
B ∞∞ b∞∞ C ∞b a∞
b
C
D
D a∞
a
优点:判断任意两点之间是否有边方便,仅耗费 O(1) 时间。 缺点:即使 << n2 条边,也需内存 n2 /2 单元,太多; 仅读入数据耗费 O( n2 ) 时间,太长。
图的存储结构
2、邻接表(adjacency list)
图 论 篇(1)
1 、涉及图论的历年数学建模题目
2、图论简介
3、图的定义和术语 4、图的存储结构 5、最短路径算法 6 图论的应用实例
2、历年数学建模与图论方法有关题目
图论方法在历年数学建模中的应用经常出现,下面总结如下表
年份 题目 93B 足球队排名
解法 图论、层次分析、整数规划
94A 逢山开路
•连通:顶点v至v‘’ 之间有路径存在
•强连通图:有向图图 G 的任意两点之间都是连通的,则称 G 是强连通图。
•强连通分量:极大连通子图
有向图G
有向图G的两个强连通分量
A
B
A
B
C
D
C
D
图的定义和术语
•生成树:极小连通子图。包含图的所有 n 个结点,但只含图的 n-1 条边。在生成树中添 加一条边之后,必定会形成回路或环,但是含有n-1条边的图不一定是生成树
•连通分量:极大连通子图
无向图G
A
B
EFG
H
IJ
A E
H
无向图G的三个连通分量
B
FG
IJ
K M
C
L D
M
C
D
K
L
图的定义和术语
有向图的连通性
•路径:在有向图G=(V,{E})中由顶点v经有向边至v‘’ 的顶点序列。
•回路或环:第一个顶点和最后一个顶点相同的路径。
•简单回路或简单环:除第一个顶点和最后一个顶点之外,其余顶点不重复出现的回路。
info
adjvex
nextarc
条边依附的另一结点(非
出发结点)的地址。
nextarc:结点的指针场,给出自该
结点出发的的下一条边的
边结点的地址。
图的存储结构
2、邻接表(adjacency list)
•实例:
data firstarc
adjvex nextvex
向图 G1
0A
A
B
1B
null
2C
A
B
E
表示成右图矩阵
C
D
011 00 100 11 1000 1 0100 1 0111 0
图的存储结构
1、邻接矩阵和加权邻接矩阵(labeled adjacency matrix)(续)
•有向图的加权邻接矩阵
设有向图具有 n 个结点,则用 n 行 n 列的矩阵 A 表示该有向图;
并且 A[i,j] = a , 如果i 至 j 有一条有向边且它的权值为a。A[i,j] =无穷,如果 i 至 j 没有一条有向边。
边表空间浪费一倍。有向图中寻找进入某结点的边,非常困难。
结点表中的结点的表示: • 用数组
data
firstarc
data:结点的数据场,保存结点的数据值。 firstarc:结点的指针场,给出自该结点出发的
的第一条边的边结点的地址。
图的存储结构
2、邻接表(adjacency list)
结点表中的结点的表示:续 • 用单链表
1
3
null
2
null
寻找进入结点的边非常困难!!!
3D
0
null
改进:建立逆邻接表或十字链表
C
D
无向图 G2
A
B
E
C
D
Adjvex 指针场之值为相应结点 数的组元素的下标!!!
data firstarc
0A
1
2
null
1B
0
3
2C
0
4
null
3D
1
4
null
4E
1
2
六条边却用了 12 个边结点!!!
data:结点的数据域,保存结点的 数据值。
firstin: 结点的指针域,给出自该 结点出发的的第一条边的 边结点的地址。
firstout:结点的指针域,给出进入该 结点的第一条边的 边结点的地址。
info tailvex headvex hlink
info:边结点的数据域,保存边的 tlink
权值等。
•边的权值,边有权的图称之为网络。 邻接点:边用顶点的无序偶对(vi, vj)来表示,称顶点vi和顶点vj互为邻接点
其 它
•稠密图、稀疏图。若一个图接近完全图,称为稠密图;称边数很少的图为稀疏图
术 •无向图结点的度:指依附于某顶点v的边数 记为TD (v)
语 •有向图结点的出度和入度 :顶点v的入度是指以顶点 为终点的弧的数目。记为ID (v)
11B 交巡警服务平台的设置与调度 0-1规划、计算机模拟、图论
13B 碎纸片的拼接复原
最优Hamilton圈(即TSP)优化模型、图论、 聚类分析
Graph Theory in Mathematical Modeling
2、图论简介
现实生活中许多问题都可归结为由点和线组成的 图形的问题,例如,铁路交通图,公路交通图, 市区交通图,自来水管网系统,甚至电路图在研 究某些问题时也可简化为由点和线组成的图形。 如果我们用点表示这些具体事物,用连接两点的 线段(直的或曲的)表示两个事物的特定的联系, 就得到了描述这个“图”的几何形象。 图论就是研究这些由点和线组成的图形的问题。
注意: A[i,i] = 0。出度: i行之和。入度: j列之和。
A
B
011 0
表示成右图矩阵
000 0 000 1
C
D
100 0
11
邻接矩阵表示法对求顶点的度很方便。
在无向图中:
顶点的度数=矩阵中对应该顶点的行或列中非 零元素的个数。
在有向图中:
顶点的出度=矩阵中对应该顶点的行中非零元 素的个数。
data
firstarc
nextvex
边结点表中的结点的表示:
data:结点的数据场,保存结点的 数据值。
firstarc:结点的指针场,给出自该 结点出发的的第一条边的 边结点的地址。
nextvex:结点的指针场,给出该结 点的下一结点的地址。
info:边结点的数据场,保存边的 权值等。
adjvex:边结点的指针场,给出本
ilink: 依附于该结点(地
jlink: 依附于该结点(地
址由ivex给出)的
址由jvex给出)的
边中的下一条边的
边中的下一条边的
的地址。
的地址。
图的存储结构
4、邻接多重表
•实例:
无向图 G2
A
B
E
•用途:用于无向图,边表中 的边结点只需存放一 次,节约内存。
C
D
mark ivex ilink jvex jlink
2图的定义和术语
有向图 G1
A
B
无向图 G2
A
B
E
C
D
C
D
• 结点或 顶点: A
B • 结点或 顶点: A
B
• 有向边(弧)、弧尾或初始结 点、弧头或终止结点
• 无向边或边
A
B
A
B
• 有向图:G1 =(V1,{A1}) V1 = {A,B,C,D}
• 无向图:G2 =(V2,{A2}) V2 = {A,B,C,D,E}
data firstedge
0A
0
1
1B
2C
2
4
3D
4E
4
1
0∧2∧ 1∧3∧
3
4∧
练习:给出下图的1)邻接矩阵、2)邻接表和3)十字链表表表示 23
A B C
Data fin fout
D
1) 0 1 0 1 0 0
0 0 1 0 1 0
E
0 0 0 0 0 1
Edge 0 1 0 0 1 0
改进:建立邻接多重表
adjvex nextvex
4
null
3
null
图的存储结构
2、邻接表(adjacency list) •逆邻接表实例:
有向图 G1
A
B
0A 1B 2C
3D
C
D
3
0^ 0^ 2^
2 ^l
图的存储结构
3、十字链表 •结点表中的结点的表示:
data
firstin
firstout
•边结点表中的结点的表示:
无向图的连通性
•路径:在无向图G=(V,{E})中由顶点v至v‘’ 的顶点序列。
•回路或环:第一个顶点和最后一个顶点相同的路径。
•简单回路或简单环:除第一个顶点和最后一个顶点之外,其余顶点不重复出现的回路。
•连通:顶点v至v‘’ 之间有路径存在
•连通图:无向图图 G 的任意两点之间都是连通的,则称 G 是连通图。
图论、插值、动态规划
94B 锁具装箱问题
图论、组合数学
95B 天车与冶炼炉的作业调度
图论,动态规划、排队论、
97B 截断切割
图论、组合优化
98B 灾情巡视的最佳路线
图论、组合优化
99B 钻井布局
0-1规划、图论
00B 管道订购
图论,优化
04A 奥运会临时超市网点设计
图论,组合优化
07B 公交车问题
多目标规划、动态规划、图论、0-1规划
2
V3 1 0 0 0
1
V2
V4
V4 1 1 0 0
2
2019/5/12
图的存储结构
1、邻接矩阵和加权邻接矩阵(labeled adjacency matrix)(续) •无权值的无向图的邻接矩阵
设无向图具有 n 个结点,则用 n 行 n 列的布尔矩阵 A 表示该无向图; 并且 A[i,j] = 1 , 如果i 至 j 有一条无向边;A[i,j] = 0如果 i 至 j 没有一条无向边 注意: A[i,i] = 0。i结点的度: i行或i列之和。上三角矩阵或下三角矩阵。
邻接表
十字链表
邻接多重表
1、邻接矩阵和加权邻接矩阵(labeled adjacency matrix) •无权值的有向图的邻接矩阵
设有向图具有 n 个结点,则用 n 行 n 列的布尔矩阵 A 表示该有向图;
并且 A[i,j] = 1 , 如果i 至 j 有一条有向边;A[i,j] = 0如果 i 至 j 没有一条有向边
无向图G
A
B
E
H
无向图G的生成树
A
B
E
H
M
C
D
M
C
D
有向图的生成树:有若干个有向树组成,含有图中的全部 顶点,但是构成若干个互不相交的有向树
图的定义和术语
•完全 图:有 n(n-1)/2 条边的无向图。其中 n 是结点个数。
•有向完全图:有 n(n-1) 条边的有向图。其中 n 是结点个数。
图 的
F
0 0 0 0 0 0
0 0 0 0 1 0
0A ^ 1B
C
2
3D
E
^
4
F
5
01 12^ 2 5 ^^ 3 1^
5 4^ ^
2019/5/12
相关文档
最新文档