求解任意图的最小支配集(MinimunDominatingSet)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

求解任意图的最⼩⽀配集(MinimunDominatingSet)
给定⼀个⽆向图G =(V,E),其中V表⽰图中顶点集合,E表⽰边的集合。

G的最⼩控制顶点集合为V的⼀个⼦集S∈V;假设集合R表⽰V 排除集合S后剩余顶点集合,即R∩S=∅,R∪S=V;则最⼩控制顶点集合S满⾜约束条件:R中任意⼀个顶点⾄少与S的⼀个顶点直接相连。

给定⼀个图,求出最⼩控制集。

控制集定义:
控制集⼜称⽀配集(Minimun Dominating Set),⽀配集是图G中的顶点集合S ⊆ V,满⾜对于任何顶点v∈V,要么v∈S,要么v与集合S中⾄少⼀个顶点相邻。

最⼩控制集:
对于⽀配集S0,不存在任何⽀配集S1,使|S1|<|S0|,则称S0是图G的最⼩⽀配集,γ(G)=|S0|称为图G的⽀配数;
最⼩⽀配集的性质:
1)求最⼩⽀配集问题被证明属于NP完全问题,即对于给定问题域的输⼊规模,⽬前尚⽆⾜够的⼿段证明该问题能够被判定在多项式时间内求解。

2)在含n个点的任意图中,若任意点的度⼤于等于3,则该图的最⼩⽀配集⼩于等于3n/8。

3)对于特殊图,如树,可使⽤贪⼼或dp的⽅法解决问题。

将图论问题转化为数学问题:
为了⽅便说明,我们定义图中节点vi的闭邻集为N[vi],若vi为⽀配点赋值为1,否则赋值为0。

根据⽀配集的定义,我们可以看出,图A中每个点要满⾜的条件即为N[i]的和⼤于等于⼀,也就是说,vi及其临集中⾄少含有⼀个⽀配点,⽽最⼩⽀配集则要求v1…vn的和最⼩,转化为数学公式,也就是特殊的0-1整数规划问题。

设计算法:
输⼊:⼀个任意图,格式为,第⼀⾏n表⽰n个节点,接下来任意⾏,每⾏两个数,a,b表⽰a到b有⼀条⽆向边。

输出:最⼩⽀配集(节点编号)
1)遍历邻接表,找出度为0的节点,直接加⼊⽀配集,度为1的节点,其相邻节点加⼊⽀配集,并加⼊⽀配集,度为1的节点记录为精确取值。

2)将邻接集合按从⼤到⼩排序,贪⼼选择最⼤的设为⽀配集,并动态维护邻接集合,直到⽀配集满⾜条件,将此⽀配集设为约束条件。

3)开始深度搜索,⾸先对该集合判断是否满⾜条件,若满⾜,和当前约束条件⽐较,若⼩于当前上界,代替约束条件。

4)按顺序遍历节点,若已经明确加⼊⽀配集则跳过该节点,若已经超过上界,返回,否则分别将该节点置为0和1,跳到步骤4。

这个算法的朴素时间复杂度是O(2^n)的,理论上⼀般要优于这个时间复杂度。

Grandoni算法的时间复杂度为O(2^0.61n),有兴趣的可以去看看论⽂:路纲, 周明天, 唐勇,等. 任意图⽀配集精确算法回顾[J]. 计算机学报, 2010, 33(6):1073-1087.。

相关文档
最新文档