发明名称 一种基于蜂社会自组织模型的混流装配生产调度控制方法
摘要 一种基于蜂社会自组织模型的混流装配生产调度控制方法,包括以下步骤:步骤1,根据混流装配生产调度问题规模设定算法参数;步骤2,针对混流装配线调度的问题特征,初始化函数选择随机+NEH方法;步骤3,动态调整邻域的搜索规模;步骤4,对每一个雇佣蜂执行雇佣蜂算法,当雇佣蜂满足limit参数时,触发侦察蜂算法替换雇佣蜂;步骤5,对每一个观察蜂执行观察蜂算法,当观察蜂满足limit参数时,触发侦察蜂算法替换观察蜂;步骤6,对雇佣蜂种群和观察蜂群执行最优控制算法;步骤7,如果满足迭代条件则终止,否则重复步骤3~步骤7。本发明速度较快、有效避免陷入局部最优、邻域搜索精度高、求解效率高、控制效果良好。
申请公布号 CN102411306B 申请公布日期 2014.12.17
申请号 CN201110366396.8 申请日期 2011.11.17
申请人 浙江工业大学 发明人 李修琳;鲁建厦;汤洪涛
分类号 G05B13/04(2006.01)I 主分类号 G05B13/04(2006.01)I
代理机构 杭州天正专利事务所有限公司 33201 代理人 王兵;王利强
主权项 一种基于蜂社会自组织模型的混流装配生产调度控制方法,其特征在于:所述混流装配生产调度控制方法包括以下步骤:步骤1,参数初始化:根据混流装配生产调度问题规模设定算法参数,所述参数包括种群规模SN、全局控制参数limit、最优控制参数bestlimit和初始邻域参数S;步骤2,种群初始化:针对混流装配线调度的问题特征,初始化函数选择BCO方法初始雇佣蜂群,随机+NEH方法初始观察蜂群,其中随机+NEH方法为:首先采用NEH方法产生一个观察蜂,然后采用随机方法产生剩余观察蜂;针对雇佣蜂群和观察蜂群分别建立基于BCO以及随机+NEH的混合方法产生初始种群,(2.1)雇佣蜂初始化步骤如下:步骤2.1.1,step=step+1;步骤2.1.2,按序取一个雇佣蜂,从未选择的工件集中选择工件并更新序列编码;步骤2.1.3,判断是否遍历所有雇佣蜂,未完成则重复步骤2.1.2,否则继续;步骤2.1.4,在雇佣蜂中重新按序取一只雇佣蜂,判断是否满足概率,概率由公式1得到,满足则继续步骤2.1.5,否则跳至步骤2.1.6;步骤2.1.5,从余下雇佣蜂中轮盘赌选择一个解替代当前解;步骤2.1.6,判断是否遍历所有雇佣蜂,满足则继续步骤2.1.7,否则跳转至步骤2.1.4;步骤2.1.7,判断step是否等于工序数,满足则继续步骤2.1.8,否则跳转至步骤2.1.1;<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><msub><mi>pd</mi><mi>c</mi></msub><mo>=</mo><msup><mi>e</mi><mrow><mo>(</mo><msub><mi>fit</mi><mi>c</mi></msub><mo>-</mo><msub><mi>fit</mi><mi>best</mi></msub><mo>)</mo></mrow></msup></mrow>]]></math><img file="FDA0000521579300000011.GIF" wi="344" he="78" /></maths>   公式1;其中step从1到SN/2取值,当前雇佣蜂丢弃概率pd<sub>c</sub>根据公式1取值,其中fit<sub>best</sub>为当前种群最好适应度,fit<sub>c</sub>为当前雇佣蜂适应度;步骤2.1.8,为形成的雇佣蜂群建立长度SN/2的数组limitarray1(),用于记录雇佣蜂每个个体持续未更新的代数;(2.2)观察蜂随机+NEH方法初始化:首先将所有工件按总加工时间递减排序,选择前两个工件经比较保留完成时间最短的序列;其次,将第三个工件插入序列中的各个位置,同样保留完成时间最短序列;最后,将剩余工件重复上步操作,得到一个可行解,将此可行解插入到雇用蜂群中,蜂群其他个体则采用随机方法生成,具体过程为:步骤2.2.1计算所有工件的总加工时间,并按时间递减排序;步骤2.2.2选择排在序列顶端的第一个工件形成编码,记为Solution(i),其中i=1表示序列长度,则Solution(i)表示序列长度为i的编码,然后将选择的工件从工件序列中剔除;步骤2.2.3从工件序列中选择排在顶端的工件,将工件插入Solution(i)中各个位置形成i+1个编码,根据适应度保留最好的记为solution(i+1),将该工件从工件序列剔除;步骤2.2.4判断工件序列是否为空,如果是则进入步骤2.2.5,否则跳转至步骤2.2.3;步骤2.2.5随机生成(SN/2‑1)个编码;步骤2.2.6为形成的观察蜂群建立长度SN/2的数组limitarray2(),用于记录观察蜂每个个体持续未更新的代数;步骤3,邻域规模调整:根据初始规模和算法进程,动态调整邻域的搜索规模;步骤4,雇佣蜂算法:遍历所有雇佣蜂群并对每一个雇佣蜂执行雇佣蜂算法,当雇佣蜂满足limit参数时,触发侦察蜂算法替换雇佣蜂;步骤5,观察蜂算法:遍历所有观察蜂群并对每一个观察蜂执行观察蜂算法,当观察蜂满足limit参数时,触发侦察蜂算法替换观察蜂;步骤6,最优控制算法,对雇佣蜂群和观察蜂群执行最优控制算法,置换种群中重复的个体,其中,雇佣蜂群和观察蜂群最优控制过程均为:步骤6.1.1,计算种群中最优解的数量bestnum;步骤6.1.2,如果bestnum&gt;bestlimit,则i=i+1并继续,否则算法结束;步骤6.1.3,随机选择两个最优解bee1与bee2,如果bee1与bee2编码不相同则继续步骤6.1.4,否则跳至步骤6.1.6;步骤6.1.4,对bee1与bee2进行beecross操作,四个Index变量为随机产生的位置,bee1与bee2通过序列中随机产生的子序列与对方交换并去掉重复部分得到两个新解finalbee1与finalbee2;步骤6.1.5,判断,如果bee1与bee2仍为最优,则继续,否则跳至步骤6.1.7;步骤6.1.6,对bee1与bee2分别进行侦察蜂算法,即采用随机搜索的初始化方法产生一个随机解,并替代原有的个体;步骤6.1.7,如果i&lt;(bestnum‑bestlimit)/2,跳至步骤6.1.3;步骤6.1.8,对剩余所有最优解做模拟退火操作;步骤7,判断是否满足迭代次数maxcycle的终止条件,满足则终止,否则重复步骤3~步骤7。
地址 310014 浙江省杭州市下城区朝晖六区