CN110161997B - 基于蚁群和模拟退火算法的流水车间调度方法及装置 - Google Patents
基于蚁群和模拟退火算法的流水车间调度方法及装置 Download PDFInfo
- Publication number
- CN110161997B CN110161997B CN201910505977.1A CN201910505977A CN110161997B CN 110161997 B CN110161997 B CN 110161997B CN 201910505977 A CN201910505977 A CN 201910505977A CN 110161997 B CN110161997 B CN 110161997B
- Authority
- CN
- China
- Prior art keywords
- current
- solution
- workpiece
- ant
- processed
- 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
- 238000002922 simulated annealing Methods 0.000 title claims abstract description 70
- 238000000034 method Methods 0.000 title claims abstract description 28
- 239000003016 pheromone Substances 0.000 claims abstract description 114
- 239000011159 matrix material Substances 0.000 claims abstract description 85
- 238000005265 energy consumption Methods 0.000 claims description 65
- 241000257303 Hymenoptera Species 0.000 claims description 52
- 238000003754 machining Methods 0.000 claims description 39
- 230000007704 transition Effects 0.000 claims description 32
- 230000035772 mutation Effects 0.000 claims description 22
- 238000000137 annealing Methods 0.000 claims description 12
- 230000008859 change Effects 0.000 claims description 12
- 238000001816 cooling Methods 0.000 claims description 6
- XAGFODPZIPBFFR-UHFFFAOYSA-N aluminium Chemical compound [Al] XAGFODPZIPBFFR-UHFFFAOYSA-N 0.000 description 4
- 229910052782 aluminium Inorganic materials 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000010438 heat treatment Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000005096 rolling process Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/418—Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
- G05B19/41865—Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by job scheduling, process planning, material flow
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/004—Artificial life, i.e. computing arrangements simulating life
- G06N3/006—Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/32—Operator till task planning
- G05B2219/32252—Scheduling production, machining, job shop
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Biomedical Technology (AREA)
- Evolutionary Computation (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Quality & Reliability (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Automation & Control Theory (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Manufacturing & Machinery (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了基于蚁群和模拟退火算法的流水车间调度方法及装置,方法包括:1)、根据当前全局信息素矩阵,利用蚁群算法对当前次迭代中的每一只蚂蚁进行待加工工件的批调度,得到蚂蚁对应的解;2)、针对当前次迭代中的每一只蚂蚁,利用模拟退火算法获取蚂蚁对应的最优解,并根据最优解更新当前全局非劣解集;3)、判断当前次迭代对应的迭代次数是否不小于最大迭代次数;4)、若是,将当前次迭代的非劣解集作为目标调度方案;5)、若否,更新频次矩阵,根据频次矩阵更新全局信息素矩阵,将当前次迭代的下一次迭代作为当前次迭代,并返回执行步骤1),直至获取目标调度方案。应用本发明实施例,可以提高解的质量。
Description
技术领域
本发明涉及一种调度方法及装置,更具体涉及基于蚁群和模拟退火算法的流水车间调度方法及装置。
背景技术
近年来,生产制造中的环境和能源问题已经引起人们的重视,如何在不减少企业受益的条件下尽可能的节省能源降低成本是人们一直在研究的问题。
目前,在调度领域有关能源效率的一个例子就是铝片的加工制造,在铝片的加工过程中,一般分为两步,预热和滚轧。在预热操作中,通常存在多台加热炉,每台加热炉可以放入多个铝片,但是这些加热炉的功率,容量可能不一样,同时放入的铝片的大小也可能不一样,分批调度方案的差异不仅会导致不同的完工时间(makespan)不同,而且还会造成不同的电能消耗。类似的在滚轧阶段也存在类似的问题。
但是,现有技术中基于已有的基于蚁群算法的调度方法,存在搜索的解质量差的缺点。
发明内容
本发明所要解决的技术问题在于提供了基于蚁群和模拟退火算法的流水车间调度方法及装置,以解决现有技术中存在的解的质量不高的技术问题。
本发明是通过以下技术方案解决上述技术问题的:
本发明实施例提供了基于蚁群和模拟退火算法的流水车间调度方法,所述方法包括:
1)、根据当前全局信息素矩阵,利用蚁群算法对当前次迭代中的每一只蚂蚁进行待加工工件的批调度,得到所述蚂蚁对应的解;
2)、针对当前次迭代中的每一只蚂蚁,利用模拟退火算法获取所述蚂蚁对应的最优解,并根据所述最优解更新当前全局非劣解集,其中,所述最优解为针对能耗以及最大完工时长的最优解;
3)、判断当前次迭代对应的迭代次数是否不小于最大迭代次数;
4)、若是,将当前次迭代的非劣解集作为目标调度方案;
5)、若否,更新频次矩阵,根据所述频次矩阵更新全局信息素矩阵,将当前次迭代的下一次迭代作为当前次迭代,并返回执行步骤1),直至获取目标调度方案。
可选的,所述步骤1),包括:
A:在当前次迭代中,针对每一只蚂蚁,判断当前加工阶段是否为第一加工阶段;
B:若是,根据待加工工件集合中的各个工件的转移概率构建对应于第一加工阶段的各个加工机器的批,直至待加工工件都被调度
C:若否,将当前加工阶段的前一加工阶段中最先加工完成的批调度至,当前加工阶段中的空闲机器,或者将当前加工阶段的前一加工阶段中最先加工完成的批调度至,当前加工阶段中最先加工完已具有批的加工机器,直至当前加工阶段的前一加工阶段中的各个批都被调度至当前加工阶段对应的加工机器;
D:将当前加工阶段的下一加工阶段作为当前加工阶段,并返回执行A步骤,直至在最后一个加工阶段对所有的待加工工件进行了加工;
E:将当前次迭代中对应于每只蚂蚁的、包含各个待加工工件的调度方案作为所述蚂蚁对应的解。
可选的,所述根据待加工工件集合中的各个工件的转移概率构建对应于第一加工阶段的各个加工机器的批,包括:
针对每一个加工机器,利用公式,
P(n,p)为待加工工件集合中的各个工件的转移概率;vmk为用户对于最大完工时长的偏好;τmk(b,p)为将待加工工件p调度至批b中时,针对最大完工时长的期望值;η(b,p)为工件p调度至批b中时的启发式信息,且C为加工机器对应的批的总容量;S为加工机器对应的批中的已经容纳的工件的总尺寸;PTb加工机器对应的批的加工时长;pj为工件j的加工时长;vepc为用户对于能耗的偏好;τepc(b,p)为待加工将工件p调度至批b中时,针对能耗的期望值;α为第一影响因子;β为第二影响因子;τmk(b,l)为将待加工工件p调度至批b中时,针对最大完工时长的期望值;τepc(b,l)为待加工将工件p调度至批b中时,针对能耗的期望值;η(b,l)为待加工工件l调度至批b中时的启发式信息;∑为求和函数;List为加工机器对应的批中的工件列表;l为加工机器对应的批中的工件的序号;b为加工机器对应的批;p为待加工工件集合中除已经被调度的工件之外的其他工件;n为待加工工件集合中待加工工件的数量;
将待加工工件集合中除已经被调度的工件之外的其他工件中转移概率最大的待调度工件调度至所述加工机器,并返回执行所述计算待加工工件集合中的各个工件的转移概率的步骤,直至所有的待加工工件都被调度至对应于第一加工阶段的各个加工机器。
可选的,所述步骤2),包括:
H:针对当前次迭代中的每一只蚂蚁,利用公式,
t0=vmk*Cmax/bestCmax+vepc*EPC/bestEPC,计算当前只蚂蚁的初始温度,将当前只蚂蚁的初始温度作为当前只蚂蚁的当前温度,其中,
t0为当前只蚂蚁的初始温度;vmk为用户针对最大完工时长的偏好;Cmax为当前只蚂蚁对应的最大完工时长;bestCmax为全局最大完工时长中的最小值;vepc为用户针对能耗的偏好;EPC为当前只蚂蚁对应的能耗;bestEPC为全局能耗最小值;
I:利用公式,t>Tmin,判断当前只蚂蚁的当前温度是否大于预设的最低温度,其中,
t为当前只蚂蚁的当前温度;Tmin预设的最低温度;
J:若是,将当前只蚂蚁对应的解作为当前只蚂蚁的当前模拟退火所搜索到的最优解;将当前全局非劣解集中的一个解与所述最优解进行交叉处理,并对交叉处理后的当前只蚂蚁对应的解进行变异操作,得到变异后的解,获取所述变异后的解对应的最大完工时长以及能耗;
K:若否,将当前只蚂蚁的对应的解作为当前模拟退火所搜索到的最优解,并根据所述最优解更新当前全局非劣解集;更新频次矩阵;
L:判断所述变异后的解是否优于所述最优解;
M:若是,将所述最优解更新为所述变异后的解;
N:若否,在所述变异后的解与所述最优解为非劣关系时,分别获取所述变异后的解支配当前全局非劣解集中的解的第一数量,以及所述最优解支配当前全局非劣解集中的解的第二数量;在第一数量等于第二数量时,获取变异后的解与当前全局非劣解集中的解的夹角以及所述最优解与当前全局非劣解集中的解的夹角的集合中的最小值,将所述最小值对应的解作为当前只蚂蚁的当前模拟退火所搜索到的最优解;
O:在所述变异后的解劣于所述最优解时,利用公式,
ΔF为改变数;s2为所述变异后的解;Cmax为当前只蚂蚁对应的最大完工时长;bestCmax为全局最大完工时长中的最小值;EPC为当前只蚂蚁对应的能耗;bestEPC为全局能耗最小值;
e为自然底数;t为当前只蚂蚁的当前温度;P为预设的概率阈值;
Q:若是,将当前只蚂蚁的当前模拟退火所搜索到的最优解更新为变异后的解;
R:利用公式,t=k*t,更新当前模拟退火的下一次退火时当前只蚂蚁的当前温度,并返回执行步骤I;直至达到最大退火次数,或者当前只蚂蚁的当前温度是不大于预设的最低温度,其中,
k为预设的降温系数;
S:根据当前只蚂蚁的当前模拟退火所搜索到的最优解,更新当前全局非劣解集。
可选的,所述根据所述频次矩阵更新全局信息素矩阵,包括:
τmin为当前次迭代中的信息素的下界;n为待加工工件的数量;
τmax为当前次迭代中的信息素的上界;Cbest_so_far为截止到当前次迭代的全局最优解;
当前次迭代的下一次迭代的全局信息素矩阵;ρ为信息素挥发速率;当前次迭代时,工件v与工件j被调度至同一批中的期望;Mvj为工件v与工件j被调度至同一批中的频次;为当前次迭代时,信息素矩阵v,j边的增量;且n为待加工工件的总数量;fx(t)为当前次迭代时的第x个目标函数的值;
X:判断更新后的全局信息素矩阵的值大于或等于当前次迭代中的信息素的下限,且更新后的全局信息素矩阵的值小于或等于当前次迭代中的信息素的上限是否为真;
Y:若否,将更新后的全局信息素矩阵的值更新为当前次迭代中的信息素的下限,或者当前次迭代中的信息素的上限。
本发明实施例提供了基于蚁群和模拟退火算法的流水车间调度装置,所述装置包括:
调度模块,用于根据当前全局信息素矩阵,利用蚁群算法对当前次迭代中的每一只蚂蚁进行待加工工件的批调度,得到所述蚂蚁对应的解;
第一更新模块,用于针对当前次迭代中的每一只蚂蚁,利用模拟退火算法获取所述蚂蚁对应的最优解,并根据所述最优解更新当前全局非劣解集,其中,所述最优解为针对能耗以及最大完工时长的最优解;
判断模块,用于判断当前次迭代对应的迭代次数是否不小于最大迭代次数;若是,触发设置模块;若否,触发第二更新模块;
所述设置模块,用于将当前次迭代的非劣解集作为目标调度方案;
所述第二更新模块,用于更新频次矩阵,根据所述频次矩阵更新全局信息素矩阵,将当前次迭代的下一次迭代作为当前次迭代,并返回执行步骤1),直至获取目标调度方案。
可选的,所述调度模块,用于:
A:在当前次迭代中,针对每一只蚂蚁,判断当前加工阶段是否为第一加工阶段;
B:若是,根据待加工工件集合中的各个工件的转移概率构建对应于第一加工阶段的各个加工机器的批,直至待加工工件都被调度
C:若否,将当前加工阶段的前一加工阶段中最先加工完成的批调度至,当前加工阶段中的空闲机器,或者将当前加工阶段的前一加工阶段中最先加工完成的批调度至,当前加工阶段中最先加工完已具有批的加工机器,直至当前加工阶段的前一加工阶段中的各个批都被调度至当前加工阶段对应的加工机器;
D:将当前加工阶段的下一加工阶段作为当前加工阶段,并返回执行A步骤,直至在最后一个加工阶段对所有的待加工工件进行了加工;
E:将当前次迭代中对应于每只蚂蚁的、包含各个待加工工件的调度方案作为所述蚂蚁对应的解。
可选的,所述调度模块,用于:
针对每一个加工机器,利用公式,
P(n,p)为待加工工件集合中的各个工件的转移概率;vmk为用户对于最大完工时长的偏好;τmk(b,p)为将待加工工件p调度至批b中时,针对最大完工时长的期望值;η(b,p)为工件p调度至批b中时的启发式信息,且C为加工机器对应的批的总容量;S为加工机器对应的批中的已经容纳的工件的总尺寸;PTb加工机器对应的批的加工时长;pj为工件j的加工时长;vepc为用户对于能耗的偏好;τepc(b,p)为待加工将工件p调度至批b中时,针对能耗的期望值;α为第一影响因子;β为第二影响因子;τmk(b,l)为将待加工工件p调度至批b中时,针对最大完工时长的期望值;τepc(b,l)为待加工将工件p调度至批b中时,针对能耗的期望值;η(b,l)为待加工工件l调度至批b中时的启发式信息;∑为求和函数;List为加工机器对应的批中的工件列表;l为加工机器对应的批中的工件的序号;b为加工机器对应的批;p为待加工工件集合中除已经被调度的工件之外的其他工件;n为待加工工件集合中待加工工件的数量;
将待加工工件集合中除已经被调度的工件之外的其他工件中转移概率最大的待调度工件调度至所述加工机器,并返回执行所述计算待加工工件集合中的各个工件的转移概率的步骤,直至所有的待加工工件都被调度至对应于第一加工阶段的各个加工机器。
可选的,所述第一更新模块,包括:
H:针对当前次迭代中的每一只蚂蚁,利用公式,
t0=vmk*Cmax/bestCmax+vepc*EPC/bestEPC,计算当前只蚂蚁的初始温度,将当前只蚂蚁的初始温度作为当前只蚂蚁的当前温度,其中,
t0为当前只蚂蚁的初始温度;vmk为用户针对最大完工时长的偏好;Cmax为当前只蚂蚁对应的最大完工时长;bestCmax为全局最大完工时长中的最小值;vepc为用户针对能耗的偏好;EPC为当前只蚂蚁对应的能耗;bestEPC为全局能耗最小值;
I:利用公式,t>Tmin,判断当前只蚂蚁的当前温度是否大于预设的最低温度,其中,
t为当前只蚂蚁的当前温度;Tmin预设的最低温度;
J:若是,将当前只蚂蚁对应的解作为当前只蚂蚁的当前模拟退火所搜索到的最优解;将当前全局非劣解集中的一个解与所述最优解进行交叉处理,并对交叉处理后的当前只蚂蚁对应的解进行变异操作,得到变异后的解,获取所述变异后的解对应的最大完工时长以及能耗;
K:若否,将当前只蚂蚁的对应的解作为当前模拟退火所搜索到的最优解,并根据所述最优解更新当前全局非劣解集;更新频次矩阵;
L:判断所述变异后的解是否优于所述最优解;
M:若是,将所述最优解更新为所述变异后的解;
N:若否,在所述变异后的解与所述最优解为非劣关系时,分别获取所述变异后的解支配当前全局非劣解集中的解的第一数量,以及所述最优解支配当前全局非劣解集中的解的第二数量;在第一数量等于第二数量时,获取变异后的解与当前全局非劣解集中的解的夹角以及所述最优解与当前全局非劣解集中的解的夹角的集合中的最小值,将所述最小值对应的解作为当前只蚂蚁的当前模拟退火所搜索到的最优解;
O:在所述变异后的解劣于所述最优解时,利用公式,
ΔF为改变数;s2为所述变异后的解;Cmax为当前只蚂蚁对应的最大完工时长;bestCmax为全局最大完工时长中的最小值;EPC为当前只蚂蚁对应的能耗;bestEPC为全局能耗最小值;
e为自然底数;t为当前只蚂蚁的当前温度;P为预设的概率阈值;
Q:若是,将当前只蚂蚁的当前模拟退火所搜索到的最优解更新为变异后的解;
R:利用公式,t=k*t,更新当前模拟退火的下一次退火时当前只蚂蚁的当前温度,并返回执行步骤I;直至达到最大退火次数,或者当前只蚂蚁的当前温度是不大于预设的最低温度,其中,
k为预设的降温系数;
S:根据当前只蚂蚁的当前模拟退火所搜索到的最优解,更新当前全局非劣解集。
可选的,所述更新模块,用于:
τmin为当前次迭代中的信息素的下界;n为待加工工件的数量;
τmax为当前次迭代中的信息素的上界;Cbest_so_far为截止到当前次迭代的全局最优解;
当前次迭代的下一次迭代的全局信息素矩阵;ρ为信息素挥发速率;当前次迭代时,工件v与工件j被调度至同一批中的期望;Mvj为工件v与工件j被调度至同一批中的频次;为当前次迭代时,信息素矩阵v,j边的增量;且n为待加工工件的总数量;fx(t)为当前次迭代时的第x个目标函数的值;
X:判断更新后的全局信息素矩阵的值大于或等于当前次迭代中的信息素的下限,且更新后的全局信息素矩阵的值小于或等于当前次迭代中的信息素的上限是否为真;
Y:若否,将更新后的全局信息素矩阵的值更新为当前次迭代中的信息素的下限,或者当前次迭代中的信息素的上限。
本发明相比现有技术具有以下优点:
应用本发明实施例,在蚁群算法的基础上引入模拟退火方法,利用模拟退火算法进行局部搜索,避免蚁群算法的局部最优现象,进而提高了解的质量。
附图说明
图1为本发明实施例提供的基于蚁群和模拟退火算法的流水车间调度方法的流程示意图;
图2为本发明实施例提供的基于蚁群和模拟退火算法的流水车间调度方法的原理示意图;
图3为本发明实施例提供的基于蚁群和模拟退火算法的流水车间调度装置的结构示意图。
具体实施方式
下面对本发明的实施例作详细说明,本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
本发明实施例提供了基于蚁群和模拟退火算法的流水车间调度方法及装置,下面首先就本发明实施例提供的基于蚁群和模拟退火算法的流水车间调度方法进行介绍。
图1为本发明实施例提供的基于蚁群和模拟退火算法的流水车间调度方法的流程示意图;图2为本发明实施例提供的基于蚁群和模拟退火算法的流水车间调度方法的原理示意图;所述方法包括:
S101:根据当前全局信息素矩阵,利用蚁群算法对当前次迭代中的每一只蚂蚁进行待加工工件的批调度,得到所述蚂蚁对应的解。
具体的,S101步骤可以包括以下步骤:
A:在当前次迭代中,针对每一只蚂蚁,判断当前加工阶段是否为第一加工阶段。若是,执行B步骤;若否,执行C步骤。
在实际应用中,待加工工件的加工阶段可以包括多个加工阶段,本发明实施例在此并不对其作出限定。
另外,在本发明实施例中,在每一次迭代中各只蚂蚁的可以进行并行处理进而得到对应的解,也将各只蚂蚁的解的构建过程进行串行执行,本发明实施例并不对蚂蚁的解的构建过程进行限定。
B:根据待加工工件集合中的各个工件的转移概率构建对应于第一加工阶段的各个加工机器的批,直至待加工工件都被调度,包括如下步骤:
以当前加工阶段为第一加工阶段为例,第一加工阶段的其中一台加工机器为例,首先在该加工机器上构建第一个空批,然后从未被调度的待加工工件中随机选择一个待加工工件调度至第一个空批中,然后利用公式,
P(n,p)为待加工工件集合中的各个工件的转移概率;vmk为用户对于最大完工时长的偏好;τmk(b,p)为将待加工工件p调度至批b中时,针对最大完工时长的期望值;η(b,p)为工件p调度至批b中时的启发式信息,且C为加工机器对应的批的总容量;S为加工机器对应的批中的已经容纳的工件的总尺寸;PTb加工机器对应的批的加工时长;pj为工件j的加工时长;vepc为用户对于能耗的偏好;τepc(b,p)为待加工将工件p调度至批b中时,针对能耗的期望值;α为第一影响因子;β为第二影响因子;τmk(b,l)为将待加工工件p调度至批b中时,针对最大完工时长的期望值;τepc(b,l)为待加工将工件p调度至批b中时,针对能耗的期望值;η(b,l)为待加工工件l调度至批b中时的启发式信息;∑为求和函数;List为加工机器对应的批中的工件列表;l为加工机器对应的批中的工件的序号;b为加工机器对应的批;p为待加工工件集合中除已经被调度的工件之外的其他工件;n为待加工工件集合中待加工工件的数量;
将待加工工件集合中除已经被调度的工件之外的其他工件中转移概率最大的待调度工件调度至所述加工机器,并返回执行所述计算待加工工件集合中的各个工件的转移概率的步骤,直至该加工机器的第一个空批被填满了为止;然后对于其他的加工机器也是按照上述方法进行操作,直至所有的待加工工件都被调度至对应于第一加工阶段的各个加工机器。
在实际应用中,第一阶段的各个加工机器的第一个批都被填满后,第一个加工阶段的加工机器开始对铝片进行加工,当第一阶段的其中一个加工机器将第一个批加工完成后,可以将该批调度至第二加工阶段的加工机器上。直至所有的待加工工件都完成了第一阶段的加工;然后执行D步骤。
在实际应用中,第一加工阶段与第二加工阶段可以同时运行,即,第一加工阶段加工第一个批之后的后续批时,已经加工完的第一个批可以由第二个加工阶段,或者第三个加工阶段进行加工。
需要强调的是,批被填满是指,批中剩余的容量小于待加工工件集合中的未被调度的待加工工件的尺寸。
C:将当前加工阶段的前一加工阶段中最先加工完成的批调度至,当前加工阶段中的空闲机器,或者将当前加工阶段的前一加工阶段中最先加工完成的批调度至,当前加工阶段中最先加工完已具有批的加工机器,直至当前加工阶段的前一加工阶段中的各个批都被调度至当前加工阶段对应的加工机器。
在实际应用中,如果当前加工阶段中空闲机器比较多时,可以将与上一加工阶段最先加工完成的批调度至,机器容量与该批的空间相同或者差值小于预设阈值的加工机器;或者随机选择一个空闲的加工机器用于接收上一加工阶段最先加工完成的批;在将这个批调度完成后,由于上一加工阶段是持续运行的,因此,会有源源不断的批被加工完成,然后将上一加工阶段加工完成的批按照上述方法进行调度。
在实际应用中,在进行上一加工阶段最先加工完成的批的调度时,当前加工阶段中并无空闲机器,可以进行当前加工阶段的各个机器的完成时间的计算,筛选出最先空闲的加工机器,然后将需要调度的批调度只最先空闲出来的加工机器。
按照上述方法,循环往复,将上一加工阶段的批不断的调度至当前加工阶段。
D:将当前加工阶段的下一加工阶段作为当前加工阶段,并返回执行A步骤,直至在最后一个加工阶段对所有的待加工工件进行了加工。
E:将当前次迭代中对应于每只蚂蚁的、包含各个待加工工件的调度方案作为所述蚂蚁对应的解。
示例性的,每一只蚂蚁对应一个批调度方案,该批调度方案可以被称为一个解,记为batchSeq。
S102:针对当前次迭代中的每一只蚂蚁,利用模拟退火算法获取所述蚂蚁对应的最优解,并根据所述最优解更新当前全局非劣解集,其中,所述最优解为针对能耗以及最大完工时长的最优解;
具体的,S102步骤可以包括以下步骤:
H:针对当前次迭代中的每一只蚂蚁,利用公式,
t0=vmk*Cmax/bestCmax+vepc*EPC/bestEPC,计算当前只蚂蚁的初始温度,将当前只蚂蚁的初始温度作为当前只蚂蚁的当前温度,其中,
t0为当前只蚂蚁的初始温度;vmk为用户针对最大完工时长的偏好;Cmax为当前只蚂蚁对应的最大完工时长;bestCmax为全局最大完工时长中的最小值;vepc为用户针对能耗的偏好;EPC为当前只蚂蚁对应的能耗;bestEPC为全局能耗最小值;
I:利用公式,t>Tmin,判断当前只蚂蚁的当前温度是否大于预设的最低温度,若是,执行J步骤;若否,执行K步骤;其中,
t为当前只蚂蚁的当前温度;Tmin预设的最低温度;
J:将当前只蚂蚁对应的解作为当前只蚂蚁的当前模拟退火所搜索到的最优解;将当前全局非劣解集中的一个解s1与所述最优解best进行交叉处理,得到新的解s;并对交叉处理后的当前只蚂蚁对应的解s进行变异操作,得到变异后的解s2,获取所述变异后的解对应的最大完工时长Cmax以及能耗EPC;
交叉操作流程为:在当前加工阶段开始时刻在后的批中的第一待调度工件与当前加工阶段开始时刻前的批中的第二待调度工件的权重相同,第一待调度工件的尺寸小于第二待调度工件的尺寸,且被调度了第二待调度工件的加工开始时刻在后的批的容量不超过对应于该批的加工机器的容量,被调度了第一待调度工件的加工开始时刻在前的批的容量不超过对应于该批的加工机器的容量时,将第一待调度工件与第二待调度工件调换位置。
变异操作流程为:
在当前加工阶段加工开始时刻在后的批中的第一待调度工件权重大于当前加工阶段加工开始时刻之前的批中的第二待调度工件的权重,且被调度了第二待调度工件的加工开始时刻在后的批的容量不超过对应于该批的加工机器的容量,被调度了第一待调度工件的加工开始时刻在前的批的容量不超过对应于该批的加工机器的容量时,将第一待调度工件与第二待调度工件调换位置。
变异后的解对应的最大完工时长以及能耗的计算方法为现有技术,这里不再赘述。
K:将当前只蚂蚁的对应的解作为当前模拟退火所搜索到的最优解,并根据所述最优解更新当前全局非劣解集NDS;更新频次矩阵M;
示例性的,更新全局非劣解集是指,将当前模拟退火所搜索到的最优解加入到当前全局非劣解集NDS中,并将当前全局非劣解集NDS中的受当前模拟退火所搜索到的最优解支配的解删除。
L:判断所述变异后的解是否优于所述最优解;若是,执行M步骤;若否,执行N至Q步骤;
示例性的,即判断是否变异后的解s2的最大完工时长以及能耗均小于最优解best的最大完工时长以及能耗;若是,则变异后的解s2优于最优解best,即变异后的解s2支配最优解best。
非劣解集是由,相互之间存在支配关系的解组成的解的集合。
M:将所述最优解更新为所述变异后的解;
N:在所述变异后的解与所述最优解为非劣关系时,分别获取所述变异后的解支配当前全局非劣解集中的解的第一数量c1,以及所述最优解支配当前全局非劣解集中的解的第二数量c2;在第一数量等于第二数量时c1=c2,获取变异后的解与当前全局非劣解集中的解的夹角以及所述最优解与当前全局非劣解集中的解的夹角的集合中的最小值,将所述最小值对应的解作为当前只蚂蚁的当前模拟退火所搜索到的最优解。
tanα为当前全局非劣解集NDS与Cmax坐标轴的夹角;tanβ为当前模拟退火所搜索到的最优解,即s2或者best与Cmax坐标轴的夹角;| |为绝对值。
O:在所述变异后的解劣于所述最优解时,利用公式,
ΔF为改变数;s2为所述变异后的解;Cmax为当前只蚂蚁对应的最大完工时长;bestCmax为全局最大完工时长中的最小值;EPC为当前只蚂蚁对应的能耗;bestEPC为全局能耗最小值;
e为自然底数;t为当前只蚂蚁的当前温度;P为预设的概率阈值;
Q:若是,将当前只蚂蚁的当前模拟退火所搜索到的最优解更新为变异后的解;
R:利用公式,t=k*t,更新当前模拟退火的下一次退火时当前只蚂蚁的当前温度,并返回执行步骤I;直至达到最大退火次数,或者当前只蚂蚁的当前温度是不大于预设的最低温度,其中,
k为预设的降温系数;
S:根据当前只蚂蚁的当前模拟退火所搜索到的最优解,更新当前全局非劣解集。
S103:判断当前次迭代对应的迭代次数是否不小于最大迭代次数;若是,执行S104;若否,执行S105。
S104:将当前次迭代的非劣解集作为目标调度方案。
S105:更新频次矩阵,根据所述频次矩阵更新全局信息素矩阵,将当前次迭代的下一次迭代作为当前次迭代,并返回执行步骤S101,直至获取目标调度方案。
在实际应用中,可以使用现有技术中的全局信息素矩阵的更新方法进行全局信息素矩阵的更新。
进一步的,为了实现更好的技术效果,步骤S105步骤可以包括以下步骤:
所述根据所述频次矩阵更新全局信息素矩阵,包括:
τmin为当前次迭代中的信息素的下界;n为待加工工件的数量;
τmax为当前次迭代中的信息素的上界;Cbest_so_far为截止到当前次迭代的全局最优解;
当前次迭代的下一次迭代的全局信息素矩阵;ρ为信息素挥发速率;当前次迭代时,工件v与工件j被调度至同一批中的期望;Mvj为工件v与工件j被调度至同一批中的频次;为当前次迭代时,信息素矩阵v,j边的增量;且n为待加工工件的总数量;fx(t)为当前次迭代时的第x个目标函数的值;
X:判断更新后的全局信息素矩阵的值大于或等于当前次迭代中的信息素的下限,且更新后的全局信息素矩阵的值小于或等于当前次迭代中的信息素的上限是否为真;
Y:若否,将更新后的全局信息素矩阵的值更新为当前次迭代中的信息素的下限,或者当前次迭代中的信息素的上限。
本发明在一次迭代中所有蚂蚁都完成搜索后更新信息素,同时信息素的值被限制在一定范围内,当信息素超过这个区间的边界值,则将信息素的值重设为对应边界值,以避免因部分路径上的信息素过高而导致算法陷入局部最优的问题。
应用本发明图1所示实施例,在蚁群算法的基础上引入模拟退火方法,利用模拟退火算法进行局部搜索,避免蚁群算法的局部最优现象,进而提高了解的质量。
另外,在每一代中,当每只蚂蚁在构建解时,都对工件进行重新分组,从而保证解的多样性。
与本发明图1所示实施例相对应,本发明实施例还提供了基于蚁群和模拟退火算法的流水车间调度装置。
图3为本发明实施例提供的基于蚁群和模拟退火算法的流水车间调度装置的结构示意图,如图3所示,所述装置包括:
调度模块301,用于根据当前全局信息素矩阵,利用蚁群算法对当前次迭代中的每一只蚂蚁进行待加工工件的批调度,得到所述蚂蚁对应的解;
第一更新模块302,用于针对当前次迭代中的每一只蚂蚁,利用模拟退火算法获取所述蚂蚁对应的最优解,并根据所述最优解更新当前全局非劣解集,其中,所述最优解为针对能耗以及最大完工时长的最优解;
判断模块303,用于判断当前次迭代对应的迭代次数是否不小于最大迭代次数;若是,触发设置模块304;若否,触发第二更新模块305;
所述设置模块304,用于将当前次迭代的非劣解集作为目标调度方案;
所述第二更新模块305,用于更新频次矩阵,根据所述频次矩阵更新全局信息素矩阵,将当前次迭代的下一次迭代作为当前次迭代,并触发调度模块301,直至获取目标调度方案。
应用本发明图1所示实施例,在蚁群算法的基础上引入模拟退火方法,利用模拟退火算法进行局部搜索,避免蚁群算法的局部最优现象,进而提高了解的质量。
在本发明实施例的一种具体实施方式中,所述调度模块301,用于:
A:在当前次迭代中,针对每一只蚂蚁,判断当前加工阶段是否为第一加工阶段;
B:若是,根据待加工工件集合中的各个工件的转移概率构建对应于第一加工阶段的各个加工机器的批,直至待加工工件都被调度
C:若否,将当前加工阶段的前一加工阶段中最先加工完成的批调度至,当前加工阶段中的空闲机器,或者将当前加工阶段的前一加工阶段中最先加工完成的批调度至,当前加工阶段中最先加工完已具有批的加工机器,直至当前加工阶段的前一加工阶段中的各个批都被调度至当前加工阶段对应的加工机器;
D:将当前加工阶段的下一加工阶段作为当前加工阶段,并返回执行A步骤,直至在最后一个加工阶段对所有的待加工工件进行了加工;
E:将当前次迭代中对应于每只蚂蚁的、包含各个待加工工件的调度方案作为所述蚂蚁对应的解。
在本发明实施例的一种具体实施方式中,所述调度模块301,用于:
针对每一个加工机器,利用公式,
P(n,p)为待加工工件集合中的各个工件的转移概率;vmk为用户对于最大完工时长的偏好;τmk(b,p)为将待加工工件p调度至批b中时,针对最大完工时长的期望值;η(b,p)为工件p调度至批b中时的启发式信息,且C为加工机器对应的批的总容量;S为加工机器对应的批中的已经容纳的工件的总尺寸;PTb加工机器对应的批的加工时长;pj为工件j的加工时长;vepc为用户对于能耗的偏好;τepc(b,p)为待加工将工件p调度至批b中时,针对能耗的期望值;α为第一影响因子;β为第二影响因子;τmk(b,l)为将待加工工件p调度至批b中时,针对最大完工时长的期望值;τepc(b,l)为待加工将工件p调度至批b中时,针对能耗的期望值;η(b,l)为待加工工件l调度至批b中时的启发式信息;∑为求和函数;List为加工机器对应的批中的工件列表;l为加工机器对应的批中的工件的序号;b为加工机器对应的批;p为待加工工件集合中除已经被调度的工件之外的其他工件;n为待加工工件集合中待加工工件的数量;
将待加工工件集合中除已经被调度的工件之外的其他工件中转移概率最大的待调度工件调度至所述加工机器,并返回执行所述计算待加工工件集合中的各个工件的转移概率的步骤,直至所有的待加工工件都被调度至对应于第一加工阶段的各个加工机器。
在本发明实施例的一种具体实施方式中,所述第一更新模块302,包括:
H:针对当前次迭代中的每一只蚂蚁,利用公式,
t0=vmk*Cmax/bestCmax+vepc*EPC/bestEPC,计算当前只蚂蚁的初始温度,将当前只蚂蚁的初始温度作为当前只蚂蚁的当前温度,其中,
t0为当前只蚂蚁的初始温度;vmk为用户针对最大完工时长的偏好;Cmax为当前只蚂蚁对应的最大完工时长;bestCmax为全局最大完工时长中的最小值;vepc为用户针对能耗的偏好;EPC为当前只蚂蚁对应的能耗;bestEPC为全局能耗最小值;
I:利用公式,t>Tmin,判断当前只蚂蚁的当前温度是否大于预设的最低温度,其中,
t为当前只蚂蚁的当前温度;Tmin预设的最低温度;
J:若是,将当前只蚂蚁对应的解作为当前只蚂蚁的当前模拟退火所搜索到的最优解;将当前全局非劣解集中的一个解与所述最优解进行交叉处理,并对交叉处理后的当前只蚂蚁对应的解进行变异操作,得到变异后的解,获取所述变异后的解对应的最大完工时长以及能耗;
K:若否,将当前只蚂蚁的对应的解作为当前模拟退火所搜索到的最优解,并根据所述最优解更新当前全局非劣解集;更新频次矩阵;
L:判断所述变异后的解是否优于所述最优解;
M:若是,将所述最优解更新为所述变异后的解;
N:若否,在所述变异后的解与所述最优解为非劣关系时,分别获取所述变异后的解支配当前全局非劣解集中的解的第一数量,以及所述最优解支配当前全局非劣解集中的解的第二数量;在第一数量等于第二数量时,获取变异后的解与当前全局非劣解集中的解的夹角以及所述最优解与当前全局非劣解集中的解的夹角的集合中的最小值,将所述最小值对应的解作为当前只蚂蚁的当前模拟退火所搜索到的最优解;
O:在所述变异后的解劣于所述最优解时,利用公式,
ΔF为改变数;s2为所述变异后的解;Cmax为当前只蚂蚁对应的最大完工时长;bestCmax为全局最大完工时长中的最小值;EPC为当前只蚂蚁对应的能耗;bestEPC为全局能耗最小值;
e为自然底数;t为当前只蚂蚁的当前温度;P为预设的概率阈值;
Q:若是,将当前只蚂蚁的当前模拟退火所搜索到的最优解更新为变异后的解;
R:利用公式,t=k*t,更新当前模拟退火的下一次退火时当前只蚂蚁的当前温度,并返回执行步骤I;直至达到最大退火次数,或者当前只蚂蚁的当前温度是不大于预设的最低温度,其中,
k为预设的降温系数;
S:根据当前只蚂蚁的当前模拟退火所搜索到的最优解,更新当前全局非劣解集。
在本发明实施例的一种具体实施方式中,所述第二更新模块305,用于:
τmin为当前次迭代中的信息素的下界;n为待加工工件的数量;
τmax为当前次迭代中的信息素的上界;Cbest_so_far为截止到当前次迭代的全局最优解;
当前次迭代的下一次迭代的全局信息素矩阵;ρ为信息素挥发速率;当前次迭代时,工件v与工件j被调度至同一批中的期望;Mvj为工件v与工件j被调度至同一批中的频次;为当前次迭代时,信息素矩阵v,j边的增量;且n为待加工工件的总数量;fx(t)为当前次迭代时的第x个目标函数的值;
X:判断更新后的全局信息素矩阵的值大于或等于当前次迭代中的信息素的下限,且更新后的全局信息素矩阵的值小于或等于当前次迭代中的信息素的上限是否为真;
Y:若否,将更新后的全局信息素矩阵的值更新为当前次迭代中的信息素的下限,或者当前次迭代中的信息素的上限。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (2)
1.基于蚁群和模拟退火算法的流水车间调度方法,其特征在于,所述方法包括以下步骤:
1)、根据当前全局信息素矩阵,利用蚁群算法对当前次迭代中的每一只蚂蚁进行待加工工件的批调度,得到所述蚂蚁对应的解;
2)、针对当前次迭代中的每一只蚂蚁,利用模拟退火算法获取所述蚂蚁对应的最优解,并根据所述最优解更新当前全局非劣解集,其中,所述最优解为针对能耗以及最大完工时长的最优解;
3)、判断当前次迭代对应的迭代次数是否不小于最大迭代次数;
4)、若是,将当前次迭代的非劣解集作为目标调度方案;
5)、若否,更新频次矩阵,根据所述频次矩阵更新全局信息素矩阵,将当前次迭代的下一次迭代作为当前次迭代,并返回执行步骤1),直至获取目标调度方案;
所述步骤1),包括:
A:在当前次迭代中,针对每一只蚂蚁,判断当前加工阶段是否为第一加工阶段;
B:若是,根据待加工工件集合中的各个工件的转移概率构建对应于第一加工阶段的各个加工机器的批,直至待加工工件都被调度;
C:若否,将当前加工阶段的前一加工阶段中最先加工完成的批调度至,当前加工阶段中的空闲机器,或者将当前加工阶段的前一加工阶段中最先加工完成的批调度至,当前加工阶段中最先加工完已具有批的加工机器,直至当前加工阶段的前一加工阶段中的各个批都被调度至当前加工阶段对应的加工机器;
D:将当前加工阶段的下一加工阶段作为当前加工阶段,并返回执行A步骤,直至在最后一个加工阶段对所有的待加工工件进行了加工;
E:将当前次迭代中对应于每只蚂蚁的、包含各个待加工工件的调度方案作为所述蚂蚁对应的解;
所述根据待加工工件集合中的各个工件的转移概率构建对应于第一加工阶段的各个加工机器的批,包括:
针对每一个加工机器,利用公式,
P(n,p)为待加工工件集合中的各个工件的转移概率;vmk为用户对于最大完工时长的偏好;τmk(b,p)为将待加工工件p调度至批b中时,针对最大完工时长的期望值;η(b,p)为工件p调度至批b中时的启发式信息,且C为加工机器对应的批的总容量;S为加工机器对应的批中的已经容纳的工件的总尺寸;PTb加工机器对应的批的加工时长;pj为工件j的加工时长;vepc为用户对于能耗的偏好;τepc(b,p)为将待加工工件p调度至批b中时,针对能耗的期望值;α为第一影响因子;β为第二影响因子;τmk(b,l)为将待加工工件p调度至批b中时,针对最大完工时长的期望值;τepc(b,l)为将待加工工件p调度至批b中时,针对能耗的期望值;η(b,l)为待加工工件l调度至批b中时的启发式信息;∑为求和函数;List为加工机器对应的批中的工件列表;l为加工机器对应的批中的工件的序号;b为加工机器对应的批;p为待加工工件集合中除已经被调度的工件之外的其他工件;n为待加工工件集合中待加工工件的数量;
将待加工工件集合中除已经被调度的工件之外的其他工件中转移概率最大的待调度工件调度至所述加工机器,并返回执行所述计算待加工工件集合中的各个工件的转移概率的步骤,直至所有的待加工工件都被调度至对应于第一加工阶段的各个加工机器;
所述步骤2),包括:
H:针对当前次迭代中的每一只蚂蚁,利用公式,
t0=vmk*Cmax/bestCmax+vepc*EPC/bestEPC,计算当前只蚂蚁的初始温度,将当前只蚂蚁的初始温度作为当前只蚂蚁的当前温度,其中,
t0为当前只蚂蚁的初始温度;vmk为用户针对最大完工时长的偏好;Cmax为当前只蚂蚁对应的最大完工时长;bestCmax为全局最大完工时长中的最小值;vepc为用户针对能耗的偏好;EPC为当前只蚂蚁对应的能耗;bestEPC为全局能耗最小值;
I:利用公式,t>Tmin,判断当前只蚂蚁的当前温度是否大于预设的最低温度,其中,
t为当前只蚂蚁的当前温度;Tmin预设的最低温度;
J:若是,将当前只蚂蚁对应的解作为当前只蚂蚁的当前模拟退火所搜索到的最优解;将当前全局非劣解集中的一个解与所述最优解进行交叉处理,并对交叉处理后的当前只蚂蚁对应的解进行变异操作,得到变异后的解,获取所述变异后的解对应的最大完工时长以及能耗;
K:若否,将当前只蚂蚁的对应的解作为当前模拟退火所搜索到的最优解,并根据所述最优解更新当前全局非劣解集;更新频次矩阵;
L:判断所述变异后的解是否优于所述最优解;
M:若是,将所述最优解更新为所述变异后的解;
N:若否,在所述变异后的解与所述最优解为非劣关系时,分别获取所述变异后的解支配当前全局非劣解集中的解的第一数量,以及所述最优解支配当前全局非劣解集中的解的第二数量;在第一数量等于第二数量时,获取变异后的解与当前全局非劣解集中的解的夹角以及所述最优解与当前全局非劣解集中的解的夹角的集合中的最小值,将所述最小值对应的解作为当前只蚂蚁的当前模拟退火所搜索到的最优解;
O:在所述变异后的解劣于所述最优解时,利用公式,
ΔF为改变数;s2为所述变异后的解;Cmax为当前只蚂蚁对应的最大完工时长;bestCmax为全局最大完工时长中的最小值;EPC为当前只蚂蚁对应的能耗;bestEPC为全局能耗最小值;
e为自然底数;t为当前只蚂蚁的当前温度;P为预设的概率阈值;
Q:若是,将当前只蚂蚁的当前模拟退火所搜索到的最优解更新为变异后的解;
R:利用公式,t=k*t,更新当前模拟退火的下一次退火时当前只蚂蚁的当前温度,并返回执行步骤I;直至达到最大退火次数,或者当前只蚂蚁的当前温度是不大于预设的最低温度,其中,
k为预设的降温系数;
S:根据当前只蚂蚁的当前模拟退火所搜索到的最优解,更新当前全局非劣解集;
所述根据所述频次矩阵更新全局信息素矩阵,包括:
τmin为当前次迭代中的信息素的下界;n为待加工工件的数量;
τmax为当前次迭代中的信息素的上界;Cbest_so_far为截止到当前次迭代的全局最优解;
当前次迭代的下一次迭代的全局信息素矩阵;ρ为信息素挥发速率;当前次迭代时,工件v与工件j被调度至同一批中的期望;Mvj为工件v与工件j被调度至同一批中的频次;为当前次迭代时,信息素矩阵v,j边的增量;且n为待加工工件的总数量;fx(t)为当前次迭代时的第x个目标函数的值;
X:判断更新后的全局信息素矩阵的值大于或等于当前次迭代中的信息素的下限,且更新后的全局信息素矩阵的值小于或等于当前次迭代中的信息素的上限是否为真;
Y:若否,将更新后的全局信息素矩阵的值更新为当前次迭代中的信息素的下限,或者当前次迭代中的信息素的上限。
2.基于蚁群和模拟退火算法的流水车间调度装置,其特征在于,所述装置包括:
调度模块,用于根据当前全局信息素矩阵,利用蚁群算法对当前次迭代中的每一只蚂蚁进行待加工工件的批调度,得到所述蚂蚁对应的解;
第一更新模块,用于针对当前次迭代中的每一只蚂蚁,利用模拟退火算法获取所述蚂蚁对应的最优解,并根据所述最优解更新当前全局非劣解集,其中,所述最优解为针对能耗以及最大完工时长的最优解;
判断模块,用于判断当前次迭代对应的迭代次数是否不小于最大迭代次数;若是,触发设置模块;若否,触发更新模块;
所述设置模块,用于将当前次迭代的非劣解集作为目标调度方案;
第二更新模块,用于更新频次矩阵,根据所述频次矩阵更新全局信息素矩阵,将当前次迭代的下一次迭代作为当前次迭代,并返回执行调度模块,直至获取目标调度方案;
所述调度模块,用于:
A:在当前次迭代中,针对每一只蚂蚁,判断当前加工阶段是否为第一加工阶段;
B:若是,根据待加工工件集合中的各个工件的转移概率构建对应于第一加工阶段的各个加工机器的批,直至待加工工件都被调度
C:若否,将当前加工阶段的前一加工阶段中最先加工完成的批调度至,当前加工阶段中的空闲机器,或者将当前加工阶段的前一加工阶段中最先加工完成的批调度至,当前加工阶段中最先加工完已具有批的加工机器,直至当前加工阶段的前一加工阶段中的各个批都被调度至当前加工阶段对应的加工机器;
D:将当前加工阶段的下一加工阶段作为当前加工阶段,并返回执行A步骤,直至在最后一个加工阶段对所有的待加工工件进行了加工;
E:将当前次迭代中对应于每只蚂蚁的、包含各个待加工工件的调度方案作为所述蚂蚁对应的解;
所述调度模块,还用于:
针对每一个加工机器,利用公式,
P(n,p)为待加工工件集合中的各个工件的转移概率;vmk为用户对于最大完工时长的偏好;τmk(b,p)为将待加工工件p调度至批b中时,针对最大完工时长的期望值;η(b,p)为工件p调度至批b中时的启发式信息,且C为加工机器对应的批的总容量;S为加工机器对应的批中的已经容纳的工件的总尺寸;PTb加工机器对应的批的加工时长;pj为工件j的加工时长;vepc为用户对于能耗的偏好;τepc(b,p)为将待加工工件p调度至批b中时,针对能耗的期望值;α为第一影响因子;β为第二影响因子;τmk(b,l)为将待加工工件p调度至批b中时,针对最大完工时长的期望值;τepc(b,l)为将待加工工件p调度至批b中时,针对能耗的期望值;η(b,l)为待加工工件l调度至批b中时的启发式信息;∑为求和函数;List为加工机器对应的批中的工件列表;l为加工机器对应的批中的工件的序号;b为加工机器对应的批;p为待加工工件集合中除已经被调度的工件之外的其他工件;n为待加工工件集合中待加工工件的数量;
将待加工工件集合中除已经被调度的工件之外的其他工件中转移概率最大的待调度工件调度至所述加工机器,并返回执行所述计算待加工工件集合中的各个工件的转移概率的步骤,直至所有的待加工工件都被调度至对应于第一加工阶段的各个加工机器;
所述第一更新模块,还用于:
H:针对当前次迭代中的每一只蚂蚁,利用公式,
t0=vmk*Cmax/bestCmax+vepc*EPC/bestEPC,计算当前只蚂蚁的初始温度,将当前只蚂蚁的初始温度作为当前只蚂蚁的当前温度,其中,
t0为当前只蚂蚁的初始温度;vmk为用户针对最大完工时长的偏好;Cmax为当前只蚂蚁对应的最大完工时长;bestCmax为全局最大完工时长中的最小值;vepc为用户针对能耗的偏好;EPC为当前只蚂蚁对应的能耗;bestEPC为全局能耗最小值;
I:利用公式,t>Tmin,判断当前只蚂蚁的当前温度是否大于预设的最低温度,其中,
t为当前只蚂蚁的当前温度;Tmin预设的最低温度;
J:若是,将当前只蚂蚁对应的解作为当前只蚂蚁的当前模拟退火所搜索到的最优解;将当前全局非劣解集中的一个解与所述最优解进行交叉处理,并对交叉处理后的当前只蚂蚁对应的解进行变异操作,得到变异后的解,获取所述变异后的解对应的最大完工时长以及能耗;
K:若否,将当前只蚂蚁的对应的解作为当前模拟退火所搜索到的最优解,并根据所述最优解更新当前全局非劣解集;更新频次矩阵;
L:判断所述变异后的解是否优于所述最优解;
M:若是,将所述最优解更新为所述变异后的解;
N:若否,在所述变异后的解与所述最优解为非劣关系时,分别获取所述变异后的解支配当前全局非劣解集中的解的第一数量,以及所述最优解支配当前全局非劣解集中的解的第二数量;在第一数量等于第二数量时,获取变异后的解与当前全局非劣解集中的解的夹角以及所述最优解与当前全局非劣解集中的解的夹角的集合中的最小值,将所述最小值对应的解作为当前只蚂蚁的当前模拟退火所搜索到的最优解;
O:在所述变异后的解劣于所述最优解时,利用公式,
ΔF为改变数;s2为所述变异后的解;Cmax为当前只蚂蚁对应的最大完工时长;bestCmax为全局最大完工时长中的最小值;EPC为当前只蚂蚁对应的能耗;bestEPC为全局能耗最小值;
e为自然底数;t为当前只蚂蚁的当前温度;P为预设的概率阈值;
Q:若是,将当前只蚂蚁的当前模拟退火所搜索到的最优解更新为变异后的解;
R:利用公式,t=k*t,更新当前模拟退火的下一次退火时当前只蚂蚁的当前温度,并返回执行步骤I;直至达到最大退火次数,或者当前只蚂蚁的当前温度是不大于预设的最低温度,其中,
k为预设的降温系数;
S:根据当前只蚂蚁的当前模拟退火所搜索到的最优解,更新当前全局非劣解集;
所述第二更新模块,用于:
τmin为当前次迭代中的信息素的下界;n为待加工工件的数量;
τmax为当前次迭代中的信息素的上界;Cbest_so_far为截止到当前次迭代的全局最优解;
当前次迭代的下一次迭代的全局信息素矩阵;ρ为信息素挥发速率;当前次迭代时,工件v与工件j被调度至同一批中的期望;Mvj为工件v与工件j被调度至同一批中的频次;为当前次迭代时,信息素矩阵v,j边的增量;且n为待加工工件的总数量;fx(t)为当前次迭代时的第x个目标函数的值;
X:判断更新后的全局信息素矩阵的值大于或等于当前次迭代中的信息素的下限,且更新后的全局信息素矩阵的值小于或等于当前次迭代中的信息素的上限是否为真;
Y:若否,将更新后的全局信息素矩阵的值更新为当前次迭代中的信息素的下限,或者当前次迭代中的信息素的上限。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910505977.1A CN110161997B (zh) | 2019-06-12 | 2019-06-12 | 基于蚁群和模拟退火算法的流水车间调度方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910505977.1A CN110161997B (zh) | 2019-06-12 | 2019-06-12 | 基于蚁群和模拟退火算法的流水车间调度方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110161997A CN110161997A (zh) | 2019-08-23 |
CN110161997B true CN110161997B (zh) | 2021-11-05 |
Family
ID=67628660
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910505977.1A Active CN110161997B (zh) | 2019-06-12 | 2019-06-12 | 基于蚁群和模拟退火算法的流水车间调度方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110161997B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110909858B (zh) * | 2019-11-27 | 2023-06-02 | 安徽大学 | 一种基于双信息素蚁群算法的批调度方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104700251A (zh) * | 2015-03-16 | 2015-06-10 | 华南师范大学 | 一种车辆调度问题的改进最大-最小蚁群优化方法及系统 |
CN104914835A (zh) * | 2015-05-22 | 2015-09-16 | 齐鲁工业大学 | 一种柔性作业车间调度多目标的方法 |
CN105760954A (zh) * | 2016-02-15 | 2016-07-13 | 南通大学 | 一种基于改进蚁群算法的泊车系统路径规划方法 |
CN106844049A (zh) * | 2017-01-13 | 2017-06-13 | 广西电网有限责任公司电力科学研究院 | 一种分布式计算系统的任务分配方法 |
CN108563200A (zh) * | 2018-04-03 | 2018-09-21 | 安徽大学 | 一种基于蚁群算法的多目标的工件调度方法及装置 |
CN108665139A (zh) * | 2018-04-03 | 2018-10-16 | 安徽大学 | 一种基于蚁群算法的工件调度方法及装置 |
CN109542619A (zh) * | 2018-11-13 | 2019-03-29 | 河海大学常州校区 | 一种面向云计算中心的高效负载均衡优化调度方法 |
WO2019067446A1 (en) * | 2017-09-27 | 2019-04-04 | Duke University | SYSTEMS AND METHODS FOR BLOCKING NEURONAL CONDUCTION USING OPTIMIZED WAVEFORMS |
CN109872091A (zh) * | 2019-04-18 | 2019-06-11 | 安徽大学 | 一种基于蚁群算法的工件调度方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI362500B (en) * | 2008-03-03 | 2012-04-21 | Ind Tech Res Inst | Transformation apparatus for the signal strength in a wireless location system and method thereof |
US20160243766A1 (en) * | 2015-02-24 | 2016-08-25 | Siemens Aktiengesellschaft | Energy Star for Manufacturing |
CN107748693A (zh) * | 2017-11-30 | 2018-03-02 | 成都启力慧源科技有限公司 | 云计算环境下的群组虚拟机调度策略 |
-
2019
- 2019-06-12 CN CN201910505977.1A patent/CN110161997B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104700251A (zh) * | 2015-03-16 | 2015-06-10 | 华南师范大学 | 一种车辆调度问题的改进最大-最小蚁群优化方法及系统 |
CN104914835A (zh) * | 2015-05-22 | 2015-09-16 | 齐鲁工业大学 | 一种柔性作业车间调度多目标的方法 |
CN105760954A (zh) * | 2016-02-15 | 2016-07-13 | 南通大学 | 一种基于改进蚁群算法的泊车系统路径规划方法 |
CN106844049A (zh) * | 2017-01-13 | 2017-06-13 | 广西电网有限责任公司电力科学研究院 | 一种分布式计算系统的任务分配方法 |
WO2019067446A1 (en) * | 2017-09-27 | 2019-04-04 | Duke University | SYSTEMS AND METHODS FOR BLOCKING NEURONAL CONDUCTION USING OPTIMIZED WAVEFORMS |
CN108563200A (zh) * | 2018-04-03 | 2018-09-21 | 安徽大学 | 一种基于蚁群算法的多目标的工件调度方法及装置 |
CN108665139A (zh) * | 2018-04-03 | 2018-10-16 | 安徽大学 | 一种基于蚁群算法的工件调度方法及装置 |
CN109542619A (zh) * | 2018-11-13 | 2019-03-29 | 河海大学常州校区 | 一种面向云计算中心的高效负载均衡优化调度方法 |
CN109872091A (zh) * | 2019-04-18 | 2019-06-11 | 安徽大学 | 一种基于蚁群算法的工件调度方法及装置 |
Non-Patent Citations (2)
Title |
---|
Simulated Annealing Ant Colony Algorithm for QAP;Zhu Jingwei等;《2012 8th International Conference on Natural Computation (ICNC 2012)》;20121231;第789-793页 * |
不同容量平行机下差异工件尺寸的批调度算法;贾兆红等;《控制与决策》;20151231;第30卷(第12期);第2145-2152页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110161997A (zh) | 2019-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20180356803A1 (en) | Method and system for batch scheduling uniform parallel machines with different capacities based on improved genetic algorithm | |
CN107329461B (zh) | 一种流水线车间调度方法和装置 | |
CN110598941A (zh) | 一种基于仿生策略的粒子群优化制造系统双目标排产方法 | |
CN111382915B (zh) | 一种共融agv的柔性作业车间调度方法 | |
CN110543953A (zh) | 基于狼群算法的空间约束下多目标拆卸线设置方法 | |
CN106611288A (zh) | 一种改进的柔性流水车间调度问题的求解算法 | |
CN110161997B (zh) | 基于蚁群和模拟退火算法的流水车间调度方法及装置 | |
CN109872091B (zh) | 一种基于蚁群算法的工件调度方法及装置 | |
CN112286152B (zh) | 具有批量交付约束的分布式流水车间调度方法及系统 | |
CN111781898B (zh) | 优化最大拖期的柔性作业车间调度的分布估计算法 | |
CN111144710A (zh) | 一种可持续性混合流水车间的构建和动态调度方法 | |
CN110928261B (zh) | 分布式异构流水车间的分布估计调度方法及系统 | |
CN109214695B (zh) | 基于改进eda的高端装备研发制造协同调度方法及系统 | |
CN110909858A (zh) | 一种基于双信息素蚁群算法的批调度方法 | |
CN113157381B (zh) | 基于非支配排序和猫头鹰搜索的多工作流调度方法 | |
CN115619200B (zh) | 一种分割式Seru的排产与多能工调度组合优化方法和装置 | |
CN117077975A (zh) | 基于混合初始化模因算法的分布式异构流水车间调度方法 | |
CN111160711A (zh) | 一种基于蚁群算法的平行机批调度方法 | |
CN109447408B (zh) | 一种基于复杂网络理论的跨单元调度方法 | |
CN111596622A (zh) | Ecm规则分布估计算法的柔性作业车间调度方法 | |
CN114089699B (zh) | 一种基于细胞型膜计算模型求解混合流水车间调度的方法 | |
CN116151589A (zh) | 基于改进飞蛾扑火算法的绿色可重入车间生产调度方法 | |
CN115129002A (zh) | 一种带批处理机可重入混合流水车间调度方法及系统 | |
CN113780871A (zh) | 一种多目标低碳柔性作业车间调度方法 | |
CN111932021A (zh) | 一种再制造系统调度方法 |
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 |