[发明专利]针对动态作业车间调度问题的基于局部搜索遗传编程算法在审
| 申请号: | 201510844179.3 | 申请日: | 2015-11-26 |
| 公开(公告)号: | CN106610641A | 公开(公告)日: | 2017-05-03 |
| 发明(设计)人: | 龚晓慧;胡成华 | 申请(专利权)人: | 四川用联信息技术有限公司 |
| 主分类号: | G05B19/418 | 分类号: | G05B19/418 |
| 代理公司: | 暂无信息 | 代理人: | 暂无信息 |
| 地址: | 610054 四川省成*** | 国省代码: | 四川;51 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 针对 动态 作业 车间 调度 问题 基于 局部 搜索 遗传 编程 算法 | ||
1.一种针对动态作业车间调度问题的基于局部搜索遗传编程算法,该算法适用于作业车间技术领域,该算法的特征是:第一、该算法采用调度规则解决调度优化问题;第二、该算法用遗传编程方法自动设计调度规则;第三、结合局部搜索启发式方法;第四、对局部搜索的当前最优解进行摄动操作;第五、在局部搜索过程中引入禁忌搜索策略;第六、该算法生成初始程序的方法 ;第七;该算法计算初始程序适应度的方法
该算法的实现流程如下:
1)下载仿真复制
为了测量所获得的调度规则(或者程序)的有效性,我们将使用一个作业车间的离散变量仿真,随机生成若干仿真复制R ={R1, R2, . . . , RN}(随机产生若干工件的到达时间、加工时间、工序个数、路径);
2)生成初始程序
使用生长法生成初始程序,随机生成根节点,然后随机产生子树作为根节点的子节点,如果某个节点的深度小于给定的最大深度3层就从函数集和终点集中选择,否则就从终点集中选择;
3)计算初始程序适应度
调度规则的适应度通过应用到每一个训练复制求得,适应度值可以计算如下:(6)
为训练仿真复制的数量,为调度规则在复制下获得的的性能(目标函数值),这个适应度表明了通过不同仿真复制的平均性能,本遗传编程方法考虑的所有目标(平均流动时间、最大流动时间、平均延迟时间、最大延迟时间、延迟工件百分比)都是最小化问题,因此拥有更低适应度值的规则将更好
4)初始化最优程序
复制到和禁忌表,迭代次数为0;
5)迭代
判断是否到达最大迭代次数,是则返回最优程序,结束进化;否则进行局部搜索;
6)局部搜索
①判断是否为最大局部搜索步长,是则迭代次数加1,执行摄动操作,否则对当前程序进行邻域搜索获得新的程序;
②检查禁忌表确认是否重复搜索并更新禁忌表,是则搜索步长加1,返回执行①;否则执行③;
③计算新程序的适应度,若的适应度优于的适应度,当前程序被替换,搜索步长加1,返回执行①;
7)摄动
①如果局部搜索的最优程序优于,被替换,判断是否为局部最优;否则直接判断是否为局部最优;
②如果是局部最优,对进行摄动操作,生成一个新的初始程序;否则返回执行5);
③检查禁忌表确认摄动生成的新解是否重复并更新禁忌表,是则返回①重新进行摄动操作;否则执行5)。
2.根据权利要求1所述的算法,其特征是:遗传编程自动生成最优程序,最优程序即为最优的调度规则。
3.根据权利要求1所述的算法,其特征是:局部搜索和摄动操作过程引入禁忌搜索策略,避免重复搜索,减少计算时间。
4.根据权利要求1所述的算法,其特征是:遗传编程结合局部搜索,相比于单独的遗传编程,探索和开发能力更强,能找到比遗传编程更优的解,遗传编程结合局部搜索的具体实施流程为:
①判断是否为最大局部搜索步长,是则迭代次数加1,执行摄动操作,否则对当前程序进行邻域搜索获得新的程序;
②检查禁忌表确认是否重复搜索并更新禁忌表,是则搜索步长加1,返回执行①;否则执行③;
③计算新程序的适应度,若的适应度优于的适应度,当前程序被替换,搜索步长加1,返回执行①。
5.根据权利要求4所述的算法,其特征是:局部搜索领域产生方式是通过限制子树变异(RSM)来产生邻域程序,与遗传编程中子树变异类似,限制子树变异在程序中随机选择一个节点,用生长方法随机生成一个最大深度为2层的子树来替换那个节点的子树,图3给出了该变异操作的示例。
6.根据权利要求1所述的算法,其特征是:对局部搜索的最优解进行摄动操作,防止遗传编程陷入局部最优,具体实施过程如下:
①如果局部搜索的最优程序优于,被替换,判断是否为局部最优;否则直接判断是否为局部最优;
②如果是局部最优,对 进行摄动操作,生成一个新的初始程序;否则返回执行5)迭代;
③检查禁忌表确认摄动生成的新解是否重复并更新禁忌表,是则返回①重新进行摄动操作;否则执行5)迭代。
7.根据权利要求6所述的算法,其特征是:摄动操作有两种方式:
①限制子树变异(RSM),
②子树提取(SE);
第一种摄动除了新生成的子树最大深度为3层以使新生成的程序与更加不同以外,与前一部分寻找邻域程序的方法相同,子树提取是从随机选择一个节点,从这个节点开始的子树将作为一个新的程序,实例如图4,因为每种摄动操作都有它自己的优势,所以这两种我们都会应用到本算法中,搜索过程中,如果一种摄动操作没有帮助找到更优的,我们将换另一种摄动操作。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于四川用联信息技术有限公司,未经四川用联信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510844179.3/1.html,转载请声明来源钻瓜专利网。





