【智能算法】花朵授粉算法(FPA)原理及实现

news2024/11/25 14:28:46

在这里插入图片描述

目录

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


1.背景

2012年,Yang等人受到自然界花朵授粉过程启发,提出了鸭群算法(Flower Pollination Algorithm, FPA)。

2.算法原理

2.1算法思想

FPA基于自然界花朵授粉过程,主要分为两个阶段:全局授粉和局部授粉

2.2算法过程

全局授粉

在全局授粉中,花粉由昆虫等传粉媒介携带。由于昆虫通常可以飞行和移动的范围更大,花粉可以传播很远的距离,这保证了最适者的授粉和繁殖:
x i t + 1 = x i t + L ( x i t − g ∗ ) (1) \mathbf{x}_i^{t+1}=\mathbf{x}_i^t+L(\mathbf{x}_i^t-\mathbf{g}_*)\tag{1} xit+1=xit+L(xitg)(1)
其中,g*为最优授粉者。参数L是授粉的强度,本质上是一个步长。由于昆虫可能会以不同的距离步长进行长距离移动,这里采用莱维飞行模拟:
L ∼ λ Γ ( λ ) sin ⁡ ( π λ / 2 ) π 1 s 1 + λ , ( s ≫ s 0 > 0 ) (2) \begin{aligned}L\sim\frac{\lambda\Gamma(\lambda)\sin(\pi\lambda/2)}{\pi}\frac{1}{s^{1+\lambda}},\quad(s\gg s_{0}>0)\end{aligned}\tag{2} LπλΓ(λ)sin(πλ/2)s1+λ1,(ss0>0)(2)

局部授粉

局部授粉可以表述为:
x i t + 1 = x i t + ϵ ( x j t − x k t ) (3) \mathbf{x}_i^{t+1}=\mathbf{x}_i^t+\epsilon(\mathbf{x}_j^t-\mathbf{x}_k^t)\tag{3} xit+1=xit+ϵ(xjtxkt)(3)
这里,xj,xk为xi领域中其他授粉者,参数为[0,1]随机数,实际进行局部随机游走。

伪代码

在这里插入图片描述

3.结果展示

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

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

CEC2005-F9
在这里插入图片描述

箱型图

在这里插入图片描述

探索与开发

在这里插入图片描述

种群空间搜索图

在这里插入图片描述

4.参考文献

[1] Yang X S. Flower pollination algorithm for global optimization[C]//International conference on unconventional computing and natural computation. Berlin, Heidelberg: Springer Berlin Heidelberg, 2012: 240-249.

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

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

相关文章

idea项目启动异常:Command line is too long.

项目场景: 提示:这里简述项目相关背景: idea中启动项目报错: 解决方案 在idea 的运行配置中,修改enviroment下的shorten command line 为jar manifest 注: 有时shorten command line 可能不是默认存在的…

Kafka复习

消息中间件的作用: 异步处理: 与并行相比,虽然减少了时间,但是还是得等待其他线程执行完,但是消息中间件对于简单的业务处理,还要引入一个中间件也比较复杂如果我投递了简历之后需要发送成功邮件以及短信,就可以交给消息中间件就像数据库、redis数据一致性,需要用到延迟…

揭秘网上问卷调查:多样化类型助力数据收集

在当今数字化时代,问卷调查作为一种便捷、高效的数据收集和分析方式,被广泛运用于市场调研、学术研究、消费者反馈等领域。而在网上进行问卷调查更是提高了调查效率和覆盖范围,因此,了解网上的问卷调查类型对于设计合适的调查问卷…

如何使用Postgres的JSONB数据类型进行高效查询

文章目录 解决方案1. 创建包含JSONB列的表2. 插入JSON数据3. 使用GIN索引加速查询4. 执行高效的JSONB查询 示例代码解释 PostgreSQL的JSONB数据类型提供了一种灵活的方式来存储和查询JSON格式的数据。JSONB不仅允许你在PostgreSQL数据库中存储JSON文档,而且还对这些…

万字长文带你APK反编译重签名aabapks转换

Android反编译 反编译(Decompilation)是将已编译的程序(比如二进制代码)转换回更高级别的编程语言代码的过程。这通常用于理解程序的工作原理,进行软件审计,恢复丢失的源代码,或者进行教学研究…

CleanAmp™ dNTP应用:24min完成三重qPCR

试剂:CleanAmp™ PCR Kit 仪器:Mastercycler ep realplex4 S qPCR instrument 品牌:Trilink 国内授权代理:欣博盛生物 分子诊断需求的不断增长(如新冠核酸检测),要求所用检测试剂、设备能在更…

OpenCV的查找命中或未命中

返回:OpenCV系列文章目录(持续更新中......) 上一篇:OpenCV4.9更多形态转换 下一篇:OpenCV4.10使用形态运算提取水平线和垂直线 目标 在本教程中,您将学习如何使用 Hit-or-Miss 转换(也称为 Hit-and-Miss 转换&…

如何查看已使用的IP

如何查看已使用的IP 一、用cmd登录(winr) 二、用命令查看IP 在cmd命令窗口输入“ipconfig”命令,按下键盘上的回车键 这时会在cmd命令窗口看见自己电脑的IP地址,在命令窗里找到你的“以太网适配器 以太网”或者“无线局域网适配器…

网络爬虫入门

爬虫(也被称为网络爬虫或网络蜘蛛)是一种自动化程序,它可以在互联网上自动抓取数据。爬虫的基本工作原理通常包括以下几个步骤:发送请求:爬虫向目标网站发送HTTP请求,请求网页内容。接收响应:爬…

Spring AOP的实现方式与原理

目录 认识IOC与AOP AOP的实现方式 Aspect注解实现AOP 自定义注解实现AOP Spring AOP原理 代理模式 静态代理和动态代理 JDK动态代理 CGLIB动态代理 Spring AOP实现的哪种代理 认识IOC与AOP IOC又称为控制反转,也就是控制权发生了反转.在传统的程序中,我们是需要自己…

TCP/IP协议—HTTP

TCP/IP协议—HTTP HTTP协议HTTP通讯特点HTTP通讯流程 HTTP请求报文请求方法 HTTP应答报文状态码 HTTP协议 超文本传输协议(Hypertext Transfer Protocol,HTTP)是一种请求-响应的协议,用户可以通过HTTP向服务器上传、下载数据。HT…

美易官方:人民币国际支付占比升至近5%

随着全球金融市场的不断发展和数字化进程的加速,人民币的国际支付地位逐渐提升,成为备受瞩目的焦点。最近的数据显示,人民币在国际支付中的占比已经升至近5%,自11月以来已成为第四大交易货币。这一变化不仅反映了中国经济的崛起和…

AI实景无人直播自动卖卷系统,开创了实体商家直播自运营先河。

AI实景无人直播自动卖卷系统,开创了实体商家直播自运营先河。 从当下这一刻起,拒绝内耗,做行动的巨人。因为,命运不会偏袒任何人,却会眷顾一直朝着光亮前进的人。 《人民日报》 随着新媒体的快速发展,很…

使用Flask和Flask-JWT-Extended保护API免受跨站请求攻击

在本文中,我们将探讨如何使用Flask和Flask-JWT-Extended库来保护您的API免受跨站请求攻击(CSRF)。我们将首先简要介绍CSRF攻击的概念,然后详细说明如何使用Flask-JWT-Extended库来保护您的API。 什么是跨站请求攻击(C…

STM32学习和实践笔记(15):STM32中断系统

中断概念 CPU执行程序时,由于发生了某种随机的事件(外部或内部),引起CPU暂 时中断正在运行的程序,转去执行一段特殊的服务程序(中断服务子程序 或中断处理程序),以处理该事件,该事件处理完后又返回被中断的程序 继…

HP ProLiant DL380 Gen9 服务器 BIOS 中文设置教程

HP ProLiant DL380 Gen9 服务器 BIOS 中文设置教程 服务器开机,按F9,进入System Utilities 找到Select Language,目前设置的为English 英文 选中Select Language,按回车键 将语言由English改成中文(简体) 可以看到 中文字符 按回车键进行保存

量子AI“新高峰”:探索量子机器学习的两大最新成就——

量子力学与机器运行速度远超现今最先进超级计算机的概念结合在一起,令人着迷。从这个角度来看,量子计算机的效率可与一级方程式赛车相比,而传统计算机则仿佛蚂蚁般缓慢。最近,生成式人工智能及其卓越的机器学习能力引发了广泛讨论…

C# Solidworks二次开发:程序工具界面和选项相关API详解

大家好,今天要讲的是关于程序工具相关的API介绍。 下面是要介绍的API: (1)第一个为GetAutoPartSimplification,这个API的含义为获取简化配置的指针,下面是官方具体解释: 其输入参数的类型在上一篇文章中已经介绍过了gtError_e&a…

ZYNQ-Vitis(SDK)裸机开发之(四)PS端MIO和EMIO的使用

目录 一、ZYNQ中MIO和EMIO简介 二、Vivado中搭建block design 1.配置PS端MIO: 2.配置PS端EMIO: 三、Vitis中新建工程进行GPIO控制 1. GPIO操作头文件gpio_hdl.h: 2.GPIO操作源文件gpio_hdl.c: 3.main函数进行调用 例程开发…

吃鸡游戏msvcp140.dll丢失的解决方法

msvcp140.dll 是一个与 Microsoft Visual C Redistributable 相关的动态链接库(DLL)文件,是 Windows 操作系统中众多应用程序正常运行所必需的关键组件之一。以下是对 msvcp140.dll 文件的总体介绍和msvcp140.dll丢失的多个解决方案分享。 *…