广义正态分布优化(Generalized normal distribution optimization, GNDO)算法受到正态分布理论的启发。正态分布又称高斯分布,是描述自然现象的重要工具。正态分布可以定义如下:假设一个随机变量 x x x服位置参数 μ \mu μ和尺度参数 δ \delta δ的概率分布,其概率密度函数可以表示为: f ( x ) = 1 2 π δ exp ( − ( x − μ ) 2 2 δ 2 ) (1) f(x)=\frac{1}{\sqrt{2\pi\delta}}\exp\left(-\frac{(x-\mu)^2}{2\delta^2}\right)\tag{1} f(x)=2πδ1exp(−2δ2(x−μ)2)(1)其中, x x x被称为正态随机变量,这个分布可以称为正态分布,也就是 x ∼ N ( μ , δ 2 ) x\sim N(\mu,\delta^2) x∼N(μ,δ2)。根据式(1),正态分布包括两个变量,即位置参数 μ \mu μ和尺度参数 δ \delta δ。位置参数 μ \mu μ和尺度参数 δ \delta δ分别用来表示随机变量的均值和标准差。
GNDO中设计的信息共享策略包括局部开发和全局探索。局部开发基于建立的广义正态分布模型,该模型由当前平均位置和当前最优位置引导;全局探索涉及三个随机选择的个体。这两种学习策略的详细解释如下:
局部开发是指在包含所有个体当前位置的搜索空间周围找到更好解决方案的过程。基于个体在种群中的分布与正态分布之间的关系,可以通过以下方法建立优化的广义正态分布模型: v i t = μ i + δ i × η , i = 1 , 2 , ⋯ , N (2) \boldsymbol v_i^t=\mu_i+\delta_i\times\eta,\,\,i=1,2,\cdots,N\tag{2} vit=μi+δi×η,i=1,2,⋯,N(2)其中, v i t \boldsymbol v_i^t vit是第 i i i个个体在时间 t t t的轨迹向量, μ i \mu_i μi是第 i i i个个体的广义平均位置, δ i \delta_i δi是广义标准差, η \eta η是惩罚因子。 μ i \mu_i μi、 δ i \delta_i δi和 η \eta η可以定义为: μ i = 1 3 ( x i t + x Best t + M ) (3) \mu_i=\frac13(\boldsymbol x_i^t+\boldsymbol x_{\text{Best}}^t+\boldsymbol M)\tag{3} μi=31(xit+xBestt+M)(3) δ i = 1 3 [ ( x i t − μ ) 2 + ( x Best t − μ ) 2 + ( M − μ ) 2 ] (4) \delta_i=\sqrt{\frac13[(\boldsymbol x_i^t-\mu)^2+(\boldsymbol x_{\text{Best}}^t-\mu)^2+(\boldsymbol M-\mu)^2]}\tag{4} δi=31[(xit−μ)2+(xBestt−μ)2+(M−μ)2](4) η = { − log ( λ 1 ) × cos ( 2 π λ 2 ) , if a ≤ b − log ( λ 1 ) × cos ( 2 π λ 2 + π ) , otherwise (5) \eta=\begin{dcases}\sqrt{-\log(\lambda_1)}\times\cos(2\pi\lambda_2),\quad\quad\,\,\,\,\,\text{if}\,\,a\leq b\\[2ex]\sqrt{-\log(\lambda_1)}\times\cos(2\pi\lambda_2+\pi),\quad\text{otherwise}\end{dcases}\tag{5} η=⎩⎨⎧−log(λ1)×cos(2πλ2),ifa≤b−log(λ1)×cos(2πλ2+π),otherwise(5)其中, a a a、 b b b、 λ 1 \lambda_1 λ1和 λ 2 \lambda_2 λ2是介于0和1之间的随机数, x Best t \boldsymbol x_{\text{Best}}^t xBestt是当前最佳位置, M \boldsymbol M M是当前种群的平均位置。 M \boldsymbol M M计算如下: M = ∑ i = 1 N x i t N (6) \boldsymbol M=\frac{\sum_{i=1}^N\boldsymbol x_i^t}{N}\tag{6} M=N∑i=1Nxit(6)
全局探索是在全局范围内搜索一个有希望的区域。GNDO的全局探索基于三个随机选择的个体,可以表示为: v i t = x i t + β × ( ∣ λ 3 ∣ × v 1 ) ⏟ Local information sharing + ( 1 − β ) × ( ∣ λ 4 ∣ × v 2 ) ⏟ Global information sharing (7) \boldsymbol v_i^t=\boldsymbol x_i^t+\underbrace{\beta\times(|\lambda_3|\times\boldsymbol v_1)}_{\text{Local information sharing}}+\underbrace{(1-\beta)\times(|\lambda_4|\times\boldsymbol v_2)}_{\text{Global information sharing}}\tag{7} vit=xit+Local information sharing β×(∣λ3∣×v1)+Global information sharing (1−β)×(∣λ4∣×v2)(7)其中, λ 3 \lambda_3 λ3和 λ 4 \lambda_4 λ4是服从标准正态分布的两个随机数,称为调整参数的β是介于0和1之间的随机数, v 1 \boldsymbol v_1 v1和 v 2 \boldsymbol v_2 v2是两个轨迹向量。 v 1 \boldsymbol v_1 v1和 v 2 \boldsymbol v_2 v2可通过以下公式计算: v 1 = { x i t − x p 1 t , if f ( x i t ) < f ( x p 1 t ) x p 1 t − x i t , otherwise (8) \boldsymbol v_1=\begin{dcases}\boldsymbol x_i^t-\boldsymbol x_{p1}^t,\quad\text{if}\,\,f(\boldsymbol x_i^t)
以常用23个测试函数中的F1、F2(单峰函数/10维)、F9、F10(多峰函数/10维)、F14、F15(固定维度多峰函数/2维、4维)为例,实验设置种群规模为30,最大迭代次数为500,独立运行30次,结果显示如下:
函数:F1
GNDO:最差值: 0.60223, 最优值: 1.0561e-07, 平均值: 0.038551, 标准差: 0.14564
函数:F2
GNDO:最差值: 1.0016, 最优值: 4.1065e-06, 平均值: 0.042532, 标准差: 0.18644
函数:F9
GNDO:最差值: 9.9497, 最优值: 0.99496, 平均值: 5.0774, 标准差: 1.9051
函数:F10
GNDO:最差值: 6.8825, 最优值: 2.3168, 平均值: 4.2981, 标准差: 1.5142
函数:F14
GNDO:最差值: 2.9821, 最优值: 0.998, 平均值: 1.0641, 标准差: 0.36225
函数:F15
GNDO:最差值: 0.020363, 最优值: 0.00030749, 平均值: 0.001679, 标准差: 0.0050817
实验结果表明:GNDO算法简单有效的算法,无需对初始参数进行任何微调,优化性能良好。
[1] Yiying Zhang, Zhigang Jin, Seyedali Mirjalili. Generalized normal distribution optimization and its applications in parameter extraction of photovoltaic models[J]. Energy Conversion and Management, 2020, 224: 113301.