粒子群算法(2)

article/2025/10/1 10:47:16

上一期:粒子群算法(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://chatgpt.dhexx.cn/article/lFSMtX0j.shtml

相关文章

粒子群算法简介

粒子群算法简介 前言 本文内容借鉴于 刘衍民的博士论文:“粒子群算法的研究及应用”. 现有的大多数群智能算法,如:乌鸦算法、鸽子算法、蚁群算法、萤火虫算法和灰狼优化算法等,都可以归类为粒子群算法.(个人觉得,这些算法就是整个稀奇古怪的名字,颇有舞文弄墨,强…

粒子群算法(1)

粒子群算法 1.入门 粒子群算法,其全称为粒子群优化算法(Particle Swarm Optimization,PsO)。它是通过模拟鸟群觅食行为而发展起来的一种基于群体协作的搜索算法。 2.什么是启发式算法? 启发式算法百度百科上的定义:一个基于直观或经验构造的算法,在可…

粒子群优化算法

背景 1995 年,Kennedy 和 Eberhart 两位博士共同 提出了粒子群优化算法 (Particle swarm optimization, PSO) PSO 算法中,将鸟群的个体位置或食物当作优化问题的解,利用群体中个体与最优个体以及个体之间的信息交互,引…

粒子群算法

粒子群算法简介 粒子群算法,其全称为粒子群优化算法(Particle Swarm Optimization,PSO) 。它是通过模拟鸟群觅食行为而发展起来的一种基于群体协作的搜索算法。粒子群算法属于启发式算法也叫智能优化算法,其基本思想在于通过群体中个体之间的协作和信息…

粒子群(PSO)算法的理解与应用

最近在学习粒子群算法,看了很多资料都有点摸不清头脑,直到看了一篇博客中超级简洁的粒子群C实现代码,才明白粒子群算法的原理,真心感谢博主,在此贴出博主的博客地址: http://blog.sina.com.cn/s/blog_4ed02…

6套粒子群算法(内含matlab代码)

粒子群算法(1)----粒子群算法简介 一、粒子群算法的历史 粒子群算法源于复杂适应系统(Complex Adaptive System,CAS)。CAS理论于1994年正式提出,CAS中的成员称为主体。比如研究鸟群系统,每个鸟在这个系统中就称为主体。主体有适…

粒子群算法(PSO)详解

1 粒子群PSO算法简介 1.1 维基百科的解释 粒子群算法(Particle Swarm Optimization,简称PSO),或称粒子群优化,是属于人工智能算法,公元1995年由肯尼迪(Kennedy)与埃伯哈特&#xf…

优化算法——粒子群算法(PSO)

一、粒子群算法的概述 粒子群算法(PSO)属于群智能算法的一种,是通过模拟鸟群捕食行为设计的。假设区域里就只有一块食物(即通常优化问题中所讲的最优解),鸟群的任务是找到这个食物源。鸟群在整个搜寻的过程中,通过相互…

粒子群算法(PSO) 介绍

算法理解 粒子群算法,又叫鸟群算法,可见是受鸟群捕食行为的启发。它属于遗传算法、群智算法。粒子群算法关注于粒子的两个属性:位置和速度。每个粒子在空间中单独搜寻,它们记得自己找到的过最优解,也知道整个粒子群当…

【优秀作业】粒子群算法

粒子群优化算法 一、概述 粒子群优化算法(Particle Swarm Optimization,PSO)的思想来源于对鸟捕食行为的模仿,最初,Reynolds.Heppner 等科学家研究的是鸟类飞行的美学和那些能使鸟群同时突然改变方向,分散…

Dex加固与反编译

编译与反编译 编译 将java代码转换为Dalvik字节码 将res资源文件、AndroidManifest.xml等配置文件编译为二进制文件 反编译 将DEX文件转换为jar包或者Smali文件 将二进制资源文件还原为资源源码文件 编译与反编译是相对的过程,转换过程分别由编译器和反编译器实…

编译与反编译

编译:高级语言转换成计算机认识的低级语言 编译的主要的目的是将便于人编写、阅读、维护的高级语言所写作的源代码程序,翻译为计算机能解读、运行的低级语言的程序,也就是可执行文件。 反编译:Java的反编译,一般是将…

反编译网站

最近帮一个公司反编译了一个他们在用的网站,是一个印照片,然后群(384389229)里面的伙伴们(专指:魂牵悲梦),叫我写个反编译的教程出来,由于前面时间很忙,一拖再拖到了现在终于有空就写…

编译/反编译

1.Android APK 1.软件 1.apktool 1.作用:反编译apk或重新打包apk 2.dex2jar 1.作用:将Android的可执行文件.dex转换为.jar 3.jd-gui 1.作用:方便阅读jar文件的代码工具 2.步骤 1.通过apktool将apk软件反编译2.使用dex2jar将classes.dex文件转…

反编译(Decompilers)

工具下载 调试工具反汇编工具反编译工具PE相关工具编译工具编辑工具.NET工具脱壳工具加壳工具补丁工具监视软件代码计算 密码学工具其它 反编译(Decompilers) VFP程序 UnFoxAll 3.0专业增强版  优点:界面和功能较实用缺点:支持到…

反编译器

转自:https://blog.csdn.net/kongwei521/article/details/54927689 在项目开发过程中,估计也有人和我遇到过同样的经历:运行环境出现了重大Bug亟需解决、或者由于电脑挂了、旧代码覆盖新代码,而在这种情况下,我们不能…

如何构建反汇编代码?

大型的非结构化反汇编指令堆几乎不可能被分析,所以大多数反汇编工具都会以某种简单的分析方法来构造反汇编代码。在本节中,我们将会讨论通过反汇编工具恢复的通用代码和数据结构,以及这些通用代码和数据结构会如何帮助我们进行二进制分析。 …

反编译

反编译 我们都知道,Android程序打完包之后得到的是一个APK文件,这个文件是可以直接安装到任何Android手机上的,我们反编译其实也就是对这个APK文件进行反编译。Android的反编译主要又分为两个部分,一个是对代码的反编译&#xff…

解决openai.error.APIConnectionError: Error communicating with OpenAI

一、问题描述 可以fanqiang,但是使用openai的接口还是报错如下的openai.error.APIConnectionError: Error communicating with OpenAI问题: File "D:\Anaconda3\envs\gms\lib\site-packages\openai\api_resources\abstract\engine_api_resource.py…

【Nginx应用】1.理解正、反向代理和负载均衡

在讲解Nginx之前,我们首先要理解什么是正向代理和反向代理。因为Nginx作为负载均衡的作用时,扮演的就是一个代理的角色,理解了正反向代理,对我们接下来学习Nginx会很有帮助1.正向代理 在我们的日常生活中其实就已经使用到了正向代…