首页 / 专利库 / 生物化学 / 信息素 / 一种基于联合蚁群算法的批调度方法

一种基于联合蚁群算法的批调度方法

阅读:932发布:2020-05-11

专利汇可以提供一种基于联合蚁群算法的批调度方法专利检索,专利查询,专利分析的服务。并且本 发明 提供了一种基于联合蚁群 算法 的批调度方法,包括以下步骤:初始化Tmax、AntNum、n,I,S, 信息素 矩阵、ρ、库存概率和运输概率,令t=1,Ant=0;令Ant=Ant+1,蚂蚁Ant对 工件 进行分配输出调度方案;通过局部优化策略优化调度方案,计算优化后的调度方案的目标值,更新库存概率和运输概率;重复此过程直到所有蚂蚁用尽结束本次 迭代 ,获取全局最优调度方案,更新信息素,如果t<Tmax,则令t=t+1,Ant=0,返回分配工件,直到迭代结束,输出全局最优调度方案。本发明提供的一种基于联合蚁群算法的批调度方法的优点在于:综合考虑的生产过程中的库存和运输问题,通过合理的反馈机制,适合解决大规模批调度问题,实现成本优化,能够为生产过程提供有效的指导建议。,下面是一种基于联合蚁群算法的批调度方法专利的具体信息内容。

1.一种基于联合蚁群算法的批调度方法,其特征在于:包括以下步骤:
S1:初始化最大迭代次数Tmax、蚂蚁数量AntNum、工件数量n,机器数量I,机器容量S,信息素矩阵、信息素蒸发率ρ、工件的库存概率和运输概率,令当前迭代次数t=1,蚂蚁序列Ant=0;
S2:令Ant=Ant+1,初始化禁忌列表TB=(1,2,3,···,n);
S3:当前蚂蚁Ant选择一台机器Mi构建一个空批Bki;
S4:当前蚂蚁Ant随机选择未被分配的工件Jj分配到批Bki,令TBj=0,构建当前批Bki的候选列表Lki;
S5:当 时,当前蚂蚁Ant从候选列表Lki中选择一个工件Jj分配到当前批Bki中,更新TBj=0,转至S6;当 时,转至S7;
S6:更新禁忌列表Lki,返回S5;
S7:如果TB≠(0,0,0,···,0),则返回S3,如果TB=(0,0,0,···,0),则输出当前蚂蚁Ant确定的调度方案;
S8:通过局部优化策略优化调度方案,计算优化后的调度方案的目标值;
S9:如果Ant<AntNum,则返回S2,否则转至S10;
S10:获取全局最优调度方案,如果t<Tmax,则更新库存概率、运输概率和信息素,令t=t+1,Ant=0,返回S2;否则输出全局最优调度方案。
2.根据权利要求1所述的一种基于联合蚁群算法的批调度方法,其特征在于:所述信息素矩阵表示为Γ={τg,j|g,j∈[1,n]},其中τg,j表示工件Jg和Jj分配到同一个批中的期望,S1中将τg,j均初始化为0.1,即将信息素矩阵初始化为数值都是0.1,规模为n*n的二维矩阵。
3.根据权利要求2所述的一种基于联合蚁群算法的批调度方法,其特征在于:S3中蚂蚁Ant选择机器Mi的方法为:将所有机器按完工时间排序,在完工时间最早的机器Mi上构建新批Bki,如果存在多个完工时间最早的机器,则从中随机选择一个机器Mi。
4.根据权利要求3所述的一种基于联合蚁群算法的批调度方法,其特征在于:S4中所述的构建当前批Bki的候选列表Lki的方法为:选择满足当前批Bki容量约束的所有未分批的工件构建得到候选列表Lki,即
其中,S表示当前批的总容量,所有机器的容量均为S,sj表示工件Jj的尺寸。
5.根据权利要求4所述的一种基于联合蚁群算法的批调度方法,其特征在于:S5中所述的从候选列表Lki中选择一个工件Jj分配到当前批Bki中方法为:将候选列表Lki中选择概率Wj,ki最大的工件Jj加入到批Bki中
其中, 为信息素,表示工件Jj放入批Bki的期望, 为工件Jj放入批Bki的启发式信息,α为信息素的权重,β为启发式信息的权重,|Bki|为批Bki内的工件数量。
6.根据权利要求5所述的一种基于联合蚁群算法的批调度方法,其特征在于:S8所述的局部优化策略包括以下步骤:
步骤i:输入当前蚂蚁Ant的调度方案,获取机器数量I和机器Mi上的批数量bi,将每台机器Mi上的所有批按加工时间非递减排序,初始化i=1,v1=0,集合
步骤ii:令v1=v1+1,如果v1=bi,则转至步骤vii,否则令v2=v1+1;
步骤iii:将批 中所有加工时间小于批 中任意工件加工时间的工件放入集合N中,x为集合N中的工件数量,令w=1;若 则跳转步骤vi;
步骤iv:判断批 中加工时间最长的工件与批 中处于集合N的第w个位置的工件交换后是否满足批容量约束,如果满足则交换这两个工件,更新批 的加工时间,令返回步骤iii,若交换后不满足批容量约束条件,则不执行交换操作;
步骤v:令w=w+1,如果w≤x,返回步骤iv;
步骤vi:如果v2<bi,令v2=v2+1,返回步骤iii;
步骤vii:如果i<I,令i=i+1,v1=0,返回步骤ii,否则输出优化后的调度方案。
7.根据权利要求6所述的一种基于联合蚁群算法的批调度方法,其特征在于:批Bki的加工时间Pki等于该批Bki中所有工件的最大加工时间,即
Pki=max(pj|Jj∈Bki)
pj表示工件Jj的加工时间。
8.根据权利要求7所述的一种基于联合蚁群算法的批调度方法,其特征在于:S8中所述的目标值Q为生产成本W、库存成本I和运输成本D的和,即Q=E+I+D;
所述生产成本E的计算方法为
其中,λ1>0为常数,Ti为机器Mi的加工时间,其等于该机器Mi上所有批的总加工时间。
9.根据权利要求8所述的一种基于联合蚁群算法的批调度方法,其特征在于:S8中计算目标值的方法为:
步骤I:输入调整后的调度方案,将所有批按到达时间非递减排序,获取批的总数K,当前批的序号初始化为k=1,初始化库存集合 运输集合 车辆总数H=0;
步骤II:将当前批Bk加入库存集合IB,计算库存集合IB中所有批的库存概率Ub和运输概率Xb,具体为
Bb∈IB
其中,qg(t)表示工件Jg的库存概率,fg(t)表示工件Jg的运输概率,每个工件Jg的库存概率Jg在步骤S1中被初始化为(0,1)内的随机实数,fg(1)=1-qg(1);
γ为常数,本实施例中取γ=0.3,Yb为批Bb的库存时间,表示批Bb到当前批Bk的完成时间之差,即
步骤III:如果k<K,转至步骤IV,否则转至步骤V;
步骤IV:将当前所有Ub≤Xb的批Bb移出库存集合IB,并加入运输集合DB,将运输集合DB中的所有批分配到车上,得到所需车辆hk,令H=H+hk, 更新库存集合IB,令k=k+1,返回步骤II;
步骤V:将库存集合IB中的所有批移入运输集合DB,将运输集合DB中的所有批分配到车上,得到所需车辆hk,令H=H+hk;
步骤VI:计算运输成本D和库存成本I;
D=λ3H
其中,λ2,λ3均为大于0的实数,Yk为批Bk转入运输集合DB被车运输走时的库存时间;
步骤VII:计算并输出目标值 其中表示第t次迭代时第Ant只蚂蚁
的调度方案的目标值,其他字母的含义类似;
其中为运输集合DB中的批分配车辆的方法为:将所有批按照所占空间非递增排序,按照Best-Fit规则依次分配到车上,直到所有批都分配完,得到所需车辆的总数hk。
10.根据权利要求9所述的一种基于联合蚁群算法的批调度方法,其特征在于:S10所述的更新库存概率和运输概率的方法为:
qg(t+1)=qg(t)+Δqg(t)
fg(t+1)=fg(t)+Δfg(t)
其中,Imin和Dmin表示从第一次迭代到当前迭代产生的所有调度方案的库存成本和运输成本的最小值, 和 分别是当前调度方案库存成本和运输成本的上限,I和D分别是库存成本和运输成本的下限,Δqg(t)和Δfg(t)分别表示库存成本和运输成本在最优情况下的位置;其中库存成本的下限为0,库存成本的上限为所有批加工完成后统一分车运输情况下的库存成本;运输成本的上限为每个批生产出来后立刻运输,即每个批都单独由一辆车运输的成本,运输成本的下限为批全部生产完之后统一运输的成本。
11.根据权利要求10所述的一种基于联合蚁群算法的批调度方法,其特征在于:S10中所述的更新信息素的方法为:
τg,j(t+1)=(1-ρ)·τg,j(t)+mg,j(t)·Δτg,j(t)
其中,mg,j(t)表示在第t代时,工件Jg和Jj被分配到同一批的次数,Δτg,j(t)表示信息素的增量,如果在第t代中Jg和Jj未分配到同一批次中,则Δτg,j(t)=0;否则Δτg,j(t)=1/Qbest,Qbest表示当前迭代中全局最优调度方案的目标值。

说明书全文

一种基于联合蚁群算法的批调度方法

技术领域

[0001] 本发明涉及批调度优化技术领域,尤其涉及一种基于联合蚁群算法的批调度方法。

背景技术

[0002] 在许多行业中,制造商通常旨在最小化总体成本以维持市场竞争。在当前的市场环境下,制造企业的核心竞争力不再局限于简单的制造能力,而是扩展到包括供应链协调能力。制造企业需要控制生产,库存和分配,以便同时优化生产系统和物流系统以增强企业竞争力。集成调度(IS)是一种针对供应链的复杂优化问题。为了解决综合调度问题,我们不仅要分别解决生产和运输两个子问题,而且还需要在这两个阶段进行协调以实现整体最优。由于产品在运输过程中的效率会直接影响客户的满意度,因此综合调度问题的有效解决有利于提高企业的服务平和市场竞争力;在这一过程中就需要综合考虑工件分批后的生产成本,生产出来之后进行运输还是库存,以及相应的成本,从而在保证服务水平的情况下,降低企业成本。

发明内容

[0003] 本发明所要解决的技术问题在于提供一种利用联合蚁群算法进行批调度以对优化生产成本、运输成本和库存成本进行综合优化使其最小的方法。
[0004] 本发明是通过以下技术方案解决上述技术问题的:
[0005] 一种基于联合蚁群算法的批调度方法,包括以下步骤:
[0006] S1:初始化最大迭代次数Tmax、蚂蚁数量AntNum、工件数量n,机器数量I,机器容量S,信息素矩阵、信息素蒸发率ρ、工件的库存概率和运输概率,令当前迭代次数t=1,蚂蚁序列Ant=0;
[0007] S2:令Ant=Ant+1,初始化禁忌列表TB=(1,2,3,···,n);
[0008] S3:当前蚂蚁Ant选择一台机器Mi构建一个空批Bki;
[0009] S4:当前蚂蚁Ant随机选择未被分配的工件Jj分配到批Bki,令TBj=0,构建当前批Bki的候选列表Lki;
[0010] S5:当 时,当前蚂蚁Ant从候选列表Lki中选择一个工件Jj分配到当前批Bki中,更新TBj=0,转至S6;当 时,转至S7;
[0011] S6:更新禁忌列表Lki,返回S5;
[0012] S7:如果TB≠(0,0,0,···,0),则返回S3,如果TB=(0,0,0,···,0),则输出当前蚂蚁Ant确定的调度方案;
[0013] S8:通过局部优化策略优化调度方案,计算优化后的调度方案的目标值;
[0014] S9:如果Ant<AntNum,则返回S2;
[0015] S10:获取全局最优调度方案,如果t<Tmax,则更新更新库存概率、运输概率和信息素,令t=t+1,Ant=0,返回S2;否则输出全局最优调度方案。
[0016] 优选地,所述信息素矩阵表示为Γ={τg,j|g,j∈[1,n]},其中τg,j表示工件Jg和Jj分配到同一个批中的期望,S1中将τg,j均初始化为0.1,即将信息素矩阵初始化为数值都是0.1,规模为n*n的二维矩阵。
[0017] 优选地,S3中蚂蚁Ant选择机器Mi的方法为:将所有机器按完工时间排序,在完工时间最早的机器Mi上构建新批Bki,如果存在多个完工时间最早的机器,则从中随机选择一个机器Mi。
[0018] 优选地,S4中所述的构建当前批Bki的候选列表Lki的方法为:选择满足当前批Bki容量约束的所有未分批的工件构建得到候选列表Lki,即
[0019]
[0020] 其中,S表示当前批的总容量,所有机器的容量均为S,sj表示工件Jj的尺寸。
[0021] 优选地,S5中所述的从候选列表Lki中选择一个工件Jj分配到当前批Bki中方法为:将候选列表Lki中选择概率Wj,ki最大的工件Jj加入到批Bki中
[0022]
[0023]
[0024]
[0025] 其中, 为信息素,表示工件Jj放入批Bki的期望, 为工件Jj放入批Bki的启发式信息,α为信息素的权重,β为启发式信息的权重,|Bki|为批Bki内的工件数量。
[0026] 优选地,S8所述的局部优化策略包括以下步骤:
[0027] 步骤i:输入当前蚂蚁Ant的调度方案,获取机器数量I和机器Mi上的批数量bi,将每台机器Mi上的所有批按加工时间非递减排序,初始化i=1,v1=0,集合
[0028] 步骤ii:令v1=v1+1,如果v1=bi,则转至步骤vii,否则令v2=v1+1;
[0029] 步骤iii:将批 中所有加工时间小于批 中任意工件加工时间的工件放入集合N中,x为集合N中的工件数量,令w=1;若 则跳转步骤vi;
[0030] 步骤iv:判断批 中加工时间最长的工件与批 中处于集合N的第w个位置的工件交换后是否满足批容量约束,如果满足则交换这两个工件,更新批 的加工时间,令返回步骤iii,若交换后不满足批容量约束条件,则不执行交换操作;
[0031] 步骤v:令w=w+1,如果w≤x,返回步骤iv;
[0032] 步骤vi:如果v2<bi,令v2=v2+1,返回步骤iii;
[0033] 步骤vii:如果i<I,令i=i+1,v1=0,返回步骤ii,否则输出优化后的调度方案。
[0034] 优选地,批Bki的加工时间Pki等于该批Bki中所有工件的最大加工时间,即[0035] Pki=max(pj|Jj∈Bki)
[0036] pj表示工件Jj的加工时间。
[0037] 优选地,S8中所述的目标值Q为生产成本W、库存成本I和运输成本D的和,即Q=E+I+D;
[0038] 所述生产成本E的计算方法为
[0039]
[0040]
[0041] 其中,λ1>0为常数,Ti为机器Mi的加工时间,其等于该机器Mi上所有批的总加工时间。
[0042] 优选地,S8中计算目标值的方法为:
[0043] 步骤I:输入调整后的调度方案,将所有批按到达时间非递减排序,获取批的总数K,当前批的序号初始化为k=1,初始化库存集合 运输集合 车辆总数H=0;
[0044] 步骤II:将当前批Bk加入库存集合IB,计算库存集合IB中所有批的库存概率Ub和运输概率Xb,具体为
[0045]
[0046]
[0047] Bb∈IB
[0048] 其中,qg(t)表示工件Jg的库存概率,fg(t)表示工件Jg的运输概率,每个工件Jg的库存概率Jg在步骤S1中被初始化为(0,1)内的随机实数,fg(1)=1-qg(1);
[0049] γ为常数,本实施例中取γ=0.3,Yb为批Bb的库存时间,表示批Bb到当前批Bk的完成时间之差,即
[0050]
[0051]
[0052] 步骤III:如果k<K,转至步骤IV,否则转至步骤V;
[0053] 步骤IV:将当前所有Ub≤Xb的批Bb移出库存集合IB,并加入运输集合DB,将运输集合DB中的所有批分配到车上,得到所需车辆hk,令H=H+hk, 更新库存集合IB,令k=k+1,返回步骤II;
[0054] 步骤V:将库存集合IB中的所有批移入运输集合DB,将运输集合DB中的所有批分配到车上,得到所需车辆hk,令H=H+hk;
[0055] 步骤VI:计算运输成本D和库存成本I;
[0056] D=λ3H
[0057]
[0058] 其中,λ2,λ3均为大于0的实数,Yk为批Bk转入运输集合DB被车运输走时的库存时间;
[0059] 步骤VII:计算并输出目标值 其中表示第t次迭代时第Ant只蚂蚁的调度方案的目标值,其他字母的含义类似;
[0060] 其中为运输集合DB中的批分配车辆的方法为:将所有批按照所占空间非递增排序,按照Best-Fit规则依次分配到车上,直到所有批都分配完,得到所需车辆的总数hk。
[0061] 优选地,S10所述的更新库存概率和运输概率的方法为:
[0062] qg(t+1)=qg(t)+Δqg(t)
[0063]
[0064] fg(t+1)=fg(t)+Δfg(t)
[0065]
[0066] 其中,Imin和Dmin表示从第一次迭代到当前迭代产生的所有调度方案的库存成本和运输成本的最小值, 和 分别是当前调度方案库存成本和运输成本的上限,I和D分别是库存成本和运输成本的下限,Δqg(t)和Δfg(t)分别表示库存成本和运输成本在最优情况下的位置;其中库存成本的下限为0,库存成本的上限为所有批加工完成后统一分车运输情况下的库存成本;运输成本的上限为每个批生产出来后立刻运输,即每个批都单独由一辆车运输的成本,运输成本的下限为批全部生产完之后统一运输的成本。
[0067] 优选地,S10中所述的更新信息素的方法为:
[0068] τg,j(t+1)=(1-ρ)·τg,j(t)+mg,j(t)·Δτg,j(t)
[0069] 其中,mg,j(t)表示在第t代时,工件Jg和Jj被分配到同一批的次数,Δτg,j(t)表示信息素的增量,如果在第t代中Jg和Jj未分配到同一批次中,则Δτg,j(t)=0;否则Δτg,j(t)=1/Qbest,Qbest表示当前迭代中全局最优调度方案的目标值。
[0070] 本发明提供的一种基于联合蚁群算法的批调度方法的优点在于:综合考虑的生产过程中的库存和运输问题,通过合理的反馈机制,适合解决大规模批调度问题,实现成本优化,能够为生产过程提供有效的指导建议。附图说明
[0071] 图1为本发明的实施例提供的基于联合蚁群算法的批调度方法的局部优化策略的算法原理图;
[0072] 图2为本发明的实施例所提供的基于联合蚁群算法的批调度方法确定参数α、β时的数据对比图;
[0073] 图3为本发明的实施例所提供的基于联合蚁群算法的批调度方法确定参数ρ的数据对比图;
[0074] 图4为本发明的实施例所提供的基于联合蚁群算法的批调度方法进行验证试验是构造的H算法的原理图;
[0075] 图5为本发明的实施例所提供的基于联合蚁群算法的批调度方法与其他算法进行性能验证的对比图。

具体实施方式

[0076] 为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明作进一步的详细说明。
[0077] 本实施例对方案进行解释时,会存在部分形式相同的局部变量,当相同形式的变量在不同位置的含义有冲突时,以其所处的局部算法的定义为准;为了方便区分以不同的方式对具体步骤进行了区分,这些不同的表达方式仅为了区分不同的步骤,不用于限制步骤之间的顺序。
[0078] 本实施例要解决的是针对一系列工件进行分批分机器生产以最终得到总成本最小的调度方案,对现实问题进行简化后的模型如下:
[0079] (1)在生产阶段,需处理由J={J1,J2,…,Jn}表示的n个工件,每个工件Jj的基本性质包括处理时间pj,尺寸sj;使用I个平行机器M={M1,M2,…,MI}进行处理,每台机器Mi具有相同的容量S,在机器Mi上处理的第k个批表示为Bki,批Bki内的工件尺寸之和不能大于机器Mi容量;
[0080] (2)批Bki的处理时间Pki等于批Bki内处理时间最长的工件Jj的处理时间pj,即Pki=max(pj|Jj∈Bki);批Bki的完成时间STki为同一机器Mi上之前所有批的处理时间之和,即机器Mi的完成时间Ti等于机器Mi上最后一个批的完成时间,即所有批的处理时间之和,即
[0081] (3)优化目标为生产成本E、库存成本I和运输成本D的和最小,目标值表示为Q,Q=E+I+D。
[0082] 基于上述模型,本实施例提供的基于联合蚁群算法的批调度方法包括以下步骤:
[0083] S1:初始化最大迭代次数Tmax、蚂蚁数量AntNum、工件数量n,机器数量I,机器容量S,信息素矩阵、信息素蒸发率ρ、工件的库存概率和运输概率,令当前迭代次数t=1,蚂蚁序列Ant=0;
[0084] 所述信息素矩阵表示为Γ={τg,j|g,j∈[1,n]},其中τg,j表示工件Jg和Jj分配到同一个批中的期望,S1中将τg,j均初始化为0.1,即将信息素矩阵初始化为数值都是0.1,规模为n*n的二维矩阵。
[0085] S2:令Ant=Ant+1,初始化禁忌列表TB=(1,2,3,···,n);
[0086] 禁忌列表规模与工件规模相同,当禁忌列表内的第j个数值TBj=0时,表示对应的工件Jj已经被分配,当TBj≠0时,代表对应的工件Jj未被分配,因此禁忌列表TB可以被初始化为任何规模为n且数值均非0的集合。
[0087] S3:当前蚂蚁Ant选择一台机器Mi构建一个空批Bki,具体方法为:
[0088] 将所有机器按完工时间排序,在完工时间最早的机器Mi上构建新批Bki,如果存在多个完工时间最早的机器,则从中随机选择一个机器Mi;
[0089] 机器完工时间Ti为
[0090]
[0091] Pki=max(pj|Jj∈Bki)
[0092] 其中,Pki为批Bki的完工时间,pj为工件Jj的处理时间,其为工件Jj自身的属性。
[0093] S4:当前蚂蚁Ant随机选择未被分配的工件Jj分配到批Bki,令TBj=0,构建当前批Bki的候选列表Lki;候选列表Lki为未分配工件中尺寸小于当前批Bki剩余空间的工件集合,即[0094]
[0095] 其中,sj表示工件Jj的尺寸。
[0096] S5:如果 表示当前批已经不能再放入任何工件,转至S7,如果 则当前蚂蚁Ant从候选列表Lki中选择一个工件Jj分配到当前批Bki中,并令TBj=0;选择工件的方法为计算候选列表Lki中所有工件的选择概率Wj,ki,
[0097]
[0098]
[0099]
[0100] 其中, 为信息素,表示工件Jj放入批Bki的期望, 为工件Jj放入批Bki的启发式信息,|Bki|为批Bki内的工件数量,α为信息素的权重,β为启发式信息的权重,通过调整α、β的数值,能够调整蚂蚁选择工件的方向是偏向于历史信息,还是偏向于寻找新路径,具体数值本领域技术人员可以根据期望的迭代更新方向进行设置,后面的验证分析部分也给出了本实施例确定最优的α、β组合的方法,以供参考;计算后将选择概率Wj,ki最大的工件Jj放入批Bki中。
[0101] S6:更新候选列表Lki,返回S5;即重复将工件放入批的步骤,直到当前批Bki中无法放入任何工件。
[0102] S7:如果TB≠(0,0,0,···,0),说明还有工件未被分配到批中,此时应返回S3重新寻找机器,构建新批,按照上述规则放入工件;如果TB=(0,0,0,···,0),则表明所有工件已经被当前的蚂蚁Ant依次分配到批中,则输出当前蚂蚁Ant分配的调度方案;
[0103] S8:通过局部优化策略优化调度方案,计算根据优化后的调度方案的目标值;
[0104] 本实施例中所述目标值Q为生产成本E、库存成本I和运输成本D的和,即Q=E+I+D;本实施例对现实模型进行简化时将生产成本E简化为与机器完成时间Ti成正比的关系,即[0105]
[0106]
[0107] 其中,λ1>0为常数,Ti为机器Mi的加工时间,其等于该机器Mi上所有批的总加工时间。
[0108] 所述局部优化策略的具体算法参考图1,包括以下步骤:
[0109] 步骤i:输入当前蚂蚁Ant的调度方案,获取机器数量I和机器Mi上的批数量bi,将每台机器Mi上的所有批按加工时间非递减排序,初始化i=1,v1=0,集合
[0110] 步骤ii:令v1=v1+1,如果v1=bi,则转至步骤vii,否则令v2=v1+1;
[0111] 步骤iii:将批 中所有加工时间小于批 中任意工件加工时间的工件放入集合N中,x为集合N中的工件数量,令w=1;若 则跳转步骤vi;
[0112] 步骤iv:判断批 中加工时间最长的工件与批 中处于集合N的第w个位置的工件交换后是否满足批容量约束,如果满足则交换这两个工件,更新批 的加工时间,令返回步骤iii,若交换后不满足批容量约束条件,则不执行交换操作;
[0113] 步骤v:令w=w+1,如果w≤x,返回步骤iv;
[0114] 步骤vi:如果v2<bi,令v2=v2+1,返回步骤iii;
[0115] 步骤vii:如果i<I,令i=i+1,v1=0,返回步骤ii,否则输出优化后的调度方案。
[0116] 下面举例对上述局部优化策略进行说明,假设机器Mi上的两个批的信息分别如表1所示,机器Mi容量S=10,批B1i的尺寸为9,处理时间P1i=5;批B2i的尺寸为10,处理时间P2i=8;
[0117]
[0118] 表1:优化前的调度方法
[0119] 此时,bi=2,当v1=1时,v2=2,则集合N={J3,J4},x=2;此时如果J2与J3交换,则批B1i的尺寸为11,超过了批的容量,因此不能交换。
[0120] 继续判断如果J2与J4交换,则批B1i的尺寸为10,批B2i的尺寸为9,则可以交换。得到表2;
[0121]
[0122] 表2:优化后的调度方法
[0123] 交换后P1i=4,P2i=8,因此交换后批B2i的处理时间不变,而批B1i的处理时间降低,整个机器Mi的完成时间Ti降低了,从而能够降低生产成本。
[0124] 经过优化后,生产成本E可以直接得到,计算目标值Q还需要确定库存成本I和运输成本D,本实施例计算目标值的方法为:
[0125] 步骤I:输入调整后的调度方案,将所有批按到达时间非递减排序,获取批的总数K,当前批的序号初始化为k=1,初始化库存集合 运输集合 车辆总数H=0;
[0126] 步骤II:将当前批Bk加入库存集合IB,计算库存集合IB中所有批的库存概率Ub和运输概率Xb,具体为
[0127]
[0128]
[0129] Bb∈IB
[0130] 其中,qg(t)表示工件Jg的库存概率,fg(t)表示工件Jg的运输概率,每个工件Jg的库存概率Jg在步骤S1中被初始化为(0,1)内的随机实数,fg(1)=1-qg(1);
[0131] γ为常数,本实施例中取γ=0.3,Yb为批Bb的库存时间,表示批Bb到当前批Bk的完成时间之差,即
[0132]
[0133]
[0134] 步骤III:如果k<K,转至步骤IV,否则转至步骤V;
[0135] 步骤IV:将当前所有Ub≤Xb的批Bb移出库存集合IB,并加入运输集合DB,将运输集合DB中的所有批分配到车上,得到所需车辆hk,令H=H+hk, 更新库存集合IB,令k=k+1,返回步骤II;
[0136] 步骤V:将库存集合IB中的所有批移入运输集合DB,将运输集合DB中的所有批分配到车上,得到所需车辆hk,令H=H+hk,
[0137] 步骤VI:计算运输成本D和库存成本I;本实施例中将实际模型简化为运输成本与运输所需的车辆总数成正比,库存成本与所有批库存的总时间成正比,即
[0138] D=λ3H
[0139]
[0140] 其中,λ2,λ3均为大于0的实数,Yk为批Bk转入运输集合DB被车运输走时的库存时间;
[0141] 步骤VII:计算并输出目标值 其中表示第t次迭代时第Ant只蚂蚁的调度方案的目标值,其他字母的含义类似。
[0142] 其中,为运输集合DB中的批分配车辆的方法为:将所有批按照所占空间非递增排序,按照Best-Fit规则依次分配到车上,直到所有批都分配完,得到所需车辆的总数hk。
[0143] S9:如果Ant<AntNum,则返回S2;
[0144] S10:否则获取全局最优调度方案,如果t<Tmax,则更新库存概率、运输概率和信息素,令t=t+1,Ant=0,返回S2,重新让所有蚂蚁各得到一个调度方案;否则输出全局最优调度方案,
[0145] 更新库存概率和运输概率的方法为:
[0146] qg(t+1)=qg(t)+Δqg(t)
[0147]
[0148] fg(t+1)=fg(t)+Δfg(t)
[0149]
[0150] 其中,Imin和Dmin表示从第一次迭代到当前迭代产生的所有调度方案的库存成本和运输成本的最小值,和 分别是当前调度方案库存成本和运输成本的上限,I和D分别是库存成本和运输成本的下限,Δqg(t)和Δfg(t)分别表示库存成本和运输成本在最优情况下的位置;其中库存成本的下限为0,库存成本的上限为所有批加工完成后统一分车运输情况下的库存成本;运输成本的上限为每个批生产出来后立刻运输,即每个批都单独由一辆车运输的成本,运输成本的下限为批全部生产完之后统一运输的成本。
[0151] 全局最优调度方案为目标值最小的调度方案,更新信息素的方法为:
[0152] τg,j(t+1)=(1-ρ)·τg,j(t)+mg,j(t)·Δτg,j(t)
[0153] 其中,mg,j(t)表示在第t代时,工件Jg和Jj被分配到同一批的次数,Δτg,j(t)表示信息素的增量,如果在第t代中Jg和Jj未分配到同一批次中,则Δτg,j(t)=0;否则Δτg,j(t)=1/Qbest,Qbest表示当前迭代中全局最优调度方案的目标值。
[0154] 最终得到的全局最优调度方案表示为:
[0155]
[0156] 验证分析
[0157] 为了验证本实施例提供的基于联合蚁群算法的批调度方法(IACO算法)的性能,以表1所示的数据构造了6组测试算例,根据工件规模和机器数目分别将6组测试算例分别表示为N1M1,N1M2,N2M1,N2M2,N3M1,N3M3,
[0158]因素 取值范围
工件规模n N1=30,N2=100,N3=200
工件尺寸sj U[1,30]
工件加工时间pj U[2,6]
机器数目M M1=2,M2=4
机器容量S S=50
[0159] 表3:算例参数
[0160] 由于本实施例提出的IACO算法是以蚁群算法(ACO)为基础的,其最优参数可以参考ACO算法设置,经过前期验证,在对比测试时将蚂蚁数量AutNum和迭代次数Tmax分别设置为20和200,
[0161] 此外,还进行了初步试验以确定α、β和ρ的数值,具体实验设计如下:令ρ=0.5,在选定的二十个实例上运行具有不同α、β值的IACO算法,α、β的数值范围为[1,10],其平均结果如图2所示,x轴表示α、β的不同组合值;y轴显示不同组合下的平均目标值;从中可以看出,当β>α时,平均目标值的质量更好,原因可能是增加启发式信息的影响对于寻找更好的解是可取的,在α=1,β=9时,平均目标值是所有组合中最小的,因此在后续实验中选择α=1,β=9。
[0162] 然后根据上面的结果,在α=1,β=9的情况下测试ρ为[0.1,0.9]时的实验结果如图3所示,最终确定的IACO算法的参数分别为α=1,β=9,ρ=0.5,AntNum=20,Tmax=200。
[0163] 在进行性能验证的时候选用的对比算法包括
[0164] 混合遗传算法(HGA):具体可参考文献Cheol Min Joo and Byung Soo Kim.Rule-based meta-heuristics for integrated scheduling of unrelated parallel machines,batches,and heterogeneous delivery trucks.Applied Soft Computing,53:457–476,2017.;
[0165] H-N算法(启发式H与NSAG-II):将本申请要解决的问题分解为生产子问题和存储、运输子问题,分别用sp1和sp2表示,用启发式H求解sp1,参考图4,大致步骤为将工件按加工时间非递增排序,然后根据最佳匹配规则将工件分配给批,即第一个工件被分配给第一个空批,其他工件被分配给可以容纳改工件且批次中剩余空间最小的批次,最后根据轮询规则将生成的批分配给机器。NSGA-II算法对每个批次随机赋予数字0或1作为其交货代码,其中0表示该批存储在仓库中,1表示运输,将最后一批交货代码设置为1。
[0166] ACO-N算法(ACO算法,NSGA-II算法):利用ACO算法解决生产子问题,然后同样用NSGA-II算法解决存储、运输子问题。
[0167] NSGA-II算法的参数设置见表4
[0168]种群规模 迭代代数 PM PC
200 200 0.01 0.5
[0169] 表4:NSGA-II算法参数
[0170] 实验中的主要评价指标为相对百分比差距(RPG)和计算时间T(s),其中RPG为[0171]
[0172] 表示算法A在测试算例I上的目标值, 表示该测试算例I在所有算法上的所有解中的最佳目标值。
[0173] 表5-10分别给出了不同工件数量和机器数量下的实验结果,具体如下:
[0174]
[0175]
[0176] 表5:测试算例N1M1的对比实验结果(n=30,M=2)
[0177] 从表5中可以知道,IACO算法的RPG值在每个实例上都优于HGA算法,在大多数情况下都有很大的余地。在20个实例中,IACO算法的RPG值在15例中击败了H-N算法,在14例中超过了ACO-N算法。在所有情况下,IACO算法的运行时间都远远少于其他比较算法。此外,IACO算法的平均RPG值和平均运行时间优于其他算法。
[0178]
[0179]
[0180] 表6:测试算例N1M2的对比实验结果(n=30,M=4)
[0181] 从表6可以看出,IACO算法的RPG值均优于HGA算法和ACO-N算法。此外,IACO的RPG值在每个实例(第19个实例除外)上都超过了H-N的值。而且IACO的平均RPG值要远远优于其他任何的比较算法。在所有实例上,IACO算法的运行时间都比其他比较的算法要好。此外,IACO的平均运行时间比其他算法的运行时间少将近六秒钟。从表5和表6中可以看出,随着机器数量的增加,就RPG值和运行时间而言,IACO算法的优势对于其他三种比较算法而言变得更加明显。
[0182]
[0183] 表7:测试算例N2M1的对比实验结果(n=100,M=2)
[0184] 从表7可以看出,在RPG方面,IACO在除了ACO-N的四个实例和H-N的七个实例之外的所有实例上的性能均优于其他三种比较算法,并且与其他三种算法相比,IACO在每种情况下都需要比其他算法更少的运行时间。此外,IACO的平均RPG值和运行时间都比其他三种算法要好得多。
[0185]
[0186] 表8:测试算例N2M2的对比实验结果(n=100,M=4)
[0187] 从表8可以看出,在每种情况下,IACO算法的RPG值都优于HGA算法。此外,IACO在所有实例(仅一个实例)上均胜过ACO-N;在八个实例之外的所有实例中,IACO的RPG值都优于H-N。此外,IACO的平均RPG明显优于其他比较算法,这与表7中的平均结果一致;从表7和8中可以看出,IACO的平均RPG值随着机器数量的增加而急剧下降。
[0188]
[0189]
[0190] 表9:测试算例N3M1的对比实验结果(n=200,M=2)
[0191] 从表9可以知道,在所有比较算法中,IACO算法的RPG值是最好的。IACO的运行时间比其他三种比较算法的运行时间要短得多。从表5、7和9中可以看出,随着作业数量的增加,所提出的IACO算法在平均RPG和平均运行时间方面的优势变得越来越明显。
[0192]
[0193] 表10:测试算例N3M2的对比实验结果(n=200,M=4)
[0194] 从表10可以知道,IACO算法的RPG值都优于其他比较算法。在每种情况下,IACO算法的运行时间都比HGA,ACO-N和H-N的运行时间少得多。此外,IACO算法的平均RPG值和平均运行时间均远优于其他算法。
[0195] 结合以上数据,四种算法在不同实例组上的比较结果如图5所示,其中x轴表示测试算例的代码,y轴表示测试算例的平均目标值,对于N1M1和N1M2组,IACO的平均目标值略低于H-N和ACO-N的平均目标值。但是,随着工作和机器数量的增加,IACO算法的平均目标值变得比其他算法要好得多。例如N3M1和N3M2组,IACO算法的平均目标值远好于HGA,后者几乎是H-N和ACO-N获得的目标值的一半。这是由于IACO同时考虑了生产,运输和存储的子问题,比分别解决两个子问题的算法更适合解决大规模问题。此外,IACO算法显然优于HGA算法。由于结合了基于概率的反馈机制,IACO能够不断优化所研究问题的解决方案的整体质量。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

微信群二维码
意见反馈