查看: 523|回复: 1|关注: 0

[已答复] 使用pso工具箱设置多维后发生问题

[复制链接]

新手

6 麦片

财富积分


050


1

主题

3

帖子

0

最佳答案
发表于 2018-10-29 20:19:21 | 显示全部楼层 |阅读模式
目的是利用pso工具箱计算24维函数的最小值。

主程序如下:

  1. %% 清空环境
  2. clear
  3. clc

  4. %% 参数初始化


  5. x=[-50.* rand(1,24);50.* rand(1,24)]';     %参数x变化范围


  6. range = x;     %参数变化范围(组成矩阵)

  7. Max_V = 0.2*(range(:,2)-range(:,1));  %最大速度取变化范围的10%~20%
  8. n=24;                     %待优化函数的维数

  9. PSOparams= [25 2000 20 2 2 0.9 0.4 1500 1e-25 250 NaN 0 0];

  10. %% 粒子群寻优
  11. pso_Trelea_vectorized01('Rosenbrock24',n,Max_V,range,0,PSOparams)  %调用PSO核心模块
复制代码


适应度函数如下:

  1. function [out]=Rosenbrock24(in)

  2. x=in;

  3. out = sum(x);
复制代码



报错如下:
PSO: 1/2000 iterations, GBest =  -347.60903196908561.

%%

错误使用  -
矩阵维度必须一致。

出错 pso_Trelea_vectorized01 (line 516)
            +ac22.*(repmat(gbest,ps,1)-pos);           % social

出错 main24 (line 21)
pso_Trelea_vectorized01('Rosenbrock24',n,Max_V,range,0,PSOparams)  %调用PSO核心模块
%%

工具箱报错的部分:
   vel = iwt(i).*vel...                             % prev vel
            +ac11.*(pbest-pos)...                      % independent
            +ac22.*(repmat(gbest,ps,1)-pos);           % social

第三行。

可见是计算速度时出错,但我不知道原因,请各位大神赐教。




新手

5 麦片

财富积分


050


0

主题

1

帖子

0

最佳答案
发表于 2019-3-15 21:10:02 | 显示全部楼层
看看这里面的例子就明白了

pso工具箱的使用方法.docx

12.81 KB, 下载次数: 2

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

快速回复 返回顶部 返回列表