CN103530702B - 一种基于瓶颈设备分解的大规模作业车间调度方法 - Google Patents

一种基于瓶颈设备分解的大规模作业车间调度方法 Download PDF

Info

Publication number
CN103530702B
CN103530702B CN201310478932.2A CN201310478932A CN103530702B CN 103530702 B CN103530702 B CN 103530702B CN 201310478932 A CN201310478932 A CN 201310478932A CN 103530702 B CN103530702 B CN 103530702B
Authority
CN
China
Prior art keywords
workpiece
chromosome
bottleneck device
equipment
bottleneck
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.)
Expired - Fee Related
Application number
CN201310478932.2A
Other languages
English (en)
Other versions
CN103530702A (zh
Inventor
翟颖妮
董朝阳
褚崴
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xian University of Architecture and Technology
Original Assignee
Xian University of Architecture and Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xian University of Architecture and Technology filed Critical Xian University of Architecture and Technology
Priority to CN201310478932.2A priority Critical patent/CN103530702B/zh
Publication of CN103530702A publication Critical patent/CN103530702A/zh
Application granted granted Critical
Publication of CN103530702B publication Critical patent/CN103530702B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种基于瓶颈设备分解的大规模作业车间调度方法,包括:(1)数据采集,建立模型;(2)基于关键路径法进行瓶颈设备的识别;(3)对瓶颈设备和非瓶颈设备进行分类编码;(4)生成初始染色体种群;(5)对染色体种群进行交叉和变异操作;(6)对染色体种群接种免疫算子;(7)对染色体进行解码和适应度值计算;(8)更新算法最优染色体及最优适应度值;(9)判断方法终止准则是否达到,若满足则进入步骤(10),否则转跳至步骤(5)进行下一次迭代;(10)对步骤(9)中找出的最优染色体进行解码,获得调度指令进行调度。本发明可以在较短的时间内获得令人满意的调度方案,提高作业车间生产效率,可用于车间生产过程的调度管理与优化。

Description

一种基于瓶颈设备分解的大规模作业车间调度方法
【技术领域】
本发明属于车间调度领域,具体涉及一种大规模作业车间生产调度方法。
【背景技术】
生产调度是生产管理的核心,是实现制造业运筹、决策、管理与优化的关键,对资源的优化配置和科学运作起着举足轻重的作用。统计资料表明:在零件的实际制造过程中,有效加工时间约占总加工周期的15%左右,而85%以上的时间用于等待、搬运和排队。因此,研发有效而稳定的生产调度技术,实现生产过程的科学运作和高效产出,提高企业的市场竞争力,已成为制造业的迫切需求,具有重要的科学研究价值和实际工程应用意义。
生产调度作为一类复杂的组合优化问题,具有多约束、多目标、大规模和随机不确定性等特点,其求解过程的计算量随调度问题规模的增大呈指数倍增长,绝大多数调度问题都属于非确定性多项式(NondeterministicPolynomial,NP)难题,无法在确定的时间内求得最优解。迄今为止,针对生产调度问题的优化求解方法经历了从简单到复杂、从单一到多元的过程,主要形成了两大类求解方法:精确方法和近似求解法。精确方法以数学规划法、分支定界法、拉格朗日松弛法等为代表,主要用于处理规模不大和性质不复杂的调度问题;近似求解法将调度的工作重心由精确解的获取转向近似解的获取上,主要包括启发式方法、系统仿真方法、人工智能方法和软计算方法等。
这些方法已在中小规模生产调度问题的求解上取得了较好的成效(规模一般不超过20台机器、50个工件),然而对于大规模、带复杂约束、不确定等实际生产过程调度问题,现有的优化方法仍具有较大的局限性。特别是近年来,市场竞争日趋激烈,制造业生产规模日益增大,加上生产调度问题本事就是NP难问题,造成生产调度问题的求解规模呈指数倍膨胀,因此已有的调度方法往往存在调度效率下降、求解质量不理想、实用性较差等问题,无法满足日益扩大的生产规模。
【发明内容】
本发明针对现有生产调度方法在应用于实际大规模作业车间生产调度时,存在效率低、质量不理想、实用性差等不足,提供一种基于瓶颈设备分解的大规模作业车间调度方法,以提高生产效率和效益。
为实现上述目的,本发明的技术方案具体为:
一种基于瓶颈设备分解的大规模作业车间调度方法,包括以下步骤:
(1)数据采集:采集待调度大规模作业车间生产相关数据;建立调度问题对应的数学规划模型;
(2)基于关键路径法进行瓶颈设备的识别;
(3)对瓶颈设备和非瓶颈设备进行分类编码:对于瓶颈设备,采用基于工序编码的方式,细化到待调度的每一个瓶颈工序;对非瓶颈设备采用基于分派规则的编码方式,一台机器仅占用一个基因位;
(4)按照步骤(3)所述编码方式生成染色体初始种群;
(5)对染色体种群进行交叉和变异操作;
(6)对步骤(5)进行变异操作后形成的染色体种群进行免疫操作;
(7)对免疫操作结束后种群中所有染色体进行解码和适应度计算,选择种群中适应度值最高的染色体,并将该染色体保存为当代最佳染色体,该染色体的适应度值保存为当代最佳适应度值;
(8)判断当代最佳适应度值是否大于算法最优适应度值,若是,则将算法的最优染色体及最优适应度值更新为当代最佳染色体及当代最佳适应度值,然后进入步骤(9);若否,直接进入步骤(9);
(9)判断算法最优适应度值在连续多代内是否有改进,如果没有,转入步骤(10);否则,判断算法迭代代数是否到达最大允许迭代代数,如果是,进入步骤(10),如果否,通过轮盘赌选择策略从免疫操作结束后种群中选择若干适应度值最高的染色体,作为下一代初始种群进入步骤(5)重新进行算法的下一次迭代;
(10)对算法的最优染色体进行解码,获得调度指令,应用该调度指令对待调度的大规模车间进行作业调度。
本发明进一步的改进在于:步骤(1)中,所述生产相关数据包括:设备数、工件数、各工件的加工工序、各工序的加工时间,以及工序间加工顺序、设备加工能力、作业目标约束条件信息;所述大规模作业车间是指机床数≥20,工件数≥50的车间;
大规模作业车间有n个工件需要在m台设备上加工,工件i包含Ni道工序,i=1…n,各工序之间有工艺的先后顺序约束,且在每台设备j上最多加工一次,j=1…m,Ni≤m;Oi,j表示工件i在设备j上的加工工序,pi,j表示工序Oi,j的加工时间,ti,k表示工序Oi,j的开工时间;调度任务是在m台设备上安排n个工件的加工,确定各设备上各工序的加工顺序及相应的开工时间,以最小化各工件的拖期时间和,并满足下列约束条件:所有工件的工艺路线、工序加工时间既定不变;工序一旦开始加工不允许中断;同一时刻每台设备最多只能加工一个工件;同一时刻每个工件只能在一台设备上加工;
调度问题对应的数学规划模型如下:
min T = Σ 1 ≤ i ≤ n max { ( t i , g i ( N i ) + p i , g i ( N i ) - d i ) , 0 }
s.t.
t i , g i ( k + 1 ) - t i , g i ( k ) ≥ p i , g i ( k ) , i = 1 , . . . n ; k = 1 . . . N i - 1
ti',j-ti,j+a(1-xii'j)≥pi,ji=1,…n;i'=1,…n;i≠i';j=1…m;xii'j∈{0,1}
ti,j-ti',j+axii'j≥pi',ji=1,…n;i'=1,…n;i≠i';j=1…m;xii'j∈{0,1}
t i , g i ( 1 ) ≥ 0 , i = 1 . . . n
其中,
——表示工件i的最后一道工序的开工时间;
——表示工件i的最后一道工序的加工时间;
di——表示工件i的交货期;
gi(k)——表示工件i第k道工序的加工设备号;
gi(Ni)——表示工件i最后一道工序的加工设备号;
a——表示一个非常大的正数,大于等于∑pij(i=1…n,j=1…m);
xii'j——一个二进制变量,表示设备j上工件i和工件i’的加工顺序,当设备j上工件i在工件i’之前加工时,xii'j=1,否则xii'j=0。
本发明进一步的改进在于:步骤(2)具体包括以下步骤:对步骤(1)所描述的调度问题,对各设备分别在表1中随机选择1种分派规则进行组合调度,生成1个有效调度方案,经过N次选择和调度,生成N个有效调度方案并作为样本,计算各样本中各设备上的关键工序个数bjl(l=1…N)(关键工序即最早开工时间等于最晚开工时间、没有推迟时间的工序),根据瓶颈设备识别模型,计算各设备上关键工序个数的均值μj和关键工序个数的方差σj 2,得到各设备的瓶颈显著程度指标值vj;对各设备的vj值进行倒排,截取前20%-40%的设备作为瓶颈设备;
表1分派规则列表
上述瓶颈设备识别模型为:
v j = ρ μ j σ j 2 , j = 1 . . . m
μ j = Σ l = 1 N b jl N
σ j 2 = Σ l = 1 N ( b jl - μ j ) 2 N - 1
其中,
vj——设备j的瓶颈显著程度指标值;
μj——设备j关键工序个数的均值,反映了该设备上关键工序个数的平均程度;
σj 2——设备j上关键工序个数的方差,反映了该设备上关键工序个数的波动情况;
ρ——修正系数,取值为10-100;
N——样本个数,即生成调度方案的总数;
bjl——样本值,即调度方案l下设备j上的关键工序个数。
本发明进一步的改进在于:步骤(3)中所有设备的编码方式为:
r 1 . . . r B 1 - 1 | o B 1 1 o B 1 2 . . . o B 1 x 1 | r B 1 + 1 . . . r B 2 - 1 | o B 2 1 o B 2 2 . . . o B 2 x 2 | r B 2 + 1 . . . r B b - 1 | o B b 1 o B b 2 . . . o B b x b | r B b + 1 . . . r m - 1 r m
其中,
b——表示瓶颈设备总个数;
——表示瓶颈设备Bb上编号为xb的工序;
Bq(q=1…b)——表示瓶颈设备代号;
xq(q=1…b)——表示瓶颈设备Bq上的总工序个数;
rm——表示非瓶颈设备m所使用的分派规则编号。
本发明进一步的改进在于:步骤(5)具体包括以下步骤:
交叉:从染色体初始种群中以交叉概率pc=0.9选择用于进行交叉操作的染色体,针对每个需要进行交叉操作的染色体,首先进行瓶颈设备与非瓶颈设备基因片段的分离,对于瓶颈设备基因片段,采用线性次序交叉方式,随机确定两个不同的交叉位置,交换两交叉点之间的基因片段,并在原先父代个体中删除从另一父代交换过来的基因,然后从第一个基因位置起依次在两交叉位置外填入剩余基因,以保证染色体的合法性;对于非瓶颈设备基因片段,仅交叉交叉位置之间的基因片段,无需进行染色体合法化处理过程;
变异:从交叉以后的种群中以变异概率pm=0.1选择染色体进行变异操作;首先进行瓶颈设备基因片段与非瓶颈设备基因片段的分离,分别对分离后的两种基因片段,采用互换方式随机交换两个不同基因的位置,最后将瓶颈设备基因片段与非瓶颈设备基因片段重新组合生成新的染色体。
本发明进一步的改进在于:步骤(6)具体包括以下步骤:
(6.1)抗原选择:在步骤(5)进行变异操作后形成的种群中以免疫概率α抽取一部分染色体准备进行免疫操作;α≤1;
(6.2)从步骤(6.1)所获得的所有抗原中随机选取一个未进行免疫操作的抗原,然后进入步骤(6.3);
(6.3)疫苗抽取:对步骤(6.2)所选取的抗原或者步骤(6.5)返回的新抗原,通过解码获得其对应的调度方案,识别其中的关键工件及候选关键工件集;
染色体的具体解码方法如下:
设PS为已调度工序集,S为当前所有可调度工序集,σo为S中工序o的最早可加工时间,φo为S中工序o的最早可完成时间,do为工序o的交货期,C为满足调度条件的冲突工序集合;
Step1:初始化;令S为当前没有前道工序的所有工序的集合;
Step2:确定可调度工序集中,最早可完工工件的完工时间φ*=mino∈So},以及对应的加工设备m*,若存在多个设备,则任选其一;
Step3:选择S中所有欲在m*上加工且σo≤φ*(o∈S)的工序,构成冲突工序集C;
Step4:若m*为瓶颈设备,则根据对应瓶颈设备基因片段,选择冲突工序集C在基因片段的未调度工序集中最先出现的操作o,进行调度;若m*为非瓶颈设备,则根据非瓶颈设备基因片段上该设备对应的分派规则,从冲突工序集C中选择工序进行调度,如果存在多个满足条件的工序,则任选其一;
Step5:PS=PS∪o,更新S;如果染色体解码过程结束;否则返回Step2;
(6.4)疫苗注射:针对步骤(6.2)所选择的抗原,将其上瓶颈设备基因序列和非瓶颈设备基因序列分离;并将疫苗信息取代瓶颈设备基因序列,进行疫苗注射,具体为:针对瓶颈设备基因序列,将关键工件置于整个染色体的首位,候选关键工件集置于非关键工件集之前;
(6.5)免疫检测:对抗原免疫注射后,采用步骤(6.3)中相同的染色体解码方法计算新染色体的适应度值,如果新染色体的适应度值大于原染色体的适应度值,说明免疫有效,则采用新染色体来取代原染色体,该抗原的免疫操作结束,进入步骤(6.6);反之,继续对免疫操作后的新抗原返回步骤(6.3)重新进行免疫,直至出现新染色体的适应度值大于原染色体的适应度值或到达免疫终止条件,该抗原的免疫操作结束,进入步骤(6.6);免疫终止条件为:同一染色体免疫操作次数达到maxIM=5时,退出该染色体的免疫操作;所述适应度值为各染色体解码后所对应的调度方案的目标函数值的倒数;
(6.6)检测步骤(6.1)中所抽取的所有抗原是否全部进行了免疫操作,如果是进入步骤(7),如果不是返回步骤(6.2)进行下一个抗原的免疫操作。
本发明进一步的改进在于:所述算法适应度值为算法迭代过程中已保存的最优适应度值,其对应的染色体为算法的最优染色体。
本发明进一步的改进在于:步骤(9)具体包括以下步骤:判断算法最优适应度值在连续GN_exit=20代内是否有改进,如果没有,转入步骤(10);否则,判断算法迭代代数是否到达maxGN=200,如果是,则进入步骤(10),如果否,通过轮盘赌选择策略从免疫操作结束后种群中选择popsize=50个适应度值最高的染色体,作为下一代初始种群进入步骤(5)重新进行算法的下一次迭代。
本发明进一步的改进在于:步骤(1)中所述以最小化拖期时间和为作业目标约束条件。
一种基于瓶颈设备分解的大规模作业车间调度方法,包括以下步骤:
(1)数据采集;采集待调度大规模作业车间的设备数、工件数、各工件的加工工序、各工序的加工时间,以及工序间加工顺序、设备加工能力、作业目标约束条件信息;以最小化拖期时间和T为作业目标约束条件;所述大规模作业车间是指机床数≥20,工件数≥50的车间;
大规模作业车间有n个工件需要在m台设备上加工,工件i包含Ni道工序,i=1…n,各工序之间有工艺的先后顺序约束,且在每台设备j上最多加工一次,j=1…m,Ni≤m;Oi,j表示工件i在设备j上的加工工序,pi,j表示工序Oi,j的加工时间,ti,k表示工序Oi,j的开工时间;调度任务是在m台设备上安排n个工件的加工,确定各设备上各工序的加工顺序及相应的开工时间,以最小化各工件的拖期时间和,并满足下列约束条件:所有工件的工艺路线、工序加工时间既定不变;工序一旦开始加工不允许中断;同一时刻每台设备最多只能加工一个工件;同一时刻每个工件只能在一台设备上加工;
调度问题对应的数学规划模型如下:
min T = Σ 1 ≤ i ≤ n max { ( t i , g i ( N i ) + p i , g i ( N i ) - d i ) , 0 }
s.t.
t i , g i ( k + 1 ) - t i , g i ( k ) ≥ p i , g i ( k ) , i = 1 , . . . n ; k = 1 . . . N i - 1
ti',j-ti,j+a(1-xii'j)≥pi,ji=1,…n;i'=1,…n;i≠i';j=1…m;xii'j∈{0,1}
ti,j-ti',j+axii'j≥pi',ji=1,…n;i'=1,…n;i≠i';j=1…m;xii'j∈{0,1}
t i , g i ( 1 ) ≥ 0 , i = 1 . . . n
其中,
——表示工件i的最后一道工序的开工时间;
——表示工件i的最后一道工序的加工时间;
di——表示工件i的交货期;
gi(k)——表示工件i第k道工序的加工设备号;
gi(Ni)——表示工件i最后一道工序的加工设备号;
a——表示一个非常大的正数,大于等于∑pij(i=1…n,j=1…m);
xii'j——一个二进制变量,表示设备j上工件i和工件i’的加工顺序,当设备j上工件i在工件i’之前加工时,xii'j=1,否则xii'j=0;
(2)基于关键路径法进行瓶颈设备的识别;对步骤(1)所述调度问题,对各设备分别在表1中随机选择1种分派规则进行组合调度,生成1个有效调度方案,经过N次选择和调度,生成N个有效调度方案并作为样本,计算各样本中各设备上的关键工序个数bjl(l=1…N)(关键工序即最早开工时间等于最晚开工时间、没有推迟时间的工序),根据瓶颈设备识别模型,计算各设备上关键工序个数的均值μj和关键工序个数的方差σj 2,得到各设备的瓶颈显著程度指标值vj;对各设备的vj值进行倒排,截取前20%-40%的设备作为瓶颈设备;
表1分派规则列表
上述瓶颈设备识别模型为:
v j = ρ μ j σ j 2 , j = 1 . . . m
μ j = Σ l = 1 N b jl N
σ j 2 = Σ l = 1 N ( b jl - μ j ) 2 N - 1
其中,
vj——设备j的瓶颈显著程度指标值;
μj——设备j关键工序个数的均值,反映了该设备上关键工序个数的平均程度;
σj 2——设备j上关键工序个数的方差,反映了该设备上关键工序个数的波动情况;
ρ——修正系数,取值为10-100;
N——样本个数,即生成调度方案的总数;
bjl——样本值,即调度方案l下设备j上的关键工序个数;
(3)对瓶颈设备和非瓶颈设备进行分类编码;
对于瓶颈设备,采用基于工序编码的方式,细化到待调度的每一个工序;对非瓶颈设备采用基于分派规则的编码方式,一台机器仅占用一个基因位;所有设备的编码方式为:
r 1 . . . r B 1 - 1 | o B 1 1 o B 1 2 . . . o B 1 x 1 | r B 1 + 1 . . . r B 2 - 1 | o B 2 1 o B 2 2 . . . o B 2 x 2 | r B 2 + 1 . . . r B b - 1 | o B b 1 o B b 2 . . . o B b x b | r B b + 1 . . . r m - 1 r m
其中,
b——表示瓶颈设备总个数;
——表示瓶颈设备Bb上编号为xb的工序;
Bq(q=1…b)——表示瓶颈设备代号;
xq(q=1…b)——表示瓶颈设备Bq上的总工序个数;
rm——表示非瓶颈设备m所使用的分派规则编号;
(4)按照步骤(3)所述编码方式生成染色体初始种群:
按照步骤(3)所述编码方式,一次编码为1个染色体,随机生成规模为popsize=50个染色体的初始种群;
(5)对染色体种群进行交叉和变异操作;
从染色体初始种群中以交叉概率pc=0.9选择染色体进行交叉操作,交叉的方法如下:进行瓶颈设备与非瓶颈设备基因片段的分离,对于瓶颈设备基因片段,采用线性次序交叉方式,随机确定两个不同的交叉位置,交换两交叉点之间的基因片段,并在原先父代个体中删除从另一父代交换过来的基因,然后从第一个基因位置起依次在两交叉位置外填入剩余基因,以保证染色体的合法性;对于非瓶颈设备基因片段,由于其上各基因仅代表各非瓶颈设备的分派规则号,交叉操作并不会改变其染色体的合法性,因此仅交叉交叉位置之间的片段,无需进行染色体合法化处理过程;
交叉完成后进行变异操作,具体如下:从交叉以后的种群中以变异概率pm=0.1选择染色体进行变异操作;首先进行瓶颈设备基因片段与非瓶颈设备基因片段的分离,分别对分离后的两种基因片段,采用互换方式随机交换两个不同基因的位置,最后将瓶颈设备基因片段与非瓶颈设备基因片段重新组合生成新的染色体;
交叉、变异过程中的父染色体及子染色体都放入原种群中;
(6)对染色体种群进行免疫操作;
(6.1)抗原选择:在步骤(5)进行变异操作后形成的种群中以免疫概率α=0.1抽取一部分染色体;准备进行免疫操作;
(6.2)从步骤(6.1)所获得的所有抗原中随机选取一个未进行免疫操作的抗原,然后进入步骤(6.3);
(6.3)疫苗抽取:对步骤(6.2)所选取的抗原或者步骤(6.5)返回的新抗原,通过解码获得其对应的调度方案,识别其中的关键工件及候选关键工件集;
候选关键工件集:对于一个以最小化拖期时间和为目标的调度方案,其上最后一道工序的完工时间大于对应交货期的工件,是对调度目标有影响的工件,称为候选关键工件;所有候选关键工件的集合为候选关键工件集:
C _ JBN = ∪ 1 ≤ i ≤ n arg ( c i - d i > 0 ) , i = 1 . . . n
其中,ci为工件i的完工时间,di为工件i的交货期;
关键工件:候选关键工件集中,拖期最严重的工件,是对目标函数贡献最大的工件,称为关键工件:
JBN = arg max 1 ≤ i ≤ n ( c i - d i ) , c i > d i ; i = 1 . . . n
非关键工件集:作业车间所有工件中,候选关键工件集之外的工件,对调度目标没有影响,称为非关键工件集:
C_NBN=Ujob-C_JBN
C _ NBN = ∪ 1 ≤ i ≤ n arg ( c i - d i ≤ 0 ) , c i ≤ d i ; i = 1 . . . n
其中,Ujob为作业车间所有工件的集合;
步骤(6.3)中染色体的具体解码方法如下:
设PS为已调度工序集,S为当前所有可调度工序集,σo为S中工序o的最早可加工时间,φo为S中工序o的最早可完成时间,do为工序o的交货期,C为满足调度条件的冲突工序集合;
Step1:初始化:令S为当前没有前道工序的所有工序的集合;
Step2:确定可调度工序集中,最早可完工工件的完工时间φ*=mino∈So},以及对应的加工设备m*,若存在多个设备,则任选其一;
Step3:选择S中所有欲在m*上加工且σo≤φ*(o∈S)的工序,构成冲突工序集C;
Step4:若m*为瓶颈设备,则根据对应瓶颈设备基因片段,选择冲突工序集C在基因片段的未调度工序集中最先出现的操作o,进行调度;若m*为非瓶颈设备,则根据非瓶颈设备基因片段上该设备对应的分派规则,从冲突工序集C中选择工序进行调度,如果存在多个满足条件的工序,则任选其一;
Step5:PS=PS∪o,更新S;如果染色体解码过程结束;否则返回Step2;
(6.4)疫苗注射:针对(6.2)所选择的抗原,将其上瓶颈设备基因序列和非瓶颈设备基因序列分离;并将疫苗信息取代瓶颈设备基因序列,进行疫苗注射,具体为:针对瓶颈设备基因序列,将关键工件置于整个染色体的首位,候选关键工件集置于非关键工件集之前;
(6.5)免疫检测:对抗原免疫注射后,采用步骤(6.3)中相同的染色体解码方法计算新染色体的适应度值,如果新染色体的适应度值大于原染色体的适应度值,说明免疫有效,则采用新染色体来取代原染色体,该抗原的免疫操作结束,进入步骤(6.6);反之,继续对免疫操作后的新抗原返回步骤(6.3)重新进行免疫,直至出现新染色体的适应度值大于原染色体的适应度值或到达免疫终止条件,该抗原的免疫操作结束,进入步骤(6.6);免疫终止条件为:同一染色体免疫操作次数达到maxIM=5时,退出该染色体的免疫操作;
所述适应度值为各染色体解码后所对应的调度方案的目标函数值的倒数;
(6.6)检测步骤(6.1)中所抽取的所有抗原是否全部进行了免疫操作,如果是进入步骤(7),如果不是返回步骤(6.2)进行下一个抗原的免疫操作;
(7)对免疫操作结束后种群中所有染色体进行解码和适应度计算;
对免疫操作结束后种群中所有染色体进行解码(解码方法同步骤(6.3)),同时采用步骤(6.5)中所述适应度值处理方法,获得各染色体的适应度值;
选择种群中适应度值最高的染色体,并将该染色体保存为当代最佳染色体,对应的适应度值保存为当代最佳适应度值;如果算法的迭代次数=1,则将算法的最优染色体及最优适应度值赋值为当代最佳染色体及当代最佳适应度值;
(8)判断当代最佳适应度值是否大于算法最优适应度值,若是,则将算法的最优染色体及最优适应度值更新为当代最佳染色体及当代最佳适应度值,然后进入步骤(9);若否,直接进入步骤(9);
(9)判断算法最优适应度值在连续GN_exit=20代内是否有改进,如果没有,转入步骤(10);否则,判断算法迭代代数是否到达maxGN=200,如果是,则进入步骤(10),如果否,通过轮盘赌选择策略从免疫操作结束后种群中选择popsize=50个适应度值最高的染色体,作为下一代初始种群进入步骤(5)重新进行算法的下一次迭代;
(10)将算法的最优染色体进行解码,获得调度指令,应用该调度指令对待调度的大规模车间进行作业调度。
本发明与现有技术相比,具有以下优点:
1.调度效率高:针对大规模作业调度问题,采用不同粒度的编码方式,将对调度结果和生产运作起关键作用的瓶颈设备进行工序级细编码,而对于非瓶颈设备采用分派规则粗编码方式,以缩短染色体基因长度,降低解空间复杂度,提高算法迭代过程中的遗传免疫操作速度,在保证求解质量的同时,提高了调度效率。
2.调度质量高:针对瓶颈设备进行免疫操作,提出“关键工件邻域对换”免疫算子,将优良基因有选择性的注入原染色体上,既避免了遗传算法在迭代过程易陷入局部最优解和求解性能退化的问题,同时提高染色体适应度值,进而提高算法的求解质量。
3.本发明中免疫算子具有如下特性:
(1)疫苗具有针对性:抗体(疫苗)是针对特定的染色体而抽取,不同的染色体会有不同的抗体,因此抗体能够反映原染色体的特性;
(2)免疫过程具有目的性:免疫操作目的就是根据特定染色体的特征信息,改善其上基因排序,得到具有较高适应度值的个体,免疫检测步骤保证了这一目标的实现;
(3)免疫过程具有高效性:免疫过程仅对调度性能影响较大的瓶颈设备进行免疫,不仅提高了免疫效率,而且提高了免疫效果。
免疫算子的三大特性降低了算法进入局部最优解的可能性,提高算法收敛速度,从而保证算法的求解效率和质量。
【附图说明】
图1为本发明整体流程图;
图2为本发明中瓶颈设备识别过程流程图;
图3为本发明中染色体编码示意图;
图4为本发明中瓶颈设备基因片段交叉操作过程示例图;
图5为本发明中交叉过程中子染色体合法化过程示例图;
图6为本发明中互换变异方式示例图;
图7为本发明中染色体接种免疫算子示意图。
【具体实施方式】
请参阅图1至图7所示,本发明一种基于瓶颈设备分解的大规模作业车间调度方法,包括以下步骤:
(1)数据采集;采集待调度大规模作业车间的设备数、工件数、各工件的加工工序、各工序的加工时间,以及工序间加工顺序、设备加工能力、作业目标(最小化拖期时间和)约束条件信息。所述大规模作业车间是指机床数≥20,工件数≥50的车间。
作业车间有n个工件需要在m台设备上加工,工件i(i=1…n)包含Ni(i=1…n)道工序,各工序之间有工艺的先后顺序约束,且在每台设备j(j=1…m)上最多加工一次(Ni≤m)。Oi,j表示工件i在设备j上的加工工序,pi,j表示工序Oi,j的加工时间,ti,k表示工序Oi,j的开工时间。调度任务是在m台设备上安排n个工件的加工,确定各设备上各工序的加工顺序及相应的开工时间,以最小化各工件的拖期时间和,并满足下列约束条件:所有工件的工艺路线、工序加工时间既定不变;工序一旦开始加工不允许中断;同一时刻每台设备最多只能加工一个工件;同一时刻每个工件只能在一台设备上加工。
调度问题对应的数学规划模型可描述如下:
min T = Σ 1 ≤ i ≤ n max { ( t i , g i ( N i ) + p i , g i ( N i ) - d i ) , 0 }
s.t.
t i , g i ( k + 1 ) - t i , g i ( k ) ≥ p i , g i ( k ) , i = 1 , . . . n ; k = 1 . . . N i - 1
ti',j-ti,j+a(1-xii'j)≥pi,ji=1,…n;i'=1,…n;i≠i';j=1…m;xii'j∈{0,1}
ti,j-ti',j+axii'j≥pi',ji=1,…n;i'=1,Ln;i≠i';j=1…m;xii'j∈{0,1}
t i , g i ( 1 ) ≥ 0 , i = 1 . . . n
其中,
——表示工件i的最后一道工序的开工时间;
——表示工件i的最后一道工序的加工时间;
di——表示工件i的交货期;
gi(k)——表示工件i第k道工序的加工设备号;
gi(Ni)——表示工件i最后一道工序的加工设备号;
a——表示一个非常大的正数,大于等于∑pij(i=1…n,j=1…m);
xii'j——一个二进制变量,表示设备j上工件i和工件i’的加工顺序,当设备j上工件i在工件i’之前加工时,xii'j=1,否则xii'j=0。
(2)基于关键路径法进行瓶颈设备的识别;对步骤(1)所描述的调度问题,对各设备分别在表1中随机选择1种分派规则进行组合调度,生成1个有效调度方案,经过N次选择和调度,生成N个有效调度方案并作为样本,计算各样本中各设备上的关键工序个数bjl(l=1…N)(关键工序即最早开工时间等于最晚开工时间、没有推迟时间的工序),根据瓶颈设备识别模型,计算各设备上关键工序个数的均值μj和关键工序个数的方差σj 2,得到各设备的瓶颈显著程度指标值vj。对各设备的vj值进行倒排,截取前20%-40%的设备作为瓶颈设备。瓶颈设备识别过程如图2所示。
表1分派规则列表
上述瓶颈设备识别模型为:
v j = ρ μ j σ j 2 , j = 1 . . . m
μ j = Σ l = 1 N b jl N
σ j 2 = Σ l = 1 N ( b jl - μ j ) 2 N - 1
其中,
vj——设备j的瓶颈显著程度指标值;
μj——设备j关键工序个数的均值,反映了该设备上关键工序个数的平均程度;
σj 2——设备j上关键工序个数的方差,反映了该设备上关键工序个数的波动情况;
ρ——修正系数,取值为10-100,防止vj过小不利于比较;
N——样本个数,即生成调度方案的总数;
bjl——样本值,即调度方案l下设备j上的关键工序个数。
(3)对瓶颈设备和非瓶颈设备进行分类编码;
对于瓶颈设备,采用基于工序编码的方式,细化到待调度的每一个工序;对非瓶颈设备采用基于分派规则的编码方式,一台机器仅占用一个基因位。所有设备的编码方式为:
r 1 . . . r B 1 - 1 | o B 1 1 o B 1 2 . . . o B 1 x 1 | r B 1 + 1 . . . r B 2 - 1 | o B 2 1 o B 2 2 . . . o B 2 x 2 | r B 2 + 1 . . . r B b - 1 | o B b 1 o B b 2 . . . o B b x b | r B b + 1 . . . r m - 1 r m
其中,
b——表示瓶颈设备总个数;
——表示瓶颈设备Bb上编号为xb的工序。
Bq(q=1…b)——表示瓶颈设备代号;
xq(q=1…b)——表示瓶颈设备Bq上的总工序个数;
rm——表示非瓶颈设备m所使用的分派规则编号;
(4)按照步骤(3)所述编码方式生成染色体初始种群。
按照步骤(3)所述编码方式,一次编码为1个染色体,随机生成规模为popsize=50个染色体的初始种群。例如:对于5个工件10台设备的生产调度问题,假设瓶颈设备为5号和8号设备,则一个染色体编码如图3所示。
(5)对染色体种群进行交叉和变异操作;
从染色体初始种群中以交叉概率pc=0.9选择染色体进行交叉操作,交叉的方法如下:进行瓶颈设备与非瓶颈设备基因片段的分离,对于瓶颈设备基因片段,采用线性次序交叉方式(LOX),随机确定两个不同的交叉位置,交换两交叉点之间的基因片段,并在原先父代个体中删除从另一父代交换过来的基因,然后从第一个基因位置起依次在两交叉位置外填入剩余基因,以保证染色体的合法性;瓶颈设备基因片段交叉操作过程示例如图4所示。
设父代染色体为pf;子代染色体为pc;pt为一临时染色体,其值为父代染色体中的交叉片段;z为pf中的基因个数。则子染色体合法化过程示例如图5所示。
对于非瓶颈设备基因片段,由于其上各基因仅代表各非瓶颈设备的分派规则号,交叉操作并不会改变其染色体的合法性,因此仅需交叉交叉位置之间的片段即可,无需进行染色体合法化处理过程。
交叉完成后进行变异操作,具体如下:从交叉以后的种群中以变异概率pm=0.1选择染色体进行变异操作;首先进行瓶颈设备基因片段与非瓶颈设备基因片段的分离,分别对分离后的两种基因片段,采用互换方式(SWAP)随机交换两个不同基因的位置,最后将瓶颈设备基因片段与非瓶颈设备基因片段重新组合生成新的染色体。互换变异方式示例如图6所示。
注意:交叉、变异过程中的父染色体及子染色体都需放入原种群中,以扩大种群的多样性。
(6)对染色体种群进行免疫操作;
(6.1)抗原选择:在步骤(5)进行变异操作后形成的种群中以免疫概率α=0.1抽取一部分染色体(即:抗原)准备进行免疫操作;
(6.2)从步骤(6.1)所获得的所有抗原中随机选取一个未进行免疫操作的抗原,然后进入步骤(6.3);
(6.3)疫苗抽取:对步骤(6.2)所选取的抗原或者步骤(6.5)返回的新抗原,通过解码获得其对应的调度方案,识别其中的关键工件及候选关键工件集;
候选关键工件集:对于一个以“最小化拖期时间和”为目标的调度方案,其上最后一道工序的完工时间大于对应交货期的工件,是对调度目标有影响的工件,称为候选关键工件。所有候选关键工件的集合为候选关键工件集:
C _ JBN = ∪ 1 ≤ i ≤ n arg ( c i - d i > 0 ) , i = 1 . . . n
其中,ci为工件i的完工时间,di为工件i的交货期;
关键工件:候选关键工件集中,拖期最严重的工件,是对目标函数贡献最大的工件,称为关键工件:
JBN = arg max 1 ≤ i ≤ n ( c i - d i ) , c i > d i ; i = 1 . . . n
非关键工件集:作业车间所有工件中,候选关键工件集之外的工件,对调度目标没有影响,称为非关键工件集(即所有未拖期工件的集合):
C_NBN=Ujob-C_JBN
C _ NBN = ∪ 1 ≤ i ≤ n arg ( c i - d i ≤ 0 ) , c i ≤ d i ; i = 1 . . . n
其中,Ujob为作业车间所有工件的集合。
步骤(6.3)中染色体的具体解码方法如下:
设PS为已调度工序集,S为当前所有可调度工序集,σo为S中工序o的最早可加工时间,φo为S中工序o的最早可完成时间,do为工序o的交货期,C为满足调度条件的冲突工序集合;
Step1:初始化。令S为当前没有前道工序的所有工序的集合;
Step2:确定可调度工序集中,最早可完工工件的完工时间φ*=mino∈So},以及对应的加工设备m*,若存在多个设备,则任选其一;
Step3:选择S中所有欲在m*上加工且σo≤φ*(o∈S)的工序,构成冲突工序集C;
Step4:若m*为瓶颈设备,则根据对应瓶颈设备基因片段,选择冲突工序集C在基因片段的未调度工序集中最先出现的操作o,进行调度;若m*为非瓶颈设备,则根据非瓶颈设备基因片段上该设备对应的分派规则,从冲突工序集C中选择工序进行调度,如果存在多个满足条件的工序,则任选其一;
Step5:PS=PS∪o,更新S;如果染色体解码过程结束;否则返回Step2。
(6.4)疫苗注射:针对(6.2)所选择的抗原,将其上瓶颈设备基因序列和非瓶颈设备基因序列分离;并将疫苗信息取代瓶颈设备基因序列,进行疫苗注射,具体为:针对瓶颈设备基因序列,将关键工件置于整个染色体的首位,候选关键工件集置于非关键工件集之前;
例如:针对图3所示的染色体,假设工件5为关键工件,候选关键工件集为工件3,则该染色体接种免疫算子之后的基因结构如图7所示。
(6.5)免疫检测:对抗原免疫注射后,采用步骤(6.3)中相同的染色体解码方法计算新染色体的适应度值,如果新染色体的适应度值大于原染色体的适应度值,说明免疫有效,则采用新染色体来取代原染色体,该抗原的免疫操作结束,进入步骤(6.6);反之,继续对免疫操作后的新抗原返回步骤(6.3)重新进行免疫,直至出现新染色体的适应度值大于原染色体的适应度值或到达免疫终止条件,该抗原的免疫操作结束,进入步骤(6.6)。免疫终止条件为:同一染色体免疫操作次数达到maxIM=5时,退出该染色体的免疫操作。
所述适应度值为各染色体解码后所对应的调度方案的目标函数值的倒数。例如某染色体解码后的目标函数值为f,则适应度值
(6.6)检测步骤(6.1)中所抽取的所有抗原是否全部进行了免疫操作,如果是进入步骤(7),如果不是返回步骤(6.2)进行下一个抗原的免疫操作。
(7)对免疫操作结束后种群中所有染色体进行解码和适应度计算;
对免疫操作结束后种群中所有染色体进行解码(解码方法同步骤(6.3)),同时采用步骤6.5所述适应度值处理方法,获得各染色体的适应度值。如此,调度问题目标函数“最小化拖期时间和T”越小的染色体,其适应度值也就越高。
选择种群中适应度值最高的染色体,并将该染色体保存为当代最佳染色体,对应的适应度值保存为当代最佳适应度值;如果算法的迭代次数=1,则将算法的最优染色体及最优适应度值赋值为当代最佳染色体及当代最佳适应度值。
(8)判断当代最佳适应度值是否大于算法最优适应度值,若是,则将算法的最优染色体及最优适应度值更新为当代最佳染色体及当代最佳适应度值,然后进入步骤(9);若否,直接进入步骤(9);
(9)判断算法最优适应度值在连续GN_exit=20代内是否有改进,如果没有,转入步骤(10);否则,判断算法迭代代数是否到达maxGN=200,如果是,则进入步骤(10),如果否,通过轮盘赌选择策略从免疫操作结束后种群中选择popsize=50个适应度值最高的染色体,作为下一代初始种群进入步骤(5)重新进行算法的下一次迭代。
轮盘赌选择策略,即用正比于个体适应度值的概率来选择相应的个体,使得具有高适应度值的个体得以保留和继承,实现个体的“优胜劣汰”。
(10)将算法的最优染色体按照步骤(6.3)的方法进行解码,获得调度指令,应用该调度指令对待调度的大规模车间进行作业调度。
本发明可以在较短的时间内获得令人满意的调度方案,提高作业车间生产效率,可用于车间生产过程的调度管理与优化。

Claims (9)

1.一种基于瓶颈设备分解的大规模作业车间调度方法,其特征在于,包括以下步骤:
(1)数据采集:采集待调度大规模作业车间生产相关数据;建立调度问题对应的数学规划模型;
(2)基于关键路径法进行瓶颈设备的识别;
(3)对瓶颈设备和非瓶颈设备进行分类编码:对于瓶颈设备,采用基于工序编码的方式,细化到待调度的每一个瓶颈工序;对非瓶颈设备采用基于分派规则的编码方式,一台机器仅占用一个基因位;
(4)按照步骤(3)所述编码方式生成染色体初始种群;
(5)对染色体种群进行交叉和变异操作;
(6)对步骤(5)进行变异操作后形成的染色体种群进行免疫操作;
(7)对免疫操作结束后种群中所有染色体进行解码和适应度计算,选择种群中适应度值最高的染色体,并将该染色体保存为当代最佳染色体,该染色体的适应度值保存为当代最佳适应度值;
(8)判断当代最佳适应度值是否大于算法最优适应度值,若是,则将算法的最优染色体及最优适应度值更新为当代最佳染色体及当代最佳适应度值,然后进入步骤(9);若否,直接进入步骤(9);
(9)判断算法最优适应度值在连续多代内是否有改进,如果没有,转入步骤(10);否则,判断算法迭代代数是否到达最大允许迭代代数,如果是,进入步骤(10),如果否,通过轮盘赌选择策略从免疫操作结束后种群中选择若干适应度值最高的染色体,作为下一代初始种群进入步骤(5)重新进行算法的下一次迭代;
(10)对算法的最优染色体进行解码,获得调度指令,应用该调度指令对待调度的大规模车间进行作业调度;
步骤(6)具体包括以下步骤:
(6.1)抗原选择:在步骤(5)进行变异操作后形成的种群中以免疫概率α抽取一部分染色体准备进行免疫操作;α≤1;
(6.2)从步骤(6.1)所获得的所有抗原中随机选取一个未进行免疫操作的抗原,然后进入步骤(6.3);
(6.3)疫苗抽取:对步骤(6.2)所选取的抗原或者步骤(6.5)返回的新抗原,通过解码获得其对应的调度方案,识别其中的关键工件及候选关键工件集;
染色体的具体解码方法如下:
设PS为已调度工序集,S为当前所有可调度工序集,σo为S中工序o的最早可加工时间,φo为S中工序o的最早可完成时间,do为工序o的交货期,C为满足调度条件的冲突工序集合;
Step1:初始化;令S为当前没有前道工序的所有工序的集合;
Step2:确定可调度工序集中,最早可完工工件的完工时间φ*=mino∈So},以及对应的加工设备m*,若存在多个设备,则任选其一;
Step3:选择S中所有欲在m*上加工且σo≤φ*的工序,构成冲突工序集C,o∈S;
Step4:若m*为瓶颈设备,则根据对应瓶颈设备基因片段,选择冲突工序集C在基因片段的未调度工序集中最先出现的操作o,进行调度;若m*为非瓶颈设备,则根据非瓶颈设备基因片段上该设备对应的分派规则,从冲突工序集C中选择工序进行调度,如果存在多个满足条件的工序,则任选其一;
Step5:PS=PS∪o,更新S;如果染色体解码过程结束;否则返回Step2;
(6.4)疫苗注射:针对步骤(6.2)所选择的抗原,将其上瓶颈设备基因序列和非瓶颈设备基因序列分离;并将疫苗信息取代瓶颈设备基因序列,进行疫苗注射,具体为:针对瓶颈设备基因序列,将关键工件置于整个染色体的首位,候选关键工件集置于非关键工件集之前;
(6.5)免疫检测:对抗原免疫注射后,采用步骤(6.3)中相同的染色体解码方法计算新染色体的适应度值,如果新染色体的适应度值大于原染色体的适应度值,说明免疫有效,则采用新染色体来取代原染色体,该抗原的免疫操作结束,进入步骤(6.6);反之,继续对免疫操作后的新抗原返回步骤(6.3)重新进行免疫,直至出现新染色体的适应度值大于原染色体的适应度值或到达免疫终止条件,该抗原的免疫操作结束,进入步骤(6.6);免疫终止条件为:同一染色体免疫操作次数达到maxIM=5时,退出该染色体的免疫操作;所述适应度值为各染色体解码后所对应的调度方案的目标函数值的倒数;
(6.6)检测步骤(6.1)中所抽取的所有抗原是否全部进行了免疫操作,如果是进入步骤(7),如果不是返回步骤(6.2)进行下一个抗原的免疫操作。
2.根据权利要求1所述的一种基于瓶颈设备分解的大规模作业车间调度方法,其特征在于,步骤(1)中,所述生产相关数据包括:设备数、工件数、各工件的加工工序、各工序的加工时间,以及工序间加工顺序、设备加工能力、作业目标约束条件信息;所述大规模作业车间是指机床数≥20,工件数≥50的车间;
大规模作业车间有n个工件需要在m台设备上加工,工件i包含Ni道工序,i=1…n,各工序之间有工艺的先后顺序约束,且在每台设备j上最多加工一次,j=1…m,Ni≤m;Oi,j表示工件i在设备j上的加工工序,pi,j表示工序Oi,j的加工时间,ti,k表示工序Oi,j的开工时间;调度任务是在m台设备上安排n个工件的加工,确定各设备上各工序的加工顺序及相应的开工时间,以最小化各工件的拖期时间和,并满足下列约束条件:所有工件的工艺路线、工序加工时间既定不变;工序一旦开始加工不允许中断;同一时刻每台设备最多只能加工一个工件;同一时刻每个工件只能在一台设备上加工;
调度问题对应的数学规划模型如下:
min T = Σ 1 ≤ i ≤ n m a x { ( t i , g i ( N i ) + p i , g i ( N i ) - d i ) , 0 }
s.t.
t i , g i ( k + 1 ) - t i , g i ( k ) ≥ p i , g i ( k ) i = 1 , ... n , k = 1 ... N i - 1
ti',j-ti,j+a(1-xii'j)≥pi,ji=1,…n;i'=1,…n;i≠i';j=1…m;xii'j∈{0,1}
ti,j-ti',j+axii'j≥pi',ji=1,…n;i'=1,…n;i≠i';j=1…m;xii'j∈{0,1}
t i , g i ( 1 ) ≥ 0 i = 1 ... n
其中,
——表示工件i的最后一道工序的开工时间;
——表示工件i的最后一道工序的加工时间;
di——表示工件i的交货期;
gi(k)——表示工件i第k道工序的加工设备号;
gi(Ni)——表示工件i最后一道工序的加工设备号;
a——表示一个非常大的正数,大于等于∑pij,i=1…n,j=1…m;
xii'j——一个二进制变量,表示设备j上工件i和工件i’的加工顺序,当设备j上工件i在工件i’之前加工时,xii'j=1,否则xii'j=0。
3.根据权利要求1所述的一种基于瓶颈设备分解的大规模作业车间调度方法,其特征在于,步骤(2)具体包括以下步骤:对步骤(1)所描述的调度问题,对各设备分别在表1中随机选择1种分派规则进行组合调度,生成1个有效调度方案,经过N次选择和调度,生成N个有效调度方案并作为样本,计算各样本中各设备上的关键工序个数bjl,l=1…N,根据瓶颈设备识别模型,计算各设备上关键工序个数的均值μj和关键工序个数的方差σj 2,得到各设备的瓶颈显著程度指标值vj;对各设备的vj值进行倒排,截取前20%-40%的设备作为瓶颈设备;
表1分派规则列表
上述瓶颈设备识别模型为:
v j = ρ μ j σ j 2 , j = 1 ... m
μ j = Σ l = 1 N b j l N
σ j 2 = Σ l = 1 N ( b j l - μ j ) 2 N - 1
其中,
vj——设备j的瓶颈显著程度指标值;
μj——设备j关键工序个数的均值,反映了该设备上关键工序个数的平均程度;
σj 2——设备j上关键工序个数的方差,反映了该设备上关键工序个数的波动情况;
ρ——修正系数,取值为10-100;
N——样本个数,即生成调度方案的总数;
bjl——样本值,即调度方案l下设备j上的关键工序个数。
4.根据权利要求1所述的一种基于瓶颈设备分解的大规模作业车间调度方法,其特征在于,步骤(3)中所有设备的编码方式为:
r 1 ... r B 1 - 1 | o B 1 1 o B 1 2 ... o B 1 x 1 | r B 1 + 1 ... r B 2 - 1 | o B 2 1 o B 2 2 ... o B 2 x 2 | r B 2 + 1 ... r B b - 1 | o B b 1 o B b 2 ... o B b x b | r B b + 1 ... r m - 1 r m
其中,
b——表示瓶颈设备总个数;
——表示瓶颈设备Bb上编号为xb的工序;
Bq——表示瓶颈设备代号,q=1…b;
xq——表示瓶颈设备Bq上的总工序个数;
rm——表示非瓶颈设备m所使用的分派规则编号。
5.根据权利要求1所述的一种基于瓶颈设备分解的大规模作业车间调度方法,其特征在于,步骤(5)具体包括以下步骤:
交叉:从染色体初始种群中以交叉概率pc=0.9选择用于进行交叉操作的染色体,针对每个需要进行交叉操作的染色体,首先进行瓶颈设备与非瓶颈设备基因片段的分离,对于瓶颈设备基因片段,采用线性次序交叉方式,随机确定两个不同的交叉位置,交换两交叉点之间的基因片段,并在原先父代个体中删除从另一父代交换过来的基因,然后从第一个基因位置起依次在两交叉位置外填入剩余基因,以保证染色体的合法性;对于非瓶颈设备基因片段,仅交叉交叉位置之间的基因片段,无需进行染色体合法化处理过程;
变异:从交叉以后的种群中以变异概率pm=0.1选择染色体进行变异操作;首先进行瓶颈设备基因片段与非瓶颈设备基因片段的分离,分别对分离后的两种基因片段,采用互换方式随机交换两个不同基因的位置,最后将瓶颈设备基因片段与非瓶颈设备基因片段重新组合生成新的染色体。
6.根据权利要求1所述的一种基于瓶颈设备分解的大规模作业车间调度方法,其特征在于,所述算法适应度值为算法迭代过程中已保存的最优适应度值,其对应的染色体为算法的最优染色体。
7.根据权利要求1所述的一种基于瓶颈设备分解的大规模作业车间调度方法,其特征在于,步骤(9)具体包括以下步骤:判断算法最优适应度值在连续GN_exit=20代内是否有改进,如果没有,转入步骤(10);否则,判断算法迭代代数是否到达maxGN=200,如果是,则进入步骤(10),如果否,通过轮盘赌选择策略从免疫操作结束后种群中选择popsize=50个适应度值最高的染色体,作为下一代初始种群进入步骤(5)重新进行算法的下一次迭代。
8.根据权利要求1所述的一种基于瓶颈设备分解的大规模作业车间调度方法,其特征在于,步骤(1)中以最小化拖期时间和为作业目标约束条件。
9.一种基于瓶颈设备分解的大规模作业车间调度方法,其特征在于,包括以下步骤:
(1)数据采集;采集待调度大规模作业车间的设备数、工件数、各工件的加工工序、各工序的加工时间,以及工序间加工顺序、设备加工能力、作业目标约束条件信息;以最小化拖期时间和T为作业目标约束条件;所述大规模作业车间是指机床数≥20,工件数≥50的车间;
大规模作业车间有n个工件需要在m台设备上加工,工件i包含Ni道工序,i=1…n,各工序之间有工艺的先后顺序约束,且在每台设备j上最多加工一次,j=1…m,Ni≤m;Oi,j表示工件i在设备j上的加工工序,pi,j表示工序Oi,j的加工时间,ti,k表示工序Oi,j的开工时间;调度任务是在m台设备上安排n个工件的加工,确定各设备上各工序的加工顺序及相应的开工时间,以最小化各工件的拖期时间和,并满足下列约束条件:所有工件的工艺路线、工序加工时间既定不变;工序一旦开始加工不允许中断;同一时刻每台设备最多只能加工一个工件;同一时刻每个工件只能在一台设备上加工;
调度问题对应的数学规划模型如下:
min T = Σ 1 ≤ i ≤ n m a x { ( t i , g i ( N i ) + p i , g i ( N i ) - d i ) , 0 }
s.t.
t i , g i ( k + 1 ) - t i , g i ( k ) ≥ p i , g i ( k ) i = 1 , ... n , k = 1 ... N i - 1
ti',j-ti,j+a(1-xii'j)≥pi,ji=1,…n;i'=1,…n;i≠i';j=1…m;xii'j∈{0,1}
ti,j-ti',j+axii'j≥pi',ji=1,…n;i'=1,…n;i≠i';j=1…m;xii'j∈{0,1}
t i , g i ( 1 ) ≥ 0 i = 1 ... n
其中,
——表示工件i的最后一道工序的开工时间;
——表示工件i的最后一道工序的加工时间;
di——表示工件i的交货期;
gi(k)——表示工件i第k道工序的加工设备号;
gi(Ni)——表示工件i最后一道工序的加工设备号;
a——表示一个非常大的正数,大于等于∑pij,i=1…n,j=1…m;
xii'j——一个二进制变量,表示设备j上工件i和工件i’的加工顺序,当设备j上工件i在工件i’之前加工时,xii'j=1,否则xii'j=0;
(2)基于关键路径法进行瓶颈设备的识别;对步骤(1)所述调度问题,对各设备分别在表1中随机选择1种分派规则进行组合调度,生成1个有效调度方案,经过N次选择和调度,生成N个有效调度方案并作为样本,计算各样本中各设备上的关键工序个数bjl,l=1…N,根据瓶颈设备识别模型,计算各设备上关键工序个数的均值μj和关键工序个数的方差σj 2,得到各设备的瓶颈显著程度指标值vj;对各设备的vj值进行倒排,截取前20%-40%的设备作为瓶颈设备;
表1分派规则列表
上述瓶颈设备识别模型为:
v j = ρ μ j σ j 2 , j = 1 ... m
μ j = Σ l = 1 N b j l N
σ j 2 = Σ l = 1 N ( b j l - μ j ) 2 N - 1
其中,
vj——设备j的瓶颈显著程度指标值;
μj——设备j关键工序个数的均值,反映了该设备上关键工序个数的平均程度;
σj 2——设备j上关键工序个数的方差,反映了该设备上关键工序个数的波动情况;
ρ——修正系数,取值为10-100;
N——样本个数,即生成调度方案的总数;
bjl——样本值,即调度方案l下设备j上的关键工序个数;
(3)对瓶颈设备和非瓶颈设备进行分类编码;
对于瓶颈设备,采用基于工序编码的方式,细化到待调度的每一个工序;对非瓶颈设备采用基于分派规则的编码方式,一台机器仅占用一个基因位;所有设备的编码方式为:
r 1 ... r B 1 - 1 | o B 1 1 o B 1 2 ... o B 1 x 1 | r B 1 + 1 ... r B 2 - 1 | o B 2 1 o B 2 2 ... o B 2 x 2 | r B 2 + 1 ... r B b - 1 | o B b 1 o B b 2 ... o B b x b | r B b + 1 ... r m - 1 r m
其中,
b——表示瓶颈设备总个数;
——表示瓶颈设备Bb上编号为xb的工序;
Bq——表示瓶颈设备代号,q=1…b;
xq——表示瓶颈设备Bq上的总工序个数;
rm——表示非瓶颈设备m所使用的分派规则编号;
(4)按照步骤(3)所述编码方式生成染色体初始种群:
按照步骤(3)所述编码方式,一次编码为1个染色体,随机生成规模为popsize=50个染色体的初始种群;
(5)对染色体种群进行交叉和变异操作;
从染色体初始种群中以交叉概率pc=0.9选择染色体进行交叉操作,交叉的方法如下:进行瓶颈设备与非瓶颈设备基因片段的分离,对于瓶颈设备基因片段,采用线性次序交叉方式,随机确定两个不同的交叉位置,交换两交叉点之间的基因片段,并在原先父代个体中删除从另一父代交换过来的基因,然后从第一个基因位置起依次在两交叉位置外填入剩余基因,以保证染色体的合法性;对于非瓶颈设备基因片段,由于其上各基因仅代表各非瓶颈设备的分派规则号,交叉操作并不会改变其染色体的合法性,因此仅交叉交叉位置之间的片段,无需进行染色体合法化处理过程;
交叉完成后进行变异操作,具体如下:从交叉以后的种群中以变异概率pm=0.1选择染色体进行变异操作;首先进行瓶颈设备基因片段与非瓶颈设备基因片段的分离,分别对分离后的两种基因片段,采用互换方式随机交换两个不同基因的位置,最后将瓶颈设备基因片段与非瓶颈设备基因片段重新组合生成新的染色体;
交叉、变异过程中的父染色体及子染色体都放入原种群中;
(6)对染色体种群进行免疫操作;
(6.1)抗原选择:在步骤(5)进行变异操作后形成的种群中以免疫概率α=0.1抽取一部分染色体;准备进行免疫操作;
(6.2)从步骤(6.1)所获得的所有抗原中随机选取一个未进行免疫操作的抗原,然后进入步骤(6.3);
(6.3)疫苗抽取:对步骤(6.2)所选取的抗原或者步骤(6.5)返回的新抗原,通过解码获得其对应的调度方案,识别其中的关键工件及候选关键工件集;
候选关键工件集:对于一个以最小化拖期时间和为目标的调度方案,其上最后一道工序的完工时间大于对应交货期的工件,是对调度目标有影响的工件,称为候选关键工件;所有候选关键工件的集合为候选关键工件集:
C _ J B N = ∪ 1 ≤ i ≤ n arg ( c i - d i > 0 ) , i = 1 ... n
其中,ci为工件i的完工时间,di为工件i的交货期;
关键工件:候选关键工件集中,拖期最严重的工件,是对目标函数贡献最大的工件,称为关键工件:
J B N = arg m a x 1 ≤ i ≤ n ( c i - d i ) , c i > d i ; i = 1 ... n
非关键工件集:作业车间所有工件中,候选关键工件集之外的工件,对调度目标没有影响,称为非关键工件集:
C_NBN=Ujob-C_JBN
C _ N B N = ∪ 1 ≤ i ≤ n arg ( c i - d i ≤ 0 ) , c i ≤ d i ; i = 1 ... n
其中,Ujob为作业车间所有工件的集合;
步骤(6.3)中染色体的具体解码方法如下:
设PS为已调度工序集,S为当前所有可调度工序集,σo为S中工序o的最早可加工时间,φo为S中工序o的最早可完成时间,do为工序o的交货期,C为满足调度条件的冲突工序集合;
Step1:初始化:令S为当前没有前道工序的所有工序的集合;
Step2:确定可调度工序集中,最早可完工工件的完工时间φ*=mino∈So},以及对应的加工设备m*,若存在多个设备,则任选其一;
Step3:选择S中所有欲在m*上加工且σo≤φ*的工序,构成冲突工序集C,o∈S;
Step4:若m*为瓶颈设备,则根据对应瓶颈设备基因片段,选择冲突工序集C在基因片段的未调度工序集中最先出现的操作o,进行调度;若m*为非瓶颈设备,则根据非瓶颈设备基因片段上该设备对应的分派规则,从冲突工序集C中选择工序进行调度,如果存在多个满足条件的工序,则任选其一;
Step5:PS=PS∪o,更新S;如果染色体解码过程结束;否则返回Step2;
(6.4)疫苗注射:针对(6.2)所选择的抗原,将其上瓶颈设备基因序列和非瓶颈设备基因序列分离;并将疫苗信息取代瓶颈设备基因序列,进行疫苗注射,具体为:针对瓶颈设备基因序列,将关键工件置于整个染色体的首位,候选关键工件集置于非关键工件集之前;
(6.5)免疫检测:对抗原免疫注射后,采用步骤(6.3)中相同的染色体解码方法计算新染色体的适应度值,如果新染色体的适应度值大于原染色体的适应度值,说明免疫有效,则采用新染色体来取代原染色体,该抗原的免疫操作结束,进入步骤(6.6);反之,继续对免疫操作后的新抗原返回步骤(6.3)重新进行免疫,直至出现新染色体的适应度值大于原染色体的适应度值或到达免疫终止条件,该抗原的免疫操作结束,进入步骤(6.6);免疫终止条件为:同一染色体免疫操作次数达到maxIM=5时,退出该染色体的免疫操作;
所述适应度值为各染色体解码后所对应的调度方案的目标函数值的倒数;
(6.6)检测步骤(6.1)中所抽取的所有抗原是否全部进行了免疫操作,如果是进入步骤(7),如果不是返回步骤(6.2)进行下一个抗原的免疫操作;
(7)对免疫操作结束后种群中所有染色体进行解码和适应度计算;
对免疫操作结束后种群中所有染色体进行解码,解码方法同步骤(6.3),同时采用步骤(6.5)中所述适应度值处理方法,获得各染色体的适应度值;
选择种群中适应度值最高的染色体,并将该染色体保存为当代最佳染色体,对应的适应度值保存为当代最佳适应度值;如果算法的迭代次数=1,则将算法的最优染色体及最优适应度值赋值为当代最佳染色体及当代最佳适应度值;
(8)判断当代最佳适应度值是否大于算法最优适应度值,若是,则将算法的最优染色体及最优适应度值更新为当代最佳染色体及当代最佳适应度值,然后进入步骤(9);若否,直接进入步骤(9);
(9)判断算法最优适应度值在连续GN_exit=20代内是否有改进,如果没有,转入步骤(10);否则,判断算法迭代代数是否到达maxGN=200,如果是,则进入步骤(10),如果否,通过轮盘赌选择策略从免疫操作结束后种群中选择popsize=50个适应度值最高的染色体,作为下一代初始种群进入步骤(5)重新进行算法的下一次迭代;
(10)将算法的最优染色体进行解码,获得调度指令,应用该调度指令对待调度的大规模车间进行作业调度。
CN201310478932.2A 2013-10-14 2013-10-14 一种基于瓶颈设备分解的大规模作业车间调度方法 Expired - Fee Related CN103530702B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310478932.2A CN103530702B (zh) 2013-10-14 2013-10-14 一种基于瓶颈设备分解的大规模作业车间调度方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310478932.2A CN103530702B (zh) 2013-10-14 2013-10-14 一种基于瓶颈设备分解的大规模作业车间调度方法

Publications (2)

Publication Number Publication Date
CN103530702A CN103530702A (zh) 2014-01-22
CN103530702B true CN103530702B (zh) 2016-07-06

Family

ID=49932695

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310478932.2A Expired - Fee Related CN103530702B (zh) 2013-10-14 2013-10-14 一种基于瓶颈设备分解的大规模作业车间调度方法

Country Status (1)

Country Link
CN (1) CN103530702B (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105223904B (zh) * 2015-05-19 2018-05-29 哈尔滨理工大学 存在单组多工序同时结束的逆序综合调度方法
CN105868908A (zh) * 2016-03-30 2016-08-17 西安理工大学 一种基于成组技术的柔版印刷车间作业调度方法
CN106406233B (zh) * 2016-10-20 2019-02-19 北京遥测技术研究所 一种柔性机加数控生产单元的节拍平衡方法
CN108108829A (zh) * 2016-11-24 2018-06-01 江苏创源电子有限公司 一种基于改进果蝇算法的作业车间调度方法
CN106707991B (zh) * 2016-12-21 2018-11-20 西安建筑科技大学 基于模糊层次分析的多目标作业调度中瓶颈设备识别方法
CN107122849B (zh) * 2017-04-19 2021-01-05 西安电子科技大学 基于SparkR的产品检测总完工时间极小化方法
CN107742168B (zh) * 2017-10-20 2021-04-02 西北工业大学 一种基于物联技术的生产车间动态瓶颈预测方法
CN108508853A (zh) * 2018-03-13 2018-09-07 济南大学 基于改进扩展移动瓶颈算法求解产品综合调度问题的方法
CN108776845B (zh) * 2018-05-07 2022-07-15 北京创源微致软件有限公司 一种基于双目标作业车间调度的混合果蝇算法
CN109359774B (zh) * 2018-10-25 2021-02-19 山东大学 一种车间调度优化方法、装置及车间设备布局
CN109816262B (zh) * 2019-01-31 2023-04-28 贵州大学 采用改良免疫遗传算法的柔性作业车间调度方法
CN111105164B (zh) * 2019-12-24 2022-04-15 北京理工大学 一种车间调度方法、装置及设备
CN111401616B (zh) * 2020-03-09 2022-03-08 西安建筑科技大学 一种供应链环境下预制混凝土构件的双层调度方法
CN112884284A (zh) * 2021-01-19 2021-06-01 广州爱思威科技股份有限公司 化合物半导体的生产控制方法、生产系统及存储介质
CN112686474B (zh) * 2021-01-22 2022-04-22 华南理工大学 一种基于改进的水波优化算法的可并行装配线平衡方法
CN113377073B (zh) * 2021-06-28 2022-09-09 西南交通大学 一种基于双层多智能体系统的柔性作业车间调度优化方法
CN113657642B (zh) * 2021-07-05 2023-09-01 安徽师范大学 基于混合算法的熔炼车间生产和运输协同优化方法及系统
CN116070876B (zh) * 2023-03-06 2023-06-09 浪潮通用软件有限公司 一种基于瓶颈设备能力的排产优化方法、设备及介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102768737A (zh) * 2012-07-06 2012-11-07 西北工业大学 一种考虑机器多维特征属性的作业车间瓶颈识别方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8655705B2 (en) * 2010-01-13 2014-02-18 Lockheed Martin Corporation Systems, methods and apparatus for implementing hybrid meta-heuristic inventory optimization based on production schedule and asset routing

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102768737A (zh) * 2012-07-06 2012-11-07 西北工业大学 一种考虑机器多维特征属性的作业车间瓶颈识别方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
基于免疫遗传算法的车间调度问题的研究;鞠全勇 等;《机械科学与技术》;20070630;第26卷(第6期);第2页左栏第3行-第5页左栏第18行 *
大规模作业车间多瓶颈调度算法;翟颖妮 等;《计算机集成制造系统》;20110731;第17卷(第7期);第2页左栏第39行-第6页右栏第30行 *

Also Published As

Publication number Publication date
CN103530702A (zh) 2014-01-22

Similar Documents

Publication Publication Date Title
CN103530702B (zh) 一种基于瓶颈设备分解的大规模作业车间调度方法
CN107450498B (zh) 基于改进人工蜂群算法的生产调度方法及系统
CN107168267B (zh) 基于改进粒子群与启发式策略的生产排产方法及系统
CN108805403A (zh) 一种基于改进遗传算法的单件车间调度方法
CN108182518B (zh) 一种基于改进遗传算法的在制状态人员调度方法
CN101901425A (zh) 一种基于多种群协同进化的柔性作业车间调度方法
CN107329461B (zh) 一种流水线车间调度方法和装置
CN107065803B (zh) 基于可变重调度区间的柔性作业车间动态调度方法
CN113822525B (zh) 基于改进遗传算法的柔性作业车间多目标调度方法及系统
CN110288185B (zh) 一种分布式柔性流水线调度方法
CN111966049B (zh) 一种混合流水车间生产设备调度控制方法
CN111047272A (zh) 一种用于多语言协同开发的项目调度方法及装置
CN112668789B (zh) 一种柔性作业车间带准备工序的自适应分批调度方法
Costa et al. A novel genetic algorithm for the hybrid flow shop scheduling with parallel batching and eligibility constraints
Gu et al. A discrete particle swarm optimization algorithm with adaptive inertia weight for solving multiobjective flexible job-shop scheduling problem
CN104217293A (zh) 一种求解多目标资源受限项目调度的有效方法
CN109934364A (zh) 一种基于遗传模拟退火算法的刀具准时化配送方法
CN115471133A (zh) 一种基于订单管理和滚动优化排产的车间综合调度系统
CN113569483A (zh) 基于人工蜂群算法求解多目标柔性作业车间调度的方法
CN112686474A (zh) 一种基于改进的水波优化算法的可并行装配线平衡方法
CN114266509A (zh) 随机贪婪初始种群遗传算法求解柔性作业车间调度方法
CN104281917A (zh) 基于自适应遗传和克隆选择算法的模糊作业车间调度方法
CN105069518A (zh) 一种基于可变长基因遗传算法的物资调度方法及系统
CN116774658A (zh) 一种物料限制下的柔性作业车间动态调度方法
CN116957219A (zh) 一种基于遗传算法的水泥生产线施工作业调度方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160706

Termination date: 20181014

CF01 Termination of patent right due to non-payment of annual fee