【智能算法】磷虾群算法(KHA)原理及实现

news2024/11/17 14:52:29

在这里插入图片描述

目录

    • 1.背景
    • 2.算法原理
      • 2.1算法思想
      • 2.2算法过程
    • 3.结果展示
    • 4.参考文献


1.背景

2012年,Gandomi等人受到自然界中磷虾生存行为启发,提出了磷虾群算法(Krill Herd Algorithm, KHA)。

2.算法原理

2.1算法思想

KHA受南极鳞虾群觅食行为和运动规律的启发,磷虾群个体位置随时间不断变化,KHA目标是通过总结每次个体变化的规律去寻找磷虾群中最优磷虾个体的位置。

2.2算法过程

个体在运动过程中受到的影响因素主要包括:

  • 周围磷虾个体对它的影响Ni
  • 食物的影响Fi
  • 个体自身随机物理扩散Di

磷虾个体随时间的运动数学方程:
d X i / d t = N i + F i + D i (1) d_{X_{i}}/d_{t}=N_{i}+F_{i}+D_{i}\tag{1} dXi/dt=Ni+Fi+Di(1)

诱导运动:

磷虾个体的运动首先受到它周围磷虾对它的诱导,根据磷虾受周围环境影响的运动规律:
N i + 1 = N max ⁡ α i + ω n N i (2) N_{i+1}=N^{\max}\alpha_{i}+\omega_{n}N_{i}\tag{2} Ni+1=Nmaxαi+ωnNi(2)
其中,Ni+1为磷虾诱导更新后的位置;Nmax为最大诱导速度;Ni为磷虾诱导更新前的位置;wn为诱导运动惯性权重;ai为诱导运动系数:
α i = α i b e s t + α i l o c a l (3) \alpha_{i}=\alpha_{i}^{best}+\alpha_{i}^{local}\tag{3} αi=αibest+αilocal(3)
abest,alocal分别为全局最优磷虾的引导系数和周围磷虾引导系数。影响范围是以该磷虾为圆心的圆形区域:
r i j = 1 5 N P ∑ j = 1 N P ∥ x i − x j ∥ (4) r_{ij}=\frac{1}{5NP}\sum_{j=1}^{NP}\Bigl\Vert x_i-x_j\Bigr\Vert \tag{4} rij=5NP1j=1NP xixj (4)

觅食运动:

磷虾的运动规律第二是受到食物的影响:
F i + 1 = V f β i + ω f F i (5) F_{i+1}=V_{f}\beta_{i}+\omega_{f}F_{i}\tag{5} Fi+1=Vfβi+ωfFi(5)
其中,wf,Vf为觅食惯性系数和最大觅食速度, β i \beta_i βi为觅食运动方向:
β i = β i f o o d + β i b e s t (6) \beta_{i}=\beta_{i}^{food}+\beta_{i}^{best}\tag{6} βi=βifood+βibest(6)
其中, β f o o d , β b e s t \beta_{food},\beta_{best} βfood,βbest分别为“虚拟食物”的诱导方向和个体磷虾历史最优适应度的诱导方向。

自由扩散

磷虾个体运动的最后一个影响因素是个体随机物理扩散:
D i + 1 = D m a x ( 1 − t t m a x ) δ (7) D_{i+1}=D_{\mathrm{max}}(1-\frac{t}{t_{\mathrm{max}}})\delta \tag{7} Di+1=Dmax(1tmaxt)δ(7)
Dmax为最大随机物理扩散速度。

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

3.结果展示

在这里插入图片描述

4.参考文献

[1] Gandomi A H, Alavi A H. Krill herd: a new bio-inspired optimization algorithm[J]. Communications in nonlinear science and numerical simulation, 2012, 17(12): 4831-4845.

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

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

相关文章

软件测试用例(2)

具体的设计方法 -- 黑盒测试 因果图 因果图是一种简化的逻辑图, 能直观地表明程序的输入条件(原因)和输出动作(结果)之间的相互关系. 因果图法是借助图形来设计测试用例的一种系统方法, 特别适用于被测试程序具有多种输入条件, 程序的输出又依赖于输入条件的各种情况. 因果图…

【C++】C++11类的新功能

👀樊梓慕:个人主页 🎥个人专栏:《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》《C》《Linux》《算法》 🌝每一个不曾起舞的日子,都是对生命的辜负 目录 前言 默认成员函数 类成…

2024年阿里云服务器购买、续费、升级优惠活动价格表

2024年阿里云服务器租用费用,云服务器ECS经济型e实例2核2G、3M固定带宽99元一年,轻量应用服务器2核2G3M带宽轻量服务器一年61元,ECS u1服务器2核4G5M固定带宽199元一年,2核4G4M带宽轻量服务器一年165元12个月,2核4G服务…

计算机网络——32差错检测和纠正

差错检测和纠正 错误检测 EDC 差错检测和纠错位(冗余位) D 数据由差错检测保护,可以包含头部字段 错误检测不是100%可靠的 协议会泄露一些错误,但是很少更长的EDC字段可以得到更好的检测和纠正效果 奇偶校验 单bit奇偶校验 …

【办公类-47-01】20240404 Word内部照片批量缩小长宽(课题资料系列)

作品展示 背景需求 最近在做《运用Python优化3-6岁幼儿学习操作材料的实践研究》的课题研究资料(上半学期和下半学期)。 将CSDN里面相关的研究照片文字贴入Word后,就发现一张图片就占了A4竖版一页,太大了。我想把word里面的所有…

vue2源码解析——vue中如何进行依赖收集、响应式原理

vue每个组件实例vm都有一个渲染watcher。每个响应式对象的属性key都有一个dep对象。所谓的依赖收集,就是让每个属性记住它依赖的watcher。但是属性可能用在多个模板里,所以,一个属性可能对应多个watcher。因此,在vue2中&#xff0…

Qt + VS2017 创建一个简单的图片加载应用程序

简介: 本文介绍了如何使用Qt创建一个简单的图片加载应用程序。该应用程序可以打开图片文件并在界面上显示选定的图片,并保存用户上次选择的图片路径。 1. 创建项目: 首先,在VS中创建一个新的Qt Widgets应用程序项目,并…

Vulnhub:WESTWILD: 1.1

目录 信息收集 arp nmap nikto whatweb WEB web信息收集 dirmap enm4ulinux sumbclient get flag1 ssh登录 提权 横向移动 get root 信息收集 arp ┌──(root㉿ru)-[~/kali/vulnhub] └─# arp-scan -l Interface: eth0, type: EN10MB, MAC: 0…

Springboot Thymeleaf 实现数据添加、修改、查询、删除

1、引言 在Spring Boot中使用Thymeleaf模板引擎实现数据的添加、修改、查询和删除功能,通常步骤如下: 在Controller类中,定义处理HTTP请求的方法。创建Thymeleaf模板来处理表单的显示和数据的绑定。 2、用户数据添加 1、 在Controller类中…

2024年福建三支一扶报名指南—照片<100kb

2024年福建三支一扶报名指南—照片<100kb

目标检测——监控下的汽车

一、重要性及意义 首先&#xff0c;车辆检测技术是保证视频监控系统正常运行的基础。通过监控摄像头实时获取的图像&#xff0c;可以自动检测出图像中的车辆&#xff0c;并进行车辆类型的分类和识别。这对于优化城市交通管理、实现智能交通系统具有重要意义。此外&#xff0c;…

智能小车测速(3.26)

模块介绍&#xff1a; 接线&#xff1a; VCC -- 3.3V 不能接5V&#xff0c;否则遮挡一次会触发3次中断 OUT -- PB14 测速原理&#xff1a; cubeMX设置&#xff1a; PB14设置为gpio中断 打开定时器2&#xff0c;时钟来源设置为内部时钟&#xff0c;设置溢出时间1s&#xff0c…

通义灵码功能上线:编程挑战中Claude3(opus)领先一步

最近好多AI博主都在推荐通义灵码&#xff0c;我就下载下来体验了一下&#xff0c;而且目前通义灵码暂时不收费&#xff0c;而且还有一个推荐奖励的活动&#xff0c;活动内容如下&#xff1a; 邀请好友达到一定人数&#xff0c;有一些奖励。 我目前看到微软的Azure云有个语音转…

LabVIEW电力设备在线监测系统

LabVIEW电力设备在线监测系统 在电力行业中&#xff0c;变电站的稳定运行对于保障电力系统的安全性和可靠性至关重要。开发了一种基于LabVIEW软件开发的变电站电力设备在线监测系统&#xff0c;实时监控变电站内部的电力设备状态&#xff0c;确保电力传输的高效与安全。通过对…

Java—抽象方法与接口

声明&#xff1a;以下内容是根据B站黑马程序员的Java课程&#xff0b;博主自己的理解整理而成&#xff0c;课程很好&#xff0c;适合初学者学习。 关于此类题目&#xff0c;重要的是识别出用什么来实现&#xff0c;到底是接口还是抽象方法&#xff0c;还是共有的属性等等&…

React之Diff 算法

在 React 中&#xff0c;通过 React.createElement 也能生成一个虚拟 DOM 节点&#xff08;ReactElement&#xff09;。在 React15 及以前&#xff0c;采用了递归的方式创建虚拟 DOM&#xff0c;递归过程是不能中断的。如果组件树的层级很深&#xff0c;递归会占用线程很多时间…

达梦配置ODBC连接

达梦配置ODBC连接 基础环境 操作系统&#xff1a;Red Hat Enterprise Linux Server release 7.9 (Maipo) 数据库版本&#xff1a;DM Database Server 64 V8 架构&#xff1a;单实例1 下载ODBC包 下载网址&#xff1a;https://www.unixodbc.org/ unixODBC-2.3.0.tar.gz2 编译并…

树状数组-数据结构

树状数组 t[x] 节点的父节点为 t[x lowbit(x)] 整棵树的深度为 log2n 1 1 . add(x,k) 给指定的节点x加上k — 动态的维护前缀和 需要从x开始&#xff0c;向上找到所有父节点&#xff0c;值都加上k 2. ask(x) 求取节点x之前的前缀和 求取单点之前的前缀和只需要累加即可 …

redis群集有三种模式

目录 redis群集有三种模式 redis群集有三种模式 分别是主从同步/复制、哨兵模式、Cluster ●主从复制&#xff1a;主从复制是高可用Redis的基础&#xff0c;哨兵和集群都是在主从复制基础上实现高可用的。主从复制主要实现了数据的多机备份&#xff0c;以及对于读操作的负载均…

LeetCode | 数组 | 二分查找 | 35.搜索插入位置【C++】

题目链接 题目描述 给定一个排序数组和一个目标值&#xff0c;在数组中找到目标值&#xff0c;并返回其索引。如果目标值不存在于数组中&#xff0c;返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 示例 1: 输入: nums [1,3,5,6], target 5 输出…