一种新颖的智能优化算法—海鸥优化(SOA)算法

news2025/1/20 14:48:56

 

目录

一、SOA理论基础 

二、ACO数学模型

2.1 迁徙

2.2 攻击 

 三、SOA伪代码

 四、SOA运行结果


 

       海鸥优化算法(Seagull Optimization Algorithm, SOA)是在2019年由 Dhiman 提出的一种受自然界海鸥启发的新颖全局优化算法,模拟了海鸥群体的迁徙和攻击行为。

一、SOA理论基础 

       海鸥以群居式生活,利用智慧来寻找和攻击猎物。海鸥最重要特征是迁徙和攻击行为,迁徙是动物从一个地方到另一个地方根据季节更替而移动,寻找最丰富的食物来源以便获取足够能量。在迁徙过程中,它们成群结队地飞行,且每只海鸥的所在位置均不同,以避免相互碰撞。在一个群体中,海鸥可以朝着最佳位置的方向前进,改变自身所在的位置。有时海鸥会攻击候鸟,在进攻时海鸥群体做出螺旋形的运动形态,如图1所示:

图1 海鸥的迁徙和攻击行为

二、ACO数学模型

2.1 迁徙

       在迁移过程中,模拟海鸥群如何从一个位置移动到另一个位置。在这个阶段,海鸥应该满足三个条件:

图2 海鸥之间避免碰撞

图3  海鸥向最佳位置方向移动

图4  海鸥靠近最佳位置

2.2 攻击 

       海鸥在迁徙过程中可以不断改变攻击角度和速度;当攻击猎物时,它们就在空中进行螺旋形状运动,如图5所示:

图5  攻击行为模型

 

 三、SOA伪代码

海鸥种群初始化,参数A、B和最大迭代次数max_{tier};
计算适应值,取最小适应度值MINf;
设置相应参数:f_c = 2,u = 1,v = 1;
for i = 1 :max_{tier} 
  rd 取随机值 ( 0 , 1 );
  theta 取随机值 (0 ,2π);
  海鸥迁徙更新海鸥位置公式(1)、(2)、(3) 、(4)、(5);
  海鸥攻击候鸟,更新海鸥位置公式(6)、(7)、(8) 、(9) ;
  计算适应度值,排序minf;  
  if minf<MINf
   MINf = minf;
   MINx = minx; % 海鸥最佳位置
  end
end
输出最佳海鸥位置和适应值;
结束程序

 四、SOA运行结果

 F1:

The best optimal value of the objective funciton found by SOA is : 3.0641e-29

F6:

The best optimal value of the objective funciton found by SOA is : 3.1196

F8:

The best optimal value of the objective funciton found by SOA is : -5490.8483

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

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

相关文章

chatgpt赋能python:Python中如何实现1到100的循环?

Python中如何实现1到100的循环&#xff1f; 在Python中&#xff0c;实现1到100的循环非常简单。我们可以通过for循环、while循环和列表生成式来实现这个任务。 1. 使用for循环实现1到100的循环 使用for循环可以让我们轻松地遍历从1到100的整数。这种方法很适合在循环中需要进…

chatgpt赋能python:Python中的UTF-8

Python中的UTF-8 什么是UTF-8&#xff1f; 在开始介绍Python中的UTF-8&#xff0c;让我们先了解什么是UTF-8。UTF-8是一种Unicode字符集的编码方法&#xff0c;可以表示全球范围内的字符集&#xff0c;包括机器语言和人类语言。 Python和UTF-8 Python是一种高级编程语言&am…

工作基础知识

fpga 什么是fpga FPGA 是一种硬件可重构的体系结构。它的英文全称是Field Programmable Gate Array&#xff0c;中文名是现场可编程门阵列。 FPGA就是一个可以通过编程来改变内部结构的芯片。 FPGA 是在硅片上预先设计实现的具有可编程特性的集成电路&#xff0c;它能够按照…

完全卸载mysql教程

引言 很多人因为第一次安装mysql导致安装错误&#xff0c;或者安装的数据库版本太高&#xff0c;比如mysql8.0版本&#xff0c;出现了很多问题&#xff0c;导致数据库无法使用&#xff0c;或者一些图形界面无法操作&#xff0c;想要卸载&#xff0c;重装稳定的mysql数据库&…

一种新型智能优化算法—平衡优化算法(EO)

目录 一、EO理论基础 二、EO数学模型 2.1 种群初始化 2.2 建立平衡状态池 2.3 指数项 2.4 生成速率 2.5 更新解 三、EO流程图 四、EO运行结果 平衡优化器(Equilibrium Optimizer&#xff0c;EO)。该算法由Afshin Faramarzi等人于2020年提出的一种新型元启发式优…

JavaSE笔记(七)重制版

多线程与反射 前面我们已经讲解了JavaSE的大部分核心内容&#xff0c;最后一章&#xff0c;我们还将继续学习JavaSE中提供的各种高级特性。这些高级特性对于我们之后的学习&#xff0c;会有着举足轻重的作用。 多线程 **注意&#xff1a;**本章节会涉及到 操作系统 相关知识…

【Simulink】基于FCS-MPC的单相并网逆变器控制(Matlab Function)

之前写过【Simulink】基于FCS-MPC的三相并网逆变器控制&#xff08;Matlab Function&#xff09;以及 【Simulink】基于FCS-MPC的三相并网逆变器控制&#xff08;Stateflow&#xff09;&#xff0c;控制对象都是三相逆变器&#xff0c;本篇博客将研究单相逆变器。 FCS-MPC控制…

chatgpt赋能python:Python一行输入两个数:简单又高效

Python一行输入两个数&#xff1a;简单又高效 作为一名有10年Python编程经验的工程师&#xff0c;我深知Python的简洁和高效。Python作为一种强大的编程语言&#xff0c;具有很多功能强大的工具和库。一行输入两个数也不例外。在本文中&#xff0c;我将介绍Python中一行输入两…

chatgpt赋能python:Python怎么post请求

Python怎么post请求 Python作为一种高级编程语言&#xff0c;拥有丰富的库和模块来处理各种编程任务。其中&#xff0c;处理网络请求和数据交互是Python非常擅长的领域之一。在Python中&#xff0c;我们可以使用标准库或第三方库的HTTP模块来实现HTTP协议的请求和响应。 本篇…

JavaSSM笔记(一)

**建议&#xff1a;**对Java开发还不是很熟悉的同学&#xff0c;最好先花费半个月到一个月时间大量地去编写小项目&#xff0c;不推荐一口气学完&#xff0c;后面的内容相比前面的内容几乎是降维打击&#xff0c;一口气学完很容易忘记之前所学的基础知识&#xff0c;尤其是Java…

TypeScript核心基础

前言 为了方便我们直接使用脚手架让他帮我们直接编译就完事了 创建一个 Vue 应用 前提条件 熟悉命令行已安装 16.0 或更高版本的 Node.js npm init vuelatest 这一指令将会安装并执行 create-vue&#xff0c;它是 Vue 官方的项目脚手架工具。你将会看到一些诸如 TypeScript 和测…

JavaSE笔记(三)重置版

面向对象基础篇 我们在前面已经学习了面向过程编程&#xff0c;也可以自行编写出简单的程序了。我们接着就需要认识 面向对象程序设计&#xff08;Object Oriented Programming&#xff09;它是我们在Java语言中要学习的重要内容&#xff0c;面向对象也是高级语言的一大重要特…

Qt 编译使用Quazip库

1. 编译zlib quazip库是基于Qt的压缩解压库&#xff0c;使对zlib库的封装。因此要使用quazip库就需要先编译zlib。 下载zlib 。 为了在Qt中使用&#xff0c;编译环境统一使用Qt的MinGW工具链。 解压源码&#xff0c;打开Qt的MinGW命令行控制台。 make -f ./win32/Makefile.…

chatgpt赋能python:Python中如何3个3个切片

Python中如何3个3个切片 在Python中&#xff0c;我们可以使用切片&#xff08;Slicing&#xff09;操作来获取列表、元组、字符串等容器中的子集。而在某些情况下&#xff0c;我们需要按照一定规律切片&#xff0c;比如每三个元素切成一组。那么在Python中&#xff0c;我们该怎…

4. Response对象的7个属性

4. Response对象的7个属性 文章目录 4. Response对象的7个属性1. Response对象的属性&#xff08;属性变量&#xff09;2. 网页源代码3. 人工查看网页源代码4. Response对象的7个属性5. 总结 1. Response对象的属性&#xff08;属性变量&#xff09; 【代码示例】 # 1.导入库…

JavaSSM笔记(二)

SpringMVC 在前面学习完Spring框架技术之后&#xff0c;差不多会出现两批人&#xff1a;一批是听得云里雾里&#xff0c;依然不明白这个东西是干嘛的&#xff1b;还有一批就是差不多理解了核心思想&#xff0c;但是不知道这些东西该如何去发挥它的作用。在SpringMVC阶段&#…

集成声网 SDK实现iOS平台音视频通话和虚拟背景功能

&#x1f604;作者简介&#xff1a; 小曾同学.com,一个致力于测试开发的博主⛽️&#xff0c;主要职责&#xff1a;测试开发、CI/CD 如果文章知识点有错误的地方&#xff0c;还请大家指正&#xff0c;让我们一起学习&#xff0c;一起进步。&#x1f60a; 座右铭&#xff1a;不想…

coco-annotator的安装与使用

文章目录 coco-annotator的安装与使用1. coco-annotator是什么2. coco-annotator可以做什么3. coco-annotator的安装3.1 先决条件3.2 coco-annotator的下载与安装 4. coco-annotator的使用4.1 创建用户4.2 创建数据集4.3 标注图像4.4 下载标注信息 5. coco-annotator远程访问5.…

【算法题解】36. 对称二叉树的递归解法

这是一道 简单 题 https://leetcode.cn/problems/symmetric-tree/ 题目 给你一个二叉树的根节点 root &#xff0c; 检查它是否轴对称。 示例 1&#xff1a; 输入&#xff1a;root [1,2,2,3,4,4,3] 输出&#xff1a;true示例 2: 输入&#xff1a;root [1,2,2,null,3,nu…

UnityVR--组件6--动画事件BlendTree

目录 应用1&#xff1a;使用BlendTree实现站立和移动 应用2&#xff1a;人物跳跃事件&播放跳跃动画 上一篇&#xff08;组件5--Animation动画&#xff09;已经做了2个动画片段&#xff0c;HeroIdle和HeroJump&#xff0c;另外实现了简单的动画转场控制。本篇使用BlendTre…