APS算法Word文件下载.docx
《APS算法Word文件下载.docx》由会员分享,可在线阅读,更多相关《APS算法Word文件下载.docx(29页珍藏版)》请在冰豆网上搜索。
随着生产车间信息化程度的日益增强,生产车间的信息环境变得越来越“透明”。
制造执行系统(MES)对生产过程信息的实时监控和采集,因此对车间调度算法的实时性
和动态性提出了很高的要求。
目前使用的车间作业计划排序方法是远不能满足实时
性、动态性要求的;
而现有的一些用于MES的生产调度算法虽然很精确,但是求解效
率低,计算时间过长,导致算法的初始条件在时间轴上发生很大漂移,计算得到的所
谓“满意解”与车间生产实际相偏离,甚至成为“恶解”,甚至不可执行[xlii]。
因此必
须寻求新的适应MES系统要求的实时动态调度算法。
因此,根据MES实时性的要求并提出了“基于瓶颈分解的调度启发式算法”。
这
种算法强调瓶颈环节对生产系统效率的全局性影响,重视对各工序流程关系的分析,
使复杂的调度问题得到简化,计算规模小,能对车间的动态变化做出迅速的反应。
4.2.1
导弹装配流程模型描述
分厂某装配车间的其中一种型号的导弹装配流程如图4.1所示,将导弹的装配过程
中的工序分为若干个主要的工艺段(图中以方块表示),同一车间生产的产品必须经过
这若干个工艺段,才能装配成成品。
各个工艺段主要由手工装配工位以及测试设备组
成,而且工艺段的生产能力存在差异。
为了保证装配生产的连续匹配进行,一般在各
个工艺段之间可能会存在一定数量具有缓冲作用的产品,这些缓冲区产品就起到了平
衡生产和平滑物料流移动的作用。
由于装配车间目前采用的是手工装配的多品种轮番
流水线的生产模式,因此把装配车间装配线的调度问题简化为一个Flowshop调度问
题。
35
图4.1某产品的装配流程关系图
我们可以把图4.1的装配过程描述为:
假设有一个虚拟的“导弹托盘”,由“陀螺
测试”工序开始,逐步往“导弹托盘”上装配零部件,直到“安装便携装置”工序,
导弹装配完毕。
因此,可将装配车间的调度问题可以按照Flowshop调度问题描述为:
n个工件(“导弹托盘”){J1,J2,⋅⋅⋅,Jn}在m个机器(装配工艺段){M1,M2,⋅⋅⋅,Mm}
上加工,每一工件的加工顺序相同,假设机器按工艺路径依次排列。
每个工件Ji都包
括m道工序Oi1,Oi2,⋅⋅⋅,Oim,工件Ji在机器Mj上的开工时间为tij,工件Ji在机器Mj的
加工时间为pij。
对该问题的假设如下:
假设1
假设2
假设3
假设4
每个工件在每台机器上只能加工一次;
任一时刻,每台机器最多加工一个工件;
每个工件按照相同的工艺路径依次加工;
工件一旦开始加工则不允许中断;
问题的目标是求n个工件在每台机器上最优的加工顺序,使调度方案的评价指标
最优化。
4.2.2
导弹装配作业调度问题目标函数
基于上述对装配车间的模型描述,下面根据车间任务的类型来确定导弹装配车间
的作业调度问题的目标函数。
(1)生产任务类型划分
对于车间生产任务来说,任务的完工时间和交货期是判断调度质量的关键因素。
在本节中,除了导弹工艺技术参数的要求,我们从任务交货期要求的角度考虑对生产
任务类型进行划分。
36
通常认为,任务的交货期是固定的、清晰的,很多排序算法的研究也是基于这种
假设的。
事实上,任务的交货期是与客户(或生产系统下游工序)的满意度有着密切
关系的。
不同客户对工件的交货期要求也是不同的,两者之间通常存在一种非固定
的、模糊的关系。
为了更好的说明问题,我们对完工期和交货期与客户满意度之间的
关系,我们对问题做一下数学描述:
令cj和dj分别为工件j的加工完成时间和交货期,若调度问题以任务拖期时间为
指标,则cj≤dj是决策者最满意的情况;
而cj>
dj是决策者不满意的情况(即有任务
迟于交货期完工)。
若考虑清晰情况,可按下式定义满意度,示意图如图4.2所示。
⎧1,ci≤di
>
d
di
ci(交货期)
(4.1)
图4.2紧急需求订单满意度——隶属度曲线
若考虑模糊情况,即每个任务地交货期是R+上的一个模糊集合,则可用隶属度函
数表示决策者对任务完工期的满意度,而其形式可以是多种多样的。
常见的以下几种
形式,如图4.3和图4.4所示。
diL
diU
ci(交货期)
图4.3一般需求订单满意度——隶属度曲线
37
diL
图4.4计划生产任务满意度——隶属度曲线
由此,我们可以把生产任务分为三种类型:
紧急需求订单任务:
调度优先级最高,Priority=3,交货期与满意度的关系满足图
4.2所示,即任务必须按时完成。
一般需求订单任务:
调度优先级Priority=2,交货期与满意度的关系满足图4.3所
示。
即任务可以适当拖期,但是拖期对满意度的影响较大。
计划生产任务:
调度优先级最低,Priority=1,交货期与满意度的关系满足图4.4所
示,即任务没有明确的交货期限制,任务拖期对满意度几乎没有影响,这部分生产
任务,主要用于填充在制品库存。
(2)问题目标函数
确定生产任务优先级,优先生产高优先级任务(即,3→2→1)。
高优先级任务
(Priority=3和Priority=2)的排产目标是产品总拖期最小;
低优先级任务(Priority
=1)的排产目标为减少在制品数量、能力平衡等。
考虑集团公司产品的需求波动性较小,因此生产任务的级别主要为2
(Priority=2),因此设计算法的目标函数为完工时间总拖期最小。
建立整数规划模型(P)如下[xliii]:
(P)
s.t.
n
mini
xi,j,k,tt,ki=1
ti,k−ti,k−1≥pi,k−1,
i=1,⋅⋅⋅,n
(4.2)
ti,k−ti,k−1≥pi,k−1,
ti,1≥0,
i=1,⋅⋅⋅,n;
k=2,⋅⋅⋅,m
(4.3)
(4.4)
tjk−tik+M(1−xi,j,k)≥pi,k,i=1,⋅⋅⋅,n−1;
j=i+1,⋅⋅⋅,n;
k=1,⋅⋅⋅,m
tik−tjk+M−xi,j,k≥pj,k,i=1,⋅⋅⋅,n−1;
j=i+1,⋅⋅⋅,n;
Ti=max{0,ti,m+pim−di},i=1,⋅⋅⋅,n
xi,j,k∈{0,1},i=1,⋅⋅⋅,n;
j=1,⋅⋅⋅,n;
i≠j;
(4.5)
(4.6)
(4.7)
(4.8)
其中:
决策变量xi,j,k为二进制变量,表示机器k上工件i和工件j的加工顺序。
如
38
∑T
果机器k上工件i在工件j前加工,则xi,j,k=1;
否则xi,j,k=0。
ti,k和pi,k分别为工件i在机
器k上的开工时间和加工时间。
di为工件i的交货期限。
M为一充分大的正整数。
工件
i的拖期时间Ti按式(4.7)计算,式(4.2)为目标函数,希望工件的总拖期时间最小;
式
(4.3)表示工件按照相同的工艺路径依次加工;
式(4.4)表示任一工件不能在其到达时间
之前开始加工;
式(4.5)和(4.6)为机器的能力约束,保证任一时刻每台机器只能加工一
个工件。
绝大部分(工件数大于3)流水车间的拖期时间最小的调度问题属于强NP-
[xliii]
,不可能找到精确求得最优解的多项式时间算法。
如果采用整数规划、分枝定
界等精确求解算法,其计算量与问题的规模呈指数关系,存在计算困难。
因此,采用
有效的启发式算法在较短的时间内获得满意的调度是一种较好的选择。
4.3
4.3.1
基于瓶颈分解的启发式算法
算法设计思想
调度算法设计目标:
一、为实现车间生产计划调度的实时性,要求计划调度算
法:
准确性高、计算周期短、计算过程简单,易于为调度员理解;
二、从分解协调的
角度研究瓶颈分解方法,侧重于大规模问题的分解过程和机器之间的协调方式。
调度算法设计指导思想:
一、在MES中,期望实现实时的车间调度的周期以分钟
为单位,由此,为了满足动态的实时调度的要求,在求解较大规模的调度问题时,必
须在考虑求解速度的前提下来求得满意解;
二、根据OPT的思想,在瓶颈资源上一个
工时的损失是整个系统的一个工时损失;
在非瓶颈资源上节约一个工时对于整个系统
的优化影响很小。
也就是说,对瓶颈资源的优化效率相对于整个系统而言是最高的;
而因为瓶颈资源的优化导致的非瓶颈资源的损失也只是局部的;
三、启发式算法通常
是问题规模、复杂程度,计算时间和解的质量的折中。
一些启发式算法经过实际的检
验确实能够给出比较满意的调度方案,如基于规则的优先调度、瓶颈启发式算法就是
启发式算法中很有代表性的调度算法,它们具有易于理解,计算时间短,计算复杂程
度低,便于应用于生产实际特点。
目前在基于瓶颈所提出的启发式算法中,以SBH(ShiftingBottleneckHeuristic)[xliv]
算法最具代表性。
该方法采用了单台机器的松弛方式来决定机器排序的顺序,其难点
在于重新局部优化和不可行解的产生。
SBH算法的一个优点是可以简化求解的目标函
数,以制造系统瓶颈的逐层定义为导向,用较低的计算量得到了较高的求解质量。
特
39
hard
别是对一些经典的调度问题模型的求解方面,SBH算法的计算量远远小于模拟退火等
启发式算法[xlv],而且能得到比优先规则更令人满意的解。
但是,随着调度问题的复杂
程度的增加,SBH算法无法对复杂系统的瓶颈做出正确判断。
为了满足动态的实时调
度的要求,在求解较大规模的调度问题时,必须在考虑求解速度的前提下来求得满意
解。
因此,本文采用瓶颈启发式算法作为调度问题的求解算法。
4.3.2
调度算法逻辑
在此基础上,我们提出一种以优化瓶颈工序为核心的解决车间调度的启发式算
法。
该启发式算法是基于OPT的解决车间调度问题的思想和转换瓶颈启发式算法(SBH)
的启发而提出的。
我们这里称之为,“基于瓶颈分解的启发式调度算法”。
首先,通过现场数据的统计分析等方法,确定整个生产线的最关键的瓶颈工序。
在确定瓶颈工序后,对瓶颈工序进行最优化调度。
然后根据工艺要求以及物料需求确
定与瓶颈工序直接相关的约束资源(或次瓶颈工序)的调度,使得这些与瓶颈工序优
化直接相关的约束资源在尽可能满足瓶颈工序要求的前提下,可以把这些约束资源重
新看作新的(次)瓶颈工序,进行局部的调度优化。
按照上述原则,非迭代地单向地
搜索、确定、选取并调度各生产,直到所有的工位全部调度完成。
这样的过程,从整
体上看,是从最关键的瓶颈工序开始,发散式的将调度沿着这个生产工艺流程逐步确
定下来。
“基于瓶颈分解的启发式调度算法”包括两方面计算程序:
一个程序是建立调度
树来依次寻找需要调度的工序(或生产单元);
另一个程序用于解决每一个工序(或一
个生产单元)的调度问题。
算法每次对一个或多个工序(或生产单元)进行调度。
沿着
调度树每发散一次,一个或多个工序(或生产单元)的全部(或部分)任务被确定下
来;
而每个工序(或生产单元)上的任务的加工顺序只有在该工序(或生产单元)所
有任务的属性都确定下来以后,才能被最终确定。
“基于瓶颈分解的启发式调度算法”
的调度逻辑如图4.5所示。
40
图4.5基于瓶颈分解的启发式调度算法流程图
本文提出的“基于瓶颈分解的启发式调度算法”思想是:
首先找出制造系统中的
主瓶颈工序,并根据整个系统的调度目标,用相应的优化调度算法确定主瓶颈工序的
排序;
然后在系统分析工艺流程的基础上依次确定其他次瓶颈工序与主瓶颈工序之间
的关系,进而确定其他次瓶颈工序的调度方案,直至所有工序全部排序完成。
另外,
由于本文有针对性的对问题建立模型、进行求解,提出的调度算法计算量小,可以在
短时间内得到满意解,具有很好的求解效率和质量,符合实时动态调度要求,有很强
的可行性与实用性。
4.3.3
装配车间生产瓶颈环节的确定
(1)瓶颈的本质
制造系统是由一定的机器和缓冲区所组成的用于生产特定产品的系统。
制造系统
内的瓶颈机器会导致其下游机器的闲置和上游机器的堵塞,从而降低了整个制造系统
的生产效率;
正如约束理论所强调,瓶颈主导着整条生产线的性能[xlvi]。
最有效的提高制造系统生产效率的方法就是通过定义和消除瓶颈资源来实现的。
通常,瓶颈被理解成为一台机器,这台机器的是整个系统中加工能力最低的。
在某些
情况下,缓冲区中在制品或待加工零件数量最大的机器被视为瓶颈。
(2)瓶颈的确定
41
能力均衡的生产线容易受到加工产品变化或随机扰动的影响而产生瓶颈移动,从
而使得整条生产线不易于管理,因此实际生产过程中大多数生产线都设计为能力不均
衡。
在订单信息和加工环境确定的条件下,生产线存在一个稳定的瓶颈。
约束理论指
出,瓶颈主导着整条生产线的性能,因此可通过求解瓶颈机的调度问题来降低原问题
的计算复杂度。
流水生产线上每个工件的工艺路径固定且相同,因此加工负荷越大的机器越容易
发生拥塞现象而成为生产线的瓶颈。
本文选择加工负荷最大的机器Mb为瓶颈机,工件
的加工时间满足
nn
i=1i=1
j=1,⋅⋅⋅,m,j≠b
(4.9)
式(4.9)给出了一个较为鲁棒的瓶颈机选择规则。
即使在动态不确定情况,如果某
个工件的加工时间发生变化,只要工件的加工时间满足条件(4.9),则该机器仍为瓶颈
机。
4.3.4
“基于瓶颈分解的启发式调度算法”调度机理
(1)生产系统模型
根据第一小节中对导弹装配流程的分解,我们可以进一步把导弹装配过程抽象成
两种子生产系统模型的组合,第一种是串联生产线,第二种可以视为装配生产线。
图4.6,图4.7所示,圆圈代表机器,方块代表缓冲区。
(2)串联子系统模型
系统由m个机器串联,每个机器前有一个缓冲区,将相连的一组机器分隔开,如
图4.6图所示。
图4.6串联子系统模型
(3)装配子系统模型
系统中包含机器Mij,j=1,⋅⋅⋅,m,生产进行产品的装配,每个机器前有一个缓存区
bij,j=1,⋅⋅⋅,m;
这m个机器装配出来的装配件存放在装配机器Mi前各自的缓存区
bij,j=1,⋅⋅⋅,m中,如图4.7所示。
42
∑pi,b>
∑pi,j,
图4.7装配子系统模型
(4)串联子系统的调度机理
拉
推
M2
b3
M3
b4
M4
b5
M5
瓶颈
图4.8串联子系统调度机理
如图4.8,假设在串联生产线上,机器M4被确定为瓶颈机器,那么首先确定M4
的优化目标函数,并选择相应的求解算法,对M4的任务进行排序。
此时,机器M3和
M5作为瓶颈机器M4所产生的直接约束机器(或称为次瓶颈机器),应该根据M4的调
度方案,把尽可能满足M4的工艺与物料需求为目标,选择其各自的优化目标函数,确
定相应的求解算法,进行其各自的任务排序。
对于瓶颈机器M4的上游机器M3,采取
的是拉式(pull)生产模式,重新确定M3中任务的完工期限;
对于瓶颈机器M4的下游
机器M5,采取的是推式(push)生产模式,重新确定M5中任务的开工时间。
(5)装配子系统的调度机理
43
图4.9装配子系统调度机理
如图4.9所示,假设在装配生产线上,机器M22被确定为瓶颈机器,那么首先确定
M22的优化目标函数,并确定相应的求解算法,对M22的任务进行排序。
此时,M2作
为瓶颈机器M22由装配关系所产生的直接约束机器(或次瓶颈机器),将收到由M22发
出的装配工艺与物料需求。
机器M2将根据M22的调度方案,确定其优化目标函数,确
定相应的求解算法,进行其任务排序;
然后对机器M21发出面向装配的任务指令。
机
器M21将根据来自M2的任务指令,确定其优化目标函数,并确定相应的求解算法,对
其任务进行排序。
对于瓶颈机器M22的上游机器,采取的是拉式(pull)生产模式,确
定机器中任务的完工期限。
对于机器M21的上游机器,采取的是拉式(pull)生产模
式,确定机器中任务的完工期限。
对于瓶颈机器M2的下游机器,采取的是推式
(push)生产模式,确定机器中任务的完工期限。
4.3.5
基于瓶颈分解算法研究
根据上述对“基于瓶颈分解的启发式算法”调度机理的描述,下面具体给出“基
于瓶颈分解的启发式算法”的详细计算过程。
瓶颈分解算法是一种特殊的机器层分解算法。
它利用机器负荷差异将流水线上的
机器分解为瓶颈机和非瓶颈机。
松弛非瓶颈机的能力约束,建立瓶颈机的调度子模型
并精确求解。
非瓶颈机的调度围绕着瓶颈机的调度而建立,一般采用有效的分派规
则。
由于瓶颈机调度模型是在松弛机器能力约束的情况下获得的,最终得到的调度可
能是不可行的,因此需要不断地协调瓶颈机与非瓶颈机之间的关联,直到获得一个好
的可行调度。
(1)瓶颈分解过程
44
由(4.3)式确定了系统的瓶颈后,生产线上剩余的机器称为非瓶颈机。
由于流水线
特殊的工艺路径,机器Mb上每道工序的前序都在上游机(瓶颈机之前的所有非瓶颈机
器)上加工,其后序都在下游机(瓶颈机之后的所有非瓶颈机器)上加工,整个流水线分
解为上游机、瓶颈机和下游机。
假设非瓶颈机的加工能力无限大,则非瓶颈机的机器
能力约束不再成立,约束(4.5)和(4.6)可简化为
tj,b−ti,b+M(1−xi,j,b)≥pi,b,i=1,⋅⋅⋅,n−1;
j=i+1,⋅⋅⋅,n
ti,b−tj,b+M−xi,j,b≥pj,b,i=1,⋅⋅⋅,n−1;
(4.10)
(4.11)
工件i在瓶颈机Mb上的到达时间和剩余加工时间取决于它在上游机和下游机上的
加工.。
因为假设非瓶颈机的加工能力无限大,所以有
=+p
=
由式(4.12),(4.13),(4.4)和(4.7)可得
ti,b≥ri,i=1,⋅⋅⋅,n
'
b−1
j=1
(4.12)
(4.13)
(4.14)
(4.15)
m
j=b+1
间用参数ri(或qi)表示,它是工件i在上游机(下游机)的加工时间之和。
式(4.14)和(4.15)
暗含了工件i经过ri个单位的时间到达瓶颈机后开工时间迟延,它在瓶颈机上加工完后
再经过qi个单位的时间迟延传递至客户ri,qi和di'
分别表示工件i在瓶颈机Mb上的到
达时间、剩余加工时间和局部交货期限。
生产线调度模型可松弛为瓶颈机Mb上的调度
模型如下:
(Pb)
ti,k−ti,k−1≥pi,k−1,=1,⋅⋅⋅,n
-40s.t.
45
(4.16)
(4.17)
(4.18)
(4.19)
(4.20)
(4.21)
ti,bit,bi,b−1=ti,b