CN103577900A - 基于分散变邻域搜索的阻塞流水车间调度方法 - Google Patents
基于分散变邻域搜索的阻塞流水车间调度方法 Download PDFInfo
- Publication number
- CN103577900A CN103577900A CN201310594139.9A CN201310594139A CN103577900A CN 103577900 A CN103577900 A CN 103577900A CN 201310594139 A CN201310594139 A CN 201310594139A CN 103577900 A CN103577900 A CN 103577900A
- Authority
- CN
- China
- Prior art keywords
- search
- neighborhood
- algorithm
- workpiece
- scatter
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
针对带有阻塞限制的流水车间调度问题,将分散搜索与变邻域搜索相结合,形成了分散变邻域搜索算法。在算法中提出了基于工件块的复合邻域及其搜索方法,该邻域的规模可以根据工件块的大小动态变化,从而实现局域搜索与广域搜索的平衡。此外,提出用分散搜索的参考集来存储算法搜索过程中得到的质量与分散性较好的解,每次迭代过程中变邻域搜索的初始解均从该集合中产生。有效地解决了阻塞流水车间调度问题。
Description
技术领域
变邻域搜索(variable neighborhood search,VNS)是一种简单而有效的智能优化算法,与传统的局域搜索算法只针对一个邻域进行搜索不同,其思想是利用两个或两个以上的邻域,在搜索的过程中,算法会在不同的邻域中按照给定的规则交替进行搜索。由于邻域结构不同,在某一邻域内的局部最优解在其它邻域就可能不是局部最优解,从而帮助算法跳出局部最优,增强算法的广域搜索能力。VNS算法已经广泛应用于求解各类组合优化问题,并取得了较好的结果。分散搜索(scatter search,SS)是一种基于种群的方法,其思想是从种群中选取质量较好和分散性较好的解组成参考集,利用参考集来生成下一代的种群,以增强算法的广域搜索能力。该算法已经在许多组合最优化问题中得到了成功的应用,例如车辆调度问题和生产调度问题。
背景技术
传统的流水车间调度问题(permutation flowshop scheduling problem,PFSP)由于具有较强的工业背景,一直是生产调度领域的重点研究课题。该问题通常假设相邻的机器之间具有存储能力无限的中间库,工件的存储不受任何限制。但是,在许多实际工业过程中,由于需要进行连续生产,一条生产线上的相邻工序之间经常是没有中间库的。在这种情况下,当一个工件i在一台机器j上完成加工后,如果下一机器j+1仍处于加工状态,那么该工件i就必须存储在当前机器j上,直到机器j+1的状态变为空闲(可加工工件)为止。这样,工件i和机器j就出现了阻塞现象。这种类型的PFSP问题通常被称为阻塞流水车间调度问题(blocking PFSP)。如果问题的优化目标是工件的最大完成时间(makespan,记为Cmax),那么该问题也可以表示为Fm/blocking/Cmax。近年来,该问题逐渐受到了国内外众多学者的关注。
发明内容
本发明所要解决的技术问题是,将VNS算法与SS算法根据各自的特点进行混合,提出一个分散变邻域搜索算法(scatter VNS,SVNS),并设计了基于工件块的邻域搜索,以实现Fm/blocking/Cmax问题的高效求解。
1问题描述
Fm/blocking/Cmax问题可以描述为:有n个待加工工件{1,2,...,n}需要在m个机器{1,2,...,m}上进行加工。主要的约束条件包括:(1)每个工件i都必须从第1个机器开始,依次经过这m个机器进行m道工序的加工,即各工件的加工顺序相同;(2)工件一旦开始加工,其加工过程不可中断;(3)每个机器一次最多只能加工一个工件;(4)工件在当前机器加工完成后,只有当下一机器空闲时才能离开当前机器到达下一机器进行加工,在下一机器空闲之前的时间内,该工件及当前机器部被阻塞。
设工件i在机器j上的处理时间表示为pij;s=(s(1),s(2),...,s(n))表示一个工件加工序列,其中s(k)表示排在第k个位置上的工件号;工件s(k)在机器j上的离开时间(记为Ds(k),j)可以由以下公式计算:
Ds(l),0=0;
Ds(k),0=Ds(k-1),1,k=2,...,n;
Ds(k),j=max{Ds(k),j-1+ps(k),j,Ds(k-1),j+1
其中,k=2,...,n,j=1,...m-1;
Ds(k),m=Ds(k),m-1+ps(k),m,k=1,...,n.
那么所有工件的最大完成时间makespan就可以定义为Cmax(s)=Ds(n),m。
2基于分散搜索和变邻域搜索的混合SVNS算法
在传统的VN算法中(如图1所示),Shaking过程主要用来帮助算法跳出局部最优,但是经过Shaking过程所得到的解s′的质量如果很差,那么即使对其进行局部搜索后,所得到的改进解s″通常很难优于解s,从而导致无效搜索的情况。为了避免这种情况,本文将分散 搜索中的参考集R引入到VNS算法中来,提出了分散变邻域搜索算法,即SVNS。在算法中,参考集R用来存储VNS算法搜索过程中所得到的质量和分散性较好的解。Shaking过程变为从参考集R中选取质量和分散性较好的解,来生成新解s′,从而使得新解s′既能够具有良好的质量,又能够兼顾分散性,同时避免了传统VNS算法容易出现无效搜索的情况。
此外,在邻域结构的设计上,传统VNS算法针对PFSP问题,通常采用基于insertion移动(从一个工件序列中删除一个工件并将它插入到工件序列的其它位置上)和swap移动(交换工件序列中两个相邻或不相邻的工件)的邻域结构。针对以工件序列作为解的生产调度问题,复合移动(即一次执行多个insertion或swap移动)的性能要优于这两个简单移动,其原因是复合移动的邻域规模更大,其能够达到的搜索空间也更大。因此,本发明提出了基于工件块的邻域结构,其邻域规模能够根据工件块的大小进行变化。在所提出的SVNS算法中,邻域规模按照从小到大进行变化,从而实现在兼顾局域搜索能力的前提下,提高算法的广域搜索能力。
基于以上所提出的改进策略,本发明所提出的SVNS算法的流程如图2所示,其中N1,N2,...,Nk表示工件块大小分别为1,2,...,k时的邻域。从图2中可以看出,与传统VNS相比,新的SVNS算法的特点主要是:(1)使用分散搜索的参考集R来产生VNS搜索的初始解,而小是在当前的邻域Nk内随机产生一个解;(2)参考集R的更新机制中同时考虑了解的质量和分散性;(3)局域搜索基于当前的邻域Nk,其规模可以不断增大。以下部分将对图2中各部分进行详细介绍。
2.1初始解产生方法
由于会对一般的PFSP问题,NEH方法[6]能够获得高质量的初始解,因此本文采用NEH方法来产生Fm/blocking/Cmax问题的初始解,然后再对该解执行局部搜索。该算法的过程可以描述如下:
Step1.按照各工件在所有阶段的处理时间之和的非增顺序把所有的n个工件排序,并设得到的序列为x=(x(1),x(2),...,x(n))。
Step2.从这个序列中取出前两个工件x(1)和x(2),并假定只有这两个工件要进行加工,然后确定这两个工件的最优排序,假定为x′=(x′(1),x′(2))。
Step3.将1件序列x中的下一个工件插入到前面所得到的部分解x′的最好位置上(该位置能使得目标函数的增加量最小)。重复这一过程直到所有的工件都被插入到x′中,从而得到一个初始解。
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中分散性最差的解删除(不包括当前最好解)。
在此,我们给出解的分散性的定义,即该解与集合R中其它解之间的最小距离。两个解s1=(s1(1),s1(2),...,s1(n))与s2=(s2(1),s2(2),...,s2(n))之间的距离定义为 其中当s1(j)≠s2(j)时,sgn(j)=1;否则sgn(j)=0。当两个解的分散性指标相等时,删除质量较差的那个解。
2.3从参考集中产生解
在图2所示的Shaking过程中,VNS搜索的起始解s′从参考集R中随机选择。但是,每个解的选择概率不是相等的,而是由每个解已经被选择进行局域搜索的次数,以及进行搜索后是否得到更好解的结果来决定的。在算法中,我们记录参考集R中每个解st已经被选择进行局域搜索的次数selt,当一个新解加入到R中时,该次数为1(为了防止计算过程中出现除以0的情况)。
初始情况下,每个解的选择概率相同;如果某一个解st被选择进行局域搜索,而得到的改进解未能进入参考集R中,则selt=selt+1;否则,将维持selt不变(因为对该解的搜索结果是可以接受的,说明继续对其进行搜索有较大可能获得更好的解)。根据selt,可以得到b个解的选择概率:
pt=rt/∑t∈Rrt
其中rt=∑t∈Rselt/selt。从该式中可以看出,解st被选择的次数越多并且其改进解进入R中的次数越少,那么该解的选择概率就会越小。从而保证局域搜索只针对搜索质量较好的解进行,避免无效搜索。
2.4基于工件块的邻域搜索
基于工件块的邻域属于复合移动型邻域,在执行一次基于工件块的移动来产生一个新的邻域解时,针对的是工件块内的多个工件。该移动的思想是首先从解(一个工件序列)中删除一个由相邻的k(k≥1)个工件构成的工件块,然后从该工件块中的第一个工件开始,依次将其插入到原工件序列的最好位置上(即使目标函数的增加量最小)。
针对一个给定的解s=(s(1),...,s(n)),基于大小为k的工件块的邻域(该邻域记为Nk)搜索过程可以描述如下:
Step1.设置邻域搜索的迭代次数l=1,设置最好解sb=s.
Step2.随机删除s中k个相邻的工件,并假设被删除工件的顺序记为s(d1),s(d2),...,s(dk),剩余工件所组成的部分解记为s′.
Step3.令j=1。
Step4.将s(dj)插入到s′中最好的位置上(即插入到该位置上后目标函数的增加量最小)。
Step5.令j=j+1。如果j≤k,转Step4;否则,得到一个新解s′,转Step6。
Step6.如果Cmax(s′)<Cmax(sb),则令s=sb=s′
Step7.令l=l+1。如果l≤lmax(最大迭代次数),转Step2;否则停止,输出sb。
从以上描述可以看出,针对邻域Nk的搜索不是对整个邻域进行全搜索,而是随机进行lmax次搜索,其复杂度为O(lmaxkn)。这是因为基于工件块的移动比较复杂,针对该邻域的全搜索需要消耗大量的计算时间。经过实验,我们发现对于小规模问题进行lmax=10次搜索,对于大规模问题进行lmax=20次搜索已经可以得到比较好的结果。此外,在SVNS算法中,我们按照邻域从小到大的顺序进行搜索,即按照N1,N2,...,Nk的顺序,以保证搜索的深度逐步增加,邻域的规模逐渐变大,从而兼顾局域搜索和广域搜索的平衡。经过实验,在算法中k取值为5,即最大的邻域为N5。由于lmax和k要远小于工件的数目n,因此该邻域搜索的复杂度并不会超过针对传统insertion和swap邻域的全搜索,二者的全搜索复杂度为O(n2),从而保证了在SVNS算法中使用这种类型的邻域搜索的效率。
附图说明
图1传统VNS算法图
图2分散变邻域搜索(SVNS)算法图。
Claims (3)
1.基于分散变邻域搜索的阻塞流水车间调度问题求解方法,其特征在于:针对阻塞流水车间调度问题将将分散搜索算法的参考集嵌入到变邻域搜索算法中,形成混合的分散变邻域搜索算法。
2.权利要求1所述的基于分散变邻域搜索的阻塞流水车间调度问题求解方法,其特征还在于:当从参考集中选择变邻域搜索的起始解时,依照局域搜索的次数与搜索质量的反馈结果两个因素进行概率选择。
3.权利要求1所述的基于分散变邻域搜索的阻塞流水车间调度问题求解方法,其特征还在于:在权利要求2的基础上针对传统邻域类型在搜索深度和广度上能力不足的问题,提出了基于工件块的邻域搜索,其邻域规模能够根据工件块的大小进行变化。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310594139.9A CN103577900A (zh) | 2013-11-19 | 2013-11-19 | 基于分散变邻域搜索的阻塞流水车间调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310594139.9A CN103577900A (zh) | 2013-11-19 | 2013-11-19 | 基于分散变邻域搜索的阻塞流水车间调度方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103577900A true CN103577900A (zh) | 2014-02-12 |
Family
ID=50049643
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310594139.9A Pending CN103577900A (zh) | 2013-11-19 | 2013-11-19 | 基于分散变邻域搜索的阻塞流水车间调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103577900A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107578178A (zh) * | 2017-09-11 | 2018-01-12 | 合肥工业大学 | 基于变邻域搜索和引力搜索混合算法的调度方法及系统 |
CN107730065A (zh) * | 2017-06-12 | 2018-02-23 | 合肥工业大学 | 基于改进变邻域搜索算法的生产调度方法及系统 |
CN107909200A (zh) * | 2017-11-13 | 2018-04-13 | 浙江大学 | 一种高效的集装箱码头装卸调度装置 |
CN108873850A (zh) * | 2018-09-05 | 2018-11-23 | 昆明理工大学 | 一种机械制造自动化生产过程的优化调度方法 |
-
2013
- 2013-11-19 CN CN201310594139.9A patent/CN103577900A/zh active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107730065A (zh) * | 2017-06-12 | 2018-02-23 | 合肥工业大学 | 基于改进变邻域搜索算法的生产调度方法及系统 |
CN107730065B (zh) * | 2017-06-12 | 2018-07-24 | 合肥工业大学 | 基于改进变邻域搜索算法的生产调度方法及系统 |
CN107578178A (zh) * | 2017-09-11 | 2018-01-12 | 合肥工业大学 | 基于变邻域搜索和引力搜索混合算法的调度方法及系统 |
US10402404B2 (en) | 2017-09-11 | 2019-09-03 | Hefei University Of Technology | Scheduling method and system based on hybrid variable neighborhood search and gravitational search algorithm |
CN107909200A (zh) * | 2017-11-13 | 2018-04-13 | 浙江大学 | 一种高效的集装箱码头装卸调度装置 |
CN108873850A (zh) * | 2018-09-05 | 2018-11-23 | 昆明理工大学 | 一种机械制造自动化生产过程的优化调度方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103577900A (zh) | 基于分散变邻域搜索的阻塞流水车间调度方法 | |
CN107203687A (zh) | 吸收塔脱硫过程多目标协同智能优化控制方法 | |
CN102194133B (zh) | 基于数据聚类的适应性图像sift特征匹配方法 | |
CN105976048A (zh) | 一种基于改进人工蜂群算法的输电网扩展规划方法 | |
CN102819652B (zh) | 一种基于适应性反向差分演化的机械参数优化设计方法 | |
CN103793467A (zh) | 一种基于超图和动态规划的大数据实时查询优化方法 | |
CN112947319B (zh) | 一种钢铁企业冷轧区多产线的集批排程优化方法及系统 | |
CN103592920A (zh) | 一种中间存储能力有限的混合流水车间调度方法 | |
CN104268077A (zh) | 基于混沌遗传算法的测试用例集约简算法 | |
Ducange et al. | Multi-objective evolutionary fuzzy systems | |
CN107544246B (zh) | 一种多目标优化的炼焦煤料的制备过程的优化调度方法 | |
CN107909223A (zh) | 一种复杂车间低熵化布局与稳健优化方法 | |
CN105678623A (zh) | 一种解决柔性车间作业调度的元启发式搜索方法 | |
CN112051796B (zh) | 一种连接二维随机封闭图形生成最短路径的规划方法 | |
CN103500165A (zh) | 一种结合聚类和双key值的高维向量检索方法 | |
CN108198084A (zh) | 一种复杂网络重叠社区发现方法 | |
CN109635999B (zh) | 一种基于粒子群-细菌觅食的水电站调度方法及系统 | |
CN116485057A (zh) | 一种自适应遗传算法求解路径规划的方法 | |
CN112448411A (zh) | 多风电场接入系统的汇集站选址和外送容量规划方法 | |
CN114781703A (zh) | 一种分层多目标优化方法、终端设备及存储介质 | |
CN103903064A (zh) | 一种用于基于空间缩减多状态系统维修策略的优化系统 | |
CN114038512A (zh) | 一种合成丙烯酸的催化条件优化方法及系统 | |
Chen et al. | Research on adaptive genetic algorithm based on multi-population elite selection strategy | |
CN115700647A (zh) | 一种基于禁忌搜索遗传算法的车间柔性作业调度方法 | |
CN105303368A (zh) | 一种节能减排项目的筛选方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20140212 |