CN109872091B - 一种基于蚁群算法的工件调度方法及装置 - Google Patents
一种基于蚁群算法的工件调度方法及装置 Download PDFInfo
- Publication number
- CN109872091B CN109872091B CN201910312839.1A CN201910312839A CN109872091B CN 109872091 B CN109872091 B CN 109872091B CN 201910312839 A CN201910312839 A CN 201910312839A CN 109872091 B CN109872091 B CN 109872091B
- Authority
- CN
- China
- Prior art keywords
- workpiece
- current
- scheduled
- ant
- batch
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 49
- 239000003016 pheromone Substances 0.000 claims abstract description 194
- 239000011159 matrix material Substances 0.000 claims abstract description 182
- 238000012545 processing Methods 0.000 claims abstract description 50
- 241000257303 Hymenoptera Species 0.000 claims abstract description 48
- 238000003754 machining Methods 0.000 claims description 46
- 238000013461 design Methods 0.000 claims description 15
- 230000007704 transition Effects 0.000 claims description 14
- 238000005304 joining Methods 0.000 claims description 8
- 241000764238 Isis Species 0.000 claims description 4
- 238000012546 transfer Methods 0.000 claims description 4
- 238000005457 optimization Methods 0.000 description 15
- 230000008569 process Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 9
- 238000004519 manufacturing process Methods 0.000 description 8
- 230000008901 benefit Effects 0.000 description 4
- 238000009826 distribution Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 239000004927 clay Substances 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 230000015572 biosynthetic process Effects 0.000 description 2
- 239000000919 ceramic Substances 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000003203 everyday effect Effects 0.000 description 2
- 230000002068 genetic effect Effects 0.000 description 2
- 238000012946 outsourcing Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 241000755093 Gaidropsarus vulgaris Species 0.000 description 1
- 238000001354 calcination Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000002994 raw material Substances 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000012163 sequencing technique 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/30—Computing systems specially adapted for manufacturing
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- General Factory Administration (AREA)
Abstract
本发明公开了一种基于蚁群算法的工件调度方法及装置,方法包括:1)、在当前次迭代中,针对对应于待调度工件集合的蚂蚁,创建对应于蚂蚁的工件调度方案;2)、判断当前次迭代对应的迭代次数是否达到最大迭代次数;3)、若是,更新所述非支配解集,得到目标非支配解集,并将所述目标非支配解集中的解作为目标调度方法;4)、若否,将全局更新后的针对完工时间的信息素矩阵作为下一次迭代的第一初始信息素矩阵,将全局更新后的针对拒绝代价的信息素矩阵作为下一次迭代的第二初始信息素矩阵,并返回执行步骤1),直至当前次迭代对应的迭代次数达到最大迭代次数。应用本发明实施例,可以对包含拒绝条件的批处理调度问题进行处理。
Description
技术领域
本发明涉及一种工件调度方法及装置,更具体涉及一种基于蚁群算法的工件调度方法及装置。
背景技术
在日常的生产活动中,批调度问题扮演一个很重要的角色。作为典型的组合优化问题,批调度问题有很广泛的应用背景,比如港口货物装卸、物流运输业及通信领域等。研究批调度问题的灵感来源于半导体芯片制造流程的煅烧阶段,为了保证芯片的使用寿命,要先检验半导体芯片的耐高温性,由于用于高温测试的熔炉数量比较少且高温测试时间比较长,所以制造商放弃了一对一的质量检测方法,将多个工件放入熔炉中,这样既没有放松对于半导体芯片质量的要求,又节省了时间和资源,由此研究者们也正式开启了对于批调度问题的研究。
在之前的批调度问题研究中,一般认为制造商必须接受所有的工作而不考虑拒绝,但因为资源的有限性以及其他条件的约束,在现实的生产中,并不是所有的工件都能被加工的,例如在一个高负荷运作的制造系统中,每天都会有很多订单需要处理,但是公司的人力和机器等资源是有限的,调度程序可能无法平衡所有的工件同时保持可接受的服务质量和合理的库存水平之间的关系,每笔订单又必须在交货日期之前完成,出于利益的考虑,公司会拒绝一些相对利润低的订单,优先加工利润高的订单。这就是考虑拒绝的批调度问题的一个例子。在陶瓷制造业中也有考虑拒绝的情况,首先制造商根据订单到特定供应点购买黏土,但是黏土对于时间、温度和湿度的要求比较高,超过一定的时间黏土就不能再用来做陶器了,所以为了不浪费原料,按时完成订单要求,获得最高的利润率,制造商通常会把一部分订单“外包”给别的陶瓷制造厂,为此也要支付一定的金钱作为“外包费用”,这份“外包费”就称为“拒绝代价”。
但是,现有的蚁群优化算法并不能对包含拒绝条件的批处理调度问题进行处理。
发明内容
本发明所要解决的技术问题在于提供了一种基于蚁群算法的工件调度方法及装置,以对包含拒绝条件的批处理调度问题进行处理。
本发明是通过以下技术方案解决上述技术问题的:
本发明实施例提供了一种基于蚁群算法的工件调度方法,所述方法包括:
1)、在当前次迭代中,针对对应于待调度工件集合的蚂蚁,根据针对完工时间的第一初始信息素矩阵,以及针对拒绝代价的第二初始信息素矩阵,创建对应于所述蚂蚁的工件调度方案,并在各个蚂蚁的工件调度方案都被创建完成后,全局更新对应于完工时间的信息素矩阵以及对应于拒绝代价的信息素矩阵;
2)、判断当前次迭代对应的迭代次数是否达到最大迭代次数;
3)、若是,将当前次迭代得到的非支配解加入到非支配解集中,更新所述非支配解集,得到目标非支配解集,并将所述目标非支配解集中的解作为目标调度方法;
4)、若否,返回执行所述步骤1),直至当前次迭代对应的迭代次数达到最大迭代次数。
可选的,所述步骤1),包括:A:在当前次迭代中,建立当前只蚂蚁,判断所述当前只蚂蚁是否为第一次迭代的第一只蚂蚁;B:若是,将预设的第一信息素矩阵作为当前只蚂蚁的第一初始信息素矩阵;将预设的第二信息素矩阵作为当前只蚂蚁的第二初始信息素矩阵;然后执行步骤D;C:若否,在当前只蚂蚁为除第一次迭代之外的迭代中第一只蚂蚁的情况下,将上一次迭代的全局更新后的针对完工时间的信息素矩阵作为当前只蚂蚁的第一初始信息素矩阵;将上一次迭代的全局更新后的针对拒绝代价的信息素矩阵作为当前只蚂蚁的第二初始信息素矩阵;在当前只蚂蚁为除各次迭代中第一只蚂蚁的情况下,获取当前只蚂蚁的前一只蚂蚁的针对完工时间的局部更新后的信息素矩阵;获取当前只蚂蚁的前一只蚂蚁的针对拒绝代价的局部更新后的信息素矩阵;执行步骤D;D:针对所述当前只蚂蚁,将当前时刻时所有机器中完工时间最小的机器作为当前机器,并为所述当前机器建立空批,并将所述空批作为当前批;E:将未被调度的待调度工件中,工件尺寸不大于所述当前批的容量的,且权重大于第一预设阈值的待调度工件的集合作为首工件集,其中,所述权重为拒绝代价;F:获取所述首工件集中各个待调度工件对应的被选择概率,将被选择概率最大的待调度工件作为所述当前批的首工件调度至所述当前批中;G:判断所述当前批对应的剩余容量是否大于未被调度的待调度工件的最小尺寸;H:若是,获取待调度工件集合中除所述首工件之外的其他待调度工件的转移概率,并将转移概率最大的待调度工件调度至所述当前批中;并返回执行所述判断所述当前批对应的剩余容量是否大于待调度工件的最小尺寸的步骤,直至所述当前批的剩余容量小于未被调度的待调度工件的最小尺寸;I:若否,返回执行所述将当前时刻时所有机器中完工时间最小的机器作为当前机器的步骤,直至待调度工件都被调度;J:针对所述当前只蚂蚁,局部更新对应于完工时间的信息素矩阵,以及局部更新对应于拒绝代价的信息素矩阵;K:判断当前只蚂蚁是否为当前次迭代的最后一只蚂蚁;L:若是,全局更新对应于当前次迭代时对应于完工时间的信息素矩阵以及全局更新对应于拒绝代价的信息素矩阵,将当前只蚂蚁全局更新后的对应于完工时间的信息素矩阵作为下一次迭代中的第一只蚂蚁的第一初始信息素矩阵;将当前只蚂蚁的全局更新后的对应于拒绝代价的信息素矩阵作为下一次迭代中的第一只蚂蚁的第二初始信息素矩阵;并执行步骤2);M:若否,将当前只蚂蚁的下一只蚂蚁作为当前只蚂蚁,并返回执行步骤D,直至当前次迭代中所有蚂蚁都完成了工件调度方案的建立。
可选的,所述第一预设阈值为:未被调度的工件中,工件尺寸不大于所述当前批的容量的工件的权重的平均值。可选的,所述获取所述首工件集中各个待调度工件对应的被选择概率,包括:利用公式,计算待调度工件Jj的被选择期望值,其中,dj为待调度工件Jj的被选择期望值;wj为编号为j的待调度工件Jj的权重;Σ为求和函数;Jx为首工件集中的编号为x的待调度工件;FS为首工件集;wx为编号为x的待调度工件Jx的权重;利用公式,获取所述首工件集中各个待调度工件对应的被选择概率,其中,fpj为首工件集中各个待调度工件对应的被选择概率;dj为待调度工件Jj的被选择期望值;dx为首工件集合中各个待调度工件的被选择期望值。
可选的,所述步骤J,包括:根据当前只蚂蚁的前一只蚂蚁的针对完工时间的局部更新后的信息素矩阵,局部更新当前只蚂蚁的针对完工时间的信息素矩阵,其中,为局部更新后的当前只蚂蚁的针对完工时间的信息素矩阵;ρl为局部信息素矩阵素挥发速率;为当前只蚂蚁的前一只蚂蚁的局部更新后的针对完工时间的信息素矩阵;为预设的第一初始值;
根据当前只蚂蚁的前一只蚂蚁的针对拒绝代价的局部更新后的信息素矩阵,利用公式,局部更新当前只蚂蚁的针对拒绝代价的信息素矩阵,其中,为局部更新后的当前只蚂蚁的针对拒绝代价的信息素矩阵;为当前只蚂蚁的前一只蚂蚁的局部更新后的针对拒绝代价的信息素矩阵;为预设的第二初始值。
可选的,所述全局更新对应于当前次迭代时对应于完工时间的信息素矩阵以及全局更新对应于拒绝代价的信息素矩阵,包括:
为当前次迭代时全局更新后的针对完工时间的信息素矩阵;ρg为全局信息素挥发速率;为当前次迭代中最后一只蚂蚁的局部更新后的针对完工时间的信息素矩阵;σ为非支配解集中的一个解;N为非支配解集;待调度工件Jh与待调度工件Jj在同一个批中时,待调度工件Jh与待调度工件Jj不在同一个批中时,为第一目标值;
可选的,所述获取待调度工件集合中除所述首工件之外的其他待调度工件的转移概率,包括:
利用公式,计算所述当前批中工件的第一启发式信息,其中,为当前批Bb中的待调度工件对应的第一启发式信息;sj为待调度工件集合中除所述首工件之外的其他待调度工件的尺寸;Si为当前机器的容量;sx为已被调度至当前机器的编号为x的待调度工件的尺寸;Jx已被调度至当前机器的编号为x的工件;
利用公式,更新所述当前批中的待调度工件对应的第二启发式信息,其中,为所述当前批Bb中的待调度工件对应的第二启发式信息;wj为待调度工件Jj的权重;wx为已被调度至当前机器的编号为x的待调度工件的权重;
根据所述第一启发式信息和第二启发式信息,利用公式,
获取待调度工件集合中除所述首工件之外的其他待调度工件的转移概率,其中,Pbj为待调度工件集合中除所述首工件之外的其他待调度工件的转移概率;v1为用户针对完工时间的偏好;v2为用户针对权重的偏好,且v1+v2=1;为待调度工件Jj被调度至批Bb中的期望;为待调度工件Jj的被拒绝状态值;α为信息素影响因子;β1为第一启发式信息的影响因子;β2为第二启发式信息的影响因子;Jx为编号为x的待调度工件;Jj为编号为j的待调度工件;为待调度工件Jx被调度至批Bb的平均期望;为待调度工件Jx的被拒绝状态值;为待调度工件Jx加入当前批Bb的第一启发式信息值;为待调度工件Jx加入当前批Bb的第二启发式信息值;为待调度工件集合中除所述首工件之外的、工件尺寸不大于当前批剩余容量的其他待调度工件的集合。
可选的,所述方法还包括:根据加工开始时刻在后的批中的第一待调度工件,与加工开始时刻在前的批中的第二待调度工件之间的权重的差异和尺寸的差异,对第一待调度工件与第二待调度工件进行位置的调换;或者,根据加工开始时刻在后的批中的第一待调度工件,与加工开始时刻在前的批中的第二待调度工件之间的权重的差异,对第一待调度工件与第二待调度工件进行位置的调换。
可选的,所述根据加工开始时刻在后的批中的第一待调度工件,与加工开始时刻在前的批中的第二待调度工件之间的权重的差异和尺寸的差异,对第一待调度工件与第二待调度工件进行位置的调换,包括:在加工开始时刻在后的批中的第一待调度工件与加工开始时刻在前的批中的第二待调度工件的权重相同,第一待调度工件的尺寸小于第二待调度工件的尺寸,且被调度了第二待调度工件的加工开始时刻在后的批的容量不超过对应于该批的机器的容量,被调度了第一待调度工件的加工开始时刻在前的批的容量不超过对应于该批的机器的容量时,将第一待调度工件与第二待调度工件调换位置。
可选的,所述根据加工开始时刻在后的批中的第一待调度工件,与加工开始时刻在前的批中的第二待调度工件之间的权重的差异,对第一待调度工件与第二待调度工件进行位置的调换,包括:在加工开始时刻在后的批中的第一待调度工件权重大于加工开始时刻在前的批中的第二待调度工件的权重,且被调度了第二待调度工件的加工开始时刻在后的批的容量不超过对应于该批的机器的容量,被调度了第一待调度工件的加工开始时刻在前的批的容量不超过对应于该批的机器的容量时,将第一待调度工件与第二待调度工件调换位置。
本发明相比现有技术具有以下优点:
应用本发明实施例,针对完工时间和拒绝代价的信息素矩阵分别进行局部更新和全局更新,创建对应于所述蚂蚁的工件调度方案,相对于现有技术中仅局部更新针对完工时间的信息素矩阵以及全局更新针对完工时间的信息素矩阵,本发明实施例局部更新的信息素矩阵种类更多,进而可以对包含拒绝条件的批处理调度问题进行处理。
附图说明
图1为本发明实施例提供的一种基于蚁群算法的工件调度方法的流程示意图;
图2为本发明实施例中同时针对完工时间以及拒绝代价的优化效果对比图;
图3为本发明实施例中局部优化前的批结构示意图;
图4为本发明实施例中局部优化后的批结构示意图;
图5为本发明实施例提供的一种基于蚁群算法的工件调度装置的结构示意图。
具体实施方式
下面对本发明的实施例作详细说明,本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
本发明实施例提供了一种基于蚁群算法的工件调度方法及装置,下面首先就本发明实施例提供的一种基于蚁群算法的工件调度方法进行介绍。
实施例1
图1为本发明实施例提供的一种基于蚁群算法的工件调度方法的流程示意图,如图1所示,所述方法包括:
S101:在当前次迭代中,针对对应于待调度工件集合的蚂蚁,根据针对完工时间的第一初始信息素矩阵,以及针对拒绝代价的第二初始信息素矩阵,创建对应于所述蚂蚁的工件调度方案,并在各个蚂蚁的工件调度方案都被创建完成后,全局更新对应于完工时间的信息素矩阵以及全局更新后的对应于拒绝代价的信息素矩阵。
可以使用三参数表示法,将本发明实施例所要解决的技术问题表示为:
Pm|p-batch,wj,p,sj,Si|(Cmax,RC),其中,Pm为m台平行机,且加工机器是由平行机组成的;p-batch为批处理符号;wj为编号为j的待调度工件被拒绝加工时对应的拒绝代价,且各个待调度工件的拒绝代价各不相同;p为将待调度工件加工完成所需的加工时间;sj为编号为j的待调度工件的尺寸,且各个待调度工件的尺寸各不相同;Si为加工机器Mi的容量,各个加工机器的容量可以相同可以不同;Cmax为待调度工件都被加工完成后对应的最大完工时间;RC为所有被拒绝加工的待调度工件对应的总拒绝代价。
待调度工件集合J中包含n个待调度工件;在本次调度中,使用机器集合M进行所有的待调度工件的加工,其中,机器集合M中包含m台平行机器。
待调度工件集合J中包含的待调度工件Jj(j=1,2,3,...,n)的加工时间都相同,即pj=p。所有待调度工件的到达时间设为0,即任何一个工件在任何时刻都可以被调度。最大的待调度工件的尺寸不会超过容量最大的加工机器的容量Sm。在实际应用中,一些尺寸比较大的待调度工件可能不能放入小容量机器中进行加工。
每个待调度工件只能被分配在一个加工机器的其中一个批上进行加工,待调度工件被分到批中,然后以批的形式在加工机器上进行加工的。Bki(k=1,2,...,n)为在加工机器Mi上加工的第k批待调度工件;所有的批在一起构成了批的集合B。批Bki的加工时间定义为Pki,等于第k个批中耗时最长的待调度工件的加工时间。在实际应用中,因为工件集合J中各个待调度工件的加工时间均相同,故每个批的加工时间都相同,即Pki=p。批Bki的权值和尺寸分别用BWki和BSki表示,其中,BWki等于批Bki中所有待调度工件的权值之和,即BSki等同于批Bki中所有待调度工件的尺寸之和,即每个批的尺寸不能超过加工此批的机器容量约束,即BSki≤Si,其中,Si为编号为i的加工机器的容量。
第i个加工机器Mi的总完工时刻定义为Ci,是机器Mi上的最后一个批被加工完成时对应的时刻。在实际应用中,一旦一个批被开始加工就不能被中断,其他的待调度工件也不能被加入该批,或者从该批中移除,直至该批中的待调度工件都被加工完成。批Bki的开始加工时刻和完工时刻分别是STki和CTki,其中,STki=CT(k-1)i,CT(k-1)i为加工机器Mi上的第k-1个批,即批Bki的前一个批B(k-1)i的完工时刻;
CTki=STki+p,且CT0i=0,即机器Mi上未加工批时其对应的完工时刻为0时刻。
在实际应用中,可以将从零时刻到完工时刻Cmax的时长作为制造跨度;为了减少制造跨度,可以适当地拒绝一些待调度工件的加工,拒绝加工待调度工件就会产生相应的拒绝代价。
具体的,S101步骤可以包括以下步骤:
A:在当前次迭代中,建立当前只蚂蚁,判断所述当前只蚂蚁是否为第一次迭代中的第一只蚂蚁;若是,执行B步骤;如否执行C步骤。
在第一次迭代开始时,首先建立一只蚂蚁,如果判断该只蚂蚁为第一次迭代中的第一只蚂蚁,执行B步骤。如果当前次迭代为第二次迭代,或者第二次迭代之后的其他次迭代时,判断该次迭代中的蚂蚁不为第一次迭代中的第一只蚂蚁,执行C步骤。
在实际应用中,每一次迭代过程中可以为每一次的迭代构建A只蚂蚁。
B:将预设的第一信息素矩阵作为当前只蚂蚁的第一初始信息素矩阵;将预设的第二信息素矩阵作为当前只蚂蚁的第二初始信息素矩阵;然后执行步骤D。
在实际应用中,预设的第一初始信息素矩阵中各个元素的初始值为0.1,预设的第二初始信息素矩阵中各个元素的初始值为1。
C:在当前只蚂蚁为除第一次迭代之外的迭代中第一只蚂蚁的情况下,将上一次迭代的全局更新后的针对完工时间的信息素矩阵作为当前只蚂蚁的第一初始信息素矩阵;将上一次迭代的全局更新后的针对拒绝代价的信息素矩阵作为当前只蚂蚁的第二初始信息素矩阵;在当前只蚂蚁为除各次迭代中第一只蚂蚁的情况下,获取当前只蚂蚁的前一只蚂蚁的针对完工时间的局部更新后的信息素矩阵;获取当前只蚂蚁的前一只蚂蚁的针对拒绝代价的局部更新后的信息素矩阵;执行步骤D。
D:针对所述当前只蚂蚁,将当前时刻时所有机器中完工时间最小的机器作为当前机器,并为所述当前机器建立空批,并将所述空批作为当前批。
具体的,针对当前只蚂蚁a,从机器集合M中的各个加工机器选择出完工时间最小,即最先加工完已被调度至自身的待调度工件的加工机器Mi。为加工机器Mi建立空批,并将该空批作为当前只蚂蚁a的加工机器Mi的当前批。
在实际应用中,本发明实施例可以同时解决批的形成和批的调度问题。也就是说,在解的构建过程中,根据决策规则,每只蚂蚁选择一个合适的机器并在该机器上创建一个新的空批,然后将待调度工件逐个添加到当前批中。为了减少制造跨度,每次创建新的空批时,都会选择完成时间最小的机器。如果有多台加工机器具有相同的最小完工时间,则选择下标最小的机器。
E:将未被调度的工件中,工件尺寸不大于所述当前批的容量的,且权重大于第一预设阈值的待调度工件的集合作为首工件集,其中,所述权重为拒绝代价。
具体的,可以采用两种不同的策略为当前只蚂蚁a的加工机器Mi的当前批去选择第一个待调度工件。E1:为无约束选择策略,可以将尺寸小于当前批剩余容量的待调度工件加入到工件选择池中,蚂蚁a可以从工件选择池中符合当前机器容量约束的未调度工件集中,随机选择一个待调度工件作为当前批的首工件。E2,但是,发明人发现,在构建解的过程中,选择并加入到当前批中的第一个待调度工件对后续满足选择当前批的剩余容量约束的待调度工件序列以及当前批的后续批的构建有重要的影响。发明人提出了一个基于弱约束的首工件选择策略:
首先,计算工件尺寸小于当前批剩余容量的待调度工件的被拒绝代价的平均值,即权重的平均值然后将工件尺寸小于当前批剩余容量的,且权重大于平均值的待调度工件加入到用于首工件选择的首工件集FS中;然后执行F步骤。
F:获取所述首工件集中各个待调度工件对应的被选择概率,将被选择概率最大的工件作为所述当前批的首工件调度至所述当前批中。
首先,获取所述首工件集中各个待调度工件对应的被选择概率,包括:
利用公式,计算用于首工件选择的工件池FS中的待调度工件Jj的被选择期望值,其中,dj为待调度工件Jj的被选择期望值;wj为待调度工件Jj的权重;Σ为求和函数;Jx为首工件集中的待调度工件;FS为首工件集;wx为待调度工件Jx的权重。
然后,利用公式,获取所述首工件集中各个待调度工件对应的被选择概率,其中,fpj为首工件集中各个待调度工件对应的被选择概率;dj为待调度工件Jj的被选择期望值;dx为首工件集合中各个待调度工件的被选择期望值。
最后,将首工件选择的工件池FS中被选择概率最大的工件作为当前批的第一个工件。
G:判断所述当前批对应的剩余容量是否大于未被调度的待调度工件的最小尺寸;若是,执行H步骤;若否,执行I步骤。
由于当前批已经被加入了首工件,当前批的剩余容量会发生变化。因此,需要判断当前批的剩余容量是否大于未被调度的待调度工件的最小尺寸,以进行当前批的下一个工件的调度,其中,Si为当前机器的容量;sx为已被调度至当前机器的工件Jx的尺寸;Jx已被调度至当前机器的编号为x的工件。
需要强调的是,每一个批的容量等于用于加工该批的加工机器的容量。
H:获取待调度工件集合中除所述首工件之外的其他待调度工件的转移概率,并将转移概率最大的待调度工件调度至所述当前批中;并返回执行所述判断所述当前批对应的剩余容量是否大于待调度工件的最小尺寸的步骤,直至所述当前批的剩余容量小于未被调度的待调度工件的最小尺寸。
为待调度工件Jj被调度至批Bb中的期望;Jh为已调度至批Bb中的待调度工件;为工件Jh和待调度工件Jj被放入当前批Bb中的期望;|Bb|为批Bb中包含的工件的数量;Jj为将要被调度至批Bb中的待调度工件;为待调度工件集合中除已被地调度的工件之外的其他尺寸不大于当前批剩余容量的待调度工件的集合;
具体的,由于当前批还可以再调度一个待调度工件,因此,将除已经被调度至批中的工件之外的其他待调度工件作为一个集合加入到候选工件集合:
然后针对候选列表中的各个待调度工件,利用公式,计算所述当前批中待调度工件的第一启发式信息,其中,为当前批Bb中的待调度工件对应的第一启发式信息;sj为待调度工件集合中除所述首工件之外的待调度工件Jj的尺寸;Si为当前机器的容量;sx为已被调度至当前机器的编号为x的工件的尺寸;
然后,利用公式,更新所述当前批中的待调度工件对应的第二启发式信息,其中,为所述当前批中的待调度工件对应的第二启发式信息;wj为待调度工件Jj的权重;wx为已被调度至当前机器的编号为x的待调度工件的权重;
最后,根据所述第一启发式信息和第二启发式信息,利用公式,
获取待调度工件集合中除所述首工件之外的其他待调度工件的转移概率,其中,Pbj为待调度工件集合中除所述首工件之外的其他待调度工件的转移概率;v1为用户针对完工时间的偏好;v2为用户针对权重的偏好,且v1+v2=1;为待调度工件Jj被调度至批Bb中的期望;为待调度工件Jj的被拒绝状态值;α为信息素影响因子;β1为第一启发式信息的影响因子;β2为第二启发式信息的影响因子;Jx编号为x的待调度工件;Jj为编号为j的待调度工件;为待调度工件Jx被调度至当前批Bb的平均期望;为待调度工件Jx的被拒绝状态值;为待调度工件Jx加入当前批Bb的第一启发式信息值;为待调度工件Jx加入当前批Bb的第二启发式信息值;为待调度工件集合中除所述首工件之外的、工件尺寸不大于当前批剩余容量的其他待调度工件的集合,集合中的所有待调度工件的尺寸均小于当前批Bb的剩余尺寸。
I:返回执行所述将当前时刻时所有机器中完工时间最小的机器作为当前机器的步骤,直至待调度工件都被调度。
由于当前批的剩余容量不能在用于容纳待调度工件,加工机器Mi的容量已经满了。因此,可以将机器集合M中除加工机器Mi以外的其他加工机器作为备选集合,然后针对当前只蚂蚁a,执行步骤D。循环往复,直至调度工件集合J中包含的待调度工件Jj(j=1,2,3,...,n)都被调度至加工机器。
J:针对所述当前只蚂蚁,局部更新对应于完工时间的信息素矩阵,以及局部更新对应于拒绝代价的信息素矩阵。
具体的,为了保持针对完工时间的局部更新后的信息素矩阵与针对拒绝代价的局部更新后的信息素矩阵变化的同步性,提高调度精度,可以根据当前只蚂蚁的前一只蚂蚁的针对完工时间的局部更新后的信息素矩阵,利用公式,局部更新当前只蚂蚁的针对完工时间的信息素矩阵,其中,为局部更新后的当前只蚂蚁的针对完工时间的信息素矩阵;ρl为局部信息素矩阵素挥发速率;为当前只蚂蚁的前一只蚂蚁的局部更新后的针对完工时间的信息素矩阵;为预设的第一初始值;
根据当前只蚂蚁的前一只蚂蚁的针对拒绝代价的局部更新后的信息素矩阵,利用公式,局部更新当前只蚂蚁的针对拒绝代价的信息素矩阵,其中,为局部更新后的当前只蚂蚁的针对拒绝代价的信息素矩阵;为当前只蚂蚁的前一只蚂蚁的局部更新后的针对拒绝代价的信息素矩阵;为预设的第二初始值。
K:判断当前只蚂蚁是否为当前次迭代的最后一只蚂蚁;若是,执行L步骤;若否,执行M步骤。
L:全局更新对应于当前次迭代时对应于完工时间的信息素矩阵以及全局更新对应于拒绝代价的信息素矩阵,将当前只蚂蚁全局更新后的对应于完工时间的信息素矩阵作为下一次迭代中的第一只蚂蚁的第一初始信息素矩阵;将当前只蚂蚁的全局更新后的对应于拒绝代价的信息素矩阵作为下一次迭代中的第一只蚂蚁的第二初始信息素矩阵;并执行步骤S102;
具体的,可以利用公式,全局更新当前次迭代时针对完工时间的信息素矩阵,其中,为全局更新后的当前次迭代时针对完工时间的信息素矩阵;ρg为全局信息素挥发速率;为当前次迭代中最后一只蚂蚁的局部更新后的针对完工时间的信息素矩阵;σ为非支配解集中的一个解;N为非支配解集;待调度工件Jh与待调度工件Jj在同一个批中时,待调度工件Jh与待调度工件Jj不在同一个批中时,为第一目标值;
在实际应用中,为了减少不必要的工作量,以及指导解向着更好地方向发展,我们在信息素矩阵的全局更新时只对非支配解集中的解进行更新。需要强调的是,解是指,每一次迭代中,每一只蚂蚁所对应的待调度工件的调度方案,即:哪一个待调度工件被调度至哪一个批中,而该批是哪一个加工机器的第几个批。
M:将当前只蚂蚁的下一只蚂蚁作为当前只蚂蚁,并返回执行步骤D,直至当前次迭代中所有蚂蚁都完成了工件调度方案的建立。
即在当前次迭代的第一只蚂蚁的调度方案确定后,然后建立第二只蚂蚁的调度方案,依次类推。判断当前只蚂蚁的序号a是否大于或者等于当前次迭代中的最大蚂蚁数量A,若是,执行S102步骤;若否,执行A步骤。
S102:判断当前次迭代对应的迭代次数是否达到最大迭代次数;若是,执行S103;若否,执行S104。
判断当前次的迭代次数,即t是否大于或者等于最大迭代次数T,若是,执行S103步骤;若否,执行S104步骤。
S103:将当前次迭代得到的非支配解加入到非支配解集中,更新所述非支配解集,得到目标非支配解集,并将所述目标非支配解集中的解作为目标调度方法。
示例性的,本发明实施例设计了20个算例,然后每个算例执行10次,每个算例执行一次的过程中均执行200次迭代,每次迭代中均生成20只蚂蚁。
如图3和图4所示,将0-10时刻对应的批作为第一级批,10-20时刻对应的批作为第二级批,以此类推。可以理解的是,最后一级的批拒绝代价较小,因此,可以从最后一级批开始拒绝,每拒绝一级批,该只蚂蚁可以生成一个新的解,直至所有级的批都被拒绝,也就是说,每一只蚂蚁都具有n+1个解,其中,n为该只蚂蚁的批的级数。
在实际应用中,可以在第一只蚂蚁的n+1个解都被构建完成后,将第一只蚂蚁的n+1个解加入到非支配解集中,然后建立第二只蚂蚁,然后将第二只蚂蚁的n+1个解加入到非支配解集中,进而更新非支配解集,以去除非支配解集中的被支配解。在实际应用中,每只蚂蚁的解的数量可以相同,也可以不同,本发明实施例在此并不对其作出限定。非支配解集的更新过程如下所示:
例如,在非支配解的集合中,以二维的数形式表征该解的完工时间以及拒绝代价(100,120),其中,100为该解对应的完工时间,120为该解对应的拒绝代价,例如,
解1的完工时间以及拒绝代价为(100,120);解2的完工时间以及拒绝代价为(110,120);解3的完工时间以及拒绝代价为(90,140);解4的完工时间以及拒绝代价为(100,140);解5的完工时间以及拒绝代价为(110,140);在完工时间相等的情况下,拒绝代价较大的为拒绝代价较小的解所支配,解1支配解4;在拒绝代价相等的情况下,完工时间较短的解支配完工时间较长的解,如,解1支配解2。完工时间以及拒绝代价均小的解支配完工时间及拒绝代价均高的解,如解1支配解5。另外解1与解3之间无法进行优劣比较,因此,解1和解3互不支配。
在更新完成后,将第三只蚂蚁的n+1个解加入到非支配解集中,进而更新非支配解集,以去除非支配解集中的被支配解;以此类推。
为了充分说明本发明实施例的技术效果,以实验结果为依据来评价各个算法的性能。图2为本发明实施例中同时针对完工时间以及拒绝代价的优化效果对比图;如图2所示,图2是150个工件的第一个算例在3台较小容量机器2台较大容量机器上加工得到的五种算法中解的分布情况。五个算法分别是:FPACO(First-job-selection Pareto based AntColony Algorithm,考虑首工件的基于帕累托的蚁群优化算法);Jia等人提出的PACO2(Pareto based Ant Colony Algorithm2,基于帕累托的蚁群优化算法2);PACO(Paretobased Ant Colony Algorithm,基于帕累托的蚁群优化算法);Bandyopadhyay和Bhattacharya提出的RNSGA(Reject Non-dominted Sorting Genetic Algorithm,考虑拒绝的带精英策略的非支配排序遗传算法);Zitzler等人提出的RSPEA(Reject StrengthPareto Evolutionary Algorithm,考虑拒绝的加强帕累托进化算法)其中,FPACO算法为本发明实施例提供的算法。
表1为本发明实施例进行的实验参数列表,如表1所示,表1
根据预实验的结果和其他文献关于参数设置的建议,将一些参数的值设置为:
A=20,Imax=200,ρl=0.5,ρg=0.5,其中,
A为蚂蚁数量;Imax为最大迭代次数;ρl=0.5为局部信息素挥发速率;ρg为全局信息素挥发速率。
为了衡量这五种多目标优化算法的性能,分别使用覆盖率、超体积、解空间和运行时间这四个评价指标来判断各个算法性能优劣。表2为各个算法的覆盖率结果对比表,如表2所示,
表2
如表2所示,FPACO为本发明实施例的技术方案,对于每一组情况,比如M1N1,我们生成20个算例,每个算例运行十次得到平均性能。将每个算例运行十次得到的结果组成一个非支配解集,就是所需的帕累托解集。表中第一列“算例组号”表示的是不同实验因素取值的组合,与表1中实验因素不同取值范围有对应关系,以表2中第一个组号为例,M1N1表示待调度工件数为50,有3个机器容量为2个机器容量为的20个随机算例。表2中的第2列到9列的数值对应的是每组情况中20个随机算例的平均覆盖率指标,最后一行中的每个数字是对应列的结果的平均值,即所有实例组的结果的平均值。覆盖率C的值越大就代表解的质量越好,该多目标优化算法的性能越好。每组的最佳平均结果即每一行中最大的值都用粗体标注。
从表2中可以看出,在所有算例上本发明实施例算法FPACO的性能都明显优于其他对比算法,即PACO2,PACO,RNSGA,RSPEA在每个实例组中得到的解都被FPACO得到的解支配。此外,随着待调度工件数量的增加,FPACO相对于其他四种算法的优势也越来越明显。因此,就覆盖率这个指标来说,本发明实施例算法FPACO是五种算法里最好的。
表3为各个算法的超体指标,如表3所示,表3
表3给出的是五种算法在每组算例上的超体积指标。表中第一列定义如表2,与之前类似,表3中每一行的数据显示的是每个算例组中20个算例的平均运行结果。设置为粗体的就是当前组算例的最优结果。算法得到的H值越大,则表明该算法得到的解越好。表中数据显示,在大多数算例中,本发明实施例算法FPACO得到的平均超体积值H都比其他四种算法大,也就意味着,FPACO得到的解比其他算法更接近于帕累托边界。
在算例组M4N2-M4N4中,算法PACO得到的H值比FPACO大,这是因为一旦大容量机器和小容量机器数量相同,而小尺寸待调度工件的数量多于大尺寸待调度工件数量时,在本发明实施例算法FPACO中小尺寸待调度工件可以在大容量机器上进行加工,而在PACO中则不允许如此操作,在PACO中,小尺寸待调度工件只能在小容量机器上进行加工,这导致小容量机器上最大的批的级数比本发明实施例算法FPACO上的大。因此,在批的级数更大的情况下,找到的解数量更多,又因为解的数量对于超体积指标有影响,所以算法PACO得到的超体积值比FPACO大。例如,在M4N4算例组中,PACO平均比FPACO多找到8个解。但是,从表2可以看出本发明实施例算法FPACO的解的质量要优于PACO。另外,在算例组M2N1-M2N4中,RNSGA和RSPEA的超体积值H明显小于FPACO。这是因为RNSGA和RSPEA的解分成两个步骤生成。有些工作在第一个阶段就被随机拒绝了,所以在第二阶段调度工件之前就已经确定拒绝代价了,这就会导致RNSGA和RSPEA解的多样性和超体积值减少。例如,在算例组M2N4中,FPACO比RNSGA和RSPEA平均多找到10个解方案。
表4为各个算法的解空间指标的对别结果,如表4所示,
表4
解空间指标SPC的结果如表4所示,其表示形式与表2相同。同样,每一行中的数值是每组20个实例的平均值。将每组算例的最优结果都用粗体进行了标注。SPC值越大,算法得到的解分布越好。可以看出,在每个实例组上,FPACO的SPC值都比PACO2、PACO、RNSGA和RSPEA的大,说明本发明实施例提供的FPACO算法的在解空间指标上优于其他算法。也就是说,FPACO得到的解在帕累托边界上比其他解分布更均匀。表5为各个算法的运行时间指标的汇总表,如表5所示,
表5
表5给出的是五种算法的平均运行时间。取每个算例单独运行十次需要的平均时间作为该算例的运行时间,再将每个算例组中的20个算例的平均运行时间做为该算例组的运行时间,也就是表中显示的每行数据。可以看出,所有算法的运行时间都与作业数成正比。明显的,从表中可以看到,FPACO相对于其他算法在覆盖率结果、超体指标、解空间指标、时间指标上明显优于其他算法。而且,随着待调度工件数量的增加,在运行时间这个指标上,FPACO相对于其他三种算法的优势也越来越明显。
为了更直观地比较五种算法的求解质量,我们在图2中画出了算法中一些实例的解的分布。如图2所示,其中x轴和y轴分别表示Cmax和RC的值。图2为在待调度工件数量为150个,大容量加工机器数量为3个,小容量加工机器的数量为2个,1号算例的各个算法的对比结果示意图;从图2可以看出,本发明实施例明显优于其他算法。
实验结果表明FPACO算法明显优于其他四种对比算法,可以在合理的时间范围内得到令人满意的Pareto解集,从几个算例的解的分布图也可以看出来,FPACO得到的解更接近Pareto前沿。
S104:将所述全局更新后的针对完工时间的信息素矩阵作为下一次迭代的第一只蚂蚁的第一初始信息素矩阵,将所述全局更新后的针对拒绝代价的信息素矩阵作为下一次迭代的第一只蚂蚁的第二初始信息素矩阵,将当前次迭代的下一次迭代作为当前次迭代,并返回执行所述步骤S101,直至当前次迭代对应的迭代次数达到最大迭代次数。
在本发明实施例的一种应用场景中,制造商会适当地拒绝一些待调度工件的加工以期获得更高的利益,本发明实施例同时完成批的形成和机器对批的调度。一般情况下,在每一次的迭代过程中,首先每一只蚂蚁根据一定的规则将待调度工件以批的形式放在每一台机器设备上进行加工,直至所有待调度工件被调度完毕;依次让所有蚂蚁做相同的操作。然后将当前迭代对应的全局最优解作为下一次迭代时信息素矩阵更新的依据,进而进行下一次迭代,直至最后一次迭代得到全局最优解。全局最优解是第一次迭代至当前次迭代过程中产生的最优解。
应用本发明图1所示实施例,对针对完工时间和拒绝代价的信息素矩阵分别进行局部更新和全局更新,创建对应于所述蚂蚁的工件调度方案,相对于现有技术中仅局部更新针对完工时间的信息素矩阵以及全局更新针对完工时间的信息素矩阵,本发明实施例局部更新的信息素矩阵种类更多,进而可以对包含拒绝条件的批处理调度问题进行处理。
实施例2
根据权利要求1所述的一种基于蚁群算法的工件调度方法,其特征在于,所述方法还包括:
根据加工开始时刻在后的批中的第一待调度工件,与加工开始时刻在前的批中的第二待调度工件之间的权重的差异和尺寸的差异,对第一待调度工件与第二待调度工件进行位置的调换。
具体的,可以在加工开始时刻在后的批中的第一待调度工件与加工开始时刻在前的批中的第二待调度工件的权重相同,第一待调度工件的尺寸小于第二待调度工件的尺寸,且被调度了第二待调度工件的加工开始时刻在后的批的容量不超过对应于该批的机器的容量,被调度了第一待调度工件的加工开始时刻在前的批的容量不超过对应于该批的机器的容量时,将第一待调度工件与第二待调度工件调换位置。
当一只蚂蚁将所有工件都分配到各个加工机器上之后,就代表这个解就完成了。然而,由于问题的复杂性,很难对整个求解空间进行详尽的探索。因此,为了构建好的解,本发明实施例采用基于交换的局部优化策略来提高求解质量。在引入局部优化之前,我们给出如下定义:定义1:对于所研究问题的调度,同一台机器上批的序列号称为批的级。具体来说,每台机器上的第一个批称为第一级,第二个批称为第二级,以此类推。定义2:机器上的最后一个批的级别定义为该机器上的所有批之间的最大序列号。定义3:对于一个解,所有批的集合的最后一级定义为所有机器上的最后一级批之间的最大值。如图3所示,批B1、批B2、批B3为解的第一级,类似的,批B4、批B5、批B6为解的第二级,批B7、批B8为解的第三级。
对于一个解来说,工件的拒绝通常是从最后一级批开始直到第一级批。因此,在满足批的容量约束的条件下,如果两个待调度工件具有相同的权重,级数大的批中的工件尺寸比级数小的批中工件的尺寸小,将两者进行交换。原因是级数小的批的剩余容量扩大,那么更多的待调度工件就可以转移到级数小的批中了。
表6
表7为表6中的批B1以及批B5中包含的待调度工件的列表,如表7所示,第一行代表的是待调度工件序号,第二行代表对应的待调度工件权重,第三行代表待调度工件尺寸。批B1中包含待调度工件J1、J3;批B5中包含待调度工件J7、J9。
表7
如果待调度工件的加工时间是10。图3为本发明实施例中局部优化前的批结构示意图;如图3所示,解σ0中有四个拒绝位置,对应的目标值分别为(0,107),(10,62),(20,17),(30,0)。因为待调度工件J9与J1的尺寸相同,但J9的权重是大于J1的,交换J9和J1的位置。那就得到一个新的解σ1。在调整之后,解σ1的目标值是(0,107),(10,57),(20,17),(30,0)。与解σ0的目标值相比,从(10,62)变至(10,57),在Cmax值不变的情况下,RC的值从62减至57。
拒绝0级,就是全加工,不拒绝,共3级批,每个批的加工时间都是10,那全加工的解为(30,0),从后往前,拒绝一级,剩余两级,完工时间是20,拒绝的是B7、B8,B7、B8权重分别是9,8,故解是(20,17),再拒接一级,则批B4、B5、B6、B7、B8都被拒绝,解是(10,62)以此类推。
图4为本发明实施例中局部优化后的批结构示意图,交换J9和J1的位置后,得到图4所示示意图。应用本发明上述实施例,可以降低解对应的拒绝代价。
实施例3
根据加工开始时刻在后的批中的第一待调度工件,与加工开始时刻在前的批中的第二待调度工件之间的权重的差异,对第一待调度工件与第二待调度工件进行位置的调换。
具体的,可以在加工开始时刻在后的批中的第一待调度工件权重大于加工开始时刻在前的批中的第二待调度工件的权重,且被调度了第二待调度工件的加工开始时刻在后的批的容量不超过对应于该批的机器的容量,被调度了第一待调度工件的加工开始时刻在前的批的容量不超过对应于该批的机器的容量时,将第一待调度工件与第二待调度工件调换位置。
在本发明实施例中,与实施例2的区别仅在于调度方法的区别,其他的如,级数的定义、批中所包含的待调度工件等均与实施例2中相同,本发明实施例在此不再对其进行赘述。应用本发明上述实施例,可以降低解对应的拒绝代价。
实施例4
与本发明图1所示实施例相对应,本发明实施例还提供了一种基于蚁群算法的工件调度装置。图5为本发明实施例提供的一种基于蚁群算法的工件调度装置的结构示意图,如图5所示,所述装置包括:
更新模块601,用于在当前次迭代中,针对对应于待调度工件集合的蚂蚁,根据针对完工时间的第一初始信息素矩阵,以及针对拒绝代价的第二初始信息素矩阵,创建对应于所述蚂蚁的工件调度方案,并在各个蚂蚁的工件调度方案都被创建完成后,更新对应于当前次迭代时对应于完工时间的全局更新后的信息素矩阵以及全局更新后的对应于拒绝代价的信息素矩阵;
判断模块602,用于判断当前次迭代对应的迭代次数是否达到最大迭代次数;
获取模块603,用于在所述判断模块的判断结果为是的情况下,将当前次迭代得到的非支配解加入到非支配解集中,更新所述非支配解集,得到目标非支配解集,并将所述目标非支配解集中的解作为目标调度方法;
返回模块604,用于在所述判断模块的判断结果为否的情况下,将所述全局更新后的针对完工时间的信息素矩阵作为下一次迭代的第一只蚂蚁的第一初始信息素矩阵,将所述全局更新后的针对拒绝代价的信息素矩阵作为下一次迭代的第一只蚂蚁的第二初始信息素矩阵,将当前次迭代的下一次迭代作为当前次迭代,并触发所述更新模块,直至当前次迭代对应的迭代次数达到最大迭代次数。
应用本发明图5所示实施例,对针对完工时间和拒绝代价的信息素矩阵分别进行局部更新和全局更新,创建对应于所述蚂蚁的工件调度方案,相对于现有技术中仅局部更新针对完工时间的信息素矩阵以及全局更新针对完工时间的信息素矩阵,本发明实施例局部更新的信息素矩阵种类更多,进而可以对包含拒绝条件的批处理调度问题进行处理。
在本发明实施例的一种具体实施方式中,所述更新模块601,用于:
A:在当前次迭代中,建立当前只蚂蚁,判断所述当前只蚂蚁是否为第一次迭代中的第一只蚂蚁;
B:若是,将预设的第一信息素矩阵作为当前只蚂蚁的第一初始信息素矩阵;将预设的第二信息素矩阵作为当前只蚂蚁的第二初始信息素矩阵;然后执行步骤D;
C:若否,在当前只蚂蚁为除第一次迭代之外的迭代中第一只蚂蚁的情况下,将上一次迭代的全局更新后的针对完工时间的信息素矩阵作为当前只蚂蚁的第一初始信息素矩阵;将上一次迭代的全局更新后的针对拒绝代价的信息素矩阵作为当前只蚂蚁的第二初始信息素矩阵;在当前只蚂蚁为除各次迭代中第一只蚂蚁的情况下,获取当前只蚂蚁的前一只蚂蚁的针对完工时间的局部更新后的信息素矩阵;获取当前只蚂蚁的前一只蚂蚁的针对拒绝代价的局部更新后的信息素矩阵;执行步骤D;
D:针对所述当前只蚂蚁,将当前时刻时所有机器中完工时间最小的机器作为当前机器,并为所述当前机器建立空批,并将所述空批作为当前批;
E:将未被调度的工件中,工件尺寸不大于所述当前批的容量的,且权重大于第一预设阈值的待调度工件的集合作为首工件集,其中,所述权重为拒绝代价;
F:获取所述首工件集中各个待调度工件对应的被选择概率,将被选择概率最大的工件作为所述当前批的首工件调度至所述当前批中;
G:判断所述当前批对应的剩余容量是否大于未被调度的待调度工件的最小尺寸;
H:若是,获取待调度工件集合中除所述首工件之外的其他待调度工件的转移概率,并将转移概率最大的待调度工件调度至所述当前批中;并返回执行所述判断所述当前批对应的剩余容量是否大于待调度工件的最小尺寸的步骤,直至所述当前批的剩余容量小于未被调度的待调度工件的最小尺寸;
I:若否,返回执行所述将当前时刻时所有机器中完工时间最小的机器作为当前机器的步骤,直至待调度工件都被调度;
J:针对所述当前只蚂蚁,局部更新对应于完工时间的信息素矩阵,以及局部更新对应于拒绝代价的信息素矩阵;
K:判断当前只蚂蚁是否为当前次迭代的最后一只蚂蚁;
L:若是,全局更新对应于当前次迭代时对应于完工时间的信息素矩阵以及全局更新对应于拒绝代价的信息素矩阵,将当前只蚂蚁全局更新后的对应于完工时间的信息素矩阵作为下一次迭代中的第一只蚂蚁的第一初始信息素矩阵;将当前只蚂蚁的全局更新后的对应于拒绝代价的信息素矩阵作为下一次迭代中的第一只蚂蚁的第二初始信息素矩阵;并触发判断模块;
M:若否,将当前只蚂蚁的下一只蚂蚁作为当前只蚂蚁,并返回执行步骤D,直至当前次迭代中所有蚂蚁都完成了工件调度方案的建立。
在本发明实施例的一种具体实施方式中,所述第一预设阈值为:未被调度的工件中,工件尺寸不大于所述当前批的容量的工件的权重的平均值。
在本发明实施例的一种具体实施方式中,所述更新模块601,用于:利用公式,计算待调度工件Jj的被选择期望值,其中,dj为待调度工件Jj的被选择期望值;wj为编号为j的待调度工件Jj的权重;Σ为求和函数;Jx为首工件集中的编号为x的待调度工件;FS为首工件集;wx为编号为x的待调度工件Jx的权重;
利用公式,获取所述首工件集中各个待调度工件对应的被选择概率,其中,fpj为首工件集中各个待调度工件对应的被选择概率;dj为待调度工件Jj的被选择期望值;dx为首工件集合中各个待调度工件的被选择期望值。
在本发明实施例的一种具体实施方式中,所述更新模块601,用于:
在本发明实施例的一种具体实施方式中,所述更新模块601,用于:利用公式,
全局更新当前次迭代时针对完工时间的信息素矩阵,其中,为全局更新后的当前次迭代时针对完工时间的信息素矩阵;ρg为全局信息素挥发速率;为当前次迭代中最后一只蚂蚁的针对完工时间的局部更新后的信息素矩阵;σ为当前只蚂蚁对应的解的编号;N为所有蚂蚁对应的解的集合;待调度工件Jh与待调度工件Jj在同一个批中时,待调度工件Jh与待调度工件Jj不在同一个批中时,为第一目标值;
在本发明实施例的一种具体实施方式中,所述更新模块601,用于:利用公式,计算所述当前批中的待调度工件的第一启发式信息,其中,为当前批Bb中的待调度工件对应的第一启发式信息;sj为待调度工件集合中除所述首工件之外的待调度工件Jj的尺寸;Si为当前机器的容量;sx为已被调度至当前机器的编号为x的待调度工件的尺寸;Jx已被调度至当前机器的编号为x的待调度工件;
根据所述第一启发式信息和第二启发式信息,利用公式,
获取待调度工件集合中除所述首工件之外的其他待调度工件的转移概率,其中,Pbj为待调度工件集合中除所述首工件之外的其他待调度工件的转移概率;v1为用户针对完工时间的偏好;v2为用户针对权重的偏好,且v1+v2=1;为待调度工件Jj被调度至批Bb中的期望;为待调度工件Jj的被拒绝状态值;α为信息素影响因子;β1为第一启发式信息的影响因子;β2为第二启发式信息的影响因子;Jx为编号为x的待调度工件;Jj为编号为j的待调度工件;为待调度工件Jx被调度至批Bb的平均期望;为待调度工件Jx的被拒绝状态值;为待调度工件Jx加入当前批Bb的第一启发式信息值;为待调度工件Jx加入当前批Bb的第二启发式信息值;为待调度工件集合中除所述首工件之外的、工件尺寸不大于当前批剩余容量的其他待调度工件的集合。
在本发明实施例的一种具体实施方式中,所述装置还包括:调换模块,用于:
根据加工开始时刻在后的批中的第一待调度工件,与加工开始时刻在前的批中的第二待调度工件之间的权重的差异和尺寸的差异,对第一待调度工件与第二待调度工件进行位置的调换;或者,根据加工开始时刻在后的批中的第一待调度工件,与加工开始时刻在前的批中的第二待调度工件之间的权重的差异,对第一待调度工件与第二待调度工件进行位置的调换。
应用本发明上述实施例,可以降低解对应的拒绝代价。
在本发明实施例的一种具体实施方式中,所述调换模块,用于:在加工开始时刻在后的批中的第一待调度工件与加工开始时刻在前的批中的第二待调度工件的权重相同,第一待调度工件的尺寸小于第二待调度工件的尺寸,且被调度了第二待调度工件的加工开始时刻在后的批的容量不超过对应于该批的机器的容量,被调度了第一待调度工件的加工开始时刻在前的批的容量不超过对应于该批的机器的容量时,将第一待调度工件与第二待调度工件调换位置。
在本发明实施例的一种具体实施方式中,所述调换模块,用于:在加工开始时刻在后的批中的第一待调度工件权重大于加工开始时刻在前的批中的第二待调度工件的权重,且被调度了第二待调度工件的加工开始时刻在后的批的容量不超过对应于该批的机器的容量,被调度了第一待调度工件的加工开始时刻在前的批的容量不超过对应于该批的机器的容量时,将第一待调度工件与第二待调度工件调换位置。应用本发明上述实施例,可以降低解对应的拒绝代价。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种基于蚁群算法的工件调度方法,其特征在于,所述方法包括:
1)、在当前次迭代中,针对对应于待调度工件集合的蚂蚁,根据针对完工时间的第一初始信息素矩阵,以及针对拒绝代价的第二初始信息素矩阵,创建对应于所述蚂蚁的工件调度方案,并在各个蚂蚁的工件调度方案都被创建完成后,全局更新对应于完工时间的信息素矩阵以及对应于拒绝代价的信息素矩阵;
2)、判断当前次迭代对应的迭代次数是否达到最大迭代次数;
3)、若是,将当前次迭代得到的非支配解加入到非支配解集中,更新所述非支配解集,得到目标非支配解集,并将所述目标非支配解集中的解作为目标调度方法;
4)、若否,将全局更新后的针对完工时间的信息素矩阵作为下一次迭代的第一只蚂蚁的第一初始信息素矩阵,将全局更新后的针对拒绝代价的信息素矩阵作为下一次迭代的第一只蚂蚁的第二初始信息素矩阵,将当前次迭代的下一次迭代作为当前次迭代,并返回执行所述步骤1),直至当前次迭代对应的迭代次数达到最大迭代次数;
其中,所述步骤1),包括:
A:在当前次迭代中,建立当前只蚂蚁,判断所述当前只蚂蚁是否为第一次迭代的第一只蚂蚁;
B:若是,将预设的第一信息素矩阵作为当前只蚂蚁的第一初始信息素矩阵;将预设的第二信息素矩阵作为当前只蚂蚁的第二初始信息素矩阵;然后执行步骤D;
C:若否,在当前只蚂蚁为除第一次迭代之外的迭代中第一只蚂蚁的情况下,将上一次迭代的全局更新后的针对完工时间的信息素矩阵作为当前只蚂蚁的第一初始信息素矩阵;将上一次迭代的全局更新后的针对拒绝代价的信息素矩阵作为当前只蚂蚁的第二初始信息素矩阵;在当前只蚂蚁为除各次迭代中第一只蚂蚁的情况下,获取当前只蚂蚁的前一只蚂蚁的针对完工时间的局部更新后的信息素矩阵;获取当前只蚂蚁的前一只蚂蚁的针对拒绝代价的局部更新后的信息素矩阵;执行步骤D;
D:针对所述当前只蚂蚁,将当前时刻时所有机器中完工时间最小的机器作为当前机器,并为所述当前机器建立空批,并将所述空批作为当前批;
E:将未被调度的待调度工件中,工件尺寸不大于所述当前批的容量的,且权重大于第一预设阈值的待调度工件的集合作为首工件集,其中,所述权重为拒绝代价;
F:获取所述首工件集中各个待调度工件对应的被选择概率,将被选择概率最大的待调度工件作为所述当前批的首工件调度至所述当前批中;
G:判断所述当前批对应的剩余容量是否大于未被调度的待调度工件的最小尺寸;
H:若是,获取待调度工件集合中除所述首工件之外的其他待调度工件的转移概率,并将转移概率最大的待调度工件调度至所述当前批中;并返回执行所述判断所述当前批对应的剩余容量是否大于待调度工件的最小尺寸的步骤,直至所述当前批的剩余容量小于未被调度的待调度工件的最小尺寸;
I:若否,返回执行所述将当前时刻时所有机器中完工时间最小的机器作为当前机器的步骤,直至待调度工件都被调度;
J:针对所述当前只蚂蚁,局部更新对应于完工时间的信息素矩阵,以及局部更新对应于拒绝代价的信息素矩阵;
K:判断当前只蚂蚁是否为当前次迭代的最后一只蚂蚁;
L:若是,全局更新对应于当前次迭代时对应于完工时间的信息素矩阵以及全局更新对应于拒绝代价的信息素矩阵,将当前只蚂蚁全局更新后的对应于完工时间的信息素矩阵作为下一次迭代中的第一只蚂蚁的第一初始信息素矩阵;将当前只蚂蚁的全局更新后的对应于拒绝代价的信息素矩阵作为下一次迭代中的第一只蚂蚁的第二初始信息素矩阵;并执行步骤2);
M:若否,将当前只蚂蚁的下一只蚂蚁作为当前只蚂蚁,并返回执行步骤D,直至当前次迭代中所有蚂蚁都完成了工件调度方案的建立。
2.根据权利要求1所述的一种基于蚁群算法的工件调度方法,其特征在于,所述第一预设阈值为:
未被调度的工件中,工件尺寸不大于所述当前批的容量的待调度工件的权重的平均值。
4.根据权利要求1所述的一种基于蚁群算法的工件调度方法,其特征在于,所述步骤J,包括:
5.根据权利要求1所述的一种基于蚁群算法的工件调度方法,其特征在于,所述全局更新对应于当前次迭代时对应于完工时间的信息素矩阵以及全局更新对应于拒绝代价的信息素矩阵,包括:
为当前次迭代时全局更新后的针对完工时间的信息素矩阵;ρg为全局信息素挥发速率;为当前次迭代中最后一只蚂蚁的局部更新后的针对完工时间的信息素矩阵;σ为非支配解集中的一个解;N为非支配解集;待调度工件Jh与待调度工件Jj在同一个批中时,待调度工件Jh与待调度工件Jj不在同一个批中时, 为第一目标值;
6.根据权利要求1所述的一种基于蚁群算法的工件调度方法,其特征在于,所述获取待调度工件集合中除所述首工件之外的其他待调度工件的转移概率,包括:
为当前批Bb中的待调度工件对应的第一启发式信息;sj为待调度工件集合中除所述首工件之外的其他待调度工件的尺寸;Si为当前机器的容量;sx为已被调度至当前机器的待调度工件中编号为x的待调度工件的尺寸;Jx已被调度至当前机器的编号为x的待调度工件;
根据所述第一启发式信息和第二启发式信息,利用公式,
Pbj为待调度工件集合中除所述首工件之外的其他待调度工件的转移概率;v1为用户针对完工时间的偏好;v2为用户针对权重的偏好,且v1+v2=1;为待调度工件Jj被调度至批Bb中的期望;为待调度工件Jj的被拒绝状态值;α为信息素影响因子;β1为第一启发式信息的影响因子;β2为第二启发式信息的影响因子;Jx为编号为x的待调度工件;Jj为编号为j的待调度工件;为待调度工件Jx被调度至批Bb的平均期望;为待调度工件Jx的被拒绝状态值;为待调度工件Jx加入当前批Bb的第一启发式信息值;为待调度工件Jx加入当前批Bb的第二启发式信息值;为待调度工件集合中除所述首工件之外的、工件尺寸不大于当前批剩余容量的其他待调度工件的集合。
7.根据权利要求1所述的一种基于蚁群算法的工件调度方法,其特征在于,所述方法还包括:
根据加工开始时刻在后的批中的第一待调度工件,与加工开始时刻在前的批中的第二待调度工件之间的权重的差异和尺寸的差异,对第一待调度工件与第二待调度工件进行位置的调换;
或者,
根据加工开始时刻在后的批中的第一待调度工件,与加工开始时刻在前的批中的第二待调度工件之间的权重的差异,对第一待调度工件与第二待调度工件进行位置的调换。
8.根据权利要求7所述的一种基于蚁群算法的工件调度方法,其特征在于,所述根据加工开始时刻在后的批中的第一待调度工件,与加工开始时刻在前的批中的第二待调度工件之间的权重的差异和尺寸的差异,对第一待调度工件与第二待调度工件进行位置的调换,包括:
在加工开始时刻在后的批中的第一待调度工件与加工开始时刻在前的批中的第二待调度工件的权重相同,第一待调度工件的尺寸小于第二待调度工件的尺寸,且被调度了第二待调度工件的加工开始时刻在后的批的容量不超过对应于该批的机器的容量,被调度了第一待调度工件的加工开始时刻在前的批的容量不超过对应于该批的机器的容量时,将第一待调度工件与第二待调度工件调换位置。
9.根据权利要求7所述的一种基于蚁群算法的工件调度方法,其特征在于,所述根据加工开始时刻在后的批中的第一待调度工件,与加工开始时刻在前的批中的第二待调度工件之间的权重的差异,对第一待调度工件与第二待调度工件进行位置的调换,包括:
在加工开始时刻在后的批中的第一待调度工件权重大于加工开始时刻在前的批中的第二待调度工件的权重,且被调度了第二待调度工件的加工开始时刻在后的批的容量不超过对应于该批的机器的容量,被调度了第一待调度工件的加工开始时刻在前的批的容量不超过对应于该批的机器的容量时,将第一待调度工件与第二待调度工件调换位置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910312839.1A CN109872091B (zh) | 2019-04-18 | 2019-04-18 | 一种基于蚁群算法的工件调度方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910312839.1A CN109872091B (zh) | 2019-04-18 | 2019-04-18 | 一种基于蚁群算法的工件调度方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109872091A CN109872091A (zh) | 2019-06-11 |
CN109872091B true CN109872091B (zh) | 2022-09-16 |
Family
ID=66922763
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910312839.1A Active CN109872091B (zh) | 2019-04-18 | 2019-04-18 | 一种基于蚁群算法的工件调度方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109872091B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110161997B (zh) * | 2019-06-12 | 2021-11-05 | 安徽大学 | 基于蚁群和模拟退火算法的流水车间调度方法及装置 |
CN110909858B (zh) * | 2019-11-27 | 2023-06-02 | 安徽大学 | 一种基于双信息素蚁群算法的批调度方法 |
CN110942251B (zh) * | 2019-11-27 | 2022-09-30 | 安徽大学 | 一种基于联合蚁群算法的批调度方法 |
CN111160711B (zh) * | 2019-12-06 | 2022-09-16 | 安徽大学 | 一种基于蚁群算法的平行机批调度方法 |
CN111260144B (zh) * | 2020-01-20 | 2022-03-29 | 合肥工业大学 | 一种差异工件随机到达情况下单机批调度问题的求解方法 |
CN118153927B (zh) * | 2024-05-11 | 2024-07-23 | 浙江大学 | 一种基于蚁群算法的车间调度方法、装置和设备 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106970604B (zh) * | 2017-05-15 | 2019-04-30 | 安徽大学 | 一种基于蚁群算法的多目标工件调度算法 |
CN107301473B (zh) * | 2017-06-12 | 2018-06-15 | 合肥工业大学 | 基于改进遗传算法的同类平行机批调度方法及系统 |
CN107590603B (zh) * | 2017-09-11 | 2018-11-13 | 合肥工业大学 | 基于改进变邻域搜索和差分进化算法的调度方法及系统 |
CN108564163B (zh) * | 2018-03-27 | 2021-09-21 | 华南理工大学 | 一种解决多目标多旅行商问题的改进蚁群方法 |
CN108563200B (zh) * | 2018-04-03 | 2021-02-09 | 安徽大学 | 一种基于蚁群算法的多目标的工件调度方法及装置 |
CN108665139B (zh) * | 2018-04-03 | 2021-12-17 | 安徽大学 | 一种基于蚁群算法的工件调度方法及装置 |
CN109255546A (zh) * | 2018-09-29 | 2019-01-22 | 华南理工大学 | 基于多启发信息蚁群系统的柔性作业车间调度方法 |
-
2019
- 2019-04-18 CN CN201910312839.1A patent/CN109872091B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109872091A (zh) | 2019-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109872091B (zh) | 一种基于蚁群算法的工件调度方法及装置 | |
CN106971235B (zh) | 一种存在中间存储约束的柔性作业车间分批优化调度方法 | |
Asefi et al. | A hybrid NSGA-II and VNS for solving a bi-objective no-wait flexible flowshop scheduling problem | |
Zandieh et al. | An adaptive multi-population genetic algorithm to solve the multi-objective group scheduling problem in hybrid flexible flowshop with sequence-dependent setup times | |
Jia et al. | Multi-objective energy-aware batch scheduling using ant colony optimization algorithm | |
CN110543953B (zh) | 基于狼群算法的空间约束下多目标拆卸线设置方法 | |
CN110969362B (zh) | 一种云计算系统下多目标任务调度方法及系统 | |
CN108563200B (zh) | 一种基于蚁群算法的多目标的工件调度方法及装置 | |
CN111259314B (zh) | 一种分布式混凝土预制构件流水车间生产调度方法 | |
Janes et al. | Applying improved genetic algorithm for solving job shop scheduling problems | |
CN110942251B (zh) | 一种基于联合蚁群算法的批调度方法 | |
CN115578023A (zh) | 一种装配车间调度方法、装置、设备和存储介质 | |
CN109857083A (zh) | 一种基于Petri网的含有不可观事件的无死锁控制方法 | |
CN117148796A (zh) | 一种求解多目标柔性作业车间调度问题的优化方法 | |
CN109214695B (zh) | 基于改进eda的高端装备研发制造协同调度方法及系统 | |
CN116360362A (zh) | 一种考虑工件排布的车间作业智能调度方法 | |
CN115829148A (zh) | 一种设备维护车间调度优化方法及计算机可读介质 | |
CN113723695B (zh) | 一种基于场景的再制造调度优化方法 | |
CN111105164B (zh) | 一种车间调度方法、装置及设备 | |
CN116468137A (zh) | 一种分布式工艺规划与车间调度集成优化方法 | |
CN114021901A (zh) | 用于柔性作业车间面向紧急订单的资源调度协同优化方法 | |
Süer et al. | Cell loading, family and job scheduling to minimize TT | |
CN110852500B (zh) | 一种资源受限混合流水车间优化方法 | |
Jolai et al. | A genetic algorithm for makespan minimization in a no-wait flow shop problem with two batching machines | |
CN113792924B (zh) | 一种基于Deep Q-network深度强化学习的单件作业车间调度方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |