一种基于改进CHIO的排程方法

文档序号:36422582发布日期:2023-12-20 14:36阅读:64来源:国知局
本发明涉及一种排程方法,尤其是一种基于改进chio的排程方法。
背景技术
::1、排程问题又称车间调度问题,传统的排程方法适应性较低,且难以用于大规模问题求解,基于深度学习的排程方法需要大量数据和计算能力并且复杂,目前解决排程问题的方法主要为元启发式算法,元启发式算法主要包括遗传算法、粒子群算法、模拟退火算法、鲸鱼算法和开普勒算法等。其中遗传算法和粒子群算法容易陷入局部最优,模拟退火算法运行速度慢且受初始条件影响大,鲸鱼算法收敛速度慢,开普勒算法复杂且根据不同排程问题需要大量调整结构参数,因此目前解决排程问题的方法或多或少存在易陷入局部最优和通用性差等问题。2、标准的chio虽然速度快通用性强,但仍然容易陷入局部最优。技术实现思路1、本发明所要解决的技术问题是提供一种基于改进chio的排程方法,不但通用性强,而且不易陷入局部最优。2、本发明解决上述技术问题所采用的技术方案为:一种基于改进chio的排程方法,包括以下步骤:3、步骤①,使用浮点编码方式对所需求解的排程问题进行编码,随机生成由各个位点的浮点值在0到1之间的个体组成的原始种群,对原始种群中的所有个体的属性进行标记,将任意一个个体的属性标记为感染个体,将其他个体的属性标记为易感个体,将免疫个体的数量标记为0,得到标记后的原始种群;4、步骤②,对标记后的原始种群进行初始化,将标记后的原始种群中感染个体的感染时间time1设为0,将标记后的原始种群中免疫个体的免疫时间time2设为0,将初始化后的原始种群作为当前种群,执行步骤③;5、步骤③,将迭代轮次记为i,将初始迭代轮次设为i=1并作为当前迭代轮次,执行步骤④;6、步骤④,在当前迭代轮次中,使用改进chio对当前种群进行更新,得到更新后的当前种群,执行步骤⑤;7、步骤⑤,判断i是否等于预设的总迭代次数epochs,若是,则执行步骤⑥;若否,则将更新后的当前种群作为新的当前种群,将当前迭代轮次+1作为新的当前迭代轮次,返回执行步骤④;8、步骤⑥,对更新后的当前种群进行解码得到最优解;9、所述的步骤④的具体操作过程如下:10、步骤④-1,随机选取当前种群中的一个个体作为当前个体并记为pop,执行步骤④-2;11、步骤④-2,基于漫反射变异规则对pop进行漫反射变异感染得到漫反射变异感染后的当前个体并记为pop’,执行步骤④-3;12、步骤④-3,对pop’进行邻居感染得到邻居感染后的当前个体并记为pop”,执行步骤④-4;13、步骤④-4,判断pop”是否优于pop,若pop”优于pop,则将pop”作为新当前个体并记为popnew,执行步骤④-5;若pop”不优于pop,则对于pop”生成一个[0,1]均匀分布的随机数r1,并判断r1是否小于模拟退火概率值p,若r1<p,则对pop”进行模拟退火处理,将经过模拟退火处理后的pop”作为新当前个体并记为popnew,执行步骤④-5;若r1≥p,则将pop作为新当前个体并记为popnew,执行步骤④-5;14、步骤④-5,对popnew以及当前种群中属性和popnew相同的个体进行解码,得到popnew的解以及所有与popnew相同属性的个体的平均解,执行步骤④-6;15、步骤④-6,根据popnew的属性、popnew的解以及所有与popnew相同属性的个体的平均解对popnew的属性进行标记更新,执行步骤④-7;16、步骤④-7,判断当前种群中的所有个体是否均已进行过漫反射变异感染,若是,则将此时的当前种群作为更新后的当前种群,执行步骤⑤;若否,则随机选取当前种群中未经过漫反射变异感染的个体作为新的pop,执行步骤④-2。17、与现有技术相比,本发明的优点在于使用简单通用的浮点编码方式进行编码;免疫个体在长期处于免疫状态时,通过对当前个体进行漫反射变异感染和邻居感染后,可以得到新的免疫个体,且模拟退火处理可以改善陷入局部问题,增加了种群多样性,使得排程问题的解更加丰富,因此避免陷入局部最优,增强了全局优化能力;本发明采用完全随机化设计,易感个体、感染个体和免疫个体的数量均会随着方法运行动态变化,最终会达到相对稳定的比例分布,避免了结果过度依赖原始条件的影响,增强了本发明的鲁棒性,与现有技术需要预设参数相比,本发明无需人为设置初始参数,降低了对参数精确设定的依赖性,从而扩大了本发明的适用范围和可靠性,通用性强;本发明采用群体寻优策略,其中漫反射变异感染中免疫个体和易感个体负责全局搜索,通过设定较大的更新幅度,可以快速全面扫描解空间,同时结合邻居感染,整个种群可以迅速收敛到稳定状态,实现有效的优化搜索;本发明模拟自然界中冠状病毒的传播和群体免疫过程,与真实世界情况高度契合,更加贴近现实,便于理解与解释;从对于jssp问题中的fisher and thompson的知名样例la16进行求解的实验可知,当迭代次数为500次时,使用本发明的求解结果为956,使用ssa的求解结果为1170,使用gapso的求解结果为1136,使用kepler的求解结果为1055,使用bwo的求解结果为1014,而本发明求得的最优解远优于其余算法,因此本发明具有非常好的效果。18、进一步地,所述的步骤④-2中,得到漫反射变异感染后的当前个体并记为pop’的具体操作过程如下:19、对于pop生成一个[0,1]均匀的分布的随机数r;20、若且感染个体的总数>0,则21、pop’=pop(1+psi(2randi-1))+(1+psi((2randi-1)+(2bias-1)))(xa-pop),22、其中,sr表示预设的群体免疫感染率,psi表示漫反射系数,arctanh(·)为正切函数,randi表示0到1之间的随机数,i表示迭代轮次,bias表示漫反射变异中的一个介于0到1的随机偏移常数,xa表示全局寻优个体的差分变异量,besti表示当前种群的最优解,1≤i≤epochs,epochs表示预设的总迭代次数,besti-1表示上一迭代轮次中当前种群的最优解,当前种群的最优解为当前种群中makespan值最小所对应的个体,makespan表示每个个体的最小化最大完工时间;23、若且易感个体的总数>0,则其中,normalmean表示所有易感个体的解的平均值,kw表示漫反射斜率,aw表示漫反射变异的水面波动最大幅度值,aw=0.5,rand1和rand2分别表示0到1之间的随机值,randnormal表示1到易感个体的总数之间的随机整数,表示从当前种群中随机选取的一个易感个体;24、若且免疫个体的总数>0,则其中,recoveredmean表示所有免疫个体的解的平均值,kw表示漫反射斜率,aw表示漫反射变异的水面波动最大幅度值,aw=0.5,rands和rand4分别表示0到1之间的随机值,randrecovered表示1到免疫个体的总数之间的随机整数,表示从当前种群中随机选取的一个免疫个体;25、若sr≤r≤1,则pop’=pop。26、进一步地,所述的步骤④-6的具体操作过程如下:27、若popnew的属性为易感个体,则判断popnew的解是否优于所有易感个体的平均解,若是,则将popnew的属性标记更新为易感个体,执行步骤④-7;若否,则将popnew的属性标记更新为感染个体,且将该个体的感染时间time1置为0,执行步骤④-7;28、若popnew的属性为感染个体,则令该个体的感染时间time1=time1+1,判断popnew的解是否优于所有感染个体的平均解,若是,则将popnew的属性标记更新为免疫个体,且将该个体的免疫时间timez置为0,执行步骤④-7;若否,则判断popnew的感染时间是否大于预设的感染期限,若popnew的感染时间大于预设的感染期限,则采用浮点编码方式对popnew进行重新编码,并将重新编码后的popnew的属性标记更新为易感个体,执行步骤④-7;若popnew的感染时间小于或等于预设的感染期限,则将popnew的属性标记更新为感染个体,执行步骤④-7;29、若popnew的属性为免疫个体,则令该个体的免疫时间time2=time2+1,判断该个体的免疫时间time2是否小于预设的免疫时间上限,若该个体的免疫时间time2小于预设的免疫时间上限,则将popnew的属性标记更新为免疫个体,执行步骤④-7;若该个体的免疫时间time2大于或等于预设的免疫时间上限,则判断免疫个体的总数是否大于或等于预设的免疫种群上限immunemax,若是,则不断从所有免疫个体中选取makespan值最大所对应的个体,并将该个体的属性标记更新为感染个体,且将该个体的感染时间time1置为0,直到免疫个体的总数小于预设的免疫种群稳定值immunestable,执行步骤④-7;若否,则将popnew的属性标记更新为免疫个体,执行步骤④-7。易感个体到感染个体的转变以及免疫个体到感染个体的转变意味着解的效果变差,同时感染个体到免疫个体的转变意味着解的效果变好,可以动态且直观地展示使用本发明寻找排程问题最优解的过程,易于理解。30、进一步地,所述的预设的群体免疫感染率为0.6,所述的预设的感染期限为0.1×epochs,所述的预设的免疫时间上限为0.1×epochs,所述的预设的免疫种群上限immunemax为0.3×popsize,所述的预设的免疫种群稳定值immunestable为0.05×popsize,其中popsize表示根据所需求解的排程问题设置的可行解规模。31、进一步地,所述的预设的总迭代次数epochs为500至1000次。32、进一步地,所述的步骤④-2和步骤④-3之间还包括:对pop’进行归一化处理使pop’的各个位点的浮点值在0到1之间。33、进一步地,所述的步骤④-3中,对pop’进行邻居感染得到邻居感染后的当前个体并记为pop”的具体操作过程包括:按照从左至右的顺序将pop’中每相邻的两个位点进行位置交换,得到pop’的邻居群体,从该邻居群体中选取makespan值最小所对应的个体作为邻居感染后的当前个体并记为pop”,其中makespan表示每个个体的最小化最大完工时间。34、进一步地,所述的步骤④-4中,模拟退火概率值其中e表示自然常数,popnew表示新当前个体,pop表示当前个体,k表示常数,k=0.6,epochs表示预设的总迭代次数,i表示迭代轮次,//表示整除运算符号。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1