基于五行环优化算法的函数寻优算法

一、理论基础

1、五行环优化算法

借鉴中国古代哲学理论所描述的系统动态平衡方法,文献[1]提出了解决连续函数优化问题的五行环优化算法(Five-elements cycle optimization algorithm, FECO)。一个无约束的连续函数优化问题可表达为式(1): min ⁡    f ( x )        s.t.        x ∈ [ x d (low) , x d (high) ] D (1) \min\,\,f(x)\,\,\,\,\,\,\text{s.t.}\,\,\,\,\,\,x\in\left[x_d^{\text{(low)}},x_d^{\text{(high)}}\right]^D\tag{1} minf(x)s.t.x[xd(low),xd(high)]D(1)其中, x = ( x 1 , x 2 , ⋯   , x D ) T ∈ R D x = (x_1, x_2, \cdots , x_D)^{\text{T}} ∈ {\bf{R}}^D x=(x1,x2,,xD)TRD D D D维决策向量, [ x d (low) , x d (high) ] D ( d = 1 , 2 , ⋯   , D ) \left[x_d^{\text{(low)}},x_d^{\text{(high)}}\right]^D(d = 1, 2, \cdots,D) [xd(low),xd(high)]D(d=1,2,,D)是搜索空间的可行区域, f : R D → R f:{\bf{R}}^D\rightarrow \bf R f:RDR为目标函数的映射。
基于五行环模型,本文构建了一种五行环优化算法(Five-elements cycle optimization, FECO)来获取 f ( x ) f(x) f(x)的最优解。

(1)解的表达与种群结构

f ( x ) f(x) f(x)的每一个解对应于五行环模型中的每一个元素,在FECO算法中,将所有元素(即当前所有可行解)划分为 q q q个环,每个环包含 L L L个元素,即种群规模为 L × q L\times q L×q
x i j ( k ) x_{ij}(k) xij(k)表示第 k k k代时第 j j j个环中的第 i i i个元素, x i j ( k ) x_{ij}(k) xij(k)即为 f ( x ) f(x) f(x)的一个解。 m i j ( k ) m_{ij}(k) mij(k)是元素 x i j ( k ) x_{ij}(k) xij(k)的质量,对应为目标函数 f ( x i j ( k ) ) f(x_{ij}(k)) f(xij(k))的值。 x i j ( k ) x_{ij}(k) xij(k)受到的来自第 j j j个环中的其他元素的作用力记为 F i j ( k ) F_{ij}(k) Fij(k),用式(2)表达。 F i j ( k ) = w g p ln ⁡ [ m ( i − 1 ) j ( k ) m i j ( k ) ] − w r p ln ⁡ [ m ( i − 2 ) j ( k ) m i j ( k ) ] − w g a ln ⁡ [ m i j ( k ) m ( i + 1 ) j ( k ) ] − w r a ln ⁡ [ m i j ( k ) m ( i + 2 ) j ( k ) ] (2) F_{ij}(k)=\\[2ex] w_{gp}\ln\left[\frac{m_{(i-1)j}(k)}{m_{ij}(k)}\right]-w_{rp}\ln\left[\frac{m_{(i-2)j}(k)}{m_{ij}(k)}\right]-\\[2ex]w_{ga}\ln\left[\frac{m_{ij}(k)}{m_{(i+1)j}(k)}\right]-w_{ra}\ln\left[\frac{m_{ij}(k)}{m_{(i+2)j}(k)}\right]\tag{2} Fij(k)=wgpln[mij(k)m(i1)j(k)]wrpln[mij(k)m(i2)j(k)]wgaln[m(i+1)j(k)mij(k)]wraln[m(i+2)j(k)mij(k)](2)FECO是一个迭代算法。当 k = 0 k = 0 k=0时,随机产生 L × q L\times q L×q个初始元素 x i j ( 0 ) ( i = 1 , 2 , ⋯   , L ; j = 1 , 2 , ⋯   , q ) x_{ij}(0)(i = 1, 2, \cdots, L;j =1, 2, \cdots, q) xij(0)(i=1,2,,L;j=1,2,,q),并计算它们的质量(即目标函数),表示为 m i j ( 0 ) m_{ij}(0) mij(0)。同时,设置初始的 F i j ( 0 ) F_{ij}(0) Fij(0)均为0。在第 k k k代时,首先计算元素 x i j ( k ) x_{ij}(k) xij(k)的质量 m i j ( k ) m_{ij}(k) mij(k),并通过式(2)计算其受力 F i j ( k ) F_{ij}(k) Fij(k) F i j ( k ) F_{ij}(k) Fij(k)的值表征了元素 x i j ( k ) x_{ij}(k) xij(k)的优劣,根据 F i j ( k ) F_{ij}(k) Fij(k)决定元素从 x i j ( k ) x_{ij}(k) xij(k)更新至 x i j ( k + 1 ) x_{ij}(k+1) xij(k+1)的方式。随着迭代过程的进行,较好的元素被保留,较差的元素被替换,当达到最大迭代代数时,可获取优化问题的最好解。

(2)元素的更新

x i j ( k + 1 ) x_{ij}(k + 1) xij(k+1)的更新依赖于 F i j ( k ) F_{ij}(k) Fij(k)。如果 F i j ( k ) > 0 F_{ij}(k) >0 Fij(k)>0,说明 x i j ( k ) x_{ij}(k) xij(k)是一个较好解,因为从系统平衡的角度分析, m i j ( k ) m_{ij}(k) mij(k)越小, F i j ( k ) F_{ij}(k) Fij(k)才会表现出越大,大的受力才能使该元素变得强壮,从而使各元素质量进一步趋同。在这种情况下, x i j ( k ) x_{ij}(k) xij(k)应该保留在解空间,因此: x i j ( k + 1 ) = x i j ( k ) , if    F i j ( k ) > 0 (3) x_{ij}(k+1)=x_{ij}(k),\quad\text{if}\,\,F_{ij}(k)>0\tag{3} xij(k+1)=xij(k),ifFij(k)>0(3)如果 F i j ( k ) ≤ 0 Fij(k)\leq 0 Fij(k)0,说明 x i j ( k ) x_{ij}(k) xij(k)可能不是一个较好解,因为其受力 F i j ( k ) F_{ij}(k) Fij(k)为负,表明系统期望该元素变得更加衰弱,也即说明其本身的质量 m i j ( k ) m_{ij}(k) mij(k)比较大。因 x i j ( k ) x_{ij}(k) xij(k)是一个 D D D维向量,将其表示为 [ x i j , 1 ( k ) , x i j , 2 ( k ) , ⋯   , x i j , d ( k ) , ⋅ ⋅ ⋅ , x i j , D ( k ) ] T \left[x_{ij,1}(k), x_{ij,2}(k), \cdots, x_{ij,d}(k), · · · , x_{ij,D}(k)\right]^\text{T} [xij,1(k),xij,2(k),,xij,d(k),,xij,D(k)]T。在这种情况下,应该对 x i j ( k ) x_{ij}(k) xij(k)进行替换,而且应该在较好解的邻域内产生新解,为此将 x i j , d ( k + 1 ) x_{ij,d}(k + 1) xij,d(k+1)按照下式进行更新: x i j , d ( k + 1 ) = { x i ∗ j , d ( k ) + r s × p s × [ x i ∗ j , d ( k ) − x i j , d ( k ) ]        r m < p m x best , d ( k ) + r s × p s × [ x best , d ( k ) − x i ∗ j , d ( k ) ] r m ≥ p m (4) x_{ij,d}(k+1)=\begin{dcases}x_{i^*j,d}(k)+r_s\times p_s\times\left[x_{i^*j,d}(k)-x_{ij,d}(k)\right]\quad\,\,\,\,\,\,r_m<p_m\\[2ex]x_{\text{best},d}(k)+r_s\times p_s\times\left[x_{\text{best},d}(k)-x_{i^*j,d}(k)\right]\quad r_m\geq p_m\end{dcases}\tag{4} xij,d(k+1)=xij,d(k)+rs×ps×[xij,d(k)xij,d(k)]rm<pmxbest,d(k)+rs×ps×[xbest,d(k)xij,d(k)]rmpm(4)上式中, p s p_s ps是一个尺度因子, p m p_m pm是一个预先给定的概率值; r s r_s rs [ − 1 , 1 ] [−1, 1] [1,1]区间的随机数, r m r_m rm [ 0 , 1 ] [0,1] [0,1]区间的随机数; x i ∗ j ( k ) x_{i^*j}(k) xij(k)是第 j j j个环中受力最
大的元素,即 F i ∗ j ( k ) ≥ F i j ( k ) ( i ∗ ∈ { 1 , 2 , ⋯   , L } , i ∀ { 1 , 2 , ⋯   , L } ) , x i ∗ j ( k ) = [ x i ∗ j , 1 ( k ) , x i ∗ j , 2 ( k ) , ⋯   , x i ∗ j , d ( k ) , ⋯   , x i ∗ j , D ( k ) ] T F_{i^*j}(k) \geq F_{ij}(k) (i^*\in\{1, 2, \cdots , L\},i\forall\{1, 2, \cdots , L\}), x_{i^*j}(k) = \left[x_{i^*j,1}(k), x_{i^*j,2}(k), \cdots,x_{i^*j,d}(k), \cdots , x_{i^*j,D}(k)\right]^\text T Fij(k)Fij(k)(i{ 1,2,,L},i{ 1,2,,L}),xij(k)=[xij,1(k),xij,2(k),,xij,d(k),,xij,D(k)]T x best x_{\text{best}} xbest是当前最优解, x best = [ x best , 1 , x best , 2 , ⋯   , x best , d , ⋯   , x best , D ] T x_{\text{best}} = \left[x_{\text{best},1} ,x_{\text{best},2},\cdots, x_{\text{best},d} , \cdots, x_{\text{best},D}\right]^\text{T} xbest=[xbest,1,xbest,2,,xbest,d,,xbest,D]T
式(3)的含义是: x i j ( k ) x_{ij}(k) xij(k)在给定的概率 p m p_m pm下,被替换为第 j j j个环中受力定义下的最好元素 x i ∗ j ( k ) x_{i^*j}(k) xij(k)的变异解,在 1 − p m 1-p_m 1pm概率下, x i j ( k ) x_{ij}(k) xij(k)被替换为当前全局最优解 x best x_{\text{best}} xbest的变异解。

2、FECO算法流程图

FECO算法流程图如图1所示。
在这里插入图片描述

图1 FECO算法流程图

二、仿真实验与结果分析

以常用23个测试函数中的F1、F2(单峰函数/30维)、F8、F9(多峰函数/30维)、F14、F15(固定维度多峰函数/2维、4维)为例,实验设置种群规模为100,最大迭代次数为1000,结果显示如下:
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

The optimal solution of F1 is : 6.4195e-08  3.0044e-08  4.3688e-08  1.2835e-08  1.4491e-08  4.4382e-08  3.5441e-08  1.3276e-07  2.0114e-08  8.9243e-08 -9.6253e-08  1.0207e-07 -6.7655e-08  2.4077e-08 -6.3577e-08  2.4348e-08 -1.7105e-08 -3.1961e-09  8.7965e-08 -1.0524e-07 -3.2379e-10  7.0113e-08 -6.7562e-08  7.8477e-08  4.8481e-08  6.3626e-08  3.3251e-08   4.331e-08 -1.0779e-07 -1.1301e-07
The optimal value of F1 is : 1.3453e-13
The optimal solution of F2 is : -1.9044e-11  7.4574e-12  4.4701e-12 -7.2547e-11  6.6887e-12 -2.3981e-12 -4.2486e-11  1.1616e-11  1.4271e-11 -3.0126e-11  1.0381e-10  2.8914e-11  3.9717e-12  2.9573e-11   -3.27e-11  1.3441e-11 -8.5816e-11  6.2438e-11  1.5156e-12  4.6119e-11 -9.9381e-13 -2.2847e-12  1.8971e-11  2.1247e-11  1.8279e-11 -5.7515e-12 -8.8369e-11  7.3003e-12 -3.5928e-11 -9.5395e-11
The optimal value of F2 is : 9.1392e-10
The optimal solution of F8 is : 65.56596     -302.4528          -500          -500      420.9302      -302.483      65.65667          -500       420.942     -25.93254     -124.8593       421.131      5.335188     -302.7866      66.45894      420.9256      421.0049     -302.6167      421.1803      420.9491     -25.85588      202.9011      203.1681      203.7874      203.7505          -500     -302.3662      -295.189      420.9522      203.8041
The optimal value of F8 is : -7245.5347
The optimal solution of F9 is : -1.0328   0.0090452     0.99803     0.98874   -0.021477     0.97054     0.96746    0.051896     0.99072   0.0043408   -0.057683    0.025392    0.043788     0.07003     -1.0113   0.0036244    0.026012     0.99238     -1.0065    -0.98641 -0.00090399     0.97552     0.92003     0.98293  -0.0098614   0.0094655   0.0032974    0.022392      1.0264    0.025753
The optimal value of F9 is : 19.1386
The optimal solution of F14 is : -31.9783     -31.9783
The optimal value of F14 is : 0.998
The optimal solution of F15 is : 0.1609       1.989     0.85818     0.75055
The optimal value of F15 is : 0.00063487

实验结果表明:FECO算法在求解连续函数优化问题上具有较好的优化性能。

三、参考文献

[1] 刘漫丹. 一种新的启发式优化算法——五行环优化算法研究与分析[J]. 自动化学报, 2020, 46(5): 957-970.

猜你喜欢

转载自blog.csdn.net/weixin_43821559/article/details/124879618