人工智能9—粒子群优化算法实验

目录

 

一、粒子群优化算法简介

二、算法流程

三、参数设置比较

1.改变C1参数

2.改变C2参数

3.改变w的范围

4.改变sizepop参数

5.改变dim参数

四、POS的优点

五、核心代码


一、粒子群优化算法简介

粒子群优化算法是一种全局搜索算法,作为进化计算的一个分支,同时它也是一种模拟自然界的生物活动以及群体智能的随机搜索算法。因此粒子群优化算法一方面吸取了人工生命、鸟群觅食、鱼群学习和群理论的思想,另一方面又具有进化算法的特点,和遗传算法、进化策略、进化规划等算法有相似的搜索和优化能力。

PSO中,每个优化问题的解都是粒子,所有的粒子都有一个由被优化的函数决定的适应值,粒子会追随当前的最优粒子在解空间中搜索。PSO初始化为一群随机粒子,然后通过迭代找到最优解,在每一次叠代中,粒子通过跟踪两个“极值”来更新自己。第一个就是粒子本身所找到的最优解,这个解叫做个体极值pBest,另一个极值是整个种群找到的最优解,这个极值是全局极值gBest。另外也可以不用整个种群而只是用其中一部分最优粒子的邻居,那么在所有邻居中的极值就是局部极值。

二、算法流程

1.初始化粒子群体、随机位置和速度

2.根据fitness function评价每个粒子的适应度

3.对每个粒子,将其当前适应值与其个体历史最佳位置pbest对应的适应值做比较,如果当前的适应值更高,则将用当前位置更新历史最佳位置pbest

4.对每个粒子,将其当前适应值与全局最佳位置gbest对应的适应值做比较,如果当前的适应值更高,则将用当前粒子的位置更新全局最佳位置pbest

5.根据公式更新每个粒子的速度和位置

6.如果未满足结束条件,则返回步骤2,通常算法达到最大迭代次数Gmax或者最佳适应度值的增量小于某个给定的阈值时算法停止

三、参数设置比较

初始情况运行结果图如下:

    

函数使用如下:

fun.m

function y = fun(x,label)
%函数用于计算粒子适应度值
%x           input           输入粒子 
%y           output          粒子适应度值 
if label==1
    y=Rastrigin(x);
elseif label==2
    y=Schaffer(x);
else
    y= Griewank(x);
end

Drawfunc.m

function Drawfunc(label)

x=-5:0.05:5;%41列的向量
if label==1
    y = x;
    [X,Y] = meshgrid(x,y);
    [row,col] = size(X);
    for  l = 1 :col
         for  h = 1 :row
            z(h,l) = Rastrigin([X(h,l),Y(h,l)]);
        end
    end
    surf(X,Y,z);
    shading interp
    xlabel('x1-axis'),ylabel('x2-axis'),zlabel('f-axis'); 
    title('mesh'); 
end

if label==2
    y = x;
    [X,Y] = meshgrid(x,y);
    [row,col] = size(X);
    for  l = 1 :col
         for  h = 1 :row
            z(h,l) = Schaffer([X(h,l),Y(h,l)]);
        end
    end
    surf(X,Y,z);
    shading interp 
    xlabel('x1-axis'),ylabel('x2-axis'),zlabel('f-axis'); 
    title('mesh'); 
end

if label==3
    y = x;
    [X,Y
  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值