关于图的最小覆盖算法
- 格式:pdf
- 大小:264.12 KB
- 文档页数:4
第
19卷第
4期大 学 数 学
Vol.19,№
.4
2003年
8月
COLLEGEMATHEMATICSAug.2003
关于图的最小覆盖算法
张丽雅
, 熊振兴
(通信指挥学院
,武汉
430010)
[摘 要
]本文就数学建模课的教学过程中
,在“图的方法建模”一章中
,关于图的最小覆盖法提出启发式
算法
.用书中所给方法推出一个反例
,分析了其产生错误的原因
;通过对图的最小覆盖的概念的理解、结合分
析图的关联矩阵的特点
,给出了图的最小覆盖的启发式算法
.
[关键词
]图的覆盖
;图的最小覆盖
;关联矩阵
[中图分类号
]
O1571
5
[文献标识码
]
A
[文章编号
]16722
1454(
2003)
042
00812
04
数学建模是一门新课
,进入高等学校以来
,发展非常迅速
.对培养学生的数学素质
,提高学生分析问
题、解决问题的能力有重要的作用
.由高等教育出版社出版、清华大学姜启源编写的《数学模型》一书涉
及知识面广、内容丰富
,是便于教学
,可读性强的一本好书
.我们就该书“图的方法建模”一章中关于图的
最小覆盖给出启发式算法
,供大家参考
.
1 图的最小覆盖
11图与图的关联矩阵
图论中所说的图不是平面几何意义下的图形
,其图的顶点位置、边的长短曲直都可以任意选择
,它
所研究的重点是图
G中点与边、边与边的联接关系
.因此
,图论中的图
G的数学描述可以用一个有序三
元组
(
V,
E,Υ)记为
G,
其中顶点集为
V={
v
1,
v
2,…
,
v
n},边集为
E={
e
1,
e
2,…
,
e
n},Υ为顶点与边之间的关联函数
,有时图
G简
记为二元组(
V,
E)
.
计算机的发展
,使图的有关信息能更直观、更方便地以矩阵的形式储存在计算机中
,图的多种矩阵
图
1表示法中
,关联矩阵是最常用的之一
.
n个结点
m条边的关联矩阵记为
I=(
b
ij)
n×
m,其中元素
b
ij=
1,若
v
i与
e
j有关联
,
0,否则
.
例
1
5个顶点
7条边的图
G=(
V,
E)如图
1所示
,其关联矩阵为
A=v
1
v
2
v
3
v
4
v
51001000
1100100
0110010
0011001
0000111
e
1e
2e
3e
4e
5e
6e
7
[收稿日期
]20022
052
20分析以上关联矩阵
,我们会发现关联矩阵有两个特性
:
①每列必有两个
1,它表示与该列对应的边终止于哪两个顶点
;
②每行
1的个数表示与该行对应的顶点与哪些边相关联
.
21图的最小覆盖
图的覆盖是研究用图的若干顶点控制所有边的问题
.如在例
1中
,由顶点
v
1,
v
2,
v
3,
v
4可以控制所有
邻边(空着顶点
v
5)
;由顶点
v
2,
v
3,
v
4也可以控制所有邻边(空着顶点
v
5,
v
1)
.不难发现
,由顶点
v
1,
v
3,
v
4
或
v
1,
v
3,
v
5或
v
2,
v
4,
v
5也都可以控制所有的邻边
.称能控制图
G所有边的子顶点集为图
G的覆盖
.图的
覆盖中顶点个数最少的覆盖称为最小覆盖
.如例
1的子顶点集
{
v
1,
v
2,
v
3,
v
4}是图的覆盖
,但不是图的最
小覆盖
.而在图
1中用两个顶点控制它们相邻的边
,不能达到控制图
G所有边的目的
,所以三个顶点的
子顶点集
{
v
2,
v
3,
v
4}或
{
v
1,
v
3,
v
5}或
{
v
2,
v
4,
v
5}是图
G的最小覆盖
.
由以上分析可知
,一个图
G的最小覆盖不是唯一的
,但图的最小覆盖集合中元素的个数是相同的
.
如上图
G的最小覆盖集合元素的个数为
3.
由于关联矩阵表示的是图的顶点与边之间的关系
,所以图的最小覆盖问题可以通过关联矩阵求解
.
31图的最小覆盖算法
《数学模型》[1]
一书中给出从关联矩阵求图的最小覆盖方法如下
:
①在关联矩阵
A中
,取恰有两个
1的那一列中
1所在的行
,划去该行及该行中元素
1所在的列
,构成
关联矩阵
A的一个子矩阵
A
1,取划去的行所对应的顶点为最小覆盖集中元素
;
②在子矩阵
A
1中重复①中过程
;
③若存在
i,对任意的
k,有
v
i>
v
k(即对所有的
j,若
b
kj=1]
b
ij=1,则
v
i>
v
k)
,则
v
i取为最小覆盖集
元素
,过程结束
.在以上过程中划去的行所对应的顶点的集合即为最小覆盖的顶点集
.
按照以上方法可以求出图
G的最小覆盖(教材已给出)
.但是
,不是每次都能求出图
G的最小覆盖
,
以上图
G的关联矩阵
A为例举反例如下
.
例
2 按以上方法①中“取恰有两个
1的那一列中
1所在行”的条件
,由于关联矩阵的每一列都必有两
个
1,则可以在
A中任取一行
.因此
,
①在图
G的关联矩阵
A中
,取
v
1行
,划去
v
1行及其
1元素所在的
e
1,
e
4列
,得子矩阵
A
1为
A
1=v
2
v
3
v
4
v
510100
11010
01001
00111.
e
2e
3e
5e
6e
7
②在子矩阵
A
1中重复①中过程
;取
v
2行
,划去
v
2行及其
1元素所在的
e
2,e
5列
,得子矩阵
A
2为
A
2=v
3
v
4
v
5110
101
011.
e
3e
6e
7
③在子矩阵
A
2中重复①中过程
,取
v
3行,划去
v
3行及其
1元素所在的
e
3,
e
6列
,得子矩阵
A
3为
A
3=v
4
v
51
1.
e
7
④在子矩阵
A
3中
,存在
i=4,对任意
k=5(除了
v
4行
,其它任意行只有
v
5行)
,有
v
4>
v
5(即对所有的
边
j=7(此时只有
j=7一列)
,行
k=5的元素
b
57=1]
b
47=1,即有
v
4>
v
5)
.同理
,也存在
v
5>
v
4,即
v
4,
v
5
两顶点都满足方法的第③条
.因此
,两顶点任取一个为所求集合的元素
,过程结束
.得到两个顶点集(
v
1,
v
2,
v
3,
v
4)和(
v
1,
v
2,
v
3,
v
5)
,它们是图的覆盖
.但由前面分析的结论可知
,这两个顶点集合都不是图
G的
最小覆盖
.28大 学 数 学 第
19卷