一种求解车间作业调度问题的混合遗传模拟退火算法

文档序号:8319625阅读:643来源:国知局
一种求解车间作业调度问题的混合遗传模拟退火算法
【技术领域】
[0001] 本发明涉及制造执行系统领域,具体来说就是通过算法求解车间作业调度问题 (Job-Shop Scheduling Problem)。
【背景技术】
[0002] 车间作业调度问题(Job-Shop Scheduling Problem)是制造执行系统研究的核心 和重点之一,它的研究不仅具有重大的现实意义,而且具有深远的理论意义。车间作业调度 问题,简称JSP,就是根据产品制造需求合理分配产品制造资源,进而达到合理利用产品制 造资源、提高企业经济效益的目的。JSP是产品制造行业中共存的问题,它与CMS中的工厂 管理、产品制造层次紧密相关,是CMS领域中研究的重要课题。JSP是一个典型的NP-hard 问题,它的研究必然会对NP问题的研究起到有意义的影响。
[0003] JSP研究的难度较大,这不仅仅由于JSP本身是一个NP-hard问题,而且还由于 JSP研究具有离散性、随机性、多目标性、多约束性和复杂性,所以有学者把JSP研究喻为 "NP-hard之NP-hard"。目前精确算法主要有分支定界法、基于析取图模型的枚举方法、混 合整数规划模型和拉格朗日松弛法等,这些算法虽然能保证得到全局最优解,但需花费较 长的时间且只能解决小规模的车间调度问题,与车间实际调度应用还有较大的差距。
[0004] 遗传算法(Genetic Algorithm, GA)是模拟达尔文生物进化论的自然选择和遗传 学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法,它 最初由美国Michigan大学J. Holland教授于1975年首先提出来的。其基本思想是力求模 仿自然界寻优过程中的随机性、鲁棒性和全局性。将遗传算法应用于车间作业调度问题, 可以利用其良好的全局搜索能力,快速地将解空间中的全体解搜索出,而不会陷入局部最 优解的快速下降陷阱;并且利用它的内在并行性,可以方便地进行分布式计算,加快求解速 度。但是遗传算法的局部搜索能力较差,导致单纯的遗传算法比较费时,在进化后期搜索效 率较低,容易产生早熟收敛的问题。
[0005] 模拟退火算法(Simulated Annealing, SA)是基于金属退火的机理而建立起来的 一种全局最优化方法,它能够以随机搜索技术从概率意义上找出目标函数的全局最优点。 该算法能有限度的接受"不好"的解,具有原理简单、使用灵活等优点,并且可以跳出局部最 优解,能找到全局最优或者近似全局较优的解。但SA算法对退温历程依赖性很强,并且它 的全局收敛性对退温条件的要求十分苛刻,因此SA算法的时间性能不好。

【发明内容】

[0006] 针对现有技术中存在的上述不足之处,本发明要解决的技术问题是提供一种将模 拟退火算法和遗传算法结合起来的一种求解车间作业调度问题的混合遗传模拟退火算法。
[0007] 本发明为实现上述目的所采用的技术方案是:一种求解车间作业调度问题的混合 遗传模拟退火算法,包括以下步骤:
[0008] 步骤1 :将涉及车间作业调度问题的个体进行编码,并遗传算法与模拟退火算法 所需要的参数;
[0009] 步骤2 :随机产生初始种群;
[0010] 步骤3 :以插入式贪婪解码算法计算个体适应度,评价个体适应度值;
[0011] 步骤4:选择下一代种群;
[0012] 步骤5 :按交叉概率p。进行POX交叉3次,从所有后代中选择最优两个染色体作为 下一代;
[0013] 步骤6 :按变异概率Pm进行反转变异,生成新子代个体;
[0014] 步骤7 :保留上代最优个体;
[0015] 步骤8 :把交叉和变异子代个体进行模拟退火操作,产生新一代种群;
[0016] 步骤9 :判断是否满足终止条件:如不满足,利用tk= 进行降温操作,并把 遗传代数加1,返回步骤3 ;如满足终止条件,则输出当前最优个体。
[0017] 所述将涉及车间作业调度问题的个体进行编码的方法为:染色体由所有工件的一 个排列构成,给同一工件的所有工序指定相同的符号,然后根据它们在给定染色体中出现 的顺序进行解码。
[0018] 所述插入式贪婪解码算法包括以下步骤:
[0019] 步骤3. 1 :初始化工件i当前允许操作的工序号数组k[i]=l,(i=l,2,...,n);工 件i目前的最早允许加工时间t[i]=0,(i=l,2,...,n);
[0020] 步骤3. 2 : i从1到Σ?=ι % *对每个i做步骤3. 3到步骤3. 5 ;
[0021] 步骤3. 3 :得到加工工件s [i]的机器号p ;
[0022] 步骤3. 4:从工件s[i]的前一工序k[s[i]]_l的完成时间t[s[i]]开始,在机器p 上从前向后依次判断各加工空闲时间能否将此工序插入;若能,则在空闲中插入加工,并修 改该机器上的加工队列;否则,以当前时刻加工该工序,将此工序排在该机器当前队列的末 尾;
[0023] 步骤3. 5 :修改记录工件s[i]的目前最早允许加工时间t[s[i]];令 k[s[i]]=k[s[i]]+l ;修改机器p的工件工序分配链表ML[p];
[0024] 其中,s为染色体,s[i]为基因,ML[i]是机器i的工件工序分配链表工件,s[i] 能在机器P上空闲时间段[a,b]插入加工的条件为:
[0025] max{t[s[i]], a}+T[s[i],k[s[i]]]
[0026] 其中:t[s[i]]为工件s [i]目前的最早允许加工时间,即前一工序的完成时间; T[s[i],k[s[i]]为工件s[i]的当前工序k[s[i]]在机器p上的加工时间。
[0027] 所述选择下一代种群包括以下步骤:
[0028] 计算群体中每个个体在下一代群体中的生存期望数目:
[0029]
【主权项】
1. 一种求解车间作业调度问题的混合遗传模拟退火算法,其特征在于,包括以下步 骤: 步骤1 :将涉及车间作业调度问题的个体进行编码,并遗传算法与模拟退火算法所需 要的参数; 步骤2 :随
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1