CN105224987A - 一种基于动态Lipschitz下界估计的变策略群体全局优化方法 - Google Patents

一种基于动态Lipschitz下界估计的变策略群体全局优化方法 Download PDF

Info

Publication number
CN105224987A
CN105224987A CN201510607342.4A CN201510607342A CN105224987A CN 105224987 A CN105224987 A CN 105224987A CN 201510607342 A CN201510607342 A CN 201510607342A CN 105224987 A CN105224987 A CN 105224987A
Authority
CN
China
Prior art keywords
lower bound
population
individuality
formula
individual
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.)
Pending
Application number
CN201510607342.4A
Other languages
English (en)
Inventor
张贵军
周晓根
郝小虎
夏华栋
徐东伟
李章维
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang University of Technology ZJUT
Original Assignee
Zhejiang University of Technology ZJUT
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhejiang University of Technology ZJUT filed Critical Zhejiang University of Technology ZJUT
Priority to CN201510607342.4A priority Critical patent/CN105224987A/zh
Publication of CN105224987A publication Critical patent/CN105224987A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)

Abstract

一种基动态Lipschitz下界估计的变策略群体全局优化方法,在基本差分进化算法框架下,首先,对初始种群中的个体建立Lipschitz估计下界支撑面从而形成目标函数的初始下界估计;其次,根据种群个体的拥挤度,即各个体之间的平均距离将整个算法过程分为三个阶段,对各阶段设置不同的变异策略;然后,在第一和第二阶段,利用下界估计信息指导种群更新,在第三阶段,则根据下界估计信息有选择性的对个体进行评价并更新;最后,根据各阶段的更新结果,选取不同的个体建立Lipschitz下界支撑面来动态更新目标函数的下界估计信息。本发明计算代价较低、收敛速度快、不需要进行样本训练、不需要进行模型选择,且解的质量较高。

Description

一种基于动态Lipschitz下界估计的变策略群体全局优化方法
技术领域
本发明涉及一种智能优化、计算机应用领域,尤其涉及的是,一种基于k-近邻Lipschitz下界估计的群体全局优化方法。
背景技术
进化算法是基于自然选择和自然遗传等生物进化机制的一种随机性搜索算法,近年来在经济、科学和工程等领域得到了广泛应用。典型的进化算法包括遗传算法(GA)、差分进化算法(DE)、粒子群算法(PSO)、进化策略(ES)和进化规划(EP),尽管这些算法都源于不同的思想,但是他们都有共同的特点:求解时不需要目标函数的导数信息,对函数的形态没有要求,结构简单,易于实现,适用范围广,而且鲁棒性强。然而,由于算法需要大量的函数评价次数,导致计算代价较高,尤其对于一些目标函数评价复杂的实际应用问题。例如,在气化炉问题中,函数评价所花时间占整个算法运行时间的99%。
针对上述问题,不少学者通过在进化算法中引入元模型或者代理模型来降低算法的计算代价。进化算法中常用的函数近似模型有二次模型、克里格模型、神经网络模型和径向基函数网络模型。在这些近似策略中,通过近似模型来估计原目标函数值,从而利用近似值来求解原目标函数。然而,算法的性能高度依赖于近似模型的精确性,为了获得一个高精度的近似模型,算法通常需要花费很长的时间来进行学习。另外,由于没有一个代理模型可以适用于所有问题,模型的选择也是一项极具挑战性的工作,模型的选择直接影响着解的质量。
近年来,基于元模型的函数逼近方法被引入到差分进化中来减少目标函数评价次数,例如基于k-近邻预测的差分进化算法(DE-kNN)和基于加速k-近邻预测的差分进化算法(DE-EkNN)。kNN算法通过动态学习机制来建立目标函数的k-近邻估计模型,在算法进化前期,对种群中的所有个体进行目标函数评价,并作为训练样本进行保存,当训练样本达到一定数量后,不再对所有个体进行评价,而是通过新个体的近邻个体来预测目标函数值,并通过对部分预测值较优的个体进行评价来更新样本,从而减少不必要的目标函数评价次数。kNN算法原理简单,但是为了获得更加精确的预测值,算法需要不断增加样本的数量,从而导致极高的空间复杂度,因此不适合于高维问题的求解。
因此,现有基于估计的全局优化方法存在着缺陷,需要改进。
发明内容
为了克服现有的基于估计的全局优化方法模型选择困难、对模型的精确度高度依赖、需要大量的内存保存样本个体等不足,本发明以基本差分进化算法为框架,基于k-近邻预测中样本更新思想,结合Lipschitz下界估计理论,以Lipschitz估计代替k-近邻算法的样本训练,提出一种计算代价较低、收敛速度快、不需要进行样本训练、不需要进行模型选择,且解的质量较高的基于动态Lipschitz下界估计的变策略群体全局优化方法。
本发明解决其技术问题所采用的技术方案是:
一种基于动态Lipschitz下界估计的变策略群体全局优化方法,假设问题维数为N,所述方法包括以下步骤:
1)初始化:设置Lipschitz常数C,种群规模NP,交叉概率CR,增益常数F,进化代数g=0,连续代数T,个体重新评价数量η和η*,各变量的下界aj和上界bj,误差值ε,在各变量定义域范围内随机生成初始种群xi,g,i=1,2,…,NP表示第g代种群中的第i个个体;
2)根据公式(1)计算出初始种群中各个体之间的平均距离;
d i n i t i a l = ( Σ i = 1 N P Σ k = i + 1 N P Σ j = 1 N ( x j i - x j k ) 2 ) / ( N P ( N P - 1 ) / 2 ) - - - ( 1 )
其中,表示第i个个体的第j维元素,表示第k个个体的第j维元素,N为问题维数,NP为种群规模;
3)建立初始支撑矩阵:
3.1)根据公式(2)对N+1维单位单纯形区域S的各顶点进行转换得到点x′1,x′2,...,x′N+1 S ≡ { x ∈ R N + 1 , x j ≥ 0 , Σ j = 1 N + 1 x j = 1 } ;
x j ′ k ≡ ( x j k - a j ) / Σ j = 1 N ( b j - a j ) x N + 1 ′ k ≡ 1 - Σ j = 1 N x j ′ k , j = 1 , 2 , ... , N - - - ( 2 )
其中,aj的下界,bj的上界,其中为点在S中的坐标值,上标k表示单位单纯形区域S的第k个顶点,N为问题维数;
3.2)根据公式(3)计算各点的支撑向量l1,l2,...,lN+1,式中f(xk)表示xk对应的目标函数值;
l k = ( f ( x k ) C - x 1 k , f ( x k ) C - x 2 k , ... , f ( x k ) C - x N + 1 k ) - - - ( 3 )
其中,C为Lipschitz常数,分别用代替;
3.3)建立初始矩阵支撑矩阵L={l1,l2,...,lN+1}T,支撑矩阵L如公式(4);
其中,k1,k2,…,kN+1为支撑矩阵的行标,1,2,…,N+1为支撑矩阵的列标,i=1,2,…,N+1,i=1,2,…,N+1,j=1,2,…,N+1表示支持矩阵L的第ki行第j列的元素;
4)建立n叉树保存各下界估计值:以支撑矩阵L={l1,l2,...,lN+1}为根建立树;
5)对初始种群P中每个个体xk,g,k=1,2,…,NP建立Lipschitz支撑向量:
5.1)根据公式(3)计算xk,g的支撑向量lk,其中
5.2)根据条件关系式(5)(6)更新树:
∀ i , j ∈ { 1,2 , · · · , N + 1 } , i ≠ j : l i k j > l i k i - - - ( 5 )
∀ r ∉ { k 1 , k 2 , . . . , k N + 1 } , ∃ i ∈ { 1,2 , · · · , N + 1 } : L ii = l i k i ≥ l i r - - - ( 6 )
其中,表示存在;
6)判断是否满足终止条件:计算出当前群体中的最优个体和最差个体如果满足终止条件其中,ε为允许误差,则保存结果并退出,否则进入步骤7);
7)根据公式(1)计算出当前种群中各个体之间的平均距离
8)对于种群中的每个目标个体xk,g,k=1,2,…,Np,执行交叉、变异操作产生新个体
8.1)根据公式(6)对执行变异操作,生成变异个体vk,g
v j k , g = x j a , g + F &CenterDot; ( x j b , g - x j c , g ) , i f d a v e g &GreaterEqual; 2 3 d i n i t i a l x j a , g + F &CenterDot; ( x j b e s t , g - x j a , g ) + F &CenterDot; ( x j b , g - x j c , g ) , if 1 3 d i n i t i a l &le; d a v e g < 2 3 d i n i t i a l x j b e s t , g + F &CenterDot; ( x j a , g - x j b , g ) , o t h e r w i s e - - - ( 7 )
其中,j=1,2,…,N,N为问题维数,g为进化代数,a,b,c∈{1,2,...,Np},a≠b≠c≠K,K为当前目标个体的索引,为第g代种群中第i个目标个体的变异个体的第j维元素,分别为第g代种群中第a、b、c个个体的第j维元素,为当前第g代种群中的最优个体xbest,g的第j维元素,F表示增益常数;
8.2)根据公式(8)对变异个体执行交叉操作,生成新个体
x t r i a l , j k , g = v j k , g if ran d b ( 0 , 1 ) &le; C R or j = r n b r ( j ) x j k , g o t h e r w i s e , j = 1 , 2 , ... , N - - - ( 8 )
其中,表示第g代种群中第k个新个体的第j维元素,randb(0,1)表示为产生0到1之间的随机小数,rnbr(j)表示随机产生1到N之间的整数;
9)计算每个新个体的下界估计值
9.1)根据公式(9)从树中找出包含xtrial的树叶在节点TreeNode;
( x t i r a l , j k , g - x j k j ) < ( x t i r a l , i k , g - x i k j ) , i , j &Element; { 1 , 2 , ... , N + 1 } , i &NotEqual; j - - - ( 9 )
其中, 分别表示所找的叶子节点矩阵中第kj行第j列和第i列对应的元素;
9.2)根据公式(10)计算出所在节点TreeNode的下界估计值
y &OverBar; t r i a l k , g = m a x k &le; N P m i n j = 1 , ... N + 1 C ( l j k + x t r i a l , j k , g ) - - - ( 10 )
其中max表示求最大值,min表示求最小值,为第k个支撑向量lk的第j维元素;
10)更新种群和下界估计信息:
10.1)如果则执行如下操作:
10.1.1)根据公式(11)更新种群:
x k , g + 1 = x k , g , i f y &OverBar; t r i a l k , g &GreaterEqual; f ( x k , g ) o r y &OverBar; t r i a l k , g &GreaterEqual; f ( x b e s t g ) x t r i a l k , g , e l s e i f f ( x t r i a l k , g ) &le; f ( x k , g ) x k , g , o t h e r w i s e - - - ( 11 )
其中,表示第g代种群中最优个体的目标函数值;
10.1.2)如果则根据步骤5)建立的Lipschitz下界支撑面,并更新树;
10.2)如果则执行如下操作:
10.2.1)根据当前种群中新个体的下界估计值从小到大排序;
10.2.2)对前η个个体进行目标函数评价,其余个体的目标函数值则用下界估计值代替;
10.2.3)根据公式(12)更新种群
x k , g + 1 = x t r i a l k , g , i f f ( x t r i a l k , g ) &le; f ( x k , g ) x k , g , o t h e r w i s e - - - ( 12 )
10.2.4)找出当前种群中的最优个体判断是否与相同,如果不同,则根据步骤5)对建立Lipschitz下界支撑面,并更新树;
10.2.5)如果最优值连续T代没有变化,则η=η*
11)设置g=g+1,并转到步骤6)。
进一步,步骤5.2)中更新树的方法为:
5.2.1)找出针对步骤5.1构建的支撑向量lk不满足条件(6)的叶子节点;
5.2.2)用lk替换步骤5.2.1)中找到的叶子节点矩阵中的第i个支撑向量从而形成新的叶子节点;
5.2.3)判断步骤5.2.2)中产生的新的叶子节点是否满足条件关系式(5),如果满足,则保留,否则删除。
本发明的技术构思为:在基本差分进化算法框架下,基于Lipschitz下界支撑思想,首先,对初始种群中的个体建立Lipschitz估计下界支撑面从而形成目标函数的初始下界估计;其次,根据种群个体的拥挤度,即各个体之间的平均距离将整个算法过程分为三个阶段,对各阶段设置不同的变异策略;然后,在第一和第二阶段,利用下界估计信息指导种群更新,在第三阶段,则根据下界估计信息有选择性的对个体进行评价并更新;最后,根据各阶段的更新结果,选取不同的个体建立Lipschitz下界支撑面来动态更新目标函数的下界估计信息。
本发明的有益效果表现在:1)根据个体拥挤度将算法分为三个阶段,并对各阶段设置不同的变异策略,从而加快算法的收敛速度;2)在第一和第二阶段,利用下界估计信息指导种群更新,第三阶段,则根据下界估计信息有选择性的对部分较优个体评价,有效减少目标函数评价次数;3)针对不同的阶段选取不同的个体建立下界支撑面动态更新下界估计,从而使得下界估计信息不断向目标函数逼近。
附图说明
图1是基于动态Lipschitz下界估计的变策略群体全局优化方法的基本流程图。
图2是基于动态Lipschitz下界估计的变策略群体全局优化方法对1维Shubert函数优化时最终形成的Lipschitz下界估计。
图3是基于动态Lipschitz下界估计的变策略群体全局优化方法对30维Rastrigin函数优化是的平均收敛曲线图。
具体实施方式
下面结合附图对本发明作进一步描述。
参照图1~图3,一种基于动态Lipschitz下界估计的变策略群体全局优化方法,包括以下步骤:
1)初始化:设置Lipschitz常数C,种群规模NP,交叉概率CR,增益常数F,进化代数g=0,连续代数T,个体重新评价数量η和η*,各变量的下界aj和上界bj,误差值ε,在各变量定义域范围内随机生成初始种群P={x1,g,x2,g,...,xNP,g},xi,g,i=1,2,…,NP表示第g代种群中的第i个个体;
2)根据公式(1)计算出初始种群中各个体之间的平均距离;
d i n i t i a l = ( &Sigma; i = 1 N P &Sigma; k = i + 1 N P &Sigma; j = 1 N ( x j i - x j k ) 2 ) / ( N P ( N P - 1 ) / 2 ) - - - ( 13 )
其中,表示第i个个体的第j维元素,表示第k个个体的第j维元素,N为问题维数,NP为种群规模;
3)建立初始支撑矩阵:
3.1)根据公式(2)对N+1维单位单纯形区域S的各顶点进行转换得到点x′1,x′2,...,x′N+1 S &equiv; { x &Element; R N + 1 , x j &GreaterEqual; 0 , &Sigma; j = 1 N + 1 x j = 1 } ;
x j &prime; k &equiv; ( x j k - a j ) / &Sigma; j = 1 N ( b j - a j ) x N + 1 &prime; k &equiv; 1 - &Sigma; j = 1 N x j &prime; k , j = 1 , 2 , ... , N - - - ( 14 )
其中,aj的下界,bj的上界,其中为点在S中的坐标值,上标k表示单位单纯形区域S的第k个顶点,N为问题维数;
3.2)根据公式(3)计算各点的支撑向量l1,l2,...,lN+1,式中f(xk)表示xk对应的目标函数值;
l k = ( f ( x k ) C - x 1 k , f ( x k ) C - x 2 k , ... , f ( x k ) C - x N + 1 k ) - - - ( 15 )
其中,C为Lipschitz常数,分别用代替;
3.3)建立初始矩阵支撑矩阵L={l1,l2,...,lN+1}T,支撑矩阵L如公式(4);
其中,k1,k2,…,kN+1为支撑矩阵的行标,1,2,…,N+1为支撑矩阵的列标,i=1,2,…,N+1,i=1,2,…,N+1,j=1,2,…,N+1表示支持矩阵L的第ki行第j列的元素;
4)建立n叉树保存各下界估计值:以支撑矩阵L={l1,l2,...,lN+1}为根建立树;
5)对初始种群P中每个个体xk,g,k=1,2,…,NP建立Lipschitz支撑向量:
5.1)根据公式(3)计算xk,g的支撑向量lk,其中
5.2)根据条件关系式(5)(6)更新树:
&ForAll; i , j &Element; { 1,2 , &CenterDot; &CenterDot; &CenterDot; , N + 1 } , i &NotEqual; j : l i k j > l i k i - - - ( 17 )
&ForAll; r &NotElement; { k 1 , k 2 , . . . , k N + 1 } , &Exists; i &Element; { 1,2 , &CenterDot; &CenterDot; &CenterDot; , N + 1 } : L ii = l i k i &GreaterEqual; l i r - - - ( 18 )
其中,表示存在;
5.2.1)找出针对步骤5.1构建的支撑向量lk不满足条件(6)的叶子节点;
5.2.2)用lk替换步骤5.2.1)中找到的叶子节点矩阵中的第i个支撑向量从而形成新的叶子节点;
5.2.3)判断步骤5.2.2)中产生的新的叶子节点是否满足条件关系式(5),如果满足,则保留,否则删除;
6)判断是否满足终止条件:计算出当前群体中的最优个体和最差个体如果满足终止条件其中,ε为允许误差,则保存结果并退出,否则进入步骤7);
7)根据公式(1)计算出当前种群中各个体之间的平均距离
8)对于种群中的每个目标个体xk,g,k=1,2,…,Np,执行交叉、变异操作产生新个体
8.1)根据公式(6)对执行变异操作,生成变异个体vk,g
v j k , g = x j a , g + F &CenterDot; ( x j b , g - x j c , g ) , i f d a v e g &GreaterEqual; 2 3 d i n i t i a l x j a , g + F &CenterDot; ( x j b e s t , g - x j a , g ) + F &CenterDot; ( x j b , g - x j c , g ) , i f 1 3 d i n i t i a l &le; d a v e g < 2 3 d i n i t i a l x j b e s t , g + F &CenterDot; ( x j a , g - x j b , g ) , o t h e r w i s e - - - ( 19 )
其中,j=1,2,…,N,N为问题维数,g为进化代数,a,b,c∈{1,2,...,Np},a≠b≠c≠K,K为当前目标个体的索引,为第g代种群中第i个目标个体的变异个体的第j维元素,分别为第g代种群中第a、b、c个个体的第j维元素,为当前第g代种群中的最优个体xbest,g的第j维元素,F表示增益常数;
8.2)根据公式(8)对变异个体执行交叉操作,生成新个体
x t r i a l , j k , g = v j k , g if r a n d b ( 0 , 1 ) &le; C R o r j = r n b r ( j ) x j k , g o t h e r w i s e , j = 1 , 2 , ... , N - - - ( 20 )
其中,表示第g代种群中第k个新个体的第j维元素,randb(0,1)表示为产生0到1之间的随机小数,rnbr(j)表示随机产生1到N之间的整数;
9)计算每个新个体的下界估计值
9.1)根据公式(9)从树中找出包含xtrial的树叶在节点TreeNode;
( x t i r a l , j k , g - x j k j ) < ( x t i r a l , i k , g - x i k j ) , i , j &Element; { 1 , 2 , ... , N + 1 } , i &NotEqual; j - - - ( 21 )
其中,分别表示所找的叶子节点矩阵中第kj行第j列和第i列对应的元素;
9.2)根据公式(10)计算出所在节点TreeNode的下界估计值
y &OverBar; t r i a l k , g = m a x k &le; N P m i n j = 1 , ... N + 1 C ( l j k + x t r i a l , j k , g ) - - - ( 22 )
其中max表示求最大值,min表示求最小值,为第k个支撑向量lk的第j维元素;
10)更新种群和下界估计信息:
10.1)如果则执行如下操作:
10.1.1)根据公式(11)更新种群:
x k , g + 1 = x k , g , i f y &OverBar; t r i a l k , g &GreaterEqual; f ( x k , g ) o r y &OverBar; t r i a l k , g &GreaterEqual; f ( x b e s t g ) x t r i a l k , g , e l s e i f f ( x t r i a l k , g ) &le; f ( x k , g ) x k , g , o t h e r w i s e - - - ( 23 )
其中,表示第g代种群中最优个体的目标函数值;
10.1.2)如果则根据步骤5)建立的Lipschitz下界支撑面,并更新树;
10.2)如果则执行如下操作:
10.2.1)根据当前种群中新个体的下界估计值从小到大排序;
10.2.2)对前η个个体进行目标函数评价,其余个体的目标函数值则用下界估计值代替;
10.2.3)根据公式(12)更新种群
x k , g + 1 = x t r i a l k , g , i f f ( x t r i a l k , g ) &le; f ( x k , g ) x k , g , o t h e r w i s e - - - ( 24 )
10.2.4)找出当前种群中的最优个体判断是否与相同,如果不同,则根据步骤5)对建立Lipschitz下界支撑面,并更新树;
10.2.5)如果最优值连续T代没有变化,则η=η*
11)设置g=g+1,并转到步骤6)。
本实施例以经典的30维(N=30)Rastrigin函数为实施例,一种动态Lipschitz下界估计的变策略群体全局优化方法,其中包含以下步骤:
1)初始化:设置Lipschitz常数C=500,种群规模NP=50,交叉概率CR=0.5,增益常数F=0.5,进化代数g=0,连续代数T=15,个体重新评价数量η=15和η*=25,各变量的下界aj=-5和上界bj=5,误差值ε=0.00001,在各变量定义域范围内随机生成初始种群xi,g,i=1,2,…,NP表示第g代种群中的第i个个体;
2)根据公式(1)计算出初始种群中各个体之间的平均距离;
d i n i t i a l = ( &Sigma; i = 1 N P &Sigma; k = i + 1 N P &Sigma; j = 1 N ( x j i - x j k ) 2 ) / ( N P ( N P - 1 ) / 2 ) - - - ( 25 )
其中,表示第i个个体的第j维元素,表示第k个个体的第j维元素,N为问题维数,NP为种群规模;
3)建立初始支撑矩阵:
3.1)根据公式(2)对N+1维单位单纯形区域S的各顶点进行转换得到点x′1,x′2,...,x′N+1 S &equiv; { x &Element; R N + 1 , x j &GreaterEqual; 0 , &Sigma; j = 1 N + 1 x j = 1 } ;
x j &prime; k &equiv; ( x j k - a j ) / &Sigma; j = 1 N ( b j - a j ) x N + 1 &prime; k &equiv; 1 - &Sigma; j = 1 N x j &prime; k , j = 1 , 2 , ... , N - - - ( 26 )
其中,aj的下界,bj的上界,其中为点在S中的坐标值,上标k表示单位单纯形区域S的第k个顶点,N为问题维数;
3.2)根据公式(3)计算各点的支撑向量l1,l2,...,lN+1,式中f(xk)表示xk对应的目标函数值;
l k = ( f ( x k ) C - x 1 k , f ( x k ) C - x 2 k , ... , f ( x k ) C - x N + 1 k ) - - - ( 27 )
其中,C为Lipschitz常数,分别用代替;
3.3)建立初始矩阵支撑矩阵L={l1,l2,...,lN+1}T,支撑矩阵L如公式(4);
其中,k1,k2,…,kN+1为支撑矩阵的行标,1,2,…,N+1为支撑矩阵的列标,i=1,2,…,N+1,i=1,2,…,N+1,j=1,2,…,N+1表示支持矩阵L的第ki行第j列的元素;
4)建立n叉树保存各下界估计值:以支撑矩阵L={l1,l2,...,lN+1}为根建立树;
5)对初始种群P中每个个体xk,g,k=1,2,…,NP建立Lipschitz支撑向量:
5.1)根据公式(3)计算xk,g的支撑向量lk,其中
5.2)根据条件关系式(5)(6)更新树:
&ForAll; i , j &Element; { 1,2 , &CenterDot; &CenterDot; &CenterDot; , N + 1 } , i &NotEqual; j : l i k j > l i k i - - - ( 29 )
&ForAll; r &NotElement; { k 1 , k 2 , . . . , k N + 1 } , &Exists; i &Element; { 1,2 , &CenterDot; &CenterDot; &CenterDot; , N + 1 } : L ii = l i k i &GreaterEqual; l i r - - - ( 30 )
其中,表示存在;
5.2.1)找出针对步骤5.1构建的支撑向量lk不满足条件(6)的叶子节点;
5.2.2)用lk替换步骤5.2.1)中找到的叶子节点矩阵中的第i个支撑向量从而形成新的叶子节点;
5.2.3)判断步骤5.2.2)中产生的新的叶子节点是否满足条件关系式(5),如果满足,则保留,否则删除;
6)判断是否满足终止条件:计算出当前群体中的最优个体和最差个体如果满足终止条件其中,ε为允许误差,则保存结果并退出,否则进入步骤7);
7)根据公式(1)计算出当前种群中各个体之间的平均距离
8)对于种群中的每个目标个体xk,g,k=1,2,…,Np,执行交叉、变异操作产生新个体
8.1)根据公式(6)对执行变异操作,生成变异个体vk,g
v j k , g = x j a , g + F &CenterDot; ( x j b , g - x j c , g ) , i f d a v e g &GreaterEqual; 2 3 d i n i t i a l x j a , g + F &CenterDot; ( x j b e s t , g - x j a , g ) + F &CenterDot; ( x j b , g - x j c , g ) , i f 1 3 d i n i t i a l &le; d a v e g < 2 3 d i n i t i a l x j b e s t , g + F &CenterDot; ( x j a , g - x j b , g ) , o t h e r w i s e - - - ( 31 )
其中,j=1,2,…,N,N为问题维数,g为进化代数,a,b,c∈{1,2,...,Np},a≠b≠c≠K,K为当前目标个体的索引,为第g代种群中第i个目标个体的变异个体的第j维元素,分别为第g代种群中第a、b、c个个体的第j维元素,为当前第g代种群中的最优个体xbest,g的第j维元素,F表示增益常数;
8.2)根据公式(8)对变异个体执行交叉操作,生成新个体
x t r i a l , j k , g = v j k , g i f r a n d b ( 0 , 1 ) &le; C R o r j = r n b r ( j ) x j k , g o t h e r w i s e , j = 1 , 2 , ... , N - - - ( 32 )
其中,表示第g代种群中第k个新个体的第j维元素,randb(0,1)表示为产生0到1之间的随机小数,rnbr(j)表示随机产生1到N之间的整数;
9)计算每个新个体的下界估计值
9.1)根据公式(9)从树中找出包含xtrial的树叶在节点TreeNode;
( x t i r a l , j k , g - x j k j ) < ( x t i r a l , i k , g - x i k j ) , i , j &Element; { 1 , 2 , ... , N + 1 } , i &NotEqual; j - - - ( 33 )
其中,分别表示所找的叶子节点矩阵中第kj行第j列和第i列对应的元素;
9.2)根据公式(10)计算出所在节点TreeNode的下界估计值
y &OverBar; t r i a l k , g = m a x k &le; N P m i n j = 1 , ... N + 1 C ( l j k + x t r i a l , j k , g ) - - - ( 34 )
其中max表示求最大值,min表示求最小值,为第k个支撑向量lk的第j维元素;
10)更新种群和下界估计信息:
10.1)如果则执行如下操作:
10.1.1)根据公式(11)更新种群:
x k , g + 1 = x k , g , i f y &OverBar; t r i a l k , g &GreaterEqual; f ( x k , g ) o r y &OverBar; t r i a l k , g &GreaterEqual; f ( x b e s t g ) x t r i a l k , g , e l s e i f f ( x t r i a l k , g ) &le; f ( x k , g ) x k , g , o t h e r w i s e - - - ( 35 )
其中,表示第g代种群中最优个体的目标函数值;
10.1.2)如果则根据步骤5)建立的Lipschitz下界支撑面,并更新树;
10.2)如果则执行如下操作:
10.2.1)根据当前种群中新个体的下界估计值从小到大排序;
10.2.2)对前η个个体进行目标函数评价,其余个体的目标函数值则用下界估计值代替;
10.2.3)根据公式(12)更新种群
x k , g + 1 = x t r i a l k , g , i f f ( x t r i a l k , g ) &le; f ( x k , g ) x k , g , o t h e r w i s e - - - ( 36 )
10.2.4)找出当前种群中的最优个体判断是否与相同,如果不同,则根据步骤5)对建立Lipschitz下界支撑面,并更新树;
10.2.5)如果最优值连续T代没有变化,则η=η*
11)设置g=g+1,并转到步骤6)。
以30维Rastrigin函数为实施例,独立运行30次平均成功率为100%,平均函数评价次数为14129,60000次函数评价次数内得到的平均全局最小值为2.18E–14,平均收敛曲线图如图3所示。
以上阐述的是本发明给出的一个实施例表现出来的优良优化效果,显然本发明不仅适合上述实施例,而且可以应用到实际工程中的各个领域(如蛋白质结构预测,电力系统,路径规划等优化问题),同时在不偏离本发明基本精神及不超出本发明实质内容所涉及内容的前提下可对其做种种变化加以实施。

Claims (2)

1.一种基动态Lipschitz下界估计的变策略群体全局优化方法,其特征在于:所述全局优化方法包括以下步骤:
1)初始化:设置Lipschitz常数C,种群规模NP,交叉概率CR,增益常数F,进化代数g=0,连续代数T,个体重新评价数量η和η*,各变量的下界aj和上界bj,误差值ε,在各变量定义域范围内随机生成初始种群xi,g,i=1,2,…,NP表示第g代种群中的第i个个体;
2)根据公式(1)计算出初始种群中各个体之间的平均距离dinitial
d i n i t i a l = ( &Sigma; i = 1 N P &Sigma; k = i + 1 N P &Sigma; j = 1 N ( x j i - x j k ) 2 ) / ( N P ( N P ) /2 ) - - - ( 1 )
其中,表示第i个个体的第j维元素,表示第k个个体的第j维元素,N为问题维数,NP为种群规模;
3)建立初始支撑矩阵L:
3.1)根据公式(2)对N+1维单位单纯形区域S的各顶点进行转换得到点 x &prime; 1 , x &prime; 2 , ... , x &prime; N + 1 , S &equiv; { x &Element; R N + 1 , x j &GreaterEqual; 0 , &Sigma; j = 1 N + 1 x j = 1 } ;
x j &prime; k &equiv; ( x j k - a j ) / &Sigma; j = 1 N ( b j - a j ) x N + 1 &prime; k &equiv; 1 - &Sigma; j = 1 N x j &prime; k , j = 1 , 2 , ... , N - - - ( 2 )
其中,aj的下界,bj的上界,其中为点在S中的坐标值,上标k表示单位单纯形区域S的第k个顶点,N为问题维数;
3.2)根据公式(3)计算各点的支撑向量l1,l2,...,lN+1,式中f(xk)表示xk对应的目标函数值;
l k = ( f ( x k ) C - x 1 k , f ( x k ) C - x 2 k , ... , f ( x k ) C - x N + 1 k ) - - - ( 3 )
其中,C为Lipschitz常数,分别用代替;
3.3)建立初始矩阵支撑矩阵L={l1,l2,...,lN+1}T,支撑矩阵L如公式(4);
其中,k1,k2,…,kN+1为支撑矩阵的行标,1,2,…,N+1为支撑矩阵的列标, l i = ( l 1 k i , l 2 k i , ... , l N + 1 k i ) , i = 1 , 2 , ... , N + 1 , l j k i , i = 1 , 2 , ... , N + 1 , j = 1 , 2 , ... , N + 1 表示支持矩阵L的第ki行第j列的元素;
4)建立n叉树保存各下界估计值:以支撑矩阵L={l1,l2,...,lN+1}为根建立树;
5)对初始种群P中每个个体xk,g,k=1,2,…,NP建立Lipschitz支撑向量:
5.1)根据公式(3)计算xk,g的支撑向量lk,其中
5.2)根据条件关系式(5)(6)更新树:
&ForAll; i , j &Element; { 1 , 2 , ... , N + 1 } , i &NotEqual; j : l i k j > l i k i - - - ( 5 )
&ForAll; r &NotElement; { k 1 , k 2 , ... , k N + 1 } , &Exists; i &Element; { 1 , 2 , ... , N + 1 } : L i i = l i h &GreaterEqual; l i r - - - ( 6 )
其中,表示存在;
6)判断是否满足终止条件:计算出当前群体中的最优个体和最差个体如果满足终止条件其中,ε为允许误差,则保存结果并退出,否则进入步骤7);
7)根据公式(1)计算出当前种群中各个体之间的平均距离
8)对于种群中的每个目标个体xk,g,k=1,2,…,NP,执行交叉、变异操作产生新个体
8.1)根据公式(6)对执行变异操作,生成变异个体vk,g
v j k , g = x j a , g + F &CenterDot; ( x j b , g - x j c , g ) , i f d a v e g &GreaterEqual; 2 3 d i n i t i a l x j a , g + F &CenterDot; ( x j b e s t , g - x j a , g ) + F &CenterDot; ( x j b , g - x j c , g ) , i f 1 3 d i n i t i a l &le; d a v e g < 2 3 d i n i t i a l x j b e s t , g + F &CenterDot; ( x j a , g - x j b , g ) , o t h e r w i s e - - - ( 7 )
其中,j=1,2,…,N,N为问题维数,g为进化代数,a,b,c∈{1,2,...,Np},a≠b≠c≠K,K为当前目标个体的索引,为第g代种群中第i个目标个体的变异个体的第j维元素,分别为第g代种群中第a、b、c个个体的第j维元素,为当前第g代种群中的最优个体xbest,g的第j维元素,F表示增益常数;
8.2)根据公式(8)对变异个体执行交叉操作,生成新个体
x h i a l , j k , g = { v j k , g i f r a n d b ( 0 , 1 ) &le; C R o r j = r n b r ( j ) x j k , g o t h e r w i s e , j = 1 , 2 , ... , N - - - ( 8 )
其中,表示第g代种群中第k个新个体的第j维元素,randb(0,1)表示为产生0到1之间的随机小数,rnbr(j)表示随机产生1到N之间的整数;
9)计算每个新个体的下界估计值
9.1)根据公式(9)从树中找出包含xtrial的树叶在节点TreeNode;
( x t i r a l , j k , g - x j k j ) < ( x t i r a l , i k , g - x i k j ) , i , j &Element; { 1 , 2 , ... , N + 1 } , i &NotEqual; j - - - ( 9 )
其中, 分别表示所找的叶子节点矩阵中第kj行第j列和第i列对应的元素;
9.2)根据公式(10)计算出所在节点TreeNode的下界估计值
y &OverBar; t r i a l k , g = m a x k &le; N P m i n j = 1 , ... N + 1 C ( l j k + x t r i a l , j k , g ) - - - ( 10 )
其中max表示求最大值,min表示求最小值,为第k个支撑向量lk的第j维元素;
10)根据Lipschitz下界估计信息更新种群,并根据更新结果更新下界估计信息:
10.1)如果则执行如下操作:
10.1.1)根据公式(11)更新种群:
x k , g + 1 = x k , g , i f y &OverBar; t r i a l k , g &GreaterEqual; f ( x k , g ) o r y &OverBar; t r i a l k , g &GreaterEqual; f ( x k , g ) x t r i a l k , g , e l s e i f f ( x t r i a l k , g ) &le; f ( x k , g ) x k , g , o t h e r w i s e - - - ( 11 )
其中,表示第g代种群中最优个体的目标函数值;
10.1.2)如果则根据步骤5)建立的Lipschitz下界支撑面,并更新树;
10.2)如果则执行如下操作:
10.2.1)根据当前种群中新个体的下界估计值从小到大排序;
10.2.2)对前η个个体进行目标函数评价,其余个体的目标函数值则用下界估计值代替;
10.2.3)根据公式(12)更新种群
x k , g + 1 = x t r i a l k , g , i f f ( x t r i a l k , g ) &le; f ( x k , g ) x k , g , o t h e r w i s e - - - ( 12 )
10.2.4)找出当前种群中的最优个体判断是否与相同,如果不同,则根据步骤5)对建立Lipschitz下界支撑面,并更新树;
10.2.5)如果最优值连续T代没有变化,则η=η*
11)设置g=g+1,并转到步骤6)。
2.如权利要求1所述一种基于动态Lipschitz下界估计的变策略群体全局优化方法,其特征在于:步骤5.2)中更新树的方法为:
5.2.1)找出针对步骤5.1构建的支撑向量lk不满足条件(6)的叶子节点;
5.2.2)用lk替换步骤5.2.1)中找到的叶子节点矩阵中的第i个支撑向量从而形成新的叶子节点;
5.2.3)判断步骤5.2.2)中产生的新的叶子节点是否满足条件关系式(5),如果满足,则保留,否则删除。
CN201510607342.4A 2015-09-22 2015-09-22 一种基于动态Lipschitz下界估计的变策略群体全局优化方法 Pending CN105224987A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510607342.4A CN105224987A (zh) 2015-09-22 2015-09-22 一种基于动态Lipschitz下界估计的变策略群体全局优化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510607342.4A CN105224987A (zh) 2015-09-22 2015-09-22 一种基于动态Lipschitz下界估计的变策略群体全局优化方法

Publications (1)

Publication Number Publication Date
CN105224987A true CN105224987A (zh) 2016-01-06

Family

ID=54993944

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510607342.4A Pending CN105224987A (zh) 2015-09-22 2015-09-22 一种基于动态Lipschitz下界估计的变策略群体全局优化方法

Country Status (1)

Country Link
CN (1) CN105224987A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105912885A (zh) * 2016-04-08 2016-08-31 浙江工业大学 一种基于群体Lipschitz下界估计的蛋白质结构预测方法
CN106407738A (zh) * 2016-04-08 2017-02-15 浙江工业大学 一种基于种群拥挤度识别的差分进化蛋白质结构预测方法
CN106503484A (zh) * 2016-09-23 2017-03-15 浙江工业大学 一种基于抽象凸估计的多阶段差分进化蛋白质结构预测方法
CN106779153A (zh) * 2016-11-15 2017-05-31 浙江工业大学 一种智能立体仓库货位分配优化方法
CN106096328B (zh) * 2016-04-26 2018-09-07 浙江工业大学 一种基于局部Lipschitz支撑面的双层差分进化蛋白质结构预测方法
CN109448786A (zh) * 2018-08-29 2019-03-08 浙江工业大学 一种下界估计动态策略蛋白质结构预测方法
CN109977509A (zh) * 2019-03-15 2019-07-05 北京航空航天大学 一种基于交替Lipschitz搜索策略的确定结构响应区间的方法

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105912885A (zh) * 2016-04-08 2016-08-31 浙江工业大学 一种基于群体Lipschitz下界估计的蛋白质结构预测方法
CN106407738A (zh) * 2016-04-08 2017-02-15 浙江工业大学 一种基于种群拥挤度识别的差分进化蛋白质结构预测方法
CN105912885B (zh) * 2016-04-08 2018-04-20 浙江工业大学 一种基于群体Lipschitz下界估计的蛋白质结构预测方法
CN106096328B (zh) * 2016-04-26 2018-09-07 浙江工业大学 一种基于局部Lipschitz支撑面的双层差分进化蛋白质结构预测方法
CN106503484A (zh) * 2016-09-23 2017-03-15 浙江工业大学 一种基于抽象凸估计的多阶段差分进化蛋白质结构预测方法
CN106503484B (zh) * 2016-09-23 2019-07-05 浙江工业大学 一种基于抽象凸估计的多阶段差分进化蛋白质结构预测方法
CN106779153A (zh) * 2016-11-15 2017-05-31 浙江工业大学 一种智能立体仓库货位分配优化方法
CN106779153B (zh) * 2016-11-15 2021-08-03 浙江工业大学 一种智能立体仓库货位分配优化方法
CN109448786A (zh) * 2018-08-29 2019-03-08 浙江工业大学 一种下界估计动态策略蛋白质结构预测方法
CN109448786B (zh) * 2018-08-29 2021-04-06 浙江工业大学 一种下界估计动态策略蛋白质结构预测方法
CN109977509A (zh) * 2019-03-15 2019-07-05 北京航空航天大学 一种基于交替Lipschitz搜索策略的确定结构响应区间的方法
CN109977509B (zh) * 2019-03-15 2020-07-31 北京航空航天大学 一种基于交替Lipschitz搜索策略的确定结构响应区间的方法

Similar Documents

Publication Publication Date Title
CN105224987A (zh) 一种基于动态Lipschitz下界估计的变策略群体全局优化方法
CN103902783B (zh) 一种基于广义逆向学习差分算法的排水管网优化方法
CN103294928A (zh) 一种碳排放组合预测方法
CN113359849B (zh) 一种针对运动目标的多无人机协同快速搜索方法
CN110363343B (zh) 一种混合自适应的水电站群智能优化调度方法及系统
CN113052537B (zh) 一种基于启发式粒子群算法的物流车辆低碳路线规划方法
CN112817312B (zh) 一种基于双重搜索优化算法的路径规划方法
CN108510050A (zh) 一种基于混洗蛙跳的特征选择方法
CN104778513A (zh) 一种用于约束多目标优化的多种群进化方法
CN105426955A (zh) 一种基于扰动的精英反向学习粒子群优化的实现方法
CN108288095A (zh) 一种基于黄金分割遗传算法的地铁列车节能优化方法
CN102867409A (zh) 一种可用于城市中心区域的道路交通协同控制方法
CN109934422A (zh) 一种基于时间序列数据分析的神经网络风速预测方法
CN104952261A (zh) 一种单交叉口交通信号优化控制方法
CN104616072A (zh) 一种基于区间优化的提高谷氨酸发酵产物浓度的方法
CN114580762A (zh) 一种基于XGBoost的水文预报误差校正方法
CN102279852B (zh) 一种基于遗传算法的油藏自动历史拟合系统及其拟合方法
CN110516785A (zh) 一种基于粒子群和鲸鱼群的求解双层线性规划混合算法
CN104200073A (zh) 一种基于局部Lipschitz估计的自适应群体全局优化方法
CN103279796A (zh) 一种优化遗传算法进化质量的方法
CN109214610A (zh) 一种基于长短期记忆神经网络的饱和电力负荷预测方法
CN105302976A (zh) 基于spea2算法的铝电解生产优化方法
CN109359671B (zh) 一种水电站水库调度规则的分类智能提取方法
CN116526568A (zh) 交直流配电网分布式电源优化方法、系统、设备及介质
CN108197186B (zh) 一种应用于社交网络中的动态图匹配查询方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20160106