【智能算法】人工电场算法(AEFA)原理及实现

在这里插入图片描述

目录

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


1.背景

2019年,A Yadav等人受库伦定律和运动定律启发,提出了人工电场算法(Artificial Electric Field Algorithm,AEFA)。

2.算法原理

2.1算法思想

AEFA中每个个体是一个带电的粒子,每个粒子的位置代表问题的一个解,这些带电的粒子在它们之间的电场力的引导下,逐步的向种群中最优的位置靠近。电量较小的粒子在电量较大的粒子的引力下,向带电量较大的粒子移动。在引力的不断作用下,整个种群逐渐向电量较大的个体方向逼近,最终搜索到问题的最优解,整个过程遵循牛顿第二定律。
在这里插入图片描述

2.2算法过程

库伦定律规定两个带电粒子间的电场力与粒子所带的电量成正比,与粒子间的距离成反比。假如两个粒子的带电量分别为 Q1和Q2 ,引力常数用K 来表示,粒子间的欧氏距离用 D 来表示,则粒子间的电场力F可用公式表示为:
F = K Q 1 Q 2 D 2 (1) F=K\frac{Q_{1}Q_{2}}{D^{2}}\tag{1} F=KD2Q1Q2(1)
在第 t次迭代,第 i个粒子和第 j个粒子间的作用力可表示为:
F i j d ( t ) = K ( t ) Q i ( t ) × Q j ( t ) R i j ( t ) + ϵ ( p j d ( t ) − x i d ( t ) ) (2) F_{ij}^{d}(t)=K(t)\frac{Q_{i}(t)\times Q_{j}(t)}{R_{ij}(t)+\epsilon}\Big(p_{j}^{d}(t)-x_{i}^{d}(t)\Big)\tag{2} Fijd(t)=K(t)Rij(t)+ϵQi(t)×Qj(t)(pjd(t)xid(t))(2)
其中,Rij表示粒子i与粒子j的欧式距离。K(t)是第t代的库伦常数:
K ( t ) = K 0 exp ⁡ ( − α i t m a x i t ) (3) K(t)=K_0\exp\biggl(-\alpha\frac{it}{maxit}\biggr)\tag{3} K(t)=K0exp(αmaxitit)(3)
第i个个体所具有的电量:
q i ( t ) = exp ⁡ ( f i t p i ( t ) − w o r s t ( t ) b e s t ( t ) − w o r s t ( t ) ) Q i ( t ) = q i ( t ) ∑ i = 1 N q i ( t ) (4) q_{i}(t)=\exp\biggl(\frac{fit_{pi}(t)-worst(t)}{best(t)-worst(t)}\biggr)\\Q_{i}(t)=\frac{q_{i}(t)}{\sum_{i=1}^{N}q_{i}(t)}\tag{4} qi(t)=exp(best(t)worst(t)fitpi(t)worst(t))Qi(t)=i=1Nqi(t)qi(t)(4)
粒子i在第d维所受到的合力以及所具有的加速度:
F i d ( t ) = ∑ j = 1 , j = i N r a n d ∗ F i j d ( t ) a i d ( t ) = F i d ( t ) Q i ( t ) (5) F_{i}^{d}(t)=\sum_{j=1,j=i}^{N}rand*F_{ij}^{d}(t)\\a_{i}^{d}(t)=\frac{F_{i}^{d}(t)}{Q_{i}(t)}\tag{5} Fid(t)=j=1,j=iNrandFijd(t)aid(t)=Qi(t)Fid(t)(5)
速度和位置更新为:
V i d ( t + 1 ) = r a n d × V i d ( t ) + a i d ( t ) X i d ( t + 1 ) = X i d ( t ) + V i d ( t + 1 ) (6) V_{i}^{d}\big(t+1\big)=rand\times V_{i}^{d}\big(t\big)+a_{i}^{d}\big(t\big)\\X_{i}^{d}\big(t+1\big)=X_{i}^{d}\big(t\big)+V_{i}^{d}\big(t+1\big)\tag{6} Vid(t+1)=rand×Vid(t)+aid(t)Xid(t+1)=Xid(t)+Vid(t+1)(6)

伪代码

在这里插入图片描述

3.结果展示

在这里插入图片描述

4.参考文献

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

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

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

相关文章

【Spring Cloud】服务容错中间件Sentinel入门

文章目录 什么是 SentinelSentinel 具有以下特征:Sentinel分为两个部分: 安装 Sentinel 控制台下载jar包,解压到文件夹启动控制台访问了解控制台的使用原理 微服务集成 Sentinel添加依赖增加配置测试用例编写启动程序 实现接口限流总结 欢迎来到阿Q社区 …

HTML转EXE工具(HTML App Build)永久免费版:24.4.9.0

最新版本的HTML2EXE即将发布了。自从去年发布了HTML2EXE之后,我就正式上班了,一直忙于工作,实在没有时间更新(上班时间不能做),很多网友下载使用,反应很好,提出了一些改进的建议&…

感知定位篇之机器人感知定位元件概述(上)

欢迎关注微信公众号 “四足机器人研习社”,本公众号的文章和资料和四足机器人相关,包括行业的经典教材、行业资料手册,同时会涉及到职业知识学习及思考、行业发展、学习方法等一些方面的文章。 目录 |0.概述 |1.常用传感元件 1.1视觉传感器…

750万人受影响,印度电子巨头boAt重大数据泄露事件

近日,印度消费电子巨头boAt遭遇重大数据泄露事件,超过750万客户的个人数据遭到泄露,泄露的个人数据包括姓名、地址、联系电话、电子邮件 ID 和客户 ID 以及其他敏感信息,目前这些泄露数据正在暗网上流传。 boAt Lifestyle数据库被…

【数据结构】考研真题攻克与重点知识点剖析 - 第 8 篇:排序

前言 本文基础知识部分来自于b站:分享笔记的好人儿的思维导图与王道考研课程,感谢大佬的开源精神,习题来自老师划的重点以及考研真题。此前我尝试了完全使用Python或是结合大语言模型对考研真题进行数据清洗与可视化分析,本人技术…

Android 包命名规范

Android包目录的命名规范会直接影响到整个APP攻城后期的开发效率和拓展性。 常用两种命名方式:PBL(package by layer ) 和PBF(pakcage by Feature) layer 英/ˈleɪə(r)/ 翻译:层 feature 英/ˈfiːtʃə(r)/ 翻译:特色 1 Pac…

【吊打面试官系列】Java高并发篇 - 在 Java 中 Executor 和 Executors 的区别?

大家好,我是锋哥。今天分享关于 【在 Java 中 Executor 和 Executors 的区别?】面试题,希望对大家有帮助; 在 Java 中 Executor 和 Executors 的区别? Executors 工具类的不同方法按照我们的需求创建了不同的线程池&am…

探索未来的旋律:AI生成音乐的魔法(附GPT镜像站大全)

在数字化时代的浪潮中,人工智能(AI)已经触及了我们生活的方方面面,从自动驾驶汽车到智能家居系统,再到高度个性化的推荐算法。然而,AI的魔法并不止步于此。近年来,AI在艺术和创造性领域的应用也…

#Arduino(代码记录)

设备:esp32c3 IDE:Arduino 实验: (1)获取网络时间,b站粉丝数和b站关注数,心知天气 #include "HTTPClient.h" #include "WiFi.h" #include "ArduinoJson.h" char *ssid &qu…

【保姆级讲解PyCharm安装教程】

🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…

硬盘删除的文件怎么恢复?恢复方法大公开!

“硬盘删除的文件还有机会恢复吗?刚刚清理电脑垃圾的时候不小心删除了很多重要的文件,有什么方法可以有效恢复这些文件吗?” 在数据时代,我们会将很多重要的文件都保存在电脑上,如果我们清理了电脑上的文件&#xff0c…

基于分布式鲁棒性的多微网电氢混合储能容量优化配置——1

Optimal configuration of multi microgrid electric hydrogen hybrid energy storage capacity based on distributed robustness A B S T R A C T 储能与微电网相结合是解决分布式风能、太阳能资源不确定性、降低其对大电网安全稳定影响的重要技术路径。随着分布式风电和太阳…

Git分布式版本控制系统——Git常用命令(一)

一、获取Git仓库--在本地初始化仓库 执行步骤如下: 1.在任意目录下创建一个空目录(例如GitRepos)作为我们的本地仓库 2.进入这个目录中,点击右键打开Git bash窗口 3.执行命令git init 如果在当前目录中看到.git文件夹&#x…

node后端上传文件到本地指定文件夹

实现 第一步,引入依赖 const fs require(fs) const multer require(multer) 第二步,先设置一个上传守卫,用于初步拦截异常请求 /*** 上传守卫* param req* param res* param next*/ function uploadFile (req, res, next) {// dest 值…

Python异常处理try与except跳过报错使得程序继续运行的方法

本文介绍基于Python语言的异常处理模块try与except,对代码中出现的报错加以跳过,从而使得程序继续运行的方法。 在Python语言中,try语句块用于包含可能引发异常的代码,而except语句块则用于定义在出现异常时要执行的代码。其基本结…

Echarts多曲线数值与Y周刻度不符合、Echarts tooltip文字设置左对齐、Echarts折线图背景区间色自定义

Echarts多曲线数值与Y周刻度不符合: 问题描述: 在展示多曲线图表的时候,发现图表曲线数值与Y轴刻度对应不上 问题解决方式: 查看下Echarts的配置option中的seriess属性(多曲线的时候这个属性应该是一个数组),然后查看数组中的每个…

信用卡客户特征分析

分析思路 信用卡服务提供了一种方便的贷款方式,允许用户事先消费,之后再支付费用。对银行而言,这种服务既有较高的利润潜力,同时也伴随着用户可能不履行还款义务的风险。本⽂是基于2005年台湾信⽤卡客户数据,探究信⽤…

内含教程丨最高可降低 16 倍成本,ComfyUI Stable Cascade 教程已上线,一键部署!

2024 年 2 月,OpenAI 又一次站在了镁光灯下,Sora 横空出世并引发热烈讨论,「文生视频」的热潮被那段 60 秒的展示视频再度推高,也使得很多人忽视了其图片生成能力。 更加值得一提的是,其实就在 Sora 发布前不久&#…

vue3 +Taro 页面实现scroll-view 分页功能

需求 现在分页列表 后端只给你一个分页的数据列表 没有总页数 没有当前的分页 页数 只有这么一个list 、、、 如何去分页 我这使用的是scroll-view 组件 滑动到底部的事件 根据你当前设定的每页的数据数量和后端返回给你的数据列表数量 当某一次分页 两个数量不相等了以后 就…

SpringBoot第一个hello world项目

文章目录 前言一、Spring Boot是什么?二、使用步骤1. 创建项目2.书写测试 总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了…