一种带运输过程的分布式柔性车间调度方法及系统

文档序号:30137350发布日期:2022-05-21 02:09阅读:456来源:国知局
一种带运输过程的分布式柔性车间调度方法及系统

1.本发明属于车间调度技术领域,尤其涉及一种带运输过程的分布式柔性车间调度方法及系统。


背景技术:

2.近年来,随着企业间协作生产的日益普及,分布式制造系统受到了广泛的关注;由于分布式调度问题具有重要的理论和应用价值,目前已扩展到分布式并行机调度问题、分布式置换流水作业调度问题和分布式混合作业车间调度问题等多个方向;分布式柔性作业车间调度问题(distributed flexible job-shop scheduling problem,dfjsp)是分布式车间调度问题(dssp)的一个典型分支,具有多个工厂同时工作,每个工厂代表一个柔性作业车间的特点,dfjsp问题包含了三维优化问题,包括工件分配问题、机床分配问题和工序优化问题。
3.发明人发现,现有的解决分布式柔性作业车间调度问题的方法中,没有考虑工件在机床之间的运输时间因素,且目前研究的算法以及其他元启发式算法在dfjsp中的有效性还没有得到验证,不存在求解带运输时间的dfjsp问题算法。


技术实现要素:

4.本发明为了解决上述问题,提出了一种带运输过程的分布式柔性车间调度方法及系统,本发明提出了一种基于人工免疫算法(artificial immune algorithm,aia)和遍邻域算法(variable neighborhood search,vns)的混合元启发式算法来求解带运输时间的dfjsp问题(dfjsp with transportation time,dfjsp-t)。
5.为了实现上述目的,本发明是通过如下的技术方案来实现:
6.第一方面,本发明提供了一种带运输过程的分布式柔性车间调度方法,包括:
7.获取待加工工件信息,以及分布式柔性车间相关信息;
8.依据待加工工件信息、分布式柔性车间相关信息以及预设的分布式柔性车间调度模型,得到调度结果;
9.其中,所述分布式柔性车间调度模型设置为,利用加权和法对完工时间和总能量消耗进行同时优化的基于顺序的混合整数线性规划模型;在确定机床之间的运输时间时,预设虚拟机床,将虚拟机床输送每个工件的的工序设定为第一道工序,每后一道工序的完成时间等于前一道工序的完成时间加上所述后一道工序的加工时间以及两机床之间的运输时间,从所有作业的最后工序获得最大完成时间。
10.进一步的,所述分布式柔性车间调度模型为:minω
·cmax
+(1-ω)
·
tec,其中,ω为目标的权重值,c
max
为从最后工序获得的最大完成时间,tec为总能量消耗。
11.进一步的,总能量消耗tec为:
12.13.其中,n为工件的数量,opj为每个工件j的工序数量,u为工厂的数量,m为每个工厂中机床的数量,j为工件编号,l为工序编号,i为机床编号,f为工厂编号,x
j,l,f,i,k
为二元决策变量,pt
j,l,f,i
为工序o
j,l
在工厂f的机床i上的加工时间,ec
j,f,i
为工件j在工厂f的机床i加工的单位能耗。
14.进一步的,针对分布式柔性车间调度模型,利用混合人工免疫算法求解,包括工件分配向量、机床选择向量和工序顺序向量。
15.进一步的,利用混合人工免疫算法求解至少包括初始化种群、记录亲和力最高的抗体、通过解码评估种群中个体的适应度值、选择种群中适应度最高的抗体并克隆、对克隆后的抗体进行搜索策略更新以及通过免疫抑制过程进一步更新种群。
16.进一步的,如果要加工的工序是工件的第一道工序,则重新分析从虚拟机床到当前机床的运输时间,否则,同时考虑从一台机床到另一台机器的各种情况。
17.进一步的,采用基于遍邻域的搜索策略对克隆后的抗体进行搜索策略更新,全局搜索在作业分配向量上执行,在内层循环中,邻域结构用于在每个邻域结构中进行局部搜索,分别用于工序顺序向量和机床选择向量;对于每个克隆抗体,应用局部搜索算子来获得解,并将获得的解插入到工件分配向量中;如果在邻域结构中找不到符合要求的解决方案,则替换全局邻域结构,并在新的邻域结构中继续进行局部搜索。
18.第二方面,本发明还提供了一种带运输过程的分布式柔性车间调度系统,包括:
19.数据采集模块,被配置为:获取待加工工件信息,以及分布式柔性车间相关信息;
20.调度模块,被配置为:依据待加工工件信息、分布式柔性车间相关信息以及预设的分布式柔性车间调度模型,得到调度结果;
21.其中,所述分布式柔性车间调度模型设置为,利用加权和法对完工时间和总能量消耗进行同时优化的基于顺序的混合整数线性规划模型;在确定机床之间的运输时间时,预设虚拟机床,将虚拟机床输送每个工件的的工序设定为第一道工序,每后一道工序的完成时间等于前一道工序的完成时间加上所述后一道工序的加工时间以及两机床之间的运输时间,从所有作业的最后工序获得最大完成时间。
22.第三方面,本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现了第一方面所述的带运输过程的分布式柔性车间调度方法的步骤。
23.第四方面,本发明还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现了第一方面所述的带运输过程的分布式柔性车间调度方法的步骤。
24.与现有技术相比,本发明的有益效果为:
25.1、本发明考虑了dfjsp中机床之间的运输时间这一典型约束条件,并利用加权和法对多目标问题中的完工时间和总能量消耗进行了同时优化;基于不同的建模思想,首次建立了基于顺序的milp(mixed integer linear programming)数学模型,并通过模实例验证了其有效性和可行性;
26.2、本发明考虑到问题的复杂性和不确定性,采用三维编码方法和多种初始化策略对种群进行初始化;在此基础上,提出了一种人工免疫算法和基于变邻域搜索的混合算法对该问题进行优化,并采用了多个基于该问题的搜索算子来加强对该问题的求解;同时,结
合多种邻域结构,保证算法不会陷入局部最优;最后,通过与其他四种有效元启发式算法的比较,该算法取得了较好的性能,验证了所提出算法的有效性。
附图说明
27.构成本实施例的一部分的说明书附图用来提供对本实施例的进一步理解,本实施例的示意性实施例及其说明用于解释本实施例,并不构成对本实施例的不当限定。
28.图1为本发明实施例1的分布式生产调度布局示意图;
29.图2为本发明实施例1的交叉算子pox operator;
30.图3为本发明实施例1的交叉算子rpx operator;
31.图4为本发明实施例1的交叉算子tpx operator;
32.图5为本发明实施例1的三种初始化策略的anova值分析;
33.图6为本发明实施例1的haia-ns和haia的anova值分析;
34.图7为本发明实施例1的ω=0.8时的五种算法的anova值分析;
35.图8为本发明实施例1的ω=0.2时的五种算法的anova值分析;
36.图9为本发明实施例1的ω=0.5时的五种算法的anova值分析;
37.图10为本发明实施例1的实例-f2j10m5对应的收敛曲线;
38.图11为本发明实施例1的实例-f2j15m5对应的收敛曲线;
39.图12为本发明实施例1的实例-f2j20m3对应的收敛曲线;
40.图13为本发明实施例1的实例-f3j20m5对应的收敛曲线;
41.图14为本发明实施例1的实例-f2j40m3对应的收敛曲线;
42.图15为本发明实施例1的实例-f3j40m5对应的收敛曲线;
43.图16为本发明实施例1的实例-f3j60m5对应的收敛曲线;
44.图17为本发明实施例1的实例-f2j100m3对应的收敛曲线。
具体实施方式:
45.下面结合附图与实施例对本发明作进一步说明。
46.应该指出,以下详细说明都是示例性的,旨在对本技术提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本技术所属技术领域的普通技术人员通常理解的相同含义。
47.实施例1:
48.如图1所示,本实施例提供了一种带运输过程的分布式柔性车间调度方法,包括:
49.获取待加工工件信息,以及分布式柔性车间相关信息;
50.依据待加工工件信息、分布式柔性车间相关信息以及预设的分布式柔性车间调度模型,得到调度结果;
51.其中,所述分布式柔性车间调度模型设置为,利用加权和法对完工时间和总能量消耗进行同时优化的基于顺序的混合整数线性规划模型;在确定机床之间的运输时间时,预设虚拟机床,将虚拟机床输送每个工件的的工序设定为第一道工序,每后一道工序的完成时间等于前一道工序的完成时间加上所述后一道工序的加工时间以及两机床之间的运输时间,从所有作业的最后工序获得最大完成时间。
52.本实施例究了带运输时间约束的分布式柔性作业车间调度问题(dfjsp-t),目标是同时优化最大完工时间和总加工能耗;针对该问题,本实施例建立了基于序列的混合整数线性规划模型,考虑到问题的复杂性和不确定性,采用三维编码方法和多种初始化策略对种群进行初始化,在此基础上,提出了一种人工免疫算法和基于变邻域搜索的混合算法对该问题进行优化,并采用了多个基于该问题的搜索算子来加强对该问题的求解,同时,结合多种邻域结构,保证算法不会陷入局部最优,最后,通过与其他四种有效元启发式算法的比较,该算法取得了较好的性能,验证了所提出算法的有效性;具体过程为:
53.dfjsp是柔性作业车间调度问题(flexible job-shop scheduling problem,fjsp)的一个延伸和拓展,即一组工件被分配到多个工厂中进行加工,本实施例中,当工件在机器上加工时,机器之间的运输时间和总的能量消耗被同时考虑,采用了加权和的方法来求解该多目标优化问题,并且分配了多组不同的权重来对优化两个目标,此外,考虑到了工件从缓冲区到机床的过程,定义了一个虚拟的机床0。
54.dfjsp包括一组工件{j1,j2,

,jn}在多个工厂{f1,f2,

,fu}中进行加工,其中每个工厂都是相同的;对于每个工件o
j,l
,有一组可用的机床可以进行加工;一旦一道工序o
j,l
加工完成且其下一道工序o
j,l+1
的加工机床与当前工序o
j,l
的加工机床不同,则工件j会被立即从机床i’运输到机床i,所花费的运输时间记为tt
j,i’,i
;同时工件在机床上加工时所产生的的能耗被考虑且每道工序o
j,l
产生的能耗受其加工时间pt
j,l,i
的影响,单位时间产生的能耗记为ec
j,i
。本实施例中,假设:(1)所有的工厂都是相同的,例如机器的数量等;(2)每个工件只能分配给一个特定的工厂;(3)每个工件的所有工序必须在同一个工厂进行;(4)每个作业只能同时在指定工厂的一台计算机上处理;(5)每台机器不能同时执行多道工序;(6)除虚拟机床0外,所有工厂中的其他机器在时间0都可用;(7)每个工厂都有足够的运输设备将工作从一台机器转移到另一台机器;(8)只考虑工件在机床中加工时所产生的能耗。
55.在本实施例中,定义各种下标、集合、常量和变量,如表1所示:
56.表1参数以及定义
[0057][0058][0059]
在本实施例中,为了求解dfjsp-t,建立了一个基于顺序milp模型;dfjsp-t的优化目标定义如下:
[0060]
minω
·cmax
+(1-ω)
·
tec
ꢀꢀꢀ
(1),
[0061]
其中,ω为目标的权重值;该模型需要4个决策变量,其中z
j,f
用于将每个作业分配给合适的工厂,c
j,l
用于定义每个工序的完成时间,y
j,l,j’,l’用于确定工序的处理顺序,以及x
j,l,f,i,i’保证每个工序被分配给工厂中的机床。对于此模型,总能量消耗(tec)计算如下:
[0062][0063]
约束定义如下:
[0064][0065][0066][0067][0068][0069][0070][0071][0072][0073][0074][0075][0076][0077]zj,f
,x
j,l,f,i,i'
,y
j,l,j',l'
∈{0,1}
ꢀꢀꢀ
(16)
[0078]
其中,约束(3)旨在将每个工件分配给一个指定工厂;约束(4)和(5)确保每个工件的所有工序都在同一工厂进行加工;约束(6)和(7)限制每道工序从一组可用机床中选择加工机床;约束(8)确保除了每个作业的第一道工序外,每道工序都按顺序执行,并且如果在工厂f中的机器i上处理o
j,l
,则前一道工序o
j,l-1
必须在同一工厂中的机器i’上进行加工;由于考虑了虚拟机床0,约束(9)强制从虚拟机床m0输送每个工件的第一道工序;为了计算完成时间,总结出约束(10)和(11),以定义每道工序的完成时间等于前一道工序的完成时间加上该工序的加工时间以及从机器i’到机器i的运输时间;约束(12)和(13)保证所有工序之间不存在重叠;约束(14)确定从所有作业的最后工序获得最大完成时间;最后,在约束(15)和(16)中声明了四个决策变量的值范围。
[0079]
本实施例中,介绍了用于解决所考虑的dfjsp-t问题的混合人工免疫算法(haia)算法,在算法1中详细介绍了所提出的haia的主要框架,如表2所示:
[0080]
表2算法1:混合人工免疫算法
[0081][0082]
在本实施例中,解的表示可以分为三个部分,即工件分配(job assignment,ja)部分,机床选择(machine selection,ms)部分和工序顺序(operation sequence,os)部分;解的规模是其中opj表示每个工件j的工序的数量,n代表了工件的数量;解的具体表达如下:
[0083]
(1)工件分配向量:该向量决定将每个作业分配到特定的工厂,其中向量的规模等于作业的数量,每个数字代表工厂的序号,例如第一个工件分配给第一个工厂,剩下的两个工件分配给第二个工厂;
[0084]
(2)机床选择向量:该向量保证每道工序都分配给一个可用的机床来执行,并且向量的大小等于解中的每个数字分别表示机床的序号;
[0085]
(3)工序顺序向量:此向量保证可行的工序顺序,其中每个数字表示工件,而每个工件出现的顺序决定了它的工序排序。每个工件出现opj次,这意味着工件包括opj道工序。
[0086]
为了实现种群的更好的收敛性和多样性,采用了几种初始策略来初始化解;ms部分的初始策略详细如下:
[0087]
(1)随机分配策略:对于每道工序,都会随机选择一台可用的机床进行处理;该方法具有较好的随机性,保持了种群的多样性;
[0088]
(2)工序最小处理时间策略:对于每道工序,从一组可用机床中选择一台加工时间最小的合适机床来加工;
[0089]
(3)运行最低能耗策略:对于每道工序,从一组可用的机床中选择一台能耗最低的合适机床来加工;
[0090]
(4)全局最小适应度策略:该策略是对全局最小加工时间策略的扩展,将加工时间转化为多个目标的加权值;这样,生成的解就可以根据我们的期望设置的权重系数进行收敛;详细步骤在算法2中描述,如表3所示;
[0091]
(5)全局-局部最小适应度策略:该策略是全局最小适应度策略的扩展,全局最小适应度策略将每个作业分开,并对每个作业应用全局最小适应度优化,以选择合适的机床。
[0092]
表3全局最小适应度策略
[0093][0094]
本实施例中,os部分的初始化策略详述如下:
[0095]
(1)随机排序策略:该规则是一种简单可行的方法,它随机扰乱所有的工序以保持种群的多样性,并随机地搜索整个解空间;
[0096]
(2)最大剩余工序数(most number of operation remaining,mor)策略:具有最多剩余工序的工件优选地安排在工序序列向量中;如果有多个工件具有相同的工序数,则随机选择一个工件。
[0097]
由于该问题涉及运输时间和虚拟机床,因此它不同于传统fjsp中的解码过程;考虑到当前要加工的工序,无论它是不是第一道工序,都可以分为两类;如果要加工的工序是工件的第一道工序,则需要重新分析从虚拟机床0到当前机床的运输时间;否则,需要同时考虑从一台机床到另一台机器的各种情况。整个解码过程具体如表4所示:
[0098]
表4解码过程
[0099][0100][0101]
在该算法中,为了保证获得较好的抗体,并将其应用于后续的克隆、免疫抑制等免疫操作,选择了亲和力最高的几种抗体,其中所选抗体的数量表示为nc。对于克隆操作,抗体亲和力高的抗体克隆较多。因此,对于每个选定的nc抗体,克隆数定义为:n
c-k+1,其中k表示nc抗体中第k个亲和力较高的抗体。这样,克隆操作后的克隆总数等于nc(nc+1)/2。
[0102]
如图2、图3和图4所示,根据编码方案各部分的特点,分别采用了优先操作交叉(precedence operation crossover,pox)算子、两点交叉(two-points crossover,tpx)算子和随机点保持交叉(rand-point preservation crossover,rpx)算子;值得注意的是,这三种算子都不需要修复机制;在交叉环节中,亲本个体的选择是影响后代个体质量的关键因素;因此,其中一个亲本是从克隆的抗体向量ca中选出的,记为p1,另一个是用二进制锦
标赛选择法从三个随机个体中选出的亲和力最高的个体,记为p2;在精英选拔方面,新产生的两个子代个体o1和o2,保留较好的一个进行后续操作。
[0103]
本实施例中,pox算子,表示为ls1;pox算子通过两个亲本个体的os向量的交叉操作产生两个子代个体。所有作业被分成两组jset1和jset2;将属于集合jset1的作业从p1复制到o1,将属于集合jset2的作业从p2复制到o2;o1和o2中的空白位置按p2和p1中未复制作业的顺序填充。
[0104]
本实施例中,rpx算子,表示为ls2;ms向量采用rpx运算符,其工作方式如下:随机生成0和1组成的字符串,长度等于ms向量的长度;将双亲p1和p2分别复制到两个子个体o1和o2中;如果指定位置的编号为0,则更换该位置的机器。
[0105]
本实施例中,tpx算子,表示为gs1;采用两点交叉生成新的ja向量。新生成的作业组合,可以在全局范围内进行搜索,避免陷入局部最优;随机选择ja向量中的两个点c1和c2;将双亲p1和p2分别复制到两个子个体o1和o2中;交换ja向量中c1点之前的作业和c2点之后的作业。
[0106]
变异操作可以通过改变邻域结构来有效的搜索解空间,达到优化目标值的效果,是一个提高解质量的有效方法;在实施例中,设计了两种变异方法来优化解,完成解空间的搜索,同时,给出了dfjsp的两个性质,并将这两个性质应用于变异算子的设计中,下面说明了两个属性:
[0107]
属性1、在dfjsp中,每个工厂可以视为一个独立的fjsp。证明:在编码阶段,每个工件被随机分配到某个工厂,每个工件的所有工序都在同一个工厂中加工,且不考虑工件在工厂间的运输。因此,对于每个工厂来说,都有一组在工厂加工的工件,每个工件的每道工序都有一组可供加工的机床,这与fjsp的定义是一致的,所以每个工厂都可以看作是一个单独的fjsp。
[0108]
属性2、如果只改变关键工厂的工序顺序或机床选择,其他工厂的完工时间不会受到影响。证明:根据属性1,可以将每个工厂视为独立的fjsp,因此每个工厂都有独立的完成时间。因此,完工时间可以进一步表示为:c
max
=max{c
f1
,c
f2


,c
fu
},其中c
ff
表示第f个工厂的完工时间。显然,每个工厂都有单独的编码方案πf,它包括两个部分,即操作顺序部分和机床选择部分。dfjps的编码方案可以表示为π=π1∪π2∪

∪πu。总之,一旦关键工厂πc的编码方案改变,其他方案πf=π-πc的编码方案不会受到影响,其他工厂的完工时间也不会受到影响。
[0109]
基于性质1,将变异算子分为局部搜索算子和全局搜索算子,其中全局搜索针对作业分配向量,局部搜索针对工序顺序向量和机床选择向量进行。由于关键工厂的完工时间准则决定了dfjsp的最大完工时间,我们提出了三种关键工厂的变异算子,包括两个基于工厂内部变异的局部搜索算子和一个用于工厂间工件交换的全局搜索算子。此外,基于属性1和属性2,在变异算子应用于关键工厂之后,不需要再次解码其他工厂。因此,解码部分的算法复杂度从o(n)降低到o(1),其中n表示工厂数。
[0110]
基于上述性质,提出了几种全局搜索算子和局部搜索算子来解决这一问题。由于最大完工时间是由解的关键路径决定的,因此只有通过调整关键路径上的操作才能优化最大完工时间。为此,采用了两种基于关键路径的变异算子对解进行优化。变异运算符如下:
[0111]
在实施例中,设计了两种变异方法来优化解,完成解空间的搜索。一种是基于随机
的搜索算子,包括ls3、ls4和gs2。此外,由于关键工厂的完工时间确定了项目的最大完工时间,所以只有通过调整关键路径上的操作才能优化最大完工时间。因此,我们提出了基于关键工厂的局部搜索算子,包括ls5、ls6和gs4。
[0112]
其中,随机工序置换算子(ls3):通过交换os向量中随机选取且不相等的两个位置上的元素生成新的邻域解。随机更换机床算子(ls4):通过更换任意一道工序的加工机床来获得邻域解。关键工序交换算子(ls5):该算子和ls3类似,通过对关键工厂中的两道工序进行交换操作生成新的邻域解。关键机床交换算子(ls6):该算子和ls4类似,对关键工厂的工序进行机床的更换来生成新的邻域解。随机工件交换算子(gs2):作业的合理组合对解的收敛有着至关重要的影响。在此基础上,设计了随机作业交换算子,实现了全局变异。具体操作可以归结为在ja向量中的两个工厂f1和f2之间交换随机选择的作业。该算子保证了全局搜索以随机方向进行,并完成了对搜索空间的遍历。随机工件插入算子(gs3):为了防止作业分配不均,提出了随机工件插入算子来平衡工厂之间的作业分配。具体如下:(1)找出工序最多和最少的工厂f
max
和f
min
;(2)在f
max
中随机选择一个工件j;(3)将工件j的加工工厂在ja向量中改为f
min
。关键工件插入算子(gs4):为了避免工厂加工时间不均匀,提出了关键作业插入算子来平衡两个工厂的最大完工时间和最小完工时间。具体如下:(1)找出完工时间最长和最短的工厂f
max
,f
min
;(2)找到关键工厂中最大完工时间的工件j;(3)将工件j的加工工厂在ja向量中改为f
min

[0113]
为了充分发挥种群的潜力,探索解空间,采用了基于遍邻域算法(variable neighborhood search,vns)的搜索策略进行进一步的探索;vns是一种高效的局部搜索方法,并且已被广泛证明并应用于各种组合优化问题;一般来说,vns涉及两种邻域操作和多个邻域结构,两种不同邻域结构得到的最优解往往是不同的;因此,一旦算法陷入局部最优陷阱,就能够通过两次邻域操作系统地切换邻域结构从而避免。
[0114]
在本实施例中,一组邻域结构gsk(k=1,2,

,k
max
)来代替邻域结构;值得注意的是,这三个算子是针对ja向量开发的,这意味着全局搜索是在作业分配向量上执行的。在内层循环中,几个邻域结构ls
l
(l=1,2,

,l
max
)用于在每个邻域结构中进行局部搜索,其中这些算子分别用于os向量和ms向量;对于每个克隆抗体,应用几个局部搜索算子来获得较好的解,并将该解插入到ca向量中;如果在这些邻域结构中找不到更好的解决方案,则替换全局邻域结构,并在新的邻域结构中继续进行局部搜索。基于vns的搜索策略的框架结构如表5所示:
[0115][0116][0117]
抑制过程作为一种保护机制,用于消除低亲和力抗体,保证种群进化的效率;在克隆和突变过程后,所有的亲代抗体和子代抗体都保留在一个临时抗体集合ca中;抑制过程是从ca向量中重新选择一组高质量的抗体,以抑制种群中低适应度抗体的迭代,其中保留亲和力最高的nc个抗体,消除另一组最差的抗体,从而更新种群。
[0118]
在实施例中,对上述提出的算法进行了实验,并对实验部分进行了分析,具体为:
[0119]
为了验证所提出的算法在dfjsp-t上的有效性,本实施例中,用c++语言编写了算法,并在3.40ghz intel core i7 cpu和16gb ram的配置的主机上进行了实验分析;需要注意的是,实验包括验证策略和模型的有效性,都是在权重系数等于0.8的情况下进行的;在多算法比较部分,对0.2、0.5和0.8几组权重系数进行了分析比较。
[0120]
由于没有包含dfjsp-t运输时间的数据集,本实施例中根据生产的实际问题,随机生成了两组不同问题规模的dfjsp-t算例,包括小规模实例和大规模两组实例。每个实例分为三个部分,第一个数字表示工厂的数量,取值f={2,4};第二个数字表示工件的数量,取值范围为5-100,其中小规模算例的值为n={5,10,15,20},大规模算例的值为n={20,40,60,80,100}。最后一个数字表示机床的数量,机床数量为m={3,5}。随机确定每个工件的工序个数,取值范围为m/2~m,并对每道工序的加工时间、不同机床之间的运输时间、每个工件的机器利用率和单位能耗进行了设计。加工时间和运输时间分别均匀分布在区间[10,30]和[5,20]内。在考虑机器故障、预防性维修等特殊因素的情况下,在区间[m/2,m-1]内确定每道工序的可用机床数量。在[0.1,0.5]区间内的离散均匀分布给出了加工工件时的单
位能耗。
[0121]
为了验证milp模型的有效性,本实施例中在ibm ilog cplex 12.7中对其进行了建模,并在一组小规模实例上进行了milp模型与所提出算法的对比实验。由于cplex在求解混合整数规划问题milp时采用基于分枝定界算法,模型的计算耗时较长。因此,模型的计算时间限制在1000秒,线程数设置为3,值得注意的是,该算法的适应度值是每次独立运行30秒后的最小值。
[0122]
如表6所示,每个算例的规模在第一列中给出,符号

f’、

j’和

m’分别表示工厂、工件和机床的数量。第三列列出了两个模型和提出的算法之间的最佳适应值。对于每个模型,本实施例中分别比较了适应值、求解次数和相对目标差距(gap),其中gap表示在一定时间内获得的最优整数解与解空间中可能存在的最优解之间的差异。值得注意的是,如果gap值等于0,则解是解空间中的最佳个体。计算gap指标的公式如下所示:
[0123][0124]
其中,f
integer
表示在特定时间内获得的最优整数解,而f
best
表示解空间中可能存在的最优解。同时,为了比较模型和算法的适应度值,采用相对百分比增量(relative percentage increase,rpi)作为性能度量,其计算公式如下:
[0125][0126]
其中,f
current
是由给定算法获得的适应值,而f
best
是从所有比较的模型和算法中比较出的的最佳适应值。
[0127]
表6milp模型与haia的性能比较
[0128]
[0129][0130]
从表6可以看出:模型和所提出的算法都能在短时间内完成搜索空间的搜索,并找到最优解。然而随着实例规模的逐渐增大,模型约束和变量也随之增加。milp模型不能在合理的时间内找到最优解,从最后一行可以看出,该算法的平均rpi值远远小于基于顺序的模型的rpi值。
[0131]
为了验证所提出的初始化策略的有效性,本实施例中设计了另外两种比较算法,它们的初始化策略都采用了giovanni和pezzella提出的改进遗传算法中的相应部分;(以下简称iga),由wu等人提出的abc算法,分别表示用haia-di1和haia-di2表示。
[0132]
比较结果如表7所示,其中第二列列出了实例规模,第三列提供了三种算法之间的最佳适应值。不同初始策略的三种算法的适应度和rpi值分别显示在以下六列中。从表7可以看出:随着实例规模的扩大,算法的性能越来越突出。最后一行计算了平均rpi值,这表明所提出的初始策略比另外两个初始策略取得了更好的性能。为了直观地显示三种算法之间的差异,采用多因素方差分析(anova)对算法的性能进行了评估。如图5所示,因为p值等于8.4166e-06且远远小于0.05,证明差异是显著的。
[0133]
表7三种初始化策略的性能比较
[0134]
[0135][0136]
面对复杂的解空间,编码方案分为三个部分,其中工件分配ja向量是决定解质量的关键部分。为此,提出了基于vns的搜索策略来改变ja向量的邻域结构。为了验证基于vns的搜索策略的有效性,本实施例中设计了一个没有搜索策略的比较算法haia-ns,其中变量k
max
等于零,表明ja部分没有邻域切换。
[0137]
算结果如表8所示,其中第二列表示实例的规模,第三列显示haia-ns和haia之间获得的最佳值。接下来的两列描述了30次独立运行后两种算法的平均值,最后两列分别列举了两种算法的rpi值。结果表明,采用基于vns的搜索策略的算法在给定的16个实例中15个实例得到了更好的结果;最后一行计算出两种比较算法的平均rpi值分别为1.73和0.04,表明基于vns的搜索策略对算法的改进是有效的。
[0138]
图6提供了两种算法的方差分析比较,其中p值等于7.0034e-07,远远小于0.05。因此,两种算法之间存在显著差异,进一步证明了该策略的有效性。
[0139]
表8.haia-ns和haia的性能比较
[0140][0141]
为了验证该算法的有效性,还采用了其他四种算法作为比较算法,包括chang等人提出的iga、abc、混合遗传算法(以下简称hga),以及gong等人提出的增强型模因算法(ma)。(以下称为ema)。研究已经证明了这四种算法在求解dfjsp问题上的有效性。为了避免算法运算的随机性和公平比较,每个实例每个算法独立运行30次,取得到的平均值进行比较。
[0142]
为了验证该算法的有效性,还采用了其他四种算法作为比较算法,包括chang等人提出的iga、abc、混合遗传算法(以下简称hga),以及gong等人提出的增强型模因算法(ma)。(以下称为ema)。研究已经证明了这四种算法在求解dfjsp问题上的有效性。为了避免算法运算的随机性和公平比较,每个实例每个算法独立运行30次,取得到的平均值进行比较。使用了两组不同规模的算例来验证算法的有效性,同时分析了算法在不同权重系数下的性能。
[0143]
不同权重系数下多种算法的比较结果如表9表10和表11所示。表9提供了权重系数等于0.8的多算法性能比较,其中第一列表示实例规模。为了能够分析在权重系数ω=0.8时其他算法的最佳收敛值并与cplex得到的结果进行比较,每个算法的最小值也列在各列中。接下来的十列分别表示每个比较算法30次运行得到的平均值,最后五列是根据五种比较算法的平均值得到的rpi值。在另外两个表中,第三列给出了从以下五种比较算法的平均值中获得的最佳值,最后五列给出了这五种比较算法的rpi值。另外两个表10和11分别展示了权重系数等于0.2和0.5的多算法性能比较。
[0144]
根据对比结果可以看出:在给定的32个实例中,haia获得较好的效果。随着实例规模的增大,该算法的优越性更加突出。从三个表的最后一行来看,该算法的rpi值远远小于其他四种算法。另外,图7图8和图9给出了多种算法的方差分析比较结果,在不同的权重系数设置下,本实施例提出的算法要优于其他四种算法,并且比较算法之间的差异显著性远小于0.05。
[0145]
表9权重系数ω=0.8时的多算法比较分析
[0146][0147][0148]
表10权重系数ω=0.2时的多算法比较分析
[0149]
[0150][0151]
表11权重系数ω=0.5时的多算法比较分析
[0152]
[0153][0154]
为了直观地比较结果,本实施例中随机选择了8个实例,包括实例-f2j10m5、实例-f2j15m5、实例-f2j20m3、实例-f3j20m5、实例-f2j40m3、实例-f3j40m5、实例-f3j60m5和实例-f2j100m3,它们对应的收敛曲线分别如图10、图11、图12、图13、图14、图15、图16和图17所示。
[0155]
从比较结果看,haia比其他高效的元启发式算法具有更好的性能,其原因可以概括为:所提出的各种初始策略在初始化更好的种群和探索解空间方面都起着至关重要的作用,特别是在大规模实例中。结合问题的两个特性,提出了几种与问题相关的交叉和变异算子来优化问题。设计了一种基于vns的搜索策略来寻找最优解,该策略通过不断更新邻域结构,保证算法不会陷入局部最优。
[0156]
本实施例考虑了dfjsp中一个典型的约束条件,即机床之间的运输时间,并利用加权和法对多目标问题中的完工时间和总能耗进行了同时优化;基于不同的建模思想,首次建立了基于顺序的milp数学模型,并通过cplex的小规模实例验证了其有效性和可行性;设计了一种三维编码方法来初始化和解码该问题;结合基于vns的搜索策略,提出了一种混合人工免疫算法来解决该问题,该算法集成了多个基于问题的交叉和变异算子;通过小规模实例,验证了初始策略和基于vns的策略的有效性;此外,所提出的算法在大规模实例中也取得了突出的效果,进一步证明了所提出的策略和算法的有效性。
[0157]
实施例2:
[0158]
本实施例提供了一种带运输过程的分布式柔性车间调度系统,包括:
[0159]
数据采集模块,被配置为:获取待加工工件信息,以及分布式柔性车间相关信息;
[0160]
调度模块,被配置为:依据待加工工件信息、分布式柔性车间相关信息以及预设的分布式柔性车间调度模型,得到调度结果;
[0161]
其中,所述分布式柔性车间调度模型设置为,利用加权和法对完工时间和总能量消耗进行同时优化的基于顺序的混合整数线性规划模型;在确定机床之间的运输时间时,预设虚拟机床,将虚拟机床输送每个工件的的工序设定为第一道工序,每后一道工序的完成时间等于前一道工序的完成时间加上所述后一道工序的加工时间以及两机床之间的运输时间,从所有作业的最后工序获得最大完成时间。
[0162]
所述系统的工作方法与实施例1的带运输过程的分布式柔性车间调度方法相同,这里不再赘述。
[0163]
实施例3:
[0164]
本实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现了实施例1所述的带运输过程的分布式柔性车间调度方法的步骤。
[0165]
实施例4:
[0166]
本实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现了实施例1所述的带运输过程的分布式柔性车间调度方法的步骤。
[0167]
以上所述仅为本实施例的优选实施例而已,并不用于限制本实施例,对于本领域的技术人员来说,本实施例可以有各种更改和变化。凡在本实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本实施例的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1