主权项 |
1.一种基于不等量二分法的开放车间调度问题关键操作识别方法,其特征在于:采用以下步骤:步骤1:问题编码:对开放车间调度问题采用基于操作的整数编码,得到编码序列I<sub>0</sub>={g<sub>1</sub>,g<sub>2</sub>,...,g<sub>N</sub>},其中N是I<sub>0</sub>中包含的基因个数,g<sub>j</sub>是I<sub>0</sub>的第j个基因,j为基因在编码序列I<sub>0</sub>中的位置编号,基因所表示的整数值对应实际调度问题中的一个工件编号,某个整数值在I<sub>0</sub>中按从左向右顺序出现的次数表示该整数值对应工件的工序数;步骤2:对编码序列I<sub>0</sub>进行活动解码运算,得到编码序列I<sub>0</sub>对应的总的完工时间V<sub>0</sub>和编码序列I<sub>0</sub>对应的生产方案S<sub>0</sub>;步骤3:参数初始化:迭代次数sd初始值为1,邻域搜索左边界pos<sub>L</sub>初始值为1,邻域搜索右边界pos<sub>R</sub>初始值为N;步骤4:采用以下步骤产生区间[pos<sub>L</sub>+1,pos<sub>R</sub>-1]内的随机整数mid:步骤4.1:产生区间[0,1]内的随机实数r;步骤4.2:产生区间[pos<sub>L</sub>+1,pos<sub>R</sub>-1]内的随机实数tmid:tmid=r×[(pos<sub>R</sub>-1)-(pos<sub>L</sub>+1)]+(pos<sub>L</sub>+1);步骤4.3:对步骤4.2得到的随机实数tmid进行取整运算,得到区间[pos<sub>L</sub>+1,pos<sub>R</sub>-1]内的随机整数mid;步骤5:对编码序列I<sub>0</sub>中位置编号对应区间[pos<sub>L</sub>,mid]的所有基因利用洗牌算法随机重排,得到重排后的编码序列I<sub>L</sub>;对编码序列I<sub>0</sub>中位置编号对应区间[mid,pos<sub>R</sub>]的所有基因利用洗牌算法随机重排,得到重排后的编码序列I<sub>R</sub>;步骤6:对编码序列I<sub>L</sub>,I<sub>R</sub>进行活动解码运算,得到编码序列I<sub>L</sub>,I<sub>R</sub>对应的总的完工时间V<sub>L</sub>,V<sub>R</sub>;步骤7:根据步骤6得到的编码序列I<sub>L</sub>,I<sub>R</sub>对应的总的完工时间V<sub>L</sub>,V<sub>R</sub>,对比编码序列I<sub>0</sub>对应的总的完工时间V<sub>0</sub>,更新邻域搜索左边界<sub>p</sub>os<sub>L</sub>和邻域搜索右边界<sub>p</sub>os<sub>R</sub>,更新规则为:<img file="FDA00002736107300011.GIF" wi="969" he="231" />步骤8:若|pos<sub>R</sub>-pos<sub>L</sub>≥2,则进行步骤9,否则进行步骤10;步骤9:若迭代次数sd小于最大迭代次数SD,则迭代次数加1,并返回步骤4,否则进行步骤10;步骤10:根据得到的基因位置编号区间[pos<sub>L</sub>,pos<sub>R</sub>],该基因位置编号区间内对应的所有工件组成关键工件集合J<sup>*</sup>,关键工件在该基因位置编号区间内对应的工序组成关键工序集合P<sup>*</sup>,关键工件以及关键工序根据生产方案S<sub>0</sub>得到关键机器集合M<sup>*</sup>,J<sup>*</sup>、P<sup>*</sup>和M<sup>*</sup>组成关键操作集合O<sup>*</sup>。 |