融合改进Sine混沌映射的新型粒子群优化算法(NIPSO)-附代码

news2024/11/28 20:58:26

融合改进Sine混沌映射的新型粒子群优化算法(NIPSO)

文章目录

  • 融合改进Sine混沌映射的新型粒子群优化算法(NIPSO)
    • 1.粒子群优化算法
    • 2. 改进粒子群优化算法
      • 2.1 改进的 Sine 混沌映射
      • 2.2 粒子群改进
    • 3.实验结果
    • 4.参考文献
    • 5.Matlab代码
    • 6.Python代码

摘要:为了应对传统粒子群算法(PSO)存在的初始位置不均匀、易达到局部最优、搜索精度不高等问题,提出了一种基于改进Sine混沌映射的新型PSO算法。采用一种改进的Sine混沌映射技术代替传统的伪随机数方法生成初始粒子种群,以丰富种群的多样性。在原始基本位置更新公式的基础上增加两种新的位置更新机制,并分别引入一个高斯变异算子实现算法勘探性能和开发性能之间的动态平衡以及在迭代过程中使粒子有效跳出局部最优

1.粒子群优化算法

基础粒子群优化算法的具体原理参考博客

2. 改进粒子群优化算法

2.1 改进的 Sine 混沌映射

鉴于普通混沌映射都存在着不足, 往往都 是选择改进的混沌映射作为群智能优化算法的初始 化。其中改进最多两种便是 Logistic 映射和 Sine 映 射, 鉴于改进后的 Sine 混沌映射空间遍历性好, 种 群多样性丰富, 相平面内分布均匀, 同时结构简单、 效率高, 故本文选取改进 Sine 混沌映射作为改进粒 子群算法的初始化方法。改进 Sine 混沌公式如下:
{ a i + 1 = sin ⁡ ( κ π a i ) b i + 1 = sin ⁡ ( κ π b i ) y i + 1 = ( a i + 1 + b i + 1 ) % 1 (5) \left\{\begin{array}{l} a_{i+1}=\sin \left(\kappa \pi a_i\right) \\ b_{i+1}=\sin \left(\kappa \pi b_i\right) \\ y_{i+1}=\left(a_{i+1}+b_{i+1}\right) \% 1 \end{array}\right.\tag{5} ai+1=sin(κπai)bi+1=sin(κπbi)yi+1=(ai+1+bi+1)%1(5)
式中: a i a_i ai b i b_i bi 的初始值取值范围为 ( 0 , 1 ) (0,1) (0,1); 控制参数 κ \kappa κ 1200 ; y i + 1 1200 ; y_{i+1} 1200;yi+1 为迭代混沌序列值; % \% % 为取余数运算。

2.2 粒子群改进

为了在优化过程的不同阶段动态协调全局搜索和局部搜索, 提出了如下新的粒子位置更新方程, 以 提高找到最优解的速度和精度, 而不削弱其全局搜 索能力。
X i ( t + 1 ) = { X i ( t ) + V i ( t + 1 ) , r 3 > 0.5 sin ⁡ ( t π 2 t max ⁡ ) X i ( t ) + u ( X g b ( t ) − X i ( t ) ) , λ i max ⁡ ( t ) > α ( 1 + v ) X i ( t ) , λ i  max  ( t ) ≤ α } r 3 ≤ 0.5 sin ⁡ ( t π 2 t max ⁡ ) (6) \begin{aligned} & \boldsymbol{X}_i(t+1)= \\ & \left\{\begin{array}{lr} \boldsymbol{X}_i(t)+\boldsymbol{V}_i(t+1), & r_3>0.5 \sin \left(\frac{t \pi}{2 t_{\max }}\right) \\ \boldsymbol{X}_i(t)+u\left(\boldsymbol{X}_{\mathrm{gb}}(t)-\boldsymbol{X}_i(t)\right), \lambda_{i \max }(t)>\alpha \\ (1+v) \boldsymbol{X}_i(t), & \lambda_{i \text { max }}(t) \leq \alpha \end{array}\right\} r_3 \leq 0.5 \sin \left(\frac{t \pi}{2 t_{\max }}\right) \end{aligned}\tag{6} Xi(t+1)= Xi(t)+Vi(t+1),Xi(t)+u(Xgb(t)Xi(t)),λimax(t)>α(1+v)Xi(t),r3>0.5sin(2tmaxtπ)λi max (t)α r30.5sin(2tmaxtπ)(6)
式中: t max ⁡ t_{\max } tmax 为总迭代次数; r 3 r_3 r3 [ 0 , 1 ] [0,1] [0,1] 之间的随机数; α \alpha α 为变异因子; v v v u u u 是服从高斯分布的随机数; λ i max ⁡ ( t ) \lambda_{i \max }(t) λimax(t) 是所有维度中 X i ( t ) \boldsymbol{X}_i(t) Xi(t) X g b ( t ) \boldsymbol{X}_{\mathrm{gb}}(t) Xgb(t) 之间的最大差值 的权重, 可以描述为
{ λ imax  ( t ) = max ⁡ { λ i 1 ( t ) , λ i 2 ( t ) , … , λ i k ( t ) , … , λ i n ( t ) } λ i k ( t ) = ∣ x i k ( t ) − x g b k ( t ) ∣ ∣ x g b k ( t ) ∣ (7) \left\{\begin{array}{l} \lambda_{\text {imax }}(t)=\max \left\{\lambda_{i 1}(t), \lambda_{i 2}(t), \ldots, \lambda_{i k}(t), \ldots, \lambda_{i n}(t)\right\} \\ \lambda_{i k}(t)=\frac{\left|x_{i k}(t)-x_{\mathrm{gbk}}(t)\right|}{\left|x_{\mathrm{gbk}}(t)\right|} \end{array}\right.\tag{7} {λimax (t)=max{λi1(t),λi2(t),,λik(t),,λin(t)}λik(t)=xgbk(t)xik(t)xgbk(t)(7)
式中: x i k ( t ) x_{i k}(t) xik(t) 是第 t t t 次迭代时第 i i i 个粒子位置的第 k k k 维 值, x g b k ( t ) x_{\mathrm{gb} k}(t) xgbk(t) 是第 t t t 次迭代时全局最佳位置的第 k k k 维值, 而 λ i k ( t ) \lambda_{i k}(t) λik(t) 则是 x i k ( t ) x_{i k}(t) xik(t) x g b k ( t ) x_{\mathrm{gb} k}(t) xgbk(t) 之间的差值与 x g b k ( t ) x_{\mathrm{gb} k}(t) xgbk(t) 的比值。 应注意, 随机数 u u u v v v 服从式(8)中的高斯分布。
{ u ∼ N ( 1 , σ u 2 ) , σ u = μ cos ⁡ ( ( t − 1 ) π 2 t max ⁡ ) v ∼ N ( r 4 , σ v 2 ) , σ v = r 5 (8) \left\{\begin{array}{l} u \sim \mathrm{N}\left(1, \sigma_u^2\right), \sigma_u=\sqrt{\mu \cos \left(\frac{(t-1) \pi}{2 t_{\max }}\right)} \\ v \sim \mathrm{N}\left(r_4, \sigma_v^2\right), \sigma_v=r_5 \end{array}\right.\tag{8} uN(1,σu2),σu=μcos(2tmax(t1)π) vN(r4,σv2),σv=r5(8)
式中: r 4 r_4 r4 [ − 1.5 , 1.5 ] [-1.5,1.5] [1.5,1.5] 之间的随机数, r 5 r_5 r5 [ 0 , 1 ] [0,1] [0,1] 之间的 随机数, μ \mu μ 是由式 (9) 确定的自适应系数。

式中: r 4 r_4 r4 [ − 1.5 , 1.5 ] [-1.5,1.5] [1.5,1.5] 之间的随机数, r 5 r_5 r5 [ 0 , 1 ] [0,1] [0,1] 之间的 随机数, μ \mu μ 是由式 (9) 确定的自适应系数。
μ = { 20 3 λ i  max  2 ( t ) − 7 λ i  max  ( t ) + 7 3 , α < λ i max ⁡ ( t ) ≤ 0.5 0.3 , λ i  max  ( t ) > 0.5 (9) \mu= \begin{cases}\frac{20}{3} \lambda_{i \text { max }}^2(t)-7 \lambda_{i \text { max }}(t)+\frac{7}{3}, & \alpha<\lambda_{i \max }(t) \leq 0.5 \\ 0.3, & \lambda_{i \text { max }}(t)>0.5\end{cases} \tag{9} μ={320λi max 2(t)7λi max (t)+37,0.3,α<λimax(t)0.5λi max (t)>0.5(9)
根据式 (8) 和 (9), 可以看出, 服从高斯分布 的随机数 u u u 的浓度不仅受迭代次数的影响, 还受参 数 λ max  ( t ) \lambda_{\text {max }}(t) λmax (t) 的影响。

考虑到惯性权重和加速度常数系数对寻找全局 最优的影响, , 加入了个体和全局 最优适应度的影响, 使惯性权重自适应调整, 而加速 度系数则直接采用了文献表达方式。因此, 惯 性系数 w i w_i wi 和加速度系数 c 1 、 c 2 c_1 、 c_2 c1c2 可以分别表示为:
w i = { ∣ w max ⁡ f ( X g b ( t ) ) f ( X p b i ( t ) ) − ( w max ⁡ − w min ⁡ ) t t max ⁡ ∣ , f ( X p b i ( t ) ) > 0 w max ⁡ − ( w max ⁡ − w min ⁡ ) t t max ⁡ , f ( X p b i ( t ) ) = 0 ∣ w max ⁡ f ( X p b i ( t ) ) f ( X g b ( t ) ) − ( w max ⁡ − w min ⁡ ) t t max ⁡ ∣ , f ( X p b i ( t ) ) < 0 (10) w_i=\left\{\begin{array}{cc} \left|\frac{w_{\max } f\left(\boldsymbol{X}_{\mathrm{gb}}(t)\right)}{f\left(\boldsymbol{X}_{\mathrm{pbi}}(t)\right)}-\frac{\left(w_{\max }-w_{\min }\right) t}{t_{\max }}\right|, & f\left(\boldsymbol{X}_{\mathrm{pbi}}(t)\right)>0 \\ w_{\max }-\frac{\left(w_{\max }-w_{\min }\right) t}{t_{\max }}, & f\left(\boldsymbol{X}_{\mathrm{pbi}}(t)\right)=0 \\ \left|\frac{w_{\max } f\left(\boldsymbol{X}_{\mathrm{pbi}}(t)\right)}{f\left(\boldsymbol{X}_{\mathrm{gb}}(t)\right)}-\frac{\left(w_{\max }-w_{\min }\right) t}{t_{\max }}\right|, & f\left(\boldsymbol{X}_{\mathrm{pbi}}(t)\right)<0 \end{array}\right.\tag{10} wi= f(Xpbi(t))wmaxf(Xgb(t))tmax(wmaxwmin)t ,wmaxtmax(wmaxwmin)t, f(Xgb(t))wmaxf(Xpbi(t))tmax(wmaxwmin)t ,f(Xpbi(t))>0f(Xpbi(t))=0f(Xpbi(t))<0(10)

{ c 1 = 2.5 − 2 t t max ⁡ c 2 = 0.5 + 2 t t max ⁡ (11) \left\{\begin{array}{l} c_1=2.5-\frac{2 t}{t_{\max }} \\ c_2=0.5+\frac{2 t}{t_{\max }} \end{array}\right.\tag{11} {c1=2.5tmax2tc2=0.5+tmax2t(11)
式中: w min  w_{\text {min }} wmin  为惯性权重的最小值, w max ⁡ w_{\max } wmax 为惯性权重的 最大值, f p b i f_{\mathrm{pb} i} fpbi 为粒子的个体最优适应性, f g b f_{\mathrm{gb}} fgb 为粒子的 全局最优适应性。

3.实验结果

在这里插入图片描述

4.参考文献

[1]刘磊,姜博文,周恒扬等.融合改进Sine混沌映射的新型粒子群优化算法[J/OL].西安交通大学学报:1-11[2023-05-25].http://kns.cnki.net/kcms/detail/61.1069.T.20230512.1619.002.

5.Matlab代码

6.Python代码

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

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

相关文章

vscode remote server tunnel内网穿透转发tcp,速率10kb每秒

参考: vscode网页版的正确打开方式(建立tunnel-p2p连接)_vscode打开网页_怪力左手的博客-CSDN博客 在vps(ubuntu20.04 可出网,无公网ip)上输入如下命令: 需要chisel这个工具,通过websocket转发tcp连接和启动socks5代理, cd /tmp; curl -L -O https://github.com/jpillora/c…

C++异步调用方法

C之future和promise future和promise的作用是在不同线程之间传递数据。使用指针也可以完成数据的传递&#xff0c;但是指针非常危险&#xff0c;因为互斥量不能阻止指针的访问&#xff1b;而且指针的方式传递的数据是固定的&#xff0c;如果更改数据类型&#xff0c;那么还需要…

基于SpringBoot+Vue的搬家服务系统

✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取项目下载方式&#x1f345; 一、项目背景介绍&#xff1a; 当今社会&#xff0c;…

实践指南-前端性能提升 270%

目录 一、背景 二、优化前 1. 了解测量工具及性能指标 1.1 Performance 1.2 最佳实践 1.3 SEO 2. 分析需要优化的地方 2.1 Performance 2.2 最佳实践 2.3 SEO 三、优化 Performance 1. 体积优化 1.1 代码压缩 1.2 代码分包 1.3 组件按需加载 1.4 工具库按需加载…

基于SpringBoot+Vue的超市货物管理系统

✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取项目下载方式&#x1f345; 一、项目背景介绍&#xff1a; 在1990年代初期&#…

ELK【elasticsearch+logstash+kibana】企业级日志分析系统

文章目录 一、ELK概述1. ELK简介2.ElasticSearch3. Logstash4.Kiabana5.Filebeat6.为什么要用ELK&#xff08;思考一下&#xff09;7.ELK的工作原理 二、ELK实验&#xff08;部署ELK日志分析系统&#xff09;1.关闭防火墙2.安装 Elasticsearch-head 插件 总结 一、ELK概述 1. …

第六章 Matlab的复数数据、字符数据和附加画图类型

在第二章中,我们学习了 MATLAB 基础数据类型:double 和 char。MATLAB 还有许 多的附加数据类型,在本章,我们将会了解它们中的一个。我们要讨论的附加数据类型是 MATLAB 支持的复数数据。我们也将学习如何使用 char 数据类型,以及如何把 MATLAB 数组扩展为多维数组。 本章…

如何使用wireShark的追踪流功能抓取并还原文件

简介 WireShark的追踪流功能可以帮我们抓取从网络上下载的各种文件&#xff0c;接下来就演示下如何抓取并且进行还原。 使用Nginx搭建文件存储服务器 只要是通过http网站下载的包&#xff0c;都可以通过追踪流工具进行抓取。这里为了演示&#xff0c;临时搭建一个Nginx文件存…

Redis的全局命令及相关误区

Redis中所说的数据结构是针对key-value中的value而言的。主要的结构包括String、哈希表、列表、集合等等在redis中存在16个库&#xff0c;涉及到后期的集群搭建只能使用0号库最为方便 查看所有键&#xff08;支持通配符&#xff09; keys * keys S*返回当前数据库中的键总数 …

设计原则-开闭原则

世界上没有任何一个项目是不需要迭代的&#xff0c;随着项目的发展壮大&#xff0c;会有越来越多的功能代码会被修改、添加、删除。据统计线上的生产事故90%都有由于变更引起的&#xff0c;因此为保证项目的迭代稳定性&#xff0c;我们需尽可能的遵守开闭原则。那开闭原则到底是…

Jeston Orin Nano Sdkmanager 自动化安装部署官网CUAD环境

大家好&#xff0c;我是虎哥&#xff0c;入手一块Jeston Orin nano 8G模块&#xff0c;这个模块因为是英伟达未来5年左右主推的模块&#xff0c;所以我逐步会将之前所有的应用都在这个模块环境上做适配&#xff0c;本章内容&#xff0c;我将主要围绕烧写安装系统后&#xff0c;…

R7-13 小明找前缀100000(假)

题目背景 小明最近上课天天睡觉&#xff0c;于是啥都不会。 一天&#xff0c;老师终于点兵点将点到他回答问题&#xff0c;你能帮他渡过难关吗&#xff1f; 现在老师给了小明 n 个由 0、1 构成的字符串&#xff0c;然后有 m 次询问&#xff0c; 每次询问给出一个由 0、1 构…

关于Vue3 ,看这一篇文档你就会用了

随着Vue3的到来&#xff0c;公司的新项目全部进行了升级&#xff0c;相比于Vue2&#xff0c;语法上个人觉得更简洁&#xff0c;更容易通俗易懂。首先安装vue3项目&#xff0c;这里我使用vite进行安装&#xff08;强烈推荐&#xff0c;启动速度贼快&#xff09; npm create vit…

Android 12.0状态栏居中显示时间和修改时间显示样式

1.概述 在12.0的系统rom定制化开发中,在systemui状态栏系统时间默认显示在左边和通知显示在一起,但是客户想修改显示位置,想显示在中间,所以就要修改SystemUI 的Clock.java 文件这个就是管理显示时间的,居中显示的话就得修改布局文件了 效果图如下: 在这里插入图片描述 …

算法基础学习笔记——⑩DFS与BFS\树与图

✨博主&#xff1a;命运之光 ✨专栏&#xff1a;算法基础学习 目录 DFS与BFS\树与图 ✨DFS ✨BFS &#x1f353;宽搜流程图如下&#xff1a; &#x1f353;宽搜流程&#xff1a; &#x1f353;广搜模板 ✨树与图 &#x1f353;树是特殊的图&#xff08;连通无环的图&am…

第09讲:SkyWalking Agent 启动流程剖析,领略微内核架构之美

微内核架构 SkyWalking Agent 采用了微内核架构&#xff08;Microkernel Architecture&#xff09;&#xff0c;那什么是微内核架构呢&#xff1f;微内核架构也被称为插件化架构&#xff08;Plug-in Architecture&#xff09;&#xff0c;是一种面向功能进行拆分的可扩展性架构…

英文论文(sci)解读复现【NO.8】基于注意机制和感受野的YOLOv5在唐卡图像缺陷识别中的应用

此前出了目标检测算法改进专栏&#xff0c;但是对于应用于什么场景&#xff0c;需要什么改进方法对应与自己的应用场景有效果&#xff0c;并且多少改进点能发什么水平的文章&#xff0c;为解决大家的困惑&#xff0c;此系列文章旨在给大家解读发表高水平学术期刊中的 SCI论文&a…

【Unity100个实用小技巧】世界Canvas自动隐藏,包含子物体

☀️博客主页&#xff1a;CSDN博客主页&#x1f4a8;本文由 萌萌的小木屋 原创&#xff0c;首发于 CSDN&#x1f4a2;&#x1f525;学习专栏推荐&#xff1a;面试汇总❗️游戏框架专栏推荐&#xff1a;游戏实用框架专栏⛅️点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd;&#…

【JavaEE】JUC(java.util.concurrent)的常见类以及线程安全的集合类

目录 1、JUC&#xff08;java.util.concurrent&#xff09;的常见类 1.1、Callable接口的用法&#xff08;创建线程的一种写法&#xff09; 1.2、ReentrantLock可重入互斥锁 1.2.1、ReentrantLock和synchronized的区别 1.2.2、如何选择使用哪个锁 1.3、Semaphore信号量 1…

pta(浙大第四版)五道经典练习题③

目录 ①7-4 IP地址转换 ②、查找日期 ③藏头词 四、IP地址转换 五、删除链表值为偶数的节点 ①7-4 IP地址转换 题述&#xff1a;IP地址转换&#xff1a;一个IP地址是用四个字节&#xff08;每个字节8个位&#xff09;的二进制码组成。输入32位二进制字符串&#xff0c;输…