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

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多平台发布

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

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

相关文章

Nginx学习(9)—— 负载均衡模块

文章目录Nginx负载均衡模块负载均衡配置指令钩子初始化配置初始化请求peer.get和peer.free回调函数小结Nginx负载均衡模块 负载均衡模块用于从”upstream”指令定义的后端主机列表中选取一台主机。nginx先使用负载均衡模块找到一台主机,再使用upstream模块实现与这…

HTTP代理端口是什么意思?

HTTP代理端口是指代理服务器所使用的端口。代理服务器是一种介于客户端和服务器之间的计算机系统,它可以拦截客户端发送给服务器的请求,并将其转发到服务器。而HTTP代理端口则是代理服务器上专门用于处理HTTP请求和响应的端口号。默认情况下,…

【Java】JavaSE概要

整理:【狂神说Java】JavaSE阶段回顾总结_哔哩哔哩_bilibili JavaSE概要 简介 JDK:开发者工具包 JRE:运行环境 //Hello.java public class Hello{public static void main(String[] args){System.out.println("Hello,World!");} }…

Redis数据库

一、关系数据库与非关系型数据库概述 1、关系型数据库 关系型数据库是一个结构化的数据库,创建在关系模型(二维表格模型)基础上,一般面向于记录。 SQL 语句(标准数据查询语言)就是一种基于关系型数据库的语…

Spring Boot基础学习之(六):前后端交互实现用户登录界面

本篇博客写的内容,是一个系列,内容都是关于spring boot架构的学习,实现前后端交互,极大的解放双手spring boot学习系列这是关于spring boot的专栏,后期也会不定期进行更新。内容都是有序号的,一步接着一步。…

有人物联口红DTU DR154配置与RS 485传感器数据处理

一、硬件设备 (1)有人物联口红DTU DR154(RS 485版本) 这个DTU非常给力,不用插卡自带esim卡,送8年流量,配置的话通过小程序【联博士】蓝牙配置(手机扫描DTU背后的二维码即可&#x…

界面开发框架Qt新手入门教程 - 项目视图示例介绍

Qt 是目前最先进、最完整的跨平台C开发工具。它不仅完全实现了一次编写,所有平台无差别运行,更提供了几乎所有开发过程中需要用到的工具。如今,Qt已被运用于超过70个行业、数千家企业,支持数百万设备及应用。Qt提供了许多功能&…

java基础问答

57、synchronized 各种加锁场景的作用范围 1.作用于非静态方法,锁住的是对象实例(this),每一个对象实例有一个锁。 public synchronized void method() {} 2.作用于静态方法,锁住的是类的Class对象,因为Cl…

chatgpt+安全机器人控制器+底盘一体化方案设计构想

“你有没有想过,你只需告诉你的家庭助理机器人:‘请加热我的午餐’,它就会自己找到微波炉。这是不是很神奇?” 近日,微软在其官网发表了一篇名为《机器人 ChatGPT:设计原则和模型能力(ChatGPT …

MongoDB 6.0 入门(一)

为什么研究MongDB 6.0 今天和老大聊天 聊到了一个场景的设计,我刚开始推荐了 clickhouse ,然后老大指出 前两天 测试的结果,因为clickhouse 因为 是列式存储,导致我们要查询一行数据,需要200ms(库中有2000…

MyBatis源码分析(二、续)SqlSource创建流程,SQL如何解析?如何将#{id}变成?的

文章目录实例一、SqlSource处理入口二、SqlSource处理逻辑1、XMLScriptBuilder 构造方法2、解析动态sql3、DynamicSqlSource4、RawSqlSource解析sql&#xff08;1&#xff09;parse方法解析sql写在后面实例 此处我们分析的sql&#xff1a; <select id"selectBlog&quo…

redis 十. 线程基础

目录一. redis 基础复习与了解redis6二. redis 线程问题总结一. redis 基础复习与了解redis6 redis官网, redis中文网站, redis命令参考网站此处以redis6.0.8或以上版本为例(查看自己redis版本命令"redis- server -v")按照redis6以上版本测试使用时,redis.conf下需要…

Baklib:企业知识管理帮助文档制作平台

在当今的商业环境中&#xff0c;企业面临着越来越多的挑战。其中之一是如何管理并传递企业内部的知识。企业知识管理的重要性不言而喻&#xff0c;它可以帮助企业更好地组织和利用内部的知识资源&#xff0c;提高生产力和竞争力。而Baklib作为一款企业知识管理&帮助文档制作…

新四级强化辅导

词汇题&#xff08;55道&#xff09; 1. You should carefully think over_____ the manager said at the meeting. A. that B. which C. what D. whose 1.选C,考察宾语从句连接词&#xff0c;主句谓语动词think over后面缺宾语&#xff0c;后面的宾语从句谓语动…

聚焦“专精特新” 共话高质量发展

3月23日&#xff0c;第七届杭州全球企业家论坛暨第三届中国专精特新企业&#xff08;新三板&#xff09;高峰论坛在杭州国博中心成功举办。超过500位专精特新企业代表、专家学者、政府部门代表、科研院所代表共聚一堂&#xff0c;现场座无虚席&#xff0c;气氛热烈。本届峰会以…

SQL Server 2016安装教程

✅作者简介&#xff1a;CSDN内容合伙人、阿里云专家博主、51CTO专家博主、新星计划第三季python赛道Top1&#x1f3c6; &#x1f4c3;个人主页&#xff1a;hacker707的csdn博客 &#x1f525;欢迎订阅系列专栏&#xff1a;SQL Server 2016从入门到精通&#x1f947; &#x1f4…

借东风拉马力,龙头券商东方财富发展持续向好

3月17日&#xff0c;互联网券商东方财富公布2022年年报。具体来看&#xff0c;东方财富2022年实现总营收124.9亿元&#xff0c;同比下滑4.6%&#xff1b;归母净利润85.1亿元&#xff0c;同比下滑0.5%&#xff0c;略低于预期。其中&#xff0c;2022年第四季度总营收同比下滑15.4…

【Python课堂】使用Akshare高效获得A股可转债的重要信息

文章目录前言一、准备二、获取基本信息1.引入库2.读入数据3.获取行情数据4.可转债比价表总结前言 Akshare是一个非常好用的开源A股数据获取模块&#xff0c;它是基于 Python 的财经数据接口库&#xff0c;目的是实现对A股、美股、期货等金融产品的基本面数据、实时和历史行情数…

【干货】交换机管理

实验目的 熟悉掌握交换机的管理&#xff0c;包括&#xff1a;密码恢复&#xff0c;IOS升级和备份&#xff0c;IOS恢复 掌握实际工程中控制线的操作 交换机管理&#xff08;一&#xff09; 交换机密码恢复&#xff08;以下实验都需要在真机上操作&#xff09; 控制线和电脑的连…

oracle语句查询时间范围

oracle语句查询时间范围 参考网址 &#xff1a; https://blog.csdn.net/weixin_36436373/article/details/116541220?ops_request_misc%257B%2522request%255Fid%2522%253A%2522167930069316800188562500%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%25…