2. 兰州交通大学 应用数学研究所, 兰州 730070
2. Institute of Applied Mathematics, Lanzhou Jiaotong University, Lanzhou Gansu 730070, China
图染色是图论中具有重要实际价值和理论意义的课题之一,起源于著名的“四色猜想”,计算机通信、交通定向、物品存储、组合优化等现实生活中的很多问题都可以用图染色的方法来解决,具有很好的应用价值,而均匀染色特别地被用来解决一些如任务调度、分区和负载平衡等有均匀要求的问题。近现代以来,一些数学工作者着力研究了图的染色问题,文献[1-5]在点可区别边染色的基础上提出了邻点可区别全染色、点可区别全染色、距离为β的点可区别全染色、邻点可区别均匀全染色、邻点可区别均匀V-全染色(Adjacent Vertex-Distinguishing Equitable V-Total Coloring,AVDEVTC) 等一系列的概念与猜想,同时还有其他相关概念和研究成果[6-16]。图的染色问题一般都是NP问题,常见的智能算法如遗传算法、蚁群算法、神经网络等应用于解决图的染色问题时,一般仅限于解决单一约束条件的图染色问题,而面对如邻点可区别均匀V-全染色[4-5]这样的多约束条件的图染色问题时,普通智能算法就表现出了很大的局限性。目前笔者还未在公开发表的文章中找到利用计算机算法来解决图的邻点可区别均匀V-全染色问题的介绍,因此在以往的研究基础上,提出一种改进的基于多目标优化的染色算法来解决新的问题:即图G的邻点可区别均匀V-全染色问题。算法设计了一个总目标函数和四个子目标函数来对应AVDEVTC的多个约束条件,在染色矩阵上通过每个点的颜色集合的迭代交换操作,使得每个子目标函数都达到最优,进而满足总目标函数的要求。通过大量的实验和分析表明,该算法有着很高的计算效率且能够正确地得到邻点可区别均匀V-全色数(Adjacent Vertex-Distinguishing Equitable V-Total Chromatic Number,AVDEVTCN)[4-5]和染色后的图的邻接矩阵。最后还给出了大量的测试结果,为以后的图的染色相关定理或猜想的证明提供了基础研究数据。
文中的图为简单无向连通图。对于任意的无向图G(V,E),V(G)表示图G的顶点集,E(G)表示图G的边集,C(v)表示顶点v和其关联边所用颜色构成的集合,C(v)表示顶点v的色补集合(即未使用颜色集合),Δ表示图G的最大度。
定义1[5] 设G(V,E)是阶数不小于2的简单连通图G,k为正整数,f是从V(G)∪E(G)到C={1,2,…,k}的映射,如果f满足如下条件:
1) ∀uv∈E(G),u≠v, f(u)≠f(uv),f(v)≠f(uv);
2) ∀uv,uw∈E(G),v≠w,有f(uv)≠f(uw);
3) ∀uv∈E(G),C(u)≠C(v);
则称f是图G的k-邻点可区别V-全染色,简记为k-AVDVTC,并将χvt(G)=min{k|k-AVDVTC of G}称为图G的邻点可区别V-全色数,其中C(u)={f(u)}∪{f(uv)|uv∈E(G)}。
定义2[4-5] 假设f是图G的k-AVDVTC,若同时满足|Ti|-|Tj|≤1(Ti、Tj分别表示颜色i、j的使用次数),则称f是G的一个邻点可区别均匀V-全染色,简记为k-AVDEVTC。称χavdevtc(G)=min{k|G有k-AVDEVTC}为G的AVDEVTCN。
猜想1 对于简单图G,Δ+1≤χavdevtc(G)≤Δ+2。
1 图的邻点可区别均匀V-全染色算法 1.1 算法描述本文算法的基本思想是:先给顶点随机地染色,任意两点所染颜色可以相同;顶点染色完成以后,剔除顶点已经使用的颜色,用剩下的颜色再给顶点相关联的边随机染色,并利用目标函数判断染色结果是否正确,若不满足,按照算法的规则逐步调整存在冲突的染色结果。算法统计了迭代次数并检验了染色结果,经过有限次的颜色调整和交换,最终的染色结果能满足目标函数的要求。具体描述如下:
算法 邻点可区别均匀V-全染色算法。
输入 图G的邻接矩阵;
输出 图G的AVDEVTC矩阵。
1) 给顶点随机染色。
2) 剔除顶点染色已经用过的颜色,用剩下的颜色给顶点相关联的边随机染色,显然点和相关联的边所染颜色是不同的,即f2(x2)。
3) 解决边染色冲突。根据每个顶点的色补集合数量的大小生成排序集arrsort[],依次从arrsort[]中取出一个顶点vi与其后的所有顶点vj,一一比较两个顶点的色集合,若满足以下要求:
a) 两点之间有边,即color[vi][vj]≠0,vi≠vj;
b) vi与vj的色补集合有交集,即C(vi)∩C(vj)≠∅;令temp1=f(vivj)。若(C(vi)∩C(vj)={a1,a2,…,ai}(vivj∈E(G)),则令f(vivj)=f(vjvi)=a1,并调整色补集合。第一轮变换结束之后,计算f1(x1)是否为0,如果不为0,重新生成排序集arrsort[],继续变换颜色,直到f1(x1)=0。
4) 解决顶点的色集合冲突。重新生成排序集arrsort[],依次从中取出一个点vi与其后的度相同的点vj作比较。若:(C(vi)∩C(vj)={q1,q2,…,qi}(vivj∈E(G)),则令f(vivj)=f(vjvi)=q1,并调整色补集合。
计算f3(x3)是否为0,如果不为0,重复步骤4) ,再次生成排序集,解决色集合冲突,直到f3(x3)=0。
5) 计算每种颜色的使用次数并降序排列,存到数组num[][]中,再计算任意两个颜色使用次数的差值,判断|Ti|-|Tj|≤1是否成立。
6) 若|Ti|-|Tj|≤1不成立,尝试调整边的颜色:生成排序集arrsort[],从中取出两点vfirst和vnext,要求这两点必须满足以下三个条件:
a) 两点之间有边;
b) 两点之间的颜色为使用最多的颜色maxcol;
c) 两点的色补集合有交集,且交集中的元素含有使用次数最少的颜色mincol;
则将满足条件的两点之间的边颜色maxcol替换为mincol,并修改色补集合。重复步骤6) ,直至f4(x4)=0。
7) 计算总目标函数F(X)若等于0,则图G的AVDEVTC成功,输出结果集,否则重复上述染色步骤。
利用图的邻点可区别均匀V-全染色算法能够实现随机图的AVDEVTC。
1.2 构建多目标优化模型多目标优化算法流程如图 1所示。
根据图G的AVDEVTC的定义,该算法必须满足如下几个子目标:①相邻边染不同色;②顶点与其关联边染不同色; ③相邻顶点的色集合不同;④任意两种颜色的使用次数相差不超过1。由以上4个条件可以构造出算法的多目标函数:
$F(\mathit{\boldsymbol{X}})={{f}_{1}}({{x}_{1}})+{{f}_{2}}({{x}_{2}})+{{f}_{3}}({{x}_{3}})+{{f}_{4}}({{x}_{4}})$ |
决策向量为:
$\mathit{\boldsymbol{X}}=\left( {{\mathit{\boldsymbol{X}}}_{1}},\text{ }{{\mathit{\boldsymbol{X}}}_{2}},\text{ }{{\mathit{\boldsymbol{X}}}_{3}},\text{ }{{\mathit{\boldsymbol{X}}}_{4}} \right)$ |
决策变量X1、X2、X3、X4如下:
1) 根据条件①,图G一共包含m条边(e1,e2,…,em),因此决策变量X1=(e1,e2,…,em)。
2) 根据条件②,图G一共包含n个顶点(v1,v2,…,vn),因此决策变量X2=(v1,v2,…,vn)。
3) 根据条件③,图G共有n个顶点,色补集合(C1,C2,…,Cn),因此决策变量X3=(C1,C2,…,Cn)。
4) 根据条件④,完成染色所需的颜色分别为(1,2,…,k),因此决策变量X4=(1,2,…,k)。
决策变量上下界分别为:u=(m,n,n,k),l=(1,1,1,1) 。
下面构建目标函数:
1) 边染色目标函数。
对任意相邻的两条边e1,e2∈E(G),令:
${{y}_{1}}({{e}_{1}},{{e}_{2}})=\left\{ \begin{matrix} 1, & f({{e}_{1}})=f({{e}_{2}}) \\ 0, & 其他 \\ \end{matrix} \right.$ |
则有
2) 点边目标函数。
对任意边uv∈E(G),令:
${{y}_{2}}(v,e)=\left\{ \begin{matrix} 1, & f(uv)=f(u)或者f(uv)=f(v) \\ 0, & 其他 \\ \end{matrix} \right.$ |
则有
3) 色集合目标函数。
对于相邻的两点u,v∈V(G),有C(u)≠C(v)。色集合约束函数定义如下:
${{f}_{3}}({{x}_{3}})=\sum\limits_{uv\in E(G)}{{{y}_{3}}(u,v)}$ |
其中:
4) 均匀目标函数。
均匀目标函数的约束条件是任意两个颜色的使用次数相差小于或等于1。设f为E(G)到色集合C={1,2,…,k}的映射;Ti表示图G的染色中i色使用次数,Ti={f(uv)|f(uv)=i,uv∈E(G)};Tj表示图G的染色中j色的使用次数,Tj={f(uv)|f(uv)=j,uv∈E(G)}。所以均匀目标函数定义如下:对任意两点构成的边uv∈E(G),令
${{y}_{4}}(i,j)=\left\{ \begin{matrix} 1, & \left| \left| {{T}_{i}} \right|-\left| {{T}_{j}} \right| \right|>1 \\ 0, & 其他 \\ \end{matrix} \right.$ |
则有
5) 总目标函数。
${{Q}_{avdevtc}}=\min F(\mathit{\boldsymbol{X}})$ | (7) |
其中F(X)=f1(x1)+f2(x2)+f3(x3)+f4(x4)。F(X)代表所染颜色不满足AVDEVTC四个条件的总数量,当且仅当F(X)=0时总目标得到最优解,即染色成功。
2 染色实例本文选取了一个8个顶点的随机图来进行测试。
2.1 初始化随机图G生成8个顶点的随机图的邻接矩阵,如表 1所示,其中d(vi)表示顶点i的度。
统计各个顶点的度,并确定初始色数k,由于图中最大度为Δ=7,而7度顶点的个数为1,则全染色所需颜色数k=Δ+1=7+1=8。各个顶点的度为7、5、4、3的个数分别为1、2、2、3。
2.2 顶点染色首先按规则给顶点染色,从1~8中随机地选择颜色为各个顶点进行染色,顶点的颜色可以相同。
2.3 边预染色在点染色完成后对边随机地预染色,剔除顶点染色用的颜色,用剩下的颜色给顶点相关联的边染色。初始染色矩阵如表 2所示。
由初始染色矩阵可得到各顶点的色补集合,即C(v1)到C(v8)依次为:{2,5,6,7},{3,4,5,6},{3,4,6,7},{∅},{6,7,8},{6,8},{1,2,5,6,8},{2,5,6,7}。
2.4 查找冲突集若d(vi)+|C(vi)|≠k-1,则说明边染色存在冲突,即染色不正常,冲突情况如表 3所示。
根据初始染色矩阵,可以得到冲突集:arrsort[]={v7,v1,v2,v3,v8,v5,v6,v4},依次从arrsort[]中取出一个点与后边arrsort中的所有点一一比较,按照算法规则,对存在冲突的颜色进行第一轮交换。依照规则,从v7开始,依次与其后面的顶点进行比较,v7与v8之间有边,且C(v7)∩C(v8)={2,5,6},则令f(v7v8)=f(v8v7)=2,再修改色补集合,即:C(v7)={1,3,5,6,8},C(v8)={3,5,6,7}。表示为: f(v7v8):3→2(指将边v7v8的颜色由3调整为2,下同),f(v7v6):7→6,f(v1v2):1→5,f(v1v8):8→6,f(v2v3):8→3,f(v3v5):2→6,f(v3v6):5→7,f(v8v5):4→7,f(v8v6):1→5。
经过本轮变换,conflict[0][0](冲突集个数)=0,经检测,点和边、边和边、相邻顶点的色集合的染色冲突已经解决。染色结果如表 4所示。
表 4所示染色结果对应的色补集合C(v1)到C(v8)依次为:{1,2,7,8},{1,4,6,8},{2,4,5},{∅},{2,4,8},{1,8},{1,3,5,8},{3,4}。
2.6 检验色数是否均匀检验颜色使用情况是否均匀,颜色为6、7、1、2、3、4、5、8的使用次数分别为4、4、3、3、3、3、3、2。可以看出,颜色使用不均匀,则按照算法规则继续调整。颜色6使用了4次,颜色8使用了2次,因此尝试将一个边的颜色由6改为8。按照算法,找到了边v7v6的颜色为6,将其颜色调整为8,即f(v7v6):6→8。
再次检验各个颜色的使用情况,颜色7、6、1、2、3、4、5、8的使用次数分别为4、3、3、3、3、3、3、3。可以看出,各个颜色的使用次数相差不超过1,即f4(x4)=0;再次检验染色结果是否满足AVDEVTC的所有条件,经检验:F(X)=f1(x1)+f2(x2)+f3(x3)+f4(x4)=0+0+0+0=0,由此可得AVDEVTC成功。最终的染色结果如表 5所示。
表 5所示染色结果对应的色补集合C(v1)到C(v8)依次为:{1,2,7,8},{1,4,6,8},{4,2,5},{∅},{2,4,8},{1,6},{1,3,5,6},{3,4}。
3 实验结果数据集利用该算法得到了大量的实验结果,一方面用来验证相关猜想的成立,另一方面也为相关的研究提供基础数据支持。测试结果主要包括以下5部分:
1) 在1 000个点以内,测试了110万个图,其色数为Δ、Δ+1、Δ+2、Δ+3的图的数量如表 6所示。
2) 对3≤n≤8内的所有图进行了测试,如表 7所示,其中:3至7个顶点内的所有图为经过多方面人工校对过的非同构图最新数量,顶点8的图为包括同构图在内的由图生成算法生成的所有简单连通图数量。
3) 鉴于篇幅限制,只从5~8个点选择了20个图测试了度序列与色数和边数。在表 8中,每一行代表一个图,“度序列”下的数字指的是该图中的顶点度分布,“均匀染色”下的数字指的是该色数的使用次数。
4) 从20到400个点之间测试了100万个图,由于篇幅限制,仅列举了72个图的染色结果,色数和边密度的变化曲线如图 2所示。
从图 2可以看出,色数随着边密度和点数的增大而增大。
结论1 8个顶点以内的所有简单连通图都存在AVDEVTC。
结论2 对于简单图G,当3≤n≤8时,Δ+1≤χavdevtc(G)≤Δ+2。
5) 运行时间计算。使用此算法对500~1 000个顶点的随机图进行了测试,由于篇幅所限,仅列举了边密度为0.1时运行部分单个图的运行时间(由于最终的染色矩阵要写进txt文件,所以程序运行时间略有延长),点数为500、600、700、800、900、1 000的时间分别为16.225 s、19.382 s、121.025 s、135.116 s、320.026 s、420.359 s。同时测试了7个顶点以内的所有非同构图以及8个顶点的所有图,运行时间如表 9所示。可以得出,该算法能够在较短的时间内得到染色结果。
依据算法步骤,影响算法时间复杂度的因素主要包括以下几点(n代表图G的点数):
1) 生成随机图。算法用m与n的矩阵存储随机图,所以该步最坏的时间复杂度是:T1(n)=O(n2)。
2) 给顶点染色。依据染色规则,每个顶点仅染色一次,因此点染色的时间复杂度是:T2(n)=O(n)。
3) 边的预染色。此步骤的时间复杂度取决于边的个数,在最坏的情况下,边的个数为n阶完全图的个数,所以这一步最坏的时间复杂度是:T3(n)=O(n2)。
4) 解决边染色冲突。依据arrsort[]数组中顶点的顺序逐步迭代交换,使得图中所有边的染色均达到正常,这一步最坏的时间复杂度为:T4(n)=O(n3)。
5) 调整色集合冲突。通过调用preexchange()函数得到最佳的处理色集合冲突的交换方式,这一步最坏的时间复杂度为:T5(n)=O(n3)。
6) 解决均匀染色问题,对于n个顶点的随机图G,令调整的最大次数为max,一般情况下max不超过n,则最坏复杂度为T6(n)=O(max×n2)。
综合上述分析,本算法的时间复杂度为O(n3)。
5 结语本文提出了一种启发式优化算法来解决新问题:即图的邻点可区别均匀V-全染色问题。算法设计了一个总目标函数和四个子目标函数来对应AVDEVTC的多个约束条件,在染色矩阵上通过每个点的颜色集合的迭代交换操作,使得每个子目标函数都达到最优,直到满足总目标函数的要求。本算法较以往的人工染色而言节约了大量的人力和时间成本,而且能够在很短的时间内正确得到人工染色所得不到的上百个顶点以上图的染色结果。利用该算法,可以快速地获得大量的研究数据,验证了G的邻点可区别均匀V-全染色的一些相关猜想,为G的邻点可区别均匀V-全染色其他的相关定理和猜想的证明提供了基础数据支持,未来将会继续实现算法来解决图G的相关可区别染色问题。
[1] | ZHANG Z, LIU L, WANG J. Adjacent strong edge coloring of graphs[J]. Applied Mathematics Letters, 2002, 15 (5) : 623-626. doi: 10.1016/S0893-9659(02)80015-5 |
[2] | ZHANG Z, QIU P, XU B, et al. Vertex-distinguishing total coloring of graphs[J]. Ars Combinatoria, 2008, 87 : 33-45. |
[3] | BURRIS A C. Vertex-distinguishing edge-colorings[D]. Memphis:Memphis State University, 1993:1-9. |
[4] | ZHANG Z, CHEN X, LI J, et al. On adjacent-vertex-distinguishing total coloring of graphs[J]. Science in China Series A:Mathematics, 2005, 48 (3) : 289-299. doi: 10.1360/03YS0207 |
[5] | 王双莉, 张荔, 李沐春. 若干冠图的邻点可区别的V-全染色[J]. 兰州交通大学学报, 2012, 31 (4) : 138-141. ( WANG S L, ZHANG L, LI M C. The adjacent vertex distinguishing V-total coloring of some corona graphs[J]. Journal of Lanzhou Jiaotong University, 2012, 31 (4) : 138-141. ) |
[6] | 马刚. 一些积图的点可区别均匀边色数[J]. 数学杂志, 2014, 34 (5) : 1005-1009. ( MA G. On the vertex-distinguishing-equitable edge charomatic number of some product graphs[J]. Journal of Mathematics, 2014, 34 (5) : 1005-1009. ) |
[7] | 林锉云, 董家礼. 多目标优化的方法与理论[M]. 长春: 吉林教育出版社, 1992 : 1 -16. ( LIN C Y, DONG J L. Multi-objective Optimization Method and Theory[M]. Changchun: Jilin Education Publishing House, 1992 : 1 -16. ) |
[8] | 严谦泰, 姚艳红. 图的一般邻点可区别均匀边染色和均匀全染色[J]. 数学的实践与认识, 2015, 45 (10) : 179-184. ( YAN Q T, YAO Y H. On the adjacent spectral radius of cycles with fixed weight sets[J]. Mathematics in Practice and Theory, 2015, 45 (10) : 179-184. ) |
[9] | 宋慧敏, 龙和平, 吴建良. Halin图的均匀边染色[J]. 山东大学学报:理学版, 2003, 38 (2) : 32-34. ( SONG H M, LONG H P, WU J L. The equitable edge-coloring of Halin graphs[J]. Journal of Shandong University (Natural Science), 2003, 38 (2) : 32-34. ) |
[10] | BONDY J A, MURTY S R. Graph Theory with Applications[M]. Oxford, UK: Elsevier Science, 1976 : 10 -35. |
[11] | 马小姝, 李宇龙, 严浪. 传统多目标优化方法和多目标遗传算法的比较综述[J]. 电气传动自动化, 2010, 32 (3) : 48-50. ( MA X S, LI Y L, YAN L. Comparsion review of traditional multi-objective optimization methods and multi-objective genetic algorithm[J]. Electrical Drive Automation, 2010, 32 (3) : 48-50. ) |
[12] | 李世玲, 陈祥恩, 王治文. 完全二部图K3,n(3≤n≤17)的点可区别E-全染色[J]. 吉林大学学报(理学版), 2015, 53 (6) : 1171-1176. ( LI S L, CHEN X E, WANG Z W. Vertex-distinguishing E-total coloring of complete bipartite graph K3,nwith 3≤n≤17[J]. Journal of Jilin University (Science Edition), 2015, 53 (6) : 1171-1176. ) |
[13] | 孟献青. 立方图的邻点可区别全染色及一般邻点可区别全染色[J]. 内蒙古师范大学学报(自然科学汉文版), 2015, 44 (1) : 4-7. ( MENG X Q. On the neighbor-distinguishing total coloring and the general neighbor-distinguishing total coloring of cubic chart[J]. Journal of Inner Mongolia Normal University (Natural Science Edition), 2015, 44 (1) : 4-7. ) |
[14] | 刘秀丽. 若干Mycielski图的邻点可区别V-全染色[J]. 西南师范大学学报(自然科学版), 2015, 40 (12) : 12-16. ( LIU X L. Adjacent vertex-distinguishing V-total coloring on some Mycielski's graphs[J]. Journal of Southwest China Normal University (Natural Science Edition), 2015, 40 (12) : 12-16. ) |
[15] | 卢永红, 康淑瑰, 孟献青, 等. 若干冠图的邻点可区别V-全染色[J]. 数学的实践与认识, 2014, 44 (8) : 170-179. ( LU Y H, KANG S G, MENG X Q, et al. Adjacent vertex-distinguishing V-total coloring of several categories of corona graphs[J]. Mathematics in Practice and Theory, 2014, 44 (8) : 170-179. ) |
[16] | 杨超, 姚兵, 王宏宇, 等. 小度数图的邻点可区别全染色[J]. 数学杂志, 2014, 34 (2) : 295-302. ( YANG C, YAO B, WANG H Y, et al. Adjacent vertex distinguishing total colorings of graphs with smaller degrees[J]. Journal of Mathematics, 2014, 34 (2) : 295-302. ) |