路径规划之启发式算法之二十九:鸽群算法(Pigeon-inspired Optimization, PIO)

news/2025/2/5 4:08:29/

        鸽群算法(Pigeon-inspired Optimization, PIO)是一种基于自然界中鸽子群体行为的智能优化算法,由Duan等人于2014年提出。算法模拟了鸽子在飞行过程中利用地标、太阳和磁场等导航机制的行为,具有简单、高效和易于实现的特点,适用于解决连续优化问题。

        更多的仿生群体算法概括可以看我的文章:

仿生的群体智能算法总结之一(十种)_最新群体算法-CSDN博客

仿生的群体智能算法总结之二(十种)_候鸟优化算法-CSDN博客

仿生的群体智能算法总结之三(十种)_群智能算法-CSDN博客

一、鸽群算法的基本原理

1.基本原理

        鸽群算法是根据家鸽自主归巢行为而提出的优化算法。家鸽在归巢过程中,能够利用自身的磁感应结构感知地磁场,形成地图认知,并通过地标等导航工具进行路径规划。受此启发,鸽群算法通过模拟鸽群的导航行为,实现对复杂问题的优化求解。

2.核心算子

        (1)地图和指南针算子:该算子模拟了鸽子利用地图和指南针进行导航的过程。在算法中,每只鸽子都有一个虚拟的位置和速度,通过不断更新位置和速度来搜索最优解。位置和速度的更新公式中包含了地图和指南针因数,该因数取值范围在0到1之间,用于控制鸽子搜索的方向和范围。

        (2)地标算子:当地标算子启动时,鸽群会依赖周围的地标来调整飞行方向和速度。在算法中,远离目的地的鸽子会被视为对地表不熟悉,它们将不再具有分辨路径的能力。此时,鸽群会通过找寻周围的地标来优化自身的飞行方向和速度。为了进一步减少算法的寻优时间,每次迭代都会抛弃种群中位置较差的个体,种群数量减半后,计算种群中心位置,并以中心位置为飞行依据,更新个体飞行方向。

        简单来说,鸽群算法的灵感来源于鸽子的两种导航行为:

        (1)地标算子(Landmark Operator)

        鸽子在接近目的地时,会依赖地标(如建筑物、山脉等)来调整飞行方向。

        在算法中,地标算子用于局部搜索,帮助个体向全局最优解靠近。

        (2)指南针算子(Compass Operator)

        鸽子在长距离飞行时,依赖太阳和地球磁场进行导航。

        在算法中,指南针算子用于全局搜索,帮助个体探索解空间。


http://www.ppmy.cn/news/1569414.html

相关文章

Mac本地部署DeekSeek-R1下载太慢怎么办?

Ubuntu 24 本地安装DeekSeek-R1 在命令行先安装ollama curl -fsSL https://ollama.com/install.sh | sh 下载太慢,使用讯雷,mac版下载链接 https://ollama.com/download/Ollama-darwin.zip 进入网站 deepseek-r1:8b,看内存大小4G就8B模型 …

毕业设计:基于卷积神经网络的鲜花花卉种类检测算法研究

目录 前言 课题背景和意义 实现技术思路 一、算法理论基础 1.1 卷积神经网络 1.2目标检测算法 二、 数据集 2.1 数据集 2.2 数据扩充 三、实验及结果分析 3.1 实验环境搭建 3.2 模型训练 最后 前言 📅大四是整个大学期间最忙碌的时光,一边要忙着备考或…

caddy2配置http_basic用于验证用户名密码才允许访问页面

参考: basicauth (Caddyfile指令) — Caddy v2中文文档 1,查看caddy是否已经包含了Basic Auth插件 命令:caddy list-modules | grep http_basic 如果显示: http.authentication.providers.http_basic 则代表包含 Basic Auth 模…

【Hadoop】Hadoop 概述

Hadoop 概述 Hadoop 是什么Hadoop 发展历史Hadoop 三大发行版本Hadoop 优势(4 高)Hadoop 组成(面试重点)HDFS 架构概述YARN 架构概述MapReduce 架构概述HDFS、YARN、MapReduce 三者关系 大数据技术生态体系 Hadoop 是什么 Hadoop…

【股票数据API接口36】如何获取股票当天逐笔大单交易数据之Python、Java等多种主流语言实例代码演示通过股票数据接口获取数据

​ 如今,量化分析在股市领域风靡一时,其核心要素在于数据,获取股票数据,是踏上量化分析之路的第一步。你可以选择亲手编写爬虫来抓取,但更便捷的方式,莫过于利用专业的股票数据API接口。自编爬虫虽零成本&a…

【C语言】内存管理

【C语言】内存管理 文章目录 【C语言】内存管理1.概念2.库函数3.动态分配内存malloccalloc 4.重新调整内存的大小和释放内存reallocfree 1.概念 C 语言为内存的分配和管理提供了几个函数。这些函数可以在 <stdlib.h> 头文件中找到。 在 C 语言中&#xff0c;内存是通过…

三傻排序的比较(选择,冒泡,插入)

在学习排序算法时&#xff0c;选择排序、冒泡排序和插入排序是最常见的基础排序算法。但是&#xff0c;尽管这些算法看起来非常相似&#xff0c;它们在实际应用中的效率和性能却有所不同。本文将详细比较这三种排序算法的时间复杂度、空间复杂度。 比较总结 排序算法时间复杂…

【机器学习】自定义数据集 ,使用朴素贝叶斯对其进行分类

一、贝叶斯原理 贝叶斯算法是基于贝叶斯公式的&#xff0c;其公式为&#xff1a; 其中叫做先验概率&#xff0c;叫做条件概率&#xff0c;叫做观察概率&#xff0c;叫做后验概率&#xff0c;也是我们求解的结果&#xff0c;通过比较后验概率的大小&#xff0c;将后验概率最大的…