文章目录
前言
这几天学习了一下贫富优化算法。对于这个算法进行了一下测试。
提示:以下是本篇文章正文内容,下面案例可供参考
一、贫富优化算法?
[1]Moosavi S H S, Bardsiri V K. Poor and rich optimization algorithm: A new human-based and multi populations algorithm[J]. Engineering Applications of Artificial Intelligence, 2019, 86: 165-181.
提出一种基于人类行为的新型优化算法。 提议的算法称为 PRO,其灵感来自富人和穷人努力改善他们的经济状况并增加他们的阶级差距(对于富人)和缩小阶级差距(对于穷人)。 尽管近年来提出了许多优化算法,但多种群算法却很少。 本文提出的多种群算法与同类算法的区别在于其优化机制。
PRO是根据一个真实的社会现象设计的,它可以被视为复杂优化问题的解决方案。
二、更新机制
1.富人和穷人
穷人和富人的划分也是基于适应度进行划分。穷人和富人分别作为两个亚种群进行各自的更新。我感觉是类似于将两个粒子群按照两种不同的更新机制进行更新,更新之后对整体的粒子进行整合,对适应度进行排序,然后再次分为两个种群。
1.1富人
富人:适应度的前多少被视为优秀的人,具有更多的财富。富人的更新机制如下式子:
在式子中,X(old,rich)代表在上一代的富人位置,X(new,rich)代表在该代的富人位置,X(old,poor)代表在上一代的最优秀的穷人位置。r为一个0到1的随机数。富人总是想尽可能的拉开与穷人的阶级差距,这是该式子后半部分的表达含义。随机数r的引入导致了富人的内部竞争加剧,比较高的r可以促进适应度值高的富人加速收敛。
1.2穷人
穷人的更新机制如下式子:
在式子中,r为0到1的随机数。pattern被视作是得到财富的方法。式子如下:
1.3变异
穷人靠变异,富人靠科技。
总有一些穷人中彩票成为富人,也有一些富人破产变为穷人。因此有一定的概率进行变异,更新如下:
rand为0到1的随机数,pumt为变异的概率,在文章中的取值为(0.05,0.09)。randn为服从标准正态分布的在区间(0,1)的分布数。
2.算法流程
1两个亚群分别按照迭代规则更新;
2计算适应度,将两个种群拼接;
3适应度排序,穷富人更新,种群再次划分;
4迭代次数到达或达到收敛条件;
二、一些结果
采用在PSO中的测试函数进行测试。
f1单峰值
f3 单峰值
f7 单峰值
f9 多峰值
f13 多峰值
f16固定维数,最优值-1.0316
在单峰值函数中的表现良好,有较好的寻优能力和开发能力。对于多峰值函数,pro的表现一般,寻优能力较弱,容易陷入局部最优(图只贴了两张);固定维数的表现良好,可以寻到最优值。
该次的参数设置:富人20%,穷人80%。总人数:50。
变异概率:paumt=0.06。
总结
对于pro算法,通过单峰值测试,在寻优精度和寻优的速度点都是非常快和准;在多峰值函数中有一半表现不好,仍有易陷入局部最优的通病,可以从这进行改善。当然,也不排除参数设置的影响,对于参数的继续调整的效果有待后续实验数据观察。
纯属记录个人的实验总结,大家看个乐呵,轻喷!!!
拜了个拜~~~~~