基于matlab的CHPSO异质粒子群优化算法仿真

简介: 基于matlab的CHPSO异质粒子群优化算法仿真

1.算法描述

    粒子群优化算法(Particle Swarm Optimization,PSO)最初由Kenndy和Eberhart博士于1995年提出,是一种有效的随机全局优化技术,具有原理简单、参数少、收敛速度较快等特点,可用于求解大部分优化问题。在PSO中,群中的每个粒子表示为向量。在投资组合优化的背景下,这是一个权重向量,表示每个资产的分配资本。矢量转换为多维搜索空间中的位置。每个粒子也会记住它最好的历史位置。对于PSO的每次迭代,找到全局最优位置。这是群体中最好的最优位置。一旦找到全局最优位置,每个粒子都会更接近其局部最优位置和全局最优位置。当在多次迭代中执行时,该过程产生一个解决该问题的良好解决方案,因为粒子会聚在近似最优解上。

   Ray等人通过将PSO算法和Pareto排序机制想结合起来。采用Pareto排序法来选择一组精英解,全局最优粒子的选择则是采用轮盘赌方式从中选择。实际运行时,只有少量的个体选择概率大,种群多样性保持不好。Coello等在PSO算法中选择群体最佳位置则是通过引入Pareto竞争机制和微粒知识库。该知识库用于存储微粒在每次飞行循环后的飞行经验,知识库的更新是通过考虑一个基于地理学的系统,该系统是就每个微粒的目标函数值而言来定义的。这个知识库被微粒用来确定一个指导搜索的领导者。同时非劣解的确定是通过将候选个体与从种群中随机选出的比较集进行比较,因此比较集的参数对算法成功与否有着至关重要的影响。若参数过大,则容易发生早熟收敛的现象,而参数过小,则种群中选出的非劣解的数量可能过少。

   PSO模拟的是鸟群的捕食行为。设想场景:一群鸟在随机搜索食物。在这个区域里只有一块食物。所有鸟都不知道食物在哪里。但是他们知道当前的位置距离食物还有多远。那么找到食物的最优策略是什么?最简单有效的就是搜寻目前离食物最近的鸟的周围区域。

  鸟群在整个搜寻过程中,通过相互传递各自的信息,让其他鸟知道自己当前的位置,通过这样的协作来判断自己找到的是不是最优解,同时也将最优解的信息传递给整个鸟群,最终整个鸟群都能聚集在食物源的周围,即找到了最优解。

  PSO中,每个优化问题的解都是搜索空间的一只鸟,我们称之为“粒子”。所有的粒子都有一个被优化的函数决定的适应值,每个粒子还有一个速度决定他们飞翔的方向和距离。然后粒子们就追随当前的最优粒子在解空间中搜索。

   PSO初始化为一群随机粒子(随机解)。然后通过迭代找到最优解,在每一次迭代中,粒子通过跟踪两个“极值”来更新自己。第一个就是粒子本身所找到的最优解,这个解叫做个体极值。另一个极值是整个种群目前找到的最优解,这个极值是全局机制。另外也可以不用整个种群而只是用其中一部分作为粒子的邻居,那么在所有邻居中的极值就是局部极值。
    PSO初始化为一群随机粒子(随机解)。然后通过迭代找到最优解。在每一次迭代中,粒子通过跟踪两个“极值(pbest和gbest)”来更新自己。在找到这两个最优值后,粒子通过下面的公式来更新自己的速度和位置。

6c5f01b9b265a81f9b58a4924ddbda51_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png
86f7371a13e8bf04f3d2922810e59dd6_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

对于公式(1):

公式(1)中的第一部分称为记忆项,表示上次速度大小和方向的影响;
公式(1)中的第二部分称为自身认知项,是从当前点指向粒子自身最好点的一个矢量,表示粒子的动作来源于自己经验的部分;
公式(1)中的第三部分称为群体认知项,是一个从当前点指向种群最好点的矢量,反映了粒子间的协调合作和知识共享。粒子就是通过自己的经验和同伴中最好的经验来决定下一步的运动。

7109e1c8666078e0032d6e3e6b501700_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

   但粒子群算法在现阶段无论是理论分析还是实践应用都尚未完全成熟,具有易陷入局部极小点,搜索精度不高等缺点,仍留有大量的问题值得研究。

    为了摆脱粒子群算法易陷入局部极值的困境,本文将混沌优化方法引入到PSO算法中,提出了基于Hénon映射的混沌粒子群优化算法(CHPSO)。该算法保持了PSO算法结构简单的特点,改善了PSO算法的全局寻优能力,提高了算法的收敛速度和计算精度。

   在对粒子群算法收敛性以及算法局限性进行深入分析的基础上,指出了可以提高算法性能的三种途径:提高收敛速度、摆脱停滞的束缚、增加种群多样性,并对每种途径都做了详细分析,同时还介绍了一些其它改进方法。 混沌优化方法是近年出现的一种新的优化技术,通常使用Logistic或Tent映射产生混沌序列进行搜索。CHPSO算法在克服粒子群算法搜索后期易陷入局部极值点的缺点的同时,保持了前期搜索的快速性。

2.仿真效果预览
matlab2022a仿真结果如下:

de2622f9861a18252fd1740b5a487dce_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

3.MATLAB核心程序

gap = 1:(NGen/50):NGen;
 
% Parameters of PSO
sNP = 8;
acc = [1.49445, 1.49445];
iwt = [0.9, 0.35];  % interia weight
 
for funcNum = 1
    [Lb, Ub,dim] = funcRange(funcNum);  % for objFunc: twenty-three benchmark functions
 
    param = struct( 'ParicleNumber',           sNP,...
                    'AccelerationConstants',   acc,...
                    'InteriaWeight',           iwt,...
                    'Dimension',               dim,...
                    'Ub',                      Ub,...
                    'Lb',                      Lb);
 
 
    for run = 1:3
        rand('state',sum(100*clock))
        tic
        BestChart = CHPSO_func('objFunc',NGen,param,funcNum);
        t = toc;
        eval(['CHPSO_F',num2str(funcNum),'(:,run) = BestChart;']);
        
        figure(1)
        semilogy(gap,BestChart(gap),'-ok','linewidth',1.4,'Markersize',3);
        title({strcat('\fontsize{12}\bf Function: F',num2str(funcNum));strcat('Currunt run time: ',num2str(run))});
        xlabel('\fontsize{12}\bf Generation');
        ylabel('\fontsize{12}\bf Best-so-far');
        legend('\fontsize{10}\bf CHPSO');
        
        fprintf('R = %2d, time = %5.2f, best-so-far = %.4e\n', run, t, BestChart(end))
    end
    
end
相关文章
|
2天前
|
算法
基于GA遗传算法的PID控制器参数优化matlab建模与仿真
本项目基于遗传算法(GA)优化PID控制器参数,通过空间状态方程构建控制对象,自定义GA的选择、交叉、变异过程,以提高PID控制性能。与使用通用GA工具箱相比,此方法更灵活、针对性强。MATLAB2022A环境下测试,展示了GA优化前后PID控制效果的显著差异。核心代码实现了遗传算法的迭代优化过程,最终通过适应度函数评估并选择了最优PID参数,显著提升了系统响应速度和稳定性。
|
3天前
|
算法
基于大爆炸优化算法的PID控制器参数寻优matlab仿真
本研究基于大爆炸优化算法对PID控制器参数进行寻优,并通过Matlab仿真对比优化前后PID控制效果。使用MATLAB2022a实现核心程序,展示了算法迭代过程及最优PID参数的求解。大爆炸优化算法通过模拟宇宙大爆炸和大收缩过程,在搜索空间中迭代寻找全局最优解,特别适用于PID参数优化,提升控制系统性能。
|
15天前
|
算法 数据安全/隐私保护 索引
OFDM系统PAPR算法的MATLAB仿真,对比SLM,PTS以及CAF,对比不同傅里叶变换长度
本项目展示了在MATLAB 2022a环境下,通过选择映射(SLM)与相位截断星座图(PTS)技术有效降低OFDM系统中PAPR的算法实现。包括无水印的算法运行效果预览、核心程序及详尽的中文注释,附带操作步骤视频,适合研究与教学使用。
|
3天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于贝叶斯优化CNN-GRU网络的数据分类识别算法matlab仿真
本项目展示了使用MATLAB2022a实现的贝叶斯优化、CNN和GRU算法优化效果。优化前后对比显著,完整代码附带中文注释及操作视频。贝叶斯优化适用于黑盒函数,CNN用于时间序列特征提取,GRU改进了RNN的长序列处理能力。
|
3天前
|
算法 数据安全/隐私保护 索引
索引OFDM调制解调系统的matlab性能仿真
本文对m索引OFDM调制解调系统性能进行了仿真分析,增加了仿真图并配有语音讲解视频,使用Matlab2022a完成仿真,代码无水印。研究了OFDM-IM技术,通过激活不同子载波组合传输额外信息,提高频谱效率和降低PAPR。提出了OFDM联合子块索引调制技术(OFDM-JS-IM)和OFDM全索引方法(OFDM-AIM),并通过遗传算法优化子块查找表,有效提升系统性能。提供了核心MATLAB程序示例。
23 3
|
22天前
|
算法
基于HASM模型的高精度建模matlab仿真
本课题使用HASM进行高精度建模,介绍HASM模型及其简化实现方法。HASM模型基于层次化与自适应统计思想,通过多层结构捕捉不同尺度特征,自适应调整参数,适用于大规模、高维度数据的分析与预测。MATLAB2022A版本运行测试,展示运行结果。
|
1天前
|
算法 数据安全/隐私保护
数字通信中不同信道类型对通信系统性能影响matlab仿真分析,对比AWGN,BEC,BSC以及多径信道
本项目展示了数字通信系统中几种典型信道模型(AWGN、BEC、BSC及多径信道)的算法实现与分析。使用Matlab2022a开发,提供无水印运行效果预览图、部分核心代码及完整版带中文注释的源码和操作视频。通过数学公式深入解析各信道特性及其对系统性能的影响。
|
1天前
|
算法 决策智能
基于遗传优化算法的TSP问题求解matlab仿真
本项目使用遗传算法解决旅行商问题(TSP),目标是在四个城市间找到最短路径。算法通过编码、选择、交叉、变异等步骤,在MATLAB2022A上实现路径优化,最终输出最优路径及距离。
|
2月前
|
算法 安全 数据安全/隐私保护
基于game-based算法的动态频谱访问matlab仿真
本算法展示了在认知无线电网络中,通过游戏理论优化动态频谱访问,提高频谱利用率和物理层安全性。程序运行效果包括负载因子、传输功率、信噪比对用户效用和保密率的影响分析。软件版本:Matlab 2022a。完整代码包含详细中文注释和操作视频。
|
23天前
|
算法 数据挖掘 数据安全/隐私保护
基于FCM模糊聚类算法的图像分割matlab仿真
本项目展示了基于模糊C均值(FCM)算法的图像分割技术。算法运行效果良好,无水印。使用MATLAB 2022a开发,提供完整代码及中文注释,附带操作步骤视频。FCM算法通过隶属度矩阵和聚类中心矩阵实现图像分割,适用于灰度和彩色图像,广泛应用于医学影像、遥感图像等领域。