智能优化算法:广义正态分布优化算法-附代码

智能优化算法:广义正态分布优化算法

摘要:广义正态分布优化算法(Generalized normal distribution optimization,GDNO)是于2020年提出的一种新型智能优化算法,该算法受到正态分布理论的启发,具有寻优能力强,收敛速度快等特点。

1.广义正态分布优化算法

广义正态分布优化(Generalized normal distribution optimization, GNDO)算法受到正态分布理论的启发。正态分布又称高斯分布 Q Q Q ,是描述自然现象的重要工具。正态分布可以定义如下:假设一个随机变量 x x x 服位置参数 μ \mu μ 和尺度参数 δ \delta δ 的概率分布,其概率密度 Q Q Q 函数可以表 示为:
f ( x ) = 1 2 π δ exp ⁡ ( − ( x − μ ) 2 2 δ 2 ) (17) f(x)=\frac{1}{\sqrt{2 \pi \delta}} \exp \left(-\frac{(x-\mu)^{2}}{2 \delta^{2}}\right) \tag{17} f(x)=2πδ 1exp(2δ2(xμ)2)(17)
其中, x \mathrm{x} x 被称为正态随机变量,这个分布可以称为正态分布,也就是 x ∼ N ( μ , δ 2 ) \mathrm{x} \sim \mathrm{N}\left(\mu, \delta^{2}\right) xN(μ,δ2) 。根据式(1),正态分布包括两个变量,即位置参数 μ \mu μ 和 尺度参数 δ \delta δ 。位置参数 μ \mu μ 和尺度参数 δ \delta δ 分别用来表示随机变量的均值和标准差。

GNDO中设计的信息共享策略包括局部开发和全局探索。局部开发基于建立的广义正态分布模型,该模型由当前平均位置和当前最优位置 引导;全局探索涉及三个随机选择的个体。这两种学习策略的详细解释如下:

1.1 局部开发策略

局部开发是指在包含所有个体当前位置的搜索空间周围找到更好解决方案的过程。基于个体在种群中的分布与正态分布之间的关系,可以 通过以下方法建立优化的广义正态分布模型:
v i t = μ i + δ i × η , i = 1 , 2 , ⋯   , N (18) \boldsymbol{v}_{\mathrm{i}}^{\mathrm{t}}=\mu_{\mathrm{i}}+\delta_{\mathrm{i}} \times \eta, \mathrm{i}=1,2, \cdots, \mathrm{N} \tag{18} vit=μi+δi×η,i=1,2,,N(18)
其中, v i t \boldsymbol{v}_{\mathrm{i}}^{\mathrm{t}} vit 是第 i \mathrm{i} i 个个体在时间 t \mathrm{t} t 的轨迹向量, μ i \mu_{\mathrm{i}} μi 是第 i \mathrm{i} i 个个体的广义平均位置, δ i \delta_{\mathrm{i}} δi 是广义标准差, η \eta η 是惩罚因子。 μ i \mu _i μi δ i \delta_{\mathrm{i}} δi η \eta η 可以定义为:
μ i = 1 3 ( x i t + x Best  t + M ) (19) \mu_{\mathrm{i}}=\frac{1}{3}\left(\boldsymbol{x}_{\mathrm{i}}^{\mathrm{t}}+\boldsymbol{x}_{\text {Best }}^{\mathrm{t}}+\boldsymbol{M}\right) \tag{19} μi=31(xit+xBest t+M)(19)

δ i = 1 3 [ ( x i t − μ ) 2 + ( x Best  t − μ ) 2 + ( M − μ ) 2 ] (20) \delta_{\mathrm{i}}=\sqrt{\frac{1}{3}\left[\left(\boldsymbol{x}_{\mathrm{i}}^{\mathrm{t}}-\mu\right)^{2}+\left(\boldsymbol{x}_{\text {Best }}^{\mathrm{t}}-\mu\right)^{2}+(\boldsymbol{M}-\mu)^{2}\right]} \tag{20} δi=31[(xitμ)2+(xBest tμ)2+(Mμ)2] (20)

η = { − log ⁡ ( λ 1 ) × cos ⁡ ( 2 π λ 2 ) ,  if a  ≤ b − log ⁡ ( λ 1 ) × cos ⁡ ( 2 π λ 2 + π ) ,  otherwise  (21) \begin{gathered} \eta= \begin{cases}\sqrt{-\log \left(\lambda_{1}\right)} \times \cos \left(2 \pi \lambda_{2}\right), & \text { if a } \leq \mathrm{b} \\ \sqrt{-\log \left(\lambda_{1}\right)} \times \cos \left(2 \pi \lambda_{2}+\pi\right), & \text { otherwise }\end{cases} \end{gathered}\tag{21} η={log(λ1) ×cos(2πλ2),log(λ1) ×cos(2πλ2+π), if a b otherwise (21)
其中, a、b、 λ 1 \lambda_{1} λ1 λ 2 \lambda_{2} λ2 是介于 0 和1之间的随机数, x B e s t t \boldsymbol{x}_{\mathrm{Best}}^{\mathrm{t}} xBestt 是当前最佳位置, M \boldsymbol{M} M 是当前种群的平均位置。 M \boldsymbol{M} M 计算如下:
M = ∑ i = 1 N x i t N (22) \boldsymbol{M}=\frac{\sum_{\mathrm{i}=1}^{\mathrm{N}} \boldsymbol{x}_{\mathrm{i}}^{\mathrm{t}}}{\mathrm{N}} \tag{22} M=Ni=1Nxit(22)
广义平均位置 μ i \mu_{\mathrm{i}} μi 当前最佳个体 x Best  t x_{\text {Best }}^{\mathrm{t}} xBest t 包含与全局最优解相关的有用信息。因此,第 i \mathrm{i} i 个个体 x i t x_{\mathrm{i}}^{\mathrm{t}} xit 被拉向当前最佳个体 x Best  t x_{\text {Best }}^{\mathrm{t}} xBest t 的方向,后 方向移动。平均位置 M M M 在迭代过程中会发生变化,这有利于找到更好的解决方案。因此,在设计的局部开发策略中引入了平均位置 M M M ,在一定程度上提高了避免局部最优的机会。

广义标准差 δ i \delta_{\mathrm{i}} δi 。广义标准差 δ i \delta_{\mathrm{i}} δi 用于增强所提出的GNDO的局部搜索能力。基于式(3)和(4),广义标准差 δ i \delta_{\mathrm{i}} δi 可以被视为一个随机序列,在 广义平均位置 i i \mathrm{i}_{\mathrm{i}} ii 周围进行局部搜索。此外,根据式(4),第 1 个个体 x i t x_{\mathrm{i}}^{\mathrm{t}} xit 的位置和平均位置 M M M 与最佳个体 x Best  t x_{\text {Best }}^{\mathrm{t}} xBest t 的位置之间的距离越大, 动的随机序列可以帮助个体寻找更好的解。当个体 x i t x_{\mathrm{i}}^{\mathrm{t}} xit 具有良好的适应值时,个体很有可能在其周围找到更好的解决方案。因此,具 有弱波动的随机序列可以帮助个体获得更好的解。

惩罚因子 η \eta η。在GNDO算法中,惩罚因子 η \eta η用于进一步增强生成的广义标准差的随机性。惩罚因子可以增加GNDO的搜索方向,从而提高GNDO的搜索能力。

1.2全局开发

全局探索是在全局范围内搜索一个有希望的区域。GNDO的全局探索基于三个随机选择的个体,可以表示为:
v i t = x i t + β × ( ∣ λ 3 ∣ × v 1 ) ⏟ Local information sharing  + ( 1 − β ) × ( ∣ λ 4 ∣ × v 2 ) ⏟ Global information sharing  (23) \boldsymbol{v}_{\mathrm{i}}^{\mathrm{t}}=\boldsymbol{x}_{\mathrm{i}}^{\mathrm{t}}+\underbrace{\beta \times\left(\left|\lambda_{3}\right| \times \boldsymbol{v}_{1}\right)}_{\text {Local information sharing }}+\underbrace{(1-\beta) \times\left(\left|\lambda_{4}\right| \times \boldsymbol{v}_{2}\right)}_{\text {Global information sharing }} \tag{23} vit=xit+Local information sharing  β×(λ3×v1)+Global information sharing  (1β)×(λ4×v2)(23)
其中, λ 3 \lambda_{3} λ3 λ 4 \lambda_{4} λ4 是服从标准正态分布的两个随机数,称为调整参数的 β \beta β 是介于 0 和 1 之间的随机数, v 1 v_{1} v1 v 2 v_{2} v2 是两个轨迹向量。 v 1 v_{1} v1 v 2 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  (24) \boldsymbol{v}_{1}= \begin{cases}\boldsymbol{x}_{\mathrm{i}}^{\mathrm{t}}-\boldsymbol{x}_{\mathrm{p} 1}^{\mathrm{t}}, & \text { if } \mathrm{f}\left(\boldsymbol{x}_{\mathrm{i}}^{\mathrm{t}}\right)<\mathrm{f}\left(\boldsymbol{x}_{\mathrm{p} 1}^{\mathrm{t}}\right) \\ \boldsymbol{x}_{\mathrm{p} 1}^{\mathrm{t}}-\boldsymbol{x}_{\mathrm{i}}^{\mathrm{t}}, & \text { otherwise }\end{cases} \tag{24} v1={xitxp1t,xp1txit, if f(xit)<f(xp1t) otherwise (24)

v 2 = { x p 2 t − x p 3 t ,  if  f ( x p 2 t ) < f ( x p 3 t ) x p 3 t − x p 2 t ,  otherwise  (25) \begin{gathered} \boldsymbol{v}_{2}= \begin{cases}\boldsymbol{x}_{\mathrm{p} 2}^{\mathrm{t}}-\boldsymbol{x}_{\mathrm{p} 3}^{\mathrm{t}}, & \text { if } \mathrm{f}\left(\boldsymbol{x}_{\mathrm{p} 2}^{\mathrm{t}}\right)<\mathrm{f}\left(\boldsymbol{x}_{\mathrm{p} 3}^{\mathrm{t}}\right) \\ \boldsymbol{x}_{\mathrm{p} 3}^{\mathrm{t}}-\boldsymbol{x}_{\mathrm{p} 2}^{\mathrm{t}}, & \text { otherwise }\end{cases} \end{gathered} \tag{25} v2={xp2txp3t,xp3txp2t, if f(xp2t)<f(xp3t) otherwise (25)
其中, p 1 、 p 2 \mathrm{p} 1 、 \mathrm{p} 2 p1p2 p 3 \mathrm{p} 3 p3 是从1到 N \mathrm{N} N 中选栔的三个随机整数,且满足 p 1 ≠ p 2 ≠ p 3 \mathrm{p} 1 \neq \mathrm{p} 2 \neq \mathrm{p} 3 p1=p2=p3 。给定式(8)和式(9),式(7)右侧的第二项可以称为局部学 习习项,这意味着个体p1与个体烘享信息; 式(7)右侧的第三项可以称为全局信息共享项,它表示个体p2和p3向个体提供信息。调整参数 β \beta β 用于平衡两种信息共享策略。此外, λ 3 \lambda_{3} λ3 λ 4 \lambda_{4} λ4 是标准正态分布的随机数,这可以使GNDO在执行全局搜索的过程中拥有更大的搜索空间。

智能优化算法:广义正态分布优化算法-附代码_第1张图片

3.实验结果智能优化算法:广义正态分布优化算法-附代码_第2张图片

4.参考文献

[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.

5.Matlab代码

你可能感兴趣的:(智能优化算法,算法,概率论,机器学习)