【粒子群算法PSO】基本原理及多种改进方法

news2024/11/13 10:42:28

【粒子群算法Matlab仿真定制】:

QQ:491052175

1. 粒子群算法的发展趋势

粒子群算法,又称粒子群优化算法(Particle swarm opyimization, PSO),是近年来新发展起来的进化算法。该算法和模拟退火算法相似,同样从随机解出发,通过迭代以寻求最优解,它也通过适应度来评价解的品质,其优点是比遗传算法更为简单,没有遗传算法的“交叉”和“变异”操作,它通过追随当前搜索到的最优值达到全局最优的目的。目前,粒子群算法的发展趋势如下:

(1)粒子群优化算法的改进。粒子群优化算法主要应用在解决空间按函数的优化问题和单目标优化问题上,主要研究方向是将粒子群优化算法应用于离散空间优化问题和多目标优化问题。但其不足之处在于如何充分结合其他进化类算法来发挥其自身优势仍是值得研究的重点。

(2)粒子群优化算法的理论分析。粒子群优化算法提出的时间不长,数学分析很不成熟,存在较多不完善和未涉及的问题,对算法运行行为、收敛性、计算复杂性的分析较少。因此,如何知道参数的选择和设计,如何设计适应值函数,如何提高算法在解空间搜索的效率算法收敛以及对算法模型本身的研究都需要在理论上进行更深入的研究等等,都是粒子群优化算法的研究方向。

(3)粒子群算法的生物学基础。如何根据群体提进行行为完善算法,将群体智能引入算法中,借鉴生物群体进行规划和进化的智能型也是学者关注的问题。

(4)粒子群优化算法与其他进化类算法的比较研究。与其他进化算法的融合,如何将其他进化算法的优点和粒子群优化算法相结合,构造出有特色有实用价值的混合算法是当前算法改进的一个重要方向。

(5)粒子群优化算法的应用。算法的有效性必须在应用中才能体现出来,广泛开拓粒子群优化算法的应用领域,也将对深入研究该算法有着重要的意义。

2. 粒子群算法的研究内容

粒子群算法是一非常简单而又能够有效优化各种函数的算法。从某种程度上说,此算法介于遗传算法和进化规划之间。此算法非常依赖于随机过程,这也是和进化规划的相似之处,算法种朝全局最优和局部最优靠近的调整非常类似于遗传算法中的交叉算子。其主要研究内容有:(1)寻找全局最优点;(2)有较高的收敛速度。

3. 粒子群算法的特点

粒子群算法的本质是随机搜索算法,是一种新兴的智能优化技术,是群体智能中的一个新的分支,也是对简单社会系统的模拟。该算法能以较大的概率收敛于全局最优解。实践证明,它适合在动态、多目标优化环境中寻找,有着更快的计算速度和更好的全局搜索能力。具体特点有:

(1)PSO是基于群体智能理论的优化算法,通过群体中粒子间的合作于竞争产生的群体智能指导优化搜索。与进化算法比较,PSO是一种更为高效的并行搜索算法。

(2)PSO与GA有很多共同之处,两者均是随机初始化种群,使用适应值来评价个体的优劣程度和进行一定的随即搜索。但PSO是根据自己的速度来决定搜索,没有GA的明显交叉和编译,保留了基于种群的全局搜索策略,但采用了简单的速度-位移模型,避免了复杂的遗传操作。

(3)由于每个粒子在算法结束时仍保持着其个体极值。因此,若将PSO用于调度和决策问题时,可以给出多种有意义的选择方案。而基本遗传算法在结束时,只能得到最后一代个体的信息,前面迭代的信息未被保留。

(4) PSO特有的记忆使其可以动态地跟踪当前的搜索情况并调整其搜索策略。

(5)PSO有良好的机制来有效地平衡搜索过程的多样性和方向性。

(6)在收敛的情况下,由于所有的粒子都向最优解的方向飞去,所以粒子趋于同一化(失去了多样性)使得后期收敛速度明显变慢,以致算法收敛到一定精度后无法继续优化,因此许多学者都致力于提高PSO算法的性能。

(7)PSO算法对种群大小不十分敏感,即种群数目下降时,性能下降不是很大。

4. 粒子群算法的应用

粒子群算法主要作为求解复杂系统优化问题的通用框架,因其不依赖于问题的具体领域,有着很强的适应性,因此被广泛用于很多学科。主要应用领域有:

(1)约束优化。随问题的增多,约束优化问题的搜索空间也急剧变换,有时在目前的计算机上用枚举法很难甚至不可能求出其精确最优解。粒子群算法是解决该类问题的最佳工具之一。实践证明,粒子群算法对于约束优化中的规划,离散空间组合问题的求解非常有效。(2)函数优化。(3)机器人智能控制。机器人是一类复杂的难以精确建模的人工系统,而粒子群算法可用于此类机器人群搜索,如机器人的控制与协调,移动机器人路径规划,因此PSO是该领域较为重要的应用。(4)电力系统领域。 PSO在电力系统方面的配电网扩展规划、检修计划、机组组合等。随着粒子群优化理论研究的深入,PSO还将在电力市场竞价交易等其他领域发挥巨大的应用潜力。(5)工程设计问题。在建立数学模型上,很难精确求解,即使简化后可求解,但因简化得到的结果与实际有较大误差。而PSO已经在解决复杂调度问题上极其的有效,如电路及滤波设计、神经网络训练、控制器设计与优化、任务分配等。(6)生物医学领域。如根据PSO提出的自适应多峰生物测定融合算法,医学成像等的广泛应用。(7)通信领域。包括路由选择及移动通信基站布置优化,在顺序码分多址链接方式(DC-CDMA)通信系统中使用粒子群算法,可获得可移植的有力算法并提供并行处理能力。比传统先前的算法有了显著的优越性,还可以应用到天线阵列控制和偏振模色散补偿等方面。(8)交通领域。在物流配送供应领域中要求以最少的车辆数,最小的车辆总行程来完成货物的配送任务;在交通控制领域,城市交通问题是困扰城市发展和制约城市经济建设的重要因素。

5. 基本粒子群算法

5.1 算法基本原理

PSO从这种模型种得到启示并用于解决优化问题。

5.2 算法构成要素

1. 粒子群的编码方法

基本粒子群算法使用固定长度的二进制符号串来表示群体中的个体,其等位基因是由二值符号集{0,1}组成的。初始群体种各个个体的基因值可用均匀发分布的随机数来生成。

2. 个体适应度评价

通过确定局部最优迭代达到全局最优收敛,得出结果。

3. 基本粒子群算法的运行参数

整个粒子群算法包含了7个运行参数需要设定。包含以下:

(1)r:粒子群算法的种子数,对粒子群算法中的种子数值可以随机生成,也可以固定为一个初始值,能够涵盖目标函数的范围内。

(2)m:粒子群群体大小,即群体中所含个体的数量,一般取20~100。在变量比较多的时候可以取100以上较大的数。

(3)max_d:一般以最大迭代次数以最小误差的要求满足的。粒子群算法的最大迭代次数也是终止条件数。

(4)r1,r2: 两个在[0,1]之间变化的加速度权重系数随机产生

(5)c1,c2: 加速度数,取随机2左右的值

(6)w:惯性权重产生的。

(7)\upsilon _{k}x_{k}:一个粒子的速度和位移数值,用粒子群算法迭代出每一组数据

5.3 算法参数设置

PSO算法一个最大的优点是不需要调节太多的参数,但是算法中少数几个参数却直接影响着算法的性能以及收敛性。目前,PSO算法的理论研究尚处于初始阶段,所以算法的参数设置在很大程度上还依赖于经验。

5.4 算法基本流程

基本粒子群算法的流程图如下图所示,其具体过程包含如下:

(1)初始化粒子,包括随机位置和速度;

(2)计算粒子的适应度值

(3)寻找个体极值(Pbest)和群体极值(Gbest)

(4)在迭代过程中,粒子根据个体极值和群体极值来更新其自身的速度和位置;

(5)再次计算粒子的适应度值

(6)对于解空间里每个粒子,将其适应度值与其最好位置 pbest作比较,如果较好,则取代之前的pbest;

(7)对每个粒子,将其适应度值与最好位置 gbest作比较。如果更好,则取代先前的gbest;

(8)判断是否达到终止条件,若满足,则结束循环;若未达到结束条件则转Step4

6. 粒子群算法的改进

6.1 权重改进的粒子群算法

6.1.1 随机权重法

随机权重法的原理是将标准PSO算法的惯性权值w设定为随机数,这种处理优势如下:

(1) 当粒子在起始阶段就接近最好点,随机产生的w可能为相对较小的值,由此可以加快算法的收敛速度。

(2) 克服w线性递减造成的算法不能收敛到最好点的局限

     惯性权重的修改公式为

其中,N(0,1)表示标准状态分布的随机数

随机权重法的计算步骤如下:

1.随机设置各个粒子的速度和位置

2.评价每个粒子的适应度,将粒子的位置和适应度值存储在粒子的个体极值Pbest中,将所有Pbest中最优适应度值的个体位置和适应度值保存在全局极值中Gbest中。

(3)更新粒子位移和速度;

(4) 更新权重      

(5)将每个粒子的适应度值和粒子的最好位置作比较,如果相近,则将当前值作为粒子最好的位置。比较当前所有的Pbest和Gbest,更新Gbest

(6)当算法达到其停止条件,则停止搜索并输出结果,否则则返回步骤3继续搜索

6.1.2 线性递减权重法

针对PSO算法容易早熟及后期容易在全局最优解附近产生振荡现象,提出了线性递减权重法,即使惯性权重依照线性从大到小递减,其变化公式为

其中,Wmax表示惯性权重最大值,Wmin表示惯性权重最小值;t表示当前迭代步数。

随机权重法的计算步骤如下:

(1)随机设置各个粒子的速度和位置

(2)评价每个粒子的适应度值,将粒子的位置和适应度值存储在粒子的个体极值Pbest中,将所有Pbest中最优适应度值的个体位置和适应度值保存在全局极值Gbest中。

(3)更新粒子的位移和速度:

(4)更新权重

(5)将每个粒子的适应度值和粒子的最好位置作比较,如果相近,则将当前值作为粒子最好的位置。比较当前所有的Pbest和Gbest,更新Gbest

(6)当算法达到其停止条件,则停止搜索并输出结果,否则则返回步骤3继续搜索

6.1.3 自适应权重法

粒子适应度值是反应粒子当前位置优劣的一个参数。对应某些具有较高适应度值的粒子Pi,在Pi所在的局部区域可能存在能够更新全局最优的点Px,即Px表示的解要优于全局最优。

为了使全局最优能够迅速更新,从而迅速找到Px,应该减小粒子Pi的惯性权重,从而提高其局部寻优的能力;而对于适应度较低的粒子,当前位置较差,所在区域存在优于局部最优解的概率较低,为了跳出当前区域,应当增大惯性权重,增强全局搜索能力。

1)依据早熟收敛程度和适应度值进行调整

根据种群中的早熟收敛成都和个体适应度值,可以确定惯性权重的变化。设定粒子Pi的适应度值为fi,最优粒子适应度值是fm,则粒子群的平均适应度值是favg,将优于平均适应度值的粒子适应度值求平均favg',则定于Δ=|fm-favg'|。

依据fi,fm,favg将群体分为3个子群,分别进行不同的自适应操作,其惯性权重的调整如下:

1.如果fi优于fm, 那么

2.如果fi优于favg',但是次于fm,则惯性权重保持不变。

3.如果fi次于favg', 那么

其中k1和k2为控制参数,k1用来控制w的上限,k2用来控制w的调节能力。

当算法停止时,如果粒子的分布分散,则Δ比较大,w变小,此时算法局部搜索能力加强,从而使得群体趋于收敛;如果粒子的分布聚集,则Δ比较小,w变大,使得粒子具有较强的探查能力,从而有效地跳出局部最优

2)根据全局最优点的距离进行调整

一些学者认为惯性权重的大小还和其距离全局最优点的距离有关,并提出了各个不同的粒子惯性权重不仅随着迭代次数的增加而递减,还随着距离全局最优点的距离增加而递增,即全中国w随着粒子的位置不同而动态变化。目前大多采用的是非线性动态惯性权重系数公式:

其中f表示粒子实时的目标函数值;favg和fmin分别表示当前所有粒子的平均值和最小目标值。从上面的公式可以看出,惯性权重随着粒子目标函数值的改变而改变。

当粒子目标值分散时,减小惯性权重;当粒子目标值一致时,增加惯性权重;

根据全局最优点的距离调整算法的基本步骤如下:

(1)随机设置各个粒子的速度和位置

(2)评价每个粒子的适应度值,将粒子的位置和适应度值存储在粒子的个体极值Pbest中,将所有Pbest中最优适应度值的个体位置和适应度值保存在全局极值Gbest中。

(3)更新粒子的位移和速度:

(4)更新权重

(5)将每个粒子的适应度值和粒子的最好位置作比较,如果相近,则将当前值作为粒子最好的位置。比较当前所有的Pbest和Gbest,更新Gbest

(6)当算法达到其停止条件,则停止搜索并输出结果,否则则返回步骤3继续搜索

6.2 混合粒子群算法

正在编写中....

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

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

相关文章

Vue(十二) Vuex、四个map方法的使用、Vuex模块化+namespace命名空间

文章目录 一、Vuex前言:求和案例1. 搭建Vuex环境2. 基本使用3. 常见疑惑4. getters5. 四个map方法的使用(1) mapState(2) mapGetters(3) mapActions(4) mapMutations 6. 模块化命名空间namespace6.1 模块化6.2 模块化后读取数据 一、Vuex Vuex是一个Vue插件&#x…

FPGA与高速ADC接口简介

引言:本文介绍FPGA与高速ADC接口方式和标准以及JESD204与FPGA高速串行接口。 1. 高速ADC与处理器互联需要权衡的因素 如图1所示,ADC模数转换器可以与微控制器、DSP、FPGA以及ASIC均可以实现互联,在进行选择时,需要考虑以下因素&…

强化学习实操入门随笔

碎碎念:经过思考,打通底层逻辑,我认为未来ai的功能是在沟通领域代替人,未来人-人模式(媒介是死的语言,比如看古人留下的文字、聊天的暂时不在)会变成人-ai替身-人模式(符合本人想法的…

上市公司财务数据分析系统

前言 1.拟解决的关键问题或技术: 本研究旨在解决企业在财务管理方面的主要问题,即如何通过对财务数据进行深度挖掘,实现对未来财务趋势的预测和风险的识别。具体地,该研究将重点解决以下问题: 1.构建有效的财务指标体系、设计合理的特征工程和指标构建方法,以充分反映…

Java基于小程序公考学习平台的设计与实现

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…

QT实现简易文件夹

使用UI界面实现简易文件夹 1、实现功能 1、双击文件夹&#xff0c;进入文件夹的下一层 2、点击回退按钮、返回上一级 3、如果是文本文件、则调用记事本的程序、显示文本内容 2、widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QDir>…

《深度学习》OpenCV 图像边缘检测 算法解析及代码演示

目录 一、图像边缘检测 1、什么是边缘检测 2、常用的边缘检测算法 1&#xff09;Sobel算子 2&#xff09;Scharr 算子 3&#xff09;Canny边缘检测算法 4&#xff09;Laplacian算子 3、边缘检测流程 1&#xff09;预处理 2&#xff09;计算梯度 3&#xff09;非极大值抑制 …

微型直线导轨高精度运行的工作原理

微型导轨是一种用于高精度定位和运动控制的传动装置&#xff0c;常用于微小化、高精密度化的机械设备中&#xff0c;如IC制造设备、半导体设备、高速移载的设备、精密测量、检测仪器、医疗设备、X-Y table&#xff0c;以及高速皮带驱动的设备等小型化设备。 微型导轨的构成相对…

Quartz.Net_持久化

简述 通常而言&#xff0c;Quartz.Net的数据默认是存储在运存中的&#xff0c;换言之&#xff1a;断电即失。所以在默认情况下&#xff0c;当系统重启后&#xff0c;原先的所有任务、触发器、调度器都会失效 为避免上述情况的发生&#xff0c;可以对Quartz.Net进行持久化设置…

支持函数库功能,支持对接豆包、腾讯混元、Amazon Bedrock等模型供应商,MaxKB v1.5.0版本发布

2024年9月2日&#xff0c;MaxKB开源知识库问答系统正式发布v1.5.0版本。 在v1.5.0社区版中&#xff0c;应用编排方面&#xff0c;MaxKB新增函数库功能&#xff0c;支持用户在应用编排时调用函数&#xff1b;模型管理方面&#xff0c;MaxKB新增对豆包、腾讯混元和Amazon Bedroc…

Datawhale AI夏令营 第五期 CV方向 Task2笔记

Task2&#xff1a;建模方案解读与进阶 YOLO介绍 YOLO&#xff08;You Only Look Once&#xff09;是一种流行的目标检测算法&#xff0c;于2015年首次提出 。YOLO的核心思想是将目标检测任务转化为一个回归问题&#xff0c;通过单个卷积神经网络&#xff08;CNN&#xff09;直…

Linux git的基本使用安装提交 和 gdb的使用

目录 安装git 首次使用git的配置 拉取仓库 步骤1&#xff1a;新建仓库 步骤2:复制仓库地址 步骤3&#xff1a;远端仓库拉取到本地 上传代码 常用指令 安装git sudo apt-get install git # Ubuntu/Debian sudo dnf install git # Fedora sudo yum insta…

惠中科技光伏清洗剂:点亮绿色能源未来

在当今全球追求可持续发展的时代&#xff0c;光伏产业作为清洁能源的重要代表&#xff0c;正发挥着日益关键的作用。而在光伏产业的高效运行中&#xff0c;惠中科技的光伏清洗剂犹如一颗璀璨的明珠&#xff0c;为光伏板的清洁与维护贡献着卓越力量。 一、光伏产业的挑战与需求…

SAP CAP(Cloud Application Programming)知识介绍和学习路径

1. 框架简介 1.1 什么是CAP&#xff1f; CAP&#xff08;Cloud Application Programming&#xff09;是SAP推出的一种现代化开发框架&#xff0c;旨在简化和加速云原生应用程序的开发。 CAP框架基于开放标准和技术&#xff0c;如Node.js、Java、OData和SQL&#xff0c;提供了…

删除重复的行

Excel的有7列数字&#xff0c;有些数字整行重复。 ABCDEFG11234567276543213123456741234567511111116111111177777777 要求删掉重复的行。 IJKLMNO1765432127777777 使用 SPL XLL&#xff0c;输入公式&#xff1a; spl("?.group(~).select(~.len()1).conj()",…

Windows、Mac安装配置Nodejs【保姆级教程】

安装配置Nodejs 最近需要使用whistle抓包&#xff0c;发现依赖nodejs环境&#xff0c;同时环境为windows&#xff0c;故在此记录。 1 windows 下载nodejs 官网地址&#xff1a;https://nodejs.org/en/ 下载完成后&#xff0c;双击安装包&#xff0c;开始安装Node.js直接点【…

SOMEIP_ETS_078: Wrong_SOMEIP_Protocol_Version

测试目的&#xff1a; 验证当设备&#xff08;DUT&#xff09;接收到一个包含错误协议版本的SOME/IP请求时&#xff0c;是否能够返回错误消息或忽略该请求。 描述 本测试用例旨在检查DUT在处理一个echoUINT8方法的SOME/IP消息时&#xff0c;如果消息中包含的协议版本不正确&…

ARM体系与架构

硬件基础 NOR Flash 和 NAND Flash异同 NOR&#xff0c;Not OR&#xff0c;逻辑是或非门&#xff1b;NAND&#xff0c;Not AND&#xff0c;逻辑是与非门。 两者都是FALSH芯片&#xff0c;断电不丢失。FLASH只能写0不能写1&#xff0c;所以写前都要先擦除。 NOR FLASH 按照块、…

HarmonyOS开发实战( Beta5版)高负载场景下线程设置防止关键线程被打断

场景介绍 在现代软件开发中&#xff0c;多线程或多进程的并发处理已成为常态。在多线程环境中&#xff0c;不同线程执行的任务具有不同的重要性和紧急程度。在高负载情况下&#xff0c;系统资源&#xff08;如CPU时间&#xff09;变得非常宝贵&#xff0c;此时如果关键线程&am…

开源-基于J2EE分布式架构的会议管理系统,支持会议资源管理,预订会议,冲突检测,提醒与签到

自20世纪末至21世纪初&#xff0c;数字化和互联网技术的迅猛发展彻底改变了工作方式和商业模式。企业迅速采用电子邮件、即时通讯和在线会议等数字工具以提升沟通效率。 在信息爆炸的时代&#xff0c;工作中面临的信息量剧增&#xff0c;而企业对效率和生产力的要求也日益提高…