本发明涉及工业过程计划与调度优化技术领域,特别是涉及一种炼钢-连铸生产调度优化方法。
背景技术:
在工业生产中,炼钢-连铸生产调度,就是在炉次的工艺路径即每个炉次加工工序总数及每道工序的所选设备种类已知的情况下,在保证连铸机连续浇铸过程中每个浇次内的炉次之间及同一设备上两相邻炉次之间不产生作业冲突的前提下,以浇次在连铸机上的开浇时间与该浇次的理想开浇时间之差及相邻工序之间的炉次等待时间为节能降耗因素,以炉次在任意加工时间内的设备唯一性和炉次在任意加工设备内的时间连续性为约束条件,确定每个炉次在已知工艺路径下的每个工序上对应的加工处理设备及该设备对应的加工开始时间,形成炼钢-连铸生产作业时间表,即钢厂的炼钢-连铸计划调度。炼钢-连铸生产调度对炼钢-连铸生产乃至企业的生产效益具有重要意义。
炼钢-连铸生产调度优化问题属于np(non-deterministicpolynomial)即非确定性多项式难题,其目标解的搜索涉及解空间的组合爆炸。现有的炼钢-连铸生产调度优化方法主要有运筹学方法、启发式方法和人工智能方法。经典的运筹学方法受限于生产过程的规模而难以在短时间得到高质量的调度方案。启发式方法虽然具有描述简单且适用于实际调度环境的特点,但是对于大规模的复杂多目标调度优化问题的求解效果不理想。人工智能方法很难完全由计算机处理实际调度生产过程结构不良的问题,主要表现在系统中的知识不完备及不一致,从而导致调度优化速度慢。从而,上述现有方法难以保证炼钢-连铸生产调度优化问题的求解质量,而且在短时间内难以获得满足实际生产要求的近似优化可行解。
技术实现要素:
针对现有技术存在的问题,本发明提供一种炼钢-连铸生产调度优化方法,能够缩小调度规模、降低调度问题求解难度、提高求解质量及求解速度,从而提高企业的生产效益。
本发明的技术方案为:
一种炼钢-连铸生产调度优化方法,其特征在于,包括下述步骤:
步骤1:获取钢厂的炼钢-连铸生产数据,所述炼钢-连铸生产数据包括工序总数j、第t时刻第j个工序的可用设备数mjt、第m台连铸机上已指派的浇次有序集合bm、第k个浇次中的炉次有序集合ωk、第i个炉次在第j个工序的加工开始时间ti,j、第i个炉次在第j个工序的作业时间pi,j、炉次在第j个工序和第j+1个工序之间的标准传输时间tj,j+1、相邻浇次间更换结晶器所需最小间隔时间su、炉次在连铸工序的等待时间惩罚系数w1、炉次在精炼工序的等待时间惩罚系数w2、实际开浇时间晚于理想开浇时间时的惩罚系数w3、实际开浇时间早于理想开浇时间时的惩罚系数w4;
其中,j=1,2,3,…,j,第1个工序为炼钢工序,第2至j-1个工序为精炼工序的子工序,第j个工序为连铸工序,mjt≥1;第j个工序的设备为连铸机,第t时刻第j个工序的设备数即连铸机数为mjt=mj,mj为常数;t∈{0,1,2,…,t},ti,j∈{0,1,2,…,t},t为第j个工序的截止时间;
bm={b(m-1)+1,b(m-1)+2,…,b(m)},b(m)为第m台连铸机上的末浇次序号,b(m)=b(m-1)+|bm|,|bm|为第m台连铸机上的浇次个数,b(0)=0,m=1,2,3,…,mj,b(mj)=k,k为浇次总数;
ωk={s(k-1)+1,s(k-1)+2,…,s(k)},s(k)为第k个浇次中的末炉次序号,s(k)=s(k-1)+|ωk|,|ωk|为第k个浇次中的炉次个数,s(0)=0,k=1,2,3,…,k,s(k)=|ω|,|ω|为炉次总数,ω为所有炉次的集合,ω=ω1∪ω2∪…∪ωk∪…∪ωk,
步骤2:建立炼钢-连铸生产调度优化模型,具体包括下述步骤:
步骤2.1:建立加权所有炉次在连铸工序的等待时间惩罚之和模型:
步骤2.2:建立加权所有炉次在精炼工序的等待时间惩罚之和模型:
步骤2.3:建立加权所有浇次在连铸工序的开浇时间惩罚之和模型:
其中,当ti,j>di时,x1i=ti,j-di,x2i=0;当ti,j<di时,x1i=0,x2i=di-ti,j;当ti,j=di时,x1i=0,x2i=0;ti,j为第i个炉次在连铸工序的加工开始时间也即实际开浇时间,di为第i个炉次在连铸工序的理想开浇时间;
步骤2.4:建立目标函数模型:
minz=z1+z2+z3
步骤2.5:建立相邻工序-炉次加工顺序约束模型,即同一炉次在前一工序加工完毕并运达到下一工序后,才能开始加工:
ti,j+1-tj,j+1-pi,j-ti,j≥0i∈ω,j=1,2…,j-1
步骤2.6:建立浇次加工顺序约束模型,即相邻浇次间需要时间来更换结晶器:
ti+1,j-pi,j-ti,j≥su
其中,i=s(k),k∈{b(m-1)+1,b(m-1)+2,…,b(m)-1},m=1,2,3,…,mj;
步骤2.7:建立连铸工序-炉次加工顺序约束模型,即同一浇次的相邻炉次有加工前后顺序:
ti+1,j-pi,j-ti,j≥0
其中,i∈{s(k-1)+1,s(k-1)+2,…,s(k)-1},k∈{b(m-1)+1,b(m-1)+2,…,b(m)},m=1,2,3,…,mj;
步骤2.8:建立设备能力约束模型,即在同一设备上不能同时加工多个炉次:
∑i∈ωδijt≤mjtj=1,2…,j-1,t=1,2,…,t
其中,当第t时刻第i个炉次在第j个工序被加工时,δijt=1;当第t时刻第i个炉次在第j个工序没有被加工时,δijt=0;
步骤2.9:上述步骤2.4-步骤2.8建立的所有模型共同构成炼钢-连铸生产调度优化模型;
步骤3:建立拉格朗日乘子松弛“不断浇、不冲突”约束即“加工顺序约束、设备能力约束”模型;
其中,ui为第i个炉次的拉格朗日乘子,vjt为第t时刻第j个工序的拉格朗日乘子;
步骤4:建立第i个炉次的带有拉格朗日乘子的计划调度优化子问题模型:
其中,
步骤5:建立对偶问题模型;
步骤6:用n表示迭代次数,n的初始值设为0,第n次迭代中拉格朗日乘子ui、vjt的值分别为
步骤7:令i的初始值为1,采用后向动态规划法,求解步骤4中第i个炉次的带有拉格朗日乘子的计划调度优化子问题模型,得到第n次迭代中第i个炉次的带有拉格朗日乘子的计划调度优化子问题模型的最优决策变量值
步骤8:判断步骤7中获得的第n次迭代中第i个炉次的最优决策变量值
步骤9:设置第n次迭代中拉格朗日乘子
步骤10:判断相邻两次迭代的梯度方向所成的角度,如果为锐角,则进入步骤11;如果为钝角,则引入拉格朗日乘子
步骤11:计算第n次迭代中拉格朗日乘子
其中,
步骤12:基于梯度方向和更新步长,来更新拉格朗日乘子:
步骤13:检验拉格朗日乘子是否满足停止准则||hn+1-hn||<ε1,如果满足停止准则,则停止拉格朗日乘子更新,得到最优决策即单炉次调度优化方案,进入步骤14;如果不满足停止准则,则令n=n+1,返回步骤7,进入下一次迭代计算;其中,
步骤14:根据单炉次调度优化方案,获取炼钢-连铸生产调度优化方案,并判断炼钢-连铸生产调度优化方案是否有违反所述步骤3中“加工顺序约束、设备能力约束”的情况出现,如果有,则按照改变加工开始时间代价规则进一步优化炼钢-连铸生产调度优化方案;如果没有,则所获取的炼钢-连铸生产调度优化方案为可行方案,具体包括下述步骤:
步骤14.1:从时间节点0开始,判断所有炉次是否都满足“加工顺序约束、设备能力约束”,如果都满足,则进入步骤14.4;如果不都满足,则进入步骤14.2;
步骤14.2:在不满足“加工顺序约束、设备能力约束”的炉次中,分别计算每个炉次的加工开始时间节点推迟一个单位的代价,对代价最小的炉次的加工开始时间推迟一个单位;
步骤14.3:重复步骤14.1-14.2,直到该时间节点所有炉次都满足“加工顺序约束、设备能力约束”;
步骤14.4:判断下一时间节点是否达到最后时间,如果达到最后时间,则得到可行的炼钢-连铸生产调度优化方案;如果未达到最后时间,则转入步骤14.1,在下一时间节点对所有炉次进行“加工顺序约束、设备能力约束”的判断。
所述步骤7包括下述步骤:
步骤7.1:令i的初始值为1、j的初始值为j,将第n次迭代中决策变量ti,j、δijt的值分别表示为
步骤7.2:令j=j-1,反向迭代计算第j个工序的最优决策变量值和最优惩罚值,直到第1个工序;第1个工序的最优惩罚值
本发明的有益效果为:
本发明基于高效拉氏松弛迭代算法进行炼钢-连铸生产调度的优化,能够缩小调度规模、降低调度问题求解难度、提高求解质量及求解速度,尤其适用于大规模炼钢-连铸生产过程的多工序、多耦合、多约束、间歇与连续作业方式相混杂的流程式特点。本发明在寻找最优拉格朗日乘子的过程中,采用无需预估最优值的基于梯度方向可控的迭代优化策略,避免了传统方法在可行域内部搜索时出现锯齿震荡的问题,并在保证求解质量的前提下,提高了收敛速度,能够有效提高炼钢-连铸生产过程调度编制的求解质量以及响应速度,提高企业的生产效益。
附图说明
图1为本发明的炼钢-连铸生产调度优化方法的流程图。
具体实施方式
下面将结合附图和具体实施方式,对本发明作进一步描述。
本发明的目的是提供一种炼钢-连铸生产调度优化方法,能够缩小调度规模、降低调度问题求解难度、提高求解质量及求解速度,从而提高企业的生产效益。
如图1所示,为本发明的炼钢-连铸生产调度优化方法的流程图。
本发明的炼钢-连铸生产调度优化方法,其特征在于,包括下述步骤:
步骤1:获取钢厂的炼钢-连铸生产数据,所述炼钢-连铸生产数据包括工序总数j、第t时刻第j个工序的可用设备数mjt、第m台连铸机上已指派的浇次有序集合bm、第k个浇次中的炉次有序集合ωk、第i个炉次在第j个工序的加工开始时间ti,j、第i个炉次在第j个工序的作业时间pi,j、炉次在第j个工序和第j+1个工序之间的标准传输时间tj,j+1、相邻浇次间更换结晶器所需最小间隔时间su、炉次在连铸工序的等待时间惩罚系数w1、炉次在精炼工序的等待时间惩罚系数w2、实际开浇时间晚于理想开浇时间时的惩罚系数w3、实际开浇时间早于理想开浇时间时的惩罚系数w4;
其中,j=1,2,3,…,j,第1个工序为炼钢工序,第2至j-1个工序为精炼工序的子工序,第j个工序为连铸工序,mjt≥1;第j个工序的设备为连铸机,第t时刻第j个工序的设备数即连铸机数为mjt=mj,mj为常数;t∈{0,1,2,…,t},ti,j∈{0,1,2,…,t},t为第j个工序的截止时间;
bm={b(m-1)+1,b(m-1)+2,…,b(m)},b(m)为第m台连铸机上的末浇次序号,b(m)=b(m-1)+|bm|,|bm|为第m台连铸机上的浇次个数,b(0)=0,m=1,2,3,…,mj,b(mj)=k,k为浇次总数;
ωk={s(k-1)+1,s(k-1)+2,…,s(k)},s(k)为第k个浇次中的末炉次序号,s(k)=s(k-1)+|ωk|,|ωk|为第k个浇次中的炉次个数,s(0)=0,k=1,2,3,…,k,s(k)=|ω|,|ω|为炉次总数,ω为所有炉次的集合,ω=ω1∪ω2∪…∪ωk∪…∪ωk,
本实施例中,第i个炉次在第j个工序的作业时间pi,j为在区间[2,6]上满足均匀分布的整数;炉次在第j个工序和第j+1个工序之间的标准传输时间tj,j+1为在区间[1,5]上分布的整数;相邻浇次间更换结晶器所需最小间隔时间su=5;惩罚系数w1=10,w2=10,w3=15,w4=15。
步骤2:建立炼钢-连铸生产调度优化模型,具体包括下述步骤:
步骤2.1:建立加权所有炉次在连铸工序的等待时间惩罚之和模型:
步骤2.2:建立加权所有炉次在精炼工序的等待时间惩罚之和模型:
步骤2.3:建立加权所有浇次在连铸工序的开浇时间惩罚之和模型:
其中,当ti,j>di时,x1i=ti,j-di,x2i=0;当ti,j<di时,x1i=0,x2i=di-ti,j;当ti,j=di时,x1i=0,x2i=0;ti,j为第i个炉次在连铸工序的加工开始时间也即实际开浇时间,di为第i个炉次在连铸工序的理想开浇时间;
步骤2.4:建立目标函数模型:
minz=z1+z2+z3
步骤2.5:建立相邻工序-炉次加工顺序约束模型,即同一炉次在前一工序加工完毕并运达到下一工序后,才能开始加工:
ti,j+1-tj,j+1-pi,j-ti,j≥0i∈ω,j=1,2…,j-1
步骤2.6:建立浇次加工顺序约束模型,即相邻浇次间需要时间来更换结晶器:
ti+1,j-pi,j-ti,j≥su
其中,i=s(k),k∈{b(m-1)+1,b(m-1)+2,…,b(m)-1},m=1,2,3,…,mj;
步骤2.7:建立连铸工序-炉次加工顺序约束模型,即同一浇次的相邻炉次有加工前后顺序:
ti+1,j-pi,j-ti,j≥0
其中,i∈{s(k-1)+1,s(k-1)+2,…,s(k)-1},k∈{b(m-1)+1,b(m-1)+2,…,b(m)},m=1,2,3,…,mj;
步骤2.8:建立设备能力约束模型,即在同一设备上不能同时加工多个炉次:
∑i∈ωδijt≤mjtj=1,2…,j-1,t=1,2,…,t
其中,当第t时刻第i个炉次在第j个工序被加工时,δijt=1;当第t时刻第i个炉次在第j个工序没有被加工时,δijt=0;
步骤2.9:上述步骤2.4-步骤2.8建立的所有模型共同构成炼钢-连铸生产调度优化模型。
步骤3:建立拉格朗日乘子松弛“不断浇、不冲突”约束即“加工顺序约束、设备能力约束”模型;
其中,ui为第i个炉次的拉格朗日乘子,vjt为第t时刻第j个工序的拉格朗日乘子;
步骤4:建立第i个炉次的带有拉格朗日乘子的计划调度优化子问题模型:
其中,
步骤5:建立对偶问题模型;
至此,模型建立完成,从步骤6开始,通过采用拉氏框架下无需预估最优值的基于梯度方向可控的迭代优化策略的乘子寻优方法,对炼钢-连铸生产调度优化问题进行求解,具体如下:
步骤6:用n表示迭代次数,n的初始值设为0,第n次迭代中拉格朗日乘子ui、vjt的值分别为
步骤7:令i的初始值为1,采用后向动态规划法,求解步骤4中第i个炉次的带有拉格朗日乘子的计划调度优化子问题模型,得到第n次迭代中第i个炉次的带有拉格朗日乘子的计划调度优化子问题模型的最优决策变量值
步骤7.1:令i的初始值为1、j的初始值为j,将第n次迭代中决策变量ti,j、δijt的值分别表示为
步骤7.2:令j=j-1,反向迭代计算第j个工序的最优决策变量值和最优惩罚值,直到第1个工序;第1个工序的最优惩罚值
步骤8:判断步骤7中获得的第n次迭代中第i个炉次的最优决策变量值
步骤9:设置第n次迭代中拉格朗日乘子
步骤10:判断相邻两次迭代的梯度方向所成的角度,如果为锐角,则进入步骤11;如果为钝角,则引入拉格朗日乘子
本实施例中,β=1.2;
步骤11:计算第n次迭代中拉格朗日乘子
其中,
步骤12:基于梯度方向和更新步长,来更新拉格朗日乘子:
步骤13:检验拉格朗日乘子是否满足停止准则||hn+1-hn||<ε1,如果满足停止准则,则停止拉格朗日乘子更新,得到最优决策即单炉次调度优化方案,进入步骤14;如果不满足停止准则,则令n=n+1,返回步骤7,进入下一次迭代计算;其中,
步骤14:根据单炉次调度优化方案,获取炼钢-连铸生产调度优化方案,并判断炼钢-连铸生产调度优化方案是否有违反所述步骤3中“加工顺序约束、设备能力约束”的情况出现,如果有,则按照改变加工开始时间代价规则进一步优化炼钢-连铸生产调度优化方案;如果没有,则所获取的炼钢-连铸生产调度优化方案为可行方案,具体包括下述步骤:
步骤14.1:从时间节点0开始,判断所有炉次是否都满足“加工顺序约束、设备能力约束”,如果都满足,则进入步骤14.4;如果不都满足,则进入步骤14.2;
步骤14.2:在不满足“加工顺序约束、设备能力约束”的炉次中,分别计算每个炉次的加工开始时间节点推迟一个单位的代价,对代价最小的炉次的加工开始时间推迟一个单位;
步骤14.3:重复步骤14.1-14.2,直到该时间节点所有炉次都满足“加工顺序约束、设备能力约束”;
步骤14.4:判断下一时间节点是否达到最后时间,如果达到最后时间,则得到可行的炼钢-连铸生产调度优化方案;如果未达到最后时间,则转入步骤14.1,在下一时间节点对所有炉次进行“加工顺序约束、设备能力约束”的判断。
本实施例中,通过c#语言编程,在intelcorei55200cpu4gbwindows10/64位操作系统的pc上执行传统代理梯度优化方法(lr-1)以及本发明的炼钢-连铸生产调度优化方法(lr-2),来同时求解不同规模(不同工序总数和炉次总数)的炼钢-连铸生产调度优化问题,用对偶间隙gap和运行时间作为评价两种方法求解质量的依据,具体结果如表1所示。其中,对偶间隙
由表1可以看出,本发明的炼钢-连铸生产调度优化方法与传统代理梯度优化方法相比,求解质量相差不多,求解效率优于传统代理梯度优化方法。特别地,对于规模大的炼钢-连铸生产调度优化问题,本发明的方法具有更大的优势。
显然,上述实施例仅仅是本发明的一部分实施例,而不是全部的实施例。上述实施例仅用于解释本发明,并不构成对本发明保护范围的限定。基于上述实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,也即凡在本申请的精神和原理之内所作的所有修改、等同替换和改进等,均落在本发明要求的保护范围内。
表1