一种含多路径有限连续输出库存的混合车间生产调度方法

文档序号:26949811发布日期:2021-10-16 00:47阅读:173来源:国知局
一种含多路径有限连续输出库存的混合车间生产调度方法

1.本发明属于生产调度和智能优化技术领域,特别涉及一种含多路径有限连续输出库存的混合车间生产调度方法。


背景技术:

2.车间生产调度问题是制造业中普遍存在的关键问题,其目的在于通过合理配置和优化工件加工顺序,从而缩短制造周期,降低生产成本,改善设备利用率,对于众多企业具有重大意义。因此车间生产调度问题成为目前制造流程管理领域中的核心内容。而伴随着敏捷制造、智能制造等概念的提出,人们对于产品交付的准时性的需求愈加强烈,产品的延迟交付可能会导致销售损失和顾客流失,同时也会增加企业的库存成本。基于车间生产调度模型的最小化拖期调度问题,在调度问题中最具有代表性,同时车间生产调度的很多理论也可以使用在其他调度模型中,因此最小化总拖期的车间生产调度问题具有重要的研究价值和实际意义。
3.过去的几十年中,大多数最小化总拖期的车间生产调度问题都是假设生产环境是理想化的,因此建立的模型属于简化模型。在简化模型中,实际生产过程中的多种影响因素被忽略或简化,如每个工件仅有一条加工路线,车间每个机组配备无限大的库存,库存容量使用离散值(可容纳的工件个数)表示而非连续值(如质量,体积)等。然而实际的生产环境中往往不能满足上述简化假设,如每个工件可以有多种可选加工工艺路线,车间机组库存有限,库存容量需要用连续值衡量等。使用基于简化模型的排产方法往往无法适用于实际生产问题或得到的调度方案性能很差。因此,针对含多路径和有限连续输出库存的车间生产调度问题研究逐渐引起了关注。主流研究方向包括含多路径的车间生产调度问题和库存有限的车间生产调度问题。
4.在含多路径的车间生产调度问题中,每个工件拥有多种可选的加工工艺路线。可选工艺路线的存在具有以下优势:1.降低生产过程中不确定因素的影响,如部分机组发生故障,涉及到的工件可以选择不含故障机组的机器进行加工;2.允许工厂在优先生产部分产品的同时降低对其他产品的影响,优先级较低的产品可以选择绕过优先级高产品的机组的工艺路线进行加工;3.增大车间生产调度问题的可行域,增加调度方案设计的灵活性,降低最优拖期的下限。含多路径的车间生产调度问题包含路线选择和顺序优化两个阶段:路线选择指为每个工件选择加工工艺,顺序优化则指确定工件在各个机组上的最优加工顺序,使得总拖期最小。
5.库存有限的车间生产调度问题是车间生产调度问题的重要分支。工厂在实际生产过程中通常使用仓库来存储加工过程中产生的半成品,避免机器空转,提高生产效率。车间生产调度问题中的库存按照服务对象可以划分为通用库存、工件指定库存、机组间库存、输出库存和输入库存。不同种类的库存对调度方案的确定没有本质上的影响,故本发明主要着眼于输出库存的研究。现有研究方法通常假设库存的容量使用其最多能容纳的工件数量来衡量。在此基础上将库存等效为多个并行加工时间为0的机组,从而使用已有的基于图的
算法进行高效求解。但在实际生产环境中,如钢铁生产,石油加工中库存容量通常使用工件的质量或体积来衡量,此时不能将库存等效为若干并行机组,导致传统的基于图的算法并不适用于当前问题。部分通用算法如混合蜂群算法和交换启发式算法可以应用于连续库存的情况,但其不具有传统基于图算法的可解释性和高效性。
6.车间生产调度问题的求解通常采用以启发式算法为主的智能求解算法进行求解。启发式算法通常包含编码方法、解码方法、邻域结构、评价方法和主算法框架。启发式算法应用于实际问题的第一步为将决策变量编码为向量或矩阵,并给出对应的解码方案。为了在搜索过程中尽可能的扩大在可行域中的探索空间,启发式算法需要结合具体问题设定,设计符合问题性质的邻域结构以产生新的候选调度方案。评价方法指评估一个调度方案的效果好坏,如计算其总拖期惩罚。经典的主算法框架包括模拟退火、遗传算法、粒子群算法、人工免疫算法、禁忌搜索和蚁群算法等。
7.单一的主算法框架在具有独有的优势的同时也具有一定的不足,近年的研究中混合多种算法的混合算法研究受到了更多关注。混合算法可以继承组成该算法的经典算法框架的优势。如单目标启发式算法可以添加进离散多目标进化算法中来提升求解多目标优化问题的性能。不同算法之间的组合方式可以有多种选择。如在组合人工免疫算法和模拟退火的算法的方式选择上通常有以下两种选择:1.首先进行人工免疫算法的迭代,在迭代完成后种群个体的基础上使用模拟退火算法进行进一步的优化,之后再重复人工免疫算法的迭代过程,循环往复直至达到指定搜索步数;2.人工免疫算法与模拟退火同步进行,即在人工免疫算法迭代的每一步都使用模拟退火的接受概率接受新的解,并更新温度参数。使用混合算法求解车间生产调度的研究目前较为主流,但应用于含多路径和有限连续输出库存的研究仍然较少。
8.目前已有技术方案中,主要采用启发式算法应用于简化的车间生产调度问题,即用于单一路径,不考虑库存容量的车间生产调度问题。这种方式产生的调度方案可能会造成某一机组产生过多半成品导致生产线堵塞,同时也不能保证调度方案在含多路径有限连续输出库存的车间生产调度问题下可行,其在执行过程中可能会产生闭锁现象导致无法执行生产方案。少量工作分别考虑了含多路径的车间生产调度问题和含优先连续输出库存的车间生产调度问题。但在实际应用领域方面,目前还没有将混合人工免疫

模拟退火算法应用于最小化总拖期的且同时包含多路径和有限连续输出库存的车间生产调度问题上的例子。


技术实现要素:

9.本发明的目的是为克服已有技术在建模与求解方面的不足之处,提出一种含多路径有限连续输出库存的混合车间生产调度方法。本发明将多种可选路径和有限连续输出库存考虑在内,使得模型相比于假设生产环境仅含单一工艺路线且库存无限的车间生产调度模型更加符合实际生产状况,得到的调度方案能更好地应用于实际生产中。
10.本发明提出一种含多路径有限连续输出库存的混合车间生产调度方法,其特征在于,包括以下步骤:
11.1)建立针对含多路径有限连续输出库存的车间生产调度模型;具体步骤如下:
[0012]1‑
1)确定模型的参数与决策变量;
[0013]
其中,模型的参数包括:
[0014]
d
j
:第j个工件的交货期;t
ij
:第j个工件的第i个工序所需的加工时间;b:正数;n:工件数量;m:机器数量;nr
j
:第j个工件的路径数量;m
kj
:第j个工件的第k个路径中的工序数量;o
kj
:第j个工件的第k条路径中所有工序的集合;o
j
:第j个工件的所有路径中工序的集合;m
ij
:第j个工件的第i个工序所在的机器;p
j
:第j个工件的质量;s
m
:第m个机器的最大库存容量;
[0015]
模型的决策变量包括:
[0016]
t
fj
:第j个工件的完成时间与交货期的更大者;t
ij
:第j个工件的第i个工序的开始加工时间;δ
ij
:0

1变量,第j个工件的第i个加工路径被选中为1,否则为0;0

1变量,第j2个工件的第i2个工序的完成时间早于第j个工件的第i个工序的开始加工时间为1,否则为0;0

1变量,第j2个工件的第i2个工序的下一个工序的开始加工时间晚于第j个工件的第i个工序的开始加工时间则为1,否则为0;0

1变量,当第j个工件的第i个工序开始加工时,第j2个工件的第i2个工序处于库存内则为1,否则为0;σ
ij
:第j个工件的第i个工序的下一个工序;
[0017]1‑
2)确定模型目标函数与约束条件;
[0018]1‑2‑
1)确定模型的目标函数,表达式如下:
[0019][0020]
其中,表示第j个工件的拖期;
[0021]1‑2‑
2)确定模型的约束条件;具体如下:
[0022]1‑2‑2‑
1)加工工件的拖期约束,表达式如式(2)和(3)所示:
[0023][0024][0025]1‑2‑2‑
2)加工路径选择约束,表达式如式(4)和(5)所示:
[0026][0027][0028]1‑2‑2‑
3)加工工件工艺约束,表达式如式(6)所示:
[0029][0030]1‑2‑2‑
4)加工机器能力约束,表达式如式(7)和(8)所示:
[0031]
[0032][0033]1‑2‑2‑
5)加工机器库存容量约束,表达式如式(9)所示:
[0034][0035]1‑2‑2‑
6)工序先后顺序表达约束,表达式如式(10)

(16)所示:
[0036][0037][0038][0039][0040][0041][0042][0043][0044]
2)基于人工免疫算法和模拟退火算法构建混合人工免疫

模拟退火算法,利用该算法对步骤1)建立的模型求解,得到最优的调度方案;具体步骤如下:
[0045]2‑
1)初始化参数t,decayrate,epoch size,其中t代表模拟退火算法的温度,decayrate代表温度衰减率,epoch size代表调整温度的周期;设置迭代次数generation的上限;
[0046]2‑
2)令迭代次数为1,初始化种群pop,为该种群中的每一个成员生成对应的初始解,其中种群中一个成员代表一种调度方案;
[0047]
其中生成初始解的具体方法如下:
[0048]2‑2‑
1)确定编码方案;
[0049]
使用向量r对工件所选择的加工路径进行编码,即r中的第j位的数值代表第j个工件所选的加工路径号;机器上工件加工顺序使用s和s
r
两个矩阵进行编码:矩阵s中第i行的第j个元素s
ij
的值代表机器i上第j个加工的工序所属的工件;矩阵s
r
中第i行的第j个元素的值代表机器i上第j个加工的工序所属工件选中的加工路径号;
[0050]2‑2‑
2)确定解码方案;
[0051]
采用仿真模拟的方式获取调度方案中每个工件完成加工的时间,从而计算总拖期
惩罚;其中,仿真过程中发生状态变化的情况包括如下5条:
[0052]2‑2‑2‑
1)如果在时刻t,一个工件在当前机器上完成加工且该工件已经完成了其选中加工路径中的所有工序,则将该工件移出仿真系统;
[0053]2‑2‑2‑
2)如果在时刻t,一个工件在当前机器上完成加工但并未完成选中加工路径中的所有工序,且选中加工路径中的下一个机器处于空闲状态,则将该工件移至下一个机器开始加工;
[0054]2‑2‑2‑
3)如果在时刻t,一个工件在当前机器上完成加工但并未完成选中加工路径中的所有工序,当前机器对应输出库存的剩余容量大于该工件质量,则将该工件移入当前机器的输出库存中并更新剩余库存容量;
[0055]2‑2‑2‑
4)如果在时刻t,一个工件处于当前机器的输出库存中且选中加工路径中的下一台机器处于空闲状态,则将该工件转移至下一台机器,并更新当前机器输出库存的剩余容量;
[0056]2‑2‑2‑
5)如果在时刻t,有多个工件处于完成加工状态,其中至少一个工件位于机器上,并且该多个工件形成一个环:每一个工件的下一个目标位置是下一个工件当前所在的位置,则通过同时循环移位来移动该多个工件,同时更新相应的各机器的剩余库存容量;
[0057]2‑2‑
3)生成初始解;
[0058]
采用贪心算法生成初始解:首先对每一个工件随机选择一条加工路径作为初始加工路径;然后基于选择的初始加工路径,列出每台机器上需要加工的工件序号,并将每台机器上需要加工的所有工件序号按照各工件的质量进行升序排列,得到初始的r,s和s
r

[0059]
对所有成员生成对应的初始解后,将该初始解作为对应成员的当前调度方案;
[0060]2‑
3)对每个成员对应的当前调度方案进行判定:如果所有当前调度方案均可行,则进入步骤2

5);如果存在任一当前调度方案不可行,则进入步骤2

4);
[0061]2‑
4)对不可行的当前调度方案进行修正,具体方法如下:
[0062]
建立当前调度方案对应的析取图,其中每个工件的每一个工序在析取图中表示为一个节点,加工开始和结束通过在图的左右两侧的0,1虚拟节点代表:图上0和1的虚拟节点各只有一个,0代表开始,1代表结束;同一个工件的加工工序按照加工路径中的顺序使用实线箭头相连,在同一个机器上进行加工的工序使用虚线相连;
[0063]
对于不可行的当前调度方案,其对应的析取图中存在闭环;按照环中包含的工件数量与机器状态进行分类,共分为四种类型的闭环,每个类型的闭环修正方法如下:
[0064]2‑4‑
1)两工件

含空闲机器环:将环中空闲机器上该两工件中加工顺序靠前的工件随机插入加工顺序靠后工件之后的位置;
[0065]2‑4‑
2)两工件

不含空闲机器环:将环中两台机器上该两工件中加工顺序靠后的工件均移动至与加工顺序靠前工件紧邻的后面的位置;
[0066]2‑4‑
3)多工件

含空闲机器环:将环中任一台空闲机器上属于这个环的加工顺序第二位的工件移至该机器整个加工队列的第一位;
[0067]2‑4‑
4)多工件

不含空闲机器环:将环中每台机器上属于环中该机器上加工顺序第二位的工件均移动至与环中该机器加工顺序第一位工件紧邻的后面的位置;
[0068]
修正完毕后,将修正后的调度方案作为新的当前调度方案,然后重新返回步骤2

3);
[0069]2‑
5)为种群中的每一个成员计算其适应度f:
[0070]
其中obj为当前调度方案的总拖期惩罚,∈为一个正数;
[0071]2‑
6)克隆当前种群,得到新种群pop
c

[0072]2‑
7)判定:如果迭代次数未达到指定迭代次数generation的上限,则更新迭代次数generation=generation+1,然后进入步骤2

8);否则结束算法,返回pop中适应度最高的成员对应的当前调度方案即为最优的调度方案,该方案包括r,s和s
r
的最优解;
[0073]2‑
8)对种群pop中的所有成员进行判定:
[0074]2‑8‑
1)如果种群pop中的所有成员已经全部访问过,则寻找种群pop中前nea个适应度最低的成员,随机更改其加工路径得到该成员更新后的当前调度方案,其中,若更新后的当前调度方案不可行,则重复步骤2

4)修正该当前调度方案,直至更新后的当前调度方案可行,则进一步判定:
[0075]
如果此时迭代次数为epoch size的整数倍,则更新然后返回步骤2

7);如果此时迭代次数不为epoch size的整数倍,则不更新t,然后返回步骤2

7);
[0076]2‑8‑
2)如果种群pop中的所有成员没有全部访问过,则从pop中随机选择一个未访问的成员mem,将其标记为已访问,然后进入步骤2

9);
[0077]2‑
9)使用邻域搜索算法对pop
c
中第mem个成员pop
c
[mem]进行更新;具体步骤如下:
[0078]2‑9‑
1)搜索前预处理;
[0079]
通过仿真模拟,计算pop
c
[mem]对应的当前调度方案下每个工件完成加工的时间及对应的拖期;
[0080]
对各个工件的拖期进行归一化得到相应占比:
[0081]
p
job
=tar/sum(tar)
[0082]
其中tar为一个向量,包含所有工件的拖期;p
job
为一个向量,其中的每个元素表示对应工件的拖期在总拖期中的对应占比;
[0083]
根据p
job
随机选取一个工件j,并生成[0,1]上的随机数p
r
,p
r1
和p
r2

[0084]2‑9‑
2)引入随机因素;具体步骤如下:
[0085]2‑9‑2‑
1)判定:若p
r
>p
random
则进入2
‑9‑
3),否则进入步骤2
‑9‑2‑
2);其中p
random
为随机搜索的概率;
[0086]2‑9‑2‑
2)判定:
[0087]
若p
r1
≤p
router
,则随机选择一个工件,随机更改其加工路径,保持当前s和s
r
不变,得到更新后的pop
c
[mem],然后进入步骤2

10);其中,p
router
为在随机调整的选项下变换工件路径的概率;
[0088]
否则,保留所有工件原加工路径不变,随机选择一台机器,并随机选择在该机器上加工的两个工件,交换该两个工件的加工顺序,更新s和s
r
,得到更新后的pop
c
[mem],然后进入步骤2

10);
[0089]2‑9‑
3)更新路径;
[0090]
判定:若p
r2
≤p
route
,则为步骤2
‑9‑
1)选取的工件j随机选择一条新路径,并保持当前s与s
r
不变,得到更新后的pop
c
[mem],然后进入步骤2

10);其中,p
route
为仅修改指定工件路径的概率;
[0091]
否则,进入步骤2
‑9‑
4);
[0092]2‑9‑
4)调整关键路径中的加工顺序;具体如下:
[0093]
保持当前r不变;确定第j个工件在当前调度方案下的关键路径criticalpath;从关键路径criticalpath中随机选择一个关键段bl;将构成关键段bl的两个工件中靠前的工件记作formerjob,靠后的工件记作latterjob,该两个工件所在的机器分别记为formermachine和lattermachine;在lattermachine上交换formerjob和latterjob的位置,得到更新后的pop
c
[mem],然后进入步骤2

10);
[0094]
其中,关键路径的确定方法如下:
[0095]
在当前调度方案中,对于每个工件,从整个生产调度的加工开始到该工件最后一个工序的最长路径成为该工件的关键路径;关键路径中包含机器与输出库存,该关键路径中由属于其他不同工件的工序形成的片段成为关键段;该关键路径通过无时间间隔的关系寻找,其中无时间间隔关系分为如下6种情况:
[0096]
a)如果任一工件j(i)在机器m(i)上的工序i开始加工时间与该工件j(i)的上一个工序k结束加工的时间相同,则k为i在工件j(i)关键路径中的前一个工序;
[0097]
b)如果机器m(i)上的工序i开始加工时间与同一台机器上前一个加工的工序k结束加工的时间相同,则k为i在关键路径中的前一个工序,且工序k和工序i构成关键段;
[0098]
c)如果机器m(i)上的工序i开始加工时间与同一台机器上前一个加工的工序k进入库存的时间相同,则k为i在关键路径中的前一个工序,且工序k和工序i构成关键段;
[0099]
d)如果机器m(i)上的工序i开始加工时间与同一台机器上前一个加工工序在其所属的工件的下一个工序k的开始加工时间相同,则工序k为工序i在关键路径中的前一个工序,且工序k和工序i构成关键段;
[0100]
e)如果机器m(i)对应的库存中的工序i进入库存的时间与工序i结束加工的时间相同,将工序i位于机器上的工序记作工序k,则工序k为工序i在关键路径中的前一个工序;
[0101]
f)如果机器m(i)对应的库存中的工序i进入库存的时间与m(i)之前的任一个工序所属工件中的下一个工序k开始加工的时间相同,则工序k为工序i在关键路径中的前一个工序,且工序k和工序i构成关键段;
[0102]2‑
10)对pop
c
[mem]进行判定:若pop
c
[mem]对应的当前调度方案可行,则进入步骤2

11);若不可行,则重复步骤2

4)修正该当前调度方案,直至更新后的当前调度方案可行,然后进入步骤2

11);
[0103]2‑
11)计算pop
c
[mem]的适应度记为f
c
[mem];然后判定:
[0104]
如果f
c
[mem]>f[mem],则更新pop[mem]=pop
c
[mem],然后重新返回步骤2

8);否则进入步骤2

12);
[0105]2‑
12)生成一个0,1之间的随机数p;
[0106]2‑
13)计算
[0107]
其中p
accept
代表接受pop
c
[mem]作为种群中新成员的概率,obj
global
代表pop中适应度最高的成员对应的拖期惩罚的拖期惩罚,obj
old
代表pop[mem]的拖期惩罚,obj
new
代表pop
c
[mem]的拖期惩罚;
[0108]2‑
14)判定:如果p<p
accept
,则更新pop[mem]=pop
c
[mem];否则保持pop[mem]不变;
[0109]2‑
15)重新返回步骤2

7)。
[0110]
本发明的特点及有益效果在于:
[0111]
本发明提出的一种含多路径有限连续输出库存的混合车间生产调度方法,含多路径有限连续输出库存的车间生产调度模型包含了传统车间生产调度问题所忽略的路径选择和库存管理部分。在模型中决策变量包含工件路径、工序在机组上的开始时间、进入和离开仓库的时间,本发明允许工件具有多条加工路径,为企业提供更多调度方案的选择。此外本发明考虑了连续有限的输出库存,可以充分利用工厂内的库存资源,提高机器生产时间占比。这种方法更适用于实际的生产过程,保证了调度方案的可行性和最优性,同时为求解模型提出的混合启发式求解方法可以高效地搜索到近似最优解。具体的优点可以总结如下:
[0112]
(1)相比于简化版车间生产调度问题,本发明方法允许工件具有多个可选路径。可选路径的存在可以降低生产过程中不确定事故的影响,如部分机组产生故障时,调度方案可以尽量选择不包含该机组的工艺路线;此外多路径可选允许工厂在优先生产部分订单的同时尽量降低对其余订单生产的影响;进一步,多路径的存在增加了调度方案的选项,本质上增大了可行域的空间,可以有效降低模型最优解的下界,获得总拖期惩罚更小的调度方案,提高企业的收益。
[0113]
(2)传统简化版车间生产调度问题假设库存无限大或为零。大部分企业在生产过程中会使用仓库来存储生产工艺流程中的半成品,且仓库容量使用质量或体积等连续指标进行衡量。故相比于传统方法,本发明中提出的混合算法更加适用于实际生产环境中的车间生产调度问题,能为企业提供高效的智能调度方案。
[0114]
(3)本发明通过分析对库存在模型中产生的影响提出的基于拓展关键路径和关键段的邻域结构有效地将传统图算法的思想引入含多路径有限连续输出库存的车间生产调度问题中,降低了无效的计算,提升了智能求解算法搜索的有效性。
[0115]
(4)本发明中提出的贪心算法可以为车间生产调度问题提供一种简明地生成初始解的方案;此外算法对在包含有限连续输出库存的情况下不可行解产生的原因进行了详细分析并提出了一套完善的不可行解修正策略,可以帮助算法节省计算量,提升求解性能。
[0116]
(5)本发明根据人工免疫算法和模拟退火算法的优缺点设计了一种混合人工免疫

模拟退火算法。在该算法中,人工免疫算法的每一步迭代也被视为模拟退火过程的一次迭代,因此种群中的每一个成员等效于各经历了一次完整的模拟退火过程。为了利用群体的信息,成员直接会共享目前搜索到的最优解的信息,通过改良的模拟退火接受概率引导成员向最优解处靠拢,加速算法收敛。因此本发明提出的优化算法能够在短时间内求解大规模车间生产调度问题,优于主流商业求解器如cplex。
具体实施方式
[0117]
本发明提出的一种含多路径有限连续输出库存的混合车间生产调度方法,下面将结合实施例进行详细的说明。
[0118]
本发明针对含多路径有限连续输出库存的车间生产调度问题,性能指标选取为总拖期。假设所有工件具有多种加工路径,每条加工路径指定该工件以设定的顺序经过若干台不同的机器进行加工。一台机器一次只能加工一个工件,加工过程不能中断。每个工件具
有在每台机器上的加工时间和总体的交货时间。每台机器后配置一个仓库,容量连续且有限。则针对含多路径有限连续输出库存的车间生产调度模型的目标就是寻找最优的加工路径和每个机器上的加工序列,使得总拖期最短。
[0119]
本发明考虑一个含多路径有限连续输出库存的车间生产调度问题,提出一种含多路径有限连续输出库存的混合车间生产调度方法,包括以下步骤:
[0120]
1)建立针对含多路径有限连续输出库存的车间生产调度模型,该模型为一线性混合整数规划模型;具体步骤如下:
[0121]1‑
1)确定模型的参数与决策变量;
[0122]
针对含多路径有限连续输出库存的车间生产调度模型包含以下参数:
[0123]
d
j
:第j个工件的交货期;t
ij
:第j个工件的第i个工序所需的加工时间;b:足够大的常数(大于所有工艺加工时间的总和且大于100,本实施例中取1000);n:工件数量;m:机器数量;nr
j
:第j个工件的路径数量;m
kj
:第j个工件的第k个路径中的工序数量;o
kj
:第j个工件的第k条路径中所有工序的集合;o
j
:第j个工件的所有路径中工序的集合;m
ij
:第j个工件的第i个工序所在的机器;p
j
:第j个工件的质量;s
m
:第m个机器的最大库存容量。
[0124]
针对含多路径有限连续输出库存的车间生产调度模型包含以下决策变量:
[0125]
t
fj
:第j个工件的完成时间与交货期的更大者;t
ij
:第j个工件的第i个工序的开始加工时间;δ
ij
:0

1变量,第j个工件的第i个加工路径被选中为1,否则为0;0

1变量,第j2个工件的第i2个工序的完成时间早于第j个工件的第i个工序的开始加工时间为1,否则为0;0

1变量,第j2个工件的第i2个工序的下一个工序的开始加工时间晚于第j个工件的第i个工序的开始加工时间则为1,否则为0;0

1变量,当第j个工件的第i个工序开始加工时,第j2个工件的第i2个工序处于库存内则为1,否则为0;σ
ij
:第j个工件的第i个工序的下一个工序(如果i是第j个工件的最后一个工序则此变量不存在)。
[0126]1‑
2)确定模型目标函数与约束条件;
[0127]1‑2‑
1)确定模型的目标函数;
[0128]
在给定调度方案的情况下,此模型的目标函数为最小化总拖期,表达式如下:
[0129][0130]
根据步骤1

1)中参数与决策变量的定义,表示第j个工件的拖期,即其加工完成时间超出交货期的部分。
[0131]1‑2‑
2)确定模型的约束条件;具体如下:
[0132]1‑2‑2‑
1)加工工件的拖期约束;
[0133]
不小于第j个工件的任意一个工序的完成时间及其交货期,表达式如式(2)和(3)所示:
[0134][0135][0136]1‑2‑2‑
2)加工路径选择约束;
[0137]
每一个工件能且仅能有一条加工路径被选中,表达式如式(4)和(5)所示:
[0138][0139][0140]1‑2‑2‑
3)加工工件工艺约束;
[0141]
每一个工件中包含的工序需要按照所选路径要求的工艺顺序进行加工,表达式如式(6)所示:
[0142][0143]1‑2‑2‑
4)加工机器能力约束;
[0144]
车间生产调度问题假设每一台机器一次只能加工一个工件,表达式如式(7)和(8)所示:
[0145][0146][0147]1‑2‑2‑
5)加工机器库存容量约束;
[0148]
在存在有限连续输出库存的情况下,需要约束每台机器的输出库存内工件的总质量不超过库存容量的上限,表达式如式(9)所示:
[0149][0150]1‑2‑2‑
6)工序先后顺序表达约束;
[0151]
为了约束满足其决策变量的定义,通过式(10)和(11)对其进行约束:
[0152][0153][0154]
决策变量定义要求当且仅当在t
ij
不比早的时候设为1,使用式(12)和(13)表示:
[0155]
[0156][0157]
决策变量定义要求当且仅当在存在且时为1,使用式(14)

(16)表示:
[0158][0159][0160][0161]
步骤1)建立的模型为一线性混合整数规划模型。
[0162]
2)利用混合智能求解算法对步骤1)建立的模型求解;
[0163]
本发明通过共享搜索迭代,基于人工免疫算法和模拟退火算法构建混合人工免疫

模拟退火算法,利用该算法对步骤1)建立的模型求解,,得到最优的调度方案;具体步骤如下:
[0164]2‑
1)初始化参数t,decay rate,epoch size,其中t代表模拟退火算法的温度,decay rate代表温度衰减率,epoch size代表调整温度的周期,三个参数需要根据实际测试数据通过试错或taguchi方法进行设置;设置迭代次数generation的上限,本实施例中根据实验效果设置为1000。
[0165]2‑
2)令迭代次数为1,初始化种群pop,使用本发明设计的初始解生成算法,为该种群中的每一个成员生成对应的初始解,其中种群中一个成员代表一种调度方案。
[0166]
其中生成初始解的具体方法如下:
[0167]2‑2‑
1)确定编码方案;
[0168]
对于含多路径有限连续输出库存的混合车间生产调度问题,一个可行的调度方案由两部分构成:1.每个工件所选择的加工路径;2.每台机器上各个工件加工的先后顺序。本发明使用向量r对工件所选择的加工路径进行编码,即r中的第j位的数值代表第j个工件所选的加工路径号(其中每个工件的所有加工路径为已知,则任一加工路径对应的加工路径号为确定的)。机器上工件加工顺序使用s和s
r
两个矩阵进行编码。s
ij
,即矩阵s中第i行的第j个元素的值代表机器i上第j个加工的工序所属的工件;即矩阵s
r
中第i行的第j个元素的值代表机器i上第j个加工的工序所属工件选中的加工路径号。
[0169]2‑2‑
2)确定解码方案;
[0170]
对于车间生产调度问题,给定调度方案后可以通过仿真的方式获取当前方案下每个工序开始和结束加工的时间。本发明采用仿真模拟的方式来获取调度方案中每个工件完成加工的时间,进而计算出总拖期惩罚。仿真过程中发生状态变化的情况可以总结为如下5条:
[0171]2‑2‑2‑
1)如果在时刻t,一个工件在当前机器上完成加工且该工件已经完成了其选中加工路径中的所有工序,则将该工件移出仿真系统。
[0172]2‑2‑2‑
2)如果在时刻t,一个工件在当前机器上完成加工但并未完成选中加工路径中的所有工序,且选中加工路径中的下一个机器处于空闲状态,则将该工件移至下一个
机器开始加工。
[0173]2‑2‑2‑
3)如果在时刻t,一个工件在当前机器上完成加工但并未完成选中加工路径中的所有工序,当前机器对应输出库存的剩余容量大于该工件质量,则将该工件移入当前机器的输出库存中并更新剩余库存容量。
[0174]2‑2‑2‑
4)如果在时刻t,一个工件处于当前机器的输出库存中且选中加工路径中的下一台机器处于空闲状态,则将该工件转移至下一台机器,并更新当前机器输出库存的剩余容量。
[0175]2‑2‑2‑
5)如果在时刻t,有若干个工件处于完成加工状态(至少一个工件位于机器上),且这些工件形成一个环:每一个工件的下一个目标位置(机器或者库存)是下一个工件当前所在的位置,则通过同时循环移位来移动这些工件,同时更新相应的各机器的剩余库存容量。
[0176]2‑2‑
3)生成初始解;
[0177]
智能算法初始解的质量对算法性能有很大影响,本发明中初始解的产生方法如下:
[0178]
初始解采用贪心算法产生。本发明首先针对调度问题中的每一个工件随机选择一条加工路径作为初始加工路径;然后基于选择的初始加工路径,列出每台机器上需要加工的工件序号,并将每台机器上需要加工的所有工件序号按照各工件的质量进行升序排列,得到初始的r,s和s
r
。由于本发明中优化目标为最小化总拖期惩罚,这里为升序排列。这种方法产生的初始解可能存在不可行的情况,针对这种情况,我们在后续设计了不可行解调整方法(见步骤2

4))。
[0179]
对所有成员生成对应的初始解后,将该初始解作为对应成员的当前调度方案;
[0180]2‑
3)对每个成员对应的当前调度方案进行判定:如果所有当前调度方案均可行,则进入步骤2

5);如果存在任一当前调度方案不可行,则进入步骤2

4);
[0181]2‑
4)针对搜索过程中产生的不可行解设计修正方案,具体方法如下:
[0182]
车间生产调度问题通常可以采用析取图的形式进行表达。车间生产调度问题中每个工件的每一个工序在析取图中表示为一个节点,加工开始和结束通过在图的左右两侧的0,1虚拟节点代表:图上0和1的虚拟节点各只有一个,0代表开始,1代表结束。同一个工件的加工工序按照加工路径中的顺序使用实线箭头相连,在同一个机器上进行加工的工序使用虚线相连。在库存无限的情况下,确定调度方案等效于为每个虚线在不形成环的前提下确定方向来表示工件在同一个机器上的加工顺序。每个箭头的长度为箭头出发的节点所代表工序所需的加工时间。
[0183]
由于使用当前编码方法表示的调度方案对应的析取图表示中可能存在闭环,部分调度方案可能是不可行的。不可行方案会导致解码仿真过程中由于闭锁现象无法推进仿真钟,且生成不可行方案亦会占用计算资源。本发明通过对不可行解的结构进行分析,设计了一种含随机因素的不可行解调整方案以节省计算量,提升算法性能。
[0184]
不可行解调整方案的基本思想为破坏调度方案对应析取图中的闭环。不可行方案可以按照环中包含的工件数量与机器状态进行分类。首先按照合同数量可以将不可行方案分为环由两个工件构成和由多个工件构成两类。在两类中每一类可以分为环中不含空闲状态机器和环中含空闲状态机器两种情况,共构成四种类型环。四种类型环的调整方法如下
所示:
[0185]2‑4‑
1)两工件

含空闲机器环:将环中空闲机器上该两工件中加工顺序靠前的工件随机插入加工顺序靠后工件之后的位置;
[0186]2‑4‑
2)两工件

不含空闲机器环:将环中两台机器上该两工件中加工顺序靠后的工件均移动至与加工顺序靠前工件紧邻的后面的位置。
[0187]2‑4‑
3)多工件

含空闲机器环:将环中任一台空闲机器上属于这个环的加工顺序第二位的工件移至该机器整个加工队列的第一位。
[0188]2‑4‑
4)多工件

不含空闲机器环:将环中每台机器上属于环中该机器上加工顺序第二位的工件均移动至与环中该机器加工顺序第一位工件紧邻的后面的位置。
[0189]2‑
5)为种群中的每一个成员计算其适应度f:
[0190]
其中obj为当前调度方案的总拖期惩罚(通过将每个工件完成时间超过指定交货期限的部分相加即可得到,∈为一个较小正数,防止分母为0,本实施例中取0.1)。
[0191]2‑
6)克隆当前种群,得到新种群pop
c

[0192]2‑
7)判定:如果迭代次数未达到指定迭代次数generation的上限,则更新迭代次数generation=generation+1,然后进入步骤2

8);否则结束算法,返回pop中适应度最高的成员对应的当前调度方案即为最优的调度方案,该方案包括r,s和s
r
的最优解。
[0193]2‑
8)对种群pop中的所有成员进行判定:
[0194]2‑8‑
1)如果种群pop中的所有成员已经全部访问过,则寻找种群pop中前nea个(nea个数要小于种群总成员数)适应度最低的成员,随机更改其加工路径得到该成员更新后的当前调度方案,其中,若更新后的当前调度方案不可行,则重复步骤2

4)修正该当前调度方案,直至更新后的当前调度方案可行;然后进一步判定:
[0195]
如果此时迭代次数恰为epoch size的整数倍,则更新然后返回步骤2

7),否则不更新t,然后返回步骤2

7);
[0196]2‑8‑
2)如果种群pop中的所有成员没有全部访问过,则从pop中随机选择一个未访问的成员mem,将其标记为已访问,然后进入步骤2

9)。
[0197]2‑
9)使用邻域搜索算法对pop
c
中第mem个成员pop
c
[mem]进行更新;
[0198]
邻域搜索算法具体步骤如下:
[0199]2‑9‑
1)针对含连续有限库存的车间生产调度问题定义拓展的关键路径,并基于该定义设计邻域搜索算法;
[0200]
其中,拓展关键路径的定义;
[0201]
在析取图中,从0节点到1节点的最长路径长度代表了全部工件加工完毕的最大加工时长,该路径称为关键路径,关键路径中的同一个机器上加工的工序之间的连线成为关键段。
[0202]
针对含有限输出库存的混合车间生产调度问题,本发明将关键路径的定义拓展如下:对于给定的工件,从整个生产调度的加工开始到该工件最后一个工序的最长路径成为该工件的关键路径。关键路径中包含机器与输出库存,该关键路径中由属于其他不同工件的工序形成的片段成为关键段。拓展后的关键路径可以通过“无时间间隔”的关系寻找。“无时间间隔”关系可以划分为如下6种情况:
[0203]2‑9‑1‑
1)如果任一工件j(i)在机器m(i)(工序i所在的机器)上的工序i开始加工时间与该工件j(i)的上一个工序k结束加工的时间相同,则k为i在工件j(i)关键路径中的前一个工序。
[0204]2‑9‑1‑
2)如果机器m(i)上的工序i开始加工时间与同一台机器上前一个加工的工序k结束加工的时间相同,则k为i在关键路径中的前一个工序,且工序k和工序i构成了关键段。
[0205]2‑9‑1‑
3)如果机器m(i)上的工序i开始加工时间与同一台机器上前一个加工的工序k进入库存的时间相同,则k(位于库存中)为i在关键路径中的前一个工序,且工序k和工序i构成了关键段。
[0206]2‑9‑1‑
4)如果机器m(i)上的工序i开始加工时间与同一台机器上前一个加工工序在其所属的工件的下一个工序k的开始加工时间相同,则工序k为工序i在关键路径中的前一个工序,且工序k和工序i构成了关键段。
[0207]2‑9‑1‑
5)如果机器m(i)对应的库存中的工序i进入库存的时间与工序i(位于机器上,记作工序k)结束加工的时间相同,则工序k为工序i(在库存中)在关键路径中的前一个工序。
[0208]2‑9‑1‑
6)如果机器m(i)对应的库存中的工序i进入库存的时间与m(i)之前的任一个工序所属工件中的下一个工序k开始加工的时间相同,则工序k为工序i(在库存中)在关键路径中的前一个工序,且工序k和工序i构成了关键段。
[0209]
基于上述六种情况,在给定工件的情况下可以从其加工路径中的最后一个工序出发,不断倒推出关键路径中的上一个工序直至抵达虚拟节点0,最终得到完整的关键路径与关键段。
[0210]
因此每个工件都有自己对应的一条关键路径,一条关键路径中可以有多个关键段。
[0211]2‑9‑
2)利用邻域搜索算法更新pop
c
[mem];
[0212]
本发明中邻域搜索算法的中心思想为通过扰动关键路径上加工工序的先后顺序来得到新的调度方案。对于任意一个工件,如果其关键路径中的工序顺序没有发生改变,则该工件对应的拖期不会受到影响。因此只有改动关键路径中工件的加工顺序才有可能得到比当前解更优的调度方案。基于拓展关键路径的邻域搜索算法具体步骤如下:
[0213]2‑9‑2‑
1)搜索前预处理;
[0214]
通过仿真模拟,计算pop
c
[mem]对应的当前调度方案下每个工件完成加工的时间及对应的拖期,其中初始的当前调度方案由步骤2
‑2‑
3)得到的初始解确定。
[0215]
对各个工件的拖期进行归一化得到相应占比:
[0216]
p
job
=tar/sum(tar)
[0217]
其中tar为一个向量,包含所有工件的拖期;p
job
也为一个向量,其中的每个元素表示对应工件的拖期在总拖期中的对应占比。
[0218]
根据p
job
随机选取一个工件j,并生成[0,1]上的随机数p
r
,p
r1
和p
r2

[0219]2‑9‑2‑
2)引入随机因素;
[0220]
算法以随机搜索的概率p
random
(可根据对应测试数据多次尝试或使用taguchi等调参方法设定)随机产生新的当前调度方案,以此引入随机因素,具体操作如下:
[0221]2‑9‑2‑2‑
1)判定:若p
r
>p
random
则进入2
‑9‑2‑
3),否则进入步骤2
‑9‑2‑2‑
2)。
[0222]2‑9‑2‑2‑
2)判定:
[0223]
若p
r1
≤p
router
,(p
router
为在随机调整的选项下变换工件路径的概率,可通过多次尝试或taguchi方法调参得到)则随机选择一个工件,随机更改其加工路径,保持当前s和s
r
不变,得到更新后的pop
c
[mem],然后进入步骤2

10)。
[0224]
否则,保留所有工件原加工路径不变,随机选择一台机器,并随机选择在该机器上加工的两个工件,交换该两个工件的加工顺序,更新s和s
r
,得到更新后的pop
c
[mem],然后进入步骤2

10)。
[0225]2‑9‑2‑
3)更新路径;
[0226]
判定:若p
r2
≤p
route
(p
route
为仅修改指定工件路径的概率,可通过多次尝试或taguchi方法调参得到),则为步骤2
‑9‑2‑
1)选定的工件j随机选择一条新路径,并保持当前s与s
r
不变,得到更新后的pop
c
[mem],然后进入步骤2

10)。
[0227]
否则,进入步骤2
‑9‑2‑
4)。
[0228]2‑9‑2‑
4)调整关键路径中的加工顺序;
[0229]
保持当前r不变,即保留所有工件原加工路径不变。
[0230]
使用步骤2
‑9‑
1)中寻找拓展后关键路径的方法确定选定的第j个工件在当前调度方案下的关键路径criticalpath。
[0231]
从关键路径criticalpath中随机选择一个关键段bl。
[0232]
将构成关键段bl的两个工件中靠前的工件记作formerjob,靠后的工件记作latterjob。二者所在的机器分别记为formermachine和lattermachine。
[0233]
在lattermachine上交换formerjob和latterjob的位置,得到更新后的pop
c
[mem],然后进入步骤2

10)。比如当前有两个工件,工件1有两个工序(需要经过两种不同的机器加工),记作工序1

1和工序1

2,同理假设工件2有2

1和2

2两个工序,前面关键段的定义可以保证如果工件1的一个工序和工件2的一个工序构成关键段,则这两个工序所在的机器都会既加工工件1也加工工件2;
[0234]2‑
10)对pop
c
[mem]进行判定:若pop
c
[mem]对应的当前调度方案可行,则直接进入步骤2

11);若不可行,则重复步骤2

4)修正该当前调度方案,直至更新后的当前调度方案可行,然后进入步骤2

11);
[0235]2‑
11)计算pop
c
[mem]的适应度记为f
c
[mem];然后判定:
[0236]
如果f
c
[mem]>f[mem],则更新pop[mem]=pop
c
[mem],然后重新返回步骤2

8);否则进入步骤2

12)。
[0237]2‑
12)生成一个0,1之间的随机数p;
[0238]2‑
13)计算
[0239]
其中p
accept
指接受pop
c
[mem]作为种群中新成员的概率,obj
global
代表pop中适应度最高的成员对应的拖期惩罚的拖期惩罚,obj
old
代表pop[mem]的拖期惩罚,obj
new
代表pop
c
[mem]的拖期惩罚;
[0240]2‑
14)判定:如果p<p
accept
,则更新pop[mem]=pop
c
[mem];否则保持pop[mem]不变;
[0241]2‑
15)重新返回步骤2

7)。
[0242]
通过本实施例,生成了相关数据对本发明提出的模型和混合算法进行测试,验证模型的正确性与算法的有效性。同时,将提出的算法与商业求解器cplex在求解时间和解的质量上进行对比,最后对提出的模型的性能进行了分析。实验结果表明(见表1),算法方面,本发明提出的混合人工免疫

模拟退火方法可以大幅提升大规模算例下的求解速度并获得质量更高的调度方案。模型方面,本发明通过引入0

1变量将模型保持为线性混合整数规划模型,中小规模的数学模型可以在可接受的时间范围通过商用求解器获得最优解或近似最优解。
[0243]
表1不同规模算例下混合算法与商用求解器cplex求解时间与质量对比
[0244][0245]
以上实例描述了本发明的基本原理、主要特征及优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1