一种改进的模拟退火算法解决作业车间调度问题的制作方法

文档序号:11063801阅读:2150来源:国知局
一种改进的模拟退火算法解决作业车间调度问题的制造方法与工艺

本发明涉及作业车间调度技术领域。



背景技术:

作业车间调度问题(Job-Shop Scheduling Problem,JSP)是制造执行系统研究的核心和重点之一,它的研究不仅具有重大的现实意义,而且具有深远的理论意义。JSP就是根据产品制造需求合理分配资源,进而达到合理利用产品制造资源、提高企业经济效益的目的。JSP是产品制造行业中共存的问题,它与计算机集成制造系统(Computer Integrated Manufacturing Systems,CIMS)的工厂管理、产品制造层次紧密相关,是CIMS领域中研究的重要课题。JSP是一个典型的NP-hard问题,它的研究必然会对NP问题的研究起到有意义的影响。

模拟退火算法(SA)是是一种适合解决大规模组合优化问题的算法。最早由Metropolis在1953年提出。源于统计物理学,它模拟实际固体退火过程的温度变化,即先将固体加温至充分高,在逐渐冷却。加温时,固体内部粒子变为无序状态,内能增大;而逐渐降温时,粒子趋于有序,在每个温度都达到平衡态,最后在常温时达到基态,内能减到最小。模拟退火算法(SA)是局部搜索算法的扩展,它不同于局部搜索之处是以一定的概率选择领域中的最优值状态。在解决NP完全问题,SA有很大的利用价值。

模拟退火算法简单有效的搜索方式避免了数值算法的高计算量,又避免了局部搜索算法快速收敛于局部最优解的缺点。但是,模拟退火算法是一种串行优化算法,它的执行过程要经历双重循环:内循环(在当前温度下进行Markov链长度搜索)和外循环(利用降温函数进行降温求控制状态更新概率),而其每部只随机尝试当前状态领域中的一个状态,这无疑会增加其运算时间。另外,模拟退火算法由于全局收敛条件难以实现,并且,概率接受使得当前状态可能比搜索轨迹中的某些状态还要差,从而实际算法往往最终得到近似最优解,甚至可能比中间经历的最坏解要差,而且搜索效率差。

现有技术中有对模拟退火算法的改进,但是依然面临着算法迭代时间长,算法计算量大等不足之处。



技术实现要素:

针对上述不足,本发明要解决的技术问题是提供一种改进的模拟退火算法解决作业车间的调度问题。

本发明的目的是克服现有技术中存在的:收敛速度不够快,最终最优解不够精确,算法迭代时间长、算法计算量大的缺点。

本发明为实现上述目的所采用的技术方案是:一种改进的模拟退火算法解决作业车间调度问题,该算法的步骤如下:

步骤1:初始化算法参数:初始温度T0(保证充分大),初始解状态矩阵C(是算法迭代的起点),工序时间矩阵P,迭代次数L;

步骤2:计算当前解;

步骤3:降温方式的确定;

步骤4:产生新解S′;

步骤5:如果满足终止条件输出当前解作为最优解,输出对应的状态矩阵C,工序时间矩阵P,结束程序,否则转步骤2。

本发明的有益效果是:

1、根据温度的下降规律,设定温度下降函数,避免了算法易于收敛于局部,同时减少了计算量。

2、以概率接受平均加工时间为状态矩阵移动步长,使算法结果更为接近实际生产应用,同时也较少了算法迭代时间。

3、改变了算法接受新解作为当前解的概率计算方式,使算法更为精确。

附图说明

本发明的算法基本流程图。

具体实施方式

作业车间调度问题是一种职能单位,它的工段或工作中心事围绕着不同类型设备或工序来组织的,如钻床、锻压机、装配线、解工总行等。作业车间调度问题可描述为:有n个加工顺序不同的工件要在m台机器上完成加工。

以下结合流程图,对本发明进行详细说明,算法的具体实施步骤如下:

步骤1:初始化算法参数:初始温度T0(保证充分大),初始解状态矩阵C(是算法迭代的起点),工序时间矩阵P,迭代次数L;

步骤2:计算当前解:用数学模型描述如下:

S=minf(S1,S2,...Sn)=min max1≤o≤w{max1≤k≤m{max1≤i≤n Coik}} (1)

约束条件:

Coik-poik+M(1-aoihk)≥Coih

(o=1,2,...,w;i=1,2,...,n;h,k=1,2,...,m) (2)

Coik-Coik+M(1-xoijk)≥poik

(i,j=1,2,...,n;o=1,2,...,w;k=1,2,...,m) (3)

Coik≥0(o=1,2,...,w;i=1,2,...,n;k=1,2,...,m) (4)

xoijk=0或1(i,j=1,2,...,n;o=1,2,...,w;k=1,2,...,m) (5)

maxi{Coi}≤Co (6)

其中,式(1)表示目标函数,即完成时间(Makespan);式(2)表示工艺约束条件决定的每个工件的操作的先后顺序;式(3)表示加工每个工件的每台机器的先后顺序;式(4)表示完工时间变量约束条件;式(5)表示变量可能的取值大小。上述公式中所涉及的符号定义含义如下:Coik和poik分别为第o个订单(或阶数)中的第i个工件在机器k上的完成时间点和加工时间长度;M是一个足够大的整数;式(6)表示第o个订单的所有工件最大完成时间小于订单周期Co的时间约束;aoihk和xoijk分别为指示系数和指示变量,其含义为:

步骤3:降温方式的确定:由于存在温度传递,故温度过高和过低的粒子温度都会向平均温度靠近,而能量的递减会越来越缓慢,故采用如下方式计算温度:其中,k为迭代次数,k=1,2,…n。

步骤4:产生新解S′:

(1)新解的产生机制:

状态矩阵C的变化函数:状态矩阵以概率ρ接受平均工件加工时间为移动步长,即:C(k)=C(k-1)+ρ·μ。其中平均ρ满足Metropolis接受准则:其中,τ为p的极差,τ=max(P)-min(P),σ为p的方差:

迭代次数L=L-1;

将更新后的数据代入按照步骤2所列的方程,计算新的临时解S(k);

(2)计算新的临时解与当前解的目标函数差:ΔS=S(k)-S(k-1)。

(3)接受新解准则:如果满足ΔS<0,则S′=S(k),否则以概率接受S(k)作为新的当前解。

步骤5:如果满足终止条件输出当前解作为最优解,输出对应的状态矩阵C,工序时间矩阵P,结束程序,否则转步骤2,终止条件为:

满足T(k)>0且ΔT=T(k)-T(k-1)<ε,S(k)-T(k-1)<δ,其中ε和δ是温度下降阈值和精确度,是正实数。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1