基于觅食生境选择的改进粒子群算法-附代码
基于觅食生境选择的改进粒子群算法
文章目录
- 基于觅食生境选择的改进粒子群算法
- 1.粒子群优化算法
- 2. 改进粒子群算法
- 3.实验结果
- 4.参考文献
- 5.Matlab代码
- 6.Python代码
摘要:在标准粒子群算法的基础上,引入基于莱维飞行的觅食生境选择策略,提出了改进的基于觅食生境选择的粒子群算法(feeding habitat selection particle swarm optimization,FHSPSO)。改进的算法中,粒子搜索策略包括粒子无干扰觅食和受到惊扰飞至新的觅食位置两个阶段。
1.粒子群优化算法
基础粒子群算法的具体原理参考网络资料
2. 改进粒子群算法
粒子搜索策略包括两个阶段。
第一阶段, 粒子无干扰受食阶段。
该阶段的搜索策略与标准粒子群算法基本相 同, 粒子的特征用速度、位置、适应度值表示。适 应度值由被优化的函数确定, 第 i i i 个粒子的速度和 位置在每次迭代中按照式 (1)、(2) 进行更新 [ 6 ] { }^{[6]} [6] 。
V i d k + 1 = w v i d k + c 1 r 1 ( P i d k − X i d k ) + c 2 r 2 ( P g d k − X i d k ) (1) X i d k + 1 = X i d k + V i d k (2) w = e − θ 1 k cos ( lg ( k ) ) (3) \begin{array}{cc} V_{i d}^{k+1}=w v_{i d}^k+c_1 r_1\left(P_{i d}^k-X_{i d}^k\right)+c_2 r_2\left(P_{g d}^k-X_{i d}^k\right) & \text { (1) } \\ X_{i d}^{k+1}=X_{i d}^k+V_{i d}^k & \text { (2) } \\ w=e^{-\theta_1 k} \cos (\lg (k))& \text { (3) } \end{array} Vidk+1=wvidk+c1r1(Pidk−Xidk)+c2r2(Pgdk−Xidk)Xidk+1=Xidk+Vidkw=e−θ1kcos(lg(k)) (1) (2) (3)
式中: w w w 为惯性权重; d ∈ [ 1 , D ] , D d \in[1, D], D d∈[1,D],D 为维数; k k k 为 迭代次数; c 1 c_1 c1 和 c 2 c_2 c2 为学习因子; r 1 r_1 r1 和 r 2 r_2 r2 为 [ 0 , 1 ] [0,1] [0,1] 间的 随机数; P i d P_{i d} Pid 为粒子迄今的个体极值; P g d P_{g d} Pgd 为粒子群 迄今的群体极值, θ 1 \theta_1 θ1 是系数。
第二阶段, 粒子群受到惊扰飞至新的位置。
粒子群在受到外界因素惊扰后, 会产生整体逃 逸行为, 并在逃逸路线上发现新的食物源, 搜索方 程如式 (4) 所示 [ 7 ] { }^{[7]} [7] 。
x i t + 1 = { x i t [ 1 + e − θ 2 k cos ( lg ( k ) ) s ] , rand < p x i t [ 1 + e − θ 3 k cos ( k ) s ] , else (4) x_i^{t+1}= \begin{cases}x_i^t\left[1+e^{-\theta_2 k} \cos (\lg (k)) s\right], & \text { rand }<p \\ x_i^t\left[1+e^{-\theta_3 k} \cos (k) s\right], & \text { else }\end{cases} \tag{4} xit+1={xit[1+e−θ2kcos(lg(k))s],xit[1+e−θ3kcos(k)s], rand <p else (4)
式中: p p p 是路线选择参数; θ 1 、 θ 2 \theta_1 、 \theta_2 θ1、θ2 是系数; s s s 值由 式 ( 5 ) ∼ ( 9 ) [ 8 ] (5) \sim(9){ }^{[8]} (5)∼(9)[8] 确定。
s = μ ∣ v ∣ 1 / β (5) s=\frac{\mu}{|v|^{1 / \beta}}\tag{5} s=∣v∣1/βμ(5)
其中: μ 、 v \mu 、 v μ、v 为正态分布, 定义
μ ∼ N ( 0 , σ μ 2 ) (6) v ∼ N ( 0 , σ v 2 ) (7) σ μ = { Γ ( 1 + β ) sin ( π β / 2 ) Γ [ ( 1 + β ) / 2 ] 2 ( β − 1 ) / 2 β } , β = 1.5 (8) σ v = 1 (9) \begin{gathered} \mu \sim N\left(0, \quad \sigma_\mu^2\right) & \text { (6) } \\ v \sim N\left(0, \quad \sigma_v^2\right) & \text { (7) } \\ \sigma_\mu=\left\{\frac{\Gamma(1+\beta) \sin (\pi \beta / 2)}{\Gamma[(1+\beta) / 2] 2^{(\beta-1) / 2} \beta}\right\}, \beta=1.5 & \text { (8) } \\ \sigma_v=1& \text { (9) } \end{gathered} μ∼N(0,σμ2)v∼N(0,σv2)σμ={Γ[(1+β)/2]2(β−1)/2βΓ(1+β)sin(πβ/2)},β=1.5σv=1 (6) (7) (8) (9)
FHSPSO 算法流程如下:
初始化种群
for 迭代次数<最大迭代次数
if 粒子正常受食时间小于限制值
for 种群中的所有粒子
按公式(1)、(2)产生新解
end for
else
for 种群中的所有成员
按公式 (4) 产生新解
end for
end if
选择目标函数值最好的个体,
与先前最好解进行比较判断是否更新 end for
输出最好解
3.实验结果
4.参考文献
[1]陈子廓,史宪睿.基于觅食生境选择的改进粒子群算法[J].辽宁工业大学学报(自然科学版),2022,42(01):19-21.DOI:10.15916/j.issn1674-3261.2022.01.004.
5.Matlab代码
6.Python代码
基于觅食生境选择的改进粒子群算法-附代码相关推荐
- 全局优化的改进鸡群算法-附代码
全局优化的改进鸡群算法 文章目录 全局优化的改进鸡群算法 1.鸡群优化算法 2.全局优化的改进鸡群算法 2.1自适应策略 2.2 偏好随机游动 2.3 定向变异策略 3.实验结果 4.参考文献 5.M ...
- 基于差分均值扰动的改进粒子群优化算法(DMP-PSO)
DMP-PSO:An improved particle swarm optimizer with difference mean based perturbation 原文:https://www. ...
- 阅读《基于CPSO和DE改进粒子群算法的无功优化仿真》的感想
阅读<基于CPSO和DE改进粒子群算法的无功优化仿真>的感想 PS:文中提到的对比的文章都是指的是<电力系统无功优化的LRS-PSO算法>-陈功贵 CPSO Chaotic P ...
- 基于改进粒子群算法的WSN节点部署优化
文章目录 一.理论基础 1.PSO算法(经典粒子群算法) 2.UPSO算法(均匀搜索粒子群算法) 3.CPSO算法(本文算法) 二.仿真实验与结果分析 三.参考文献 一.理论基础 1.PSO算法(经典 ...
- 【布局优化】基于改进粒子群算法实现充电桩选址优化问题附matlab代码
1 简介 当前世界环境污染和能源危机问题凸显,电动汽车以零排放和低耗能的优势得到各国的大力关注和支持.以电动汽车为代表新能源汽车产业,成为国家七大战略性新兴产业之一.电动汽车具有良好的发展前景,市场规 ...
- 主题:基于改进粒子群算法的含源配电网静态重构 利用IEEE-33节点系统进行仿真计算
主题:基于改进粒子群算法的含源配电网静态重构 利用IEEE-33节点系统进行仿真计算 以网络最小损耗为目标函数 基于改进粒子群算法进行重构 可以加入不同数量的分布式电源 包含M文件.模型图.程序框图以 ...
- 《基于改进粒子群算法的混合储能系统容量优化》完全复现
<基于改进粒子群算法的混合储能系统容量优化>完全复现 matlab. 以全生命周期费用最低为目标函数,负荷缺电率作为风光互补发电系统的运行指标,得到蓄电池储能和超级电容个数,缺电率和系统最 ...
- DG储能选址定容模型matlab 程序采用改进粒子群算法,考虑时序性得到分布式和储能的选址定容模型
DG储能选址定容模型matlab 程序采用改进粒子群算法,考虑时序性得到分布式和储能的选址定容模型,程序运行可靠 YID:87140641990659957爱熬夜的程序猿
- DG储能选址定容模型matlab,程序采用改进粒子群算法,考虑时序性得到分布式和储能的选址定容模型
DG储能选址定容模型matlab 程序采用改进粒子群算法,考虑时序性得到分布式和储能的选址定容模型,程序运行可靠 YID:69140641990659957
最新文章
- C语言字符串一道比较难的题!_只愿与一人十指紧扣_新浪博客
- 21天学通HTML5和CSS3第二版,21天学通HTML5+CSS3
- C语言实现queue队列的算法(附完整源码)
- 64位debian系统下安装inodeClient
- python发送json请求_使用Python请求发布JSON
- SpeedyCloud研发总监李孟:不要让底层细节被上层打败
- python操作文件和目录_python文件和目录操作方法
- leetcode69. x 的平方根(二分法)
- MySQL安装成功后dos命令行设置密码
- 虚拟寄存器,虚拟堆栈与真实寄存器,真实堆栈如何对应
- 一 前端基础,http协议,form表单
- 【elasticsearch】 elasticsearch 写一致性
- php 网站api,php – 如何调节网站的API用户?
- Android开发笔记(七十三)代码混淆与反破解
- 中美线径对照表_美标线径与国标对照
- php九九乘法表带表格,九九乘法表打印(js打印九九乘法表用表格显示)
- 工业物联网:平台架构、关键技术与应用实践
- Android Audio架构
- python二级操作题评分方法_第二卷讲解Python语言计算机等级考试二级操作题
- Helm和kustomize
热门文章
- java计算机毕业设计即时高校信息发布系统源码+mysql数据库+系统+lw文档+部署
- keytool 错误: java.lang.Exception: 密钥库文件不存在: keystore
- postman的批量传送数据和接口关联
- win7用计算机名无法访问局域网,Win7系统在局域网内无法访问文件内容的解决方法...
- 文心一言 VS ChatGpt
- 实验吧-隐写术-FIVE1
- 像素(px)与厘米的关系
- 华为AR1220路由器配置GRE隧道
- 在Android Studio如何制作聊天气泡
- 哪款蓝牙耳机吃鸡没延迟?游戏蓝牙耳机推荐