粒子群算法(2)

news/2024/11/29 9:56:11/

上一期:粒子群算法(1)

线性递减惯性权重

在这里插入图片描述
惯性权重w体现的是粒子继承先前的速度的能力,Shi,Y最先将惯性权重w引入到粒子群算法中,并分析指出一个较大的惯性权值有利于全局搜索,而一个较小的权值则更利于局部搜索。为了更好地平衡算法的全局搜索以及局部搜索能力,Shi,Y提出了线性递减惯性权重LDIW(Linear Decreasing Inertia Weight),公式如下:
在这里插入图片描述

其他非线性递减

在这里插入图片描述

自适应惯性权重

在这里插入图片描述
一个较大的惯性权值有利于全局搜索而一个较小的权值则更利于局部搜索

随机惯性权重

最开始提出随机惯性权重的论文: Zhang L, Yu H , Hu S . A New Approach to lmproveParticle Swarm Optimization[J]. lecture notes in computer science, 2003,2723:134-139.
在这里插入图片描述

其他随机数

在这里插入图片描述

参考文献:基于随机惯性权重的简化粒子群优化算法[J].计算机应用研究,2014,031(002):361-363,391.

压缩因子法

在这里插入图片描述

参考文献: M.Clerc. The swarm and queen: towards a deterministic and adaptive particleswarm op-timization.Proc.Congress on Evolutionary Computation,Washington, DC…Piscataway,NJ:IEEE Service Center (1999)1951-1957

在这里插入图片描述

参考文献:
Eberhart R C. Comparing inertia weights andconstriction factors in optimization[c//Proceedings of the 2000 IEEE Congress on Evolutionary Computation, La Jolla,CA. IEEE,2000.

非对称学习因子

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

参考文献:毛开富,包广清,徐驰.基于非对称学习因子调节的粒子群优化算法[叮.计算机工程,2010(19):188-190.

测试函数

当你提出了一种新的优化算法后,你需要和别人之前提出的算法来进行PK,看你的算法有没有提高,下表给出了四种常见的测试函数:
在这里插入图片描述
维数:自变量x的个数,也是上面表达式中n的大小
取值范围:每个x对应的变化范围
理论极值:这个函数理论上的最小值
误差目标:只要我们求出来的最小值小于这个目标值就能被接受

张玮,王华奎.粒子群算法稳定性的参数选择策略分析[J.系统仿真学报,2009, 21(014):4339-4344.

改进

当粒子已经找到最佳位置后,再增加迭代次数只会浪费计算时间,那么我们能否设计一个策略,能够自动退出迭代呢?
(1)初始化最大迭代次数、计数器以及最大计数值(例如分别取100,0, 20)(2)定义“函数变化量容忍度”.一般取非常小的正数,例如10^(-6);
(3)在迭代的过程中,每次计算出来最佳适应度后,都计算该适应度和上一次迭代时最佳适应度的变化室(取绝对值);
(4)判断这个变化量和"函数变化量容忍度"的相对大小,如果前者小,则计数器加1;否则计数器清;
(5)不断重复这个过程,有以下两种可能:
①此时还没有超过最大迭代次数,计数器的值超过了最大计数值,那么我们
就跳出迭代循环,搜索结束。
②此时已经达到了最大迭代次数,那么直接跳出循环,搜索结束。

MATLAB自带函数

在这里插入图片描述

该函数主要参考的两篇文章:(该信息可在Matlab官网中查询)
[1]Mezura-Montes, E., and C.A.Coello Coello. “Constraint-handling in nature-inspired numerical optimization:Past, present and future.” Swarm and Evolutionary Computation.2011, pp. 173-194.
[2] Pedersen,M.E.“Good Parameters for Particle Swarm Optimization.” Luxembourg: Hvass Laboratories, 2010.

在这里插入图片描述

一些脑洞

粒子群算法的效率取决于惯性权重、自身因子、社会因子。相比普通算法,先自身因子较大后社会因子较大,有利于找到全局最优解和提高搜索效率。因此我构建了两个脑洞:

SIGMOD函数因子

用1-SIGMOD作为自身因子,SIGMOD作为社会因子,以此进行计算。

东亚模式因子

“个体因子”和“社会因子”让人联想到社会的经济发展,高速发展的东亚经济,或许可以套用在模型上,或许可以采用“经济奇迹”——韩国的个人收入中位数以及国家GDP总值的拟合曲线,来获得相关函数。


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

相关文章

QT5.12.9 修改源码支持热插拔

QT5.12.9 修改源码支持热插拔 思路来自文章:Qt之支持usb触摸屏热插拔(Qt5.7) qevdevtouchhandler.cpp新添加的内容:165行,256行,435-451行 直接替换以下三个文件,之后重新编译 1. qtbase/src/platformsupport/in…

R可视化07|ggplot2图层-标度图层(scale layer)-颜色盘篇

本文详细介绍ggplot2中颜色标度(Colour scales and legends),续前篇。 本文目录 3、颜色标度和图例(Colour scales and legends) ggplot2颜色理论简介

玩转数据可视化之R语言ggplot2:(十二)连续型颜色及图例设置

【R语言数据科学】:可视化篇 🌸个人主页:JOJO数据科学📝个人介绍:统计学top3高校统计学硕士在读💌如果文章对你有帮助,欢迎✌关注、👍点赞、✌收藏、👍订阅专栏✨本文收录于【R语言数据科学】本系列主要介绍R语言在数据科学领域的应用包括: R语言编程基础、R语言…

jmeter如何进行web脚本录制

目录 录制web脚本 (1)jmeter中设置HTTP代理 (2)浏览器中设置代理 (3)页面操作 (4)查看录制的web脚本 (5)脚本内容过滤 (6)脚本优化…

go mod vendor简明介绍

Go 语言在 go 1.6 版本以后编译 go 代码会优先从 vendor 目录先寻找依赖包,它具有以下优点: 复制依赖:go mod vendor 会把程序所依赖的所有包复制到项目目录下的vendor 文件夹中,所以即使这些依赖包在外部源(如 GitHu…

编写Pthreads程序实现直方图统计

编写一个Pthreads程序实现直方图统计&#xff0c;选择使用忙等待、互斥量和信号量来保证临界区的互斥&#xff0c;并分析方法的优点和缺点。 互斥量 #include<iostream> #include<fstream> #include<pthread.h> #include "time.h" #define fer(i…

源码奉送:宠物小精灵图鉴

不知道大家有没有玩过宠物小精灵&#xff0c;那一句“去吧&#xff0c;皮卡丘”却是我同年最深的回忆&#xff0c;我们玩的不是游戏&#xff0c;是情怀&#xff01; 这是在某论坛上看到的一个帖子&#xff0c;他是模仿手游“宠物小精灵官方版”制作的离线图鉴&#xff0c;可以查…

开源自己开发的一款宠物小精灵游戏

链接 https://github.com/IceLanguage/Pokemon_Unity3D_Entitas 游戏说明 介绍 PokemonBattle是一款完全由我个人独立开发&#xff0c;基于UnityC#Entitas-CSharp的安卓手机游戏&#xff0c;玩家可以操控训练家进入草地&#xff0c;草地中会冒出精灵与玩家作战&#xff0c;…