人工电场算法(AEFA)(含MATLAB代码)

news2025/2/24 3:45:28

先做一个声明:文章是由我的个人公众号中的推送直接复制粘贴而来,因此对智能优化算法感兴趣的朋友,可关注我的个人公众号:启发式算法讨论。我会不定期在公众号里分享不同的智能优化算法,经典的,或者是近几年提出的新型智能优化算法,并附MATLAB代码。

 

人工电场算法(Artificial Electric Field Algorithm, AEFA)是2019年提出的一种元启发式优化算法。作者创新地将电荷的概念扩展到种群的适应度值。AEFA是一种优秀的非线性优化算法,其原始参考文献如下:

“Yadav A. AEFA: Artificial electric field algorithm for global optimization[J]. Swarm and Evolutionary Computation, 2019, 48: 93-108.”

01
灵感来源

AEFA受库仑定理的启发,通过模拟带电粒子在静电场的运动,将其演化成随机搜索最优解的过程。电荷在静电力的作用下相互吸引或排斥,使电荷能在搜索空间中移动。在AEFA中,作者仅考虑了电荷的吸引力,而忽略电荷的排斥力,因而电荷量大的带电粒子能吸引所有其他电荷量较低的粒子向其靠近。

在搜索空间中,每一个电荷代表一个可行解,其优劣由它们的电荷量来衡量。电荷的电荷量越大,表明该电荷(可行解)越接近理论最优解。如图1所示,电荷面积的大小表示其电荷量的大小。电荷Q1分别受到其他三个电荷的吸引力。根据定律,形成一个合力F和该方向的加速度。由于电荷Q4的电荷量最大,其吸引力也越大,因此电荷Q1合力F的方向更接近Q1与Q4之间的中心联系。

图1 作用在带电粒子上的合力

因此,AEFA通过模拟电荷间的相互作用力,当搜索空间存在电荷量大的电荷时,其他电荷都向电荷量大的方向靠近,使算法收敛到最优解。

02
算法设计

与往期推送一样,目前我还不会在公众号里编辑数学公式。因此,这部分内容在Word文档里先写好,然后做成图片,最后导入。


 

03
计算流程

人工电场算法实现的基本步骤如下:

Step1:在搜索空间中,随机初始电荷种群;

Step2:随机初始化电荷的速度和位置,并计算每个电荷的适应度值;

Step3:计算电荷的库仑常数,全局最优值和最差值;

Step4:计算电荷的库伦力和加速度,更新电荷的速度和位置;

Step5:判断是否满足停止条件,如果满足则输出最优值,否则重复步骤2-5。

04
实验仿真

对AEFA的性能进行简单的测试。将AEFA用于函数寻优,其MATLAB程序严格按照原始参考文献进行编写。此外,种群规模为50,最大迭代次数为1000,基准函数采用的是CEC2005测试集。

这里以CEC2005测试集中的单峰函数Sphere (f1)和多峰函数Ackley (f10)为例,展示AEFA在30维环境下的收敛效果,如图2所示,这里就不再做进一步的分析了。

(a) f1

(b) f10

图2 AEFA的收敛曲线

05
MATLAB代码

AEFA的MATLAB代码可通过复制下方链接进入获得。代码严格按照原始参考文献编写,附有详细注释。

(关注公众号:启发式算法讨论)

关于其他智能优化算法的MATLAB代码,可访问我的个人主页查看:

 (关注公众号:启发式算法讨论)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

8种Python异常检测算法总结

异常检测是通过数据挖掘方法发现与数据集分布不一致的异常数据,也被称为离群点、异常值检测等等。本文为大家整理了8个常见的Python异常检测算法,希望对大家有所帮助 一、异常检测简介 异常检测是通过数据挖掘方法发现与数据集分布不一致的异常数据&…

Centos7系统部署搭建Kafka集群

kafka集群搭建 一、环境准备1.1 服务器准备1.2 版本信息1.3 启动kafka环境1.3.1 获取kafka1.3.2 启动kafka1.3.2.1 kafka && ZooKeeper1.3.2.2 kafak && KRaft 1.4 创建主题1.5 事件写入主题1.6 事件读取1.7 停止kafka环境 二、搭建 kafka 集群2.1 ZooKeeper 集…

chatgpt赋能python:Python如何读取照片

Python如何读取照片 介绍 Python是一种高级编程语言,其简单易用、可扩展性强等特点,使其在数据分析、机器学习等领域得到了广泛应用。而在图像处理领域,Python同样也有着较为优异的表现。本文将介绍Python读取照片的方法,并探讨…

普通2本,去过字节外包,到现在年薪30W+的测试开发,我的2年转行心酸经历...

个人简介 我是一个普通二本大学机械专业毕业,17年毕业,19年转行,目前做IT行业的软件测试已经有3年多,职位是高级测试工程师,坐标上海… 我想现在我也有一点资格谈论关于转行这个话题;希望你在决定转行之前…

Linux下面安装jdk和tomcat

1、jdk的安装 1、上传jdk到 opt目录下面 2、解压jdk tar -xvf jdk-8u281-linux-x64.tar.gz3、一般把jdk放到/usr/local (软件的安装都是放到usr下面) mv jdk1.8.0_281 /usr/local/4、配置环境变量 找到 /etc/profile 进行编辑修改 export JAVA_HOM…

速下载 | 200页幻灯片图解新版《商用密码管理条例》

国家高度重视商用密码工作。2023年4月14日,国务院常务会议审议通过了《商用密码条例》(以下简称《条例》)修订草案。5月24日中华人民共和国中央人民政府网站正式公开修订后的正式稿全文。本次《条例》在密码法框架下进行了全面修订&#xff0…

面试“我“又踩坑了,高频软件测试面试题,项目经验板块(付答案)...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 问题1&#xff1a…

(学习日记)2023.06.07

写在前面: 由于时间的不足与学习的碎片化,写博客变得有些奢侈。 但是对于记录学习(忘了以后能快速复习)的渴望一天天变得强烈。 既然如此 不如以天为单位,以时间为顺序,仅仅将博客当做一个知识学习的目录&a…

基于ChatGPT使用报告 (针对嵌入式领域测试及心得)

目录 1、基于驱动的日志解析提问 错误日志分析【100%】 报错日志分析【90%】 错误日志分析【60%】 2、基于安卓设备调试提问 adb调试i2c【效率50%】 adb调试gpio【50%】 3、基于高通代码的提问 基于高通代码含义的解析【效率80%】 基于高通新增TP驱动提问【效率50%】…

【区块链 | L2】详解Layer 2扩展解决方案Optimism(OP)是如何工作的?

Optimism是一个快速、稳定、可扩展和低成本的以太坊Layer 2区块链。这意味着它在以太坊区块链(Layer1)之上运行,以帮助缓解拥塞,进而降低交易成本和处理时间。作为现有以太坊软件的最小扩展,Optimism的EVM-equivalent 架构可以扩展以太坊应用程序。如果它能在以太坊上工作…

移动端的加解密

目录 引言 算法分类 密钥介绍 模式介绍 算法介绍 小结 写在最后 引言 今天给大家分享一篇有关移动端加解密的文章。随着移动设备的普及,加密技术在保护用户数据方面变得越来越重要。 本文将为您介绍Android加解密算法的分类、优缺点特性及应用,…

前端Vue实现国际化

国际化实现原理 假设我们有一个变量 msg,但是这个 msg 有两个值,一个是 hello,一个是 你好,现在需要我们根据需要切换 msg 的值,如何做呢? // 定义 msg 值的数据源 const msgList {en: {msg: hello},zh:…

智能批量复制文件,轻松实现文件批量复制并实现编号

您有没有遇到过需要将相同类型的多个文件复制到不同文件夹的情况?这个过程可能会非常耗时,尤其当文件的数量很大且需要进行重复编号时,更是一项非常烦琐的工作。细有一个快手的方法可以实现,如下: 首先,第…

基于spring boot框架访问zookeeper

本地部署zookeeper: 进入zookeeper-3.3.6/conf目录下,将zoo_sample.cfg文件改名为zoo.cfg,再用文本编辑器打开这个文件,修改如下红框位置的内容,改成本地一个可以访问的已有目录: 打开命令行窗口&#xff…

高考开始了,计算机专业未来还会火吗?

2023年高考,今天开始第一场考试。而走出考场,考生们也将面临选报专业的难题。高考人数逐年攀升,录取率却不断下降。 过去10年,计算机专业可谓红透半边天,早早进入这个行业的,基本都吃到了很高的红利。然而…

动态规划母题:01背包问题

1. 前置知识 动态规划与图论,前缀和与差分等有模板的算法不同,动态规划更考察思维能力,而不是运用模板的能力。 个人认为 Acwing 关于动态规划的讲解比较容易理解。我会根据 Acwing 的动态规划解题思路来讲解题目。 虽说动态规划没有固定的模…

基于Locust实现MQTT协议服务的压测脚本

一、背景简介 业务背景大概介绍一下,就是按照国标规定,车辆需要上传一些指定的数据到ZF的指定平台,同时车辆也会把数据传到企业云端服务上,于是乎就产生了一些性能需求。 目前我们只是先简单的进行了一个性能场景的测试&#xf…

PMP考试到底难在哪里?

那么,PMP考试到底难在哪? 01涉及面广 目前PMP考试内容大部分来源于教材《PMBOK指南》和《敏捷实践指南》。 作为考试出题的知识基础《PMBOK指南》,总共有700多页,所覆盖的知识面很广。 另一方面,根据最新版考纲&am…

使用大型语言模(LLM)构建系统(二):内容审核、预防Prompt注入

今天我学习了DeepLearning.AI的 Building Systems with LLM 的在线课程,我想和大家一起分享一下该门课程的一些主要内容。 下面是我们访问大型语言模(LLM)的主要代码: import openai#您的openai的api key openai.api_key YOUR-OPENAI-API-KEY def get_…

媒体邀约分步详解

传媒如春雨,润物细无声,大家好,我是51媒体网 胡老师。 邀请媒体参加活动的有哪些步骤: 活动落地执行:在整个活动方案中,邀请媒体来报道活动,往往会安排在整个活动的中期去做,因此在…