基于分散变邻域搜索的阻塞流水车间调度方法技术

技术编号:9668391 阅读:95 留言:0更新日期:2014-02-14 07:13
针对带有阻塞限制的流水车间调度问题,将分散搜索与变邻域搜索相结合,形成了分散变邻域搜索算法。在算法中提出了基于工件块的复合邻域及其搜索方法,该邻域的规模可以根据工件块的大小动态变化,从而实现局域搜索与广域搜索的平衡。此外,提出用分散搜索的参考集来存储算法搜索过程中得到的质量与分散性较好的解,每次迭代过程中变邻域搜索的初始解均从该集合中产生。有效地解决了阻塞流水车间调度问题。

【技术实现步骤摘要】

变邻域搜索(variable neighborhood search, VNS)是一种简单而有效的智能优化算法,与传统的局域搜索算法只针对一个邻域进行搜索不同,其思想是利用两个或两个以上的邻域,在搜索的过程中,算法会在不同的邻域中按照给定的规则交替进行搜索。由于邻域结构不同,在某一邻域内的局部最优解在其它邻域就可能不是局部最优解,从而帮助算法跳出局部最优,增强算法的广域搜索能力。VNS算法已经广泛应用于求解各类组合优化问题,并取得了较好的结果。分散搜索(scatter search, SS)是一种基于种群的方法,其思想是从种群中选取质量较好和分散性较好的解组成参考集,利用参考集来生成下一代的种群,以增强算法的广域搜索能力。该算法已经在许多组合最优化问题中得到了成功的应用,例如车辆调度问题和生产调度问题。
技术介绍
传统的流水车间调度问题(permutationflowshop scheduling problem, PFSP)由于具有较强的工业背景,一直是生产调度领域的重点研究课题。该问题通常假设相邻的机器之间具有存储能力无限的中间库,工件的存储不受任何限制。但是,在许多实际工业过程中,由于需要进行连续生产,一条生产线上的相邻工序之间经常是没有中间库的。在这种情况下,当一个工件i在一台机器j上完成加工后,如果下一机器j+Ι仍处于加工状态,那么该工件i就必须存储在当前机器j上,直到机器j+Ι的状态变为空闲(可加工工件)为止。这样,工件i和机器j就出现了阻塞现象。这种类型的PFSP问题通常被称为阻塞流水车间调度问题(blocking PFSP)。如果问题的优化目标是工件的最大完成时间(makespan,记为Cmax),那么该问题也可以表示为Fm/blocking / Cmax0近年来,该问题逐渐受到了国内外众多学者的关注。
技术实现思路
本专利技术所要解决的技术问题是,将VNS算法与SS算法根据各自的特点进行混合,提出一个分散变邻域搜索算法(scatter VNS, SVNS),并设计了基于工件块的邻域搜索,以实现匕/ blocking / Cmax问题的高效求解。I问题描述Fm / blocking/Cmax问题可以描述为:有η个待加工工件{1,2,...,η}需要在m个机器{1,2,...,m}上进行加工。主要的约束条件包括:(I)每个工件i都必须从第I个机器开始,依次经过这m个机器进行m道工序的加工,即各工件的加工顺序相同;(2)工件一旦开始加工,其加工过程不可中断;(3)每个机器一次最多只能加工一个工件;(4)工件在当前机器加工完成后,只有当下一机器空闲时才能离开当前机器到达下一机器进行加工,在下一机器空闲之前的时间内,该工件及当前机器部被阻塞。设工件i在机器j上的处理时间表示为Pij ;s=(s(l), s(2), , s (η))表示一个工件加工序列,其中S (k)表示排在第k个位置上的工件号;工件s(k)在机器j上的离开时间(记为Ds00ij)可以由以下公式计算: Ds(1),0=0 ;D、⑴丨=Σ/=,,...,TH— I 'Ds(k),o=Ds(k—ι),ι,k=2,._.., n ;Ds(k), j=max {I〕s (k),j-1+Ps:(k),j,Ds(H)其中,k=2,.? I,...m— IDs(k),m=Ds(k),iii1-l+Ps (k),m,k=l,…,那么所有工件 的最大完成时间makespan就可以定义为Cmax(s) =Ds(n),m。2基于分散搜索和变邻域搜索的混合SVNS算法在传统的VN算法中(如图1所示),Shaking过程主要用来帮助算法跳出局部最优,但是经过Shaking过程所得到的解s'的质量如果很差,那么即使对其进行局部搜索后,所得到的改进解s通常很难优于解S,从而导致无效搜索的情况。为了避免这种情况,本文将分散搜索中的参考集R引入到VNS算法中来,提出了分散变邻域搜索算法,即SVNS0在算法中,参考集R用来存储VNS算法搜索过程中所得到的质量和分散性较好的解。Shaking过程变为从参考集R中选取质量和分散性较好的解,来生成新解s/,从而使得新解s,既能够具有良好的质量,又能够兼顾分散性,同时避免了传统VNS算法容易出现无效搜索的情况。此外,在邻域结构的设计上,传统VNS算法针对PFSP问题,通常采用基于insertion移动(从一个工件序列中删除一个工件并将它插入到工件序列的其它位置上)和swap移动(交换工件序列中两个相邻或不相邻的工件)的邻域结构。针对以工件序列作为解的生产调度问题,复合移动(即一次执行多个insertion或swap移动)的性能要优于这两个简单移动,其原因是复合移动的邻域规模更大,其能够达到的搜索空间也更大。因此,本专利技术提出了基于工件块的邻域结构,其邻域规模能够根据工件块的大小进行变化。在所提出的SVNS算法中,邻域规模按照从小到大进行变化,从而实现在兼顾局域搜索能力的iu提下,提闻算法的广域搜索能力。基于以上所提出的改进策略,本专利技术所提出的SVNS算法的流程如图2所示,其中NijN2,...,Nk表示工件块大小分别为1,2,...,k时的邻域。从图2中可以看出,与传统VNS相比,新的SVNS算法的特点主要是:(I)使用分散搜索的参考集R来产生VNS搜索的初始解,而小是在当前的邻域Nk内随机产生一个解;(2)参考集R的更新机制中同时考虑了解的质量和分散性;(3)局域搜索基于当前的邻域Nk,其规模可以不断增大。以下部分将对图2中各部分进行详细介绍。2.1初始解产生方法由于会对一般的PFSP问题,NEH方法[6]能够获得高质量的初始解,因此本文采用NHl方法来产生Fm / blocking/Cmax问题的初始解,然后再对该解执行局部搜索。该算法的过程可以描述如下:Stepl.按照各工件在所有阶段的处理时间之和的非增顺序把所有的η个工件排序,并设得到的序列为X= (X (I),X (2),...,X (η))。Step2.从这个序列中取出前两个工件x(l)和x(2),并假定只有这两个工件要进行加工,然后确定这两个工件的最优排序,假定为V =(x/ (1),ν (2))。Step3.将I件序列x中的下一个工件插入到前面所得到的部分解x'的最好位置上(该位置能使得目标函数的增加量最小)。重复这一过程直到所有的工件都被插入到V中,从而得到一个初始解。Step4.对得到的初始解使用N1邻域进行局域搜索(基于N1邻域的局域搜索请见2.4)。2.2参考集的更新为了保证参考集R(其大小为b)中的解能够具有良好的质量和分散性,提出了以下的更新策略。针对VNS搜索过程中由局部搜索得到的改进解s,如果参考集R中解的个数未达到b,则直接将其加入到R中。如果参考集R中解的个数已经达到b,则需要判断解s是否达到可插入到R中的条件,即是否满足(Cmax(s )Cmax(sworst)) / Cmax(sworst) ^ a,其中Sworst表示参考集R中质量最差的一个解,a是一个给定的门槛值。若解s满足加入条件,即该解的质量在可接受的范围内,则先将解s插入到R中;然后再将参考集R中分散性最差的解删除(不包括当前最好解)。在此,我们给出解的本文档来自技高网
...

【技术保护点】
基于分散变邻域搜索的阻塞流水车间调度问题求解方法,其特征在于:针对阻塞流水车间调度问题将将分散搜索算法的参考集嵌入到变邻域搜索算法中,形成混合的分散变邻域搜索算法。

【技术特征摘要】
1.基于分散变邻域搜索的阻塞流水车间调度问题求解方法,其特征在于:针对阻塞流水车间调度问题将将分散搜索算法的参考集嵌入到变邻域搜索算法中,形成混合的分散变邻域搜索算法。2.权利要求1所述的基于分散变邻域搜索的阻塞流水车间调度问题求解方法,其特征还在于:当从参考集中选择变邻域搜索的起始解...

【专利技术属性】
技术研发人员:田慧欣李坤
申请(专利权)人:天津工业大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1