CN105160436A - 一种基于n邻近Lipschitz支撑面的广义增强群体全局优化方法 - Google Patents

一种基于n邻近Lipschitz支撑面的广义增强群体全局优化方法 Download PDF

Info

Publication number
CN105160436A
CN105160436A CN201510607337.3A CN201510607337A CN105160436A CN 105160436 A CN105160436 A CN 105160436A CN 201510607337 A CN201510607337 A CN 201510607337A CN 105160436 A CN105160436 A CN 105160436A
Authority
CN
China
Prior art keywords
individual
formula
trial
lipschitz
lower bound
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
CN201510607337.3A
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 CN201510607337.3A priority Critical patent/CN105160436A/zh
Publication of CN105160436A publication Critical patent/CN105160436A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

一种基于n邻近Lipschitz支撑面的广义增强群体全局优化方法,在群体进化算法框架下,基于Lipschitz估计理论,首先,对新个体的n邻近个体建立Lipschitz下界支撑面,从而获取新个体的下界估计信息;然后,根据下界估计信息设计选择策略来指导种群更新,有效减少目标函数评价次数;其次,根据下界估计极值信息排除部分无效区域,提高算法的搜索效率和可靠性;最后,根据n邻近个体的下降方向和Lipschitz下界支撑面的下降方向设计广义增强方向,从而根据广义增强方向作局部增强,进一步加快算法的收敛速度。本发明计算代价和空间复杂度较低,且不需要进行模型选择和样本训练。

Description

一种基于n邻近Lipschitz支撑面的广义增强群体全局优化方法
技术领域
本发明涉及一种智能优化、计算机应用领域,尤其涉及的是,一种基于n邻近Lipschitz支撑面的广义增强群体全局优化方法。
背景技术
近年来,智能群体优化算法在经济、科学、工程等领域等到了广泛应用。典型的群体优化算法包括差分进化算法(DE)、遗传算法(GA)、粒子群算法(PSO)和蚁群算法(ACO)等,这些算法不需要问题的导数信息,对目标函数的形态没有要求,而且适用范围广、鲁棒性强,因此在电力系统、化工、通信、机械工程和生物信息学等领域得到了广泛应用。然而,这些算法面临的一个共同的问题就是求解时需要大量的目标函数评价次数,从而导致较高的计算代价,尤其对于一些实际应用问题,由于其仿真模型运行时间的限制,对目标函数评价一次极其费时。例如,一个2维粗水动力模型,运行一次需要1分钟左右;而对于一个完整的3维水动力模型,运行一次需要几分钟,甚至达到几小时。因此,如何减少群体算法在优化求解时所需的目标函数评价次数极其重要。
为了降低群体算法的计算代价,不少学者在群体算法中引入代理模型来代替计算代价昂贵的实际目标函数评价。由于代理模型的建立和估计所需的计算代价要远远低于直接对目标函数评价所需的计算代价,因此能够有效的降低群体算法的计算代价。然而,由于不同的问题有着不同的目标函数曲面,任一代理模型不可能适用于所有问题,因此,代理模型的选择是一个富有挑战性的工作,选择不恰当会直接影响算法的性能。
另外,还有一些学者在群体算法中引入k-近邻预测方法。在算法进化前期,对所有的个体进行目标函数评价,并将这些个体记录为训练样本,进而在进化后期,根据新个体的近邻样本个体的目标函数值来估计新个体的目标函数值,从而减少一些不必要的目标函数评价次数,同时根据估计值对种群个体进行排名,并对排名靠前的部分个体进行目标函数评价,并加入样本中。k-近邻预测方法结构简单,但是需要耗费很大的内存来保存不断增长的训练样本,从而导致极高的空间复杂度,因此,k-近邻预测方法并不适用于高维优化问题。
因此,现有全局优化方法在计算代价、模型选择、空复杂度等方面存在着缺陷,需要改进。
发明内容
为了克服现有的全局优化方法计算代价、模型选择和空间复杂度方面的不足,本发明基于n邻近Lipschitz估计思想,提出一种计算代价和空间复杂度较低,且不需要进行模型选择和样本训练的基于n邻近Lipschitz支撑面的广义增强群体全局优化方法。
本发明解决其技术问题所采用的技术方案是:
一种基于n邻近Lipschitz支撑面的广义增强群体全局优化方法,假设问题维数为N,所述方法包括以下步骤:
1)初始化:设置常数C,种群规模NP,交叉概率CR,增益常数F,各变量的下界aj和上界bj,置无效区域IR为空,n邻近个体数目n;进化代数g=0,误差值ε,在各变量定义域范围内随机生成初始种群P={x1,g,x2,g,...,xNp,g},xi,g,i=1,2,…,Np表示第g代种群中的第i个个体;
2)建立初始支撑矩阵:
2.1)根据公式(1)对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 - - - ( 1 )
其中aj的下界,bj的上界,其中为点在S中的坐标值,上标k表示单位单纯形的第k个顶点,N为问题维数;
2.2)根据公式(2)计算x′1,x′2,...,x′N+1的支撑向量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 ) - - - ( 2 )
其中,C为足够大的常数,其中分别用代替;
2.3)建立初始矩阵支撑矩阵L={l1,l2,...,lN+1}T,支撑矩阵L如公式(3);
L = l 1 k 1 l 2 k 1 . . . l N + 1 k 1 l 1 k 2 l 2 k 2 . . . l N + 1 k 2 . . . . . . . . . . . . l 1 k N + 1 l 2 k N + 1 . . . l N + 1 k N + 1 - - - ( 3 )
其中,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列的元素;
3)判断是否满足终止条件:计算出当前群体中的最优个体xbest和最差个体xworst,如果满足终止条件|f(xbest)-f(xworst)|≤ε,其中,ε为允许误差,则保存结果并退出,否则进入步骤4);
4)建立n叉树保存各下界估计值:以支撑矩阵L={l1,l2,...,lN+1}为根建立树;
5)对于种群中的每个目标个体xi,g,i=1,2,…,Np,执行交叉、变异操作产生新个体xtrial
5.1)从种群中任意选取三个个体{xa,g,xb,g,xc,g|a,b,c∈{1,2,...,Np},a≠b≠c,≠i},g表示进化代数,i为目标个体的索引;
5.2)根据公式(4)对执行变异操作,生成变异个体vi,g
vi,g=xa,g+F·(xb,g-xc,g)(4)
5.3)根据公式(5)执行交叉操作,生成新个体xtrial
x t r i a l , j = v j i , g i f r a n d b ( 0 , 1 ) ≤ C R o r j = r n b r ( j ) x j i , g o t h e r w i s e , j = 1 , 2 , ... , N - - - ( 5 )
其中,xtrial,j表示新个体xtrial的第j维元素,表示第g代种群中第i个个体xi,g的第j维元素,表示第g代种群中第i个变异个体vi,g的第j维元素,randb(0,1)表示为产生0到1之间的随机小数,rnbr(j)表示随机产生1到N之间的整数;
6)判断新个体xtrial是否在无效区域中:根据公式(6)从树中找出包含xtrial的树叶在节点TreeNode;
( x t r i a l , j - x j k j ) < ( x t r i a l , i - x i k j ) , i , j &Element; { 1 , 2 , ... , N + 1 } , i &NotEqual; j - - - ( 6 )
其中,分别表示所找的叶子节点矩阵中第kj行第j列和第i列对应的元素,若所找叶子节点为无效区域对应的节点,且满足公式(6),则表明新个体xtrial包含在无效区域IR中,因此抛弃此新个体xtrial,且直接进入下一次迭代;
7)若新个体不在无效区域中,则选取新个体的n邻近个体,并建立支撑向量:
7.1)根据公式(7)选取新个体xtrial的n邻近个体xk,k=1,2,…,n,即与xtrial距离最近的n个个体;
d i s = &Sigma; j = 1 N ( x j i , g - x t r i a l , j ) 2 - - - ( 7 )
7.2)根据公式(2)计算xk的支撑向量lk,其中
7.3)根据条件关系式(8)(9)更新树:
&ForAll; i , j &Element; { 1 , 2 , ... , N + 1 } , i &NotEqual; j : l i k j > l i k i - - - ( 8 )
&ForAll; r &NotElement; { k 1 , k 2 , ... , k N + 1 } , &Exists; i &Element; { 1 , 2 , ... , N + 1 } : L i i = l i k i &GreaterEqual; l i r - - - ( 9 )
其中,表示存在;
7.3.1)找出针对步骤7.2构建的支撑向量lk不满足条件(9)的叶子节点;
7.3.2)用lk替换步骤7.3.1)中找到的叶子节点矩阵中的第i个支撑向量从而形成新的叶子节点;
7.3.3)判断步骤7.3.2)中产生的新的叶子节点是否满足条件关系式(8),如果满足,则保留,否则删除;
7.4)根据公式(10)计算出xtrial所在节点TreeNode的下界估计值
y &OverBar; t r i a l = m a x k &le; n m i n j = 1 , ... N + 1 C ( l j k + x t r i a l , j ) - - - ( 10 )
其中max表示求最大值,min表示求最小值;为第k个支撑向量lk的第j维元素;
8)利用新个体的下界估计值根据公式(11)指导种群更新,
x i , g + 1 = x i , g , i f y &OverBar; t r i a l &GreaterEqual; f ( x i , g ) o r y &OverBar; t r i a l &GreaterEqual; f ( x b e s t g ) x t r i a l , e l s e i f f ( x t r i a l ) &le; f ( x i , g ) x i , g , o t h e r w i s e - - - ( 11 )
其中,表示第g代种群中最优个体的目标函数值;
9)如果或者继续根据下界估计区域的极值信息排除部分无效区域:
9.1)根据公式(12)计算出节点TreeNode所对应的下界估计区域的极小值dmin
d m i n = d ( L ) = C ( T r a c e ( L ) + 1 ) N + 1 - - - ( 12 )
其中Trace(L)表示矩阵的迹,即正对角线元素之和,L为支撑矩阵;
9.2)如果dmin大于当前最优值f(xbest),则将TreeNode所对应的区域视为无效区域,并将其对应的支撑矩阵加入到IR中;
10)如果新个体优于目标个体,则根据n邻近个体的下降方向和Lipschitz下界支撑面的下降方向设计广义下降方向作局部增强,进行如下操作:
10.1)根据公式(13)计算出n邻近下降方向dnb
dnb=(dnb,1,...,dnb,N+1)=(xBnb,1-xWnb,1,...,xBnb,N+1-xWnb,N+1)(13)
其中,xBnb和xWnb分别表示n邻近个体中的最优个体和最差个体;
10.2)根据公式(14)找出Lipschitz主导支撑面:
y &OverBar; t r i a l = H n ( x t r i a l ) = max t &le; n min j = 1 , ... , N + 1 C ( l n b , j k + x t r i a l , j ) = C ( l n b , j t + x t r i a l , j ) , t &Element; { 1 , ... , n } - - - ( 14 )
即如果xtrial的下界估计值可以根据公式(14)得到,则称n邻近个体中的第t个个体的Lipschitz支撑面为Lipschitz主导支撑面;
10.3)根据公式(15)计算出TreeNode对应区域的极小值点xmin,式中L为TreeNode对应的支撑矩阵;
x m i n , j = d ( L ) C - l j k - - - ( 15 )
10.4)根据公式(16)计算出Lipschitz主导支撑面下降方向ddom
d d o m = ( d d o m , 1 , ... , d d o m , N + 1 ) = ( x m i n , 1 - x n b , 1 t , ... , x m i n , N + 1 - x n b , N + 1 t ) - - - ( 16 )
10.5)根据公式(17)计算出广义增强方向d;
d=dnb+ddom(17)
10.6)根据公式(18)计算广义增强个体;
xtest=xtrial+F·d(18)
其中,F为增益常数;
10.7)计算xtest对应的目标函数值f(xtest);
10.8)如果f(xtest)小于新个体的函数值f(xtrial),则xtest取代新个体xtrial
11)删除树并转到步骤3);
12)设置g=g+1,并转到步骤3)。
本发明的技术构思为:在群体进化算法框架下,基于Lipschitz估计理论,首先,对新个体的n邻近个体建立Lipschitz下界支撑面,从而获取新个体的下界估计信息;然后,根据下界估计信息设计选择策略来指导种群更新,有效减少目标函数评价次数;其次,根据下界估计极值信息排除部分无效区域,提高算法的搜索效率和可靠性;最后,根据n邻近个体的下降方向和Lipschitz下界支撑面的下降方向设计广义增强方向,从而根据广义增强方向作局部增强,进一步加快算法的收敛速度。
本发明的有益效果表现在:1)仅对新个体的n邻近个体建立Lipschitz下界支撑面,而无需对整个种群建立支撑面,且在每次迭代完成后删除所有支撑面,因此,没有引起较高的空间复杂度;2)根据下界估计信息设计新的选择策略指导种群更新,从而节省更多的目标函数评价次数;3)根据下界极值信息排除部分无效区域,提高算法的搜索效率,同时从一定程度上避免算法陷入局部最优,从而提高算法的可靠性;4)根据n邻近个体的下降方向和Lipschitz下界支撑面的下降方向设计广义增强方向作局部增强可以更合理的步加快算法的收敛速度。
附图说明
图1是基于n邻近Lipschitz支撑面的广义增强群体全局优化方法的基本流程图。
图2是区域排除示意图。
图3是广义增强方向示意图。
图4是基于n邻近Lipschitz支撑面的广义增强群体全局优化方法对30维Ackley函数优化是的平均收敛曲线图。
具体实施方式
下面结合附图对本发明作进一步描述。
参照图1~图4,一种基于最优个体Lipschitz支撑面的群体全局优化方法,包括以下步骤:
1)初始化:设置常数C,种群规模NP,交叉概率CR,增益常数F,各变量的下界aj和上界bj,置无效区域IR为空,n邻近个体数目n;进化代数g=0,误差值ε,在各变量定义域范围内随机生成初始种群P={x1,g,x2,g,...,xNp,g},xi,g,i=1,2,…,Np表示第g代种群中的第i个个体;
2)建立初始支撑矩阵:
2.1)根据公式(1)对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 - - - ( 19 )
其中aj的下界,bj的上界,其中为点在S中的坐标值,上标k表示单位单纯形的第k个顶点,N为问题维数;
2.2)根据公式(2)计算x′1,x′2,...,x′N+1的支撑向量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 ) - - - ( 20 )
其中,C为足够大的常数,其中分别用代替;
2.3)建立初始矩阵支撑矩阵L={l1,l2,...,lN+1}T,支撑矩阵L如公式(3);
L = l 1 k 1 l 2 k 1 . . . l N + 1 k 1 l 1 k 2 l 2 k 2 . . . l N + 1 k 2 . . . . . . . . . . . . l 1 k N + 1 l 2 k N + 1 . . . l N + 1 k N + 1 - - - ( 21 )
其中,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列的元素;
3)判断是否满足终止条件:计算出当前群体中的最优个体xbest和最差个体xworst,如果满足终止条件|f(xbest)-f(xworst)|≤ε,其中,ε为允许误差,则保存结果并退出,否则进入步骤4);
4)建立n叉树保存各下界估计值:以支撑矩阵L={l1,l2,...,lN+1}为根建立树;
5)对于种群中的每个目标个体xi,g,i=1,2,…,Np,执行交叉、变异操作产生新个体xtrial
5.1)从种群中任意选取三个个体{xa,g,xb,g,xc,g|a,b,c∈{1,2,...,Np},a≠b≠c,≠i},g表示进化代数,i为目标个体的索引;
5.2)根据公式(4)对执行变异操作,生成变异个体vi,g
vi,g=xa,g+F·(xb,g-xc,g)(22)
5.3)根据公式(5)执行交叉操作,生成新个体xtrial
x t r i a l , j = v j i , g i f r a n d b ( 0 , 1 ) &le; C R o r j = r n b r ( j ) x j i , g o t h e r w i s e , j = 1 , 2 , ... , N - - - ( 23 )
其中,xtrial,j表示新个体xtrial的第j维元素,表示第g代种群中第i个个体xi,g的第j维元素,表示第g代种群中第i个变异个体vi,g的第j维元素,randb(0,1)表示为产生0到1之间的随机小数,rnbr(j)表示随机产生1到N之间的整数;
6)判断新个体xtrial是否在无效区域中:根据公式(6)从树中找出包含xtrial的树叶在节点TreeNode;
( x t r i a l , j - x j k j ) < ( x t r i a l , i - x i k j ) , i , j &Element; { 1 , 2 , ... , N + 1 } , i &NotEqual; j - - - ( 24 )
其中,分别表示所找的叶子节点矩阵中第kj行第j列和第i列对应的元素,若所找叶子节点为无效区域对应的节点,且满足公式(6),则表明新个体xtrial包含在无效区域IR中,因此抛弃此新个体xtrial,且直接进入下一次迭代;
7)若新个体不在无效区域中,则选取新个体的n邻近个体,并建立支撑向量:
7.1)根据公式(7)选取新个体xtrial的n邻近个体xk,k=1,2,…,n,即与xtrial距离最近的n个个体;
d i s = &Sigma; j = 1 N ( x j i , g - x t r i a l , j ) 2 - - - ( 25 )
7.2)根据公式(2)计算xk的支撑向量lk,其中
7.3)根据条件关系式(8)(9)更新树:
&ForAll; i , j &Element; { 1 , 2 , ... , N + 1 } , i &NotEqual; j : l i k j > l i k i - - - ( 26 )
&ForAll; r &NotElement; { k 1 , k 2 , ... , k N + 1 } , &Exists; i &Element; { 1 , 2 , ... , N + 1 } : L i i = l i k i &GreaterEqual; l i r - - - ( 27 )
其中,表示存在;
7.3.1)找出针对步骤7.2构建的支撑向量lk不满足条件(9)的叶子节点;
7.3.2)用lk替换步骤7.3.1)中找到的叶子节点矩阵中的第i个支撑向量从而形成新的叶子节点;
7.3.3)判断步骤7.3.2)中产生的新的叶子节点是否满足条件关系式(8),如果满足,则保留,否则删除;
7.4)根据公式(10)计算出xtrial所在节点TreeNode的下界估计值
y &OverBar; t r i a l = m a x k &le; n m i n j = 1 , ... N + 1 C ( l j k + x t r i a l , j ) - - - ( 28 )
其中max表示求最大值,min表示求最小值;为第k个支撑向量lk的第j维元素;
8)利用新个体的下界估计值根据公式(11)指导种群更新,
x i , g + 1 = x i , g , i f y &OverBar; t r i a l &GreaterEqual; f ( x i , g ) o r y &OverBar; t r i a l &GreaterEqual; f ( x b e s t g ) x t r i a l , e l s e i f f ( x t r i a l ) &le; f ( x i , g ) x i , g , o t h e r w i s e - - - ( 29 )
其中,表示第g代种群中最优个体的目标函数值;
9)如果或者继续根据下界估计区域的极值信息排除部分无效区域:
9.1)根据公式(12)计算出节点TreeNode所对应的下界估计区域的极小值dmin
d m i n = d ( L ) = C ( T r a c e ( L ) + 1 ) N + 1 - - - ( 30 )
其中Trace(L)表示矩阵的迹,即正对角线元素之和,L为支撑矩阵;
9.2)如果dmin大于当前最优值f(xbest),则将TreeNode所对应的区域视为无效区域,并将其对应的支撑矩阵加入到IR中;
10)如果新个体优于目标个体,则根据n邻近个体的下降方向和Lipschitz下界支撑面的下降方向设计广义下降方向作局部增强,进行如下操作:
10.1)根据公式(13)计算出n邻近下降方向dnb
dnb=(dnb,1,...,dnb,N+1)=(xBnb,1-xWnb,1,...,xBnb,N+1-xWnb,N+1)(31)
其中,xBnb和xWnb分别表示n邻近个体中的最优个体和最差个体;
10.2)根据公式(14)找出Lipschitz主导支撑面:
y &OverBar; t r i a l = H n ( x t r i a l ) = max t &le; n min j = 1 , ... , N + 1 C ( l n b , j k + x t r i a l , j ) = C ( l n b , j t + x t r i a l , j ) , t &Element; { 1 , ... , n } - - - ( 32 )
即如果xtrial的下界估计值可以根据公式(14)得到,则称n邻近个体中的第t个个体的Lipschitz支撑面为Lipschitz主导支撑面;
10.3)根据公式(15)计算出TreeNode对应区域的极小值点xmin,式中L为TreeNode对应的支撑矩阵;
x m i n , j = d ( L ) C - l j k - - - ( 33 )
10.4)根据公式(16)计算出Lipschitz主导支撑面下降方向ddom
10.5)根据公式(17)计算出广义增强方向d;
d=dnb+ddom(35)
10.6)根据公式(18)计算广义增强个体;
xtest=xtrial+F·d(36)
其中,F为增益常数;
10.7)计算xtest对应的目标函数值f(xtest);
10.8)如果f(xtest)小于新个体的函数值f(xtrial),则xtest取代新个体xtrial
11)删除树并转到步骤3);
12)设置g=g+1,并转到步骤3)。
本实施例以经典的30维(N=30)Ackley函数为实施例,一种基于最优个体Lipschitz支撑面的群体全局优化方法,其中包含以下步骤:
1)初始化:设置常数C=500,种群规模NP=50,交叉概率CR=0.5,增益常数F=0.5,各变量的下界aj=-30和上界bj=30,置无效区域IR为空,n邻近个体数目n=2;进化代数g=0,误差值ε=0.00001,在各变量定义域范围内随机生成初始种群P={x1,g,x2,g,...,xNp,g},xi,g,i=1,2,…,Np表示第g代种群中的第i个个体;
2)建立初始支撑矩阵:
2.1)根据公式(1)对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 - - - ( 37 )
其中aj的下界,bj的上界,其中为点在S中的坐标值,上标k表示单位单纯形的第k个顶点,N为问题维数;
2.2)根据公式(2)计算x′1,x′2,...,x′N+1的支撑向量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 ) - - - ( 38 )
其中,C为足够大的常数,其中分别用代替;
2.3)建立初始矩阵支撑矩阵L={l1,l2,...,lN+1}T,支撑矩阵L如公式(3);
L = l 1 k 1 l 2 k 1 . . . l N + 1 k 1 l 1 k 2 l 2 k 2 . . . l N + 1 k 2 . . . . . . . . . . . . l 1 k N + 1 l 2 k N + 1 . . . l N + 1 k N + 1 - - - ( 39 )
其中,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列的元素;
3)判断是否满足终止条件:计算出当前群体中的最优个体xbest和最差个体xworst,如果满足终止条件|f(xbest)-f(xworst)|≤ε,其中,ε为允许误差,则保存结果并退出,否则进入步骤4);
4)建立n叉树保存各下界估计值:以支撑矩阵L={l1,l2,...,lN+1}为根建立树;
5)对于种群中的每个目标个体xi,g,i=1,2,…,Np,执行交叉、变异操作产生新个体xtrial
5.1)从种群中任意选取三个个体{xa,g,xb,g,xc,g|a,b,c∈{1,2,...,Np},a≠b≠c,≠i},g表示进化代数,i为目标个体的索引;
5.2)根据公式(4)对执行变异操作,生成变异个体vi,g
vi,g=xa,g+F·(xb,g-xc,g)(40)
5.3)根据公式(5)执行交叉操作,生成新个体xtrial
x t r i a l , j = v j i , g i f r a n d b ( 0 , 1 ) &le; C R o r j = r n b r ( j ) x j i , g o t h e r w i s e , j = 1 , 2 , ... , N - - - ( 41 )
其中,xtrial,j表示新个体xtrial的第j维元素,表示第g代种群中第i个个体xi,g的第j维元素,表示第g代种群中第i个变异个体vi,g的第j维元素,randb(0,1)表示为产生0到1之间的随机小数,rnbr(j)表示随机产生1到N之间的整数;
6)判断新个体xtrial是否在无效区域中:根据公式(6)从树中找出包含xtrial的树叶在节点TreeNode;
( x t r i a l , j - x j k j ) < ( x t r i a l , i - x i k j ) , i , j &Element; { 1 , 2 , ... , N + 1 } , i &NotEqual; j - - - ( 42 )
其中,分别表示所找的叶子节点矩阵中第kj行第j列和第i列对应的元素,若所找叶子节点为无效区域对应的节点,且满足公式(6),则表明新个体xtrial包含在无效区域IR中,因此抛弃此新个体xtrial,且直接进入下一次迭代;
7)若新个体不在无效区域中,则选取新个体的n邻近个体,并建立支撑向量:
7.1)根据公式(7)选取新个体xtrial的n邻近个体xk,k=1,2,…,n,即与xtrial距离最近的n个个体;
d i s = &Sigma; j = 1 N ( x j i , g - x t r i a l , j ) 2 - - - ( 43 )
7.2)根据公式(2)计算xk的支撑向量lk,其中
7.3)根据条件关系式(8)(9)更新树:
&ForAll; i , j &Element; { 1 , 2 , ... , N + 1 } , i &NotEqual; j : l i k j > l i k i - - - ( 44 )
&ForAll; r &NotElement; { k 1 , k 2 , ... , k N + 1 } , &Exists; i &Element; { 1 , 2 , ... , N + 1 } : L i i = l i k i &GreaterEqual; l i r - - - ( 45 )
其中,表示存在;
7.3.1)找出针对步骤7.2构建的支撑向量lk不满足条件(9)的叶子节点;
7.3.2)用lk替换步骤7.3.1)中找到的叶子节点矩阵中的第i个支撑向量从而形成新的叶子节点;
7.3.3)判断步骤7.3.2)中产生的新的叶子节点是否满足条件关系式(8),如果满足,则保留,否则删除;
7.4)根据公式(10)计算出xtrial所在节点TreeNode的下界估计值
y &OverBar; t r i a l = m a x k &le; n m i n j = 1 , ... N + 1 C ( l j k + x t r i a l , j ) - - - ( 46 )
其中max表示求最大值,min表示求最小值;为第k个支撑向量lk的第j维元素;
8)利用新个体的下界估计值根据公式(11)指导种群更新,
x i , g + 1 = x i , g , i f y &OverBar; t r i a l &GreaterEqual; f ( x i , g ) o r y &OverBar; t r i a l &GreaterEqual; f ( x b e s t g ) x t r i a l , e l s e i f f ( x t r i a l ) &le; f ( x i , g ) x i , g , o t h e r w i s e - - - ( 47 )
其中,表示第g代种群中最优个体的目标函数值;
9)如果或者继续根据下界估计区域的极值信息排除部分无效区域:
9.1)根据公式(12)计算出节点TreeNode所对应的下界估计区域的极小值dmin
d m i n = d ( L ) = C ( T r a c e ( L ) + 1 ) N + 1 - - - ( 48 )
其中Trace(L)表示矩阵的迹,即正对角线元素之和,L为支撑矩阵;
9.2)如果dmin大于当前最优值f(xbest),则将TreeNode所对应的区域视为无效区域,并将其对应的支撑矩阵加入到IR中;
10)如果新个体优于目标个体,则根据n邻近个体的下降方向和Lipschitz下界支撑面的下降方向设计广义下降方向作局部增强,进行如下操作:
10.1)根据公式(13)计算出n邻近下降方向dnb
dnb=(dnb,1,...,dnb,N+1)=(xBnb,1-xWnb,1,...,xBnb,N+1-xWnb,N+1)(49)
其中,xBnb和xWnb分别表示n邻近个体中的最优个体和最差个体;
10.2)根据公式(14)找出Lipschitz主导支撑面:
y &OverBar; t r i a l = H n ( x t r i a l ) = max t &le; n min j = 1 , ... , N + 1 C ( l n b , j k + x t r i a l , j ) = C ( l n b , j t + x t r i a l , j ) , t &Element; { 1 , ... , n } - - - ( 50 )
即如果xtrial的下界估计值可以根据公式(14)得到,则称n邻近个体中的第t个个体的Lipschitz支撑面为Lipschitz主导支撑面;
10.3)根据公式(15)计算出TreeNode对应区域的极小值点xmin,式中L为TreeNode对应的支撑矩阵;
x m i n , j = d ( L ) C - l j k - - - ( 51 )
10.4)根据公式(16)计算出Lipschitz主导支撑面下降方向ddom
d d o m = ( d d o m , 1 , ... , d d o m , N + 1 ) = ( x m i n , 1 - x n b , 1 t , ... , x m i n , N + 1 - x n b , N + 1 t ) - - - ( 52 )
10.5)根据公式(17)计算出广义增强方向d;
d=dnb+ddom(53)
10.6)根据公式(18)计算广义增强个体;
xtest=xtrial+F·d(54)
其中,F为增益常数;
10.7)计算xtest对应的目标函数值f(xtest);
10.8)如果f(xtest)小于新个体的函数值f(xtrial),则xtest取代新个体xtrial
11)删除树并转到步骤3);
12)设置g=g+1,并转到步骤3)。
以30维Ackley函数为实施例,独立运行30次平均成功率为100%,平均函数评价次数为28393,60000次函数评价次数内得到的平均全局最小值为7.55E–15,平均收敛曲线图如图4所示。
以上阐述的是本发明给出的一个实施例表现出来的优良优化效果,显然本发明不仅适合上述实施例,而且可以应用到实际工程中的各个领域(如蛋白质结构预测,电力系统,路径规划等优化问题),同时在不偏离本发明基本精神及不超出本发明实质内容所涉及内容的前提下可对其做种种变化加以实施。

Claims (4)

1.一种基于n邻近Lipschitz支撑面的广义增强群体全局优化方法,其特征在于:所述全局优化方法包括以下步骤:
1)初始化:设置常数C,种群规模NP,交叉概率CR,增益常数F,各变量的下界aj和上界bj,置无效区域IR为空,n邻近个体数目n;进化代数g=0,误差值ε,在各变量定义域范围内随机生成初始种群P={x1,g,x2,g,...,xNP,g},xi,g,i=1,2,…,Np表示第g代种群中的第i个个体;
2)建立初始支撑矩阵:
2.1)根据公式(1)对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 - - - ( 1 )
其中aj的下界,bj的上界,其中为点在S中的坐标值,上标k表示单位单纯形的第k个顶点,N为问题维数;
2.2)根据公式(2)计算x′1,x′2,...,x′N+1的支撑向量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 ) - - - ( 2 )
其中,C为足够大的常数,其中 分别用代替;
2.3)建立初始矩阵支撑矩阵L={l1,l2,...,lN+1}T,支撑矩阵L如公式(3);
其中,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,i=1,2,…,N+1,j=1,2,…,N+1表示支持矩阵L的第ki行第j列的元素;
3)判断是否满足终止条件:计算出当前群体中的最优个体xbest和最差个体xworst,如果满足终止条件|f(xbest)-f(xworst)|≤ε,其中,ε为允许误差,则保存结果并退出,否则进入步骤4);
4)建立n叉树保存各下界估计值:以支撑矩阵L={l1,l2,...,lN+1}为根建立树;
5)对于种群中的每个目标个体xi,g,i=1,2,…,Np,执行交叉、变异操作产生新个体xtrial
5.1)从种群中任意选取三个个体{xa,g,xb,g,xc,g|a,b,c∈{1,2,...,Np},a≠b≠c,≠i},g表示进化代数,i为目标个体的索引;
5.2)根据公式(4)对执行变异操作,生成变异个体vi,g
vi,g=xa,g+F·(xb,g-xc,g)(4)
5.3)根据公式(5)执行交叉操作,生成新个体xtrial
x t r i a l , j = v j i , g i f r a n d b ( 0 , 1 ) &le; C R o r j = r n b r ( j ) x j i , g o t h e r w i s e , j = 1 , 2 , ... , N - - - ( 5 )
其中,xtrial,j表示新个体xtrial的第j维元素,表示第g代种群中第i个个体xi,g的第j维元素,表示第g代种群中第i个变异个体vi,g的第j维元素,randb(0,1)表示为产生0到1之间的随机小数,rnbr(j)表示随机产生1到N之间的整数;
6)根据公式(6)从树中找出包含xtrial的树叶在节点TreeNode,并判断新个体xtrial是否在无效区域中;
( x t r i a l , j - x j k j ) < ( x t r i a l , i - x i k j ) , i , j &Element; { 1 , 2 , ... , N + 1 } , i &NotEqual; j - - - ( 6 )
其中, 分别表示所找的叶子节点矩阵中第kj行第j列和第i列对应的元素,若新个体xtrial包含在无效区域IR中,则抛弃此新个体xtrial,且直接进入下一次迭代;
7)若新个体不在无效区域中,则选取新个体的n邻近个体,并建立支撑向量:
7.1)根据公式(7)选取新个体xtrial的n邻近个体xk,k=1,2,…,n,即与xtrial距离最近的n个个体;
d i s = &Sigma; j = 1 N ( x j i , g - x t r i a l , j ) 2 - - - ( 7 )
7.2)根据公式(2)计算xk的支撑向量lk,其中
7.3)根据条件关系式(8)(9)更新树:
&ForAll; i , j &Element; { 1 , 2 , ... , N + 1 } , i &NotEqual; j : l i k j > l i k i - - - ( 8 )
&ForAll; r &NotElement; { k 1 , k 2 , ... , k N + 1 } , &Exists; i &Element; { 1 , 2 , ... , N + 1 } : L i i = l i k i &GreaterEqual; l i r - - - ( 9 )
其中,表示存在;
7.4)根据公式(10)计算出xtrial所在节点TreeNode的下界估计值
y &OverBar; t r i a l = m a x k &le; n m i n j = 1 , ... N + 1 C ( l j k + x t r i a l , j ) - - - ( 10 )
其中max表示求最大值,min表示求最小值;
8)利用新个体的下界估计值根据公式(11)指导种群更新,
x i , g + 1 = x i , g , i f y &OverBar; t r i a l &GreaterEqual; f ( x i , g ) o r y &OverBar; t r i a l &GreaterEqual; f ( x b e s t g ) x t r i a l , e l s e i f f ( x t r i a l ) &le; f ( x i , g ) x i , g , o t h e r w i s e - - - ( 11 )
其中,表示第g代种群中最优个体的目标函数值;
9)如果或者则根据下界估计区域的极值信息排除部分无效区域:
9.1)根据公式(12)计算出节点TreeNode所对应的下界估计区域的极小值dmin
d m i n = d ( L ) = C ( T r a c e ( L ) + 1 ) N + 1 - - - ( 12 )
其中Trace(L)表示矩阵的迹,即正对角线元素之和,L为支撑矩阵;
9.2)如果dmin大于当前最优值f(xbest),则将TreeNode所对应的区域视为无效区域,并将其对应的支撑矩阵加入到IR中;
10)如果新个体优于目标个体,则根据n邻近个体的下降方向和Lipschitz下界支撑面的下降方向设计广义下降方向作局部增强;
11)删除树并转到步骤3);
12)设置g=g+1,并转到步骤3)。
2.如权利要求1所述一种基于最优个体Lipschitz支撑面的群体全局优化方法,其特征在于:步骤6)中判断新个体xtrial是否包含在无效区域中的方法为:
针对无效区域所对应的支撑矩阵,若新个体xtrial中的所有元素xtrial,i,i=1,2,…,N+1均满足公式(6),则表明新个体xtrial包含在此无效区域中。
3.如权利要求1所述一种基于n邻近Lipschitz支撑面的广义增强群体全局优化方法,其特征在于:步骤7.3)中更新树的方法为:
7.3.1)找出针对步骤7.2构建的支撑向量lk不满足条件关系式(9)的叶子节点;
7.3.2)用lk替换步骤7.3.1)中找到的叶子节点矩阵中的第i个支撑向量从而形成新的叶子节点;
7.3.3)判断步骤7.3.2)中产生的新的叶子节点是否满足条件关系式(8),如果满足,则保留,否则删除。
4.如权利要求1所述一种基于n邻近Lipschitz支撑面的广义增强群体全局优化方法,其特征在于:步骤10)中广义增强的方法为:
10.1)根据公式(13)计算出n邻近下降方向dnb
dnb=(dnb,1,...,dnb,N+1)=(xBnb,1-xWnb,1,...,xBnb,N+1-xWnb,N+1)(13)
其中,xBnb和xWnb分别表示n邻近个体中的最优个体和最差个体;
10.2)根据公式(14)找出Lipschitz主导支撑面:
y &OverBar; t r i a l = H n ( x t r i a l ) = m a x t &le; n m i n j = 1 , .. , N + 1 C ( l n b , j k + x t r i a l , j ) = C ( l n b , j t + x t r i a l , j ) , t &Element; { 1 , ... , n } - - - ( 14 )
即如果xtrial的下界估计值可以根据公式(14)得到,则称n邻近个体中的第t个个体的Lipschitz支撑面为Lipschitz主导支撑面;
10.3)根据公式(15)计算出TreeNode对应区域的极小值点xmin,式中L为TreeNode对应的支撑矩阵;
x m i n , j = d ( L ) C - l j k - - - ( 15 )
10.4)根据公式(16)计算出Lipschitz主导支撑面下降方向ddom
d d o m = ( d d o m , 1 , ... , d d o m , N + 1 ) = ( x m i n , 1 - x n b , 1 t , ... , x m i n , N + 1 - x n b , N + 1 t ) - - - ( 16 )
10.5)根据公式(17)计算出广义增强方向d;
d=dnb+ddom(17)
10.6)根据公式(18)计算广义增强个体;
xtest=xtrial+F·d(18)
其中,F为增益常数;
10.7)计算xtest对应的目标函数值f(xtest);
10.8)如果f(xtest)小于新个体的函数值f(xtrial),则xtest取代新个体xtrial
CN201510607337.3A 2015-09-22 2015-09-22 一种基于n邻近Lipschitz支撑面的广义增强群体全局优化方法 Pending CN105160436A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510607337.3A CN105160436A (zh) 2015-09-22 2015-09-22 一种基于n邻近Lipschitz支撑面的广义增强群体全局优化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510607337.3A CN105160436A (zh) 2015-09-22 2015-09-22 一种基于n邻近Lipschitz支撑面的广义增强群体全局优化方法

Publications (1)

Publication Number Publication Date
CN105160436A true CN105160436A (zh) 2015-12-16

Family

ID=54801287

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510607337.3A Pending CN105160436A (zh) 2015-09-22 2015-09-22 一种基于n邻近Lipschitz支撑面的广义增强群体全局优化方法

Country Status (1)

Country Link
CN (1) CN105160436A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106503486A (zh) * 2016-09-23 2017-03-15 浙江工业大学 一种基于多阶段子群协同进化策略的差分进化蛋白质结构从头预测方法
CN106503485A (zh) * 2016-09-23 2017-03-15 浙江工业大学 一种局部增强的多模态差分进化蛋白质结构从头预测方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106503486A (zh) * 2016-09-23 2017-03-15 浙江工业大学 一种基于多阶段子群协同进化策略的差分进化蛋白质结构从头预测方法
CN106503485A (zh) * 2016-09-23 2017-03-15 浙江工业大学 一种局部增强的多模态差分进化蛋白质结构从头预测方法
CN106503486B (zh) * 2016-09-23 2019-04-23 浙江工业大学 一种基于多阶段子群协同进化策略的差分进化蛋白质结构从头预测方法
CN106503485B (zh) * 2016-09-23 2019-04-23 浙江工业大学 一种局部增强的多模态差分进化蛋白质结构从头预测方法

Similar Documents

Publication Publication Date Title
CN102778229B (zh) 未知环境下基于改进蚁群算法的移动Agent路径规划方法
CN108954680A (zh) 一种基于运行数据的中央空调能耗预测方法
CN104036324B (zh) 一种基于遗传算法的通信网络容量可靠性最优设计方法
CN103793467B (zh) 一种基于超图和动态规划的大数据实时查询优化方法
CN103455610B (zh) 基于多目标密母计算的网络社区检测方法
CN105512759A (zh) 一种基于生物地理学优化算法的城市ca模型参数优化方法
CN105138717A (zh) 一种动态变异粒子群优化神经网络的变压器状态评估方法
CN105976048A (zh) 一种基于改进人工蜂群算法的输电网扩展规划方法
CN105224987A (zh) 一种基于动态Lipschitz下界估计的变策略群体全局优化方法
CN103593287A (zh) 一种基于遗传算法的数据流测试用例自动生成方法
CN106022471A (zh) 基于粒子群优化算法的小波神经网络模型船舶横摇实时预测方法
CN102708327A (zh) 一种基于谱优化的网络社区发现方法
CN104732091A (zh) 基于自然选择蚁群算法的元胞自动机河床演变预测方法
CN103927460A (zh) 一种基于rbf的风电场短期风速预测方法
CN104616072A (zh) 一种基于区间优化的提高谷氨酸发酵产物浓度的方法
CN114580762A (zh) 一种基于XGBoost的水文预报误差校正方法
CN103020709A (zh) 一种基于人工蜂群算法和量子粒子群算法的优化计算方法
CN109063388A (zh) 风环境模拟的微气候建筑选址设计方法
CN105160436A (zh) 一种基于n邻近Lipschitz支撑面的广义增强群体全局优化方法
CN105160097A (zh) 一种利用人口迁移算法的三值fprm电路面积优化方法
CN114708479A (zh) 一种基于图结构和特征的自适应防御方法
CN106295677A (zh) 一种联合拉斯正则项和特征自学习的水流图像分簇方法
CN109886405A (zh) 一种抑制噪声的基于人工神经网络结构优化方法
CN109800517A (zh) 一种改进的磁流变阻尼器逆向建模方法
CN104200073A (zh) 一种基于局部Lipschitz估计的自适应群体全局优化方法

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: 20151216