【智能算法】吸引-排斥优化算法(AROA)原理及实现

目录

    • 1.背景
    • 2.算法原理
      • 2.1算法思想
      • 2.2算法过程
    • 3.结果展示
    • 4.参考文献
    • 5.代码获取


1.背景

2024年,K Cymerys受到自然界中吸引-排斥现象启发,提出了吸引-排斥优化算法(Attraction–Repulsion Optimization Algorithm, AROA)。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.算法原理

2.1算法思想

AROA模仿了自然界中发生的吸引-排斥现象的相关平衡,其中候选解决方案根据其邻域中的解决方案质量以及最佳候选方案在搜索空间中移动。

2.2算法过程

吸引和排斥

候选解的位置根据群体其他成员所达到的适应度信息更新,取决于群体成员之间的距离。
d 2 ( x i , x j ) = ∑ k = 1 d i m ( x i k − x j k ) 2 (1) d^{2}(\mathbf{x_{i}},\mathbf{x_{j}})=\sum_{k=1}^{dim}(x_{i}^{k}-x_{j}^{k})^{2}\tag{1} d2(xi,xj)=k=1dim(xikxjk)2(1)
向量ni被添加到候选解的位置:
n i = 1 n ∑ i = 1 k c ⋅ ( x j − x i ) ⋅ I ( d i , j , d i , m a x ) ⋅ s ( f i , f j ) (2) \mathbf{n_i}=\frac{1}{n}\sum_{i=1}^{k}c\cdot(\mathbf{x_j}-\mathbf{x_i})\cdot I(d_{i,j},d_{i,max})\cdot s(f_i,f_j)\tag{2} ni=n1i=1kc(xjxi)I(di,j,di,max)s(fi,fj)(2)
其中c是步长,I是评估解决方案影响的函数:
I ( d i , j , d i , m a x ) = 1 − d i , j d i , m a x (3) I(d_{i,j},d_{i,max})=1-\frac{d_{i,j}}{d_{i,max}}\tag{3} I(di,j,di,max)=1di,maxdi,j(3)
函数s决定了变化的方向:
s ( f i , f j ) = { 1 f i > f j 0 f i = f j − 1 f i < f j (4) s(f_i,f_j)=\begin{cases}1&f_i>f_j\\0&f_i=f_j\\-1&f_i<f_j\end{cases}\tag{4} s(fi,fj)= 101fi>fjfi=fjfi<fj(4)
邻居数量k:
k = ⌊ ( 1 − t t m a x ) ⋅ n ⌋ + 1 (5) k=\lfloor(1-\frac{t}{t_{max}})\cdot n\rfloor+1\tag{5} k=⌊(1tmaxt)n+1(5)
tmax最大迭代次数:
t m a x = ⌈ f e s m a x − n 2 n ⌉ (6) t_{max}=\lceil\frac{fes_{max}-n}{2n}\rceil\tag{6} tmax=2nfesmaxn(6)

吸引最优解

影响候选解决方案在搜索空间中的位置的下一个因素是根据其对最佳解决方案𝐛𝐢的吸引力来确定的:
b i = { c ⋅ m ⋅ ( x b e s t − x i ) r 1 ≥ p 1 c ⋅ m ⋅ ( a 1 ⊙ x b e s t − x i ) r 1 < p 1 (7) \mathbf{b_i}=\begin{cases}c\cdot m\cdot(\mathbf{x_{best}}-\mathbf{x_i})&r_1\geq p_1\\c\cdot m\cdot(\mathbf{a_1}\odot\mathbf{x_{best}}-\mathbf{x_i})&r_1<p_1\end{cases}\tag{7} bi={cm(xbestxi)cm(a1xbestxi)r1p1r1<p1(7)
m是平衡因子:
m = 1 2 ( exp ⁡ ( z ) − 1 exp ⁡ ( z ) + 1 + 1 ) (8) m=\frac{1}{2}(\frac{\exp(z)-1}{\exp(z)+1}+1)\tag{8} m=21(exp(z)+1exp(z)1+1)(8)
其中,z表述为:
z = 18 ⋅ t / t m a x − 4 (9) z = 18\cdot t/t_{max} - 4\tag{9} z=18t/tmax4(9)

局部搜索算子

修正布朗运动:
r B = u 1 ⊙ N ( 0 , f r 1 ⋅ ( 1 − t t m a x ) ⋅ ( x m a x − x m i n ) ) (10) \mathbf{r_B}=\mathbf{u_1}\odot\mathbf{N}(0,fr_1\cdot(1-\frac{t}{t_{max}})\cdot(\mathbf{x_{max}}-\mathbf{x_{min}}))\tag{10} rB=u1N(0,fr1(1tmaxt)(xmaxxmin))(10)

三角函数轮盘赌轮策略:
r t r i = { f r 2 ⋅ u 2 ⋅ ( 1 − t t m a x ) ⋅ sin ⁡ ( 2 r 5 π ) ⊙ ∣ a 2 ⊙ x w − x i ∣ r 4 < 0.5 f r 2 ⋅ u 2 ⋅ ( 1 − t t m a x ) ⋅ cos ⁡ ( 2 r 5 π ) ⊙ ∣ a 2 ⊙ x w − x i ∣ r 4 ≥ 0.5 (11) \mathbf{r_{tri}}=\begin{cases}fr_2\cdot\mathbf{u_2}\cdot(1-\frac{t}{t_{max}})\cdot\sin(2r_5\pi)\odot|\mathbf{a_2}\odot\mathbf{x_w}-\mathbf{x_i}|&r_4<0.5\\fr_2\cdot\mathbf{u_2}\cdot(1-\frac{t}{t_{max}})\cdot\cos(2r_5\pi)\odot|\mathbf{a_2}\odot\mathbf{x_w}-\mathbf{x_i}|&r_4\ge0.5\end{cases}\tag{11} rtri={fr2u2(1tmaxt)sin(2r5π)a2xwxifr2u2(1tmaxt)cos(2r5π)a2xwxir4<0.5r40.5(11)
在AROA中,局部搜索算子采用SCA的轮盘选择,最优解的选择采用贪婪选择方法。前两种算子考虑了当前执行迭代的数量,旨在用于探索或开发阶段。在搜索空间中随机选择一个位置丰富种群多样性:
r R = u 3 ⊙ ( 2 ⋅ a 3 − o ) ⊙ ( x m a x − x m i n ) (12) \mathbf{r_{R}}=\mathbf{u_{3}}\odot(2\cdot\mathbf{a_{3}}-\mathbf{o})\odot(\mathbf{x_{max}}-\mathbf{x_{min}})\tag{12} rR=u3(2a3o)(xmaxxmin)(12)
位置ri:
r i = { { r B r 3 > 0.5 ⋅ t t m a x + 0.25 r t r i r 3 ≤ 0.5 ⋅ t t m a x + 0.25 r 2 < p 2 r R r 2 ≥ p 2 (13) \mathbf{r_i}=\begin{cases}\begin{cases}\mathbf{r_B}&r_3>0.5\cdot\frac{t}{t_{max}}+0.25\\\mathbf{r_{tri}}&r_3\leq0.5\cdot\frac{t}{t_{max}}+0.25\end{cases}&r_2<p_2\\\\\mathbf{r_R}&r_2\geq p_2\end{cases}\tag{13} ri= {rBrtrir3>0.5tmaxt+0.25r30.5tmaxt+0.25rRr2<p2r2p2(13)
位置更新:
x i ( t ) = x i ( t − 1 ) + n i + b i + r i (14) \mathbf{x_{i}(t)=x_{i}(t-1)+n_{i}+b_{i}+r_{i}}\tag{14} xi(t)=xi(t1)+ni+bi+ri(14)

基于种群的算子

x i = { x i + c f ⋅ ( u 4 ⊙ ( a 4 ⊙ ( x m a x − x m i n ) + x m i n ) ) r 6 < e f x i + ( e f ⋅ ( 1 − r 7 ) + r 7 ) ( x r 8 − x r 9 ) r 6 ≥ e f (15) \mathbf{x_i}=\begin{cases}\mathbf{x_i}+c_f\cdot(\mathbf{u_4}\odot(\mathbf{a_4}\odot(\mathbf{x_{max}}-\mathbf{x_{min}})+\mathbf{x_{min}}))&r_6<e_f\\\mathbf{x_i}+(e_f\cdot(1-r_7)+r_7)(\mathbf{x_{r8}}-\mathbf{x_{r9}})&r_6\geq e_f\end{cases}\tag{15} xi={xi+cf(u4(a4(xmaxxmin)+xmin))xi+(ef(1r7)+r7)(xr8xr9)r6<efr6ef(15)

伪代码

在这里插入图片描述

3.结果展示

在这里插入图片描述
在这里插入图片描述

4.参考文献

[1] Cymerys K, Oszust M. Attraction–Repulsion Optimization Algorithm for Global Optimization Problems[J]. Swarm and Evolutionary Computation, 2024, 84: 101459.

5.代码获取

资源清单

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/668259.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Verilog HDL基础知识(二)

引言&#xff1a;本文继续介绍Verilog HDL基础知识&#xff0c;重点介绍赋值语句、阻塞与非阻塞、循环语句、同步与异步、函数与任务语法知识。 1. 赋值语句 在Verilog中&#xff0c;有两种进行赋值的方法&#xff0c;即连续赋值语句和过程赋值语句&#xff08;块&#xff09…

[vue2项目]vue2+supermap[mapboxgl]+天地图之地图的初始化

Supermap参考教程 天地图 一、安装 1、终端:npm install @supermap/vue-iclient-mapboxgl 2、在package.json文件的dependencies查看@supermap/vue-iclient-mapboxgl依赖是否安装成功。 3、在mian.js全局引入 import VueiClient from @supermap/vue-iclient-mapboxgl; Vue.u…

新一代目标检测来了:YOLOv10 | 理论概要

点击下方卡片&#xff0c;关注“小白玩转Python”公众号 YOLO的简史 在我们深入探讨YOLOv10之前&#xff0c;让我们回顾一下YOLO的发展历程。YOLO在实时目标检测领域一直是先驱&#xff0c;兼顾速度和准确性。从YOLOv1到YOLOv9&#xff0c;每个版本在架构、优化和数据增强方面都…

Ansible04-Ansible Vars变量详解

目录 写在前面6 Ansible Vars 变量6.1 playbook中的变量6.1.1 playbook中定义变量的格式6.1.2 举例6.1.3 小tip 6.2 共有变量6.2.1 变量文件6.2.1.1 变量文件编写6.2.1.2 playbook编写6.2.1.3 运行测试 6.2.2 根据主机组使用变量6.2.2.1 groups_vars编写6.2.2.2 playbook编写6.…

场外个股期权零门槛开户安全吗?

一般来说场外个股期权是需要5000w门槛验资20个交易日的&#xff0c;但门槛对于大多数散户而言是很难达到的&#xff0c;因此场外个股期权零门槛开户因此产生&#xff0c;个人散户参与场外个股期权可以通到机构通道方直接下单交易&#xff0c;下文为大家揭秘场外个股期权零门槛开…

基于SpringBoot的旅游攻略信息系统的设计与实现

文档介绍 用户群体 针对已经学习过SpringBoot的同学,希望通过一个项目来加强对框架的应用能力,增加项目经验 针对需要完成大学期间的毕设项目的同学,可以通过此文档了解整个系统技术架构,为自己的毕设论文提供指导性建议 文档内容 此文档内容可以让学习此实战项目的同学有一…

2024年5月月终总结

一转眼4月份又过去了&#xff0c;按照年初的承诺&#xff0c;每月照例要写一个月总结&#xff0c;简单回顾下: 1) 英语学习继续进行&#xff1a; 百词斩&#xff1a; 不背单词&#xff1a; 每日英语听力&#xff1a; 2&#xff09;中医学习每天15分钟&#xff0c;没有中断。 …

数据库系统概论(超详解!!!)第十节 过程化SQL

1.Transact-SQL概述 SQL(Structure Query Language的简称&#xff0c;即结构化查询语言) 是被国际标准化组织(ISO)采纳的标准数据库语言&#xff0c;目前所有关系数据库管理系统都以SQL作为核心&#xff0c;在JAVA、VC、VB、Delphi等程序设计语言中也可使用SQL&#xff0c;它是…

AIGC全面揭秘:人工智能内容生成的无限可能!

一、引言 随着人工智能技术的不断发展&#xff0c;AIGC&#xff08;人工智能生成内容&#xff09;技术逐渐受到广泛关注。本文将全面介绍AIGC的相关知识。 二、AIGC简介 AIGC是利用人工智能技术自动生成内容的一种技术。它可以根据给定的输入数据和规则&#xff0c;自动产生符…

详解 Spark 编程之 RDD 依赖关系

一、依赖与血缘关系 依赖&#xff1a;两个相邻 RDD 之间的关系血缘关系&#xff1a;多个连续的 RDD 的依赖由于 RDD 不会保存数据&#xff0c;为了提高容错性&#xff0c;每个 RDD 都会保存自己的血缘关系&#xff0c;一旦某个转换过程出现错误&#xff0c;可以根据血缘关系重新…

开源VS闭源:AI未来的十字路口

人工智能领域的发展日益加速&#xff0c;其中关于模型的开源和闭源策略引起了业界的广泛关注。开源策略指的是将软件的源代码公开&#xff0c;允许任何人自由使用、研究甚至改进&#xff1b;而闭源策略则是指软件的源代码不公开&#xff0c;只有特定的个体或组织有权访问和修改…

【IPFS应用开发】基于IPFS的视频播放器

本系列文章是针对 https://blog.csdn.net/weixin_43668031/article/details/83962959 内容的实现所编写的。开发经历包括思考过程、重构和推翻重来。 基于IPFS的视频播放器 想写一个真正的、基于IPFS的&#xff0c;可以播放IPFS上的视频的程序支持多种数据加载格式同时支持单文…

docker部署Minio对象存储及使用

1.拉取镜像 docker pull minio/minio2.创建数据目录 mkdir -p /data/minio/data3.启动容器 docker run -p 39000:9000 -p 39090:9090 \ --name minio \ -d --restartalways \ -e "MINIO_ACCESS_KEYjyadmin" \ -e "MINIO_SECRET_KEYjyzx2023" \ -v /data…

C++数据结构之:链List

摘要&#xff1a; it人员无论是使用哪种高级语言开发东东&#xff0c;想要更高效有层次的开发程序的话都躲不开三件套&#xff1a;数据结构&#xff0c;算法和设计模式。数据结构是相互之间存在一种或多种特定关系的数据元素的集合&#xff0c;即带“结构”的数据元素的集合&am…

用esp prog烧录ESP32-C3板踩坑

附ESP32C3的GPIO一览&#xff1a; vscode选择Jtag烧录&#xff0c;终端输出esp_usb_jtag: could not find or open device&#xff1a; D:\Devtools\Espressif\tools\openocd-esp32\v0.12.0-esp32-20230921\openocd-esp32\bin\openocd.exe -f board/esp32s3-builtin.cfgOpen O…

xxl-job的使用

介绍 在分布式中&#xff0c;很多微服务可能存在多实例部署的现象&#xff0c;如果在某个具体的微服务中实现一个定时任务&#xff0c;而该微服务存在多个实例的话&#xff0c;那么会导致该定时任务在不同实例中都会进行执行&#xff01;这很容易导致脏数据、数据重复等问题&am…

黑白群晖激活AME(Advanced Media Extention)

黑群晖激活Advanced Media Extensions&#xff08;AME&#xff09;解码HEVC视频和HEIC图片 声明&#xff1a;此教程在正版群晖系统中进行的操作&#xff0c;虽然也能用于非正版系统中AME的安装&#xff0c;但是在非正版系统中安装AME属于破解行为&#xff0c;对系统造成的影响和…

安装vllm的时候卡主:Collecting vllm-nccl-cu12<2.19,>=2.18 (from vllm)

按照vllm的时候卡主&#xff1a; ... Requirement already satisfied: typing-extensions in /home/wangguisen/miniconda3/lib/python3.10/site-packages (from vllm) (4.9.0) Requirement already satisfied: filelock>3.10.4 in /home/wangguisen/miniconda3/lib/python…

落地台灯有什么作用?五款口碑好的落地台灯推荐

落地台灯有什么作用&#xff1f;面对长时间工作、学习已成为当代年轻人的真实写照&#xff0c;据目前不完全统计&#xff0c;60%以上的人群每天用眼时间都已经超过10小时&#xff0c;高强度的的用眼以及不可确定的环境因素都易导致双眼出现干涉、酸痛、红血丝等情况&#xff0c…

SpringBoot 七牛云 OSS 私有模式 获取访问链接

目录 一、问题引出 二、在SpringBoot中获取私有访问路径的操作 一、问题引出 由于七牛云OSS的公有模式存在被盗刷的风险&#xff0c;可能导致服务器额外的费用&#xff0c;于是我选择私有模式进行操作。私有模式的访问路径是一个问题&#xff0c;因为需要对应着token和e这两…