【改进粒子群优化算法】自适应惯性权重粒子群算法(Matlab代码实现)

简介: 【改进粒子群优化算法】自适应惯性权重粒子群算法(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥


🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。


⛳️座右铭:行百里者,半于九十。


📋📋📋本文目录如下:🎁🎁🎁


目录


💥1 概述


1.1 基本粒子群优化算法


1.2 改进粒子群算法


📚2 运行结果


🎉3 参考文献


🌈4 Matlab代码实现


💥1 概述

文献来源:


2a8b3f8c0e9046f8b43de94871804803.png


1.1 基本粒子群优化算法

基本粒子群算法(BPSO)中,每个优化问题的解都可以看作粒子在搜索空间中的位置,粒子通过飞


行速度决定它们的搜索方向和搜索范围,粒子群通过追随当前群体的最优粒子和自身经历的个体最优位置,调节其飞行速度,在解空间中搜索最优解。粒子群的寻优过程可描述如下:随机初始化粒


子群通过迭代更新群体的速度和位置,在搜索空间中搜寻最优值;每次迭代中,粒子跟踪个体极值和全局极值,利用个体极值和全局极值的信息来调整自身的速度,并以此速度飞行,更新粒子位置。


粒子群第k+1次迭代的更新公式为:


029db0d09834451ca858dd9e00752249.png


1.2 改进粒子群算法

惯性权重处理。由式(2)可看出,惯性权重w对 PSO 算法的优化性能影响很大。研究表明,


较大的w值有利于跳出局部最优,而较小的w有利于加速收敛。文献[13]提出了单一线性化调整w的策略:随迭代次数的增加而线性减少w,其经验值为[0.9,0.4]。但若采用线性减少w的调整策略,会使得结果不稳定,算法易陷入局部最优。而且,即使能够跳出局部最优,其收敛速度也非常缓慢。原因是单一线性w调整策略采用了统一的权重变化率,使得粒子在整个搜索过程中没有明显差异。因此,本文从收敛速度和搜索范围上对 PSO 进行改进,采用动态改变惯性权重的策略,使得:


f5c1c488d61e4bd692792584a6301dcf.png


a k根据所计算的适应度函数值进行变化,使得传统上随着搜索过程线性减小的w变成随搜索位置的变化而动态改变的w k。w k中充分利用了目标函数的信息,使得搜索方向的精确度得到了启发性加强。


📚2 运行结果


7dac942492a247b2be4aa5d6007c58be.png

8d9b38b9ca754284aafcc2cdc6c17ff3.png


部分代码:

%% PSO Parameters 
CostFunction=@(x) CostFun(x);        % Cost Function
w=1;            % Inertia Weight
wdamp=0.99;     % Inertia Weight Damping Ratio
c1=1.5;         % Personal Learning Coefficient
c2=2.0;         % Global Learning Coefficient
VarSize=[1 nVar];   % Size of Decision Variables Matrix
% Velocity Limits
VelMax=0.1*(VarMax-VarMin);
VelMin=-VelMax;
%% Initialization
empty_particle.Position=[];
empty_particle.Cost=[];
empty_particle.Velocity=[];
empty_particle.Best.Position=[];
empty_particle.Best.Cost=[];
particle=repmat(empty_particle,nPop,1);
GlobalBest.Cost=inf;
for i=1:nPop
    % Initialize Position
    particle(i).Position=unifrnd(VarMin,VarMax,VarSize);
    % Initialize Velocity
    particle(i).Velocity=zeros(VarSize);
    % Evaluation
    particle(i).Cost=CostFunction(particle(i).Position);
    % Update Personal Best
    particle(i).Best.Position=particle(i).Position;
    particle(i).Best.Cost=particle(i).Cost;


🎉3 参考文献

部分理论来源于网络,如有侵权请联系删除。

[1]李国庆,陈厚合.改进粒子群优化算法的概率可用输电能力研究[J].中国电机工程学报,2006(24):18-23.


🌈4 Matlab代码实现

相关文章
|
2天前
|
数据安全/隐私保护
地震波功率谱密度函数、功率谱密度曲线,反应谱转功率谱,matlab代码
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
|
2天前
|
数据安全/隐私保护
耐震时程曲线,matlab代码,自定义反应谱与地震波,优化源代码,地震波耐震时程曲线
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
基于混合整数规划的微网储能电池容量规划(matlab代码)
基于混合整数规划的微网储能电池容量规划(matlab代码)
|
2天前
|
算法 调度
面向配电网韧性提升的移动储能预布局与动态调度策略(matlab代码)
面向配电网韧性提升的移动储能预布局与动态调度策略(matlab代码)
|
2天前
|
算法 调度
含多微网租赁共享储能的配电网博弈优化调度(含matlab代码)
含多微网租赁共享储能的配电网博弈优化调度(含matlab代码)
|
2天前
|
运维 算法
基于改进遗传算法的配电网故障定位(matlab代码)
基于改进遗传算法的配电网故障定位(matlab代码)
|
2天前
|
Serverless
基于Logistic函数的负荷需求响应(matlab代码)
基于Logistic函数的负荷需求响应(matlab代码)
|
2天前
|
供应链 算法
基于分布式优化的多产消者非合作博弈能量共享(Matlab代码)
基于分布式优化的多产消者非合作博弈能量共享(Matlab代码)
|
2天前
|
算法 调度
基于多目标粒子群算法冷热电联供综合能源系统运行优化(matlab代码)
基于多目标粒子群算法冷热电联供综合能源系统运行优化(matlab代码)
|
2天前
|
算法 调度 SoC
电动汽车充放电V2G模型(Matlab代码)
电动汽车充放电V2G模型(Matlab代码)