一种基于文化基因算法解决均匀染色问题的方法与流程

文档序号:19312893发布日期:2019-12-03 23:41阅读:554来源:国知局
一种基于文化基因算法解决均匀染色问题的方法与流程

本发明属于组合优化领域,具体涉及一种基于文化基因算法解决均匀染色问题的方法。



背景技术:

均匀图染色的问题通过有负载平衡要求的调度问题来提出。在调度问题的应用中,一个图可以被定义为:每个顶点表示一个基础任务,连接两个顶点的边代表两个基础任务不能同时执行,因此,图形顶点完全被着色所需的颜色数量对应于执行给定任务所需的时间步长。此外,负载平衡的调度问题要求在每个时间步长中执行相等或近乎相等数量的任务,满足此额外要求的调度问题可以对应于图的均匀染色。其他实际应用包括:垃圾收集、并行系统中的内存分配、计算机调度、具有负载平衡的制造过程、学校排课系统以及时间表等。

均匀染色问题是np-hard问题,即计算复杂性理论中最重要的复杂性类之一,因此此问题在计算上充满挑战性。作为传统图染色问题的变体,均匀染色的判定问题同时也是np-complete的。

面对均匀染色计算上的挑战,启发式算法通常用于查找无法精确求解的问题实例的次优解。对于图着色问题,基于种群的文化基因算法是最有效的方法之一。到目前为止,文化基因方法还没有在均匀图染色领域中被探索。

本发明填补了这一空白,提出基于种群的文化基因算法搜索框架解决均匀图染色问题。



技术实现要素:

本发明目的在于提供一种快速寻找均匀图染色问题最优解或者近似最优解的方法,采用文化基因算法搜索框架,设计针对问题的交叉算子及局部搜索算法,适用于推广到解决工业界的负载平衡有关的优化问题。

本发明的技术方法如下:一种基于文化基因算法解决均匀染色问题的方法。解决均匀图染色问题,即找到一个无向图g=(v,e)的均匀合法k-染色的解对应的最小正整数k值。

方法具体如下:

1)给定图g,颜色的数量k,以及种群的大小p,算法首先生成p个初始解{s1,s2,…,sp},即种群的初始化过程。其生成过程详细描述如下:

a)采用贪婪算法生成一个均衡但冲突尽可能少的k-染色方案:sc,c=1。

b)调用二阶tabu搜索算法对sc进行优化,生成一个局部最优解s+

c)在种群中保存当前解sc=s+

d)随机扰动sc,之后设置c=c+1。

e)重复b-d步p次(p为种群大小),即生成p个初始解{s1,s2,…,sp}。

2)从初始种群中随机选出两个解,作为父本解。通过构建加权二部图及最大权重匹配的算法,以此匹配两父本中对应的颜色集,使得对应颜色集共享最多顶点数目。而后,将两父本对应颜色集中相同顶点复制到子代s0,剩余顶点则被贪婪地分配一个颜色,使得整体冲突最小。

3)将经由第二步生成的子代应用二阶tabu搜索算法进行局部优化,第一阶段同时放松解的冲突约束和均衡约束条件,极大的扩展了搜索空间并且达到一个较为优异的搜索区域,第二阶段则通过加强对冲突的约束条件最小化进一步探索优异搜索区域的局部最优合法解。

4)为维持种群的健康性及个体的多样性,采用基于质量和距离的池化更新法。此方法保证了种群保存高质量的个体,且保证种群中的个体差异性较大。

本发明解决均匀图染色问题,即找到一个无向图g=(v,e)的均匀合法k-染色的解对应的最小正整数k值。该算法探索了专用于均匀染色的交叉算子和二阶段tabu搜索的协同作用,并且集成精英种群初始化过程和基于质量和距离的交配池更新过程。均匀图染色是一个方便快捷的模型,本发明提出的算法能够更好地解决现实世界中负载平衡的调度优化问题。

本发明的技术效果体现在:文化基因算法框架结合了交叉算子和局部搜索,前者扩展的搜索范围,后者帮助找到局部最优。具体来讲,针对于均衡图染色问题而设计的文化基因算法采用了主干交叉算子,改进tabu局部搜索和一个保持差异性的池化升级,对于负载平衡问题可以取得最优的效果。

附图说明

图1是基于文化基因算法的均衡图染色问题总流程图。

图2是交叉算子流程图。

图3是两父本的颜色类匹配过程。

图4是两父本经由交叉算子生成子代过程。

图5是单点移动算符图。

图6是交换移动算符图。

具体实施方式

下面将结合附图对本发明进行完整的描述。

一种基于文化基因算法解决均匀染色问题的方法,具体算法流程如图1所示。具体步骤如下:

1)生成一个包含p个精英解的种群。对于给定的图g,颜色数量k,种群大小p,首先生成一系列优异的染色方案(解),每个染色方案即为种群中的个体,此过程为种群初始化。具体来讲,首先采用贪婪算法建立一个均衡且冲突尽可能少的的k-染色方案sc,(c=1)。并采用二阶搜索算法对sc进行优化,生成一个新解s+,把此新解s+插入到种群中,为了创建一个高质量和良好差异性的种群,以30%的概率采用第一种扰动方案,即随机交换s+中0.3n个顶点,否则采用第二种扰动方案,即根据最小冲突变化执行5*103次单点移动或交换移动。扰动后的解作为下一轮局部搜索算法的初始解。最后重复上述步骤p次,即得到一个包含p个精英解的种群{s1,s2,…,sp}。

2)设计交叉算子。交叉算子作为遗传进化算法中的一个重要组成部分,在其设计时应着重满足将有用的信息从父代传递到子代的原则。针对均衡图染色问题提出的交叉算子,本发明采用了传统的主干交叉算子。其基本思想是保留父代之间共享的元素。如图2所示,交叉算子包含了两步,在种群中选出两个父本解sm和sn,并匹配两个父本的每个颜色类,使得每对颜色类共享最大的节点集。由于颜色类的对称性,sm和sn中匹配的颜色类通常具有不同的颜色类号。例如,sm中颜色类vi也许对应于一个sn中的不同颜色类vj。因此,本发明通过构造加权完全二部图且(vim,vjn)∈e′,并寻找最大边权值实现,图中边的权值是sm中顶点集合vim和sn中顶点集合vjn共有的顶点的数量。本发明采用了快速贪婪算法寻找最大权重匹配问题的近优解,该算法迭代地选择图h中具有最大权重的边,然后从h中删除此边和此边所连接的两个顶点vim和vjn。重复此过程直到h变成空集,即sm和sn中所有颜色类都被匹配。任选一个父本的颜色对匹配的顶点进行相同染色,得到子代s0的部分染色。最后采用贪婪算法将未被分配颜色的顶点染色。

图3演示了两个父本sm和sn的颜色类匹配过程。在染色方案sm和sn创建的加权完全二部图中,首先找到权重最大的边及所连接的节点vim和vjn(如图3(b)中的黑色),此时边权重代表sm中的第i个颜色类和sn中的第j个颜色类所共享最大的顶点数。删除上述匹配的结点及所连接的边,即可得到一个缩减后的图。在缩减图中识别权重最大的边及对应的节点(图3(c)中的灰色),直至图为空集。

图4展示了包含10个结点和3个颜色类的两个父本sm和sn的交叉过程并子代s0的过程。图4左侧为图形染色法表示此交叉过程,右侧为集合法表示此交叉过程。首先根据图3所示的方法匹配sm和sn中的颜色类,并得到如下结果:sm的绿色类和sn的红色类匹配,sm的红色类和sn中的绿色类,两个解中的蓝色类匹配。任选父本之一的颜色对子代的匹配的顶点进行相同染色。最后,采用贪婪算法给未染色的顶点{3,8,9}染色,从而得到完整的子代解s0。

3)对子代解进行局部优化。对交叉生成的子代解,本发明采用二阶tabu搜索方法进行局部优化。对于均衡k-染色问题,局部优化算法的搜索空间ωk由所有可能的k-染色组成,即:

其中i≠j,1≤i,j≤k.

(1)第一阶段

第一阶段采用公式(2)作为搜索过程中的目标函数。

f(s)=f(s)+g(s)(2)

其中f(s)表示当前解s中的冲突顶点数,g(s)表示当前解s距离均衡染色相差的距离。

其中ρi表示距离均衡染色相差的值。

第一阶段的移动算符:单点移动算符(one_move(v,vi,vj))及交换算符swap(v,u)。

令s为当前解,op代表一种移动算符来转移s。用代表s进行op操作。单点移动算符one_move(v,vi,vj)即为将一个冲突顶点从它现有的颜色类vi移动到另一个颜色类vj中。单点移动运算符产生的邻居n1如公式(5)所示:

其中c(s)表示s中的冲突顶点集合。图5展示了采用单点移动运算符的过程。图示为冲突顶点8从当前染色类移动至染色类交换算符swap(v,u)交换来自不同颜色类的一对顶点,且这对顶点中至少有一个顶点与其他顶点冲突。交换算符的邻居n2如公式(6)所示:

图6所示为采用交换算符的过程。图示步骤为集合中的冲突顶点9和集合中的顶点5交换。

在第一阶段探索邻域解:tabu搜索过程在每次迭代中选择一个具有最小目标函数增益δf的n1和n2中允许的最佳邻域解,并使用该邻域解替换当前解。移动算符(单点移动算符(one_move(v,vi,vj))及交换算符(swap(v,u))被记录在tabu列表中,以便在固定次数的接下来迭代中禁止反向移动。该搜索迭代过程旨在最小化目标函数f(s)。重复此过程直到遇到以下两种情况之一:(1)寻找到一个合法均衡k-染色解s,即f(s)=0。在此情况下,给出的均衡k-图染色问题对于当前k值已被解决,继而,搜索过程会继续解决均衡(k-1)-图染色问题。(2)搜索过程已经执行了β1次连续迭代(β1为搜索深度),而没有发现更好的的解决方案s*。针对此情况,搜索过程进入第二个搜索阶段。

(2)第二阶段

第二阶段以解的冲突数量为目标函数即公式(3)。

第二阶段的移动算符包含单点移动算符(one_move(v,vi,vj)),交换算符swap(v,u)及循环移动算符(cycle(v,u,w))。循环移动算符swap(v,u)交换来自不同颜色类的一对顶点,且这对顶点中至少有一个顶点与其他顶点冲突。循环移动算符的邻居n3如公式(7)所示:

在每次迭代中,在n1、n2和n3的相邻解中,取拟合增益δf最小的最佳容许解来代替现有解。然后,相应的移动记录在tabu列表中。循环此搜索过程直到找到一个合法和公平的解决方案s,其f(s)=0,或者在β2连续迭代期间无法改进最优解(β2为第二阶段的搜索深度)。为了使得第二阶段的搜索在均衡解区域附近,每迭代1000次,算法从当前解的最大颜色类中选取一个顶点加入到最小颜色类。

4)判断新生成的解是否适宜被加入种群中。为了保持种群中个体的多样性,本发明采用基于质量和距离的池化更新方法。即判断某个新生成的个体是否被加入新的种群的原则依赖于此个体与种群其他解的距离及其相对于其他解的质量。利用此更新方法,本发明不仅保证了种群个体的高质量,且保证了种群的多样性。

本发明方案所公开的技术手段不仅限于上述实施方式所公开的技术手段,还包括由以上技术特征任意组合所组成的技术方案。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1