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

融合改进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.mfbz.cn/a/25446.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

OpenGl之摄像机

文章目录 摄像机/观察空间摄像机位置摄像机方向右轴上轴 Look At自由移动移动速度鼠标输入缩放摄像机源码 OpenGL本身没有摄像机(Camera)的概念&#xff0c;但我们可以通过把场景中的所有物体往相反方向移动的方式来模拟出摄像机&#xff0c;产生一种我们在移动的感觉&#xff…

第12届蓝桥杯Scratch省赛真题集锦

编程题 第 1 题 问答题 下雨 题目说明 编程实现: 下雨。 具体要求: 1).点击绿旗,角色与背景如下图所示呈现在对应位置; 2).小猫说:“快下雨了,赶快回家”,小狗说:“我再玩一会”; 3).开始下雨,雨滴持续下落, 4).小猫躲在亭子里,雨滴在小猫和亭子后落下, 5).小狗在雨中…

java-基础语法(二)

java-基础语法(二) 一、流程控制语句 1.1 流程控制语句分类 顺序结构 分支结构(if, switch) 循环 结构(for, while, do…while) 1.2 顺序结构 顺序结构执行流程图&#xff1a; 1.3 分支结构之if语句 if语句格式1 格式&#xff1a;if (关系表达式) {语句体; }执行流程&…

【Jenkins+Ant+Jmeter】持续集成接口测试平台搭建

一、环境准备&#xff1a; 1、JDK&#xff1a;Java Downloads | Oracle 2、Jmeter&#xff1a;Apache JMeter - Download Apache JMeter 3、Ant&#xff1a;Apache Ant - Binary Distributions 4、Jenkins&#xff1a;Jenkins 二、Jemter脚本准备&#xff1a; 1、脚本目录&a…

云服务器和专用服务器之间的区别

在当今数字化时代&#xff0c;服务器是构建和支持各种应用和服务的基础设施之一。随着技术的发展和需求的增加&#xff0c;出现了不同类型的服务器&#xff0c;其中最常见的是云服务器和专用服务器。本文将详细介绍云服务器和专用服务器之间的区别&#xff0c;以帮助您更好地了…

多线程安全的案例展示与解决方案

一、概念 1. 什么是线程安全 当多个线程访问一个对象时&#xff0c;如果不用考虑这些线程在运行时环境下的调度和交替执行&#xff0c;也不需要进行额外的同步&#xff0c;或者在调用方进行任何其他的协调操作&#xff0c;调用这个对象的行为都可以获得正确的结果&#xff0c…

【Linux】iptables防火墙

文章目录 一、Linux防火墙基础1.Linux防火墙概术2.netfilter/iptables3.四表五链4.规则链之间的匹配顺序 二、iptables 安装1.常用的控制类型2.常用的管理选项 三、示例演示1.添加新的规则2.查看规则列表3.删除规则4.清空规则 四、规则的匹配1.通用匹配2.隐含匹配3.显式匹配 一…

Mybatis generator

文章目录 依赖式使用引入依赖配置文件设置生成使用中出现的异常 Mybatis中javaType和jdbcType对应关系int、bigint、smallint 和 tinyint是使用整数数据的精确数字数据类型。 插件式使用添加依赖和插件创建逆向工程的配置文件执行MBG插件的generate目标执行结果 逆向工程&#…

shell SNAT与DNAT

文章目录 SNATSNAT原理与应用SNAT实验 DNATDNAT原理与应用DNAT实验 SNAT SNAT原理与应用 SNAT 应用环境&#xff1a;局域网主机共享单个公网IP地址接入Internet&#xff08;私有不能早Internet中正常路由&#xff09; SNAT原理&#xff1a;修改数据包的源地址。 SNAT转换前提…

C++进阶 —— lambda表达式(C++11新特性)

目录 一&#xff0c;模板函数sort 二&#xff0c;lambda表达式 一&#xff0c;模板函数sort 在C98中&#xff0c;如对一个数据集合中的元素进行排序&#xff0c;可使用模板函数sort&#xff0c;如元素为自定义类型&#xff0c;需定义排序时的比较规则&#xff1b;随着C的发展…

intel驱动程序和支持助理常见问题:不识别、无法检测等问题解决方法

起因&#xff1a; wifi驱动有点问题&#xff0c;于是想着更新一下官方的驱动&#xff0c;下载intel驱动程序和支持助理并安装完成后&#xff0c;打开成了这个样子&#xff0c;刷新多少次都没有用&#xff0c;就是不识别。 解决方法&#xff1a; 经过一波胡乱操作&#xff0…

【Linux入门】Linux权限及管理

【Linux入门】Linux权限及管理 目录 【Linux入门】Linux权限及管理Linux权限管理文件访问者的分类文件类型和访问权限&#xff08;事物属性&#xff09; 文件权限值的表示方法文件访问权限的相关设置方法目录的权限实现共享目录粘滞位目录权限总结 作者&#xff1a;爱写代码的刚…

算法基础学习笔记——⑫最小生成树\二分图\质数\约数

✨博主&#xff1a;命运之光 ✨专栏&#xff1a;算法基础学习 目录 ✨最小生成树 &#x1f353;朴素Prim &#x1f353;Kruskal算法 ✨二分图 &#x1f353;匈牙利算法 ✨质数 &#x1f353;&#xff08;1&#xff09;质数的判定——试除法 &#x1f353;&#xff08;2&…

(转载)基于遗传算法的多目标优化算法(matlab实现)

1 理论基础 1.1 多目标优化及Pareto最优解 多目标优化问题可以描述如下&#xff1a; 其中&#xff0c;f(x)为待优化的目标函数&#xff1b;x为待优化的变量&#xff1b;Ib和ub分别为变量x的下限和上限约束&#xff1b;Aeq*xbeq为变量x的线性等式约束&#xff1b;A*x≤b为变…

数据库作业

目录 数据库teaching中的表结构和表记录。 问题&#xff1a; 答案&#xff1a; 数据库teaching中的表结构和表记录。 &#xff08;1&#xff09;学生信息表student    #student表结构      create table if not exists student (      studentno char(11) not…

c++ 11标准模板(STL) std::map(六)

定义于头文件<map> template< class Key, class T, class Compare std::less<Key>, class Allocator std::allocator<std::pair<const Key, T> > > class map;(1)namespace pmr { template <class Key, class T, clas…

【Linux驱动】认识驱动(驱动的概念、驱动分类)

目录 1、什么是驱动&#xff1f; 2、应用程序调用驱动基本流程 3、file_operations 结构体 4、驱动的分类 1、什么是驱动&#xff1f; 驱动就是一段程序&#xff0c;能够获取外设或者传感器数据、控制外设。驱动获取到的数据会提交给应用程序。 在 Linux 中一切皆为文件&…

物联网GPRS模块流量计算

物联网GPRS模块流量计算 MQTT(消息队列遥测传输) 是ISO 标准下一个基于TCP/IP的消息发布/订阅传输协议。 一、TCP消耗流量计算 以太网数据包结构&#xff1a; 以太网首部 IP首部 TCP首部 APPL首部 用户数据 以太网尾部 以太网首部为14个字节 IP首部为20个字节 TCP首部…

【CesiumJS入门】(1)创建Viewer及相关配置项

前言 在上一篇博客中&#xff0c;我们直接在vue组件完成初始渲染并创建 DOM 节点后通过 const map new Cesium.Viewer(cesiumContainer)构建了一个地球场景。 而本篇&#xff0c;我们将会专门把地球创建的方法写在一个js文件中&#xff0c;以便后续的调用。 同时&#xff0…

【JavaSE】Java基础语法(三十二):Stream流

文章目录 1. 体验Stream流2. Stream流的常见生成方式3. Stream流中间操作方法【应用】4. Stream流终结操作方法【应用】5. Stream流的收集操作 1. 体验Stream流 案例需求 按照下面的要求完成集合的创建和遍历 创建一个集合&#xff0c;存储多个字符串元素把集合中所有以"…
最新文章