一种改进的原子搜索算法-附代码
  yOv1KlRBtRV9 2023年11月02日 18 0


一种改进的原子搜索算法


文章目录

  • 一种改进的原子搜索算法
  • 1.原子搜索算法
  • 2. 改进原子搜索算法
  • 2.1 引入新的共价键约束力
  • 2.2 自适应调整系数因子
  • 2.3高斯变异策略
  • 3.实验结果
  • 4.参考文献
  • 5.Matlab代码
  • 6.Python代码



摘要:原子搜索算法(Atom Search Algorithm,ASO)是模仿自然界中原子运动而提出的一种新型优化算法,针对ASO在求解复杂函数时存在易早熟及收敛速度慢的问题,提出了一种改进ASO算法(Improved Atomic Search Algorithm,IASO)。IASO加入了原子个体历史最优解产生的约束力来修正ASO的加速度,增强全局搜索能力。自适应更新两个乘数系数来协调算法的全局搜索和局部开发能力。适时采用高斯变异策略来重新更新原子位置,提高跳出早熟的能力。

1.原子搜索算法

2. 改进原子搜索算法

2.1 引入新的共价键约束力

ASO 每次迭代中种群最佳原子对周围 原子存在一个共价键约束力 一种改进的原子搜索算法-附代码_迭代, 由式 (10) 可知它是种群最佳原子位置与当前原子位 置的差值, 这种机制提高了全局最优信息对 当前原子的引导作用, 加强了原子个体之间 的协同合作。为了更好的更新原子加速度方 向, 本文引入原子对自身的认知, 加入原子 个体历史最优解-单个原子在历次迭代中的 最佳位置叫原子个体历史最优解。在每一 次迭代中的个体原子位置都与原子个体历 史最优位置进行比较, 如果当前个体原子位 置优于它的个体历史最优位置, 则把当前个 体原子位置更新为个体历史最优位置, 相反, 则不更新。假设每个原子个体在迭代中产生 的个体历史最优解对周围原子也存在一个 共价键约束力, 因此原子的加速度受种群最 佳原子产生的共价键约束力和个体历史最 优原子产生的共价键约束力共同影响。原子可以利用种群信息和自身经验, 通过信息融 合更新加速度, 提高了算法的全局探索能力。 原子个体历史最优解产生的共价键约束力 定义为 一种改进的原子搜索算法-附代码_搜索算法_02, 其表达式如下(14)所示:
一种改进的原子搜索算法-附代码_最优解_03
其中 一种改进的原子搜索算法-附代码_最优解_04 是系数因子, 一种改进的原子搜索算法-附代码_算法_05 代表第 一种改进的原子搜索算法-附代码_迭代_06 次迭代 中原子 一种改进的原子搜索算法-附代码_算法_07

2.2 自适应调整系数因子

引入原子个体历史最优解产生的共价 键约束力 一种改进的原子搜索算法-附代码_搜索算法_02 之后, 原子加速度 一种改进的原子搜索算法-附代码_算法_09 的公式更 新为如下(15)所示:
一种改进的原子搜索算法-附代码_迭代_10
一种改进的原子搜索算法-附代码_最优解_11

一种改进的原子搜索算法-附代码_最优解_12

其中 一种改进的原子搜索算法-附代码_最优解_13一种改进的原子搜索算法-附代码_最优解_04 都是超参数, 对算法的寻优 速度和优化结果有着重要的影响, 可以看出 一种改进的原子搜索算法-附代码_最优解_13 代表了原子向全局历史最优解运动能力的 权重, 一种改进的原子搜索算法-附代码_最优解_04 代表了原子对自己的认可程度。这 两个参数反映了对种群信息和个体信息的 接受程度, 不同阶段需要设置不同大小。在 算法搜索初期, 为了增强原子的全局搜索能 力, 让 一种改进的原子搜索算法-附代码_最优解_04 取较大的值, 一种改进的原子搜索算法-附代码_最优解_13 取较小的值, 这样 可以使原子在整个可行空间进行搜索。在搜 索后期, 一种改进的原子搜索算法-附代码_最优解_04 取较小的值, 一种改进的原子搜索算法-附代码_最优解_13 取较大的值, 可 以使原子快速收敛于最优值。所以随着迭代 次数的增加, 一种改进的原子搜索算法-附代码_最优解_04 逐渐变大, 一种改进的原子搜索算法-附代码_最优解_13 逐渐变小, 基 于此本文对两个参数采取自适应更新策略, 平衡全局信息与局部信息, 提高信息利用率。 一种改进的原子搜索算法-附代码_最优解_13一种改进的原子搜索算法-附代码_最优解_04

一种改进的原子搜索算法-附代码_迭代_25
一种改进的原子搜索算法-附代码_搜索算法_26

其中 一种改进的原子搜索算法-附代码_算法_27 分别为参数的最小值; 一种改进的原子搜索算法-附代码_算法_28,一种改进的原子搜索算法-附代码_算法_29 为最大值。可知 一种改进的原子搜索算法-附代码_最优解_13一种改进的原子搜索算法-附代码_最优解_04 都在 一种改进的原子搜索算法-附代码_迭代_32

2.3高斯变异策略

一种改进的原子搜索算法-附代码_迭代_33 优化算法在更新原子全局最优位 置的过程中, 原子通常会表现出早熟的现象, 整个原子种群进入搜索停滞, 陷入局部极值。 为了加快原子的收玫速度, 提高原子跳出早 熟的能力, 将高斯变异策略 一种改进的原子搜索算法-附代码_最优解_34 引入 IASO 算 法的原子位置更新中, 加入高斯变异因子对 原子位置进行扰动, 使之产生新的位置继续 进行更新。在对原子位置进行高斯变异之前, 首先进行变异系数判断, 变异系数是衡量一 组数据离散程度的一个归一化量度, 变异系 数的定义为如下(17)所示:
一种改进的原子搜索算法-附代码_最优解_35
其中 一种改进的原子搜索算法-附代码_搜索算法_36 是变异系数; 一种改进的原子搜索算法-附代码_迭代_37 是标准差; 一种改进的原子搜索算法-附代码_迭代_38

IASO 算法提前设置一个变异系数阈值 一种改进的原子搜索算法-附代码_算法_39, 为了保持算法的效率, 变异系数不宜过 大, 本文设置 一种改进的原子搜索算法-附代码_搜索算法_40, 算法前期迭代收敛 性一般较好, 迭代中后期易陷入局部最优解, 在算法进行 一种改进的原子搜索算法-附代码_迭代_41 次迭代之后, 再根据变异系 数适时采用高斯变异。对相邻三次的迭代结 果求取高斯变异系数 一种改进的原子搜索算法-附代码_迭代_42, 其求解公式如 下(18)所示:
一种改进的原子搜索算法-附代码_搜索算法_43
其中 一种改进的原子搜索算法-附代码_迭代_06 是当前迭代次数, 一种改进的原子搜索算法-附代码_迭代_45 是第 一种改进的原子搜索算法-附代码_算法_07 次 迭代的最优解, mean 一种改进的原子搜索算法-附代码_算法_47 是三次迭代结果 一种改进的原子搜索算法-附代码_算法_48 的平均值, 其定义如下(19)所示:
一种改进的原子搜索算法-附代码_迭代_49
如果 一种改进的原子搜索算法-附代码_最优解_50, 说明每次迭代的最优 解 一种改进的原子搜索算法-附代码_算法_48 变化较大, 算法的收玫性仍然较好, 此时对原子位置更新不采用高斯扰动, 如果 一种改进的原子搜索算法-附代码_迭代_52, 则说明迭代结果 一种改进的原子搜索算法-附代码_算法_48 变化不大, 算法陷入了局部停滞, 此时对原子的位置进 行高斯变异扰动更新, 提高原子的多样性, 跳出局部极值。加入高斯变异后的原子位置 更新公式如下(20)所示:
一种改进的原子搜索算法-附代码_迭代_54
一种改进的原子搜索算法-附代码_迭代_55
其中 一种改进的原子搜索算法-附代码_搜索算法_56 为服从 0-1 之间均匀分布的随机 数; Gaussian 一种改进的原子搜索算法-附代码_算法_57 是第 一种改进的原子搜索算法-附代码_迭代_06 次迭代原 子位置, 一种改进的原子搜索算法-附代码_最优解_59

一种改进的原子搜索算法-附代码_算法_60

3.实验结果

一种改进的原子搜索算法-附代码_迭代_61

4.参考文献

[1]李建锋,卢迪,李贺香.一种改进的原子搜索算法[J/OL].系统仿真学报:1-13[2021-05-06].http://kns.cnki.net/kcms/detail/11.3092.V.20210409.1508.008.html.

5.Matlab代码

6.Python代码


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
yOv1KlRBtRV9