1.一种优化最大拖期的柔性作业车间调度的分布估计算法,其特征在于:包括以下步骤:
步骤1:建立基于最大完工时间的柔性作业车间调度与排产模型,确定决策变量,其中,决策变量为二维向量,即工序加工顺序向量OS和机器分配向量MS,决策变量步骤2:设置分布估计算法的初始化参数,如种群规模pop,优势种群比例系数η,迭代次数TMAX,工序概率矩阵P,工序概率矩阵P的学习系数α,局部搜索次数Nmax;
步骤3:采用随机算法产生N个初始可行解,组成初始种群;
步骤4:计算N个初始解的最大拖期时间,保留最好解;根据最大拖期时间,选出前SP=η*N个较好解的个体组成优势种群;
步骤5:采用前SP个个体优势种群的数据估计和更新工序概率矩阵P;
步骤6:根据新的工序概率矩阵P生成工序加工顺序方案,采用ECM规则获得机器分配方案,产生N个新个体,组成新的种群;
步骤7:根据局部搜索算法过程对N个新个体进行局部搜索,产生N个具有更好解的新个体,组成新的种群;
步骤8:检查是否满足某种停止准则,若满足则算法结束,得到的最好个体就是最优的调度方案结果;否则算法转到步骤4)继续执行。
2.根据权利要求1所述的优化最大拖期的柔性作业车间调度的分布估计算法,其特征在于:步骤1)所述的基于最大完工时间的柔性作业车间调度与排产模型数学描述如下:假设有n个工件和m台机器的调度任务,设所有工件集合为J={J1,J2,...,Jn},工件Ji包含ni个工序,工件Ji的工序序列为Oi={Oi1,Oi2,Oi3,...,Oini},所有机器集合为M={M1,M2,...,Mm},工件i工序j在机器k上的加工时间表示为Tiijk。
3.根据权利要求2所述的优化最大拖期的柔性作业车间调度的分布估计算法,其特征在于:所述的建立优化目标为最大拖期时间的柔性作业车间调度与排产模型,其优化目标的数学描述如下:其中,Ci为第i个工件的最大完工时间;di为第i个工件的交货期;
其约束条件如下:
Sij+Tiijk≤Si(j+1)i=1,2,...,n;j=1,2,...,m
Fijk+Tiijk≤Sghki,g=1,2,...,n;i≠g;j,h=1,2,...,m;
其中,Sij为工件i工序j的起始加工时间;Tiijk为工件i工序j在机器k上的加工时间;Fijk为工件i工序j在机器k上的起始加工时间;Sghk为机器k后续工序Ogh的起始加工时间;前一个约束表明每个工件的下一道工序只能在上一道工序完成后才能开始加工;后一个约束表明每台机器在同一时刻只能加工一道工序;机器的启动时间和搬运工件的时间忽略不计。
4.根据权利要求1所述的优化最大拖期的柔性作业车间调度的分布估计算法,其特征在于:步骤2)所述的工序概率矩阵P的初始化值为 其中,Nsum为工序总数。
5.根据权利要求1所述的优化最大拖期的柔性作业车间调度的分布估计算法,其特征在于,步骤5)所述的矩阵P的更新公式如下:其中, 为矩阵P第i行第j列第l次迭代时的概率,SP为优势种群中的个体数目, 的含义如下公式所示:
6.根据权利要求1所述的优化最大拖期的柔性作业车间调度的分布估计算法,其特征在于:步骤6)所述的根据估计的概率模型进行采样,根据工序概率矩阵P采用轮盘赌的方法生成新的工序排序方案,采用ECM规则生成机器分配方案,采用ECM规则生成机器分配方案,产生N个新个体,组成新的种群,其中,ECM规则如下:输入:π为所有工件工序的加工序列;D为加工序列维数;γj为机器j上加工工序的索引;Ψj为机器j上的加工工序序列,循环每一台机器上加工工序,执行γj=0,Ψj(γj)=Φ,Φ表示加工工序序列为空;找出能够以最早完工时间加工工序π(t)的机器j,执行γj=γj+1;Ψj(γj)=π(t)。
7.根据权利要求1所述的优化最大拖期的柔性作业车间调度的分布估计算法,其特征在于:对于步骤6)产生的N个新个体,采用局部搜索算法对N个新个体进行进一步的搜索,获得更好的N个新个体。
8.根据权利要求1所述的优化最大拖期的柔性作业车间调度的分布估计算法,其特征在于:对于步骤7)的局部搜索算法过程,具有三个邻域搜索,分别为Neighborhood1,Neighborhood2机和Neighborhood3,具体过程如下:Neighborhood1:对于个体的工序加工顺序向量OS,从OS中随机选择一个工序位置po作为插入点,将OS的第一道工序插入到po处,再从OS中随机选择一个工序位置po'作为插入点,将OS的最后一道工序插入到po'处,机器分配向量MS的分配方案保持不变;
Neighborhood2:对于个体的工序加工顺序向量OS,从OS中随机选择一个工序位置po,将OS的第一道工序与po位置的工序进行交换,再从OS中随机选择一个工序位置po',将OS的最后一道工序与po'位置的工序进行交换;机器分配向量MS的分配方案保持不变;
Neighborhood3:从加工机器中选择一台机器mach,对于个体s1,从个体s1工序加工顺序向量OS中找出当前安排在机器mach上加工的所有工序,随机选择一道工序J,从工序J的候选加工机器中选择一台不同于机器mach的机器mach',将工序J安排到机器mach'上加工。