智能优化算法:斑马优化算法-附代码

news2024/11/17 5:30:12

智能优化算法:斑马优化算法

文章目录

  • 智能优化算法:斑马优化算法
    • 1.斑马优化算法
      • 1.1 初始化
      • 1.2 阶段一:觅食行为
      • 1.3 阶段二:针对捕食者的防御策略
    • 2.实验结果
    • 3.参考文献
    • 4.Matlab

摘要:斑马优化算法(Zebra Optimization Algorithm(ZOA)),是于2022年提出的一种基于斑马行为的优化算法,该算法通过模拟斑马行为来进行寻优,具有寻优能力强,收敛速度快等特点

1.斑马优化算法

1.1 初始化

与其他优化算法类似,在寻优空间里随机初始化种群:
x i , j = l b j + r ⋅ ( u b j − l b j ) ,  (2) x_{i, j}=l b_j+r \cdot\left(u b_j-l b_j\right) \text {, }\tag{2} xi,j=lbj+r(ubjlbj)(2)
其中 x i , j x_{i,j} xi,j为个体, l b j lb_j lbj为寻优下边界, u b j ub_j ubj为寻优上边界, r r r为[0,1]之间的随机数。

1.2 阶段一:觅食行为

在第一阶段,种群成员在搜索饲料时根据斑马行为的模拟进行更新。斑马的主要食物主要是草和莎草,但如果它们喜欢的食物稀缺,它们也可能吃花蕾、水果、树皮、根和叶子。根据植被的质量和可用性,斑马可能会花费60-80%的时间进食。在斑马中,有一种被称为平原斑马的斑马,它是一种先锋食草动物,通过吞噬上层和营养较少的草的树冠,为其他需要较矮和营养较多的草的物种提供了条件。在ZOA中,种群中最好的成员被认为是先锋斑马,并将其他种群成员引向其在搜索空间中的位置。因此,可以使用(3)和(4)对斑马在觅食阶段的位置更新进行数学建模。
x i , j n e w , P 1 = x i , j + r ⋅ ( P Z j − I ⋅ x i , j ) (3) x_{i, j}^{n e w, P 1}=x_{i, j}+r \cdot\left(P Z_j-I \cdot x_{i, j}\right) \tag{3} xi,jnew,P1=xi,j+r(PZjIxi,j)(3)

X i = { X i new  , P 1 , F i new  , P 1 < F i X i ,  else  (4) X_i= \begin{cases}X_i^{\text {new }, P 1}, & F_i^{\text {new }, P 1}<F_i \\ X_i, & \text { else }\end{cases} \tag{4} Xi={Xinew ,P1,Xi,Finew ,P1<Fi else (4)

其中r为[0,1]之间的随机数,I为属于集合{1,2}的随机值。

1.3 阶段二:针对捕食者的防御策略

在第二阶段,模拟斑马对捕食者攻击的防御策略,以更新ZOA种群成员在搜索空间中的位置。斑马的主要捕食者是狮子;然而,它们受到猎豹、豹子、野狗、棕色鬣狗和斑点鬣狗的威胁。鳄鱼是斑马接近水面时的另一种捕食者。斑马的防御策略因捕食者而异。斑马对狮子攻击的防御策略是以Z字形和随机的侧向转弯动作逃跑。斑马对较小的捕食者的攻击更具攻击性,如鬣狗和狗,它们通过聚集来迷惑和恐吓猎人。在ZOA设计中,假设以下两种情况之一以相同的概率发生:

(i) 狮子攻击斑马,因此斑马选择了逃跑策略;

(ii)其他捕食者攻击斑马,斑马会选择攻击策略。

在第一种策略中,当斑马受到狮子的攻击时,斑马会在其所在位置附近躲避狮子的攻击。因此,在数学上,可以使用(5)中的模式S1来对该策略进行建模。在第二种策略中,当其他捕食者攻击其中一只斑马时,群中的其他斑马会向被攻击的斑马靠近,并试图通过建立防御结构来恐吓和迷惑捕食者。使用(5)中的模式S2对斑马的这种策略进行数学建模。在更新斑马的位置时,如果斑马在新位置中的目标函数具有更好的值,则接受该新位置。使用(6)对该更新条件进行建模。
x i , j new  , P 2 = { S 1 : x i , j + R ⋅ ( 2 r − 1 ) ⋅ ( 1 − t T ) ⋅ x i , j , P s ≤ 0.5 S 2 : x i , j + r ⋅ ( A Z j − I ⋅ x i , j ) ,  else  , (5) x_{i, j}^{\text {new }, P 2}=\left\{\begin{array}{cl} S_1: x_{i, j}+R \cdot(2 r-1) & \\ \cdot\left(1-\frac{t}{T}\right) \cdot x_{i, j}, & P_s \leq 0.5 \\ S_2: x_{i, j}+r \cdot\left(A Z_j-I \cdot x_{i, j}\right), & \text { else }, \end{array}\right.\tag{5} xi,jnew ,P2= S1:xi,j+R(2r1)(1Tt)xi,j,S2:xi,j+r(AZjIxi,j),Ps0.5 else ,(5)

X i = { X i new  , P 2 , F i new  , P 2 < F i X i ,  else  , (6) X_i= \begin{cases}X_i^{\text {new }, P 2}, & F_i^{\text {new }, P 2}<F_i \\ X_i, & \text { else },\end{cases} \tag{6} Xi={Xinew ,P2,Xi,Finew ,P2<Fi else ,(6)

t t t 是迭代次数, T T T为最大迭代次数, R R R为0.01的常数。 P s P_s Ps为两种策略的切换概率。其值为[0,1]之间的随机数。AZ为被攻击斑马的状态。

算法流程图如下:

在这里插入图片描述

2.实验结果

在这里插入图片描述

3.参考文献

[1] E. Trojovská, M. Dehghani and P. Trojovský, “Zebra Optimization Algorithm: A New Bio-Inspired Optimization Algorithm for Solving Optimization Algorithm,” in IEEE Access, vol. 10, pp. 49445-49473, 2022, doi: 10.1109/ACCESS.2022.3172789.

4.Matlab

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

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

相关文章

协同设计有什么优势?都有哪些协同设计软件

设计师创作既有视觉吸引力又实用的作品需要很多时间。对于某些项目&#xff0c;第一次可能会顺利验收&#xff0c;但事实上&#xff0c;设计和修改总是伴随着。 如何有效地修改和促进项目的实施&#xff1f;答案很简单&#xff1a;协作设计。本文将带您深入学习协作设计的相关…

Spring01-Spring简介、IOC简介及入门、IOC详解、bean讲解、依赖注入、配置文件模块化、实现CRUD

Spring简介 一、Spring 是什么 Spring 是一个分层的 Java SE/EE full-stack (一站式) 轻量级开源框架 以 IOC &#xff08;Inverse Of Control:反转控制) 和 AOP &#xff08;Aspect Oriented Programming:面向切面编程) 为核心。 在 Java三层架构中 分别提供了响应技术 分…

docker php安装redis扩展

有这么一个情况&#xff0c;我在docker中&#xff0c;安装了镜像&#xff0c;也启动了容器&#xff0c;容器有&#xff1a;nginx、mysql、redis、php 是一个基本的开发环境 容器启动成功&#xff0c;我们先连接一下&#xff0c;看看是否正常。 先保证这些都ok&#xff0c;我们…

【Spring框架一】——Spring框架简介

系列文章目录 Spring框架简介 系列文章目录前言一、什么是Spring框架&#xff1f;二、Spring框架的优势1.简化开发流程&#xff1a;Spring提供了许多现成的功能&#xff0c;可以使得开发人员在构建应用程序时减少编写重复代码的工作。2.提高可维护性&#xff1a;Spring框架采用…

chatgpt搜索脚本

安装地址 https://greasyfork.org/zh-CN/scripts/459997 注意事项 &#xff01;&#xff01;注意&#xff1a;如果你在360相关浏览器上使用插件。360搜索将不会生效&#xff0c;因为已被浏览器禁用在so.com网址上使用。 &#xff01;&#xff01;尽量选择tampermonkey脚本管…

面试华为测试岗,收到offer后我却毫不犹豫拒绝了....

我大学学的是计算机专业&#xff0c;毕业的时候&#xff0c;对于找工作比较迷茫&#xff0c;也不知道当时怎么想的&#xff0c;一头就扎进了一家外包公司&#xff0c;一干就是2年。我想说的是&#xff0c;但凡有点机会&#xff0c;千万别去外包&#xff01; 在深思熟虑过后&am…

Android性能优化专家需求量大,人才缺口呼之欲出

前言 Android性能优化是Android应用开发中一个非常重要的环节。一款高性能、流畅的应用可以提高用户体验和满意度&#xff0c;提升应用的用户留存率和活跃度。而在今天&#xff0c;移动设备日趋普及&#xff0c;市场竞争日益激烈&#xff0c;优秀的性能已经成为了Android应用不…

Android安卓手机APP应用自有keystore签名证书怎么生成?

Android安卓keystore签名证书怎么生成&#xff1f; 1、安装JRE环境 Oracle官方下载jre安装包&#xff1a;https://www.caochai.com/article-4206.html &#xff0c;并记住安装的目录&#xff1b; 2、打开电脑上的cmd命令提示符工具&#xff0c;先进入jre安装目录&#xff1b…

宿主机(Windos)上文件上传至Ubuntu (linux)

因为我想在ubuntu20.04 上安装Sublime Text ,然而我不想在ubuntu 上下载安装因为太简单了。 我想在windos 上下载好linux 版本&#xff0c;然后发送到ubuntu上&#xff08;和ubuntu上下载安装多了一个上传的过程&#xff09;&#xff0c;我决定挑战一下 第一步进入VM 后打开你…

【Linux学习】多线程——互斥 | 线程安全

&#x1f431;作者&#xff1a;一只大喵咪1201 &#x1f431;专栏&#xff1a;《Linux学习》 &#x1f525;格言&#xff1a;你只管努力&#xff0c;剩下的交给时间&#xff01; 互斥 | 线程安全 &#x1f969;线程不安全&#x1f35a;线程不安全的原因 &#x1f969;线程互斥…

网络编程五--自定义应用层协议

写在前面 前面回声服务器/客户端介绍了如何通过对收发IO的控制实现回声服务器/客户端。 在服务器端应用层的处理&#xff08;协议&#xff09;可以看作是“回声操作”&#xff0c;即回发客户端发来的消息。而在客户端应用层的处理&#xff08;协议&#xff09;则只是简单显示…

Mysql获取指定时间范围数据

MySQL获取某个时间范围内的数据 TO_DAYS(date)函数。 to_days()&#xff1a;返回从0000年至当前日期的总天数。 目录 1、今天(TO_DAYS()) 2、今天昨天(TO_DAYS()) 3.近7天(DATE_SUB()) 5.本月(DATE_FORMAT()) 6.上一月(PERIOD_DIFF()) 7.本季度 8.上季度 9.本年 ​1…

MyBatis介绍、创建与使用

文章目录 一、MyBatis是什么二、学习 MyBatis 的意义三、配置 MyBatis 开发环境&#xff08;一&#xff09;配置 MyBatis 的相关依赖&#xff08;二&#xff09;配置数据库连接字符串和 MyBatis&#xff08;保存的 XML 目录&#xff09;1. 创建并编辑配置文件2. 配置 MyBatis 的…

[GFCTF 2021]ez_calc day3

目录 此时我脑袋产生了几个问题&#xff1a; 但是尝试了几个弱密码发现不对&#xff0c;找一下有没有代码泄露的点。 咦发现ctrlu查看的源码和f12显示的竟然不一样我丢&#xff0c;涨知识了。 js大小写有漏洞之前遇见过 <!--if(req.body.username.toLowerCase() ! admin…

Maven与spring学习

目录 该如何学习Maven&#xff0c;是先该学习spring还是先学习Maven 能讲一下该如何学习Maven吗&#xff1f; 火狐浏览器有能让网页翻译成为中文的插件吗 秋田和柴犬是同一个狗吗 该如何学习Maven&#xff0c;是先该学习spring还是先学习Maven 学习Maven可以与学习Spring同…

FPGA学习总结7:选择译码器实现

本博客以modelsim平台为例&#xff0c;实现了一个三八译码器&#xff1b; Step1.在modelsim创建新的工程&#xff1b; file-》new-》project&#xff0c;给工程命名&#xff0c;添加相应的文件&#xff1b; Step2.添加事先准备的源文件和Testbench文件&#xff1b; 3-8译码器…

p72 内网安全-域横向 CSMSF 联动及应急响应初识

数据来源 演示案例 MSF&CobaltStrike 联动 ShellWEB 攻击应急响应朔源-后门,日志WIN 系统攻击应急响应朔源-后门,日志,流量临时给大家看看学的好的怎么干对应 CTF 比赛 案例1 - MSF&CobaltStrike联动Shell CS下载与安装&#xff1a;cobaltstrike的安装与基础使用_co…

数字信号处理4

昨天是星期天&#xff0c;休息了一天&#xff0c;今天继续学习&#xff1a; 1、连续幅度信号的量化&#xff1a; 一个数字信号是一个数字序列&#xff0c;也就是说这个数字信号就可以用有限个数字来表示。 量化&#xff1a;通过把每个样本值表示为一个有限的数字&#xff0c…

CRM系统建设中需关注哪些关键节点?

随着数字化时代的到来&#xff0c;企业越来越依赖于互联网技术和数据管理&#xff0c;而客户关系管理&#xff08;CRM&#xff09;系统已经成为企业实现数字化转型和提升客户体验的关键工具之一。然而&#xff0c;在构建CRM系统的过程中&#xff0c;一些企业常常被一些关键节点…

键树(Keyword Tree)操作(插入删除查询)-双链树C语言实现_20230508

键树(Keyword Tree)操作&#xff08;插入/删除/查询)-双链树C语言实现_20230508 前言 键树称为数字查找树或者搜索提示树&#xff0c;树的度数d≥2&#xff0c;树中每个结点储存的不是完整的关键字&#xff0c;而是只含有组成关键字的符号&#xff0c;常见情况为字符或数字。…