【计算智能】粒子群算法的参数寻优

本文介绍了粒子群算法的基本原理和步骤,并通过Matlab进行了参数寻优实验,探讨了种群规模、维度以及惯性权重w对算法性能的影响。实验结果显示,种群规模、维度和w的选择显著影响算法的最优解和收敛速度。
摘要由CSDN通过智能技术生成

1.基本原理

粒子群算法(particle swarm optimization,PSO)是计算智能领域中的一种生物启发式方法,属于群体智能优化算法的一种,常见的群体智能优化算法主要有如下几类:
  (1)蚁群算法(Ant Colony Optimization,简称ACO)[1992年提出];
  (2)粒子群优化算法(Particle Swarm Optimization,简称PSO)[1995年提出](简单易于实现,也是目前应用最为广泛的群体智能优化算法);
  (3)菌群优化算法(Bacterial Foraging Optimization,简称BFO)[2002年提出];
  (4)蛙跳算法(Shuffled Frog Leading Algorithm,简称SFLA)[2003年提出];
  (5)人工蜂群算法(Artificial Bee Colony Algorithm,简称ABC)[2005年提出]

2.算法步骤

1)根据问题需要,随机生成粒子组成一个种群并进行初始化。
2)定义适应度函数,个体极值为每个粒子找到的最优解,从这些最优解找到一个全局值,叫做本次全局最优解。与历史全局最优比较,进行更新。
3)更新种群中每个粒子的位置和速度。
根据如下公式:
在这里插入图片描述在这里插入图片描述
4)满足终止条件就退出,不满足就转向步骤3)。
终止条件:
(1)达到设定迭代次数;(2)代数之间的差值满足最小界限

3.部分代码(matlab)

%%核心原理代码块
 V(j,:) = w*V(j,:) + c1*rand*(pbest(j,:) - pop(j,:)) + c2*rand*(gbest - pop(j,:));  %根据个体最优pbest和群体最优gbest计算下一时刻速度
%% 参数初始化
%粒子群算法中的三个参数
c1 = 1.49445;%加速因子
c2 = 1.49445;
w=0.8   %惯性权重

maxgen=1000;   % 进化次s数  
sizepop=200;   %种群规模

Vmax=1;       %限制速度围
Vmin=-1;     
popmax=5;    %变量取值范围
popmin=-5;
dim=10;       %适应度函数维数

func=1;       %选择待优化的函数,1为Rastrigin,2为Schaffer,3为Griewank
Drawfunc(func);%画出待优化的函数,只画出二维情况作为可视化输出
%% 产生初始粒子和速度
for i=1:sizepop
    %随机产生一个种群
    pop(i,:)=popmax*rands(1,dim);    %初始种群
    V(i,:)=Vmax*rands(1,dim);             %初始化速度
                                     %计算适应度
    fitness(i)=fun(pop(i,:),func);   %粒
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值