CMP设计分享 http://blog.sciencenet.cn/u/accsys 没有逆向思维就没有科技原创。 不自信是科技创新的大敌。

博文

如此简单就解决了世界难题你信吗?

已有 3689 次阅读 2017-1-9 07:54 |个人分类:P/NP问题|系统分类:科研笔记| 子句消去法, 顶点覆盖

顶点覆盖的子句消去法

姜咏江

图论中的顶点覆盖问题是说,给定一个N个点M条边的无向图G(点的编号从1N),问是否存在一个不超过K个点的集合S,使得G中的每条边都至少有一个点在集合S中。这实际上是求最小顶点覆盖问题。

本文介绍如何用子句消去法来来求解图论中的顶点覆盖问题。

1.       图的01句表示

将图中本顶点用1表示,与其关联顶点用0表示,就是图的01子句表示法。图101表达形式如表1所示。因为这个求解方法近似于本人发明的子句消去法,所以也将表1中的每一行叫做子句。

 

1  

 

1  1的子句表示

x1

x2

x3

x4

x5

x6

x7

x8

1

0

 

0

 

 

 

0

0

1

0

 

0

 

 

 

 

0

1

 

 

0

0

 

0

 

 

1

 

 

 

 

 

0

 

 

1

0

 

 

 

 

0

 

0

1

 

 

 

 

0

 

 

 

1

 

0

 

 

 

 

 

 

1

 

2.       顶点覆盖的子句消去法

01表示的图,要确定最小顶点覆盖的基本规则是:从关联边最多的顶点选择消去边和顶点,连接单边的顶点优先。

1中就可以看出顶点的关联度和连接的单边数量。x1x2x3的关联度都是3,但x12个单边,x3有一个单边,所以先选x1连同边一起消去(消去x1=1所在行和列),得到表2

2

x2

x3

x4

x5

x6

x7

x8

1

0

 

0

 

 

 

0

1

 

 

0

0

 

 

 

1

 

 

 

 

0

 

 

1

0

 

 

 

0

 

0

1

 

 

 

0

 

 

 

1

 

 

 

 

 

 

 

1

 2中关联度最高的是x3,因而选择x3消去,得到表3

3

x2

x4

x5

x6

x7

x8

1

 

0

 

 

 

 

1

 

 

 

 

0

 

1

0

 

 

 

 

0

1

 

 

 

 

 

 

1

 

 

 

 

 

 

1

 

 3中关联度最高的是x5,因而选择x5消去,得到表4

4

x2

x4

x6

x7

x8

1

 

 

 

 

 

1

 

 

 

 

 

1

 

 

 

 

 

1

 

 

 

 

 

1

 

 4中剩余的都是孤立点,说明不在表4中的那些顶点集合{x1,x3,x5}为最小顶点覆盖集。

3.       讨论

看来用01表示图来计算顶点覆盖十分简单。而且将顶点较高关联度逐一消去,能够轻易看出消去的是最少的顶点集合。

有兴趣的朋友,不妨任意画出一个图,来试试这种求最小顶点覆盖的方法。

2017-1-7

 

 

 

 

 



https://blog.sciencenet.cn/blog-340399-1026393.html

上一篇:构造一种新数据结构也许就能解决一个系列难题
下一篇:计算机的使用者应用者和设计制造者
收藏 IP: 1.180.215.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (7 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-12-31 01:30

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部