首页> 中国专利> 基于序优化与在线核极限学习机的分层迭代优化调度方法

基于序优化与在线核极限学习机的分层迭代优化调度方法

摘要

基于序优化与在线核极限学习机的分层迭代优化调度方法,属于自动控制、信息技术和先进制造领域,具体涉及菜单层批调度策略优化、操作层操作排序优化和基于核极限学习机在线学习的目标函数评价等方法。其特征在于,针对微电子生产过程中的扩散区组批调度过程中决策变量多,批调度策略与操作排序策略之间存在较强耦合等特点,在调度算法中采用了分层调度结构,对菜单层批调度策略和操作层排序策略进行迭代优化,为提高算法运算效率,采用序优化方法快速优化菜单层批调度策略,并通过菜单层和操作层之间的迭代优化,进一步提高调度算法性能。本发明所提出的基于序优化与在线核极限学习机的分层迭代优化调度方法具有较好的求解速度和优化性能。

著录项

  • 公开/公告号CN103105775A

    专利类型发明专利

  • 公开/公告日2013-05-15

    原文格式PDF

  • 申请/专利权人 清华大学;

    申请/专利号CN201210543781.X

  • 申请日2012-12-17

  • 分类号G05B13/02;

  • 代理机构北京思海天达知识产权代理有限公司;

  • 代理人楼艮基

  • 地址 100084 北京市海淀区清华园1号

  • 入库时间 2024-02-19 18:33:18

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-12-06

    未缴年费专利权终止 IPC(主分类):G05B13/02 授权公告日:20140416 终止日期:20181217 申请日:20121217

    专利权的终止

  • 2014-04-16

    授权

    授权

  • 2013-06-12

    实质审查的生效 IPC(主分类):G05B13/02 申请日:20121217

    实质审查的生效

  • 2013-05-15

    公开

    公开

说明书

技术领域

本发明属于自动控制、信息技术和先进制造领域。具体涉及在决策变量存在耦合、决策变量多、规模大的环境下,提高优化速度和性能的方法。

背景技术

软计算在优化调度过程中取得了广泛应用,但在解空间规模庞大时,易于出现算法早熟、收敛速度慢等现象,整个求解过程效率较低。虽然高效的进化计算方法被不断提出,如量子进化计算、差分进化计算等高效的进化算法被不断提出,在提高算法效率方面取得了一定的改善,但当面对大规模问题时,求解效率仍很难令人满意。半导体生产过程十分复杂,规模庞大,特别在组批加工过程中,相比普通的加工过程,还存在组批、Batch排序等过程,同时组批决策和操作排序决策之间存在较强的耦合作用,即组批决策结果受操作排序结果的影响,因此,如何通过挖掘问题自身的特征,提高算法的求解效率,是优化带有批处理过程的调度问题的难点。

本发明提出一种基于序优化与在线核极限学习机的分层迭代优化调度方法,与其他算法相比,本发明具有较优的调度性能和求解效率。

发明内容

为了解决复杂生产制造过程中优化算法存在的求解效率低下的不足,本发明针对半导体生产过程中的扩散区组批调度过程中决策变量多,批调度策略与操作排序策略之间存在强耦合,调度问题规模大等特点,在调度算法中采用了分层调度结构,对菜单层批调度策略和操作层排序策略进行迭代优化,为提高算法运算效率,采用序优化方法快速优化菜单层批调度策略,并通过菜单层和操作层之间的迭代优化,有效提高了调度算法的求解速度和优化性能。

基于序优化与在线核极限学习机的分层迭代优化调度方法,其特征在于,所述方法是在计算机上依次按以下步骤实现的:

步骤1:初始化调度算法相关参数

采集调度所需的相关初始化信息,包括每个lot的片数、品种、工艺流程信息,每个操作的菜单、可加工机器名称、所属的加工机器组名称信息,每个机器的释放时间、所属的机器组、对每种菜单的加工时间信息,这些信息写入算法数据库中,在调度算法启动时,作为初始化信息加载到算法中;

确定差分进化优化算法相关参数:选定种群规模N=20,差分缩放因子F=0.3,最大进化代数Gmax=5,杂交率CR=0.8,变异比率λ=0.3;迭代次数设为2次;

步骤2:差分进化算法初始解生成;

优化过程中,对于菜单层主要采用菜单多属性权值优化,优化的菜单属性主要包括该菜单中所含的操作平均剩余加工时间、平均到达时间、平均后续操作数量、平均紧急程度优化四个属性;对于操作层主要优化操作的优先权序列,于是,对于每个机器组而言,采用的编码方式为:i表示该机器组编号i=1,2,…,g,g为机器组的数量;ri表示机器组i可加工菜单的最大数量;{wi,1,wi,2,wi,3,wi,4}为四个调度属性的权值,权值初始化时在[0 1]范围内随机取值;表示第j个菜单对应所有操作生成的优先权序列,其中dj表示菜单j所包含的操作的总数量,表示机器组i的菜单j中的第k个操作,k=1,2,…,dj;操作优先权序列采用随机方式产生;

所有机器组的组合,构成一条初始解个体;

步骤3:采用差分进化算法获得第一次迭代前较优解

步骤3.1:解码

对步骤2中生成的初始解,通过离散事件仿真的方式获得对每个调度解个体的适应度评价;

仿真过程中,主要包含菜单选择和菜单内操作选择两种决策过程:

当机器空闲时,首先对缓冲区内所有的操作按照菜单进行分组,计算每种菜单内所有操作的平均剩余加工时间、平均到达时间、平均后续操作数量、平均紧急程度四个属性,根据编码过程中给定的调度属性加权矢量{wi,1,wi,2,wi,3,wi,4}计算菜单的优先权值,选取权值高的菜单进行加工;

菜单选定后,对菜单内每个操作按照解个体中给定的操作优先权从高到底的方式进行选择,直至选出的操作总片数最接近机器加工片数的最大值;此时,被选中的所有操作组成一个batch,将该batch中的所有操作都同时上机进行加工;

加工完成后,仿真推进至下一次菜单选择和菜单内操作选择过程,直至所有操作都加工完成,仿真结束;

步骤3.2:变异交叉过程

差分进化算法变异交叉过程描述如下:

步骤3.2.1:随机选择三个个体,

步骤3.2.2:操作层操作优先权序列变异方法:

1)选择需变异的操作优先权子序列

假定机器组Ml对应操作的数量为Dl,需进行变异的操作数量为表示向下取整;随机生成一整数r4,0≤r4≤Dl-Dλ,从中机器组Ml对应的操作优先权序列中,从位置r4选取长度为Dλ的操作子序列,记为该子序列对应的位置矢量记为这里位置矢量指的是从0开始标记的位置编号,则:

>Pr1r4={r4,r4+1,···,r4+Dλ-1}>

将上式记作:

>Pr1r4={r4,r4+1,···,r4+Dλ-1}={Pr1,0r4,Pr1,1r4,···,Pr1,Dλ-1r4}>

不失一般性,记第r4+k(0≤k≤Dλ-1)个操作在中对应的操作优先权序列的位置编号,则对选取的长度为Dλ的操作子序列中的每一个元素,在中查找对应位置的元素后,得到的位置矢量为:

>Pr1r4={Pr2,0r4,Pr2,1r4,···,Pr2,Dλ-1r4}>

>Pr3r4={Pr3,0r4,Pr3,1r4,···,Pr3,Dλ-1r4}>

>Pr1r4={Pr1,0r4,Pr1,1r4,···,Pr1,Dλ-1r4}>

这里中由所对应的操作、中位置所对应的操作以及中位置所对应的操作相同;

2)执行变异操作

令F为差分缩放因子(F<1),按下式计算变异后中每个元素所对应的位置矢量

上式中,mod表示取余;表示变异后的位置矢量;

3)交叉过程

分别为位置矢量中的第k个位置,上述两个位置对应的操作为一个操作对,交叉操作即为对上述两个位置对应的操作按初始化给定的概率CR进行交换;即随机生成一个取值在[0,1]内的数,将该数与CR值比较,如果该随机数大于CR则交换,否则不交换;

步骤3.2.3:菜单层多调度属性权值变异交叉方法:

1)变异过程

>yij=wr1j+F(wr2j-wr3j)>

上式中,为个体的多属性权值部分;为个体的多属性权值部分;为个体的多属性权值部分;表示变异后第j代第i个个体的调度属性权值部分;

2)交叉过程

假定表示的第k个变量,表示第j代第i个个体的第k个变量,k=1,2,3,4,交叉过程为:随机生成一个取值在[0,1]内的数,将该数与CR值比较,如果该随机数大于CR则否则

步骤3.2.4:变异交叉完成后,所得到的个体记为

步骤3.3:选择

若完成变异和交叉后的个体适应度高于原有个体,则将新个体取代原有个体,作为第j+1代第i个个体即:

>xij+1=xij,f(xij)f(vij)vji,f(xij)>f(vij)>

其中表示的目标函数值;表示的目标函数值;

步骤3.4:终止条件

重复步骤3.1~步骤3.3,直至满足所设定的最大进化代数Gmax=5;

步骤4:菜单层基于序优化方法的快速优化

菜单层采用序优化方法进行优化,具体算法描述如下:

步骤4.1:随机产生N0=20条个体,每个个体生成时,操作层的操作优先权序列为步骤3优化后得到的操作优先权,菜单层的多属性权值产生方法与步骤2中菜单层多属性权值产生方法相同;

记为其中xi为一组权值矢量,由所有机器组对应的菜单层属性加权矢量{wi,1,wi,2,wi,3,wi,4}组成;

通过仿真获得这N0个个体的目标函数值,记为>Y=y1y2···yN0;>

步骤4.2:将步骤4.1生成的N0对数据作为训练数据,构造训练集{X,Y};

步骤4.3:随机产生Ntest=1000个调度解个体构造集合Θr,每个个体的产生方法与步骤2中调度解个体的产生方法相同;

步骤4.4:采用核极限学习机,获得Ntest=1000个调度解个体的目标函数值的估计值,计算公式如下:

>Y^test=K(xtest,1,x1)K(xtest,1,x2)···K(xtest,1,xN0)K(xtest,2,x1)K(xtest,2,x2)···K(xtest,2,xN0)············K(xtest,Ntest,x1)K(xtest,Ntest,x2)···K(xtestNtest,xN0)Aπ-1y1Aπ-1y2···Aπ-1yN0>

其中>Aπ-1=1v+K(x1,x1)K(x1,x2)···K(x1,xN0)K(x2,x1)1v+K(x2,x3)···K(x2,xN0)············K(xN0,X1)K(xN0,x2)···1v+K(xN0,xN0)-1>

K(*,#)=exp(-γ||*-#||2)为预先给定的核函数,其中*和#代表核函数的两个输入变量,这里γ取值为γ=211;目标函数值的估计值v为预先给定的折中系数,这里取值为v=213;xtest,i表示Ntest=1000个调度解个体中的第i个个体,i=1,2,…,Ntest

步骤4.5:利用序优化公式计算需要仿真的个体数量,根据序优化方法,各参数取值为Z0=8.1998,k=1,ρ=1.9164,g=35,r=-2.0250,η=10,e=2.718281828459为自然对数;

步骤4.6:根据步骤4.4计算的Ntest=1000个调度解个体的目标函数值估计值,根据步骤4.5计算得到的s值,选定最优的s个调度解个体,对选定的s个解个体进行仿真,选出仿真得到的目标函数值最优的解作为最终优化结果;

此解即为采用序优化方法优化后的调度解;

步骤5:操作层基于差分进化算法的操作优先权优化

步骤5.1:差分进化算法初始解生成

随机产生N0=20条个体,每个个体生成时,菜单层的多属性权值固定为步骤4最优解中对应的权值,操作层的操作优先权序列随机产生,产生方法与步骤2中操作层的操作优先权产生方法相同;

步骤5.2:解码

具体过程与步骤3.1相同;

步骤5.3:变异

具体过程与步骤3.2.1~3.2.2同;

步骤5.4:选择

具体过程与步骤3.3相同;

步骤5.5:操作层优化终止条件

重复步骤5.1~步骤5.4,直至满足所设定的最大进化代数Gmax=5;

步骤6:迭代终止条件

重复步骤4~步骤5,直至满足迭代终止条件,即最大迭代次数Niter=2。

根据上述方法,本发明做了大量的仿真试验,从仿真结果中可看出,本发明能够在较短的时间内,获得较优的调度性能。

附图说明

图1:基于序优化与在线核极限学习机的分层迭代优化调度方法的流程图。

图2:本算法在企业使用过程中所需要的软硬件组成图。

具体实施方式

本发明提出的调度方法依赖于相关的数据采集系统、调度算法服务器和用户客户端等硬件设备,并由调度算法控制软件实现。

以下对本发明提出的基于序优化与在线核极限学习机的分层迭代优化调度方法所涉及的步骤进行详细说明:

步骤1:采集lot和各机器的初始化信息,初始化调度算法相关参数

采集调度所需的相关初始化信息,包括每个lot的片数、品种、工艺流程信息,每个操作的菜单、可加工机器名称、所属的加工机器组名称信息,每个机器的释放时间、所属的机器组、对每种菜单的加工时间信息,这些信息写入算法数据库中,在调度算法启动时,作为初始化信息加载到算法中;

确定差分进化优化算法相关参数:选定种群规模N=20,差分缩放因子F=0.3,最大进化代数Gmax=5,杂交率CR=0.8,变异比率λ=0.3;迭代次数设为2次;

步骤2:差分进化算法初始解生成;

优化过程中,对于菜单层主要采用菜单多属性权值优化,优化的菜单属性主要包括该菜单中所含的操作平均剩余加工时间、平均到达时间、平均后续操作数量、平均紧急程度优化四个属性;对于操作层主要优化操作的优先权序列,于是,对于每个机器组而言,采用的编码方式为:i表示该机器组编号i=1,2,…,g,g为机器组的数量;ri表示机器组i可加工菜单的最大数量;{wi,1,wi,2,wi,3,wi,4}为四个调度属性的权值,权值初始化时在[01]范围内随机取值;表示第j个菜单对应所有操作生成的优先权序列,其中dj表示菜单j所包含的操作的总数量,表示机器组i的菜单j中的第k个操作,k=1,2,…,dj;操作优先权序列采用随机方式产生;

所有机器组的组合,构成一条初始解个体;

步骤3:采用差分进化算法获得第一次迭代前较优解

步骤3.1:解码

对步骤2中生成的初始解,通过离散事件仿真的方式获得对每个调度解个体的适应度评价;

仿真过程中,主要包含菜单选择和菜单内操作选择两种决策过程:

当机器空闲时,首先对缓冲区内所有的操作按照菜单进行分组,计算每种菜单内所有操作的平均剩余加工时间、平均到达时间、平均后续操作数量、平均紧急程度四个属性,根据编码过程中给定的调度属性加权矢量{wi,1,wi,2,wi,3,wi,4}计算菜单的优先权值,选取权值高的菜单进行加工;

菜单选定后,对菜单内每个操作按照解个体中给定的操作优先权从高到底的方式进行选择,直至选出的操作总片数最接近机器加工片数的最大值;此时,被选中的所有操作组成一个batch,将该batch中的所有操作都同时上机进行加工;

加工完成后,仿真推进至下一次菜单选择和菜单内操作选择过程,直至所有操作都加工完成,仿真结束;

步骤3.2:变异交叉过程

差分进化算法变异交叉过程描述如下:

步骤3.2.1:随机选择三个个体,

步骤3.2.2:操作层操作优先权序列变异方法:

1)选择需变异的操作优先权子序列

假定机器组Ml对应操作的数量为Dl,需进行变异的操作数量为表示向下取整;随机生成一整数r4,0≤r4≤Dl-Dλ,从中机器组Ml对应的操作优先权序列中,从位置r4选取长度为Dλ的操作子序列,记为该子序列对应的位置矢量记为这里位置矢量指的是从0开始标记的位置编号,则:

>Pr1r4={r4,r4+1,···,r4+Dλ-1}>

将上式记作:

>Pr1r4={r4,r4+1,···,r4+Dλ-1}={Pr1,0r4,Pr1,1r4,···,Pr1,Dλ-1r4}>

不失一般性,记第r4+k(0≤k≤Dλ-1)个操作在中对应的操作优先权序列的位置编号,则对选取的长度为Dλ的操作子序列中的每一个元素,在中查找对应位置的元素后,得到的位置矢量为:

>Pr2r4={Pr2,0r4,Pr2,1r4,···,Pr2,Dλ-1r4}>

>Pr3r4={Pr3,0r4,Pr3,1r4,···,Pr3,Dλ-1r4}>

>Pr1r4={Pr1,0r4,Pr1,1r4,···,Pr1,Dλ-1r4}>

这里中由所对应的操作、中位置所对应的操作以及中位置所对应的操作相同;

2)执行变异操作

令F为差分缩放因子(F<1),按下式计算变异后中每个元素所对应的位置矢量

上式中,mod表示取余;表示变异后的位置矢量;

3)交叉过程

分别为位置矢量中的第k个位置,上述两个位置对应的操作为一个操作对,交叉操作即为对上述两个位置对应的操作按初始化给定的概率CR进行交换;即随机生成一个取值在[0,1]内的数,将该数与CR值比较,如果该随机数大于CR则交换,否则不交换;

步骤3.2.3:菜单层多调度属性权值变异交叉方法:

1)变异过程

>yij=wr1j+F(wr2j-wr3j)>

上式中,为个体的多属性权值部分;为个体的多属性权值部分;为个体的多属性权值部分;表示变异后第j代第i个个体的调度属性权值部分;

2)交叉过程

假定表示的第k个变量,表示第j代第i个个体的第k个变量,k=1,2,3,4,交叉过程为:随机生成一个取值在[0,1]内的数,将该数与CR值比较,如果该随机数大于CR则>vi,kj=yi,kj,>否则>vi.kj=wi,kj;>

步骤3.2.4:变异交叉完成后,所得到的个体记为

步骤3.3:选择

若完成变异和交叉后的个体适应度高于原有个体,则将新个体取代原有个体,作为第j+1代第i个个体即:

>xij+1=xij,f(xij)f(vij)vji,f(xij)>f(vij)>

其中表示的目标函数值;表示的目标函数值;

步骤3.4:终止条件

重复步骤3.1~步骤3.3,直至满足所设定的最大进化代数Gmax=5;

步骤4:菜单层基于序优化方法的快速优化

菜单层采用序优化方法进行优化,具体算法描述如下:

步骤4.1:随机产生N0=20条个体,每个个体生成时,操作层的操作优先权序列为步骤3优化后得到的操作优先权,菜单层的多属性权值产生方法与步骤2中菜单层多属性权值产生方法相同;

记为其中xi为一组权值矢量,由所有机器组对应的菜单层属性加权矢量{wi,1,wi,2,wi,3,wi,4}组成;

通过仿真获得这N0个个体的目标函数值,记为>Y=y1y2···yN0;>

步骤4.2:将步骤4.1生成的N0对数据作为训练数据,构造训练集{X,Y};

步骤4.3:随机产生Ntest=1000个调度解个体构造集合Θr,每个个体的产生方法与步骤2中调度解个体的产生方法相同;

步骤4.4:采用核极限学习机,获得Ntest=1000个调度解个体的目标函数值的估计值,计算公式如下:

>Y^test=K(xtest,1,x1)K(xtest,1,x2)···K(xtest,1,xN0)K(xtest,2,x1)K(xtest,2,x2)···K(xtest,2,xN0)············K(xtest,Ntest,x1)K(xtest,Ntest,x2)···K(xtestNtest,xN0)Aπ-1y1Aπ-1y2···Aπ-1yN0>

其中>Aπ-1=1v+K(x1,x1)K(x1,x2)···K(x1,xN0)K(x2,x1)1v+K(x2,x3)···K(x2,xN0)············K(xN0,X1)K(xN0,x2)···1v+K(xN0,xN0)-1>

K(*,#)=exp(-γ||*-#||2)为预先给定的核函数,其中*和#代表核函数的两个输入变量,这里γ取值为γ=211;目标函数值的估计值v为预先给定的折中系数,这里取值为v=213;xtest,i表示Ntest=1000个调度解个体中的第i个个体,i=1,2,…,Ntest

步骤4.5:利用序优化公式计算需要仿真的个体数量,根据序优化方法,各参数取值为Z0=8.1998,k=1,ρ=1.9164,g=35,r=-2.0250,η=10,e=2.718281828459为自然对数;

步骤4.6:根据步骤4.4计算的Ntest=1000个调度解个体的目标函数值估计值,根据步骤4.5计算得到的s值,选定最优的s个调度解个体,对选定的s个解个体进行仿真,选出仿真得到的目标函数值最优的解作为最终优化结果;

此解即为采用序优化方法优化后的调度解;

步骤5:操作层基于差分进化算法的操作优先权优化

步骤5.1:差分进化算法初始解生成

随机产生N0=20条个体,每个个体生成时,菜单层的多属性权值固定为步骤4最优解中对应的权值,操作层的操作优先权序列随机产生,产生方法与步骤2中操作层的操作优先权产生方法相同;

步骤5.2:解码

具体过程与步骤3.1相同;

步骤5.3:变异

具体过程与步骤3.2.1~3.2.2同;

步骤5.4:选择

具体过程与步骤3.3相同;

步骤5.5:操作层优化终止条件

重复步骤5.1~步骤5.4,直至满足所设定的最大进化代数Gmax=5;

步骤6:迭代终止条件

重复步骤4~步骤5,直至满足迭代终止条件,即最大迭代次数Niter=2。

步骤7:将优化后获得的调度策略下发执行。

根据本发明所提出的优化调度方法,本发明做了大量的仿真试验,从仿真结果可以看出,本文提出的算法可在较短的时间内,获得较好的优化效果。

将本发明的算法(记为HCKIOA)与不分层优化算法(记为NOP)、分层迭代但菜单层不采用序优化的优化方法(记为HCIOA)、工厂实际使用的规则(记为RR)、剩余加工时间最小规则(记为SRPT)和加工时间最短规则(SPT)进行比较。

对每种算法执行N次,选取N次优化的平均性能作为对该算法的评价结果,定义获得的性能指标为:

>IAVG(k)=1NΣi=1NIndi,k={HCIOA,HCKIOA,NOP,RR,SPT,SRPT}>

>StdAGV(k)=1N-1Σi=1N(Indi-IAVG(k))2,k={HCIOA,HCKIOA,NOP,RR,SPT,SRPT}>

其中Indi为第i次执行算法得到优化解的性能指标;

为进一步方便比较每种算法的性能,以NOP算法获得的优化结果为基准,定义如下性能比较指标:

平均性能改善比率:

>AIR=IAGV(k)-IAGV(NOP)IAGV(NOP)×100%,k={HCIOA,HCKIOA,RR,SPT,SRPT}>

最差性能改善比率:

>WIR=(IAGV(k)+3StdAGV(k))-(IAGV(NOP)+3StdAGV(NOP))IAGV(NOP)×100%,k={HCIOA,HCKIOA,RR,SPT,SRPT}>

仿真总次数都设为300次,即种群数量为20,进化或迭代总代数都为5,序优化随机生成的解个数为1000个,对其中估值性能最好的s=20条解进行仿真。

表1、2、3分别给出了在不同问题实例下,各种指标的结果。

表1.AIR指标比较结果Problem Scale

表2.WIR指标比较结果

表3.算法消耗的平均时间比较结果(seconds)

从表中可以看出,本发明提出的HCKIOA算法在性能指标和时间消耗上,都优于其他的算法,如NOP、HCIOA以及各种较好的规则等。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号