基于贫富优化算法的函数寻优算法

一、理论基础

1、贫富优化算法

Seyyed等人于2019年提出了一种全新的优化算法——贫富优化算法(Poor and rich optimization algorithm, PRO)。这一算法的设计灵感来自于穷人和富人为通过不断增长财富而改善经济状况这一人类社会现象。
PRO算法通常将一个社会群体中可以分为两类,第一类是富人,他们的财富水平高于平均水平。第二类是财富水平低于平均水平的穷人。这两个群体的每一个成员都试图以不同的方式改善他们的经济状况,这些方式具有很大的多样性。该算法的主要思想概括为以下两种情况:

  1. 贫困群体的每一个成员都试图通过向富人学习来改善自己的地位和缩小阶级差距;
  2. 富裕群体的每一个成员都试图通过观察和获取财富来增加与穷人的阶级差距。

在PRO算法中,先确定参数分布的上下界,再随机生成初始社会群体。然后,根据目标函数的结果,对初始总群体进行评估并按升序排序。PRO算法中的主要种群由两个子种群组成。第一类子群与富人有关,第二类子群与穷人有关。这两个亚群的大小取决于实际问题。式(1)显示了PRO算法中的主要种群: P N m a i n = P N p o o r + P N r i c h (1) P_{Nmain}=P_{Npoor}+P_{Nrich}\tag{1} PNmain=PNpoor+PNrich(1)其中, P N m a i n P_{Nmain} PNmain P N p o o r P_{Npoor} PNpoor P N r i c h P_{Nrich} PNrich分别代表了总群体、贫困群体和富裕群体,总群体按财富量(适应度值)升序排列,第一部分与富裕群体有关,第二部分与贫困群体有关。在PRO算法中,所有的富裕人口成员都比贫穷人口成员拥有更好的地位(个体位置)。
PRO算法中的由贫富两个子种群组成的总群体在算法的迭代过程中,必须根据定义的机制改变每个种群成员的位置。
在算法进程中,富裕群体中的每个成员的位置更新公式如下: X r i c h , i n e w = X r i c h , i o l d + r [ X r i c h , i o l d − X p o o r , b e s t o l d ] (2) X_{rich,i}^{new}=X_{rich,i}^{old}+r\left[X_{rich,i}^{old}-X_{poor,best}^{old}\right]\tag{2} Xrich,inew=Xrich,iold+r[Xrich,ioldXpoor,bestold](2)其中, X r i c h , i n e w X_{rich,i}^{new} Xrich,inew表示富裕群体第 i i i个成员位置的更新值, X r i c h , i n o l d X_{rich,i}^{nold} Xrich,inold表示富裕群体第 i i i个成员而为之的当前值, r r r表示阶层差距参数, X p o o r , b e s t o l d X_{poor,best}^{old} Xpoor,bestold表示贫穷成员中的当前最优成员。
在迭代过程中,贫穷群体中的每个成员的位置更新公式如下: X p o o r , i n e w = X p o o r , i o l d + [ r ( P a t t e r n ) − X p o o r , i o l d ] (3) X_{poor,i}^{new}=X_{poor,i}^{old}+\left[r(Pattern)-X_{poor,i}^{old}\right]\tag{3} Xpoor,inew=Xpoor,iold+[r(Pattern)Xpoor,iold](3)其中, X p o o r , i n e w X_{poor,i}^{new} Xpoor,inew表示贫穷群体第 i i i个成员位置的更新值, X p o o r , i o l d X_{poor,i}^{old} Xpoor,iold表示贫穷群体第 i i i个成员位置的当前值, r r r表示阶层差距参数, P a t t e r n Pattern Pattern表示致富模式, P a t t e r n Pattern Pattern计算公式如下: P a t t e r n = X r i c h , b e s t o l d + X r i c h , m e a n o l d + X r i c h , w o r s t o l d 3 (4) Pattern=\frac{X_{rich,best}^{old}+X_{rich,mean}^{old}+X_{rich,worst}^{old}}{3}\tag{4} Pattern=3Xrich,bestold+Xrich,meanold+Xrich,worstold(4)其中, X r i c h , b e s t o l d X_{rich,best}^{old} Xrich,bestold表示富裕群体中最优成员的位置, X r i c h , m e a n o l d X_{rich,mean}^{old} Xrich,meanold表示富裕群体中所有成员位置的平均值, X r i c h , w o r s t o l d X_{rich,worst}^{old} Xrich,worstold表示富裕群体中最差成员的位置。
世界经济中有一些因素可以改善或恶化经济形势,这个因素在这个算法中作为一个突变使用。在该算法中,穷人和富人的群体分别采用均值为0、方差为1的正态分布随机数作为突变概率。式(5)和(6)分别确定富人和穷人群体的突变: X r i c h , i n e w = X r i c h , i n e w + r a n d n , if    r a n d < P m u t (5) X_{rich,i}^{new}=X_{rich,i}^{new}+randn,\quad\text{if}\,\,rand<P_{mut}\tag{5} Xrich,inew=Xrich,inew+randn,ifrand<Pmut(5) X p o o r , i n e w = X p o o r , i n e w + r a n d n , if    r a n d < P m u t (6) X_{poor,i}^{new}=X_{poor,i}^{new}+randn,\quad\text{if}\,\,rand<P_{mut}\tag{6} Xpoor,inew=Xpoor,inew+randn,ifrand<Pmut(6)其中, r a n d rand rand表示 [ 0 , 1 ] [0,1] [0,1]区间的随机数, P m u t P_{mut} Pmut是突变概率, X r i c h , i n e w X_{rich,i}^{new} Xrich,inew是由式(5)得到的更新值, X p o o r , i n e w X_{poor,i}^{new} Xpoor,inew是由式(6)得到的更新值, r a n d n randn randn是标准正态分布随机数。可以看出,突变概率的应用于可能导致改善或恶化当前位置。

2、PRO算法流程图

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

图1 PRO算法流程图

二、仿真实验与结果分析

将PRO与ABC、SCA和PSO进行对比,以常用23个测试函数中的F3、F4(单峰函数/30维)、F10、F11(多峰函数/30维)、F19、F20(固定维度多峰函数/3维、6维)为例,实验设置种群规模为30,最大迭代次数为1000,每种算法独立运算30次,结果显示如下:
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

函数:F3
PRO:最差值: 1.3166e-155, 最优值: 1.5478e-176, 平均值: 7.0089e-157, 标准差: 2.4958e-156, 秩和检验: 1
ABC:最差值: 58545.6904, 最优值: 33485.0598, 平均值: 46265.9244, 标准差: 5437.6201, 秩和检验: 3.0199e-11
SCA:最差值: 20571.0812, 最优值: 170.7621, 平均值: 4065.4949, 标准差: 4326.7731, 秩和检验: 3.0199e-11
PSO:最差值: 9586.6403, 最优值: 644.9432, 平均值: 2283.3482, 标准差: 1669.7402, 秩和检验: 3.0199e-11
函数:F4
PRO:最差值: 4.372e-87, 最优值: 6.2569e-93, 平均值: 3.1232e-88, 标准差: 9.5032e-88, 秩和检验: 1
ABC:最差值: 0.033862, 最优值: 0.0039999, 平均值: 0.014072, 标准差: 0.0076658, 秩和检验: 3.0199e-11
SCA:最差值: 45.5844, 最优值: 3.8564, 平均值: 20.0092, 标准差: 10.4261, 秩和检验: 3.0199e-11
PSO:最差值: 22.4377, 最优值: 10.5227, 平均值: 15.9456, 标准差: 3.1673, 秩和检验: 3.0199e-11
函数:F10
PRO:最差值: 4.4409e-15, 最优值: 8.8818e-16, 平均值: 1.5987e-15, 标准差: 1.4454e-15, 秩和检验: 1
ABC:最差值: 4.1639, 最优值: 0.10101, 平均值: 2.1515, 标准差: 1.231, 秩和检验: 6.3188e-12
SCA:最差值: 20.3382, 最优值: 0.00069899, 平均值: 13.4452, 标准差: 9.2399, 秩和检验: 6.3188e-12
PSO:最差值: 7.6104, 最优值: 4.2982, 平均值: 5.7582, 标准差: 0.86853, 秩和检验: 6.3188e-12
函数:F11
PRO:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
ABC:最差值: 1.5463, 最优值: 0.013433, 平均值: 0.78831, 标准差: 0.42131, 秩和检验: 1.2118e-12
SCA:最差值: 0.98771, 最优值: 1.4343e-06, 平均值: 0.22284, 标准差: 0.30818, 秩和检验: 1.2118e-12
PSO:最差值: 2.4571, 最优值: 1.1366, 平均值: 1.5293, 标准差: 0.2396, 秩和检验: 1.2118e-12
函数:F19
PRO:最差值: -3.8628, 最优值: -3.8628, 平均值: -3.8628, 标准差: 2.4849e-15, 秩和检验: 1
ABC:最差值: -3.8625, 最优值: -3.8628, 平均值: -3.8627, 标准差: 7.3136e-05, 秩和检验: 1.62e-11
SCA:最差值: -3.8501, 最优值: -3.8604, 平均值: -3.8546, 标准差: 0.0019902, 秩和检验: 1.62e-11
PSO:最差值: -3.8628, 最优值: -3.8628, 平均值: -3.8628, 标准差: 2.5684e-15, 秩和检验: 0.23067
函数:F20
PRO:最差值: -3.2031, 最优值: -3.322, 平均值: -3.2704, 标准差: 0.059894, 秩和检验: 1
ABC:最差值: -3.2702, 最优值: -3.3094, 平均值: -3.2934, 标准差: 0.009953, 秩和检验: 0.37904
SCA:最差值: -1.9107, 最优值: -3.1221, 平均值: -2.8659, 标准差: 0.31929, 秩和检验: 3.0199e-11
PSO:最差值: -3.0839, 最优值: -3.322, 平均值: -3.2784, 标准差: 0.066139, 秩和检验: 0.29047

实验结果表明:PRO算法在探索、开发和收敛方面相对于其他算法具有优越性。

代码下载链接:https://download.csdn.net/download/weixin_43821559/85397111

三、参考文献

[1] Seyyed Hamid Samareh Moosavi, Vahid Khatibi Bardsiri. Poor and rich optimization algorithm: A new human-based and multi populations algorithm[J]. Engineering Applications of Artificial Intelligence, 2019, 86: 165-181.
[2] 张超. 基于信息融合的短期风电功率预测研究[D]. 合肥: 合肥工业大学, 2020.

猜你喜欢

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