- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
引力搜索算法的改进
在解决高维空间优化问题时,由于问题复杂性的增加,搜索空间随着问题大小的增加而增加,经典优化算法的解仍不现实。
过去的10年里, 许多专家受到自然界各种行为的启发, 提出了许多启发式优化算法以解决复杂的计算问题, 例如粒子群优化算法
2009年伊朗的克曼大学教授Esmat Rashedi等人提出了引力搜索算法
在这篇文章中, 对引力搜索算法的每个粒子的惯性质量增加一个权值。通过实验, 可以看出, 改进后的算法的优化效果明显好于原来的引力搜索算法。
1 引力近似力力的种类
万有引力是自然界4种基础的力之一, 粒子在万有引力的作用下相互之间不断的靠近。在自然界, 每一个粒子都会和其他的所有粒子相互吸引, 引力的作用是无处不在的, 如图1所示。
对于两个相互分离的粒子, 它们相互之间作用的万有引力是没有间隔和延迟的。根据牛顿万有引力公式 (1) , 它的大小和两个粒子的质量成正比, 和两个粒子之间的欧氏距离的平方成反比 (但在引力搜索算法中, 通过实验表明, 用R代替R
其中F是代表万有引力的大小, G代表引力常数, M
牛顿第二定律说, 当一个力F作用在一个物体上时, 该物体会加速向该作用力的方向运动。根据公式 (2) , 它的加速度a的大小取决于这个物体的惯性质量和作用力F的大小:
其中α代表物体在力F的作用下的加速度, M为物体的惯性质量。
在一个D维的搜索空间中, 假设有N个粒子, 定义第i个粒子的位置为:
在式 (3) 中x
在某t时刻, 定义第j个粒子作用在第i个粒子上的引力大小F
在式 (4) 中M
其中G
R
在引力搜索算法中, 为了增加随机特性, 假设在第d维上作用在第i个粒子上的总的作用力是来自其他所有的粒子作用力的总和, 其大小F
在式 (7) 中rand
根据牛顿第二定理, 粒子i在第d维上t时刻的加速度a
在式 (8) 中M
在GSA算法中, 对于每一次的迭代过程, 粒子都会根据以下公式更新它的速度和位置:
在式 (9) 中, rand
惯性质量是根据适应值的大小来计算, 粒子的惯性质量越大, 就意味着它越接近最优值, 也就意味着该粒子有更大的吸引力, 并且移动的速度也就越慢。在GSA算法中, 使用以下公式更新粒子的惯性质量:
在式 (12) 和式 (13) 中, fit
对于求最小值问题, worst (t) 和best (t) 的定义如下:
对于求最大值问题, worst (t) 和best (t) 定义如下:
2 粒子的惯性质量
引力搜索算法依靠粒子的适应值来间接地计算粒子的惯性质量, 粒子惯性质量的大小也就间接地反映了每个粒子位置的好坏。因此通过改变粒子的惯性质量来对引力搜索算法进行改进。
2.1 基于最优值的粒子搜索
在引力搜索算法中, 主要以适应度函数为依据。每一次迭代的过程中, 不断更新函数的适应值, 粒子的惯性质量也随着适应值的改变而相应的改变。其中惯性质量大的粒子, 越容易吸引其他的粒子, 也就能使粒子向最优的位置运动。因此, 可以对每个粒子增加一个权值, 使惯性质量大的粒子, 它的惯性质量更大, 惯性质量小的粒子, 惯性质量更小。这样可以使得粒子搜到的最优值更好。因此, 提出了基于权值的引力搜索算法。
对于基于权值的引力搜索算法, 在GSA算法为基础上, 在每一次的迭代过程中, 根据式 (12) 和式 (13) 计算出的惯性质量M
在式 (18) 中, α
为了进一步提高该算法的搜索效果, 可以随着时间的增加而减少等式 (7) 中的粒子数量以使得探索和开采达到平衡。也就是只用一组质量比较大的粒子作用其他的粒子。但是, 应该谨慎地使用这种方法, 因为它也许会减少探索能力而增加开采能力。
为避免陷入局部最优化, 一开始增加探索能力。在迭代的过程中, 探索能力应该逐渐减弱, 而开采能力应该逐渐增强。假设kbest (t) 代表在第t次迭代的时候一组质量比较大的粒子的数量, 为了很好地控制探索和开采, kbest (t) 应该是一个随着时间增加而减少的线性函数。kbest (t) 一开始的值为搜索粒子的数量, 也就是说, 一开始, 所有的粒子都作用其他的粒子。在最后kbest (t) 值应该为1, 也就是只有一个惯性质量最大的粒子作用其他的粒子。因此, 等式 (7) 的定义如下:
其中kbest是一开始适应值最好的粒子数的集合。
2.2 引力加速度计算
首先随机初始化粒子的位置和速度, 再计算各个粒子的适应度函数, 以此计算粒子的惯性质量, 求出惯性质量的最好值和最坏值。其次计算每个粒子在每一维上的引力, 以求得引力加速度。最后更新粒子的位置和速度, 以此循环, 直到得到最后结果, 具体步骤如下:
(1) 搜索空间的识别。
(2) 随机初始化。
(3) 粒子适应值的计算
文档评论(0)