CN101609334A - 基于两级差分进化算法的作业车间多工艺路线批量动态再调度方法 - Google Patents
基于两级差分进化算法的作业车间多工艺路线批量动态再调度方法 Download PDFInfo
- Publication number
- CN101609334A CN101609334A CNA2009101008298A CN200910100829A CN101609334A CN 101609334 A CN101609334 A CN 101609334A CN A2009101008298 A CNA2009101008298 A CN A2009101008298A CN 200910100829 A CN200910100829 A CN 200910100829A CN 101609334 A CN101609334 A CN 101609334A
- Authority
- CN
- China
- Prior art keywords
- workpiece
- batch
- procedure
- ijk
- jkl
- 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
- 238000000034 method Methods 0.000 title claims abstract description 162
- 238000004519 manufacturing process Methods 0.000 claims abstract description 38
- 238000012545 processing Methods 0.000 claims abstract description 22
- 238000011156 evaluation Methods 0.000 claims abstract description 12
- 210000000349 chromosome Anatomy 0.000 claims description 83
- 108090000623 proteins and genes Proteins 0.000 claims description 48
- 230000015572 biosynthetic process Effects 0.000 claims description 25
- 238000005192 partition Methods 0.000 claims description 15
- 238000011112 process operation Methods 0.000 claims description 14
- 238000003780 insertion Methods 0.000 claims description 6
- 230000037431 insertion Effects 0.000 claims description 6
- 239000000047 product Substances 0.000 claims description 5
- 230000002759 chromosomal effect Effects 0.000 claims description 4
- 230000035772 mutation Effects 0.000 claims description 4
- 238000012163 sequencing technique Methods 0.000 claims description 4
- 230000001755 vocal effect Effects 0.000 claims description 4
- 238000012937 correction Methods 0.000 claims description 3
- 238000012217 deletion Methods 0.000 claims description 3
- 230000037430 deletion Effects 0.000 claims description 3
- 230000008034 disappearance Effects 0.000 claims description 3
- 239000012467 final product Substances 0.000 claims description 3
- 238000003754 machining Methods 0.000 claims description 3
- 238000013178 mathematical model Methods 0.000 claims description 3
- 238000005457 optimization Methods 0.000 claims description 2
- 238000004043 dyeing Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 6
- 238000011160 research Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000039 congener Substances 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
一种基于两级差分进化算法的作业车间多工艺路线批量动态再调度方法,涉及到再调度参数评价、调度模型构造和调度方案编制,采用基于周期和事件驱动的再调度策略,建立了多工艺路线批量调度模型,提出两级差分进化算法来求解该模型,解决批量划分和调度优化问题;考虑到实际环境中工件各道工序并行机之间可能存在能力不均衡的情况,本发明对各工件在每一道工序进行批量划分,设计的两级差分进化算法解决了批量划分和调度优化,能有效地减少机器空闲时间,缩短生产周期,完全适应加工过程中复杂的环境变化和实时处理。
Description
技术领域
本发明属于先进制造与自动化技术领域,涉及一种作业车间多工艺路线批量动态再调度方法。
背景技术
在实际制造环境中,由于市场对产品个性化的需求以及市场的多变性,多品种、中小批量生产方式已经逐渐成为制造业的发展主流。在这种生产方式下,若是调度时把单个零件作为一个独立的个体,那么调度问题规模会变得很大,可解性不好。一种解决方法是制定生产计划时把同种类的所有零件归为一类,也就是说,同类零件组合成一批作为调度问题中的一个工件,该批零件一起生产,每个零件独立加工,该批的加工时间为该批所有单个零件的加工时间(称为单件加工时间)之和。一批零件在某道工序只需要一次启动准备操作,如此就可以减少准备时间以达到缩短完工时间的目的。研究表明,在中小批量生产方式下,可以通过分批处理来减少机器空闲时间以达到缩短生产周期的目的,提高生产效率。
批量调度问题涉及到批量划分和调度优化,其中批量划分需要确定划分的批次数、各批次的批量大小。国内外学者对流水车间批量调度问题进行了广泛的研究,对作业车间批量调度问题的研究也已经取得了一定的成果,但现有的研究对于批量划分问题的解决都是在确定了各个工件划分的批次数后,基于等量分批的原则来确定各批次的批量大小。这样的处理方法没能考虑到实际加工环境中工序并行机之间可能存在能力不均衡的情况。
发明内容
为了克服现有技术无法有效解决动态多变环境下多品种、中小批量生产车间大规模调度问题,生产周期长,生产效率低的不足,本发明提供一种基于周期和事件驱动的多工艺路线批量动态再调度方法,考虑到差分进化算法的变异操作具有保持基因值总和不变的特点以及工件各道工序并行机之间可能存在能力不均衡的情况,有效解决动态多变环境下多品种、中小批量生产车间大规模调度问题,缩短生产周期,提高生产效率。
本发明的技术方案如下:
一种基于两级差分进化算法的作业车间多工艺路线批量动态再调度方法,所述作业车间批量动态再调度方法包括以下步骤:
1)、采用基于周期和事件驱动的再调度策略,根据实际生产工况,进行再调度参数评价,刷新工件工序信息、加工批量信息和机器信息;利用滚动窗口技术,确定再调度工件窗口;记再调度时间起点为t0,按如下步骤进行再调度参数评价,确定再调度工件窗口:
步骤1.1:根据t0时刻机器生产状况,刷新机器参与再调度的初始可用时间;
步骤1.2:统计已经参与调度的工件的生产情况,去除实际已经完成加工操作的以及t0时刻正在进行加工而不能停止的部分,得到这些工件所包含的剩余工序以及各道工序未完成的加工批量大小;
步骤1.3:根据步骤1.2得到工件数记为N′,若N′<N,其中N为工件窗口大小,那么从数据库未调度生产计划中按工件紧迫度从小到大选择N-N′个工件;将工件的交货期减去t0可获得工件的紧迫度值;清空工件窗口,将这N-N′个工件和步骤1.2得到的N′个工件纳入工件窗口;
2)、对再调度参数评价后得到工件窗口中的工件,根据数据库里的基础数据以及参数评价后得到的工件信息以及机器信息,建立多工艺路线批量调度模型;
3)、采用两级差分进化算法来求解调度模型,解决批量划分和调度优化问题,优化得到各工件在每道工序所划分的批次数以及各子批的批量大小、工件各道工序各子批所分配的加工机器、工件各道工序各子批的开始/结束准备时间和工件各道工序各子批的开始/结束加工时间。
进一步:在步骤2)中,所述多工艺路线批量调度模型建立过程如下:
2.1)变量定义
N:工件数,即工件窗口大小;
AMij:工件i第j道工序的加工批量大小,即包含的零件数;
ni:工件i所含工序数;
M:车间内可用机器数;
WTijk:工件i第j道工序在机器k上的单件加工时间,WTijk=0表示工件i第j道工序不能在机器k上加工,i=1,…,N,j=1,…,ni,k=1,…,M;
PTijk:工件i第j道工序在机器k上的批量准备时间,PTijk=0表示工件i第j道工序不能在机器k上加工因此不需要批量准备操作,i=1,…,N,j=1,…,ni,k=1,…,M;
bij:工件i第j道工序的并行机数;
BNijk:工件i第j道工序的第k批任务的批量,BNijk为整数,i=1,…,N,j=1,…,ni,k=1,…,bij;
OMijk:工件i第j道工序的第k批任务所分配到的加工机器,OMijk∈[1,M],i=1,…,N,j=1,…,ni,k=1,…,bij;
SPTijk:工件i第j道工序的第k批任务的开始准备时间,i=1,…,N,j=1,…,ni,k=1,…,bij;
CPTijk:工件i第j道工序的第k批任务的结束准备时间,i=1,…,N,j=1,…,ni,k=1,…,bij;
SWTijk:工件i第j道工序的第k批任务的开始加工时间,i=1,…,N,j=1,…,ni,k=1,…,bij;
CWTijk:工件i第j道工序的第k批任务的结束加工时间,i=1,…,N,j=1,…,ni,k=1,…,bij;
TEi:表示机器i的可用时间,i=1,…,M;
TCij(NM):表示完成工件i第j道工序NM批量任务的加工操作的时间,i=1,…,N,j=1,…,ni;
2.2)模型建立
将工件i在第j道工序划分成bij批,i=1,…,N,j=1,…,ni,建立数学模型如下:
上述式子中的i,j,k的取值在i=1,…,N,j=1,…,ni,k=1,…,bij大前提范围内;式(3)表示排产时若j=1,即对应第一道工序,则只需考虑机器约束,而当j>1时还需要考虑批任务的工序约束;允许机器提前进行批量准备操作,因此采用先确定批任务的开始加工工时间,即计算式(3),再计算开始准备时间,即式(5);当某机器完成当前批任务的加工操作,而下一批任务跟当前批属于同一种工件的同道工序,那么下一批任务不需要在该机器上再进行批量准备操作,式(3)、(5)只对需要准备操作的批任务适用,而在安排不需要准备操作的批任务时,式(3)中的机器约束应由原来的更改为
再进一步:在步骤3)中,具体包括以下过程:
3.1)编、解码方案
算法采用两级染色体编码方式;根据工序的可用并行机数bij,将各工件在每道工序进行批量划分;对工件i的第j道工序随机产生bij个[0,AMij]之间的整数BNijk,使 记为工件i的第j道工序的批量队列;所有工件在每道工序的批量队列组成了批量划分染色体,记为chromosome1,长度为 BNijk表示工件i在第j道工序的第k子批次的批量大小;
chromosome1上包含了共len个子批次的批量信息,而该len个子批次的加工排序信息则构成了排序染色体,记为chromosome2,长度也为len。排序染色体将各子批次作为调度问题中一个独立的工件,采用基于子批工序的编码方式;
解码时,对排序染色体上的批任务从左到右进行排产:假定chromosome2上某位基因对应的是工件i的第j道工序的第k批,根据该工件前一道工序的所有批任务的排产情况,计算工件i在第j-1道工序完成批量任务的时间;然后在满足工序约束和机器约束的前提下,从工件i第j道工序的并行机中选择能最早完成第k批加工任务的机器作为Oijk,安排该工序的批量准备操作和加工操作,允许机器提前进行准备操作;若j=1,那么排产时只需要满足机器约束即可;
3.2)适应度函数
式(7)表示以优化生产周期为调度目标,目标函数为:
其中,
3.3)批量划分染色体的进化操作
记chromosome1i为个体i上的批量划分染色体,对当前种群中的批量划分染色体采用基于块变异块交叉操作的差分进化算法,按如下步骤进行一次进化操作:
步骤3.3.1:设置i=1;
步骤3.3.2:对当前种群中的chromosome1i,随机产生[1,Np]之间互异且不等于i的自然数d1、d2、d3,Np为种群规模;对chromosome1i进行进化操作:
②、若j=r1,且k=r2,则执行步骤③,否则,执行步骤④;
③、对chromosome1i上工件j的第k道工序的批量队列进行块变异块交叉操作:
其中,BNjkl z表示chromosome1z上工件j的第k道工序的批量队列上第l位基因;对应工件j的第k道工序第l批的批量,z=d1,d2,d3;BN′jkl表示变异新产生的队列上第l位基因;Kjk表示对chromosome1i上工件j的第k道工序的批量队列进行块变异操作时的变异算子;
为了保证产生的BN′jkl符合[0,AMjk]范围约束,Kjk的取值需满足以下两式:
采用随机产生该范围内的数值作为Kjk的取值;
④、设置BSM=0,对l从1到bjk,当l<bjk时,执行BN′jkl=[BN′jkl],BSM=BSM+BN′jkl;若l=bjk,执行BN′jkl=AMjk-BSM,[]表示取整;这样就把新产生的队列上所有的BN′jkl都转化为整数;
采用上述进化操作,BN′jkl满足式(2)的约束。选择变异新产生的块区域进入新染色体中,记为newchro1i,执行步骤⑥;
⑤、随机产生[0,1]之间的随机数r3,r3∈R;若r3≤CR,则转至步骤③;否则,选择chromosome1i上工件j的第k道工序的批量队列进入新染色体newchro1i中,执行步骤⑥;
⑥、若k<nj,执行k=k+1;否则,执行j=j+1;
⑦、若j≤N,返回步骤②;否则,此时新的染色体newchro1i已经是一条完整的批量划分染色体,将newchro1i存入临时种群;
步骤3.3.3:若i<Np,执行i=i+1,返回步骤3.3.2;
3.4)排序染色体的进化操作
记chromosome2i为个体i上的排序染色体,对当前种群中的所有chromosome2染色体进行两两随机配对,采用块交叉遗传操作在两父代染色体之间进行交叉产生子代染色体存入临时种群;假设两父代排序染色体为chromosome2p和chromosome2q:
步骤4.2:交换两父代染色体中的部分队列块得到两子代染色体,用chromosome2′p和chromosome2′q表示;
步骤4.3:对chromosome2′p、chromosome2′q进行修正,在部分队列块中删除多余基因、插入缺失的基因;插入时先查找部分队列块中是否有与待插入基因拥有相同工件号但不同工序号的基因,若有这样的基因且该基因对应的工序号大于待插入基因的工序号,那么要求插入的位置在该基因之前;若有这样的基因且该基因对应的工序号小于待插入基因的工序号,那么要求插入的位置在该基因之后;修正后得到chromosome2″p、chromosome2″q并将其存入临时种群;
3.5)选择操作
在对当前种群中的批量划分染色体、排序染色体采用上述进化操作后,临时种群中共有Np个新个体;在当前种群和临时种群共2×Np个个体中采用最优个体保存和轮盘赌选择操作选择Np个个体进入下一代。
本发明的效果和益处是:采用工件滚动窗口技术,可以使大而复杂的调度问题划分成较小问题,使算法完全适应加工过程中复杂的环境变化和实时处理;采用两级差分进化算法能有效地解决批量划分和调度优化问题,缩短生产周期;基于差分进化算法的批量划分方法充分利用了并行机之间不均衡能力的信息,在增加批次数则花费在准备操作上的时间会增多而减少批次数则会加长等待时间这两者之间的矛盾中起到了很好的折衷作用。
附图说明
图1是作业车间多工艺路线批量动态再调度方法的结构框图。
图2是两级差分进化算法流程图。
图3是批量划分染色体组成图。
图4是批量划分染色体示意图。
图5是排序染色体示意图。
图6是父代排序染色体示意图。
图7是子代排序染色体示意图。
图8是修正后的子代排序染色体示意图。
具体实施方式
结合技术方案和附图,详细阐述本发明的具体实施方式。
参照附图1~图8,一种基于两级差分进化算法的作业车间多工艺路线批量动态再调度方法,包括以下步骤:
步骤1:判断时钟计数器是否到周期时间点,若到周期时间点则取该时间点为再调度时间起点t0,执行步骤2;否则,判断是否有突发事件,若发生突发事件,则以事件发生时刻作为再调度时间起点并执行步骤2。
本发明研究的动态环境包括以下突发事件:机器突然损坏;损坏的机器被修复;订单信息更改等。
步骤2:根据t0时刻实际生产工况,进行再调度参数评价,刷新工件工序信息、加工批量信息和机器信息,采用滚动窗口技术,确定再调度工件窗口:
(2.1)根据t0时刻机器生产状况,刷新机器参与再调度的初始可用时间,对于t0时刻正在进行加工操作的机器,由于加工的连续性,该机床不能立刻停止对该零件的加工,因此该机床只能在完成该单个零件后参与再调度;
(2.2)根据实际生产工况,统计已经参与调度的工件的生产情况,去除实际已经完成加工操作的以及t0时刻正在进行加工而不能停止的部分,得到这些工件所包含的剩余工序以及各道工序未完成的加工批量大小;
(2.3)根据步骤(2.2)得到工件数记为N′,若N′<N(N为工件窗口大小,可根据用户实际要求设定),那么从数据库未调度生产计划中按工件紧迫度从小到大选择N-N′个工件。将工件的交货期减去t0可获得工件的紧迫度值。清空工件窗口,将这N-N′个工件和步骤(2.2)得到的N′个工件纳入工件窗口。
步骤3:对再调度参数评价后得到工件窗口中的工件,根据数据库里的基础数据以及参数评价后得到的工件信息以及机器信息,建立多工艺路线批量调度模型:
(3.1)变量定义
N:工件数,即工件窗口大小;
AMij:工件i第j道工序的加工批量大小,即包含的零件数;
ni:工件i所含工序数;
M:车间内可用机器数;
WTijk:工件i第j道工序在机器k上的单件加工时间,WTijk=0表示工件i第j道工序不能在机器k上加工,i=1,…,N,j=1,…,ni,k=1,…,M;
PRijk:工件i第j道工序在机器k上的批量准备时间,PTijk=0表示工件i第j道工序不能在机器k上加工因此不需要批量准备操作,i=1,…,N,j=1,…,ni,k=1,…,M;
bij:工件i第j道工序的并行机数;
BNijk:工件i第j道工序的第k批任务的批量,BNijk为整数,i=1,…,N,j=1,…,ni,k=1,…,bij;
OMijk:工件i第j道工序的第k批任务所分配到的加工机器,OMijk∈[1,M],i=1,…,N,j=1,…,ni,k=1,…,bij;
SPTijk:工件i第j道工序的第k批任务的开始准备时间,i=1,…,N,j=1,…,ni,k=1,…,bij;
CPTijk:工件i第j道工序的第k批任务的结束准备时间,i=1,…,N,j=1,…,ni,k=1,…,bij;
SWTijk:工件i第j道工序的第k批任务的开始加工时间,i=1,…,N,j=1,…,ni,k=1,…,bij;
CWTijk:工件i第j道工序的第k批任务的结束加工时间,i=1,…,N,j=1,…,ni,k=1,…,bij;
TEi:表示机器i的可用时间,i=1,…,M;
TCij(NM):表示完成工件i第j道工序NM批量任务的加工操作的时间,i=1,…,N,j=1,…,ni。
(3.2)模型建立
为便于模型的建立和算法的求解,且充分发挥工件各道工序并行机的作用以减少等待时间,将工件i在第j道工序划分成bij批,i=1,…,N,j=1,…,ni。本发明所考虑的数学模型如下:
上述式子中的i,j,k的取值在i=1,…,N,j=1,…,ni,k=1,…,bij大前提范围内。式(3)表示排产时若j=1(对应第一道工序),则只需考虑机器约束,而当j>1时还需要考虑批任务的工序约束。允许机器提前进行批量准备操作,因此这里采用先确定批任务的开始加工工时间(式(3))再计算开始准备时间(式(5))的方法,这样使批任务一到达即可进行加工操作,缩短完工时间。当某机器完成当前批任务的加工操作,而下一批任务跟当前批属于同一种工件的同道工序,那么下一批任务不需要在该机器上再进行批量准备操作。式(3)、(5)只对需要准备操作的批任务(根据机器分配以及加工排序结果决定是否需要进行准备操作)适用,而在安排不需要准备操作的批任务时,式(3)中的机器约束应由原来的更改为
需要确定各工件在各道工序划分的批次数以及各子批的批量,为各子批选择加工设备,并确定子批任务的加工顺序。
步骤4:设置差分进化算法控制参数,包括种群规模Np、迭代次数TM和交叉概率CR,采用两级差分进化算法进行调度方案编制,求解批量划分和调度优化问题:
(4.1)设置迭代次数h=1。随机产生Np个个体得到初始种群,每个个体由一条批量划分染色体和一条排序染色体组成:
其中,批量划分染色体包含各工件在各道工序的子批次批量信息,排序染色体包含各子批次的加工排序信息。根据工序的可用并行机数bij,将各工件在每道工序进行批量划分。对工件i的第j道工序随机产生bij个[0,AMij]之间的整数BNijk,使 记为工件i的第j道工序的批量队列。所有工件在每道工序的批量队列组成了第一条染色体,记为chromosome1,长度为 如图3所示,BNijk表示工件i在第j道工序的第k子批次的批量大小。例如,如表1所示批量调度问题,图4为该问题的批量划分染色体示例。
chromosome1上包含了共len个子批次的批量信息,而该len个子批次的加工排序信息则构成了第二条染色体,记为chromosome2,长度也为len。排序染色体将各子批次作为调度问题中一个独立的工件,采用基于子批工序的编码方式。图5为表1所述批量调度问题的排序染色体示例。排序染色体上″ab″表示工件a的第b道工序,根据从左到右″ab″出现的次数来解释批次号。为了满足批任务的工序约束,要求当c>b时,排序染色体上所有的″ab″基因排在″ac″基因之前,也即工件a的第b道工序的所有批任务在该工件第c道工序的批任务之前排产。
表1批量调度问题示例
(4.2)对种群中每个个体进行解码,按式(7)计算其适应度函数值:
其中,
解码时,对排序染色体上的批任务从左到右进行排产:假定chromosome2上某位基因对应的是工件i的第j道工序的第k批,根据该工件前一道工序的所有批任务的排产情况,计算工件i在第j-1道工序完成批量任务的时间(工序约束);然后在满足工序约束和机器约束的前提下,从工件i第j道工序的并行机中选择能最早完成第k批加工任务的机器作为OMijk,安排该工序的批量准备操作和加工操作,允许机器提前进行准备操作。若j=1,那么排产时只需要满足机器约束即可。
(4.3)对当前种群中批量划分染色体进行进化操作,得到Np条新的批量划分染色体:
记chromosome1i为个体i上的批量划分染色体,对当前种群中的批量划分染色体采用基于块变异块交叉操作的差分进化算法,按如下步骤进行一次进化操作:
(4.3.1)设置i=1。
(4.3.2)对当前种群中的chromosome1i,随机产生[1,Np]之间互异且不等于i的自然数d1、d2、d3,Np为种群规模。对chromosome1i进行进化操作:
②、若j=r1,且k=r2,则执行步骤③,否则,执行步骤④。
③、对chromosome1i上工件j的第k道工序的批量队列进行块变异块交叉操作:
其中,BNjkl z表示chromosome1z上工件j的第k道工序的批量队列上第l位基因(对应工件j的第k道工序第l批的批量),z=d1,d2,d3;BN′jkl表示变异新产生的队列上第l位基因。Kjk表示对chromosome1i上工件j的第k道工序的批量队列进行块变异操作时的变异算子。
为了保证产生的BN′jkl符合[0,AMjk]范围约束,Kjk的取值需满足以下两式:
本发明采用随机产生该范围内的数值作为Kjk的取值。由于采用式(8)产生的BN′jkl不能保证是整数,因此需要进行微调,执行步骤④。
④、设置BSM=0,对l从1到bjk,当l<bjk时,执行BN′jkl=[BN′jkl],BSM=BSM+BN′jkl;若l=bjk,执行BN′jkl=AMjk-BSM,[]表示取整。这样就把新产生的队列上所有的BN′jkl都转化为整数。
采用上述进化操作,BN′jkl满足式(2)的约束。选择变异新产生的块区域进入新染色体(记为newchro1i)中,执行步骤⑥。
⑤、随机产生[0,1]之间的随机数r3,r3∈R。若r3≤CR,则转至步骤③;否则,选择chromosome1i上工件j的第k道工序的批量队列进入新染色体newchro1i中,执行步骤⑥。
⑥、若k<nj,执行k=k+1;否则,执行j=j+1。
⑦、若j≤N,返回步骤②;否则,此时新的染色体newchro1i已经是一条完整的批量划分染色体,将newchro1i存入临时种群。
(4.3.3)若i<Np,执行i=i+1,返回步骤(4.3.2)。
(4.4)对当前种群中排序染色体进行进化操作,得到Np条新的排序染色体:
记chromosome2i为个体i上的排序染色体,对当前种群中的所有chromosome2染色体进行两两随机配对,采用块交叉遗传操作在两父代染色体之间进行交叉产生子代染色体存入临时种群。假设两父代排序染色体为chromosome2p和chromosome2q:
(4.4.2)交换两父代染色体中的部分队列块得到两子代染色体,用chromosome2′p和chromosome2′q表示。对于表1所示的调度问题,假设两父代染色体如图6所示,且r1=1,r2=2,那么找到的部分队列块如阴影部分所示。交换两父代染色体中的部分队列块得到两子代染色体,如图7所示。
(4.4.3)对chromosome2′p、chromosome2′q进行修正,在部分队列块中删除多余基因、插入缺失的基因。插入时先查找部分队列块中是否有与待插入基因拥有相同工件号但不同工序号的基因,若有这样的基因且该基因对应的工序号大于(小于)待插入基因的工序号,那么要求插入的位置在该基因之前(后)。修正后得到chromosome2″p、chromosome2″q并将其存入临时种群。对图7中两子代排序染色体进行修正,如图8所示,带下划线的基因表示插入的缺失基因。
(4.5)将步骤(4.3)和(4.4)得到的Np条新的批量划分染色体和Np条新的排序染色体一一对应构成Np个新个体存入临时种群。从当前种群和临时种群共2×Np个个体中采用最优个体保存和轮盘赌选择操作选择Np个个体作为下一代进入当前种群覆盖种群里的旧个体。
(4.6)判断若h<TM,则执行h=h+1,返回步骤4.2;否则,寻找当前种群中的最优解,解码得到最优调度方案。
步骤5:时钟计数器归零,按最优调度方案投入生产。返回步骤1。
Claims (3)
1、一种基于两级差分进化算法的作业车间多工艺路线批量动态再调度方法,其特征在于:所述作业车间批量动态再调度方法包括以下步骤:
1)、采用基于周期和事件驱动的再调度策略,根据实际生产工况,进行再调度参数评价,刷新工件工序信息、加工批量信息和机器信息;利用滚动窗口技术,确定再调度工件窗口;记再调度时间起点为t0,按如下步骤进行再调度参数评价,确定再调度工件窗口:
步骤1.1:根据t0时刻机器生产状况,刷新机器参与再调度的初始可用时间;
步骤1.2:统计已经参与调度的工件的生产情况,去除实际已经完成加工操作的以及t0时刻正在进行加工而不能停止的部分,得到这些工件所包含的剩余工序以及各道工序未完成的加工批量大小;
步骤1.3:根据步骤1.2得到工件数记为N′,若N′<N,其中N为工件窗口大小,那么从数据库未调度生产计划中按工件紧迫度从小到大选择N-N′个工件;将工件的交货期减去t0可获得工件的紧迫度值;清空工件窗口,将这N-N′个工件和步骤1.2得到的N′个工件纳入工件窗口;
2)、对再调度参数评价后得到工件窗口中的工件,根据数据库里的基础数据以及参数评价后得到的工件信息以及机器信息,建立多工艺路线批量调度模型;
3)、采用两级差分进化算法来求解调度模型,解决批量划分和调度优化问题,优化得到各工件在每道工序所划分的批次数以及各子批的批量大小、工件各道工序各子批所分配的加工机器、工件各道工序各子批的开始/结束准备时间和工件各道工序各子批的开始/结束加工时间。
2、如权利要求1所述基于两级差分进化算法的作业车间多工艺路线批量动态再调度方法,其特征在于:在步骤2)中,所述多工艺路线批量调度模型建立过程如下:
2.1)变量定义
N:工件数,即工件窗口大小;
AMij:工件i第j道工序的加工批量大小,即包含的零件数;
ni:工件i所含工序数;
M:车间内可用机器数;
WTijk:工件i第j道工序在机器k上的单件加工时间,WTijk=0表示工件i第j道工序不能在机器k上加工,i=1,…,N,j=1,…,ni,k=1,…,M;
PTijk:工件i第j道工序在机器k上的批量准备时间,PTijk=0表示工件i第j道工序不能在机器k上加工因此不需要批量准备操作,i=1,…,N,j=1,…,ni,k=1,…,M;
bij:工件i第j道工序的并行机数;
BNijk:工件i第j道工序的第k批任务的批量,BNijk为整数,i=1,…,N,j=1,…,ni,k=1,…,bij;
OMijk:工件i第j道工序的第k批任务所分配到的加工机器,OMijk∈[1,M],i=1,…,N,j=1,…,ni,k=1,…,bij;
SPTijk:工件i第j道工序的第k批任务的开始准备时间,i=1,…,N,j=1,…,ni,k=1,…,bij;
CPTijk:工件i第j道工序的第k批任务的结束准备时间,i=1,…,N,j=1,…,ni,k=1,…,bij;
SWTijk:工件i第j道工序的第k批任务的开始加工时间,i=1,…,N,j=1,…,ni,k=1,…,bij;
CWTijk:工件i第j道工序的第k批任务的结束加工时间,i=1,…,N,j=1,…,ni,k=1,…,bij;
TEi:表示机器i的可用时间,i=1,…,M;
TCij(NM):表示完成工件i第j道工序NM批量任务的加工操作的时间,i=1,…,N,j=1,…,ni;
2.2)模型建立
将工件i在第j道工序划分成bij批,i=1,…,N,j=1,…,ni,建立数学模型如下:
CPTijk=SWTijk,
3、如权利要求1或2所述基于两级差分进化算法的作业车间多工艺路线批量动态再调度方法,其特征在于:在步骤3)中,具体包括以下过程:
3.1)编、解码方案
算法采用两级染色体编码方式。根据工序的可用并行机数bij,将各工件在每道工序进行批量划分;对工件i的第j道工序随机产生bij个[0,AMij]之间的整数BNijk,使 记为工件i的第j道工序的批量队列;所有工件在每道工序的批量队列组成了批量划分染色体,记为chromosome1,长度为 BNijk表示工件i在第j道工序的第k子批次的批量大小;
chromosome1上包含了共len个子批次的批量信息,而该len个子批次的加工排序信息则构成了排序染色体,记为chromosome2,长度也为len。排序染色体将各子批次作为调度问题中一个独立的工件,采用基于子批工序的编码方式;
解码时,对排序染色体上的批任务从左到右进行排产:假定chromosome2上某位基因对应的是工件i的第j道工序的第k批,根据该工件前一道工序的所有批任务的排产情况,计算工件i在第j-1道工序完成批量任务的时间;然后在满足工序约束和机器约束的前提下,从工件i第j道工序的并行机中选择能最早完成第k批加工任务的机器作为OMijk,安排该工序的批量准备操作和加工操作,允许机器提前进行准备操作;若j=1,那么排产时只需要满足机器约束即可;
3.2)适应度函数
式(7)表示以优化生产周期为调度目标,目标函数为:
其中,
3.3)批量划分染色体的进化操作
记chromosome1i为个体i上的批量划分染色体,对当前种群中的批量划分染色体采用基于块变异块交叉操作的差分进化算法,按如下步骤进行一次进化操作:
步骤3.3.1:设置i=1;
步骤3.3.2:对当前种群中的chromosome1i,随机产生[1,Np]之间互异且不等于i的自然数d1、d2、d3,Np为种群规模;对chromosome1i进行进化操作:
②、若j=r1,且k=r2,则执行步骤③,否则,执行步骤④;
③、对chromosome1i上工件j的第k道工序的批量队列进行块变异块交叉操作:
其中,BNjkl z表示chromosome1z上工件j的第k道工序的批量队列上第l位基因;对应工件j的第k道工序第l批的批量,z=d1,d2,d3;BN′jkl表示变异新产生的队列上第l位基因;Kjk表示对chromosome1i上工件j的第k道工序的批量队列进行块变异操作时的变异算子;
为了保证产生的BN′jkl符合[0,AMjk]范围约束,Kjk的取值需满足以下两式:
采用随机产生该范围内的数值作为Kjk的取值;
④、设置BSM=0,对l从1到bjk,当l<bjk时,执行BN′jkl=[BN′jkl],BSM=BSM+BN′jkl;若l=bjk,执行BN′jkl=AMjk-BSM,[]表示取整;这样就把新产生的队列上所有的BN′jkl都转化为整数;
采用上述进化操作,BN′jkl满足式(2)的约束。选择变异新产生的块区域进入新染色体中,记为newchro1i,执行步骤⑥;
⑤、随机产生[0,1]之间的随机数r3,r3∈R;若r3≤CR,则转至步骤③;否则,选择chromosome1i上工件j的第k道工序的批量队列进入新染色体newchro1i中,执行步骤⑥;
⑥、若k<ni,执行k=k+1;否则,执行j=j+1;
⑦、若j≤N,返回步骤②;否则,此时新的染色体newchro1i已经是一条完整的批量划分染色体,将newchro1i存入临时种群;
步骤3.3.3:若i<Np,执行i=i+1,返回步骤3.3.2;
3.4)排序染色体的进化操作
记chromosome2i为个体i上的排序染色体,对当前种群中的所有chromosome2染色体进行两两随机配对,采用块交叉遗传操作在两父代染色体之间进行交叉产生子代染色体存入临时种群;假设两父代排序染色休为chromosome2p和chromosomc2q;
步骤4.2:交换两父代染色体中的部分队列块得到两子代染色体,用chromosomc2′p和chromosome2′q表示;
步骤4.3:对chromosome2′p、chromosome2′q进行修正,在部分队列块中删除多余基因、插入缺失的基因;插入时先查找部分队列块中是否有与待插入基因拥有相同工件号但不同工序号的基因,若有这样的基因且该基因对应的工序号大于待插入基因的工序号,那么要求插入的位置在该基因之前;若有这样的基因且该基因对应的工序号小于待插入基因的工序号,那么要求插入的位置在该基因之后;修正后得到chromosome2″p、chromosome2″q并将其存入临时种群;
3.5)选择操作
在对当前种群中的批量划分染色体、排序染色体采用上述进化操作后,临时种群中共有Np个新个体;在当前种群和临时种群共2×Np个个体中采用最优个体保存和轮盘赌选择操作选择Np个个体进入下一代。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2009101008298A CN101609334A (zh) | 2009-07-13 | 2009-07-13 | 基于两级差分进化算法的作业车间多工艺路线批量动态再调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2009101008298A CN101609334A (zh) | 2009-07-13 | 2009-07-13 | 基于两级差分进化算法的作业车间多工艺路线批量动态再调度方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101609334A true CN101609334A (zh) | 2009-12-23 |
Family
ID=41483108
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2009101008298A Pending CN101609334A (zh) | 2009-07-13 | 2009-07-13 | 基于两级差分进化算法的作业车间多工艺路线批量动态再调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101609334A (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101963810A (zh) * | 2010-10-22 | 2011-02-02 | 北京理工大学 | 一种分批流水生产压件数量分析方法 |
CN103105837A (zh) * | 2012-12-21 | 2013-05-15 | 上海交通大学 | 基于可变时间窗实施两级混合优化批处理调度的方法 |
CN103246240A (zh) * | 2012-10-30 | 2013-08-14 | 中国科学院沈阳自动化研究所 | 一种批准备连续单处理的预测控制调度方法 |
CN103324165A (zh) * | 2013-05-27 | 2013-09-25 | 西北工业大学 | 一种考虑生产线稳定性的工艺路线优化方法 |
CN107219824A (zh) * | 2017-02-17 | 2017-09-29 | 山西同方知网数字出版技术有限公司 | 一种基于滚动窗口调度技术的软件机器人集成控制调度程序设计方法 |
CN107292391A (zh) * | 2017-06-20 | 2017-10-24 | 上海交通大学 | 基于de和l‑bfgs‑b混合算法的柔性化车间任务调度优化方法 |
CN108629509A (zh) * | 2018-05-03 | 2018-10-09 | 合肥工业大学 | 高铁车轴用钢平行连铸机生产调度方法及系统 |
CN110825056A (zh) * | 2019-11-26 | 2020-02-21 | 北京工业大学 | 一种具有可变参数连续加工与间歇加工的混合流水车间调度方法 |
CN111325420A (zh) * | 2018-12-13 | 2020-06-23 | 北京理工大学 | 一种车间调度方法、装置及设备 |
CN111610758A (zh) * | 2020-04-23 | 2020-09-01 | 北京交通大学 | 面向机器故障的装配式建筑预制构件生产再调度优化方法 |
CN112308408A (zh) * | 2020-10-30 | 2021-02-02 | 北京卫星环境工程研究所 | 一种多型号航天器并行总装协调生产调度方法 |
CN112631214A (zh) * | 2020-11-27 | 2021-04-09 | 西南交通大学 | 基于改进入侵杂草优化算法的柔性作业车间分批调度方法 |
CN112631224A (zh) * | 2020-12-19 | 2021-04-09 | 北京工业大学 | 一种考虑返工的不确定性批量调度模型建模方法 |
CN115423393A (zh) * | 2022-08-12 | 2022-12-02 | 北京邮电大学 | 一种基于lstm的动态自适应调度周期的订单调度方法及装置 |
-
2009
- 2009-07-13 CN CNA2009101008298A patent/CN101609334A/zh active Pending
Cited By (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101963810A (zh) * | 2010-10-22 | 2011-02-02 | 北京理工大学 | 一种分批流水生产压件数量分析方法 |
CN103246240A (zh) * | 2012-10-30 | 2013-08-14 | 中国科学院沈阳自动化研究所 | 一种批准备连续单处理的预测控制调度方法 |
CN103246240B (zh) * | 2012-10-30 | 2015-09-30 | 中国科学院沈阳自动化研究所 | 一种批准备连续单处理的预测控制调度方法 |
CN103105837A (zh) * | 2012-12-21 | 2013-05-15 | 上海交通大学 | 基于可变时间窗实施两级混合优化批处理调度的方法 |
CN103105837B (zh) * | 2012-12-21 | 2015-04-01 | 上海交通大学 | 基于可变时间窗实施两级混合优化批处理调度的方法 |
CN103324165A (zh) * | 2013-05-27 | 2013-09-25 | 西北工业大学 | 一种考虑生产线稳定性的工艺路线优化方法 |
CN103324165B (zh) * | 2013-05-27 | 2015-05-27 | 西北工业大学 | 一种考虑生产线稳定性的工艺路线优化方法 |
CN107219824B (zh) * | 2017-02-17 | 2020-07-21 | 山西同方知网数字出版技术有限公司 | 基于滚动窗口调度技术的软件机器人集成控制调度方法 |
CN107219824A (zh) * | 2017-02-17 | 2017-09-29 | 山西同方知网数字出版技术有限公司 | 一种基于滚动窗口调度技术的软件机器人集成控制调度程序设计方法 |
CN107292391B (zh) * | 2017-06-20 | 2021-01-08 | 上海交通大学 | 基于de和l-bfgs-b混合算法的柔性化车间任务调度优化方法 |
CN107292391A (zh) * | 2017-06-20 | 2017-10-24 | 上海交通大学 | 基于de和l‑bfgs‑b混合算法的柔性化车间任务调度优化方法 |
CN108629509A (zh) * | 2018-05-03 | 2018-10-09 | 合肥工业大学 | 高铁车轴用钢平行连铸机生产调度方法及系统 |
CN108629509B (zh) * | 2018-05-03 | 2021-10-26 | 合肥工业大学 | 高铁车轴用钢平行连铸机生产调度方法及系统 |
CN111325420A (zh) * | 2018-12-13 | 2020-06-23 | 北京理工大学 | 一种车间调度方法、装置及设备 |
CN111325420B (zh) * | 2018-12-13 | 2022-04-05 | 北京理工大学 | 一种车间调度方法、装置及设备 |
WO2021103891A1 (zh) * | 2019-11-26 | 2021-06-03 | 北京工业大学 | 一种具有可变参数连续加工与间歇加工的混合流水车间调度方法 |
CN110825056A (zh) * | 2019-11-26 | 2020-02-21 | 北京工业大学 | 一种具有可变参数连续加工与间歇加工的混合流水车间调度方法 |
GB2610032A (en) * | 2019-11-26 | 2023-02-22 | Univ Beijing Technology | Method for scheduling hybrid flow shop comprising variable parameter continuous processing and intermittent processing |
CN111610758B (zh) * | 2020-04-23 | 2021-12-28 | 北京交通大学 | 面向机器故障的装配式建筑预制构件生产再调度优化方法 |
CN111610758A (zh) * | 2020-04-23 | 2020-09-01 | 北京交通大学 | 面向机器故障的装配式建筑预制构件生产再调度优化方法 |
CN112308408A (zh) * | 2020-10-30 | 2021-02-02 | 北京卫星环境工程研究所 | 一种多型号航天器并行总装协调生产调度方法 |
CN112308408B (zh) * | 2020-10-30 | 2023-09-19 | 北京卫星环境工程研究所 | 一种多型号航天器并行总装协调生产调度方法 |
CN112631214A (zh) * | 2020-11-27 | 2021-04-09 | 西南交通大学 | 基于改进入侵杂草优化算法的柔性作业车间分批调度方法 |
CN112631214B (zh) * | 2020-11-27 | 2022-03-18 | 西南交通大学 | 基于改进入侵杂草优化算法的柔性作业车间分批调度方法 |
CN112631224A (zh) * | 2020-12-19 | 2021-04-09 | 北京工业大学 | 一种考虑返工的不确定性批量调度模型建模方法 |
CN112631224B (zh) * | 2020-12-19 | 2022-09-30 | 北京工业大学 | 一种考虑返工的不确定性批量调度模型建模方法 |
CN115423393A (zh) * | 2022-08-12 | 2022-12-02 | 北京邮电大学 | 一种基于lstm的动态自适应调度周期的订单调度方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101609334A (zh) | 基于两级差分进化算法的作业车间多工艺路线批量动态再调度方法 | |
CN104808636B (zh) | 柔性流水车间能耗优化调度方法 | |
Greenwood et al. | 1974 | |
Rajan et al. | An evolutionary programming-based tabu search method for solving the unit commitment problem | |
CN104268722B (zh) | 基于多目标进化算法的动态柔性作业车间调度方法 | |
CN112001618B (zh) | 一种工期指派、订单接受与生产调度集成优化方法 | |
CN101833709A (zh) | 半导体生产线生产计划的混合智能优化方法 | |
CN106981888A (zh) | 基于多源互补的风蓄水火电力系统的多目标动态调度方法 | |
CN113379087A (zh) | 一种基于改进遗传算法的生产制造排产优化方法 | |
Gola | Economic aspects of manufacturing systems design | |
CN101706883B (zh) | 数据挖掘方法和装置 | |
CN111966049B (zh) | 一种混合流水车间生产设备调度控制方法 | |
CN109784984A (zh) | 一种生鲜门店智能订货系统 | |
CN101916335A (zh) | 城市需水量时间序列-指数平滑模型预测方法 | |
CN102968057A (zh) | 基于改进元胞机的多品种多工艺多单元制造调度方法 | |
CN113487155B (zh) | 一种用于塑料行业的智能排程系统 | |
CN108279647A (zh) | 一种两阶段装配流水车间调度方法 | |
CN110490446A (zh) | 一种基于改进遗传算法的模块化工艺重组方法 | |
CN111985841B (zh) | 一种基于改进遗传算法的注塑车间调度方法及系统 | |
CN116307008A (zh) | 一种mto和mts混合生产模式下aps排产方法 | |
Vaghefinezhad et al. | A genetic algorithm approach for solving a flexible job shop scheduling problem | |
CN116629533A (zh) | 一种分布式异构阻塞混合流水车间调度方法 | |
CN116090676B (zh) | 一种基于多目标优化的aps排产方法及aps排产系统 | |
CN104794322A (zh) | 基于dnsga-ii的太阳能电池组件有限缓冲区多目标批量调度方法 | |
CN110705844A (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 | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Open date: 20091223 |