专利名称:一种基于蜂社会自组织模型的混流装配生产调度控制方法
技术领域:
本发明涉及一种基于蜂社会自组织模型的车间调度方法。
背景技术:
生产调度是有序组织生产过程,合理安排生产的关键问题。通过生产调度,将生产过程中涉及到的加工资源、物流资源合理分配,提高企业生产效率和流畅度,并减少生产过程中产生的时间、空间的浪费。对微利时代企业的发展具有重要意义。混流加工装配生产是目前汽车行业、家电行业等工艺过程离散的产品普遍采用的一种生产模式,也是发展中的生产模式。在许多以装配制造为主的生产企业中,由于各种原因,企业不但要进行产品总装,还要进行零部件的加工和装配,满足总装线生产需要。加工装配车间的生产主要包括作业型生产和装配型生产两类,对应的调度问题也分为作业加工车间和流水装配车间调度两类,涵盖了加工装配生产的主要过程。其中装配线生产是混流加工装配的重要组成部分。装配线将外协生产或采购的零部件与加工线生产的零部件在这里通过连续的生产单元组装成符合客户需求的最终产品,如图1所示。现代装配生产过程, 在多品种小批量是生产影响下多采用了混流生产的组织方式。混流生产可以提高生产组织的柔性,快速响应市场和客户需求,减少生产线以及模具、加工成本、运输成本等投入,有效提高产能。但混流生产在提高系统生产柔性和生产效率的同时,加大了生产过程管理的难度,提高了生产停线、在制品积压的风险。因此,有效的混流装配生产调度成为现代管理研究的热点。在求解复杂的组合优化问题上,群体智能优化算法 (Population-basedlntelligent Optimization, ΡΙΟ)是目前的研究热点。其特征是以群中个体代表问题的可行解,并根据个体适应度,通过群体间的互动寻优逐步得到满意解。PIO主要分为以遗传算法(GA)、进化规划(EP)、进化策略(EQ等为代表的进化算法 (Evaluation Algorithm,EA)和以蚁群算法(ACO)、微粒群优化算法(PSO)等为代表的群智能算法(Swarm htelligence,Si)。其中进化算法提出时间早,应用较为广泛,特别是遗传算法,在生产计划、调度等组合优化问题上已经得到了广泛的应用。群智能算法属于人工智能范畴,最早由BenLHackwood和Wang于1989年提出,用于描述离散自然或人工自组织系统的协作过程。在1999年,Bonbeau、Dorigo和Theraulaz拓展了这个概念群智能不但用于描述群体之间的协作行为,而且任何受昆虫群体或其他动物群集的协作行为激发而进行的算法设计或分布式的问题解决策略设计过程均属于群智能。基于蜂社会自组织模型的群智能算法是一类新兴的优化算法,算法利用蜂群觅食的社会行为模型,将蜂群觅食行为映射到组合优化问题中,通过蜂群自组织(Stigimergy) 协调过程,实现问题的求解。keley T.D.于1995年最早提出了蜂群的群体行为模型。随后Theraulaz G等根据蜜蜂通过内部反应阈值和环境刺激信号进行的后代觅食工作模型。 2001年Luci0 P和rTeodorovid D在生物学研究和蜂群行为模型研究基础上,首次应用蜜蜂协作行为求解组合优化问题,并提出了蜂群优化(Bee Colony Optimization,BC0) 0此后,一系列基于蜂群模型的优化算法相继提出,研究较多的有Karaboga D于2005年提出的人工蜂群算法(ArtificialBee Colony, ABC)用于求解连续优化问题;Pham D. T.于2006年提出的蜜蜂算法(Bee Algorithm,ΒΑ)求解复杂连续优化问题。此外,还有Abbas提出的基于蜜蜂婚配原理的MBO模型、Wedde等围绕觅食区域概念提出的蜂巢算法(BeeHive) ,Drias 等基于可满足性问题提出的蜂群优化(Bee Swarm Optimization)算法、Yang等提出的虚拟蜜蜂算法(Virtual Bee Algorithm,VBA)等。基于蜂社会模型的车间调度问题研究现主要有,作业车间调度方面,李端明等在(基于人工蜂群算法求解不同尺寸工件单机批调度问题,2009)采用ABC求解不同尺寸工件单机批调度问题;Pham D.T.等在(The Bees Algorithm, ANovel Toolfor Complex Optimisation Problems, 2006)采用 BA 求解了单机调度问题;Chin SoonChong 等在 (Using a bee colony algorithm for neighborhood search in job shopscheduling problems,2007 禾口 A bee colony optimization algorithm to job shopscheduling, 2006)中将BCO与其他启发式规则结合求解了作业车间调度问题;Wong Li-Pei等在(Bee colony optimisation algorithm with big valley landscapeexploitation for job shop scheduling problems,2010)中将改进邻域搜索的BCO应用与作业车间调度问题; Li Jun-qing 等在(A Hybrid Artificial Bee ColonyAlgorithmfor Flexible Job Shop Scheduling Problems, 2011)中釆用了 HABC算法求解了柔性作业车间调度问题。流水车间调度方面,有 Pan Quan-ke 等在(A discrete artificial bee colonyalgorithm for the lot-streaming flow shop scheduling problem,2011)中米用 ABC算法求解了批量流水线调度问题。上述研究对所解决的问题普遍具有较好的求解效果,证明了蜂社会模型算法在调度问题应用上相比其他群智能算法快捷、全局搜索能力高的特点。但优化方法多针对传统调度问题,并且BCO方法相对于ABC算法速度慢,易陷入局部最优,而ABC算法也存在邻域搜索能力差等缺点,单一的算法难以解决复杂的实际调度问题,并存在搜索精度不高,对大规模调度问题求解效率低的问题,并且在装配线调度中也未有系统性的调度方法。
发明内容
为了克服已有混流装配生产调度控制方法的速度慢,易陷入局部最优、邻域搜索精度不高、求解效率较低、控制效果差的不足,本发明提供一种速度较快、有效避免陷入局部最优、邻域搜索精度高、求解效率高、控制效果良好的基于蜂社会自组织模型的混流装配生产调度控制方法。本发明解决其技术问题所采用的技术方案是 一种基于蜂社会自组织模型的混流装配生产调度控制方法,所述混流装配生产调度控制方法包括以下步骤步骤1,参数初始化根据混流装配生产调度问题规模设定算法参数,所述参数包括种群规模SN、全局控制参数limit、最优控制参数bestlimit和初始邻域参数S ;步骤2,种群初始化针对混流装配线调度的问题特征,初始化函数选择BCO方法初始雇佣蜂群,随机+NEH方法初始观察蜂群;步骤3,邻域规模调整根据初始规模和算法进程,动态调整邻域的搜索规模;
步骤4,雇佣蜂算法遍历所有雇佣蜂群并对每一个雇佣蜂执行雇佣蜂算法,当雇佣蜂满足limit参数时,触发侦察蜂算法替换雇佣蜂;步骤5,观察蜂算法遍历所有观察蜂群并对每一个观察蜂执行观察蜂算法,当观察蜂满足limit参数时,触发侦察蜂算法替换观察蜂;步骤6,最优控制算法,对雇佣蜂种群和观察蜂群执行最优控制算法,置换种群中重复的个体,其中,雇佣蜂种群和观察蜂种群的最优控制过程为步骤6. 1. 1,计算种群中最优解的数量bestnum ;步骤6. 1. 2,如果bestnum > bestlimit,则i = i+Ι并继续,否则算法结束;步骤6. 1.3,随机选择两个最优解beel与bee2,如果beel与bee2编码不相同则继续步骤6. 1.4,否则跳至步骤6. 1.6 ;步骤6. 1. 4,对beel与bee2进行beecross操作,四个Index变量为随机产生的位置,beel与bee2通过序列中随机产生的子序列与对方交换并去掉重复部分得到两个新解 finalbeel 与 finalbee2 ;步骤6. 1. 5,判断,如果beel与bee2仍为最优,则继续,否则跳至步骤6. 1. 7 ;步骤6. 1. 6,对beel与bee2分别进行侦察蜂算法,即采用随机搜索的初始化方法产生一个随机解,并替代原有的个体;步骤6. 1. 7,如果 i < (bestnum-bestlimit)/2,跳至步骤 6. 1. 3步骤6. 1. 8,对剩余所有最优解做模拟退火操作;步骤7,判断是否满足maxcycle迭代终止条件,满足则终止,否则重复步骤3 步马聚7 ο进一步,所述步骤2中,针对雇佣蜂群和观察蜂群分别建立基于BCO以及NEH+随机的混合方法产生初始种群,(2. 1)雇佣蜂初始化步骤如下步骤2. 1. l,step = st印+1,并按序取一个雇佣蜂,从未选择的工件集中选择工件并更新序列编码;步骤2. 1.2,判断是否遍历所有雇佣蜂,未完成则重复步骤2. 1. 1,否则继续;步骤2. 1.3,在雇佣蜂中重新按序取一只雇佣蜂,判断是否满足概率,概率由公式 1得到,满足则继续步骤2. 1. 4,否则跳至步骤2. 1. 5 ;步骤2. 1. 4,从余下雇佣蜂中轮盘赌选择一个解替代当前解;步骤2. 1.5,判断是否遍历所有雇佣蜂,满足则继续步骤2. 1.6,否则跳转至步骤 2. 1. 3 ;步骤2. 1. 6,判断st印是否等于工序数,满足则结束,否则跳转至步骤2. 1. 1 ;步骤2. 1.7,为雇用蜂群初始化数组Iimitarrayl (),数组长度SN/2,记录每个雇佣蜂未更新代数;pdc =e-(H)公式 ι .其中st印从1到SN/2取值,当前雇佣蜂丢弃概率Pd。根据公式1取值,其中f Ubest 为当前种群最好适应度,fit。为当前雇佣蜂适应度。(2. 2)观察蜂NEH+随机方法初始化首先将所有工件按总加工时间递减排序,选择前两个工件经比较保留完成时间最短的序列;其次,将第三个工件插入序列中的各个位置,同样保留完成时间最短序列;最后,将剩余工件重复上步操作,得到一个可行解,将此可行解插入到雇用蜂群中,蜂群其他个体则采用随机方法生成,具体图过程为步骤2. 2. 1计算所有工件的总加工时间,并按时间递减排序;步骤2. 2. 2选择排在序列顶端的第一个工件形成编码,Solution^),其中i = 1 表示编码长度,将选择的工件从工件序列中剔除;步骤2. 2. 3从工件序列中选择排在顶端的工件,将工件插入Solution(i)中各个位置形成i+Ι个solution,根据适应度保留最好的记为solution (i+1),将该工件从工件序列剔除;步骤2. 2. 4判断工件序列是否为空,如果是则进入步骤2. 2. 5,否则跳转至步骤 2.2.4;步骤2. 2. 5 随机生成(SN/2-1)个 solution ;步骤2. 2. 5为种群初始化数组limitarray2 (),数组长度SN/2,记录观察蜂个体未更新代数。再进一步,所述步骤4中,所述雇佣蜂算法的具过程如下步骤4. 1,顺序选择一个雇佣蜂EB1,并判断是否是群中最优解,满足则跳至步骤 4. 3,否则继续;步骤4. 2,基于EBl进行邻域搜索,得到S’个新个体,并选择其中最优作为EB2,跳至步骤4. 9 ;步骤4. 3,对EBl进行模拟退火操作,设定SA初温、未温以及退温系数;步骤4. 4,再次对基于EBl进行邻域搜索,得到S’个新个体,并选择其中最优作为 EB2 ;步骤4. 5,比较EBl与EB2,如果EB2劣于EBl则继续步骤4. 6,否则跳至步骤4. 7步骤4. 6,比较产生(0 1)随机数并与概率P比较,P服从公式3,如果随机数小于概率则继续步骤7,否则跳至步骤8 ;P = exp (- (fit (EB2) -fit (EBl)))公式 3步骤4· 7,EBl = EB2 ;步骤4. 8,根据公式4、公式5更新T与S’如果T < Tend,则继续步骤4. 9,否则重复步骤4. 4-4. 8 ;T = kXTend公式 4S' = ceiKkXS')公式 5步骤4. 9,贪婪法则比较EBl与冊2,如果EB2不优于冊1,则limitarrayl (i)= limitarrayl (i)+l, i表示EBl序列号,否则跳至步骤4. 11 ;步骤4. 10,如果limitarrayl (i) = limit,调用侦察蜂算法替换EB1,并跳至步骤 4. 12,否则直接跳至步骤4. 12 ;步骤4. 11,EBl = EB2,并且 limitarrayl (i) = 0 ;步骤4. 12,是否遍历所有雇佣蜂,即如果i = SN/2,则算法结束,否则跳至步骤 4. 1。更进一步,所述步骤5中,所述观察蜂算法的具过程如下
步骤5. 1,顺序选择一个观察蜂OBl,根据适应度轮盘赌选择雇佣蜂EBl ;步骤5. 2,贪婪法则比较OBl与冊1,如果EBl不优于0B1,贝丨J limitarray2 (j)= limitarray2(j)+l, j表示OBl序列号,否则跳至步骤5. 4 ;步骤5. 3,如果limitarray2(j) = limit,调用侦察蜂算法替换0B1,并跳至步骤 5,否则直接跳至步骤5. 5;步骤5. 4,OBl = EB1,并且 limitarray2(i) = 0;步骤5. 5,是否遍历所有观察蜂,即如果j = SN/2,则算法结束,否则跳至步骤5. 1。本发明的技术构思为自然界中的蜂群在搜索到食物源后,会回到蜂巢中通过摇摆舞向其他工蜂传递食物信息,并带领更多工蜂回到食物源采集食物。Karaboga D根据蜜蜂的这种社会性行为建立了蜂群觅食行为的最小化模型,并在此基础上提出了人工蜂群算法。模型包含食物源、雇佣蜂、观察蜂和侦察蜂四个组件。映射到优化问题中,食物源代表问题的可行解,食物源的丰裕度则对应解的质量。蜂群分为雇佣蜂和观察蜂,在特定的时段, 两种蜂群中的部分个体可转变为侦察蜂或互相转化。在初始时期,所有蜜蜂均为侦察蜂,在蜂巢附近随机搜寻食物源(可行解)。回到蜂巢后,每个侦察蜂根据各自持有可行解的质量选择成为雇佣蜂或观察蜂。雇佣蜂回到原食物源继续搜索,观察蜂则留守蜂巢。当雇佣蜂再次回到蜂巢后,观察蜂根据一定概率接受雇佣蜂的招募,选择跟随雇佣蜂或取代雇佣蜂。 如果雇佣蜂经过一定次数搜寻后,未能找到更好的食物源,则放弃当前食物源成为侦察蜂, 随机搜寻新的食物源。图2给出了蜂群的基本工作过程。图2中侦察蜂SB1、SB2搜索到食物源后回到蜂巢分别转变为雇佣蜂EBl和观察蜂UB1。其中,EBl根据食物源A找到了邻域食物源B,比较后选择了 B,并回到蜂巢在舞蹈区与UBl互换信息,UBl探访了 B的邻域食物源C,并比较了 B、C的丰裕度,如果B较优,EBl会根据B继续搜索,进而发现D,反之,EBl跟随UB1,从而发现E ;EB2在经过前期反复搜寻,在搜索到G后,没有招募到观察蜂,继续回到原来位置搜索;EB3在I处的搜索历经多次没有改善,放弃I并转化为侦察蜂SB3。本发明的有益效果主要表现在采用基本人工蜂群算法作为算法主体架构,建立了基于BCO和NEH的群体初始化算法提高算法初始种群质量,建立了变邻域的邻域搜索算法提高算法搜索精度,建立了最优控制算法提高了种群多样性,基于模拟退火算法优化了雇佣蜂算法,简化并优化了观察蜂算法,增加了算法的求解效率和准确度,对混流装配车间生产提供了一种系统性的优化方法。
图1是装配线生产过程的示意图。图2是蜂群工作模型图。图3是改进人工蜂群算法总体流程图。图4是BCO方法流程图。图5是雇佣蜂算法流程图。图6是最优控制算法流程图。图7是Beecross过程的示意图。
具体实施方式
下面结合附图对本发明作进一步描述。参照图1 图7,一种基于蜂社会自组织模型的混流装配生产调度控制方法, HBCA算法从总体上分为初始化算法(NEH初始算法、BCO初始算法)、雇佣蜂算法、观察蜂算法、侦察蜂算法和最优控制算法五个子算法,包含5个参数,分别是种群规模SN,迭代次数 maxcycle、全局调节参数limit、最优控制参数bestlimit、初始邻域规模S,参照图3,其总体上的技术步骤如下步骤1,参数初始化,根据问题规模设定算法参数。算法主要参数为种群规模SN、 全局控制参数limit、最优控制参数bestlimit和初始邻域参数S。通过标准benchmark库算例实验验证,对于小规模问题种群数可取50-100,limit取值6较优;对于中大规模问题, 种群规模可取100,limit取值8较优。Bestlimit均取值为pop/6较优,初始邻域S均取值η/2较优。步骤2,种群初始化,针对混流装配线调度的问题特征,初始化函数选择随机+NEH 方法。具体方法见5. 3. 2中详细设计。步骤3,邻域规模调整,根据初始规模和算法进程,动态调整邻域的搜索规模;步骤4,雇佣蜂算法,遍历所有雇佣蜂群并对每一个雇佣蜂执行雇佣蜂算法,当雇佣蜂满足limit参数时,触发侦察蜂算法替换雇佣蜂,雇佣蜂与侦察蜂具体步骤见5. 3. 3与 5. 3.6中的说明。步骤5,观察蜂算法,遍历所有观察蜂群并对每一个观察蜂执行观察蜂算法,当观察蜂满足limit参数时,触发侦察蜂算法替换观察蜂。步骤6,最优控制算法,对雇佣蜂种群和观察蜂群执行最优控制算法,置换种群中重复的个体,提高种群多样性。步骤7,判断迭代条件,判断是否满足maxcycle迭代终止条件,满足则终止,否则重复步骤3-7。种群编码与解码对于混流加工装配车间,MBCA采用加工序列的串行编码方式, 如7个产品的加工序列即为{5,7,3,2,4,1,6},产品按编号依次装配。解码阶段,根据序列中对应的数字顺序即可得到产品投产的排列顺序。种群初始化过程在混流装配调度的种群初始化中,针对雇佣蜂群和观察蜂群分别建立基于BCO以及NEH+随机的混合方法产生初始种群,提高初始种群质量和多样性。(2. 1)其中雇佣蜂初始化步骤如下步骤2. 1. l,step = st印+1,并按序取一个雇佣蜂,从未选择的工件集中选择工件并更新序列编码;步骤2. 1. 2,判断是否遍历所有雇佣蜂,未完成则重复步骤2. 1. 1,否则继续;步骤2. 1.3,在雇佣蜂中重新按序取一只雇佣蜂,判断是否满足概率,概率由公式 1得到,满足则继续步骤2. 1. 4,否则跳至步骤2. 1. 5 ;步骤2. 1. 4,从余下雇佣蜂中轮盘赌选择一个解替代当前解;步骤2. 1.5,判断是否遍历所有雇佣蜂,满足则继续步骤2. 1.6,否则跳转至步骤 2. 1. 3 ;步骤2. 1. 6,判断st印是否等于工序数,满足则结束,否则跳转至步骤2. 1. 1 ;步骤2. 1.7,为雇用蜂群初始化数组Iimitarrayl (),数组长度SN/2,记录每个雇佣蜂未更新代数;pdc =e-(H)公式 ι .图5描述了 BCO方法流程图,其中step从1到SN/2取值,当前雇佣蜂丢弃概率 Pd。根据公式1取值,其中fitbest为当前种群最好适应度,fit。为当前雇佣蜂适应度。其具体步骤为(2. 2)观察蜂NEH+随机方法初始化步骤如下在NEH方法中,首先将所有工件按总加工时间递减排序,选择前两个工件经比较保留完成时间最短的序列;其次,将第三个工件插入序列中的各个位置,同样保留完成时间最短序列;最后,将剩余工件重复上步操作,得到一个可行解,将此可行解插入到雇用蜂群中,蜂群其他个体则采用随机方法生成。步骤2. 2. 1计算所有工件的总加工时间,并按时间递减排序;步骤2. 2. 2选择排在序列顶端的第一个工件形成编码,Solution^),其中i = 1 表示编码长度,将选择的工件从工件序列中剔除;步骤2. 2. 3从工件序列中选择排在顶端的工件,将工件插入Solution(i)中各个位置形成i+Ι个solution,根据适应度保留最好的记为solution (i+1),将该工件从工件序列剔除;步骤2. 2. 4判断工件序列是否为空,如果是则进入步骤2. 2. 5,否则跳转至步骤 2. 2. 4 ;步骤2. 2. 5 随机生成(SN/2-1)个 solution ;步骤2. 2. 5为种群初始化数组limitarray2 (0,数组长度SN/2,记录观察蜂个体未更新代数。雇佣蜂算法过程为雇佣蜂承担了优秀解的搜索任务。在MBCA中建立了一种随迭代过程变化搜索区域范围的变邻域搜索算法,雇佣蜂在给定内范围邻域进行搜索并更新种群。在搜索区域的设定上,首先设定一个搜索范围S,则当前迭代次数对应的邻域范围服从公式2 S' = ceil (SX (1-cycle/(literation+1)))公式 2Iiteration表示迭代次数,cycle表示当前迭代代数,ceil表示对括号中内容向下取整。为保证迭代末期的有效邻域范围,设定S’不小于5。区别于定邻域搜索的固定搜索范围,变邻域搜索的邻域规模在初始值S的基础上随迭代过程不断变小,即越到算法执行过程的后期,搜索范围越窄。在变邻域的支持下,算法初期可提高算法的全局寻优能力, 算法后期可加快算法的收敛速度,从总体上提高了算法的执行效率。邻域搜索中的邻域解产生方法采用交叉变异策略(Swap),对于混流装配问题,随机选取编码序列中两个位置并交换对应的编码值得到新个体。雇佣蜂算法的具体流程如图6,步骤描述如下步骤4. 1,顺序选择一个雇佣蜂EB1,并判断是否是群中最优解,满足则跳至步骤 4. 3,否则继续;步骤4. 2,基于EBl进行邻域搜索,得到S’个新个体,并选择其中最优作为EB2,跳至步骤4. 9 ;步骤4. 3,对EBl进行模拟退火操作,设定SA初温、未温以及退温系数;步骤4. 4,再次对基于EBl进行邻域搜索,得到S’个新个体,并选择其中最优作为
11EB2 ;步骤4. 5,比较EBl与EB2,如果EB2劣于EBl则继续步骤4. 6,否则跳至步骤4. 7步骤4. 6,比较产生(0 1)随机数并与概率P比较,P服从公式3,如果随机数小于概率则继续步骤7,否则跳至步骤8 ;步骤4. 7,EBl = EB2 ;步骤4. 8,根据公式4、公式5更新T与S’如果T < Tend,则继续步骤4. 9,否则重复步骤4. 4-4. 8 ;步骤4. 9,贪婪法则比较EBl与冊2,如果EB2不优于冊1,则limitarrayl (i)= limitarrayl (i)+l, i表示EBl序列号,否则跳至步骤4. 11 ;步骤4. 10,如果limitarrayl (i) = limit,调用侦察蜂算法替换EB1,并跳至步骤 4. 12,否则直接跳至步骤4. 12 ;步骤4. 11,EBl = EB2,并且 limitarrayl (i) = 0 ;步骤4. 12,是否遍历所有雇佣蜂,即如果i = SN/2,则算法结束,否则跳至步骤 4. 1。观察蜂算法的过程为MBCA的雇佣蜂算法中,因为变邻域搜索已增加了雇用蜂群搜索广度,模拟退火算法增加了雇用蜂群优秀解的搜索深度,已有效提高了算法的寻优能力。因此,观察蜂在选中雇佣蜂后不再进行二次搜索,仅根据贪婪法则进行更新,保持种群的优秀个体;同时,在观察蜂群中引入数组limitarray2,记录各个观察蜂群连续未更新代数。当观察蜂在limitarray2中对应数值满足limit,触发侦察蜂算法替换该观察蜂。其具体步骤如下步骤5. 1,顺序选择一个观察蜂OBl,根据适应度轮盘赌选择雇佣蜂EBl ;步骤5. 2,贪婪法则比较OBl与冊1,如果EBl不优于0B1,贝丨J limitarray2 (j)= limitarray2(j)+l, j表示OBl序列号,否则跳至步骤5. 4 ;步骤5. 3,如果limitarray2(j) = limit,调用侦察蜂算法替换0B1,并跳至步骤 5,否则直接跳至步骤5. 5;步骤5. 4,OBl = EB1,并且 limitarray2(i) = 0;步骤5. 5,是否遍历所有观察蜂,即如果j = SN/2,则算法结束,否则跳至步骤5. 1。最优控制算法的过程为种群相似度过大会引起早熟现象,算法中虽然引入了 limit对种群个体进行控制,但经过双种群协同优化后,种群最优解扩展速度快,限制了算法的全局搜索能力。因此,设计了最优控制算法用于减少两种群中最优解的重复度。以雇用蜂群为例算法流程如图7,具体过程为步骤6. 1. 1计算种群中最优解的数量bestnum ;步骤6. 1. 2如果bestnum > bestlimit,则i = i+Ι并继续,否则算法结束;步骤6. 1. 3随机选择两个最优解beel与bee2,如果beel与bee2编码不相同则继续步骤6. 1.4,否则跳至步骤6. 1.6 ;步骤6. 1.4对beel与bee2进行beecross操作,四个hdex变量为随机产生的位 P = exp (- (fit (EB2) -fit (EBl)))
公式3T = kXTendS' = ceil(kXS')
公式4 公式5
参数种群规模50,迭代次数200,limit取6,bestlimit取pop/6,初始邻域规模S =11。实施例以最短完工时间为目标,分别比较是否包含考虑切换时间的问题。其中包含切换时间所得最小生产循环序列之一为{AAAABEBBCDEBBDDCEBBEAA},仅考虑加工时间最小生产循环序列之一为{AAAABBEBCEBDBDDEBCBEAA},按照该序列连续加工20个循环即可完成日加工任务。采用专利方法可以顺利解决混流装配车间的调度排序问题,并且在求解效率上有不同程度的提升,系统、一致的方法也便于执行与管理。对混流装配生产的管理规划具有明显帮助。
置,beel与bee2通过序列中随机产生的子序列与对方交换并去掉重复部分得到两个新解 finalbeel 与 finalbee2 ;步骤6. 1. 5判断,如果beel与bee2仍为最优,则继续,否则跳至步骤6. 1. 7 ;步骤6. 1. 6对beel与bee2分别进行侦察蜂算法;步骤6. 1. 7 如果 i < (bestnum-bestlimit)/2,跳至步骤 6. 1. 3步骤6.1.8对剩余所有最优解做模拟退火操作;观察蜂种群最优控制过程采用与雇佣蜂同样的操作步骤。经过最优控制算法操作后,群体的最优个体必然控制在bestlimit之内。为提高优秀蜂群的搜索能力,对未选入交叉操作的剩余个体采用模拟退火算法优化,同时为平衡搜索效率,此处模拟退火算法中邻域产生法则采用单次交叉的方法。经过最优控制算法,控制了种群中最优解数量,在保证不丢失最优解的前提下增加了种群多样性,提高了算法的全局搜索性能。侦察蜂算法的过程为侦察蜂算法scoutO采用随机搜索的初始化方法产生一个随机解,并替代原有的个体。实例某电机装配车间总装线C采用混流生产方式,该线装配5种产品,含10个工作站,日计划产量分别为A品120台、B品140台、C品40台、D品60台、E品80台,切换时间为5。可得最小生产循环为6A,7B,2C,3D,4E,共22个工件。各产品对应工站加工时间如表1。表1工件加工时间表
权利要求
1.一种基于蜂社会自组织模型的混流装配生产调度控制方法,其特征在于所述混流装配生产调度控制方法包括以下步骤步骤1,参数初始化根据混流装配生产调度问题规模设定算法参数,所述参数包括种群规模SN、全局控制参数limit、最优控制参数bestlimit和初始邻域参数S ;步骤2,种群初始化针对混流装配线调度的问题特征,初始化函数选择BCO方法初始雇佣蜂群,随机+NEH方法初始观察蜂群;步骤3,邻域规模调整根据初始规模和算法进程,动态调整邻域的搜索规模; 步骤4,雇佣蜂算法遍历所有雇佣蜂群并对每一个雇佣蜂执行雇佣蜂算法,当雇佣蜂满足limit参数时,触发侦察蜂算法替换雇佣蜂;步骤5,观察蜂算法遍历所有观察蜂群并对每一个观察蜂执行观察蜂算法,当观察蜂满足limit参数时,触发侦察蜂算法替换观察蜂;步骤6,最优控制算法,对雇佣蜂种群和观察蜂群执行最优控制算法,置换种群中重复的个体,其中,雇佣蜂种群和观察蜂种群最优控制过程均为 步骤6. 1. 1,计算种群中最优解的数量bestnum;步骤6. 1. 2,如果bestnum > bestlimit,则i = i+Ι并继续,否则算法结束; 步骤6. 1. 3,随机选择两个最优解beel与bee2,如果beel与bee2编码不相同则继续步骤6. 1.4,否则跳至步骤6. 1.6 ;步骤6. 1.4,对beel与bee2进行beecross操作,四个Index变量为随机产生的位置,beel与bee2通过序列中随机产生的子序列与对方交换并去掉重复部分得到两个新解 finalbeel 与 finalbee2 ;步骤6. 1. 5,判断,如果beel与bee2仍为最优,则继续,否则跳至步骤6. 1. 7 ; 步骤6. 1.6,对beel与bee2分别进行侦察蜂算法,即采用随机搜索的初始化方法产生一个随机解,并替代原有的个体;步骤 6. 1.7,如果丨 < (bestnum-bestlimit)/2,跳至步骤 6. 1.3 步骤6. 1. 8,对剩余所有最优解做模拟退火操作;步骤7,判断是否满足maxcycle迭代终止条件,满足则终止,否则重复步骤3 步骤7。
2.如权利要求1所述的基于蜂社会自组织模型的混流装配生产调度控制方法,其特征在于所述步骤2中,针对雇佣蜂群和观察蜂群分别建立基于BCO以及NEH+随机的混合方法产生初始种群,(2. 1)雇佣蜂初始化步骤如下步骤2. 1. l,step = st印+1,并按序取一个雇佣蜂,从未选择的工件集中选择工件并更新序列编码;步骤2. 1. 2,判断是否遍历所有雇佣蜂,未完成则重复步骤2. 1. 1,否则继续; 步骤2. 1. 3,在雇佣蜂中重新按序取一只雇佣蜂,判断是否满足概率,概率由公式1得到,满足则继续步骤2. 1. 4,否则跳至步骤2. 1. 5 ;步骤2. 1. 4,从余下雇佣蜂中轮盘赌选择一个解替代当前解;步骤2. 1. 5,判断是否遍历所有雇佣蜂,满足则继续步骤2. 1. 6,否则跳转至步骤 2. 1. 3 ;步骤2. 1. 6,判断step是否等于工序数,满足则结束,否则跳转至步骤2. 1. 1 ; 步骤2. 1. 7,为雇用蜂群初始化数组Iimitarrayl (),数组长度SN/2,记录每个雇佣蜂未更新代数;pdc公式 1 .其中step从1到SN/2取值,当前雇佣蜂丢弃概率Pd。根据公式1取值,其中f Ubest为当前种群最好适应度,fit。为当前雇佣蜂适应度。(2. 2)观察蜂NEH+随机方法初始化首先将所有工件按总加工时间递减排序,选择前两个工件经比较保留完成时间最短的序列;其次,将第三个工件插入序列中的各个位置,同样保留完成时间最短序列;最后,将剩余工件重复上步操作,得到一个可行解,将此可行解插入到雇用蜂群中,蜂群其他个体则采用随机方法生成,具体图过程为 步骤2. 2. 1计算所有工件的总加工时间,并按时间递减排序; 步骤2. 2. 2选择排在序列顶端的第一个工件形成编码,Solution (i),其中i = 1表示编码长度,将选择的工件从工件序列中剔除;步骤2. 2. 3从工件序列中选择排在顶端的工件,将工件插入Solution^)中各个位置形成i+Ι个solution,根据适应度保留最好的记为solution (i+1),将该工件从工件序列剔除;步骤2. 2. 4判断工件序列是否为空,如果是则进入步骤2. 2. 5,否则跳转至步骤 2. 2. 4 ;步骤 2. 2. 5 随机生成(SN/2-1)个 solution ;步骤2. 2. 5为种群初始化数组limitarray2 (),数组长度SN/2,记录观察蜂个体未更新代数。
3.如权利要求1或2所述的基于蜂社会自组织模型的混流装配生产调度控制方法,其特征在于所述步骤4中,所述雇佣蜂算法的具过程如下步骤4. 1,顺序选择一个雇佣蜂EB1,并判断是否是群中最优解,满足则跳至步骤4. 3, 否则继续;步骤4. 2,基于EBl进行邻域搜索,得到S’个新个体,并选择其中最优作为EB2,跳至步骤 4. 9 ;步骤4. 3,对EBl进行模拟退火操作,设定SA初温、未温以及退温系数; 步骤4. 4,再次对基于EBl进行邻域搜索,得到S’个新个体,并选择其中最优作为EB2 ; 步骤4. 5,比较EBl与EB2,如果EB2劣于EBl则继续步骤4. 6,否则跳至步骤4. 7 步骤4. 6,比较产生(0 1)随机数并与概率P比较,P服从公式3,如果随机数小于概率则继续步骤7,否则跳至步骤8 ;P = exp (- (fit (EB2) -fit (EBl)))公式 3步骤 4. 7,EBl = EB2 ;步骤4. 8,根据公式4、公式5更新T与S’如果T < Tend,则继续步骤4. 9, 否则重复步骤4. 4-4. 8 ;T = kXTend公式 4S' = ceiKkXS')公式 5步骤4. 9,贪婪法则比较EBl与EB2,如果EB2不优于EB1,则limitarrayl (i)=limitarrayl (i)+l, i表示EBl序列号,否则跳至步骤4. 11 ;步骤4. 10,如果limitarrayl (i) = limit,调用侦察蜂算法替换EB1,并跳至步骤 4. 12,否则直接跳至步骤4. 12 ;步骤 4. 11,EBl = EB2,并且 limitarrayl (i) = 0 ;步骤4. 12,是否遍历所有雇佣蜂,S卩如果i = SN/2,则算法结束,否则跳至步骤4. 1。
4.如权利要求1或2所述的基于蜂社会自组织模型的混流装配生产调度控制方法,其特征在于所述步骤5中,所述观察蜂算法的具过程如下步骤5. 1,顺序选择一个观察蜂OBl,根据适应度轮盘赌选择雇佣蜂EBl ; 步骤5.2,贪婪法则比较OBl与EB1,如果EBl不优于0B1,则limitarray2 (j)= limitarray2(j)+l, j表示OBl序列号,否则跳至步骤5. 4 ;步骤5. 3,如果limitarray2(j) = limit,调用侦察蜂算法替换0B1,并跳至步骤5,否则直接跳至步骤5. 5 ;步骤 5. 4,OBl = EBl,并且 limitarray2(i) = 0 ;步骤5. 5,是否遍历所有观察蜂,S卩如果j = SN/2,则算法结束,否则跳至步骤5. 1。
全文摘要
一种基于蜂社会自组织模型的混流装配生产调度控制方法,包括以下步骤步骤1,根据混流装配生产调度问题规模设定算法参数;步骤2,针对混流装配线调度的问题特征,初始化函数选择随机+NEH方法;步骤3,动态调整邻域的搜索规模;步骤4,对每一个雇佣蜂执行雇佣蜂算法,当雇佣蜂满足limit参数时,触发侦察蜂算法替换雇佣蜂;步骤5,对每一个观察蜂执行观察蜂算法,当观察蜂满足limit参数时,触发侦察蜂算法替换观察蜂;步骤6,对雇佣蜂种群和观察蜂群执行最优控制算法;步骤7,如果满足迭代条件则终止,否则重复步骤3~步骤7。本发明速度较快、有效避免陷入局部最优、邻域搜索精度高、求解效率高、控制效果良好。
文档编号G05B13/04GK102411306SQ20111036639
公开日2012年4月11日 申请日期2011年11月17日 优先权日2011年11月17日
发明者李修琳, 汤洪涛, 鲁建厦 申请人:浙江工业大学