一种基于拓扑势值排序的DSATUR图顶点着色方法技术

技术编号:18860962 阅读:666 留言:0更新日期:2018-09-05 14:26
本发明专利技术提出了一种基于拓扑势值排序的DSATUR图顶点着色方法,该方法能够在选择顶点着色时充分考虑顶点在整个图中的重要程度,相比DSATUR原始算法中考虑顶点度的方法,本发明专利技术每次选择当前饱和度最大的顶点进行着色,当出现多个饱和度最大的顶点时,则从中选择拓扑势最大的顶点,若又存在多个拓扑势最大的顶点,则按照字典顺序从中选择;本发明专利技术能够更恰当的选择顶点,优先选择图中最重要的顶点进行着色,在较少的搜索次数中取得最优解,对于大规模的图顶点着色问题,本发明专利技术提出的方法也能在指定的时间内达到更优解。

A method for vertex coloring of DSATUR graph based on topological potential ranking

A vertex coloring method of DSATUR graph based on topological potential ordering is proposed in this paper. The method can fully consider the importance of vertex in the whole graph when selecting vertex coloring. Compared with the method of considering vertex degree in DSATUR original algorithm, the method selects the vertex with the greatest current saturation for coloring each time, when the vertex is out. When there are many vertices with the greatest saturation, the vertices with the greatest topological potential are selected, and if there are many vertices with the greatest topological potential, the vertices are selected according to the dictionary order; the present invention can more appropriately select the vertices, preferentially select the most important vertices in the graph for coloring, and obtain the optimal solution in less search times. For large-scale vertex coloring problems, the proposed method can also achieve a better solution in a specified time.

【技术实现步骤摘要】
一种基于拓扑势值排序的DSATUR图顶点着色方法
本专利技术涉及图论领域中图顶点着色问题,提出一种基于拓扑势值排序的DSATUR图顶点着色方法。
技术介绍
给定一个无向图G=(V,E),其中V={v1,v2,…,vn}表示顶点集合,E表示边的集合,图的顶点着色问题(VertexColoringProblem,VCP)是要寻找一种方案为图中的每个顶点分配一个颜色,从而使相邻顶点分配的颜色不同且使需要的颜色种类数最少。一种可行的着色方案相当于把图G的顶点集合V划分为k个互斥的独立集,即V={V1,V2,…,Vk},独立集Vi中的所有顶点都着相同的颜色i(i=0,1,…,k),i表示不同颜色的索引标签。独立集是顶点集V的一个子集,其中的任意两个顶点都不相邻。为图G的所有顶点着色所需的最少的颜色种类数被称为图G的色数,记为χ(G),若χ(G)=k,则称图G为k-色图。在图论中,图的顶点着色问题是一个著名的NP-hard问题,在学术界吸引了很多研究者对其计算理论的关注,此外,它还可以应用到很多工程领域,包括资源调度,寄存器分配,空中交通和通信网络等,这些都表明解决图顶点着色问题的高效算法在实际生产中十分重要。到目前为止,为解决图顶点着色问题提出了很多精确算法,但精确算法通常只能够解决较小规模的随机图的着色问题,在实际应用中,通常需要处理具有成百上千顶点的图着色问题,随着图中顶点数量的不断增加,着色问题计算的困难程度不断加大,因此也产生了许多有效的启发式算法。最简单的启发式方法是贪心顺序算法,通常被称为SEQ算法,参考文献[1]MalagutiE,TothP.Asurveyonvertexcoloringproblems[J].InternationalTransactionsinOperationalResearch,2010,17(1):1-34,该算法依次为图中的每一个顶点选择一个可用的最小索引号的颜色进行着色,直到图中所有顶点都已着色。SEQ算法的结果依赖于顶点的着色顺序,不同的顶点顺序可能会产生不同的着色结果,因此,根据不同的规则进行顶点选择产生了不同的启发式算法,其中,最著名的是最大色度启发式算法,即DSATUR算法的贪心版本。该算法基于色度对顶点进行排序,顶点的色度指的是其相邻顶点所着颜色的种类数,也被称为该顶点的饱和度,每次着色时,选择饱和度最大的顶点进行着色,若存在多个饱和度最大的顶点,则从中选择在未着色图中度最大的顶点,若存在多个度最大的顶点,则从中按照字典顺序进行选择,这种顶点选择规则被表示为DSATURh。启发式算法应用于完整的枚举方案中可以产生精确算法,例如分支定界的DSATUR算法,参考文献[2]BrélazD.Newmethodstocolortheverticesofagraph[J].CommunicationsoftheACM,1979,22(4):251-256,该算法递归枚举所有的局部着色将着色问题分解为一个个新的子问题,局部着色指的是图的部分顶点对应的着色结果。对于给定步骤中使用k个颜色的局部着色,根据DSATURh规则选择下一个待着色的顶点,并为其分配一个当前已用的k种颜色或者分配一个新的颜色,那么在搜索树中该节点最多会产生k+1个分支。当到达一个叶节点时,则生成一个可行的着色方案,若该方案所需的颜色数小于当前的最小着色方案,即小于搜索上界UB,则更新UB。若当前的局部着色数k≥UB,那么相关的子问题将被丢弃(剪枝)。每次选择饱和度最大的顶点进行着色,将会产生一个对应一个团的初始局部着色,该团的大小被用作搜索的下界LB,当UB=LB时,取得最优解,搜索结束。之后,文献[3]中,SewellEC.Animprovedalgorithmforexactgraphcoloring[J].Cliques,coloring,andsatisfiability:secondDIMACSimplementationchallenge,1996,26:359-372,对DSATUR算法进行了改进,提出首先找到图中的最大团,并为其着色,将最大团的大小作为算法的LB(以下称为:最大团着色原则)。启发式算法的结果依赖于启发规则,且不能保证得到最优解,虽然可用于大规模的图顶点着色问题的近似求解,但是将启发规则应用于枚举方案产生的精确算法不仅可以在较小规模的着色问题中快速取得最优解,而且在大规模图顶点着色问题中,也可以通过设置算法运行时间,在保证时间效率的同时取得较优解甚至最优解,因此,在解决图顶点着色问题的算法中,精确算法更值得关注与研究。DSATUR算法由于其在随机图上较好的性能表现成为了精确算法中最为经典的算法,被作为单独算法或者更加复杂算法的一部分,广泛应用于解决图顶点着色问题或计算图顶点着色问题的上界。DSATUR算法在每次着色时选择饱和度最大的顶点,若出现多个饱和度最大的顶点,则从中选取在未着色图中度最大的顶点,顶点的度表示顶点的连接性,并不能充分反映顶点在图中的重要程度,依据顶点度的大小来选择顶点并不十分恰当。
技术实现思路
为了解决现有的原始DSATUR算法依据顶点度的大小来选择顶点在恰当性方面的缺陷,本专利技术提出一种改进的顶点选择策略,基于原始DSATUR算法和最大团着色原则,引入拓扑势的概念,充分考虑顶点在图中的重要程度,每次选择顶点着色时,从多个饱和度最大的顶点中选取拓扑势最大的顶点进行着色,由于在着色时能够更恰当的选择顶点,从而减少搜索次数,快速地取得最优解或在规定的时间内取得更优解。拓扑势的概念参考文献[4]LiD,DuY.Artificialintelligencewithuncertainty[M].CRCpress,2007。本专利技术提出的基于拓扑势值排序的DSATUR图顶点着色方法,包括以下步骤:步骤1、使用公式(1)为图中的所有顶点计算拓扑势:其中,mj表示顶点vj的自身属性,由于这里是对图的顶点进行着色,不需要考虑顶点的自身属性,所以mj取值为1;dij表示顶点vi和vj之间的最短路径长度;σ为影响因子,通过计算所有顶点拓扑势的最小熵来获得合适的影响因子σ,熵H可通过公式(2)来计算,其中为归一化因子,步骤2、找到图的最大团并为其着色,着色时每次选择拓扑势最大的顶点并为其分配一个索引号最小的可用的颜色,将最大团的大小作为搜索的下界LB,搜索的上界UB初始化为图中的顶点数;步骤3、为图中剩余顶点着色,每次选择当前饱和度最大的顶点,若存在多个具有最大饱和度的顶点,则从中选择拓扑势最大的顶点,若又存在多个拓扑势最大的顶点,则按照字典顺序从中选择,着色时,分配当前已用的有效颜色或者分配一个新的颜色进行分支,采用递归的方式遍历所有可能的情况;步骤4、每次着色时,若当前所用颜色数大于或等于UB,则进行剪枝;步骤5、当找到一个可行解时,更新UB为该可行解所用的颜色数,判断UB与LB是否相等,若不等,则继续递归搜索;若相等,则停止搜索,当前的解即为最终的着色方案。本专利技术具有以下技术效果:本专利技术提出的基于拓扑势值排序的DSATUR图顶点着色方法能够在选择顶点着色时充分考虑顶点在整个图中的重要程度,相比DSATUR原始算法中考虑顶点度的方法,本专利技术每次选择当前饱和度最大的顶点本文档来自技高网
...

【技术保护点】
1.一种基于拓扑势值排序的DSATUR图顶点着色方法,其特征在于,包括以下步骤:步骤1、使用公式(1)为图中的所有顶点计算拓扑势:

【技术特征摘要】
1.一种基于拓扑势值排序的DSATUR图顶点着色方法,其特征在于,包括以下步骤:步骤1、使用公式(1)为图中的所有顶点计算拓扑势:其中,mj表示顶点vj的自身属性,由于这里是对图的顶点进行着色,不需要考虑顶点的自身属性,所以mj取值为1;dij表示顶点vi和vj之间的最短路径长度;σ为影响因子,通过计算所有顶点拓扑势的最小熵来获得合适的影响因子σ,熵H可通过公式(2)来计算,其中为归一化因子,步骤2、找到图的最大团并为其着色,着色时每次选择拓扑势最大的顶点并为其分配一个索引号最小的可用的颜色,将最大团的大小作为搜索的下界...

【专利技术属性】
技术研发人员:蔡宁韩言妮刘鹤煜安伟徐震
申请(专利权)人:中国科学院信息工程研究所
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1