Matlab群体智能优化算法之巨型睡莲优化算法(VAO)

news2024/11/27 0:51:38

Matlab群体智能优化算法之巨型睡莲优化算法(VAO)

摘要:介绍一种新型智能优化算法,巨型睡莲优化算法。其应用于24个基准测试函数,并与其他10个著名算法进行了比较。提出的算法在10个优化问题上进行了测试:最小生成树、枢纽位置分配、二次分配、聚类、特征选择、回归、经济调度、并行机器调度、颜色量化和图像分割,并与传统算法和生物启发算法进行了比较。总体而言,该算法在所有任务中的表现都令人满意。参考文献:Mousavi S M H. Victoria Amazonica Optimization (VAO): An Algorithm Inspired by the Giant Water Lily Plant[J]. arXiv preprint arXiv:2303.08070, 2023.

注:

  • 仅记录学习过程,如有侵权,联系删除
  • 本文所用墨滴模板为slandarer创作

文章目录

    • 灵感来源
    • VAO算法
    • 伪代码
    • 评价和结果
    • 写在最后

灵感来源

维多利亚亚马逊植物,通常呗称为巨型睡莲,拥有世界上最大的浮动球形叶片,最大叶片直径为3米。它通过其刺的力量传播叶子,并在下面形成一个大阴影,杀死任何需要阳光的植物。这些水霸用他们强大的刺迫使每一个浮出水面,并增加他们的力量,从水面攫取更多空间。当它们蔓延到整个池塘或盆地时,最早胜场的叶子有更多的生长空间,每片叶子都获得独特的大小。它的花是变性的,当它们开花时,甲虫负责授粉过程,被雌花的气味吸引。进入花朵后,甲虫身上沾满了花粉,并将其转移到另一朵花上受精。甲虫离开后,花变成了雄花,颜色从白色变成粉红色。雄花死亡并沉入水中,释放出它的种子,帮助创造新的一代。

在作者提出的算法中,介绍了这种壮丽植物的数学生命周期,每片叶子和花朵都被当作一个实体。

巨型睡莲的生命周期

左:满池塘的睡莲  右:直径在10-100的

第二幅图,直径写10-100形象的比喻一下传播力,并不是直径100米。

VAO算法

VOA算法关注的是初始种群(叶子和花)的分布以及它们在表面上响应的传播力。该算法主要是一种基于蜂群局部搜索的元启发式算法,因此唯一的缺点是有可能陷入局部最优。

下面介绍一下算法中涉及的各个字母的含义

  • $\phi $ :直径
  • λ \lambda λ :优化任务,本质上就是让直径越来越大。睡莲通过用上升的力量和脊柱强行置换彼此所能获得的空间大小,从而增大其直径。这种竞争被成为内部竞争,用 λ \lambda λ表示。
  • $\omega :睡莲生长存在三个常见的困难。花内甲虫的死亡,甲虫不受粉或者授粉不当,以及温度降低。所有这些因素都有可能对这个过程不利,我们在这里把它们都成为 :睡莲生长存在三个常见的困难。花内甲虫的死亡,甲虫不受粉或者授粉不当,以及温度降低。所有这些因素都有可能对这个过程不利,我们在这里把它们都成为 :睡莲生长存在三个常见的困难。花内甲虫的死亡,甲虫不受粉或者授粉不当,以及温度降低。所有这些因素都有可能对这个过程不利,我们在这里把它们都成为\omega 。显然, 。显然, 。显然,\omega $的值越大,表明植物越弱。
  • ψ \psi ψ :害虫,如睡莲蚜虫,也可以通过吃植物的叶子和在叶子上制造洞来伤害植物。本文用 ψ \psi ψ来代表这种威胁值。 ψ \psi ψ的值越低,对植物生长和扩张越有利。
  • μ \mu μ:最后,当池塘里的甲虫用另一种睡莲给花授粉时,就会发生突变。这种现象被成为“杂交突变”,用 μ \mu μ表示。这种突变可以在正反两个方向上发生,每一代的比率为0.2%。
  • α \alpha α:最大和最强的叶子时最好的,用 α \alpha α表示。

伪代码

V A O = ∑ i = 1 n ∑ j = 1 n ( x i j [ ∅ i j , λ i j ] + ψ + ω ) ∗ ( μ ) V A O=\sum_{i=1}^n \sum_{j=1}^n(x i j[\varnothing i j, \lambda \mathrm{ij}]+\psi+\omega) *(\mu) VAO=i=1nj=1n(xij[ij,λij]+ψ+ω)(μ)

在上述公式中,可以明确看出,直径,内部竞争,困难,威胁,突变五个参数的影响


产生种群,定义每个个体的直径,定义内部竞争,定义困难和威胁,二者随机范围都在[0.1,0.3],变异概率是一个0.2。
终止循环的条件是迭代次数。在每一次的迭代过程中,首先比较每个睡莲的直径或者内部竞争,一直更新最大的;其次,变异作用一下;再次;困难和威胁作用;从次,计算适应度值;最后排序并且找到最好的。

VAO流程图

  • 加粗字体:MATLAB
  • 斜体:MATLAB

评价和结果

测试函数三维图

本文不在此列出详细绘制这种三维图,网上这种代码很多,大家也可以参考原文,然后自己写代码。
可以在下述链接中找到这些函数的代码。
http://www.sfu.ca/~ssurjano/index.html

在作者提供的源代码中,和现在所看到的公式有所不一样。在位置更新上,所用公式并不是文中提到的公式。除此之外,他还有一个合并和排序更新,这个类似于反向学习的思路,假如原来有20个睡莲,在经过公式更新后,就会变成40个,然后对这40个进行排序,取前20个睡莲。他还有一个突变系数阻尼比,这个其实可以理解,不能一直在突变,突变的概率会越来越小的。这个系数给的是0.98,也就是0.2*0.98,依次类推。

在此给出更新公式:
KaTeX parse error: Expected 'EOF', got '_' at position 11: \text{new_̲x}=x_i+\psi * e…

仔细看看这个公式,核心部分在第二部分和第三部分,第二部分包含了困难威胁内部竞争三个参数。
其中, Δ = 0.05 ∗ ( V a r M a x − V a r M i n ) \Delta = 0.05 * (VarMax-VarMin) Δ=0.05(VarMaxVarMin);
μ = μ ∗ μ d a m p \mu = \mu*\mu_{damp} μ=μμdamp;
μ d a m p = 0.98 \mu_{damp} = 0.98 μdamp=0.98

基本测试函数的测试(此处只给一例,Ackley函数)

Ackley

Ackley函数,给了一个睡莲的分布图,和原文中的图9应该是对应的。

睡莲分布图

没看明白这个的意义。不如画一个三维的动态图,去看睡莲的走向。这个图,作者应该是想体现能找到最优的那个点吧。不是很理解。

鸢尾花分类测试

作者给出了十个测试问题的代码,感兴趣的可以自己试试。

再次提醒大家,所有的代码都是作者开源的。不要购买任何这种别人提出来的什么算法代码,这代码在mathworks上都是免费下载的。或者去github上下载。

十个测试问题

在这给出枢纽位置分配的测试结果。30个位置选5个枢纽

VAO

PSO

ICA

HS

FA

DE

最后画一个三线表,比较一下目标函数和运行时间。
你用什么算法,什么算法就能达到最好。上面的图是我在matlab2022a运行的。可能不同版本也会有差距。原文中,作者就在不同性能的电脑上进行测试了。

写在最后

到此结束,感兴趣的去mathworks上下载源代码,原文。
mathworks用QQ邮箱可以免费注册,无需科学上网。

Seyed Muhammad Hossein Mousavi (2023). Victoria Amazonica Optimization VAO Algorithm (https://github.com/SeyedMuhammadHosseinMousavi/Victoria-Amazonica-Optimization-VAO-Algorithm), GitHub. 检索来源 2023/3/29.

本文由mdnice多平台发布

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

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

相关文章

技术复盘(4)--docker

技术复盘--docker资料地址环境初始docker安装dockerdocker常用命令-都需要先启动dockerdocker容器打包为镜像docker坑docker卸载docker数据卷dockerFile构建过程搭建私有仓库--非图形化界面搭建私有仓库--图形化界面docker理论知识资料地址 docker官网:https://www…

一种供水系统物联网监测系统

1.1供水系统 1.1.1监测范围选择依据 (1)管网老化区域管网 管网建设年代久远,通常管网发生破损问题较大,根据管网本身属性和历史发生事件的统计分析,结合数理统计,优先选择管网老化区域的管段所在区域进行…

基于imx8m plus开发板全体系开发教程4:Linux系统开发

前言: i.MX8M Plus 开发板是一款拥有 4 个 Cortex-A53 核心,运行频率 1.8GHz;1 个 Cortex-M7 核心,运行频率 800MHz;此外还集成了一个 2.3 TOPS 的 NPU,大大加速机器学习推理。 全文所使用的开发平台均为与NXP官方合作的FS-IMX8…

深入浅出Kafka

这个主题 武哥漫谈IT ,作者骆俊武 讲得更好 一、什么是Kafka? 首先我们得去官网看看是怎么介绍Kafka的: https://kafka.apache.org/intro Apache Kafka is an open-source distributed event streaming platform. 翻译成中文就是&#xff1…

Git分布式版本控制软件

1.什么是git git是分布式版本控制软件。 软件:git是从别的地方下载下来安装到我们电脑上的软件。 版本控制:跟毕业论文一样,先写好版本1然后交给导师,导师说不行,然后再改为版本2,然后循环下去&#xff0…

Su+ELK实现网络监测(2)——ELK安装与配置

ELK安装配置文档一、环境准备基础配置二、Jdk1.8环境部署1、安装jdk2、编辑环境变量三、ElasticSearch部署1、安装2、修改文件所有者3、修改配置文件4、启动四、elasticsearch-head部署(可不安装,跳过)1、nodejs安装2、head插件安装3、修改he…

智慧工厂可视化合集,推动行业数字化转型

图扑软件基于 HTML5(Canvas/WebGL/WebVR)标准的 Web 技术,满足了工业物联网跨平台云端化部署实施的需求,以低代码的形式自由构建三维数字孪生、大屏可视化、工业组态等等。从 SDK 组件库,到 2D 和 3D 编辑,…

软化水处理知识总结

软化水除了广泛应用在饮用、浴室、厨房、洗衣等生活用水,和酒店、学校、写字楼、公寓、餐饮等商业用水的处理,还可用于锅炉、交换器、蒸发冷凝器、空调、直燃机等系统的补给水的软化。 那什么是软化水,和除盐水、纯水有什么区别?…

大学物理第四单元:刚体

1.刚体的定轴转动 思考:改变转动状态的因素 答:改变刚体运动状态的的因素有力的大小及力臂有关,力与力臂的乘积为力矩。 力臂:力到转轴的距离 简而言之,改变刚体运动状态的因素是力矩,与力和力臂有关。 …

谷粒学院项目笔记第一部分

1.环境搭建&#xff0c;准备工作 &#xff08;1&#xff09;创建数据库 &#xff08;2&#xff09;创建项目完整结构 &#xff08;3&#xff09;父工程springboot,子工程maven &#xff08;4&#xff09;父工程pom设置版本&#xff0c;添加pom #版本 <version>2.2.1.R…

11个AI写作软件工具!知名4A广告公司蓝标宣布停止文案外包!

AI的这场熊熊大火&#xff0c;终于还是烧到了广告界&#xff01; 2023年4月12日&#xff0c;是一个再普通不过的日子&#xff0c;但这一天会被很多人记住。不是因为席卷整个华北区的漫天黄沙&#xff0c;而是因为一封代表着AI势不可挡的决心和象征着一个行业巨变拉开序幕的邮件…

学会 制作极简搜索浏览器 —— 并将 ChatGPT 接入浏览器

前期回顾 Vue3 Ts Vite pnpm 项目中集成 —— eslint 、prettier、stylelint、husky、commitizen_0.活在风浪里的博客-CSDN博客搭建VIte Ts Vue3项目并集成eslint 、prettier、stylelint、huskyhttps://blog.csdn.net/m0_57904695/article/details/129950163?spm1001.2…

采用D-K迭代设计不确定对象的鲁棒控制器(μ-controllers)

采用D-K迭代设计不确定对象的鲁棒控制器&#xff0c;将H∞综合(K步)与μ分析(D步)相结合&#xff0c;优化闭环鲁棒性能。 Step 1&#xff1a;利用H∞综合方法找到使标称系统闭环增益最小的控制器。 Step 2&#xff1a;进行鲁棒性分析&#xff0c;以估计闭环系统的鲁棒H∞性能。…

手把手kubernetes本地化部署(含疑难杂症排查解析)

文章目录一、什么是Kubernetes&#xff1f;二、Kubernetes的基本概念PodDeploymentServiceNamespaceConfigMapSecret三、Kuberntes单机本地部署3.1、安装minikube命令行工具3.2、安装docker3.3、启动minikube3.4、使用Dashboard3.5、异常问题解决3.5.1、提示Docker失败3.5.2、d…

迅为瑞芯微RK3568国产化实时操作系统,大容量内存

基于瑞芯微四核 64 位 Cortex-A55 ARMv8 架构处理器 RK3568&#xff0c;主频可达 2.0GHz&#xff0c;CPU 采用 22nm 制程工艺&#xff0c;动态调频调压技术&#xff0c;进一步放大能效比优势。 大容量内存 最大容量支持 8GB 内存&#xff0c;能够有效发挥处理器性能&#xff0…

服装标签二维码,要如何制作?含品牌案例

睡衣上的二维码标签、大衣的洗护说明二维码、衣服上的防伪二维码… 服装行业应用二维码&#xff0c;已经非常常见了。 服装行业中的二维码&#xff0c;不仅帮助品牌更好地展示产品信息、传播品牌影响力&#xff0c;更重要的是&#xff0c;通过这些服装二维码&#xff0c;直接优…

Attention is all your need——Transformer论文

摘要 此序列转录模型仅仅依赖于注意力机制&#xff0c;而不使用循环或者是卷积&#xff0c;将循环全部换成了multi-headed self- attention 介绍 RNN的特点、并行程度低。 Attention在RNN上的应用。 引入注意力机制&#xff0c;提高并行度。 背景 使用卷积对长的序列难以…

数据结构——排序

排序一、排序的概念二、直接插入排序希尔排序三、直接选择排序四、堆排序1、堆的概念2、堆排序五、冒泡排序六、快速排序七、归并排序八、基数排序排序算法的时间复杂度和空间复杂度一、排序的概念 课本概念&#xff08;P165&#xff09; (1&#xff09;内部排序。内部排序指…

一图看懂 pyexcel_io 模块:提供统一 API用来读写操作 Excel 文件的库, 资料整理+笔记(大全)

本文由 大侠(AhcaoZhu)原创&#xff0c;转载请声明。 链接: https://blog.csdn.net/Ahcao2008 一图看懂 pyexcel_io 模块&#xff1a;提供统一 API用来读写操作 Excel 文件的库, 资料整理笔记&#xff08;大全&#xff09;摘要模块图类关系图模块全展开【pyexcel_io】统计常量s…

【LeetCode】剑指 Offer 59. 队列的最大值 p288 -- Java Version

1. 题目介绍&#xff08;59. 队列的最大值&#xff09; 面试题59&#xff1a;队列的最大值&#xff0c; 一共分为两小题&#xff1a; 题目一&#xff1a;滑动窗口的最大值题目二&#xff1a;队列的最大值 2. 题目1&#xff1a;滑动窗口的最大值 题目链接&#xff1a;https://l…