当前位置: 首页 > news >正文

CEC2017:斑马优化算法(Zebra Optimization Algorithm,ZOA)求解cec2017(提供MATLAB代码)

一、斑马优化算法

斑马优化算法(Zebra Optimization Algorithm,ZOA)Eva Trojovská等人于2022年提出,其模拟斑马的觅食和对捕食者攻击的防御行为。
在这里插入图片描述

斑马因身上有起保护作用的斑纹而得名。没有任何动物比斑马的皮毛更与众不同。斑马周身的条纹和人类的指纹一样——没有任何两头完全相同。斑马为非洲特产。非洲东部、中部和南部产平原斑马,由腿至蹄具条纹或腿部无条纹。东非还产一种格式斑马,体格最大,耳长(约20厘米)而宽,全身条纹窄而密,因而又名细纹斑马。南非洲产山斑马,与其它两种斑马不同的是,它有一对象驴似的大长耳朵。除腹部外,全身密布较宽的黑条纹,雄体喉部有垂肉。斑马是草食性动物。除了草之外,灌木、树枝、树叶甚至树皮也是它们的食物。适应能力较强的消化系统,令斑马可以在低营养条件下生存,比其他草食性动物优胜。斑马对非洲疾病的抗病力比马强,但斑马始终未能被驯化成家畜,也没有能和马进行杂交。
在这里插入图片描述

斑马优化算法包含两个阶段:
阶段一:觅食行为
在第一阶段,根据斑马在寻找饲料时的行为模拟来更新种群成员。斑马的主要食物主要是草和莎草,但如果它们喜欢的食物稀缺,它们也可能吃芽、水果、树皮、根和叶子。根据植被的质量和可用性,斑马可能会花费60-80%的时间进食。在斑马中,有一种斑马叫做平原斑马,它是一种先驱食草动物,通过吞噬上层和营养较少的草的树冠,为其他需要更短、更有营养的草的物种提供了条件。在 ZOA 中,种群中最好的成员被认为是先锋斑马,并引导其他种群成员走向其在搜索空间中的位置。因此,更新斑马在觅食阶段的位置可以使用下式进行数学建模:
xi,jnew,P1=xi,j+r⋅(PZj−I⋅xi,j),Xi={Xinew,P1,Finew,P1<FiXi,else \begin{array}{l} x_{i, j}^{n e w, P 1}=x_{i, j}+r \cdot\left(P Z_{j}-I \cdot x_{i, j}\right), \\ X_{i}=\left\{\begin{array}{cl} X_{i}^{n e w, P 1}, & F_{i}^{n e w, P 1}<F_{i} \\ X_{i}, & \text { else } \end{array}\right. \end{array}xi,jnew,P1=xi,j+r(PZjIxi,j),Xi={Xinew,P1,Xi,Finew,P1<Fi else 
阶段二:针对掠食者的防御行为
在第二阶段,模拟斑马对捕食者攻击的防御策略,以更新ZOA种群成员在搜索空间中的位置。斑马的主要捕食者是狮子;然而,它们受到猎豹、豹子、野狗、褐鬣狗和斑鬣狗的威胁。鳄鱼是斑马接近水时的另一种捕食者。斑马的防御策略因捕食者而异。斑马对狮子攻击的防御策略是以锯齿形模式和随机侧身转弯运动逃跑。斑马对鬣狗和狗等小型捕食者的攻击更具攻击性,这些捕食者通过聚集来迷惑和吓唬猎人。在 ZOA 设计中,假设以下两个条件之一以相同的概率发生:

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

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

在策略(1)中,当斑马受到狮子的攻击时,斑马在它们所在的情况附近逃离狮子的攻击。因此,在数学上,可以使用模式对这种策略进行建模S1 在下式第一项中。在第策略(2)中,当其他捕食者攻击其中一匹斑马时,群中的其他斑马会向被攻击的斑马移动,并试图通过创建防御结构来吓唬和迷惑捕食者。斑马的这种策略是使用模式进行数学建模的S2 在下式第一项中。在更新斑马的位置时,如果斑马的新位置对目标函数具有更好的值,则该斑马的新位置将被接受。此更新条件使用 下式第一二项建模。
xi,jnew,P2={S1:xi,j+R⋅(2r−1)⋅(1−tT)⋅xi,j,Ps≤0.5;S2:xi,j+r⋅(AZj−I⋅xi,j),else ,Xi={Xinew ,P2,Finew,P2Xi,else ,\begin{array}{l} x_{i, j}^{n e w, P 2} =\left\{\begin{array}{cc} 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. \\ X_{i}=\left\{\begin{array}{cc} X_{i}^{\text {new }, P 2}, & F_{i}^{n e w}, P 2 \\ X_{i}, & \text { else }, \end{array}\right. \end{array}xi,jnew,P2={S1:xi,j+R(2r1)(1Tt)xi,j,S2:xi,j+r(AZjIxi,j),Ps0.5; else ,Xi={Xinew ,P2,Xi,Finew,P2 else ,
斑马优化算法的算法描述如下:
在这里插入图片描述
斑马优化算法的算法流程如下:
在这里插入图片描述

参考文献:
E Trojovská, M Dehghani, P Trojovský. Zebra Optimization Algorithm: A New Bio-Inspired Optimization Algorithm for Solving Optimization Algorithm[J]. IEEE Access, 2022,10:49445-49473.

二、CEC2017简介

CEC2017共有30个无约束测试函数分别是:单峰函数(F1-F3)、简单多峰函数(F4-F10)、混合函数(F11-F20)和组合函数(F21-F30)。测试维度包含:10D、30D、50D、100D。CEC2017无约束测试问题随着维度的增加求解极其困难。

在这里插入图片描述

三、求解结果

完整代码添加博客下方博主微信:djpcNLP123

将斑马优化算法ZOA运用于求解CEC2017中30个无约束函数,其中每个测试函数可以选择的维度分别有:10D、30D、50D、100D。增大迭代次数,ZOA的求解效果更佳。本例测试函数维度均为为10D(可根据自己需求调整),最大迭代次数为50次。

close all
clear 
clc
Function_name=15; %测试函数1-30
lb=-100;%变量下界
ub=100;%变量上界
dim=10;%维度 10/30/50/100
SearchAgents_no=100; % Number of search agents
Max_iteration=50;%最大迭代次数
[Best_score,Best_pos,Curve]=ZOA(SearchAgents_no,Max_iteration,lb,ub,dim,fobj);
figure
% Best convergence curve
semilogy(Curve,'LineWidth',2,'Color','g');
title(strcat('CEC2017-F',num2str(Function_name)))
xlabel('迭代次数');
ylabel('适应度值');
axis tight
box on
legend('ZOA')
display(['The best solution is : ', num2str(Best_pos)]);
display(['The best optimal value of the objective funciton is : ', num2str(Best_score)]);

F11:

在这里插入图片描述

F12:

在这里插入图片描述

F13:

在这里插入图片描述

F14:

在这里插入图片描述

F15:

在这里插入图片描述

四、参考代码

完整代码添加博客下方博主微信:djpcNLP123

相关文章:

CEC2017:斑马优化算法(Zebra Optimization Algorithm,ZOA)求解cec2017(提供MATLAB代码)

一、斑马优化算法 斑马优化算法&#xff08;Zebra Optimization Algorithm&#xff0c;ZOA&#xff09;Eva Trojovsk等人于2022年提出&#xff0c;其模拟斑马的觅食和对捕食者攻击的防御行为。 斑马因身上有起保护作用的斑纹而得名。没有任何动物比斑马的皮毛更与众不同。斑…...

【Linux要笑着学】进程创建 | 进程终止 | slab分派器

爆笑教程《看表情包学Linux》&#x1f448; 猛戳订阅&#xff01;​​​​​​​​​​​​&#x1f4ad; 写在前面&#xff1a;本章我们主要讲解进程的创建与终止。首先讲解进程创建&#xff0c;fork 函数是我们早在讲解 "进程的概念" 章节就提到过的一个函数&#…...

数据资产管理建设思考(二)

关于数据资产管理&#xff0c;近两年是数据治理行业中一个热点话题&#xff0c;当然有我们前面提到的国家的政策支持及方向指引的原因。另一方面我们做数据治理的同行们从学习吸收国外优秀的数据治理理论&#xff0c;进一步在实践中思考如何应用理论&#xff0c;并结合我们国家…...

微软发布多模态版ChatGPT!取名“宇宙一代”

文&#xff5c;CoCo酱Ludwig Wittgenstein曾说过&#xff1a;“我语言的局限&#xff0c;即是我世界的局限”。大型语言模型&#xff08;LLM&#xff09;已成功地作为各种自然语言任务的通用接口&#xff0c;只要我们能够将输入和输出转换为文本&#xff0c;就可以将基于LLM的接…...

【学习笔记】深入理解JVM之对象的实例化

参考尚硅谷JVM 102 - 106 集 首发地址&#xff1a;地址 1、JVM对象的实例化 1.1 对象的创建方式 对象有一下几种创建对象的方式 new Object object new Object();Class的newInstance() Object object Object.class.newInstance();Constructor的newInstance&#xff08…...

IP协议的漏洞及防护措施

文章目录一、TCP/IP协议族二、IP协议三、IP协议的安全问题及防护措施一、TCP/IP协议族 二、IP协议 网际协议&#xff08;Internet Protocol&#xff0c;IP&#xff09;是TCP/IP协议族的核心&#xff0c;也是网际层最重要的协议。 IP数据报由首部和数据两部分组成&#xff1b…...

Linux命令·mkdir

linux mkdir 命令用来创建指定的名称的目录&#xff0c;要求创建目录的用户在当前目录中具有写权限&#xff0c;并且指定的目录名不能是当前目录中已有的目录。1&#xff0e;命令格式&#xff1a;mkdir [选项] 目录...2&#xff0e;命令功能&#xff1a;通过 mkdir 命令可以实现…...

智能家居项目(八)之树莓派+摄像头进行人脸识别

目录 1、编辑Camera.c 2、编辑contrlDevices.h 3、编辑mainPro.c 4、进行编译&#xff1a; 5、运行结果&#xff1a; ./test1 6、项目图片演示 智能家居项目&#xff08;七&#xff09;之Libcurl库与HTTPS协议实现人脸识别_Love小羽的博客-CSDN博客 经过上一篇文章&…...

渗透测试之地基服务篇:无线攻防之钓鱼无线攻击(上)

简介 渗透测试-地基篇 该篇章目的是重新牢固地基&#xff0c;加强每日训练操作的笔记&#xff0c;在记录地基笔记中会有很多跳跃性思维的操作和方式方法&#xff0c;望大家能共同加油学到东西。 请注意 &#xff1a; 本文仅用于技术讨论与研究&#xff0c;对于所有笔记中复现…...

「ABAP」一文带你入门OPEN SQL中的SELECT查询(附超详细案例解析)

&#x1f482;作者简介&#xff1a; THUNDER王&#xff0c;一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学会计学专业大二本科在读&#xff0c;同时任汉硕云&#xff08;广东&#xff09;科技有限公司ABAP开发顾问。在学习工作中&#xff0c;我通常使用偏后…...

【搞透C语言指针】那年我双手插兜, 不知道指针是我的对手

☃️内容专栏&#xff1a;【C语言】进阶部分 ☃️本文概括&#xff1a; 征服C语言指针&#xff01;一篇文章搞清楚指针的全部要点。 ☃️本文作者&#xff1a;花香碟自来_ ☃️发布时间&#xff1a;2023.3.3 目录 一、字符指针 二、指针数组 三、数组指针 1.数组指针的定义…...

如何从 Android 手机上的 SD 卡恢复已删除的照片

为了扩展手机的存储空间&#xff0c;很多人都会在安卓手机上插入一张SD卡来存储一些大文件&#xff0c;比如电影、照片、视频等。虽然SD卡给我们带来了很大的方便&#xff0c;但我们还是避免不了数据丢失一些事故造成的。您是否正在为 SD 卡上的照片意外丢失而苦恼&#xff1f;…...

01-前端-htmlcss

文章目录HTML&CSS1&#xff0c;HTML1.1 介绍1.2 快速入门1.3 基础标签1.3.1 标题标签1.3.2 hr标签1.3.3 字体标签1.3.4 换行标签1.3.5 段落标签1.3.6 加粗、斜体、下划线标签1.3.7 居中标签1.3.8 案例1.4 图片、音频、视频标签1.5 超链接标签1.6 列表标签1.7 表格标签1.8 布…...

【YOLO系列】YOLOv5超详细解读(网络详解)

前言 吼吼&#xff01;终于来到了YOLOv5啦&#xff01; 首先&#xff0c;一个热知识&#xff1a;YOLOv5没有发表正式论文哦~ 为什么呢&#xff1f;可能YOLOv5项目的作者Glenn Jocher还在吃帽子吧&#xff0c;hh 目录 前言 一、YOLOv5的网络结构 二、输入端 &#xff08;1…...

从 ChatGPT 爆火回溯 NLP 技术

ChatGPT 火遍了全网&#xff0c;多个话题频频登上热搜。见证了自然语言处理&#xff08;NLP&#xff09;技术的重大突破&#xff0c;体验到通用技术的无限魅力。GPT 模型是一种 NLP 模型&#xff0c;使用多层变换器&#xff08;Transformer&#xff09;来预测下一个单词的概率分…...

面了 6 家大厂,并拿下 5 家 offer,进大厂好像也没有那么困难吧....

前言 二月份的时候因为换工作的缘故&#xff0c;陆续参加了华为、蚂蚁、字节跳动、PDD、百度、Paypal 的社招面试&#xff0c;除了字节跳动流程较长&#xff0c;我主动结束面试以外&#xff0c;其他的都顺利拿到了 Offer。 最近时间稍微宽裕点了&#xff0c;写个面经&#xf…...

四、Spring对IoC的实现

1.IoC 控制反转 控制反转是一种思想。控制反转是为了降低程序耦合度&#xff0c;提高程序扩展力&#xff0c;达到OCP原则&#xff0c;达到DIP原则。控制反转&#xff0c;反转的是什么&#xff1f; 将对象的创建权利交出去&#xff0c;交给第三方容器负责。将对象和对象之间关系…...

Java语言如何求平方根

问题 在编程时&#xff0c;会遇到求平方根的问题&#xff0c;本次问题讲到如何使用Java来求解平方根。 方法 使用java.lang.Math类的sqrt(double)方法求平方根。Math是java.lang包中的类&#xff0c;所以就可以直接使用这个类。Double为对象中的基本类型。例如求正整数16的平方…...

C++20中的span容器

一.span容器 span 是 C20 中引入的一个新的标准容器&#xff0c;它用于表示连续的一段内存区间&#xff0c;类似于一个轻量级的只读数组容器。 span 是一个轻量级的非拥有式容器&#xff0c;它提供了对连续内存的引用。 span 的主要用途是作为函数参数&#xff0c;可以避免不…...

codeforces周赛div3#855记录

目录 总结 一&#xff0c;A. Is It a Cat? 二&#xff0c;B. Count the Number of Pairs 三&#xff0c;C1. Powering the Hero (easy version) 四&#xff0c;C2. Powering the Hero (hard version) 总结 真羡慕ACM校队的同学&#xff0c;能AC七八题&#xff0c;甚至ak …...

2022年考研结果已出,你上岸了吗?

官方公布&#xff1a;2022年考研人数为457万。 2月20号左右&#xff0c;全国考研分数已经陆续公布&#xff0c;现在已经过去一周左右的时间了&#xff0c;你上岸了吗&#xff0c;还是在等调剂&#xff0c;或者已经知道落榜不知道何去何从&#xff1f; 考研的热潮在近几年席卷…...

2023 工业互联网平台:智慧制硅厂 Web SCADA 生产线

我国目前是全球最大的工业硅生产国、消费国和贸易国&#xff0c;且未来该产业的主要增量也将来源于我国。绿色低碳发展已成为全球大趋势和国际社会的共识&#xff0c;随着我国“双碳”目标的推进&#xff0c;光伏产业链快速发展&#xff0c;在光伏装机需求的带动下&#xff0c;…...

6-2 SpringCloud快速开发入门:声明式服务消费 Feign实现消费者

声明式服务消费 Feign实现消费者 使用 Feign实现消费者&#xff0c;我们通过下面步骤进行&#xff1a; 第一步&#xff1a;创建普通 Spring Boot工程 第二步&#xff1a;添加依赖 <dependencies><!--SpringCloud 集成 eureka 客户端的起步依赖--><dependency>…...

Git-学习笔记01【Git简介及安装使用】

Java后端 学习路线 笔记汇总表【黑马-传智播客】Git-学习笔记01【Git简介及安装使用】Git-学习笔记02【Git连接远程仓库】Git-学习笔记03【Git分支】目录 01-git的历史 02-git和svn的对比 03-git的安装 04-向本地仓库中添加文件 05-修改文件内容并提交 06-删除本地仓库中…...

【Python】控制自己的手机拍照,并自动发送到邮箱

前言 嗨喽&#xff0c;大家好呀~这里是爱看美女的茜茜呐 今天这个案例&#xff0c;就是控制自己的摄像头拍照&#xff0c; 并且把拍下来的照片&#xff0c;通过邮件发到自己的邮箱里。 想完成今天的这个案例&#xff0c;只要记住一个重点&#xff1a;你需要一个摄像头 思路…...

八股文(二)

一、 实现深拷贝和浅拷贝 1.深拷贝 function checkType(any) {return Object.prototype.toString.call(any).slice(8, -1) }//判断拷贝的要进行深拷贝的是数组还是对象&#xff0c;是数组的话进行数组拷贝&#xff0c;对象的话进行对象拷贝 //如果获得的数据是可遍历的&#…...

在CANoe/CANalyzer中观察CAN Message报文的周期Cycle

案例背景&#xff1a; 该篇博文将告诉您&#xff0c;如何直观的&#xff0c;图示化的&#xff0c;查看CAN网络中各CAN Message报文的周期变化。 优质博文推荐阅读&#xff08;单击下方链接&#xff0c;即可跳转&#xff09;&#xff1a; Vector工具链 CAN Matrix DBC CAN M…...

Linux命令·ls

ls命令是linux下最常用的命令。ls命令就是list的缩写缺省下ls用来打印出当前目录的清单如果ls指定其他目录那么就会显示指定目录里的文件及文件夹清单。 通过ls 命令不仅可以查看linux文件夹包含的文件而且可以查看文件权限(包括目录、文件夹、文件权限)查看目录信息…...

Mysql InnoDB 存储引擎笔记

1 存储引擎 简介 Mysql 存储引擎有多种&#xff1a;包括 MyISAM、InnoDB 和 Memory。 其中MyISAM 和 INNODB 的区别&#xff1a; 事务安全&#xff08;MyISAM不支持事务&#xff0c;INNODB支持事务&#xff09;&#xff1b;外键 MyISAM 不支持外键&#xff0c; INNODB支持外…...

智慧工地AI视频分析系统 opencv

智慧工地AI视频分析系统通过pythonopencv网络模型图像识别技术&#xff0c;智慧工地AI视频分析算法自动识别现场人员穿戴是否合规。本算法模型中用到opencv技术&#xff0c;OpenCV基于C实现&#xff0c;同时提供python, Ruby, Matlab等语言的接口。OpenCV-Python是OpenCV的Pyth…...

织梦做双语版网站/创建一个网站需要什么

QC七大手法是品质管理的七种工具&#xff0c;随着生产技术与理念的发展&#xff0c;QC七大手法逐渐从旧QC七大手法衍生出了新QC七大手法&#xff0c;本文对新旧QC七大手法做一概述。 旧QC七大手法一、查检集数据 &#xff08;设备点检讨论&#xff09;二、层别作解析 &#xff…...

做网站可以先做再给钱吗/佛山今日头条

高性能负载均衡集群HAProxy实战视频课程13节4小时7分钟课程目标&#xff1a;欢迎大家加入 51CTO学院Linux交流群575837909&#xff0c;与喜欢学习Linux小伙伴们做朋友&#xff0c;一起为梦想增值。高性能负载均衡集群HAProxy实战视频课程1、四层和七层负载均衡的区别2、HAProxy…...

北京网站建设公司电话/网络营销的特点和优势

进程间通信一、管道创建管道父子进程的管道单向通信父子间的双向通信管道Shell中的管道通信匿名管道与命名管道管道特点二、消息队列不足三、共享内存四、信号量五、信号六、Socket创建Socket的系统调用通信方式TCP协议通信的Socket编程模型UDP协议通信的Socket编程模型本地进程…...

推广英文/对网站提出的优化建议

# begin build properties # autogenerated by buildinfo.sh #由buildinfo.sh自动生成此文件ro.build.idA4-3G #手机ID号ro.build.display.idQUALCOMM 高通3G-Android2.2.3-IOSUI#显示型号 eng.autobuild.20110624.181135#显示创建时间ro.build.version.incrementaleng.autobui…...

怎么做教育类型的网站/seo优化培训班

一、“平面设计”的内涵 • 所谓“平面设计”&#xff0c;指的是在平面空间上的设计活动&#xff0c;其设计的内容主要是在二维空间中各个元素的设计和这些元素组合的布局设计&#xff0c;其中包括字体设计、版面设计、插图、摄影的采用&#xff0c;而所有这些内容的核心在于传…...

四川通信建设工程有限公司网站/百度的广告推广需要多少费用

今天做了一个图表页面&#xff0c;效果图如下&#xff1a; 上图红框中的部分&#xff0c;是指的table表格中&#xff0c;鼠标移入某行后&#xff0c;出现的背景颜色。默认的背景颜色是一种灰色。 鼠标移入后的行背景颜色修改 通过css即可实现&#xff1a; .el-table--enabl…...