基于改进鸡群算法获得工件加工最优调度的方法

文档序号:8904768阅读:587来源:国知局
基于改进鸡群算法获得工件加工最优调度的方法
【技术领域】
[0001] 本发明属于离散制造系统中单件小批量生产调度技术领域,用于柔性作业车间多 目标优化控制,具体是一种基于改进的鸡群算法获得工件加工最优调度的方法。
【背景技术】
[0002] 柔性作业车间调度(FlexibleJob-shopSchedulingProblem,FJSF0 是典型的 作业车间调度问题的一个扩展,它允许工序在一组机器集上加工。由于需要考虑机器选 择和工序排序问题使得FJSP更难处理,因此FJSP是一个NP-hard问题。FJSP包括单目 标FJSP和多目标FJSP。目前,单目标FJSP得到了广泛关注,众多学者提出了各种智能 算法求解该类问题。但在实际生产中调度问题往往包含着多个相互冲突的目标,相比较 单目标FJSP,多目标FJSP更佳贴近生产实际。求解多目标FJSP的方法主要分为两种, 一种是通过加权和的方法将多目标问题转化为单目标问题求解(Computers&In化strial Elngineering, 2010, 59 (4) : 647-662),另一种是Pareto非支配解的方法产生一组 Pareto非支配解,从中挑选出较为满意的Pareto最优解(AnnalsofOperations Research, 2010, 181(1):745-765)〇
[000引随着群智能算法的发展,粒子群算法讯eInternationalJournal ofAdvancedManufacturingTechnology, 2013, 67巧-12):2885-2901)、人工蜂 群算法(TheInternationalJournalofAdvancedManufacturingTechnolo gy,2011,55 巧-12) : 1159-1169)、蚁群算法(计算机集成制造系统,2011,17(3) :615-621) 等多种群体智能算法被用于求解多目标柔性作业车间调度问题。

【发明内容】

[0004] 本发明的目的是提供一种基于改进鸡群算法获得工件加工最优调度的方法,解决 现有技术在求解多目标柔性作业车间调度问题时算法的收敛精度低、编程难度大W及收敛 速度慢的问题。
[0005] 本发明采用的技术方案是,基于改进的鸡群算法获得工件加工最优调度方案,W 离散柔性制造车间进行多工件多工艺路线加工为对象,具体包括W下步骤:
[0006] 步骤1;对多目标柔性车间调度问题进行数学描述,并确定优化目标的评价指标: 完工时间T、单台机器最大负荷W,和所有机器总负荷W;
[0007] 步骤2;建立多目标柔性作业车间调度的优化目标函数;
[0008] 步骤3;确定调度优化过程的约束条件;
[0009] 步骤4;设计Pareto改进鸡群算法;
[0010] 步骤5 ;进行迭代运算,输出Pareto非支配解,对根据企业的实际需要从中选择符 合需要的最优解,并对其进行解码作为最终的调度方案。
[0011]其中,步骤2中的目标函数如下:
[001 引 完工时间;T=MinmaxIcuJ;iGJ,jG叫,kGM
[0013] 单台机器最大负荷
[0014] 所有机器总负荷
[0015] i为工件号、j为工序号,k为机器号,J为工件集,Ni为工件i的工序集,M为机器 集,m为机器数,叫为工件i的总工序数,n为工件数;
[0016] Cyk为工件i的j道工序在机器k上加工的完成时间;
[0017]tyk为工件i的J道工序在机器k上的处理时间;
[0018] Tk为机器k的总运行时间。
[0019] 步骤3中的约束条件包括:
[0023] 步骤4中,在描述改进的鸡群算法前先做如下假设:
[0024] (1)整个鸡群中存在着若干子群,每个子群都由一个公鸡、若干母鸡和一些小鸡组 成。
[00巧](2)如何把鸡群分成若干子群,W及如何确定鸡的种类取决于鸡自身的适应度值。 鸡群中,适应度值最好的若干个体作为公鸡,并且每只公鸡都是一个子群的头目,具有最差 适应度值的若干个体作为小鸡,剩余的个体就作为母鸡。母鸡随机选择属于哪个子群,母鸡 和小鸡的母子关系也是随机建立的。
[0026] (3)鸡群中的等级制度、支配关系和母子关系一旦建立了就保持不变,直至数代W 后才更新。
[0027] (4)每个子群中的个体都围绕该个子群中的公鸡寻找食物,也可W阻止其它个体 抢夺自己的食物;并且假设小鸡可W随机偷食其他个体已经发现的食物,每只小鸡跟随他 们的母亲一起寻找食物。
[0028] 在解决优化问题时,鸡群中的每个个体都对应优化问题的一个解。假设RN、HN、CN 和MN分别为公鸡、母鸡、小鸡和妈妈母鸡的个数。在整个鸡群中,所有的个体数假设为N,每 个个体的位置x&da)表示第g个体的d维在第t次迭代的值。
[0029] 为了解决鸡群算法在求解高维优化问题时早熟收敛问题,提出了一种改进的鸡群 算法,对小鸡的位置更新公式进行了改进,更新公式中加入了向小鸡自身所在群中的公鸡 学习部分。改进的鸡群算法中个体位置更新公式如下:
[0030]a.公鸡位置更新公式
[00;31] Xg,d(t+l)=Xg,d(t)*(l+Ran^(0,〇2))
[0032]
[003引式中,RamMO,。2)为均值为0,标准差为。2的一个高斯分布,e为一个很小的 常数,Z为所有公鸡中除去g后的任一个体。
[0034]b.母鸡位置更新公式
[00;35]Xg,d(t+1) =Xg,d(t) +Ci*Rand* (Xri,d(t) -Xg,d(t))
[003引 +C2*Rand*(Xr2, d(t)-Xg, d(t))
[0037]Cl=exp((fg-fri) /(abs(fg) +e))
[003引〔2= exp ((f ,2寸8))
[003引式中,Rand为[0,1]之间均匀分布的随机数,ri为第g只母鸡所在群中的公鸡,r2为整个鸡群中公鸡和母鸡中随机选取的任意个体,且ri声r2。
[0040]C.小鸡的位置更新公式
[0041]Xg, d(t+1) =w*Xg, d(t) +FL*(Xy, d(t)-Xg, d(t)) +C*(Xr, d(t)-Xg, d(t))
[0042] 式中,y为小鸡对应的妈妈母鸡,r为妈妈母鸡自身所在群中的公鸡,C为学习因 子,它表示小鸡向自身所在群中公鸡学习的程度,W为小鸡的自我学习系数,该与粒子群算 法中的惯性权重很相似。
[0043] 步骤5中,用Pareto改进鸡群算法求解多目标FJSP主要包括编码、解码和适应度 值计算等操作。
[0044] 编码时,每个粒子采用两行的编码方式,第一行表示加工工序,第二行表示工序对 应的机器,粒子的总长度等于总工序数。
[0045] 解码就是将粒子的每一维分量根据工艺约束和顺序约束,W最早允许的加工时间 逐一进行加工,从而产生相应的调度方案,生成对应的调度甘特图。
[0046] 适应度值计算是根据步骤2中建立的3个目标函数,将对应的粒子从第一列到最 后一列逐一解码得到机器时间向量和等待时间向量,然后根据机器时间向量和等待时间向 量分别求出最大完工时间、最大机器负荷和所有机器的总负荷该3个目标函数值。
[0047] 步骤5中具体的求解步骤如下:
[0048] 步骤5. 1;采用混合分派规则初始化鸡群X,并定义相关参数RN、HN、CN、MN等,采 用快速非支配排序算法初始化Pareto非支配解集;
[0049] 步骤5. 2;计算鸡群的适应度值fitness,初始化个体当前最好位置pbest,随机选 取Pareto非支配集中某个粒子作为全局最好粒子;在第一次执行本步骤时迭代次数t赋值 为1 ;
[0050] 步骤5.3;如果t%G= 1,排序fitness,建立鸡群的等级制度,将鸡群分为数个子 群并确定母鸡和小鸡的对应关系;
[0051] 步骤5. 4;更新公鸡的位置并分别计算每个个体的适应度值,更新母鸡的位置并 分别计算每个个体的适应度值,更新小鸡的位置并分别计算每个个体的适应度值,采用 Pareto支配程序更新粒子个体历史最好位置;
[0052] 步骤5. 5;采用Pareto支配程序更新Pareto非支配解集,并随机选取Pareto非 支配解中任一对应个体作为全局最优粒子;
[005引步骤5. 6 ;迭代次数t加1,如果满足迭代停止条件,则停止迭代,输出最优值,否则 转到步骤5. 3。
[0054] 本发明的有益效果是:
[0055] 1.本发明采用混合分派规则产生初始化种群,可W提高初始解的质量;
[0056] 2.本发明采用完工时间最早的启发式规则,有利于快速得到可行解空间,大大提 高了算法的收敛速度;
[0057] 3.本发明对小鸡的位置更新公式中加入了向小鸡自身所在群中的公鸡学习部分, 并引入了惯性权值和学习因子,在保证算法收敛速度的同时尽可能提高算法的收敛精度, 防止算法出现早熟收敛情况。
【附图说明】
[0058] 图1是粒子编码示意图。
[0059] 图2是算法实现流程图。
[0060] 图3是8X8实例最优调度甘特图。
[0061] 图4是10X10实例最优调度甘特图。
[0062] 图5是15X10实例最优调度甘特图。
【具体实施方式】
[0063] 下面结合附图和【具体实施方式】对本发明进行进一步说明。
[0064] 基于改进鸡群算法获得工件加工最优调度的方法,W离散柔性制造车间多工件多 工艺路线加工为应用对象,具体包括W下步骤:
[0065] 步骤1 ;对柔性作业车间调度问题进行数学描述,并确定评价指标;完工时间T、单 台机器最大负荷W,和所有机器总负荷W。
[0066] 定义如下变量:
[0067] i为工件号;
[0068] j为工序号;
[006引 k为机器号;
[0070] Cyk为工件i的j道工序在机器k上加工的完成时间;
[0071] tuk为工件i的j道工序在机器k上的处理时间;
[0072] Tk为机器k的总运行时间。
[007引步骤2 ;建立优化目标函数。
[0074]最大完工时间;T=MinmaxIcuJ;ieJ,jeN。kGM,
[0077] 步骤3 ;建立优化过程中的约束条件。
[0081] 步骤4;设计Pareto改进鸡群算法。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1