【算法】遗传粒子群-混沌粒子群-基本粒子群matlab

文摘   教育   2024-10-27 22:01   河北  

1主要内容

很多同学在发文章时候最犯愁的就是创新点创新点创新点(重要的事情说三遍),对于采用智能算法的模型,可以采用算法改进的方式来达到提高整个文章创新水平的目的,本篇分享一个效果比较好的粒子群三种算法实现代码,并给出测试函数的对比效果,以供有需要的同学学习。

本次分享的程序是遗传粒子群、混沌粒子群和基本粒子群的算法实现和效果对比,智能算法的创新以组合创新居多,通过两种或多种方法的优势结合从而实现算法优势叠加或者弥补劣势的目的,在算法寻优性能包括寻优速度、跳出局部最优等方面表现更加突出。

2部分代码

clcclear%杂交概率:Pc%杂交池大小比例:Sp%最大迭代次数:M%问题的维数:D%目标函数取最小值时的自变量值:xm%目标函数的最小值:fvPSO;CPSO;%% 参数初始化%粒子群算法中的两个参数c1 = 1.49445;%学习因子c2 = 1.49445;%学习因子wmax=0.9;%惯性因子最大值wmin=0.4;%惯性因子最小值D=10;%粒子维数pc=0.5;%杂交概率maxgen=1000;   % 迭代次数  sizepop=20;   %种群规模pm=0.05;%变异概率Vmax=1;Vmin=-1;popmax=3;popmin=-3;randdata1= xlsread('randdata1');randdata2= xlsread('randdata2');%% 产生初始粒子和速度for i=1:sizepop    %随机产生一个种群    pop(i,:)=randdata1(1,:);    %初始化粒子位置    V(i,:)=randdata2(1,:);  %初始化粒子速度    %pop(i,:)=rands(1,D);    %初始种群    %V(i,:)=rands(1,D);  %初始化速度    fitness(i)=fun(pop(i,:));   %计算每个粒子的适应度值end
%% 个体极值和群体极值[bestfitness bestindex]=min(fitness);zbest=pop(bestindex,:); %全局最佳gbest=pop; %个体最佳fitnessgbest=fitness; %个体最佳适应度值fitnesszbest=bestfitness;   %全局最佳适应度值

3效果图

通过改变fun.m中目标测试函数,就能得到不同测试函数的算法对比图。

  • 多峰函数Generaliaed Rosenbrock最优个体适应度曲线

  • Generalized Rastrigin函数

  • Sphere Model函数

3下载链接

扫码阅读原文即可跳转程序页面:

想了解更多程序?按照下面教程查看程序目录

电力程序
打造电力专业最新原创程序集散地,免费分享基础编程资料,在这里,带着希望而来,带着知识而归~
 最新文章