1.一种基于改进鲸鱼算法求解柔性作业车间调度的方法,其特征在于,包括以下步骤:步骤1:对柔性作业车间调度的机器选择和工序排序进行编码,建立柔性作业车间调度问题的数学模型;
步骤2:设置改进鲸鱼算法种群规模、最大迭代次数和位置元素,并利用混沌反向学习策略和搜索法生成初始种群;
步骤3:定义适应度函数:
其中,Fmax表示工件的最大完工时间, 表示工件i的完工时间,n表示工件数;计算种群中各调度解的适应度值,得到当前最优的调度解;
步骤4:判断当前迭代次数是否大于最大迭代次数;否,则执行步骤5‑8;是,则执行步骤
9;
步骤5:为最优鲸鱼个体设置计数器,若改进鲸鱼算法迭代一次后最优鲸鱼个体未发生改变,则计数器值加1,判断当前最优鲸鱼个体的计数器值是否不小于预设值;是,则执行步骤6;否,则执行步骤7;
步骤6:对调度解执行变邻域搜索操作,更新调度解;
步骤7:将调度解转换为鲸鱼个体位置向量,并保留调度解对应的鲸鱼个体;
步骤8:采用改进鲸鱼算法更新鲸鱼个体位置信息;将鲸鱼个体位置向量转换为调度解S完成种群更新,令t=t+1;其中,t为当前迭代次数,转至步骤3;
步骤9:输出调度解;
所述改进鲸鱼算法包括环绕捕食、发泡网攻击和随机搜索;其中:环绕捕食的数学模型为:
其中: t表示当前迭代次数, 和 是系
数向量, 是当前最优鲸群个体的位置向量, 是当前鲸群个体的位置向量,| |是取绝对值,·是逐元素相乘,在迭代过程中其内部元素非线性收敛因子a在发泡网攻击和随机搜索中从2线性递减到0,表达式为 tmax为最大迭代次数;为随机向量,r取值范围为[0,1];
发泡网攻击包括收缩包围和螺旋式位置更新;收缩包围时 的变动范围随着 的减少而缩小, 的取值范围为[‑1,1];螺旋式位置更新的数学模型为:其中, 为鲸鱼最佳位置与猎物之间的距离;b为定义的控制对数螺线形状的常数,l为[‑1,1]之间的随机数;同时引入自适应权重ω:则发泡网攻击的数学模型为:
随机搜索的数学模型为:
其中, 为从当前种群中随机选择的个体位置矢量,p是[0,
1]中的一个随机数。
2.根据权利要求1所述的基于改进鲸鱼算法求解柔性作业车间调度的方法,其特征在于,所述步骤1中采用等长的两段式编码方式对柔性作业车间调度的机器选择和工序排序进行编码。
3.根据权利要求1所述的基于改进鲸鱼算法求解柔性作业车间调度的方法,其特征在于,所述步骤6的具体方法为:步骤6‑1:构建邻域结构N1、N2和N3;
步骤6‑2:进行变邻域搜索,具体包括以下步骤:*
步骤6‑2‑1:将当前最优个体位置X作为变邻域初始解X,设置λ←1,qmax←3最大迭代次数ηmax;
步骤6‑2‑2:设置q←1;
步骤6‑2‑3:若q=1,则X'←N1(X);若q=2,则X'←N2(X);若q=3,则X'←N3(X);
步骤6‑2‑4:将X'作为初始解进行局部搜索,得到最优解X”;
步骤6‑2‑5:若X”优于X,则X←X”,并设置q←1;否则,设置q←q+1;
步骤6‑2‑6:判断q>qmax是否满足,若满足,则设置q←q+1,转到步骤6‑2‑7;否则,转到步骤6‑2‑3;
步骤6‑2‑7:判断η>ηmax是否满足,若满足,结束;否则,转到步骤6‑2‑2。
4.根据权利要求3所述的基于改进鲸鱼算法求解柔性作业车间调度的方法,其特征在于,所述步骤6‑1包括以下步骤:步骤6‑1‑1:构建邻域结构N1:在工序排序部分的码段中任选两个元素,将选中的两个元素进行位置交换操作;
步骤6‑1‑2:构建邻域结构N2:在工序排序部分的码段中任选两个元素,将选中的两个元素中位置靠后的元素插入到位置靠前的元素前面的位置;
步骤6‑1‑3:构建邻域结构N3:在机器分配部分的码段中任选一个元素,该元素的可加工设备数量大于1台,然后将该元素的对应的加工设备变为其他可选设备,进而通过方案转换个体位置的方式生成新的排序方案。
5.根据权利要求3所述的基于改进鲸鱼算法求解柔性作业车间调度的方法,其特征在于,所述步骤6‑2‑4中局部搜索采用阈值接受法,包括以下步骤:步骤6‑2‑4‑1:获取初始解X',并设置阈值δ>0,γ←1,ρ←1和终止条件γmax;
步骤6‑2‑4‑2:若ρ=1,则X”←N1(X')∪N3(X');若ρ=0,则X”←N2(X')∪N3(X');
步骤6‑2‑4‑3:判断Cmax(X”)‑Cmax(X')≤δ是否满足;如果满足,则X'←X”;否则,设置ρ←|ρ‑1|;
步骤6‑2‑4‑4:令γ←γ+1,判断γ>γmax是否满足;如果满足,则X”←X',转到步骤6‑
2‑4‑5;否则,转到步骤6‑2‑4‑2;
步骤6‑2‑4‑5:局部搜索结束。
6.根据权利要求1所述的基于改进鲸鱼算法求解柔性作业车间调度的方法,其特征在于,所述将调度解S转换为鲸鱼个体位置向量的具体方法为:S1:机器选择:采用下式将工序可选机器集中已选机器的序号转换为鲸鱼个体位置向量元素值,x(i)=[2m/(s(i)‑1)](n(i)‑1)‑m,s(i)≠1其中:x(i)表示个体位置向量的第i个元素;s(i)表示元素i对应工序可以选择的机器个数;m表示机器总数;n(i)∈[1,s(i)]表示选定机器在可选机器集里面的序号;
如果s(i)=1,则x(i)在[‑m,m]内任意取值;
S2:工序排序:首先生成[‑m,m]内的一组与工序排序相对应的随机数,并按升序排列规则为每个随机数赋予一个唯一的ROV值,使得每个ROV值对应一个工序,然后根据工序的编码顺序对ROV值进行重排,重排后的ROV值对应的随机数顺序即为鲸鱼个体位置向量中各元素的值,组合为鲸鱼个体位置向量。
7.根据权利要求1所述的基于改进鲸鱼算法求解柔性作业车间调度的方法,其特征在于,所述将鲸鱼个体位置向量转换为调度解S的具体方法为:R1:机器选择:按照下式
得到选定机器在机器集里面的序号;其中:xij表示i工件的第j道工序所对应的个体位置元素;sij表示i工件的第j道工序可以选择的机器个数;nij∈[1,sij]表示选定机器在机器集里面的序号;如果sij=1,则xij在[‑m,m]内任取数值,2m表示个体位置向量的长度;
R2:工序排序:首先给每一个鲸鱼个体位置元素按升序的顺序赋予对应的ROV值,然后以ROV值作为元素编号,将ROV值与工序相对应构造得出相应的调度解S。