1.一种基于离散花朵授粉算法求解混合流水线调度问题的方法,其特征在于,包括以下具体步骤:S1:设置离散花朵授粉算法的目标参数,生成离散的初始化种群;其中,所述目标参数包括种群规模、授粉方式选择概率、最大工件块和最大迭代次数;
S2:对所述初始化种群中的花朵位置进行解码;
所述解码包括工件的排序和加工机器的选择两个部分,其具体过程包括:S21:在第一道工序中,各工件按照编码顺序确定加工次序,并将工件分配至当前加工速度最快的机器上进行加工;
S22:在第二道工序中,各工件根据前一道工序的加工完成时间确定加工次序,前一道工序先完工的工件优先加工,若前一道工序有多个工件同时完工,则随机确定上述工件的加工次序,并分配至当前加工速度最快的机器上进行加工;
S23:重复步骤S22,直到完成所有加工工序;
S3:计算所述初始化种群中花朵位置的适应度值,并选择最优的花朵位置;
S4:采用更新操作方法,对所述初始化种群的花朵位置进行更新操作;
S5:将更新后的花朵位置适应度值与更新前的花朵位置适应度值进行对比,并保留适应度值较低的花朵位置;
S6:将更新后的花朵位置适应度值与最优的花朵位置适应度值进行对比,并保留适应度值较低的花朵位置;
S7:执行动态自适应变化工件块的变领域搜索;
所述执行动态自适应变化工件块的变领域搜索的具体过程包括:S71:计算当前最优花朵位置ubest的适应度值cmax(ubest),其中计ubest=(u(1),u(2)...u(n));
S72:按照方程 计算当前工件块的工件个数step;
其中,max_step为最大工件块,iter为当前迭代次数,itermax为最大迭代次数;
S73:产生一个随机花朵位置s∈(1,n),并从花朵位置s开始删除当前最优花朵位置ubest中连续step个工件组成的工件块;设被删除的工件组成的工件块序列为vdelete=(v(1),v(2)...v(step)),则剩余工件组成的工件块序列为vleave=(v'(1),v'(2)...v'(n-step));
S74:设变量k的初始值为K=1;
S75:将vdelete(k)依次插入到vleave中的相应位置,并保留最好位置;
S76:若k
S77:如果目标适应度值Cmax(ubest)>Cmax(v),则令ubest=v;否则,保持ubest不变,并结束过程;
S8:判断是否满足终止条件,如果是,则输出最优花朵位置及其适应度值,并结束;如果否,则返回步骤S3。
2.根据权利要求1所述一种基于离散花朵授粉算法求解混合流水线调度问题的方法,其特征在于,步骤S1中,所述初始化种群由随机方式和LR算法相结合生成,其生成步骤如下:S11:采用LR算法产生m(m
S12:若m=size,则初始化结束;否则,随机产生一个可行解y=(y1,y2,...,yn);
S13:若可行解y不同于初始种群中的其它花朵位置,则把该可行解y放入初始种群中,此时m=m+1;否则,将y丢弃;
S14:返回步骤S12,直至初始化结束。
3.根据权利要求1所述一种基于离散花朵授粉算法求解混合流水线调度问题的方法,其特征在于,步骤S4中,所述更新操作方法为:针对所述初始化 种群中的每个花朵位置,产生一个随机数r,若r>Pa,则花朵位置按照方程 执行离散的花朵交叉授粉更新操作;否则,花朵位置按照方程 执行离散的自花授粉更新操作;其中,Pa为授粉方式选择概率,xbest为最优花朵位置,j、k均为变量,缩放因子ε为满足[0,1]之间的均匀分布随机数,⊕表示加法运算,Θ表示减法运算, 表示乘法运算。
4.根据权利要求3所述一种基于离散花朵授粉算法求解混合流水线调度问题的方法,其特征在于,所述加法运算⊕表示两个不同花朵位置进行交叉操作,其运算规则包括以下步骤:S411:设待进行加 法操作的两个花朵位置分别为ui=(ui,1,...ui,k,...ui,n)和uj=(uj,1...uj,2,...uj,n),vi为进行加 法后的结果;
S412:产生两个随机交叉点s和e,且s
S413:把ui中的(ui,s,...ui,k,...ui,e)赋值给(vi,s,...vi,k,...vi,e);
S414:删除uj中vi已有的花朵位置,并记录uj中剩余的花朵位置,并记为m[1,...,n-(e-s+1)];
S415:设计数器k=1;
S416:若e+k>n,则变量l=[(e+k)+n]%n,否则l=e+k;其中,%表示求余运算;
S417:执行vi(l)=m(k);
S418:如果k>n-(e-s+1),则结束算法,并输出vi;否则执行k=k+1,并返回步骤S416。
5.根据权利要求3所述一种基于离散花朵授粉算法求解混合流水线调度问题的方法,其特征在于,所述减法运算Θ表示两个不同的花朵位置进行相减操作,结果为置换序列,其运算规则包括以下步骤:S421:设待进行减法操作的两个花朵位置分别为ui=(ui,1,...ui,k,...ui,n)和uj=(uj,1,...uj,k,...uj,n),vi为进行减法后的结果;
S422:设计数器k=1;
S423:搜索ui(k)在uj中的位置index;
S424:如果k
S425:如果k
S426:执行uj=ui,并结束算法。
6.根据权利要求3所述一种基于离散花朵授粉算法求解混合流水线调度问题的方法,其特征在于,所述乘法运算 为根据缩放因子ε乘以减法运算的结果,运算结果为依ε概率保留减法运算的结果,其运算规则包括:(1)离散的花朵交叉授粉更新操作的乘法运算规则按以下方程进行表示:(2)离散的自花授粉更新操作的乘法运算规则按以下方程进行表示:其中,levy(λ)是一个服从Levy分布的随机数。