CN108665139A - 一种基于蚁群算法的工件调度方法及装置 - Google Patents
一种基于蚁群算法的工件调度方法及装置 Download PDFInfo
- Publication number
- CN108665139A CN108665139A CN201810289314.6A CN201810289314A CN108665139A CN 108665139 A CN108665139 A CN 108665139A CN 201810289314 A CN201810289314 A CN 201810289314A CN 108665139 A CN108665139 A CN 108665139A
- Authority
- CN
- China
- Prior art keywords
- processed
- workpiece
- ant
- current
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
- G06Q10/06312—Adjustment or analysis of established resource schedule, e.g. resource or task levelling, or dynamic rescheduling
-
- 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]
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Human Resources & Organizations (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Strategic Management (AREA)
- Economics (AREA)
- Entrepreneurship & Innovation (AREA)
- General Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- Marketing (AREA)
- General Business, Economics & Management (AREA)
- Educational Administration (AREA)
- Development Economics (AREA)
- Health & Medical Sciences (AREA)
- Game Theory and Decision Science (AREA)
- Artificial Intelligence (AREA)
- Operations Research (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- General Factory Administration (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于蚁群算法的工件调度方法及装置,方法包括:在当前次迭代时建立第一预设数量只蚂蚁,并为当前只蚂蚁建立空批;将空批作为该蚂蚁的第一当前批,将第一待加工工件调度至第一当前批中;将第二待加工工件加入第一当前批对应的候选列表中;根据概率将第二待加工工件调度至第一当前批中;直至所有待加工工件都被调度至当前只蚂蚁对应的批中;将下一个蚂蚁作为当前只蚂蚁,并为该蚂蚁建立空批;更新信息素矩阵;判断当前次迭代对应的迭代次数是否等于最大迭代次数;若是,将当前次迭代中目标值最小的蚂蚁对应的,加工设备与待加工工件之间的对应关系作为目标调度方法。应用本发明实施例,可以将重要性更高的工件调度至对应批中。
Description
技术领域
本发明涉及一种工件调度方法及装置,更具体涉及一种基于蚁群算法的工件调度方法及装置。
背景技术
批处理机调度(简称批调度)问题是一类有着很强应用背景的组合优化问题,存在于实际生活中的许多领域,例如,医院的灭菌服务的洗涤处理领域或者工件的加工领域。以医院的灭菌服务的洗涤处理领域为例,在外科手术完成后,需要对可重复使用的医疗器械进行灭菌和消毒,因为它们在灭菌后会被重新使用。每个套装的重要程度不一样,洗涤每组套装持续的时间是不相同的。洗涤设备具有固定的容量,只要不超过该容量,它们可以同时处理多个套装。另外,由于医学器械专用要求中所要求的组织性和可追溯性,一个套装通常只能在一台洗涤设备中洗涤,不允许分开。因此,能否高效利用这些洗涤设备进行洗涤,将会严重影响灭菌处理的效率。通过将套装看作工件,自动洗涤设备看作批处理机或者加工设备,可以将套装的洗涤问题抽象为平行批处理机上工件总加权完工时间的最小化问题。而且,工件总加权完工时间(也可以称作加权流水时间)也是减少处理库存成本的关键参数,因此,求解该问题对于实现资源的高效管理和调度是非常重要的。
目前,通常使用蚁群算法进行批处理调度设计。通常情况下,在每一次迭代过程中,为每一只蚂蚁对应的预设数量的加工设备中的每一台加工设备,建构多个批,然后将待加工工件调度至该只蚂蚁对应的所有批中;依次将对所有只蚂蚁进行批的构建和待加工工件的调度。然后将当前次迭代的对应的全局最优解作为下一次迭代时信息素矩阵更新的依据,进而进行下一次迭代,直至最后一次迭代选择出全局最优解。需要说明的是,全局最优解为,第一次迭代至当前次迭代的过程中产生的最优解。
但是,现有技术中仅考虑待加工工件的尺寸,根据待加工工件的尺寸进行工件的调度;在实际应用中,每一个待加工工件的重要性可能会有区别,需要优先加工重要性更高的待加工工件,应用现有技术无法达到这个目的。因此,现有技术存在无法进行重要工件的加工调度的技术问题。
发明内容
本发明所要解决的技术问题在于提供了一种基于蚁群算法的工件调度方法及装置,以实现进行重要工件的加工调度。
本发明是通过以下技术方案解决上述技术问题的:
本发明实施例提供了一种基于蚁群算法的工件调度方法,其特征在于,所述方法包括:
在当前次迭代时,建立第一预设数量只蚂蚁,并为第一预设数量个蚂蚁中的当前只蚂蚁建立空批;
将建立的所述空批作为所述当前只蚂蚁对应的第一当前批,针对所述第一当前批,从预设的加工设备中,将最先空闲的加工设备作为第一当前批对应的当前加工设备;
将待加工工件中的第一待加工工件调度至所述第一当前批中;
将所述待加工工件中,除所述第一待加工工件之外的第二待加工工件加入所述第一当前批对应的候选列表中,且每一个所述第二待加工工件尺寸不大于所述第一当前批的剩余容量;其中,所述第一当前批的剩余容量为,所述第一当前批的总容量与所述第一待加工工件总尺寸的差;
根据所述候选列表中的每一第二待加工工件的权重和尺寸,计算所述候选列表中的第二待加工工件加入到所述第一当前批中的概率,并根据所述概率将第二待加工工件调度至所述第一当前批中,直至所述第一当前批的剩余容量小于任意一个所述待加工工件的尺寸;为所述当前只蚂蚁建立新的空批,将所述新的空批作为所述当前只蚂蚁对应的第一当前批,并返回执行所述针对所述第一当前批,从预设的加工设备中,将最先空闲的加工设备作为第一当前批对应的当前加工设备的步骤,直至所有所述待加工工件都被调度至所述当前只蚂蚁对应的批中;
将第一预设数量个蚂蚁中除当前只蚂蚁之外的其他蚂蚁中的一个作为当前只蚂蚁,并返回执行所述为第一预设数量个蚂蚁中的当前只蚂蚁建立空批的步骤,直至所述第一预设数量个蚂蚁均具有能够容纳所有待加工工件的批;
根据目标值最小的蚂蚁对应的,加工设备与待加工工件之间的对应关系,获取所述目标值最小的蚂蚁对应的信息素增量值,其中,所述目标值为,所有待加工工件被加工完成后对应的加权总完工时间;
根据所述目标值最小的蚂蚁对应的所述信息素增量值、所述目标值最小的蚂蚁对应的信息素值以及信息素蒸发率,更新信息素矩阵,其中,所述目标值为所有待加工工件被加工完成后对应的加权总完工时间;
判断当前次迭代对应的迭代次数是否等于最大迭代次数;
若否,将所述当前次迭代对应的迭代次数与预设值之和作为当前次迭代的下一次迭代的迭代次数,将所述下一次迭代对应的次数作为当前次迭代对应的迭代次数,并返回执行所述在当前次迭代时,建立第一预设数量只蚂蚁,并为第一预设数量个蚂蚁中的当前只蚂蚁建立空批的步骤;
若是,将当前次迭代中目标值最小的蚂蚁对应的,加工设备与待加工工件之间的对应关系作为目标调度方法。
可选的,在本发明实施例的一种具体实施方式中,所述根据所述候选列表中的每一第二待加工工件的权重和尺寸,计算所述候选列表中的第二待加工工件加入到所述第一当前批中的概率,并根据所述概率将第二待加工工件调度至所述第一当前批中,包括:
将所述候选列表作为当前候选列表,针对所述当前候选列表中的每一第二待加工工件,根据所述第二待加工工件的权重获取其对应的第一启发式信息;根据所述第二待加工工件的尺寸的倒数获取其对应的第二启发式信息;
根据所述第一待加工工件与第二待加工工件被分到所述第一当前批的期望值之和与所述第一待加工工件的数量的商计算所述第二待加工工件相对于所述第一当前批的信息素值;
根据所述第二待加工工件相对于所述第一当前批的信息素值、所述第一启发式信息以及所述第二启发式信息计算每一第二待加工工件的转移概率;
将所述转移概率最大的第二待加工工件调度至所述第一当前批中;将所述转移概率最大的第二待加工工件与所述第一待加工工件的集合作为第一待加工工件,并将所述待加工工件中,除所述第一待加工工件之外的第二待加工工件加入所述第一当前批对应的候选列表中,并将所述第一当前批对应的候选列表作为所述第一当前批对应的当前候选列表;并返回执行所述根据所述第二待加工工件相对于所述第一当前批的信息素值、所述第一启发式信息以及所述第二启发式信息计算每一第二待加工工件的转移概率的步骤,直至所述第一当前批的剩余容量小于任意一个所述待加工工件的尺寸。
可选的,在本发明实施例的一种具体实施方式中,在根据目标值最小的蚂蚁对应的,加工设备与待加工工件之间的对应关系,获取所述目标值最小的蚂蚁对应的信息素增量值的步骤之前,所述方法还包括:
针对所有只蚂蚁的每一台加工设备的每一个调度完成所述第二待加工工件的批,按照创建所述调度完成所述第二待加工工件的批的先后顺序进行编号;
将所述当前只蚂蚁对应的所有批中的编号最小的批作为第二当前批,将编号大于所述第二当前批的所有批中权重最大的第三待加工工件,与第二当前批中权重最小的第四待加工工件交换位置,且所述第四待加工工件的尺寸小于所述第三待加工工件所在批删除所述第三待加工工件后对应的剩余容量;所述第三待加工工件的尺寸小于所述第二当前批删除所述第四待加工工件后对应的剩余容量;
再将所述第二当前批的下一个批作为第二当前批,并返回执行所述将编号大于所述第二当前批的所有批中权重最大的第三待加工工件,与第二当前批中权重最小的第四待加工工件交换位置的步骤;直至所述当前只蚂蚁对应的批都被遍历;
将所述当前只蚂蚁的下一只蚂蚁作为当前只蚂蚁,并返回执行所述将所述当前只蚂蚁对应的所有批中的编号最小的批作为第二当前批的步骤,直至所有只蚂蚁都被遍历。
可选的,在本发明实施例的一种具体实施方式中,在根据目标值最小的蚂蚁对应的,加工设备与待加工工件之间的对应关系,获取所述目标值最小的蚂蚁对应的信息素增量值的步骤之前,所述方法还包括:
针对所有只蚂蚁的每一个调度完成所述第二待加工工件的批,按照创建所述调度完成所述第二待加工工件的批的先后顺序进行编号;
将所述当前只蚂蚁对应的所有批中的编号最小的批作为第三当前批,将编号大于所述当第三当前批的其他批中,含有的工件的权重之和最大的批,与所述第三当前批交换位置;
将所述第三当前批的下一个批作为第三当前批,并返回执行所述将所述当前只蚂蚁对应的所有批中的编号最小的批作为第三当前批,将编号大于所述当第三当前批的其他批中,含有的工件的权重之和最大的批,与所述第三当前批交换位置的步骤;直至所述当前只蚂蚁对应的批都被遍历;
将所述当前只蚂蚁的下一只蚂蚁作为当前只蚂蚁,并返回执行所述将所述当前只蚂蚁对应的所有批中的编号最小的批作为第三当前批的步骤,直至所有的蚂蚁都被遍历。
可选的,在本发明实施例的一种具体实施方式中,所述根据所述第一待加工工件与第二待加工工件被分到所述第一当前批的期望值之和与所述第一待加工工件的数量的商计算所述第二待加工工件相对于所述第一当前批的信息素值,利用的公式为,
其中,
τjbi为编号为i的当前加工设备对应的编号为j的第二待加工工件相对于所述第一当前批的信息素值,为第二待加工工件j调度至第一当前批中的期望度;φj,x为第一待加工工件jx和第二待加工工件jj被调度至所述第一当前批中的期望值,且φj,x的初始化值为((1-ρ)*LB)-1,ρ为预设的介于0和1之间的随机数;LB为预设的加权总完工时间的最小值。
可选的,在本发明实施例的一种具体实施方式中,所述根据所述第二待加工工件的权重获取其对应的第一启发式信息;根据所述第二待加工工件的尺寸的倒数获取其对应的第二启发式信息,包括:
针对每一第二待加工工件,根据所述第二待加工工件的权重,利用公式,
计算第一启发式信息,其中,
为编号为i的当前加工设备对应的编号为b的第一当前批对应的候选列表中的第二待加工工件j的第一启发式信息的值;wj为编号为i的当前加工设备对应的编号为b的第一当前批对应的候选列表中的第二待加工工件j的权重;i为所述当前加工设备对应的编号;b为所述第一当前批对应的编号;j为所述第二待加工工件对应的编号;
根据所述第二待加工工件的尺寸的倒数,利用公式,计算第二启发式信息,其中,
为编号为i的当前加工设备对应的当前候选列表中的编号为j的第二待加工工件的第二启发式信息;sj为编号为i的当前加工设备对应的当前候选列表中的第二待加工工件j的尺寸。
可选的,在本发明实施例的一种具体实施方式中,所述根据所述第二待加工工件相对于所述第一当前批的信息素值、所述第一启发式信息以及所述第二启发式信息计算每一第二待加工工件的转移概率,包括:
根据所述第二待加工工件相对于所述第一当前批的信息素值、所述第一启发式信息以及所述第二启发式信息,利用公式,
计算每一第二待加工工件的转移概率,其中,
Pjbi为编号为i的当前加工设备对应的编号为b的第一当前批对应的候选列表中的编号为j的第二待加工工件的转移概率;τjbi为编号为i的当前加工设备对应的编号为j的第二待加工工件相对于所述第一当前批的信息素值;τxbi为编号为i的当前加工设备对应的编号为x的第一待加工工件相对于所述第一当前批的信息素值;Lb为第二待加工工件的集合对应的当前候选列表;jj为第j个第二待加工工件。
可选的,在本发明实施例的一种具体实施方式中,所述根据目标值最小的蚂蚁对应的,加工设备与待加工工件之间的对应关系,获取所述目标值最小的蚂蚁对应的信息素增量值,利用的公式为,
其中,
Δφxj(l)为第l次迭代时所述目标值最小的蚂蚁对应的信息素增量值;Q为是凭经验设定的一个参数,通常置为所有待加工工件的个数n;∑wjcj(l)为全局最优解,所有加权总完工时间的最小值,wj为全局最优解对应的工件j的权重;cj为全局最优解对应的工件j的完工时间;l为迭代次数;x为第一待加工工件;j为第二待加工工件;jj为第j个第二待加工工件;jx为第x个第一待加工工件。
可选的,在本发明实施例的一种具体实施方式中,所述根据所述目标值最小的蚂蚁对应的所述信息素增量值、所述目标值最小的蚂蚁对应的信息素值以及信息素蒸发率,更新信息素矩阵,利用的公式为,
φj,x(l+1)=(1-ρ)*φj,x(l)+mj,x(l)*Δφj,x(l),其中,
φj,x(l+1)为第l+1次迭代时对应的信息素矩阵;φj,x(l)为第l次迭代时对应的信息素矩阵;mj,x(l)为第l次迭代时工件j和工件x分在同一批中的频率;Δφj,x(l)为第l次迭代时所述目标值最小的蚂蚁对应的信息素增量值;ρ为信息素蒸发率;其中,所述目标值为所有待加工工件被加工完成后对应的加权总完工时间。
本发明实施例还提供了一种基于蚁群算法的工件调度装置,所述装置包括:
建立模块、第一设置模块、调度模块、计算模块、第二设置模块、获取模块、更新模块、判断模块、第三设置模块和第四设置模块,其中,
所述建立模块,用于在当前次迭代时,建立第一预设数量只蚂蚁,并为第一预设数量个蚂蚁中的当前只蚂蚁建立空批;
所述第一设置模块,用于将建立的所述空批作为所述当前只蚂蚁对应的第一当前批,针对所述第一当前批,从预设的加工设备中,将最先空闲的加工设备作为第一当前批对应的当前加工设备;
所述调度模块,用于将所述待加工工件中,除所述第一待加工工件之外的第二待加工工件加入所述第一当前批对应的候选列表中,且每一个所述第二待加工工件尺寸不大于所述第一当前批的剩余容量;其中,所述第一当前批的剩余容量为,所述第一当前批的总容量与所述第一待加工工件总尺寸的差;
所述计算模块,用于根据所述候选列表中的每一第二待加工工件的权重和尺寸,计算所述候选列表中的第二待加工工件加入到所述第一当前批中的概率,并根据所述概率将第二待加工工件调度至所述第一当前批中,直至所述第一当前批的剩余容量小于任意一个所述待加工工件的尺寸;为所述当前只蚂蚁建立新的空批,将所述新的空批作为所述当前只蚂蚁对应的第一当前批,并触发所述第一设置模块,直至所有所述待加工工件都被调度至所述当前只蚂蚁对应的批中;
所述第二设置模块,用于将第一预设数量个蚂蚁中除当前只蚂蚁之外的其他蚂蚁中的一个作为当前只蚂蚁,并触发所述建立模块,直至所述第一预设数量个蚂蚁均具有能够容纳所有待加工工件的批;
所述获取模块,用于根据目标值最小的蚂蚁对应的,加工设备与待加工工件之间的对应关系,获取所述目标值最小的蚂蚁对应的信息素增量值,其中,所述目标值为,所有待加工工件被加工完成后对应的加权总完工时间;
所述更新模块,用于根据所述目标值最小的蚂蚁对应的所述信息素增量值、所述目标值最小的蚂蚁对应的信息素值以及信息素蒸发率,更新信息素矩阵,其中,所述目标值为所有待加工工件被加工完成后对应的加权总完工时间;
所述判断模块,用于判断当前次迭代对应的迭代次数是否等于最大迭代次数;
所述第三设置模块,用于在所述判断模块的判断结果为否的情况下,将所述当前次迭代对应的迭代次数与预设值之和作为当前次迭代的下一次迭代的迭代次数,并触发所述建立模块;
所述第四设置模块,用于在所述判断模块的判断结果为否的情况下,将当前次迭代中目标值最小的蚂蚁对应的,加工设备与待加工工件之间的对应关系作为目标调度方法。
本发明相比现有技术具有以下优点:
应用本发明实施例,根据工件的重要性对应的权重获取该工件对应的第二启发式信息,进而根据该启发式信息计算第二待加工工件被调度至对应的批中的转移概率,由于转移概率越高的第二待加工工件对应的权重越高,因此,应用本发明实施例,可以将重要性更高的工件调度至对应批中。
附图说明
图1为本发明实施例提供的一种基于蚁群算法的工件调度方法的流程示意图;
图2为本发明实施例提供的一种基于蚁群算法的工件调度装置的结构示意图。
具体实施方式
下面对本发明的实施例作详细说明,本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
为解决现有技术问题,本发明实施例提供了一种基于蚁群算法的工件调度方法及装置,下面首先就本发明实施例提供的一种基于蚁群算法的工件调度方法进行介绍。
图1为本发明实施例提供的一种基于蚁群算法的工件调度方法的流程示意图;如图1所示,所述方法包括:
S101:在当前次迭代时,建立第一预设数量只蚂蚁,并为第一预设数量个蚂蚁中的当前只蚂蚁建立空批。
具体的,以第一次迭代为例,并把第一次迭代作为当前次迭代。在当前次迭代开始时,建立t只蚂蚁。可以为每只蚂蚁编号为:1、2、3、……、t。然后将编号为1的蚂蚁-1作为当前只蚂蚁,为该只蚂蚁建立空批,该空批的标识信息为批-1,蚂蚁-1可以具有b个批。
可以理解的是,空批可以理解为批的一种具象形式,批可以包含已经被调度了待加工工件的空批,和未被调度了待加工工件的空批。另外,空批的容量不大于加工设备的容量;例如,加工设备的容量为可以加工100单位的待加工工件,则空批的容量可以小于或者等于加工设备的容量。在调度时,加工设备的容量可以被完全利用,也可以不被完全利用。
每一个待加工工件的尺寸s可以不相同。另外,为t只蚂蚁建立空批的步骤可以并行执行,也可以从第1只蚂蚁开始,按照蚂蚁的编号以从小到大的顺序,依次进行;也可以从第t只蚂蚁开始,按照蚂蚁的编号以从大到小的顺序,依次进行;本发明实施例对此并不作出限定。
S102:将建立的所述空批作为所述当前只蚂蚁对应的第一当前批,针对所述第一当前批,从预设的加工设备中,将最先空闲的加工设备作为第一当前批对应的当前加工设备。
示例性的,将S101步骤中建立的批-1作为蚂蚁-1的第一当前批。如果有n个待加工工件,m台加工设备,每一个待加工工件的尺寸可以相同,也可以不同;每一个待加工工件的重要性可以相同,也可以不同。将待加工工件的尺寸标记为sj,重要性对应的权重为wj;每台加工设备的容量为S。
在实际应用中,由于加工设备可能正在加工除本发明实施例需要调度的待加工工件之外的其他工件,因此,将最先空闲的加工设备,加工设备-1作为批-1对应的当前加工设备。
可以理解的是,最先空闲的加工设备可以为,已经将被调度至该设备的待加工工件已经被该加工设备加工完成,且该加工设备未被调度其他待加工工件。需要强调的是,第一当前批的总容量不大于当前加工设备的总容量。
S103:将待加工工件中的第一待加工工件调度至所述第一当前批中。
示例性的,可以在n个待加工工件中随机选择工件-1作为第一待加工工件调度至批-1中。
可以理解的是,在实际应用中,也可以按照预设规则选择工件-1作为第一待加工工件调度至批-1中,例如,选择权重最大的待加工工件作为第一待加工工件,本发明实施例在此并不对其作出限定。
S104:将所述待加工工件中,除所述第一待加工工件之外的第二待加工工件加入所述第一当前批对应的候选列表中,且每一个所述第二待加工工件尺寸不大于所述第一当前批的剩余容量;其中,所述第一当前批的剩余容量为,所述第一当前批的总容量与所述第一待加工工件总尺寸的差。
示例性的,由于在S103步骤中,n个待加工工件中的工件-1被调度至批-1中,n个待加工工件中还剩余n-1个待加工工件。为批-1构建候选列表-1;从剩余n-1个待加工工件中选择第二待加工工件加入到候选列表-1中。
被加入到候选列表-1中的待加工工件需要满足以下要求:
其中,
Lb为候选列表-1中包含的待加工工件的集合;jj为将要被调度至候选列表-1的待加工工件,其编号为j;sj为编号为j的将要被调度至候选列表-1的待加工工件尺寸;S为批-1的容量;∑为求和函数;sx为批-1中的编号为x的待加工工件的尺寸;x为候选列表-1中待加工工件的编号。
即,候选列表-1中的每一个第二待加工工件的尺寸不能超过批-1的剩余容量,其中,剩余容量为,批-1的总容量减去已被调度至批-1的所有第一待加工工件总尺寸后的容量。
S105:根据所述候选列表中的每一第二待加工工件的权重和尺寸,计算所述候选列表中的第二待加工工件加入到所述第一当前批中的概率,并根据所述概率将第二待加工工件调度至所述第一当前批中,直至所述第一当前批的剩余容量小于任意一个所述待加工工件的尺寸;为所述当前只蚂蚁建立新的空批,将所述新的空批作为所述当前只蚂蚁对应的第一当前批,并返回执行所述针对所述第一当前批,从预设的加工设备中,将最先空闲的加工设备作为第一当前批对应的当前加工设备的步骤,直至所有所述待加工工件都被调度至所述当前只蚂蚁对应的批中。
具体的,可以将所述候选列表作为当前候选列表,针对所述当前候选列表中的每一第二待加工工件,根据所述第二待加工工件的权重获取其对应的第一启发式信息;根据所述第二待加工工件的尺寸的倒数获取其对应的第二启发式信息;根据所述第一待加工工件与第二待加工工件被分到所述第一当前批的期望值之和与所述第一待加工工件的数量的商计算所述第二待加工工件相对于所述第一当前批的信息素值;根据所述第二待加工工件相对于所述第一当前批的信息素值、所述第一启发式信息以及所述第二启发式信息计算每一第二待加工工件的转移概率;将所述转移概率最大的第二待加工工件调度至所述第一当前批中;将所述转移概率最大的第二待加工工件与所述第一待加工工件的集合中的工件作为第一待加工工件,并将所述待加工工件中,除所述第一待加工工件之外的第二待加工工件加入所述第一当前批对应的候选列表中,并将所述第一当前批对应的候选列表作为所述第一当前批对应的当前候选列表;并返回执行所述根据所述第二待加工工件相对于所述第一当前批的信息素值、所述第一启发式信息以及所述第二启发式信息计算每一第二待加工工件的转移概率的步骤,直至所述第一当前批的剩余容量小于任意一个所述待加工工件的尺寸。
具体的,根据所述第一待加工工件与第二待加工工件被分到所述第一当前批的期望值之和与所述第一待加工工件的数量的商计算所述第二待加工工件相对于所述第一当前批的信息素值,利用的公式为,
其中,
τjbi为编号为i的当前加工设备对应的编号为j的第二待加工工件相对于所述第一当前批的信息素值,为第二待加工工件j调度至第一当前批中的期望度;φj,x为第一待加工工件jx和第二待加工工件Jj被调度至所述第一当前批中的期望值,且φj,x的初始化值为((1-ρ)*LB)-1,ρ为预设的介于0和1之间的随机数;LB为预设的加权总完工时间的最小值。
具体的,可以针对每一第二待加工工件,根据所述第二待加工工件的权重,利用公式,
计算第一启发式信息,其中,
为编号为i的当前加工设备对应的编号为b的第一当前批对应的候选列表中的第二待加工工件j的第一启发式信息的值;wj为编号为i的当前加工设备对应的编号为b的第一当前批对应的候选列表中的第二待加工工件j的权重;i为所述当前加工设备对应的编号;b为所述第一当前批对应的编号;j为所述第二待加工工件对应的编号;
根据所述第二待加工工件的尺寸的倒数,利用公式,计算第二启发式信息,其中,
为编号为i的当前加工设备对应的当前候选列表中的编号为j的第二待加工工件的第二启发式信息;sj为编号为i的当前加工设备对应的当前候选列表中的第二待加工工件j的尺寸。
具体的,可以根据所述第二待加工工件相对于所述第一当前批的信息素值、所述第一启发式信息以及所述第二启发式信息,利用公式,
计算每一第二待加工工件的转移概率,其中,
Pjbi为编号为i的当前加工设备对应的编号为b的第一当前批对应的候选列表中的编号为j的第二待加工工件的转移概率;τjbi为编号为i的当前加工设备对应的编号为j的第二待加工工件相对于所述第一当前批的信息素值;τxbi为编号为i的当前加工设备对应的编号为x的第一待加工工件相对于所述第一当前批的信息素值;Lb为第二待加工工件的集合对应的当前候选列表;jj为第j个第二待加工工件。
示例性的,针对S104步骤中创建的批-1对应的当前候选列表,候选列表-1中的每一个第二待加工工件,以编号为j的第二待加工工件为例进行详细说明:
第一步,可以根据编号为j的第二待加工工件对应的权重,利用公式,
计算第一启发式信息,其中,
为设备-1对应的候选列表-1中的第二待加工工件j的第一启发式信息的值;wj为设备-1对应的候选列表-1中编号为的j第二待加工工件的权重;i为所述当前加工设备对应的编号,取值为1;b为批-1的编号,取值为1;j为所述第二待加工工件对应的编号,取值为j。
根据编号为j的第二待加工工件的尺寸的倒数,利用公式,计算第二启发式信息,其中,
为设备-1对应的候选列表中的编号为的j第二待加工工件的第二启发式信息;sj为设备-1对应的候选列表中的编号为的j第二待加工工件的尺寸。
第二步,可以利用的公式,计算所述第二待加工工件相对于所述第一当前批的信息素值,其中,
τjbi为设备-1对应的编号为的j第二待加工工件相对于所述第一当前批的信息素值;φj,x为第一待加工工件jx和第二待加工工件jj被调度至批-1中的期望值,且φj,x的初始化值为((1-ρ)*LB)-1,ρ为预设的介于0和1之间的随机数;LB为预设的加权总完工时间的最小值。
需要强调的是,每个待加工工件的加工难度是相同的,例如,某一加工设备的容量为40,即该加工设备一次可以加工总尺寸为40的待加工工件。另外,该加工设备对于每一个批的加工时间为1秒,可以同时加工40单位尺寸的工件。将待加工工件,尺寸为4的工件-1调度至加工设备,加工设备的加工时长为1s,将尺寸为33的工件-2调度至该加工设备,该加工设备的加工时长为1s。
在实际应用中,可以通过以下方式计算LB的值:
假设待调度工件的尺寸分别为5、7、8、12、13、17、20;
对应的权重分别为8、7、6、5、5、4、3;然后将每一个待调度工件拆分成尺寸为1的拆分后工件,然后将每个拆分后的工件的权重设置为,拆分前的权重与拆分后工件数量的商,例如,尺寸为5,权重为8的待调度工件被拆分成了5个尺寸为1的拆分后工件,每一个拆分后的工件的权重为8/5。
然后按照权重从大到小的顺序对拆分后的工件进行排序,然后按照权重从大到小的顺序将拆分后工件调度至批中,每一个批的容量为5;进而获取多个批,例如得到了批-1、批-2、批-3。假设批-1中的工件为5个权重为8/5的拆分后工件,批-2中的工件为5个权重为1的拆分后工件,批-3中的工件为5个权重为3/4的拆分后工件,且每一个批的加工时长为1,则有:
LB=LB批-1+LB批-2+LB批-3
且,LB批-1=(8/5*1+8/5*1+8/5*1+8/5*1+8/5*1),类似的,按照上述方法计算LB批-2和LB批-3:
如果批-2中被调度的工件为:尺寸为7,权重为7的待加工工件中的5个拆分后的工件,每一个工件的权重为7/7=1。
LB批-2=(1*2+1*2+1*2+1*2+1*2)
类似的,尺寸为7,权重为7的待加工工件对应的拆分后的工件共有7个,按照权重的顺序,还有2个未被调度,需要按顺序将这两个拆分后的工件调度至批-3中,然后将尺寸为8,权重为6的待加工工件对应的拆分后的工件调度至批-3中,则有,
LB批-3=(1*3+1*3+3/4*3+3/4*3+3/4*3)
进而计算出根据LB=LB批-1+LB批-2+LB批-3计算LB。
第三步,可以根据所述第二待加工工件相对于所述第一当前批的信息素值、所述第一启发式信息以及所述第二启发式信息,利用公式,
计算每一第二待加工工件的转移概率,其中,
Pjbi为设备-1对应的候选列表-1中的编号为的j第二待加工工件的转移概率;τjbi为设备-1对应的编号为的j第二待加工工件相对于所述第一当前批的信息素值;τxbi为设备-1对应的编号为x的第一待加工工件相对于所述第一当前批的信息素值;Lb为第二待加工工件的集合对应的候选列表-1;jj为第j个第二待加工工件。
第四步,当前候选列表,候选列表-1中所有的第二待加工工件的转移概率计算完成后,将转移概率最大的编号为j的第二待加工工件调度至批-1中,由于第二待加工工件j被调度至了批-1中,则新的批-1对应的第一待加工工件包含了第二待加工工件j和之前的第一待加工工件。将未被调度的待加工工件中,除新的批-1中的第一待加工工件之外的第二待加工工件加入第一当前批对应的新的候选列表-2中,且,该新的候选列表-2中的每一个第二待加工工件的尺寸小于新的批-1的剩余容量;将新的批-1作为第一当前批,将新的候选列表-2作为当前候选列表。在实际应用中可以将新的候选列表-2作为下一步骤中的当前候选列表,也就是候选列表-1,并返回执行前述第三步的步骤,直至所述第一当前批的剩余容量小于任意一个所述待加工工件的尺寸。
可以理解的是,第一当前批的剩余容量小于任一一个所述待加工工件的尺寸,可以为,第一当前批的剩余容量为零;或者第一当前批的剩余容量不够容纳任意一个所述待加工工件。
第五步,在所述第一当前批的剩余容量小于任意一个所述待加工工件的尺寸后,返回执行S102步骤。
示例性的,在第一当前批,批-1被调度完成后,即第一当前批的剩余容量小于任意一个所述待加工工件的尺寸后,建立一个新的空批,批-2,并将批-2作为第一当前批,然后针对第一当前批执行S102步骤。
S106:将第一预设数量个蚂蚁中除当前只蚂蚁之外的其他蚂蚁中的一个作为当前只蚂蚁,并返回执行所述为第一预设数量个蚂蚁中的当前只蚂蚁建立空批的步骤,直至所述第一预设数量个蚂蚁均具有能够容纳所有待加工工件的批。
示例性的,在所有待加工工件都被调度至蚂蚁-1对应的批中后,将t只蚂蚁中除蚂蚁-1之外的其他一只蚂蚁作为当前只蚂蚁,如果该蚂蚁为蚂蚁-2,则将蚂蚁-2作为当前只蚂蚁,返回执行S101步骤。直至t只蚂蚁中的每一只蚂蚁的批容纳了全部有n个待加工工件。
S107:根据目标值最小的蚂蚁对应的,加工设备与待加工工件之间的对应关系,获取所述目标值最小的蚂蚁对应的信息素增量值,其中,所述目标值为,所有待加工工件被加工完成后对应的加权总完工时间。
具体的,根据目标值最小的蚂蚁对应的,加工设备与待加工工件之间的对应关系,获取所述目标值最小的蚂蚁对应的信息素增量值,利用的公式为,
其中,
Δφxj(l)为第l次迭代时所述目标值最小的蚂蚁对应的信息素增量值;Q为是凭经验设定的一个参数,通常置为所有待加工工件的个数n;∑wjcj(l)为全局最优解,所有加权总完工时间的最小值,wj为全局最优解对应的工件j的权重;cj为全局最优解对应的工件j的完工时间;l为迭代次数;x为第一待加工工件;j为第二待加工工件;jj为第j个第二待加工工件;jx为第x个第一待加工工件。
示例性的,可以按照S105步骤中计算LB的步骤计算当前次迭代中,每一只蚂蚁对应的目标值:
假设当前只蚂蚁具有三个批:批-1、批-2、批-3;且批-1的加工时间区间为0-1s、批-2的加工时间区间为1-2s、批-3的加工时间区间为2-3s。
以批-1为例,批-1对应的加权总完工时间为:批-1的加权总完工时间为:批-1中的各个工件的权重与1之积的和;类似的,批-2、批-3也按照上述方法计算。
然后将批-1、批-2、批-3对应的加权总完工时间的和作为当前只蚂蚁对应的加权总完工时间。
然后筛选出目标值最小的蚂蚁,如果找到的目标值最小的蚂蚁为蚂蚁-8。
利用的公式,
计算蚂蚁-8对应的信息素增量值,其中,
Δφxj(l)为第l次迭代时蚂蚁-8对应的信息素增量值;Q为是凭经验设定的一个参数,通常设置为所有待加工工件的个数;∑wjcj(l)为蚂蚁-8对应的所有待加工工件的加权总完工时间,wj为蚂蚁-8对应的工件j的权重;cj为蚂蚁-8对应的工件j的完工时间;l为迭代次数,在本次迭代中值为1。
S108:根据所述目标值最小的蚂蚁对应的所述信息素增量值、所述目标值最小的蚂蚁对应的信息素值以及信息素蒸发率,更新信息素矩阵,其中,所述目标值为所有待加工工件被加工完成后对应的加权总完工时间。
具体的,根据所述目标值最小的蚂蚁对应的所述信息素增量值、所述目标值最小的蚂蚁对应的信息素值以及信息素蒸发率,更新信息素矩阵,利用的公式为,
φj,x(l+1)=(1-ρ)*φj,x(l)+mj,x(l)*Δφj,x(l),其中,
φj,x(l+1)为第l+1次迭代时对应的信息素矩阵;φj,x(l)为第l次迭代时对应的信息素矩阵;mj,x(l)为第l次迭代时工件j和工件x分在同一批中的频率;Δφj,x(l)为第l次迭代时所述目标值最小的蚂蚁对应的信息素增量值;ρ为信息素蒸发率;其中,所述目标值为所有待加工工件被加工完成后对应的加权总完工时间。
示例性的,利用的公式,
φj,x(l+1)=(1-ρ)*φj,x(l)+mj,x(l)*Δφj,x(l),更新信息素矩阵,其中,
φj,x(l+1)为第l+1次迭代时对应的信息素矩阵;φj,x(l)为第l次迭代时对应的信息素矩阵;mj,x(l)为第l次迭代时工件j和工件x分在同一批中的频率;Δφj,x(l)为S106步骤中计算的第l次迭代时所述目标值最小的蚂蚁对应的信息素增量值,且l的取值为1;ρ为预设的信息素蒸发率。
可以理解的是,在第一次迭代之时,上一次迭代对应的信息素矩阵中的元素的值均为零。
S109:判断当前次迭代对应的迭代次数是否等于最大迭代次数。
示例性的,根据当前次迭代的迭代次数,与预设的迭代次数对比,判断当前次迭代的迭代次数是否等于预设的最大迭代次数,若是,说明,迭代次数已经达到了最大迭代次数,执行S1011步骤;若否,说明迭代次数还未达到最大迭代次数,执行S1010步骤。
S1010:将所述当前次迭代对应的迭代次数与预设值之和作为当前次迭代的下一次迭代的迭代次数,将所述下一次迭代对应的次数作为当前次迭代对应的迭代次数,并返回执行所述在当前次迭代时,建立第一预设数量只蚂蚁,并为第一预设数量个蚂蚁中的当前只蚂蚁建立空批的步骤。
示例性的,当前次迭代对应的迭代次数为1,如果预设值为1,则将1+1=2作为第一次迭代的下一次迭代的迭代次数,并返回执行S101步骤。
在实际应用中,第一次迭代对应的迭代次数可以用100表示,第二次迭代对应的迭代次数可以用400表示,第三次迭代对应的迭代次数可以用700表示,相应的预设值为300。本发明实施例并不对迭代次数的表征方式进行限定。
S1011:将当前次迭代中目标值最小的蚂蚁对应的,加工设备与待加工工件之间的对应关系作为目标调度方法。
示例性的,如果第45次迭代为最大迭代次数,则将第45次迭代时目标值最小的蚂蚁对应的,待加工工件与加工设备的对应关系作为目标调度方法,进行输出。
应用本发明图1所示实施例,根据工件的重要性对应的权重获取该工件对应的第二启发式信息,进而根据该启发式信息计算第二待加工工件被调度至对应的批中的转移概率,由于转移概率越高的第二待加工工件对应的权重越高,因此,应用本发明实施例,可以将重要性更高的工件调度至对应批中。
在本发明实施例的一种具体实施方式中,在S107步骤之前,所述方法还包括:
A(图中未示出):针对所有只蚂蚁的每一台加工设备的每一个调度完成所述第二待加工工件的批,按照创建所述调度完成所述第二待加工工件的批的先后顺序进行编号。
示例性的,如果在第l次迭代时,第1只蚂蚁的加工设备-1已经有批-1、批-4和批-7;且,
批-1中包含工件-1、工件-2、工件-3;
批-4中包含工件-10、工件-11、工件-12;
批-7中包含工件-19、工件-20、工件-21;
第1只蚂蚁的加工设备-2已经有批-2、批-5和批-8;且,
批-2中包含工件-4、工件-5、工件-6;
批-5中包含工件-13、工件-14、工件-15;
批-8中包含工件-22、工件-23、工件-24;
第1只蚂蚁的加工设备-3已经有批-3、批-6和批-9;且,
批-3中包含工件-7、工件-8、工件-9;
批-6中包含工件-16、工件-17、工件-18;
批-9中包含工件-25、工件-26、工件-27。
对各个批以及各个批中的待加工工件进行编号,如上所示,其中各个批的编号是按照每一个批被创建的先后顺序进行的,最先创建的批的编号为1:各每一个批中的待加工工件的编号方式是按照被调度至该批的先后顺序进行编号的,例如,最先被调度至第一只蚂蚁,蚂蚁-1的批-1中的待加工工件的编号为工件-1。
B(图中未示出):将所述当前只蚂蚁对应的所有批中的编号最小的批作为第二当前批,将编号大于所述第二当前批的所有批中权重最大的第三待加工工件,与第二当前批中权重最小的第四待加工工件交换位置,且所述第四待加工工件的尺寸小于所述第三待加工工件所在批删除所述第三待加工工件后对应的剩余容量;所述第三待加工工件的尺寸小于所述第二当前批删除所述第四待加工工件后对应的剩余容量。
示例性的,以当前只蚂蚁,蚂蚁-1为例,将批-1作为第二当前批,从批-2至批-9中筛选出权重最大的第三待加工工件,假设筛选出的第三待加工工件为工件-15,批-1中的权重最小的第四待加工工件为工件-2。如果在工件-15的尺寸小于批-1删除工件-2后的剩余容量的同时,且工件-2的尺寸小于批-5删除工件-15后的剩余容量时,将工件-15和工件-2交换位置。
C(图中未示出):再将所述第二当前批的下一个批作为第二当前批,并返回执行所述将编号大于所述第二当前批的所有批中权重最大的第三待加工工件,与第二当前批中权重最小的第四待加工工件交换位置的步骤;直至所述当前只蚂蚁对应的批都被遍历。
示例性的,将批-2作为第二当前批,从批-3至批-9中筛选出权重最大的第三待加工工件,然后将筛选出的第三待加工工件与批-2中权重最小的第四待加工工件交换位置。
需要说明的是,第二当前批的下一个批为,在将批按照编号从小到大依次排序时,编号大于第二当前批的批;例如,批-1的下一个批为批-2;批-2的下一个批为批-3。
依次按照上述方式对当前只蚂蚁对应所有批执行上述操作,直至遍历了所有批。
D(图中未示出):将所述当前只蚂蚁的下一只蚂蚁作为当前只蚂蚁,并返回执行所述将所述当前只蚂蚁对应的所有批中的编号最小的批作为第二当前批的步骤,直至所有只蚂蚁都被遍历。
示例性的,在蚂蚁-1的所有批执行完上述操作后,将当前只蚂蚁,蚂蚁-1的下一只蚂蚁,蚂蚁-2作为当前只蚂蚁,依次按照上述方式对蚂蚁-2的所有批执行上述操作。直至蚂蚁-2对应的所有加工设备都被遍历。
需要强调的是,该执行过程可以为并行,也可以逐只蚂蚁进行。
应用本发明上述实施例,将每一只蚂蚁中的批中的待加工工件进行优化,将权重较大的待加工工件调度至最先空闲的加工设备对应的先被加工的批中,可以优先加工权重较大的待加工工件。
在本发明实施例的一种具体实施方式中,在S107步骤之前,所述方法还包括:
E(图中未示出):针对所有只蚂蚁的每一个调度完成所述第二待加工工件的批,按照创建所述调度完成所述第二待加工工件的批的先后顺序进行编号。
示例性的,编号结果如前述步骤A中所示。另外,还可以对每一只蚂蚁进行编号,编号顺序可以为各只蚂蚁被创建的顺序。
F(图中未示出):将所述当前只蚂蚁对应的所有批中的编号最小的批作为第三当前批,将编号大于所述第三当前批的其他批中,含有的工件的权重之和最大的批,与所述第三当前批交换位置。
示例性的,假设将第1只蚂蚁作为当前只蚂蚁,第1只蚂蚁的批-1作为第三当前批,在批-2至批-9中筛选包含的待加工工件的权重之和最大的批,如果包含的待加工工件的权重之和最大的批为批-5,则将批-5与批-1交换位置。可以理解的是,批-1与批-5交换位置是指,前述批-1中的所有待加工工件与批-5中的所有待加工工件交换位置。
G(图中未示出):将所述第三当前批的下一个批作为第三当前批,并返回执行所述将所述当前只蚂蚁对应的所有批中的编号最小的批作为第三当前批,将编号大于所述第三当前批的其他批中,含有的工件的权重之和最大的批,与所述第三当前批交换位置的步骤;直至所述当前只蚂蚁对应的批都被遍历。
示例性的,将当前批,批-1的下一个批为批-2,将批-2作为第三当前批,并从批-3至批-9中筛选包含的待加工工件的权重之和最大的批,如果包含的待加工工件的权重之和最大的批为批-7,则将批-7与批-2交换位置。可以理解的是,批-2与批-7交换位置是指,批-2中的所有待加工工件与批-5中的所有待加工工件交换位置,直至所有加工设备中的所有批都被遍历。
H(图中未示出):将所述当前只蚂蚁的下一只蚂蚁作为当前只蚂蚁,并返回执行所述将所述当前只蚂蚁对应的所有批中的编号最小的批作为第三当前批的步骤,直至所有的蚂蚁都被遍历。
示例性的,在蚂蚁-1的所有批执行完上述操作后,将当前只蚂蚁,蚂蚁-1的下一只蚂蚁,蚂蚁-2作为当前只蚂蚁,依次按照上述方式对蚂蚁-2的所有批执行上述操作。直至蚂蚁-2对应的所有加工设备都被遍历。
需要强调的是,该执行过程可以为并行,也可以逐只蚂蚁进行。
应用本发明上述实施例,将每一只蚂蚁中的批中的待加工设备进行优化,将权重较大的待加工工件调度至最先空闲的加工设备对应的先被加工的批中,可以优先加工权重较大的待加工工件。
与本发明图1所示实施例相对应,本发明实施例还提供了一种基于蚁群算法的工件调度装置的结构。
图2为本发明实施例提供的一种基于蚁群算法的工件调度装置的结构示意图,如图2所示,所述装置包括:
建立模块201、第一设置模块202、调度模块203、计算模块204、第二设置模205、获取模块206、更新模块207、判断模块208、第三设置模块209和第四设置模块2010,其中,
所述建立模块201,用于在当前次迭代时,建立第一预设数量只蚂蚁,并为第一预设数量个蚂蚁中的当前只蚂蚁建立空批;
所述第一设置模块202,用于将建立的所述空批作为所述当前只蚂蚁对应的第一当前批,针对所述第一当前批,从预设的加工设备中,将最先空闲的加工设备作为第一当前批对应的当前加工设备;
所述调度模块203,用于将所述待加工工件中,除所述第一待加工工件之外的第二待加工工件加入所述第一当前批对应的候选列表中,且每一个所述第二待加工工件尺寸不大于所述第一当前批的剩余容量;其中,所述第一当前批的剩余容量为,所述第一当前批的总容量与所述第一待加工工件总尺寸的差;
所述计算模块204,用于根据所述候选列表中的每一第二待加工工件的权重和尺寸,计算所述候选列表中的第二待加工工件加入到所述第一当前批中的概率,并根据所述概率将第二待加工工件调度至所述第一当前批中,直至所述第一当前批的剩余容量小于任意一个所述待加工工件的尺寸;为所述当前只蚂蚁建立新的空批,将所述新的空批作为所述当前只蚂蚁对应的第一当前批,并触发所述第一设置模块202,直至所有所述待加工工件都被调度至所述当前只蚂蚁对应的批中;
所述第二设置模205,用于将第一预设数量个蚂蚁中除当前只蚂蚁之外的其他蚂蚁中的一个作为当前只蚂蚁,并触发所述建立模块201,直至所述第一预设数量个蚂蚁均具有能够容纳所有待加工工件的批;
所述获取模块206,用于根据目标值最小的蚂蚁对应的,加工设备与待加工工件之间的对应关系,获取所述目标值最小的蚂蚁对应的信息素增量值,其中,所述目标值为,所有待加工工件被加工完成后对应的加权总完工时间;
所述更新模块207,用于根据所述目标值最小的蚂蚁对应的所述信息素增量值、所述目标值最小的蚂蚁对应的信息素值以及信息素蒸发率,更新信息素矩阵;
所述判断模块208,用于判断当前次迭代对应的迭代次数是否等于最大迭代次数;
所述第三设置模块209,用于在所述判断模块208的判断结果为否的情况下,将所述当前次迭代对应的迭代次数与预设值之和作为当前次迭代的下一次迭代的迭代次数,并触发所述建立模块201;
所述第四设置模块2010,用于在所述判断模块208的判断结果为否的情况下,将当前次迭代中目标值最小的蚂蚁对应的,加工设备与待加工工件之间的对应关系作为目标调度方法。
应用本发明图2所示实施例,根据工件的重要性对应的权重获取该工件对应的第二启发式信息,进而根据该启发式信息计算第二待加工工件被调度至对应的批中的转移概率,由于转移概率越高的第二待加工工件对应的权重越高,因此,应用本发明实施例,可以将重要性更高的工件调度至对应批中。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于蚁群算法的工件调度方法,其特征在于,所述方法包括:
在当前次迭代时,建立第一预设数量只蚂蚁,并为第一预设数量个蚂蚁中的当前只蚂蚁建立空批;
将建立的所述空批作为所述当前只蚂蚁对应的第一当前批,针对所述第一当前批,从预设的加工设备中,将最先空闲的加工设备作为第一当前批对应的当前加工设备;
将待加工工件中的第一待加工工件调度至所述第一当前批中;
将所述待加工工件中,除所述第一待加工工件之外的第二待加工工件加入所述第一当前批对应的候选列表中,且每一个所述第二待加工工件尺寸不大于所述第一当前批的剩余容量;其中,所述第一当前批的剩余容量为,所述第一当前批的总容量与所述第一待加工工件总尺寸的差;
根据所述候选列表中的每一第二待加工工件的权重和尺寸,计算所述候选列表中的第二待加工工件加入到所述第一当前批中的概率,并根据所述概率将第二待加工工件调度至所述第一当前批中,直至所述第一当前批的剩余容量小于任意一个所述待加工工件的尺寸;为所述当前只蚂蚁建立新的空批,将所述新的空批作为所述当前只蚂蚁对应的第一当前批,并返回执行所述针对所述第一当前批,从预设的加工设备中,将最先空闲的加工设备作为第一当前批对应的当前加工设备的步骤,直至所有所述待加工工件都被调度至所述当前只蚂蚁对应的批中;
将第一预设数量个蚂蚁中除当前只蚂蚁之外的其他蚂蚁中的一个作为当前只蚂蚁,并返回执行所述为第一预设数量个蚂蚁中的当前只蚂蚁建立空批的步骤,直至所述第一预设数量个蚂蚁均具有能够容纳所有待加工工件的批;
根据目标值最小的蚂蚁对应的,加工设备与待加工工件之间的对应关系,获取所述目标值最小的蚂蚁对应的信息素增量值,其中,所述目标值为所有待加工工件被加工完成后对应的加权总完工时间;
根据所述目标值最小的蚂蚁对应的所述信息素增量值、所述目标值最小的蚂蚁对应的信息素值以及信息素蒸发率,更新信息素矩阵,其中,所述目标值为所有待加工工件被加工完成后对应的加权总完工时间;
判断当前次迭代对应的迭代次数是否等于最大迭代次数;
若否,将所述当前次迭代对应的迭代次数与预设值之和作为当前次迭代的下一次迭代的迭代次数,将所述下一次迭代对应的次数作为当前次迭代对应的迭代次数,并返回执行所述在当前次迭代时,建立第一预设数量只蚂蚁,并为第一预设数量个蚂蚁中的当前只蚂蚁建立空批的步骤;
若是,将当前次迭代中目标值最小的蚂蚁对应的,加工设备与待加工工件之间的对应关系作为目标调度方法。
2.根据权利要求1所述的一种基于蚁群算法的工件调度方法,其特征在于,所述根据所述候选列表中的每一第二待加工工件的权重和尺寸,计算所述候选列表中的第二待加工工件加入到所述第一当前批中的概率,并根据所述概率将第二待加工工件调度至所述第一当前批中,包括:
将所述候选列表作为当前候选列表,针对所述当前候选列表中的每一第二待加工工件,根据所述第二待加工工件的权重获取其对应的第一启发式信息;根据所述第二待加工工件的尺寸的倒数获取其对应的第二启发式信息;
根据所述第一待加工工件与第二待加工工件被分到所述第一当前批的期望值之和与所述第一待加工工件的数量的商计算所述第二待加工工件相对于所述第一当前批的信息素值;
根据所述第二待加工工件相对于所述第一当前批的信息素值、所述第一启发式信息以及所述第二启发式信息计算每一第二待加工工件的转移概率;
将所述转移概率最大的第二待加工工件调度至所述第一当前批中;将所述转移概率最大的第二待加工工件与所述第一待加工工件的集合作为第一待加工工件,并将所述待加工工件中,除所述第一待加工工件之外的第二待加工工件加入所述第一当前批对应的候选列表中,并将所述第一当前批对应的候选列表作为所述第一当前批对应的当前候选列表;并返回执行所述根据所述第二待加工工件相对于所述第一当前批的信息素值、所述第一启发式信息以及所述第二启发式信息计算每一第二待加工工件的转移概率的步骤,直至所述第一当前批的剩余容量小于任意一个所述待加工工件的尺寸。
3.根据权利要求2所述的一种基于蚁群算法的工件调度方法,其特征在于,在根据目标值最小的蚂蚁对应的,加工设备与待加工工件之间的对应关系,获取所述目标值最小的蚂蚁对应的信息素增量值的步骤之前,所述方法还包括:
针对所有只蚂蚁的每一台加工设备的每一个调度完成所述第二待加工工件的批,按照创建所述调度完成所述第二待加工工件的批的先后顺序进行编号;
将所述当前只蚂蚁对应的所有批中的编号最小的批作为第二当前批,将编号大于所述第二当前批的所有批中权重最大的第三待加工工件,与第二当前批中权重最小的第四待加工工件交换位置,且所述第四待加工工件的尺寸小于所述第三待加工工件所在批删除所述第三待加工工件后对应的剩余容量;所述第三待加工工件的尺寸小于所述第二当前批删除所述第四待加工工件后对应的剩余容量;
再将所述第二当前批的下一个批作为第二当前批,并返回执行所述将编号大于所述第二当前批的所有批中权重最大的第三待加工工件,与第二当前批中权重最小的第四待加工工件交换位置的步骤;直至所述当前只蚂蚁对应的批都被遍历;
将所述当前只蚂蚁的下一只蚂蚁作为当前只蚂蚁,并返回执行所述将所述当前只蚂蚁对应的所有批中的编号最小的批作为第二当前批的步骤,直至所有只蚂蚁都被遍历。
4.根据权利要求2所述的一种基于蚁群算法的工件调度方法,其特征在于,在根据目标值最小的蚂蚁对应的,加工设备与待加工工件之间的对应关系,获取所述目标值最小的蚂蚁对应的信息素增量值的步骤之前,所述方法还包括:
针对所有只蚂蚁的每一个调度完成所述第二待加工工件的批,按照创建所述调度完成所述第二待加工工件的批的先后顺序进行编号;
将所述当前只蚂蚁对应的所有批中的编号最小的批作为第三当前批,将编号大于所述当第三当前批的其他批中,含有的工件的权重之和最大的批,与所述第三当前批交换位置;
将所述第三当前批的下一个批作为第三当前批,并返回执行所述将所述当前只蚂蚁对应的所有批中的编号最小的批作为第三当前批,将编号大于所述当第三当前批的其他批中,含有的工件的权重之和最大的批,与所述第三当前批交换位置的步骤;直至所述当前只蚂蚁对应的批都被遍历;
将所述当前只蚂蚁的下一只蚂蚁作为当前只蚂蚁,并返回执行所述将所述当前只蚂蚁对应的所有批中的编号最小的批作为第三当前批的步骤,直至所有的蚂蚁都被遍历。
5.根据权利要求2所述的一种基于蚁群算法的工件调度方法,其特征在于,所述根据所述第二待加工工件的权重获取其对应的第一启发式信息;根据所述第二待加工工件的尺寸的倒数获取其对应的第二启发式信息,包括:
针对每一第二待加工工件,根据所述第二待加工工件的权重,利用公式,
计算第一启发式信息,其中,
为编号为i的当前加工设备对应的编号为b的第一当前批对应的候选列表中的第二待加工工件j的第一启发式信息的值;wj为编号为i的当前加工设备对应的编号为b的第一当前批对应的候选列表中的第二待加工工件j的权重;i为所述当前加工设备对应的编号;b为所述第一当前批对应的编号;j为所述第二待加工工件对应的编号;
根据所述第二待加工工件的尺寸的倒数,利用公式,计算第二启发式信息,其中,
为编号为i的当前加工设备对应的当前候选列表中的编号为j的第二待加工工件的第二启发式信息;sj为编号为i的当前加工设备对应的当前候选列表中的第二待加工工件j的尺寸。
6.根据权利要求5所述的一种基于蚁群算法的工件调度方法,其特征在于,所述根据所述第一待加工工件与第二待加工工件被分到所述第一当前批的期望值之和与所述第一待加工工件的数量的商计算所述第二待加工工件相对于所述第一当前批的信息素值,利用的公式为,
其中,
τjbi为编号为i的当前加工设备对应的编号为j的第二待加工工件相对于所述第一当前批的信息素值,为第二待加工工件j调度至第一当前批中的期望度;φj,x为第一待加工工件Jx和第二待加工工件jj被调度至所述第一当前批中的期望值,且φj,x的初始化值为((1-ρ)*LB)-1,ρ为预设的介于0和1之间的随机数;LB为预设的加权总完工时间的最小值。
7.根据权利要求6所述的一种基于蚁群算法的工件调度方法,其特征在于,所述根据所述第二待加工工件相对于所述第一当前批的信息素值、所述第一启发式信息以及所述第二启发式信息计算每一第二待加工工件的转移概率,包括:
根据所述第二待加工工件相对于所述第一当前批的信息素值、所述第一启发式信息以及所述第二启发式信息,利用公式,
计算每一第二待加工工件的转移概率,其中,
Pjbi为编号为i的当前加工设备对应的编号为b的第一当前批对应的候选列表中的编号为j的第二待加工工件的转移概率;τjbi为编号为i的当前加工设备对应的编号为j的第二待加工工件相对于所述第一当前批的信息素值;τxbi为编号为i的当前加工设备对应的编号为x的第一待加工工件相对于所述第一当前批的信息素值;Lb为第二待加工工件的集合对应的当前候选列表;jj为第j个第二待加工工件。
8.根据权利要求7所述的一种基于蚁群算法的工件调度方法,其特征在于,所述根据目标值最小的蚂蚁对应的,加工设备与待加工工件之间的对应关系,获取所述目标值最小的蚂蚁对应的信息素增量值,利用的公式为,
其中,
Δφxj(l)为第l次迭代时所述目标值最小的蚂蚁对应的信息素增量值;Q为是凭经验设定的一个参数,通常置为所有待加工工件的个数n;∑wjcj(l)为全局最优解,所有加权总完工时间的最小值,wj为全局最优解对应的工件j的权重;cj为全局最优解对应的工件j的完工时间;l为迭代次数;x为第一待加工工件;j为第二待加工工件;jj为第j个第二待加工工件;jx为第x个第一待加工工件。
9.根据权利要求1所述的一种基于蚁群算法的工件调度方法,其特征在于,所述根据所述目标值最小的蚂蚁对应的所述信息素增量值、所述目标值最小的蚂蚁对应的信息素值以及信息素蒸发率,更新信息素矩阵,利用的公式为,
φj,x(l+1)=(1-ρ)*φj,x(l)+mj,x(l)*Δφj,x(l),其中,
φj,x(l+1)为第l+1次迭代时对应的信息素矩阵;φj,x(l)为第l次迭代时对应的信息素矩阵;mj,x(l)为第l次迭代时工件j和工件x分在同一批中的频率;Δφj,x(l)为第l次迭代时所述目标值最小的蚂蚁对应的信息素增量值;ρ为信息素蒸发率;其中,所述目标值为所有待加工工件被加工完成后对应的加权总完工时间。
10.一种基于蚁群算法的工件调度装置,其特征在于,所述装置包括:
建立模块、第一设置模块、调度模块、计算模块、第二设置模块、获取模块、更新模块、判断模块、第三设置模块和第四设置模块,其中,
所述建立模块,用于在当前次迭代时,建立第一预设数量只蚂蚁,并为第一预设数量个蚂蚁中的当前只蚂蚁建立空批;
所述第一设置模块,用于将建立的所述空批作为所述当前只蚂蚁对应的第一当前批,针对所述第一当前批,从预设的加工设备中,将最先空闲的加工设备作为第一当前批对应的当前加工设备;
所述调度模块,用于将所述待加工工件中,除所述第一待加工工件之外的第二待加工工件加入所述第一当前批对应的候选列表中,且每一个所述第二待加工工件尺寸不大于所述第一当前批的剩余容量;其中,所述第一当前批的剩余容量为,所述第一当前批的总容量与所述第一待加工工件总尺寸的差;
所述计算模块,用于根据所述候选列表中的每一第二待加工工件的权重和尺寸,计算所述候选列表中的第二待加工工件加入到所述第一当前批中的概率,并根据所述概率将第二待加工工件调度至所述第一当前批中,直至所述第一当前批的剩余容量小于任意一个所述待加工工件的尺寸;为所述当前只蚂蚁建立新的空批,将所述新的空批作为所述当前只蚂蚁对应的第一当前批,并触发所述第一设置模块,直至所有所述待加工工件都被调度至所述当前只蚂蚁对应的批中;
所述第二设置模块,用于将第一预设数量个蚂蚁中除当前只蚂蚁之外的其他蚂蚁中的一个作为当前只蚂蚁,并触发所述建立模块,直至所述第一预设数量个蚂蚁均具有能够容纳所有待加工工件的批;
所述获取模块,用于根据目标值最小的蚂蚁对应的,加工设备与待加工工件之间的对应关系,获取所述目标值最小的蚂蚁对应的信息素增量值,其中,所述目标值为,所有待加工工件被加工完成后对应的加权总完工时间;
所述更新模块,用于根据所述目标值最小的蚂蚁对应的所述信息素增量值、所述目标值最小的蚂蚁对应的信息素值以及信息素蒸发率,更新信息素矩阵,其中,所述目标值为所有待加工工件被加工完成后对应的加权总完工时间;
所述判断模块,用于判断当前次迭代对应的迭代次数是否等于最大迭代次数;
所述第三设置模块,用于在所述判断模块的判断结果为否的情况下,将所述当前次迭代对应的迭代次数与预设值之和作为当前次迭代的下一次迭代的迭代次数,并触发所述建立模块;
所述第四设置模块,用于在所述判断模块的判断结果为否的情况下,将当前次迭代中目标值最小的蚂蚁对应的,加工设备与待加工工件之间的对应关系作为目标调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810289314.6A CN108665139B (zh) | 2018-04-03 | 2018-04-03 | 一种基于蚁群算法的工件调度方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810289314.6A CN108665139B (zh) | 2018-04-03 | 2018-04-03 | 一种基于蚁群算法的工件调度方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108665139A true CN108665139A (zh) | 2018-10-16 |
CN108665139B CN108665139B (zh) | 2021-12-17 |
Family
ID=63782120
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810289314.6A Active CN108665139B (zh) | 2018-04-03 | 2018-04-03 | 一种基于蚁群算法的工件调度方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108665139B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109872091A (zh) * | 2019-04-18 | 2019-06-11 | 安徽大学 | 一种基于蚁群算法的工件调度方法及装置 |
CN110161997A (zh) * | 2019-06-12 | 2019-08-23 | 安徽大学 | 基于蚁群和模拟退火算法的流水车间调度方法及装置 |
CN110942251A (zh) * | 2019-11-27 | 2020-03-31 | 安徽大学 | 一种基于联合蚁群算法的批调度方法 |
CN111160711A (zh) * | 2019-12-06 | 2020-05-15 | 安徽大学 | 一种基于蚁群算法的平行机批调度方法 |
CN112085382A (zh) * | 2020-09-08 | 2020-12-15 | 杭州海兴泽科信息技术有限公司 | 一种工单分配方法、装置、设备及计算机可读存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102253662A (zh) * | 2011-04-11 | 2011-11-23 | 同济大学 | 基于多蚁群优化的半导体生产线排程方法 |
CN103246938A (zh) * | 2013-04-25 | 2013-08-14 | 中山大学 | 基于自适应蚁群优化的弹性车间调度技术 |
CN103345657A (zh) * | 2013-04-02 | 2013-10-09 | 江苏大学 | 云计算环境下基于遗传和蚁群的任务调度方法 |
CN103439885A (zh) * | 2013-07-26 | 2013-12-11 | 同济大学 | 半导体生产线优化调度装置 |
CN105427054A (zh) * | 2015-12-04 | 2016-03-23 | 合肥工业大学 | 一种基于蚁群优化的瓷器煅烧工艺的加工调度方法 |
CN105487920A (zh) * | 2015-10-12 | 2016-04-13 | 沈阳工业大学 | 基于蚁群算法的多核系统实时任务调度的优化方法 |
CN105528675A (zh) * | 2015-12-04 | 2016-04-27 | 合肥工业大学 | 一种基于蚁群算法的生产配送调度方法 |
CN106970604A (zh) * | 2017-05-15 | 2017-07-21 | 安徽大学 | 一种基于蚁群算法的多目标工件调度算法 |
-
2018
- 2018-04-03 CN CN201810289314.6A patent/CN108665139B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102253662A (zh) * | 2011-04-11 | 2011-11-23 | 同济大学 | 基于多蚁群优化的半导体生产线排程方法 |
CN103345657A (zh) * | 2013-04-02 | 2013-10-09 | 江苏大学 | 云计算环境下基于遗传和蚁群的任务调度方法 |
CN103246938A (zh) * | 2013-04-25 | 2013-08-14 | 中山大学 | 基于自适应蚁群优化的弹性车间调度技术 |
CN103439885A (zh) * | 2013-07-26 | 2013-12-11 | 同济大学 | 半导体生产线优化调度装置 |
CN105487920A (zh) * | 2015-10-12 | 2016-04-13 | 沈阳工业大学 | 基于蚁群算法的多核系统实时任务调度的优化方法 |
CN105427054A (zh) * | 2015-12-04 | 2016-03-23 | 合肥工业大学 | 一种基于蚁群优化的瓷器煅烧工艺的加工调度方法 |
CN105528675A (zh) * | 2015-12-04 | 2016-04-27 | 合肥工业大学 | 一种基于蚁群算法的生产配送调度方法 |
CN106970604A (zh) * | 2017-05-15 | 2017-07-21 | 安徽大学 | 一种基于蚁群算法的多目标工件调度算法 |
Non-Patent Citations (2)
Title |
---|
王栓狮 等: "《一种差异工件单机批调度问题的蚁群优化算法》", 《管理科学学报》 * |
许瑞: "《基于蚁群优化算法的批调度问题研究》", 《中国博士学位论文全文数据库 经济与管理科学辑》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109872091A (zh) * | 2019-04-18 | 2019-06-11 | 安徽大学 | 一种基于蚁群算法的工件调度方法及装置 |
CN110161997A (zh) * | 2019-06-12 | 2019-08-23 | 安徽大学 | 基于蚁群和模拟退火算法的流水车间调度方法及装置 |
CN110161997B (zh) * | 2019-06-12 | 2021-11-05 | 安徽大学 | 基于蚁群和模拟退火算法的流水车间调度方法及装置 |
CN110942251A (zh) * | 2019-11-27 | 2020-03-31 | 安徽大学 | 一种基于联合蚁群算法的批调度方法 |
CN110942251B (zh) * | 2019-11-27 | 2022-09-30 | 安徽大学 | 一种基于联合蚁群算法的批调度方法 |
CN111160711A (zh) * | 2019-12-06 | 2020-05-15 | 安徽大学 | 一种基于蚁群算法的平行机批调度方法 |
CN112085382A (zh) * | 2020-09-08 | 2020-12-15 | 杭州海兴泽科信息技术有限公司 | 一种工单分配方法、装置、设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108665139B (zh) | 2021-12-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108665139A (zh) | 一种基于蚁群算法的工件调度方法及装置 | |
CN108563200A (zh) | 一种基于蚁群算法的多目标的工件调度方法及装置 | |
JP3717967B2 (ja) | プロセス機械の制御とスケジューリングを行う装置と方法 | |
Pardalos et al. | A parallel algorithm for the quadratic assignment problem | |
CN111611080B (zh) | 边缘计算任务协同调度方法、系统、装置 | |
CN110969362B (zh) | 一种云计算系统下多目标任务调度方法及系统 | |
Zeballos et al. | A CP formulation for scheduling multiproduct multistage batch plants | |
CN106970604A (zh) | 一种基于蚁群算法的多目标工件调度算法 | |
Chun et al. | Bargaining with uncertain disagreement points | |
Chaves et al. | Hybrid metaheuristic for the assembly line worker assignment and balancing problem | |
CN109700434A (zh) | 基于心电图诊断的元学习模型训练方法、系统和设备 | |
Fidanova | ACO algorithm for MKP using various heuristic information | |
Hillion et al. | A heuristic algorithm for the periodic scheduling and sequencing job-shop problem | |
CN104346380B (zh) | 基于MapReduce模型的数据排序方法和系统 | |
CN109241042A (zh) | 数据处理方法、装置以及电子设备 | |
Grobler et al. | Investigating the impact of alternative evolutionary selection strategies on multi-method global optimization | |
CN108108242A (zh) | 基于大数据的存储层智能分发控制方法 | |
Akyol et al. | Multi-machine earliness and tardiness scheduling problem: an interconnected neural network approach | |
Gen et al. | Algorithms for solving large-scale 0–1 goal programming and its application to reliability optimization problem | |
Shi et al. | Automatic design of dispatching rules for real-time optimization of complex production systems | |
Zahedani et al. | A hybrid batch job scheduling algorithm for grid environment | |
CN108062249A (zh) | 基于大数据的云端数据分配调度方法 | |
CN109102211A (zh) | 改进布谷鸟搜索的高端装备批处理机调度方法及系统 | |
Chen et al. | A parallel tree code for computing matrix-vector products with the Matérn kernel | |
Jędrzejowicz et al. | Population-based approach to multiprocessor task scheduling in multistage hybrid flowshops |
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 |