关于图的最小覆盖算法

  • 格式: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)

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卷