一种基于分解多目标进化算法的柔性车间鲁棒调度方法

文档序号:10569279阅读:823来源:国知局
一种基于分解多目标进化算法的柔性车间鲁棒调度方法
【专利摘要】本发明公开了一种基于分解多目标进化算法的柔性车间鲁棒调度方法,(1)读取柔性作业车间的作业和机器属性等输入信息;定义优化目标,设定约束条件;(2)初始化算法的参数;(3)确定每个子问题的邻域,产生初始父代群体,从初始群体中确定出所有的Pareto非支配解构成外部存储器;(4)生成子代群体。进行交配选择,采用自适应变异算子和基于修复的交叉算子繁殖子代个体,并更新外部存储器;(5)利用生成的子代群体对各子问题的当前最优个体进行更新,构成新的父代群体;(6)判断个体目标评价次数若达到最大,则输出外部存储器,即一组Pareto非支配的柔性作业车间调度解;未达到则跳转至(4)。本发明快速高效地实现柔性作业车间中的调度任务。
【专利说明】
一种基于分解多目标进化算法的柔性车间鲁棒调度方法
技术领域
[0001] 本发明涉及柔性作业车间调度控制技术领域,特别是一种基于分解多目标进化算 法的柔性车间鲁棒调度方法。
【背景技术】
[0002] 柔性作业车间调度问题是对经典车间调度问题的一般化,它是一类NP难问题。在 柔性作业车间调度问题中,允许一道工序被多台机器加工,因此,需为每项作业的每道工序 分配适当的机器,并确定各机器上工序的加工顺序,以在满足各种约束条件的前提下,实现 作业的完工时间最短、各机器的负载均衡等优化目标。
[0003] 实际柔性作业车间的生产环境中存在着很多不确定因素,如由于对作业规格要求 的改变导致部分工序加工时间发生改变;由于转包商的运输延迟,导致作业的投放时间推 迟等。当面临这些扰动时,根据初始数据产生的最优调度方案的性能可能大大降低,因此亟 需研究一种能够处理不确定因素的新型柔性作业车间鲁棒调度方法,以在保证完工时间较 短、各机器的负载较为均衡等性能的同时,增强车间调度方案对不确定性的抗干扰能力,降 低调度性能对扰动的敏感程度。柔性作业车间的鲁棒调度技术对实际生产系统的成功实施 具有重要意义。
[0004] 进化算法是模拟生物在自然环境中的进化过程而形成的一类自适应全局优化概 率搜索算法。进化算法可以处理传统优化方法难以解决的复杂优化问题,例如非连续、多模 态等问题,它对整个群体实施选择、交叉、变异等操作,可以在算法的一次运行中并行搜索 到多个解,加之它具有较强的环境自适应能力,因此,进化算法特别适用于求解柔性作业车 间调度这类同时存在多个Pareto非支配解的多目标鲁棒优化问题。基于分解的多目标进化 算法(M0EA/D)是由张青富教授和李辉博士在2007年首次提出的。该算法给出了一种新颖且 通用的多目标处理框架。它将多目标优化问题分解为一组单目标子问题,并采用基于群体 的进化算法协同求解这些子问题。由于它的高效性,近年来,M0EA/D已经成为国际学术界的 研究热点之一,并且已有学者将M0EA/D成功应用于实际优化问题的求解中。
[0005]目前已有的柔性作业车间调度方法存在以下不足:
[0006] (1)大多仅考虑了静态的生产环境。它们假设柔性作业车间中的所有信息都是预 先可知且确定不变的,显然,当实际生产环境存在不确定因素时,依据静态方法产生的调度 方案不再适用。
[0007] (2)对多个优化目标的处理方式比较单一。大多已有方法采用加权求和法将多个 目标转换为一个目标,这种方法将会引入较多的参数,并且需要事先对各个目标进行归一 化处理。由于柔性作业车间调度问题的多个目标之间往往是相互矛盾的,因此更好的方式 是采用多目标进化算法对多个目标并行处理,从而为生产管理者提供一组反映目标间不同 折中程度的调度方案,为其做出最终的决策提供参考。
[0008] (3)局部搜索能力较弱,易于陷入局部最优,调度效率低下。

【发明内容】

[0009] 本发明所要解决的技术问题是克服现有技术的不足而提供一种基于分解多目标 进化算法的柔性车间鲁棒调度方法,以在实际的车间生产环境中,在优化作业的完工时间、 促使各机器负载均衡的同时,尽可能地降低不确定性对调度方案性能的负面影响,并提高 调度方法的局部搜索能力,避免陷入局部最优,实现快速高效的车间调度。
[0010] 本发明为解决上述技术问题采用以下技术方案:
[0011] 根据本发明提出的一种基于分解多目标进化算法的柔性车间鲁棒调度方法,包括 以下步骤:
[0012] 步骤(1 )、读取柔性作业车间的输入信息,定义优化目标,设定约束条件:
[0013] 车间的输入信息包括每项作业的工序数、每项作业中每道工序可分配的机器集 合、各工序在相应机器上的加工时间、正常工作的机器数目;优化目标包括作业完工时间、 机器的最大负载、调度性能的鲁棒性;约束条件包括工序优先级约束和禁止抢先占有的约 束;
[0014] 步骤(2)、初始化基于分解的多目标进化算法的参数:
[0015]设置迭代次数NmbEvl、群体规模N即为子问题的个数、产生N个均匀分布的目标权 向量A1,…,AN、子问题的邻域规模T,繁殖算子中的父代个体从邻域里选取的概率5、邻域个 体允许被每个子代个体替换的最大数目n r,评价鲁棒性时采样的不确定场景个数Q,以及交 叉概率CR;
[0016] 步骤(3)、确定每个子问题的邻域,产生初始父代群体:
[0017] (3.1)、对第i个子问题,i = l,-_,N,确定邻域B( i) = {ii,…,iT};分别计算第i个子 问题的权向量入1和其它(N -1)个子问题权向量间的欧拉距离,将T个距离A1最近的权向量 所对应的子群体序号{i 1,…,iT}构成B(i);
[0018] (3.2)、随机产生初始父代群体{x1,…,/},其中,个体x1为第i个子群体的当前解; 群体中的每个个体包括工序序列向量和机器分配向量;随机采样一组不确定性场景0 q,q = 1,2, ? ? ?,Q;计算初始父代群体中每个个体的目标值fi=makespani、f2 = workloadi和f3 = robustness ;makespani和workloadi分别表不初始景象下的作业完工时间和机器最大负载, robustness表示调度性能的鲁棒性;从初始父代群体中确定出所有的Pareto非支配解构成 外部存储器Arc;设置目标评价次数计数变量ct = N;归一化各目标值,将每个个体x1的第j 个目标值tU1)映射到区间[0,1]之间,产生x1在第j个目标上的归一化值fnoXx 1),即: ,,,.、[(/#')-_0/(/;--/;職)如果
[0019] fn〇Ax) = \ 7 [l 其它
[0020] 其中,/;_和/T分别表示当前父代群体中的所有个体在第j个目标上的最大值和 最小值,j = l,2,3;
[0021] (3.3)、设置进化代数t = 0;
[0022]步骤(4)、生成子代群体:
[0023]随机采样一组不确定性场景0q;设置子代群体a步op=0,令i=1;
[0024] (4.1)、交配选择;
[0025] 产生一个均匀分布的随机数ranchGtOJ];设置第i个子问题的更新邻域P(i): 如果 nm/j <5,
[0026] 作)、…%其它 ;
[0027] 基于以下规则产生3个不同的父代个体<和< : 切(〇巾均匀隨机地选取二十子群体的序号和取子群丨斯,和尸的当前解.Y' .V-'和X",xj =:!:' 如果 rawf, < (5, 从丨L…,中均勾随机地选取/?,i^np3,并设冒4 =JVP. 加果以+ (1-心/3,
[QQ28] '从中均匀随机地选取&尽汴设置< =八a>a'Wr冲均匀随机地选取一个个体.V ^+ (1 -(5)/3< rand, <S + 2(l-S)/3. 从I中均匀陆仉地选取二个卜体X?:.艿它
[0029] (4.2)、繁殖;
[0030] 采用基于微分进化算法的繁殖算子,由 <,<,碱和x1生成子代个体u1;
[0031] (4.3)、更新外部存储器;
[0032] 评价u1的目标值,并归一化各目标值;令ct = ct+1;将u1加入外部存储器Arc;并删 除当前Arc中所有重复解和Pareto支配解;设Chipop = Chipop U u1;如果i <N,则令i = i+1, 转至(4.1),否则执行步骤(5);
[0033] 步骤(5)、解的更新:
[0034] 设混合群体Mixpop = {x1,…,xN} U Chipop,令i = 1,
[0035] (5.1)、令计数器 c = 0;
[0036] (5.2)、从第1个子问题的更新邻域?(1)中随机选取一个子群体的序号1^,1^£?(1);
[0037] (5.3)、对于第k个子问题,从Mixpop中确定最佳解;
[0038] 设标记变量mark = 0;给定第k个子问题的权向量V =(<,#,<『4为第j个目标 的权值,¥_聽.,)=1,2,3,[:=]2卜1和参考向量/。:(心4<),.4为第」个目标的参考点,」 = 1,2,3,采用切比雪夫法求得任意一个个体x在第k个子问题的合成目标函数为:
[0039] | , z) = max \fn〇t (x) - 2* |
[0040]由于采用归一化目标值,设置参考向量? = (0,0,0);对于Mixpop中的每个个体xy1 和第k个子问题的当前解xk,如果下述3个条件中有一个满足"UgtlxyilA^^XgtU 入k,z*); (i i) gte (xy11 Ak,z*) = gte (xk | Ak,z*)且 xy1 Pare to 支配 xk; (i i i) gte (xy11 Ak,z*) = gte (叉1<|#,2*)且叉71在鲁棒性能€3 = 1'〇131181:11688上的目标值小于11{,则令11{=叉71,?¥ 1{ = ?(171), 卩11〇1{ = ?11〇(叉71),且11^^=1;其中,卩\^表示叉1{的目标向量,艮口卩\^=?(叉 1{) = [;1;'1(叉1{)山(叉1{),1;'3 (xk)] JUy1)表示 xy1 的目标向量,SPFUyiXfiUy1) 々(xy1) 々(xy1)],Fnok 表示 xk 经归 一化后的目标向量,即Fnok= [fn0i(xk),fn02(xk),fn03(xk)] JnoUy1)表示xy1 经归一化后 的目标向量,即Fno(xy1) = [fn0i(xy1) Jnc^xy1) Jnc^xy1)];
[0041 ] (5.4)、如果mark = l,则令c = c+l;
[0042] (5.5)、从?(1)中删除序号1^;如果(3<1^且?(1)非空集,则转至(5.2) ;否则,如果1 <N,则令i = i+1,转至(5.1),否则转至步骤(6);
[0043] 步骤(6)、终止准则判断:
[0044] 如果ct>NmbEvl,则终止迭代,输出外部存储器Arc,即一组Pareto非支配的柔性 作业车间调度解;否则,令t = t+l,转至步骤(4)。
[0045] 作为本发明所述的一种基于分解多目标进化算法的柔性车间鲁棒调度方法进一 步优化方案,步骤(1)中所述优化目标中的作业完工时间表示完成柔性作业车间中的所有 作业所花费的时间开销,定义为:
[0046] f, - niake.span/ - max (C )- min (.S )
[0047] 其中,Cv和Sv分别表示在第v项作业中,最后一道工序的加工完成时间和第一道工 序的加工开始时间,v=l,2,…,n,n为柔性作业车间中所有作业的总数;I表示初始景象,即 针对不确定属性,设它的值为某一预估值确定不变,在此情况下计算作业完工时间;
[0048] 步骤(1)所述优化目标中的机器最大负载表示各台机器加工时间的最大值,定义 为: W.i-
[0049] 八二'wrkbmf,:- nvix (y pro()) ~ 1 5=1,2,??-.m ' ▲
[0050] 其中,m是柔性作业车间内机器的总台数;是根据调度方案,在第s台机器上按 第r个顺序进行加工的工序的加工时间;Ws是分配到第s台机器上的工序个数;
[0051] 步骤(1)所述优化目标中,调度性能的鲁棒性是衡量调度方案的作业完工时间和 机器的最大负载对不确定因素的敏感程度,定义为:
[0053] 鲁棒性采用基于景象的方法定义,将一个调度方案在不确定属性的多种采样值 {0q|q=l,2,…,Q}下进行仿真,以比较作业完工时间和机器最大负载的实际值与初始预估 值之间的差值;其中,makespanq和workloadq分别是下相应的作业完工时间和机器最大负 载目标值;
[0054] 步骤(1)所述的工序优先级约束是指每项作业的各道工序是按事先确定的顺序进 行加工的;在柔性作业车间问题中,每道工序可以在它允许的机器集合中任一台上进行加 工;
[0055] 步骤(1)所述的禁止抢先占有的约束包括:(i)每道工序的加工,只能在同一作业 中排在它之前的所有工序都完成之后才能开始进行;(ii)如果将一道工序分配给了某台机 器,只有在这台机器完成之前调度的所有工序之后,才能开始该道工序的加工。
[0056] 作为本发明所述的一种基于分解多目标进化算法的柔性车间鲁棒调度方法进一 步优化方案,步骤(3.2)所述的随机产生初始群体是指,每个个体中的工序序列向量通过随 机排列所有作业中的所有工序生成;对于机器分配向量,将每道作业工序随机分配到它机 器集合中的任一台上进行加工。
[0057] 作为本发明所述的一种基于分解多目标进化算法的柔性车间鲁棒调度方法进一 步优化方案,步骤(4.3)和步骤(5.3)所述的Pareto支配是指:设xdPx 2为多目标优化问题的 两个解,问题的目标个数为nu,假设所有目标均需最小化,称XlParet 〇支配x2当且仅当
[0058] V ge {1,2..((XiK/Jxy)
[0059] 且3 /ze !1,2.….叫;:/;,(')< /:(x:)
[0060] 其中,g和h分别表示目标的某一个序号,fg(Xl)和fg(X2)分别表示xdPx 2在第g个目 标fg上的目标值,fh(Xl)和fh(X2)分别表示XI和X2在第h个目标fh上的目标值。
[0061] 作为本发明所述的一种基于分解多目标进化算法的柔性车间鲁棒调度方法进一 步优化方案,步骤(3)和步骤(6)所述的Pareto非支配解是指,如果在某一集合中不存在任 何其它解x ' Pareto支配解x,则称x为该集合中的Pareto非支配解。
[0062] 作为本发明所述的一种基于分解多目标进化算法的柔性车间鲁棒调度方法进一 步优化方案,步骤(4.2)所述的繁殖算子是指,基于微分进化算法中的变异算子和交叉算 子,设计一种改进的自适应变异算子和基于修复的交叉算子,由父代个体<和 第i个子问题的当前个体x 1,生成子代个体u1;其中,改进的自适应变异算子的实施方法如 下:
[0063] ^ = e-〇-〇i5t)
[0064] Jf' = /?[.t), + F{(x; -x;)] + (1 - fJ)[x + F2(.r -.r ) + K-x1)].
[0065] 其中,Fi,F4PF3是变异因子,它们的值分别从[0.5,1 ]中均匀随机生成;l是当前 外部存储器Arc中,距离x1最近的解,;参数0的值随着进化代数t的取值而变化;y 1是 由改进的自适应变异算子生成的个体;
[0066] 对于个体的工序序列向量和机器分配向量,分别实施上述所述改进的自适应变异 算子;对于生成的y1中的工序序列向量ys 1,将它的各个元素按从小到大的顺序进行排列,得 至Ijys1的排序向量tys1,并将排序后的每个元素在原向量ys 1中的位置索引记录在索引向量 I1中;将X1的工序序列向量XS1中各个元素按从小到大的顺序进行排列,得到XS 1的排序向量 七181,并令781(11)=七18 1,781(11)表示781中所有在11记录的位置上的元素;对于生成的7 1中 的机器分配向量ym1,针对每个元素,搜索其对应工序的机器集合,从中确定出与该元素值 最接近的机器,并将该机器替代此元素;如果有两台以上机器同时满足此条件,则从中随机 选择一台机器替换对应元素;更新后的工序序列向量ys 1和机器分配向量ym1构成新个体y1;
[0067] 所述基于修复的交叉算子的实施方法如下:
[0068] (a)、将由改进的自适应变异算子生成的个体yi与x1组合,构成子代个体uS \ v'n 加果 rand!u S CR 或= Imruf)
[0069] 甘a 人U = \丄…丄
[x;其匕
[0070] 其中X,兑,弋分别是uSySx1的第11个元素,L是个体长度,CRG[0,l]是交 叉概率,是从[0,1 ]中均匀随机产生的一个数,Irand1是从集合{1,2,…,L}中随机选择 的一个整数;
[0071] 在机器分配向量的表示方法中,y1的机器分配向量ym1与x 1的机器分配向量xm1在 相同位置上的机器对应于同一道工序;上述交叉算子直接作用于ym 1和xm1,交叉得到的结果 即为子代个体u1的机器分配向量um 1;
[0072] 针对yi的工序序列向量ys1与^的工序序列向量xs1,进一步实施以下步骤:
[0073] (b)、将步骤(a)求得的u1的工序序列向量us1中,将来自于xs1的元素位置索引记录 在1号索引向量indexi中,将来自于ys 1的元素位置索引记录在2号索引向量index2中;令us1 =叉81,临时索引向量七6111卩;[11(16叉2=:[11(16叉2,测试向量七68七=1181(;[11(16叉1),118 1(;[11(16叉1)表示 us1中所有在indexi记录的位置上的元素,索引删除向量donor_delete=[],[]表示空集合;
[0074] (c)、对test中的每个元素 ue,确定在ysVindexi)中是否存在一些元素等于ue;如 果存在,则从中均匀随机地选择一个元素,将选中的元素在ys1中的位置索引加入d〇nor_ (^16七6,并将该索引从;[11(1611中删除;否则,找出在781(;[11(1612)中等于116的元素,从中均勾 随机地选取一个,将它在ys 1中的位置索引加入donor_delete,并将该索引从index2中删除; 其中,ysVindexi)表示ys 1中所有在indexi记录的位置上的元素,ysVindexs)表示ys1中所 有在index2记录的位置上的元素;
[0075] (d)、将d〇n〇r_delet e中的元素从集合{1,2,…,L}中移除,即令索引保留向量 donar_reserve = {1,2, ???,L}\donar_delete,JHus1(tempindex2) =ys1(donar_reserve); 其中,\表示去除,1181(^611^;[11(1612)表示1181中所有在七611^;[11(1612记录的位置上的元素,5^ 1 (donar_reserve)表示ys1中所有在donar_reserve记录的位置上的元素。
[0076]本发明采用以上技术方案与现有技术相比,具有以下技术效果:
[0077] 1)本发明能够处理柔性作业车间生产环境中存在的不确定因素,在保证完工时间 较短、机器负载较为均衡等性能的同时,增强车间调度方案对不确定性的抗干扰能力,降低 调度性能对扰动的敏感程度;它能够同时处理工序排序和机器分配这两种调度策略,因此, 与现有技术相比,本发明更适合处理现实世界中存在不确定因素的柔性作业车间调度问 题。本发明提出的鲁棒调度技术对实际生产系统的成功实施具有重要意义;
[0078] 2)本发明同时优化了柔性作业车间的效率指标(完工时间、机器最大负载)和鲁棒 性,并采用基于分解的多目标进化算法对多个目标并行处理,从而能够为生产管理者提供 一组反映目标间不同折中程度的调度方案,为其做出最终的决策提供有力的参考;
[0079] 3)本发明设计了一种新型的,能够有效利用全局信息的子问题更新策略;设置外 部存储器保存Pareto非支配个体,并让这些精英个体有机会参与到子代个体的生成中;采 用一种改进的自适应变异算子和基于修复的交叉算子进行繁殖操作,以助于更好地维护算 法在"探索"和"利用"之间的平衡;这些机制能够有效地提高本发明的局部搜索能力,避免 陷入局部最优,快速高效地实现柔性作业车间中的调度任务。
【附图说明】
[0080] 图1是本发明的主体流程图。
[0081] 图2为个体的表示方法示例图。
[0082]图3为调度方案解Solution在初始景象下的甘特图。
[0083]图4为调度方案解Solution在扰动情况下的甘特图。
[0084]图5为调度方案解Solutionb在初始景象下的甘特图。
[0085]图6为调度方案解Solutionb在扰动情况下的甘特图。
【具体实施方式】
[0086] 下面结合附图对本发明的技术方案做进一步的详细说明:
[0087] -个柔性作业车间中,有5台机器,4项待加工的作业。每项作业的每道工序均可以 在5台机器上分别加工。这些工序中,有部分工序的加工时间存在不确定性。4项作业包含的 工序个数、每道工序在各台允许加工机器上的初始预估加工时间如表1所示。
[0088] 表 1
[0090] 使用本发明提出的基于分解多目标进化算法的柔性作业车间鲁棒调度方法求解 该柔性作业车间实施例的调度方案,主体流程图如图1所示,具体步骤如下:
[0091] (1)初始化。读取柔性作业车间的输入信息,包括每项作业的工序数、每项作业中 每道工序可分配的机器集合、各工序在相应机器上的初始预估加工时间(见表1);定义优化 目标,设定约束条件:
[0092]优化目标中的"作业完工时间"表示完成柔性作业车间中的所有作业所花费的时 间开销,它定义为:
[0093] ./' -makespun, - max (C )- min (5,)
[0094] 其中,Cv和Sv分别表示第v项作业Jv中,最后一道工序的加工完成时间和第一道工 序的加工开始时间,v = 1,2,…,n; n为柔性作业车间中所有作业的总数,本实例中,n = 4; I 表示初始景象,本实例中,针对加工时间这一不确定属性,假设它的值为初始预估值确定不 变,在此情况下计算初始景象下的作业完工时间;
[0095] 优化目标中的"机器最大负载"表示各台机器总的加工时间的最大值,它定义为: iv_
[0096] (^workload = max C^pro0 ) ?.~' r~\
[0097] 其中,m是柔性作业车间内机器的总台数,本实例中,m = 5;;?ro#是根据当前调度 方案,在第s台机器上按第r个顺序进行加工的工序的加工时间;Ws是分配到第s台机器上 的工序个数;I表示初始景象;
[0098]优化目标中"调度性能的鲁棒性"衡量调度方案的作业完工时间和机器的最大负 载对不确定因素的敏感程度,它定义为:
[0100] 鲁棒性采用基于景象的方法定义,将一个调度方案在不确定工序加工时间的多种 采样值{eq|q=l,2,…,Q}下进行仿真,以比较作业完工时间和机器最大负载的实际值与初 始预估值之间的差值;其中,%是不确定工序加工时间的第q个采样值,Q是样本个数; makespanq和workloadq分别是采样值%下相应的作业完工时间和机器最大负载目标值;
[0101] 工序优先级约束是指每项作业的各道工序是按事先确定的顺序进行加工的;在柔 性作业车间问题中,每道工序可以在它允许的机器集合中任一台上进行加工;
[0102] 禁止抢先占有的约束包括:(i)每道工序的加工,只能在同一作业中排在它之前的 所有工序都完成之后才能开始进行;(ii)如果将一道工序分配给了某台机器,只有在这台 机器完成之如调度的所有工序之后,才能开始该道工序的加工;
[01 03] (2)初始化基于分解的多目标进化算法的参数:
[0104] 设置目标评价次数NmbEv 1为15000、群体规模(即子问题的个数)N为500、产生N个 均匀分布的目标权向量A1,…,AN、子问题的邻域规模T为50,繁殖算子中的父代个体从邻域 里选取的概率S为0.7、邻域个体允许被每个子代个体替换的最大数目nr为5,评价鲁棒性时 采样的不确定场景个数Q为30,交叉概率CR为0.3;
[0105] (3)确定每个子问题的邻域,产生初始父代群体:
[0106] (3.1)对第i个子问题,i = l,???,N,确定邻域B(i) = {ii,-_,iT}。分别计算第i个子 问题的权向量入1和其它(N -1)个子问题权向量间的欧拉距离,将T个距离A1最近的权向量 1所对应的子群体序号{ii,…,iT}构成B(i);
[0107] (3.2)随机产生初始父代群体{x1,…,/},其中个体x1为第i个子群体的当前解;群 体中的每个个体包括工序序列向量和机器分配向量;随机采样一组不确定性场景0 q,q=l, 2,…,Q;计算初始父代群体中每个个体的目标值fi = makespani、f2 = workloadi和f3 = robustness;从初始父代群体中确定出所有的Pareto非支配解构成外部存储器Arc;设置目 标评价次数计数变量ct = N;归一化各目标值,将每个个体x1的第j个目标值fj (x1)映射到区 间[0,1 ]之间,产生x1在第j个目标上的归一化值fnoj(x1),即: i f(/,(x!')-fDi(/rx-/fn)如果 /Tx 矣 /輕
[0108] fn〇i(x) = \ J 1 1 1 1 1 [i 其它
[0109] 其中,/fn和/r^分别表示当前父代群体中的所有个体在第j个目标上的最大值和 最小值,j = l,2,3。
[0110] (3.3)设置进化代数t = 0;
[0111] 初始父代群体由N个随机生成的个体组成。本发明中,一个个体包括两个向量:(i) 工序序列向量;(ii)机器分配向量。图2给出了个体表示方法的示例。对于工序序列向量,采 用基于作业的表示方法,同一作业的工序均用该作业号表示。例如,图2中,工序0n、0 12、013 均用作业号1表示。每道工序依据它在工序序列向量中出现的顺序进行转换。例如,工序序 列向量中第一个出现的数字3代表工序0 31,第二个出现的3代表032,依此类推。因此,可将图 2中的工序序列向量解释为:
[0112] 0,: >-〇,, >- 〇v >- >- 〇t. > 〇i:
[0113] 其中,表示将工序a首先加入它所分配机器的等待队列,然后再调度工序b。
[0114] 机器分配向量表示给每道工序分配的机器。它的分配顺序是:从当前序号最小作 业的第一道工序到序号最大作业的最后一道工序。例如,在图2的机器分配向量中,第一个 元素2表示将作业1的第一道工序On分配给机器2,第二个元素3表示将作业1的第二道工序 〇 12分配给机器3,依此类推,机器分配向量可解释为:
[0115] Oil-机器 2,0i2-机器 3,0i3-机器 5,〇2i-机器 4,
[01 1 6] 〇31-机器5,〇32-机器3,〇41-机器 1,〇42-机器2
[0117]其中,-表示将工序分配给相应的机器。
[0118]随机产生初始群体是指,每个个体中的工序序列向量通过随机排列所有作业中的 所有工序生成;对于机器分配向量,将每道作业工序随机分配到它机器集合中的任一台上 进行加工;
[0119] Pareto支配是指:设xdPx2为多目标优化问题的两个解,问题的目标个数为m,假 设所有目标均需最小化,称xiPareto支配X2当且仅当 V ge: : /;.(x.,)
[0120] ri 〇 且彐 /?e{ 1.2,| (x:)
[0121]其中,g和h分别表示目标的某一个序号,fg(X1)和fg( X2)分别表示xdPx2在第g个目 标fg上的目标值,fh(Xl)和fh(X2)分别表示XI和X2在第h个目标fh上的目标值。
[0122] Pareto非支配解是指,如果在某一集合中不存在任何其它解x 'Pareto支配x,则称 x为该集合中的Pareto非支配解(简称非支配解)。提高Pareto非支配解在任何一个目标上 的性能,都必然会导致它在剩余的至少一个目标上的性能降低;
[0123] (4)生成子代群体:
[0124] 随机采样一组不确定性场景0q;设置子代群体=0,令i = 1;
[0125] (4.1)交配选择;
[0126] 产生一个均匀分布的随机数ranchGtOJ];设置第i个子问题的更新邻域P(i): 如果 nm/,
[0127]眷|U,...、」v)其它 ;
[0128]基于以下规则产生3个不同的父代个体忒、弋和<; V人卯)中均3随机地取二个子群宇号斤戶:和冬取子群丨切,的当前fe' ,,令 如果,層< 么占 从-丨1,…,A]屮均句随机地見取和开设置r卜y' r), = .如果占 S ;5+ j从丨i.…中均匀「遺仉地选収A P2.并设置八4 = A从,和冲均匀陶几地选取一1、个体。 i t£p.^<5 + (1-^)/3< mnd{ <5 + 2li-0)/3. 、从yl?c中均匀隨机地4取三竹1、丨本" a、,其它
[0130] (4.2)繁殖;
[0131] 采用基于微分进化算法的繁殖算子,由弋和x1生成子代个体u1;
[0132] (4.3)更新外部存储器;
[0133] 评价u1的目标值,并归一化各目标值;令ct = ct+1;将u1加入外部存储器Arc;并删 除当前Arc中所有重复解和Pareto支配解;设Chipop = Chipop U u1;如果i <N,则令i = i+1, 转至(4.1),否则执行步骤(5);
[0134] 步骤(4.2)所述的繁殖算子是指,基于微分进化算法中的变异算子和交叉算子,设 计一种改进的自适应变异算子和基于修复的交叉算子,由父代个体4,<,4和第i个子 问题的当前个体x1,生成子代个体u1;其中,改进的自适应变异算子的实施方法如下:
[0135] 0 = e-0.015t,
[0136] = /? [x;, + F{ (x; -x;3,)] + (1 - ^)[x1' + F2(x; -x3p) + F3 )].
[0137] 其中,内,内和内是变异因子,它们的值分别从[0.5,1]中均匀随机生成是当前 外部存储器Arc中,距离x1最近的解,xL, # xS参数0的值随着进化代数t的取值而变化;y1是 由改进的自适应变异算子生成的个体;
[0138] 对于个体的工序序列向量和机器分配向量,分别实施上述所述改进的自适应变异 算子;在实施完成后,生成向量中的部分元素可能为非整数,即不可行值。为了解决该问题, 对于生成的y1中的工序序列向量ys1,将它的各个元素按从小到大的顺序进行排列,得到ys 1 的排序向量tys1,并将排序后的每个元素在原向量ys1中的位置索引记录在索引向量I 1中; 将X1的工序序列向量XS1中各个元素按从小到大的顺序进行排列,得到XS 1的排序向量txs1, 并令781(11)=〖18 1(781(11)表示781中所有在11记录的位置上的元素);对于生成的7 1中的机 器分配向量ym1,针对每个元素,搜索其对应工序的机器集合,从中确定出与该元素值最接 近的机器,并将该机器替代此元素;如果有两台以上机器同时满足此条件,则从中随机选择 一台机器替换对应元素;更新后的工序序列向量ys 1和机器分配向量ym1构成个体y1;
[0139] 所述基于修复的交叉算子的实施方法如下:
[0140] (a)将由改进的自适应变异算子生成的个体yi与x1组合,构成子代个体uS ,f v;,如果 Ci?或(//=/ramf)
[0141] 劣=j:Y:其它 ,ll = l,2,-,L
[0142] 其中,允,4分别是的第11个元素,L是个体长度,CRG[0,l]是交 叉概率,為是从[0,1]中均匀随机产生的一个数,Irand 1是从集合{1,2,…,L}中随机选择 的一个整数;
[0143] 在本发明机器分配向量的表不方法中,y1的机器分配向量ym1与x1的机器分配向量 xm1在相同位置上的机器对应于同一道工序。因此,上述交叉算子可以直接作用于ym1和xm 1, 交叉得到的结果即为子代个体u1的机器分配向量um1。
[0144] 对于工序序列向量,上述交叉算子的实施可能产生不可行结果,即在交叉后的工 序序列向量中,出现冗余的作业工序,而丢失了另外一些工序。为了解决该问题,本发明针 对yi的工序序列向量ys 1与^的工序序列向量xs1,需进一步实施以下步骤:
[0145] (b)将步骤(a)求得的u1的工序序列向量us1中,来自于xs 1的元素位置索引记录在1 号索引向量indexi中,将来自于ys1的元素位置索引记录在2号索引向量index2中;令us 1 = 叉81,临时索引向量七611^;[11(1612 = :[11(1612,测试向量七68七=1181(;[11(1611)(1181(;[11(1611)表示118 1 中所有在indexi记录的位置上的元素),索引删除向量donor_delete=[],[]表示空集合;
[0146] (c)对test中的每个元素 ue,确定在ysV indexi) (ysV indexi)表示ys1中所有在 indeX1记录的位置上的元素)中是否存在一些元素等于ue;如果存在,则从中均匀随机地选 择一个元素,将选中的元素在ys 1中的位置索引加入donor_delete,并将该索引从indexi中 删除;否则,找出在781(;[11(^2)(78 1(;[11(^2)表示781中所有在;[11(^2记录的位置上的元素) 中等于ue的元素,从中均勾随机地选取一个,将它在ys 1中的位置索引加入donor_delete, 并将该索引从index2中删除;
[0147] (d)将d〇n〇r_delet e中的元素从集合{1,2,…,L}中移除,即令索引保留向量 donar_reserve = {1,2,…,L} \ donar_delete (\ 表不去除),且us1) tempindex2) = ys1 (donar_reserve) (1181<^611^;[11(1612)表示1181中所有在七611^;[11(1612记录的位置上的元素,5^ 1 (donar_reserve)表示ys1中所有在donar_reserve记录的位置上的元素)。
[0148] (5)解的更新:
[0149] 设混合群体Mixpop:^1,…,xN} UChipop,令i = l,
[0150] (5.1)令计数器(:=0;
[0151] (5.2)从第1个子问题的更新邻域?(1)中随机选取一个子群体的序号1^,1^£?(1);
[0152] (5 ? 3)对于第k个子问题,从Mixpop中确定最佳解;
[0153] 设标记变量mark = 0;给定第k个子问题的权向量,(#为第j个目 标的权值,¥之〇,./ = 1,2.,3,[二<=1)和参考向量/?,44:),<为第」个目标的参考 点,采用切比雪夫法求得任意一个个体x在第k个子问题的合成目标函数为:
[0154] g,c(x| lk ,z*) = max 12* fno {x)-z\ }
[0155]由于采用归一化目标值,设置参考向量z* = (0,0,0);对于Mixpop中的每个个体xy1 和第k个子问题的当前解xk,如果下述3个条件中有一个满足 入k,z*); (i i) gte (xy11 Ak,z*) = gte (xk | Ak,z*)且 xy1 Pare to 支配 xk; (i i i) gte (xy11 Ak,z*) = gte (叉1"|#,2*)且叉71在鲁棒性能€3 = 1'〇131181:11688上的目标值小于11{,则令11{=叉71,?¥ 1{ = ?(171), FnoyFnc^xy1),且mark= 1;其中,FVk 表示 xk 的目标向量,BPFVk=F(xk) = [fi(xk),f2(xk),f3 (xk)] JUy1)表示 xy1 的目标向量,SPFUyiXfiUy1) 々(xy1) 々(xy1)],Fnok 表示 xk 经归 一化后的目标向量,即Fnok= [fnoi(xk),fn02(xk),fn03(xk)] JnoUy1)表示xy1 经归一化后 的目标向量,即Fno(xy1) = [fnoi(xy1) Jnc^xy1) Jnc^xy1)];
[0156] (5.4)如果mark = l,则令c = c+l;
[0157] (5.5)从?(1)中删除序号1^;如果(3<1^且?(1)非空集,则转至(5.2);否则,如果1< N,则令i = i+l,转至(5.1),否则转至步骤(6);
[0158] 步骤(6)终止准则判断:
[0159] 如果ct>NmbEvl,则终止迭代,输出外部存储器Arc,即一组Pareto非支配的柔性 作业车间调度解,将这些解提供给生产管理者进行参考,并由他从中挑选出一个符合生产 要求的满意解作为调度方案;否则,令t = t+l,转至步骤(4)。
[0160] 本发明的效果可以通过以下仿真实验进一步说明:
[0161] 1.实验条件:
[0162] 在〇?1]为1的61(:〇代011〇2.26抱、内存468、¥1灿0¥5 7系统上使用1&^1&匕2010进 行仿真。
[0163] 2.实验内容:
[0164] 本发明针对上述具有5台机器,4项作业的柔性作业车间实施例求解生产调度方 案。本实施例中,每项作业的每道工序均可以在5台机器上分别加工。这些工序中,有部分工 序的加工时间存在不确定性。4项作业包含的工序个数、每道工序在各台允许加工机器上的 初始预估加工时间、以及受扰动后的实际加工时间如表1所示。
[0165] 3 ?实验结果
[0166] 本发明运行一次,可以求得一组Pareto非支配的柔性作业车间调度解。从这组解 中挑选2个调度方案解3〇1111:;[011 £1和301111:;[0111),当面临相同的加工时间不确定性时,给出它 们在效率性能(作业完工时间、机器最大负载)和鲁棒性能上的比较。每道工序在各台允许 加工机器上的初始预估加工时间、以及受扰动后的实际加工时间如表2所示。两个解在初始 预估景象下的作业完工时间makespani、机器最大负载workload〗、受扰动情况下的作业完工 时间makespanq、机器最大负载workloadq,以及它们的鲁棒目标值如表3所示。从表3可以看 出,为了获取更好的鲁棒性,Solutionb的初始作业完工时间makespani和机器最大负载 workloadi劣于Solutiona。然而,当面临相同的加工时间扰动时,Solutiona的作业完工时间 makespanq和机器最大负载workloadq却不仅劣于Solutionb在扰动情况下的相应值,也劣于 Solutionb在初始景象中的makespam和workloadi。由此说明,Solutionb所具有的优良鲁棒 性,补偿了它在初始景象中效率性能(makespani和workloadi)的弱势,使得它具有更强的抗 干扰能力,降低了它的效率性能对扰动的敏感程度。图3为调度方案解3 0111^01^在初始景 象中的甘特图,图4为调度方案解50111^01^在扰动情况下的甘特图,图5为调度方案解 Solutionb在初始景象中的甘特图,图6为调度方案解Solutionb在扰动情况下的甘特图。从 甘特图中可以获取为每道工序分配的加工机器,每道工序的开始加工时间和结束时间、每 项作业的开始加工时间和结束时间,以及每台机器上各工序的先后加工顺序。
[0167]表2
[0170] 每个单元格中每行的5个值分别为各工序在各台机器上的预估或扰动加工时间
[0171] 表3
[0173] 分别使用本发明方法,以及两个现有的经典多目标进化算法M0EA/D-DE和NSGA-II 求解本实施例,将求得的Pareto非支配解集在收敛性能和分布性能上进行比较。收敛性测 度采用超体积比率(hypervolume rati〇,简称HVR)度量。HVR的值越大,说明算法求得的 Pareto非支配解集在目标空间上的收敛性越好,分布越广。分布性能用测度Spread度量, Spread越小,说明算法求得的Pareto非支配解集的分布越宽广且越均勾。将本发明方法和 其它两种已有算法分别在本实施例中运行30次,采用显著性水平为0.5的Wilcoxon秩和检 验法对3种算法在30次运行中的性能进行统计测试,结果如表4所示。表4中,p值是Wilcoxon 秩和检验法的返回值,假设两组样本的分布具有相同的中值,则P值表示样本数据支持该假 设的证据,P值越大,证据越强。符号'+/_/='分别表示,在算法A vs.算法B中,依据所采用 的显著性水平为0.5的Wilcoxon秩和检验法,算法A显著优于B,或算法A显著劣于B,或算法A 和B之间没有显著差别。由表4可见,在本实施例中,对于收敛性测度HVR和分布性能用测度 Spread,本发明均显著优于M0EA/D-DE和NSGA-II,说明与两种已有的方法相比,本发明能够 为生产管理者提供一组分布更宽广,且收敛性更好的Pareto非支配解。
[0174]表4
[0176] 综上,本发明提出的基于分解多目标进化算法的柔性作业车间鲁棒调度方法,由 于采用了新型的子问题更新策略,利用外部存储器中的精英个体参与子代个体生成,以及 使用改进的自适应变异算子和基于修复的交叉算子进行繁殖,从而可以更好地利用全局信 息,并维护算法在"探索"和"利用"之间的平衡,提高了算法的收敛特性和分布性能。这些机 制有效地提高了本发明的搜索能力,克服了传统的生产调度方法局部搜索能力较弱、易于 陷入局部最优、调度效率低下的缺点,能够快速高效地实现柔性作业车间中的调度任务。此 外,通过引入鲁棒性能指标,本发明能够处理柔性作业车间生产环境中存在的不确定因素, 在保证完工时间较短、机器负载较为均衡等性能的同时,增强车间调度方案对不确定性的 抗干扰能力。
[0177] 以上实施例仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是 按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明保护范围 之内。
【主权项】
1. 一种基于分解多目标进化算法的柔性车间鲁棒调度方法,其特征在于,包括以下步 骤: 步骤(1 )、读取柔性作业车间的输入信息,定义优化目标,设定约束条件: 车间的输入信息包括每项作业的工序数、每项作业中每道工序可分配的机器集合、各 工序在相应机器上的加工时间、正常工作的机器数目;优化目标包括作业完工时间、机器的 最大负载、调度性能的鲁棒性;约束条件包括工序优先级约束和禁止抢先占有的约束; 步骤(2)、初始化基于分解的多目标进化算法的参数: 设置迭代次数NmbEvl、群体规模N即为子问题的个数、产生N个均匀分布的目标权向量 、子问题的邻域规模T,繁殖算子中的父代个体从邻域里选取的概率δ、邻域个体允 许被每个子代个体替换的最大数目nr,评价鲁棒性时采样的不确定场景个数Q,以及交叉概 率CR; 步骤(3 )、确定每个子问题的邻域,产生初始父代群体: (3.1) 、对第i个子问题,i = 1,…,N,确定邻域B(i) = {ii,…,?τ};分别计算第i个子问题 的权向量λ1和其它(N-1)个子问题权向量间的欧拉距离,将T个距离λ 1最近的权向量 …,·?,又^所对应的子群体序号Ui,…,?τ}构成B(i); (3.2) 、随机产生初始父代群体{x1,···,/},其中,个体X1为第i个子群体的当前解;群体 中的每个个体包括工序序列向量和机器分配向量;随机采样一组不确定性场景0 q,q=l, 2,…,Q;计算初始父代群体中每个个体的目标值fi = makespani、f2 = workloadi和f3 = robustness ;makespani和workloadi分别表不初始景象下的作业完工时间和机器最大负载, robustness表示调度性能的鲁棒性;从初始父代群体中确定出所有的Pareto非支配解构成 外部存储器Arc;设置目标评价次数计数变量ct = N;归一化各目标值,将每个个体X1的第j 个目标值fXx1)映射到区间[〇,1]之间,产生X1在第j个目标上的归一化值fnoXx 1),即:其中,/Γη和./Γχ分别表示当前父代群体中的所有个体在第j个目标上的最大值和最小 值,j = l,2,3; (3.3) 、设置进化代数1 = 0; 步骤(4)、生成子代群体: 随机采样一组不确定性场景9q;设置子代群体= 0,令i = 1; (4.1)、交配选择; 产生一个均匀分布的随机数ranch e [〇,1 ];设置第i个子问题的更新邻域P(i):基于以下规则产生3个不同的父代个体 <和< : (4.2) 、繁殖;采用基于微分进化算法的繁殖算子,由 <,<,< 和x1生成子代个体u1; (4.3) 、更新外部存储器; 评价u1的目标值,并归一化各目标值;令ct = ct+Ι;将u1加入外部存储器Arc;并删除当 前Arc中所有重复解和Pareto支配解;设Chipop = Chipop Uu1;如果i<N,则令i = i+l,转至 (4.1),否则执行步骤(5); 步骤(5)、解的更新: 设混合群体Mixpop= {x1,…,xN} U Chipop,令i = 1, (5.1) 、令计数器c = 0; (5.2) 、从第1个子问题的更新邻域?(1)中随机选取一个子群体的序号1^,1^£?(1); (5.3) 、对于第k个子问题,从Mixpop中确定最佳解; 设标记变量mark = 0;给定第k个子问题的权向量f 为第j个目标的权 值,1; 20, / = 1,2,3 , Σ?Α = 1和参考向量^ ),z;为第J_个目标的参考点,J_ = 1,2, 3,采用切比雪夫法求得任意一个个体X在第k个子问题的合成目标函数为:由于采用归一化目标值,设置参考向量一 =(〇,〇,〇);对于Mixpop中的每个个体xy1和第 k个子问题的当前解Λ如果下述3个条件中有一个满足dDgWWyxgtUlxO; (:[;0区切(叉71|入1^*)=区切^|入1^*)且叉7 1?&代1:〇支配叉1^(;[;[;0区切(叉71|入1^*)=区切^|入 1% z*)且xy1在鲁棒性能f3 = robustness上的目标值小于xk,则令xk = xy1= ,Fnok = Fno(xy1),且mark=l;其中,FVk表示xk的目标向量,BPFV k=F(xk) = [fl(xk),f2(xk),f3(xk)], FUy1)表示xy1的目标向量,即FUy1) = [fiUy1) AUy1) 々(xy1)],Fnok表示xk经归一化后 的目标向量,即Fno k= [fn〇i(xk),fn〇2(xk),fn〇3(xk)] JnoUy1)表示xy1经归一化后的目标 向量,即FnoUySilifnoiUy 1) .fnc^xy1) .fnc^xy1)]; (5.4) 、如果mark= 1,则令c = c+l; (5.5) 、从?(1)中删除序号1^;如果(3<&且?(1)非空集,则转至(5.2);否则,如果1<1则 令i = i+l,转至(5.1),否则转至步骤(6); 步骤(6)、终止准则判断: 如果ct>NmbEvl,则终止迭代,输出外部存储器Arc,即一组Pareto非支配的柔性作业 车间调度解;否则,令t = t+Ι,转至步骤(4)。2.根据权利要求1所述的一种基于分解多目标进化算法的柔性车间鲁棒调度方法,其 特征在于,步骤(1)中所述优化目标中的作业完工时间表示完成柔性作业车间中的所有作 业所花费的时间开销,定义为: 其中,Cv和Sv分别表示在第V项作业中,最后一道工序的加工完成时间和第一道工序的 加工开始时间,V=l,2,…,n,n为柔性作业车间中所有作业的总数;I表示初始景象,即针对 不确定属性,设它的值为某一预估值确定不变,在此情况下计算作业完工时间;步骤(1)所述优化目标中的机器最大负载表示各台机器加工时间的最大值,定义为:其中,m是柔性作业车间内机器的总台数;pr,是根据调度方案,在第s台机器上按第r 个顺序进行加工的工序的加工时间;ws是分配到第s台机器上的工序个数; 步骤(1)所述优化目标中,调度性能的鲁棒性是衡量调度方案的作业完工时间和机器 的最大负载对不确定因素的敏感程度,定义为:鲁棒性采用基于景象的方法定义,将一个调度方案在不确定属性的多种采样值{9q|q = 1,2,···,〇}下进行仿真,以比较作业完工时间和机器最大负载的实际值与初始预估值之间 的差值;其中,makespanq和workloadq分别是θη下相应的作业完工时间和机器最大负载目标 值; 步骤(1)所述的工序优先级约束是指每项作业的各道工序是按事先确定的顺序进行加 工的;在柔性作业车间问题中,每道工序可以在它允许的机器集合中任一台上进行加工; 步骤(1)所述的禁止抢先占有的约束包括:(i)每道工序的加工,只能在同一作业中排 在它之前的所有工序都完成之后才能开始进行;(ii)如果将一道工序分配给了某台机器, 只有在这台机器完成之前调度的所有工序之后,才能开始该道工序的加工。3. 根据权利要求1所述的一种基于分解多目标进化算法的柔性车间鲁棒调度方法,其 特征在于,步骤(3.2)所述的随机产生初始群体是指,每个个体中的工序序列向量通过随机 排列所有作业中的所有工序生成;对于机器分配向量,将每道作业工序随机分配到它机器 集合中的任一台上进行加工。4. 根据权利要求1所述的一种基于分解多目标进化算法的柔性车间鲁棒调度方法,其 特征在于,步骤(4.3)和步骤(5.3)所述的Pareto支配是指:设xdPx 2为多目标优化问题的两 个解,问题的目标个数为nu,假设所有目标均需最小化,称XlParet 〇支配X2当且仅当其中,g和h分别表示目标的某一个序号,4(11)和匕(12)分别表示11和1 2在第8个目标匕 上的目标值,fh(Xl)和fh(X2)分别表不XI和X2在第h个目标fh上的目标值。5. 根据权利要求1所述的一种基于分解多目标进化算法的柔性车间鲁棒调度方法,其 特征在于,步骤(3)和步骤(6)所述的Pareto非支配解是指,如果在某一集合中不存在任何 其它解X ' Pareto支配解X,则称X为该集合中的Pareto非支配解。6. 根据权利要求1所述的一种基于分解多目标进化算法的柔性车间鲁棒调度方法,其 特征在于,步骤(4.2)所述的繁殖算子是指,基于微分进化算法中的变异算子和交叉算子, 设计一种改进的自适应变异算子和基于修复的交叉算子,由父代个体, 4和第i 个子问题的当前个体X1,生成子代个体u1;其中,改进的自适应变异算子的实施方法如下: 0. e-0.015t,其中,Fi,FdPF3是变异因子,它们的值分别从[0.5,1 ]中均匀随机生成;I是当前外部 存储器Arc中,距离X1最近的解,2 ;参数邱勺值随着进化代数t的取值而变化;y1是由改 进的自适应变异算子生成的个体; 对于个体的工序序列向量和机器分配向量,分别实施上述所述改进的自适应变异算 子;对于生成的y1中的工序序列向量ys1,将它的各个元素按从小到大的顺序进行排列,得到 ys1的排序向量tys1,并将排序后的每个元素在原向量ys1中的位置索引记录在索引向量Γ 中;将X1的工序序列向量xs1中各个元素按从小到大的顺序进行排列,得到xs1的排序向量 七18 1,并令781(11)=七181,781(1 1)表示781中所有在11记录的位置上的元素;对于生成的71中 的机器分配向量ym 1,针对每个元素,搜索其对应工序的机器集合,从中确定出与该元素值 最接近的机器,并将该机器替代此元素;如果有两台以上机器同时满足此条件,则从中随机 选择一台机器替换对应元素;更新后的工序序列向量ys 1和机器分配向量ym1构成新个体y1; 所述基于修复的交叉算子的实施方法如下: (a) 、将由改进的自适应变异算子生成的个体71与11组合,构成子代个体d:其中,《(,Μ , X〗分别是u1,y1,X1的第11个元素,L是个体X1的长度,CR e [ 〇,1 ]是交叉概 率,η?#是从[〇,1 ]中均匀随机产生的一个数,lrand^从集合{1,2,…,L}中随机选择的一 个整数; 在机器分配向量的表示方法中,y1的机器分配向量ym1与X1的机器分配向量xm 1在相同位 置上的机器对应于同一道工序;上述交叉算子直接作用于ym1和xm1,交叉得到的结果即为子 代个体u 1的机器分配向量um1; 针对工序序列向量781与^的工序序列向量,进一步实施以下步骤: (b) 、将步骤(a)求得的u1的工序序列向量us1中,将来自于xs1的元素位置索引记录在1 号索引向量indexi中,将来自于ys1的元素位置索引记录在2号索引向量index2中;令us1 = xs1,临时索引向量tempindex2 = index2,测试向量test = ) indexi)表示us1 中所有在indexi记录的位置上的元素,索引删除向量donor_delete=[],[]表示空集合; (c) 、对test中的每个元素 ue,确定在ys1!; indexi)中是否存在一些元素等于ue;如果存 在,则从中均匀随机地选择一个元素,将选中的元素在ys1中的位置索引加入d 〇nor_ delete,并将该索引从indexi中删除;否则,找出在ysVindex〗)中等于ue的元素,从中均勾 随机地选取一个,将它在ys 1中的位置索引加入donor_delete,并将该索引从index2中删除; 其中,ysVindexi)表示ys 1中所有在indexi记录的位置上的元素,ysVindexs)表示ys1中所 有在index2记录的位置上的元素; (d) 、将donor_delete中的元素从集合{1,2,…,L}中移除,即令索引保留向量donar_ re serve = {1,2,**· ,L}\donar_delete ?_@ius1( tempindex2) =ys1(donar_reserve) ; A 表示去除,usHtempindex〗)表示us1中所有在tempindex2记录的位置上的元素, reserve)表示ys1中所有在donar_reserve记录的位置上的元素。
【文档编号】G05B13/04GK105929690SQ201610281979
【公开日】2016年9月7日
【申请日】2016年4月29日
【发明人】申晓宁, 韩莹, 张敏, 付景枝, 陈逸菲, 赵丽玲, 林屹
【申请人】南京信息工程大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1