【智能算法】鹦鹉优化算法(WO)原理及实现

ops/2024/9/25 15:21:12/

在这里插入图片描述

目录


1.背景

2024年,J Lian等人受到鹦鹉学习行为启发,提出了鹦鹉优化算法(Parrot Optimizer, PO)。

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

2.算法原理

2.1算法思想

PO灵感来自于在驯养的鹦鹉中观察到的觅食、停留、交流和对陌生人的恐惧行为。

在这里插入图片描述

2.2算法过程

觅食行为

在觅食行为中,它们主要通过观察食物的位置或考虑主人的位置来估计食物的大致位置,然后向各自的位置飞去:
X i t + 1 = ( X i t − X b e s t ) ⋅ L e v y ( d i m ) + r a n d ( 0 , 1 ) ⋅ ( 1 − t M a x i t e r ) 2 t M a x i t e r ⋅ X m e a n t (1) X_i^{t+1}=(X_i^t-X_{best})\cdot Levy(dim)+rand(0,1)\cdot(1-\frac t{Max_{iter}})^{\frac{2t}{Max_{iter}}}\cdot X_{mean}^t\tag{1} Xit+1=(XitXbest)Levy(dim)+rand(0,1)(1Maxitert)Maxiter2tXmeant(1)
Xbest最优鹦鹉位置,Xmean种群鹦鹉平均位置。

在这里插入图片描述
Levy飞行表述为:
{ L e v y ( d i m ) = μ ⋅ σ ∣ v ∣ 1 γ μ ∼ N ( 0 , d i m ) v ∼ N ( 0 , d i m ) σ = ( Γ ( 1 + γ ) ⋅ sin ⁡ ( π γ 2 ) Γ ( 1 + γ 2 ) ⋅ γ ⋅ 2 1 + γ 2 ) γ + 1 (2) \begin{cases}Levy(dim)=\frac{\mu\cdot\sigma}{|v|^{\frac1\gamma}}\\\mu\thicksim N(0,dim)\\v\thicksim N(0,dim)\\\sigma=(\frac{\Gamma(1+\gamma)\cdot\sin(\frac{\pi\gamma}2)}{\Gamma(\frac{1+\gamma}2)\cdot\gamma\cdot2^{\frac{1+\gamma}2}})^{\gamma+1}\end{cases}\tag{2} Levy(dim)=vγ1μσμN(0,dim)vN(0,dim)σ=(Γ(21+γ)γ221+γΓ(1+γ)sin(2πγ))γ+1(2)

停留行为

鹦鹉是一种高度社会化的生物,它的停留行为主要包括突然飞到主人身体的任何部位,在那里静止一段时间:
X i t + 1 = X i t + X b e s t ⋅ L e v y ( d i m ) + r a n d ( 0 , 1 ) ⋅ o n e s ( 1 , d i m ) (3) X_i^{t+1}=X_i^t+X_{best}\cdot Levy(dim)+rand(0,1)\cdot ones(1,dim)\tag{3} Xit+1=Xit+XbestLevy(dim)+rand(0,1)ones(1,dim)(3)
在这里插入图片描述

交流行为

鹦鹉特点是群体内的密切交流,包括飞向鸟群和不飞向鸟群的沟通。假设这两种行为发生的概率相等,并使用当前种群的平均位置来象征群体的中心:
X i t + 1 = { 0.2 ⋅ r a n d ( 0 , 1 ) ⋅ ( 1 − t M a x i t e r ) ⋅ ( X i t − X m e a n t ) , P ≤ 0.5 0.2 ⋅ r a n d ( 0 , 1 ) ⋅ e x p ( − t r a n d ( 0 , 1 ) ⋅ M a x i t e r ) , P > 0.5 (4) X_i^{t+1}=\begin{cases}0.2\cdot rand(0,1)\cdot(1-\frac{t}{Max_{iter}})\cdot(X_i^t-X_{mean}^t),P\leq0.5\\0.2\cdot rand(0,1)\cdot exp(-\frac{t}{rand(0,1)\cdot Max_{iter}}),P>0.5\end{cases}\tag{4} Xit+1={0.2rand(0,1)(1Maxitert)(XitXmeant),P0.50.2rand(0,1)exp(rand(0,1)Maxitert),P>0.5(4)

在这里插入图片描述

恐惧行为

鹦鹉对陌生人表现出天然的恐惧,它们与不熟悉的个体保持距离并与主人一起寻找安全环境:
X i t + 1 = X i t + r a n d ( 0 , 1 ) ⋅ c o s ( 0.5 π ⋅ t M a x i t e r ) ⋅ ( X b e s t − X i t ) − c o s ( r a n d ( 0 , 1 ) ⋅ π ) ⋅ ( t M a x i t e r ) 2 M a x i t e r ⋅ ( X i t − X b e s t ) (5) X_{i}^{t+1}=X_{i}^{t}+rand(0,1)\cdot cos(0.5\pi\cdot\frac{t}{Max_{iter}})\cdot(X_{best}-X_{i}^{t})-cos(rand(0,1)\cdot\pi)\cdot(\frac{t}{Max_{iter}})^{\frac{2}{Max_{iter}}}\cdot(X_{i}^{t}-X_{best})\tag{5} Xit+1=Xit+rand(0,1)cos(0.5πMaxitert)(XbestXit)cos(rand(0,1)π)(Maxitert)Maxiter2(XitXbest)(5)
在这里插入图片描述

流程图

在这里插入图片描述

伪代码

在这里插入图片描述

3.结果展示

使用测试框架,测试PO性能 一键run.m

  • 【智能算法】省时方便,智能算法统计指标——一键运行~

CEC2005-F9

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

4.参考文献

[1] Lian J, Hui G, Ma L, et al. Parrot optimizer: Algorithm and applications to medical problems[J]. Computers in Biology and Medicine, 2024: 108064.


http://www.ppmy.cn/ops/29295.html

相关文章

扭蛋机小程序带来了什么优势?扭蛋机收益攻略

在当下的潮流消费时代,人们对潮玩也日益个性化,扭蛋机作为一种新型的娱乐消费模式,深受大众喜爱。扭蛋机的价格低,各个年龄层的玩家都可以进行购买,潜在玩家量非常大。扭蛋机商品主打热门IP周边等,种类繁多…

MATLAB初学者入门(21)—— 霍夫曼树

霍夫曼编码是一种广泛用于数据压缩的有效技术。它基于字符频率或概率来构造最优的前缀码,使得常用字符的编码长度较短,不常用的字符编码长度较长,从而达到压缩数据的目的。MATLAB中可以通过一系列步骤来实现霍夫曼树的构建和相应的编码过程。…

Springboot自定义注解+aop实现redis自动清除缓存功能

假如我们是一个商家,我们在管理端 设置好菜品之后,每次不同的用户访问我们的菜品,都要查询数据库,当访问者多的时候,会造成数据库的卡顿,所以使用redis进行缓存,这样只需要读取一次数据库&#…

【数据结构】链表专题3

前言 本篇博客我们继续来讨论链表专题,今天的链表算法题是经典中的经典 💓 个人主页:小张同学zkf ⏩ 文章专栏:数据结构 若有问题 评论区见📝 🎉欢迎大家点赞👍收藏⭐文章 目录 1.判断链表是否…

Redis基本命令

目录 一、包含String、Set数据类型的基本命令 1、添加一个键值对 2、获取key所关联的字符串值 3、同时设置多个key-value 4、获取多个key对应的值 运行结果 5、将给定的value追加到原值的末尾 追加后效果 6、删除单个key 7、同时删除多个key 8、查询包含某个字符的k…

MySql 主从同步-在原来同步基础上增加历史数据库

在MySql已经主从同步的后,由于有新的需求再增加1个历史数据库,要改原来的1个变成现在的2个数据库。在官网并没有找到类似的场景(官方同步多个数据是从一开始就设置,不是后续增加的),只能结合以往的经验自己…

【论文浅尝】Large Language Models for Generative Information Extraction: A Survey

本文对生成式IE的LLM进行了全面的探索。使用两种分类法对现有的代表性方法进行分类: (1)众多IE子任务的分类法,旨在对可以使用llm单独或统一提取的不同类型的信息进行分类; (2)学习范式分类法,对利用llm生成IE的各种新方法进行分类。 Preliminaries o…

【Python】使用 OpenCV 读取深度图,并转换深度图可视化显示

OpenCV 提供了多种工具来处理深度图数据,包括读取、显示、滤波、转换以及利用深度信息进行三维重建等。 1. 读取 使用IMREAD_UNCHANGED以保留深度信息 2. 转换 convertScaleAbs: 将深度图转换为更直观的表示形式,例如将其缩放到0-255范围以便显示。 …