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

文档序号:8319625阅读:来源:国知局
机产生初始种群; 步骤3 :以插入式贪婪解码算法计算个体适应度,评价个体适应度值; 步骤4 :选择下一代种群; 步骤5 :按交叉概率p。进行POX交叉3次,从所有后代中选择最优两个染色体作为下一 代; 步骤6 :按变异概率pm进行反转变异,生成新子代个体; 步骤7 :保留上代最优个体; 步骤8 :把交叉和变异子代个体进行模拟退火操作,产生新一代种群; 步骤9 :判断是否满足终止条件:如不满足,利用tk= a *tk_i进行降温操作,并把遗传代 数加1,返回步骤3 ;如满足终止条件,则输出当前最优个体。
2. 根据权利要求1所述的一种求解车间作业调度问题的混合遗传模拟退火算法,其特 征在于,所述将涉及车间作业调度问题的个体进行编码的方法为:染色体由所有工件的一 个排列构成,给同一工件的所有工序指定相同的符号,然后根据它们在给定染色体中出现 的顺序进行解码。
3. 根据权利要求1所述的一种求解车间作业调度问题的混合遗传模拟退火算法,其特 征在于,所述插入式贪婪解码算法包括以下步骤 : 步骤3. 1 :初始化工件i当前允许操作的工序号数组k[i]=l,(i=l,2,. . .,n);工件i目 前的最早允许加工时间t[i]=0, α=1,2,···,η); 步骤3. 2 :i从1到Σ『=1 Ili.对每个i做步骤3. 3到步骤3. 5 ; 步骤3. 3 :得到加工工件s [i]的机器号p ; 步骤3. 4 :从工件s[i]的前一工序k[s[i]]-l的完成时间t[s[i]]开始,在机器p上从 前向后依次判断各加工空闲时间能否将此工序插入;若能,则在空闲中插入加工,并修改该 机器上的加工队列;否则,以当前时刻加工该工序,将此工序排在该机器当前队列的末尾; 步骤3. 5 :修改记录工件s[i]的目前最早允许加工时间t[s[i]];令 k[s[i]]=k[s[i]]+l ;修改机器p的工件工序分配链表ML[p]; 其中,s为染色体,s[i]为基因,ML[i]是机器i的工件工序分配链表工件,s[i]能在 机器P上空闲时间段[a,b]插入加工的条件为: max{t[s[i]], a}+T[s[i], k[s[i]]] 其中:t[s[i]]为工件s[i]目前的最早允许加工时间,即前一工序的完成时间; T[s[i],k[s[i]]为工件s[i]的当前工序k[s[i]]在机器p上的加工时间。
4. 根据权利要求1所述的一种求解车间作业调度问题的混合遗传模拟退火算法,其特 征在于,所述选择下一代种群包括以下步骤: 计算群体中每个个体在下一代群体中的生存期望数目: Mi = M * FiZSfI2 FiCj = U, -.M) 其中,M表示群体的个数,即随机生成的染色体个数A表示第i个个体的染色体适应 度值; 取队的整数部分[Ni]为对应个体在下一代群体中的生存数目,确定出下一代M个群体 中的 ΣΙΙΝΜ个体; 以 Fi - INih m Fi/Μ为各个个体的新的适应度,使用比例选择方法来随机确 定下一代群体中还未确定的 M-ZSdNJ个个体。
5. 根据权利要求1所述的一种求解车间作业调度问题的混合遗传模拟退火算法,其 特征在于,所述POX交叉包括以下步骤: 首先随机划分工件集{1,2,…,η}为两个非空子集J1和J2 ; 复制父染色体V1包含在J1的工件到子染色体V1 ',父染色体V2包含在J1的工件到子 染色体V2',保留这些工件的位置; 复制V2包含J2的工件到V/,V1包含J2的工件到V 2',保留这些工件的顺序。
6. 根据权利要求1所述的一种求解车间作业调度问题的混合遗传模拟退火算法,其特 征在于,所述反转变异包括以下步骤: 在父染色体中,随机选择两个位置作为变异位置进行变异操作; 将所选取的两个位置之间的子基因串反转,形成新的染色体。
7. 根据权利要求1所述的一种求解车间作业调度问题的混合遗传模拟退火算法,其特 征在于,所述保留上代最优个体采用精英保留策略,其实施方法是:如果当代种群中的最优 个体比之前的最优个体还要好,则用前者替换后者,更新最优个体;否则,最优个体保持不 变,并用其替换当代种群中的最差个体。
8. 根据权利要求1所述的一种求解车间作业调度问题的混合遗传模拟退火算法,其特 征在于,所述模拟退火操作包括以下步骤: 令初始当前状态S=Vi,初始最优解Si=Vi, p_t=0 ; 设置循环计算器,为其赋值为〇 ; 由状态S产生新状态S',计算增量Ac' =C(V )-C(Vi); 若Ac' <0,则接受S'为当前状态并判断c(S')是否小于c(S#);若是,则令S#=S', p_t=0 ;否则,无操作; 若Ac' >0,以概率exp(-Ac' /tk)接受S'为当前状态,若S'被接受,则令S' =S, p_t=0 ;否则 p_t=p_t+l ; 判断p_t > Li是否为真,即当前状态连续Li步是否保持不变;若是,则终止循环计数 器; 若循环计算器小于终止步数,则对其进行加1操作,转至"由状态S产生新状态S' "步 骤;所述终止步数为马尔科夫链长; 将当前最优解Si赋值给乂1; 重复上述过程直到对种群中各个个体都分别进行了 SA抽样搜索。
【专利摘要】本发明通过算法求解车间作业调度问题。针对遗传算法的局部搜索能力较差,但是把握搜索过程总体的能力较强,而模拟退火算法具有较强局部搜索能力,但模拟退火算法却对整个搜索空间的状况了解不多,不便于使搜索过程进入最有希望的搜索区域等问题,本发明将遗传算法与模拟退火算法相互结合,取长补短,提出了一种遗传模拟退火(GASA)混合算法,该算法先对种群执行选择、交叉、变异等遗传操作来产生新的种群,然后对新种群中各个体分别进行模拟退火过程,并以其结果作为下一步遗传操作的输入,这个运行过程经过反复迭代,直到满足某个终止条件为止。
【IPC分类】G06Q10-04, G06N3-12
【公开号】CN104636813
【申请号】CN201310562694
【发明人】马跃, 于东, 胡毅, 周鑫, 李霄
【申请人】中国科学院沈阳计算技术研究所有限公司
【公开日】2015年5月20日
【申请日】2013年11月12日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1