1 / 5
文档名称:

PSO算法使用简介.doc

格式:doc   页数:5页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

PSO算法使用简介.doc

上传人:cai.li.bin 2012/5/27 文件大小:0 KB

下载得到文件列表

PSO算法使用简介.doc

文档介绍

文档介绍:PSO算法使用简介
PSO工具箱简介
PSOt为PSO的工具箱,该工具箱将PSO算法的核心部分封装起来,提供给用户的为算法的可调参数,用户只需要定义好自己需要优化的函数(计算最小值或者最大值),并设置好函数自变量的取值范围、每步迭代允许的最大变化量(称为最大速度,Max_V)等,即可自行优化。
与遗传算法相比,PSO仅需要调整少数几个参数即可实现函数的优化。该算法对待优化函数没有任何特别的要求(如可微分、时间连续等),因而其通用性极强,对多变量、高度非线性、不连续及不可微的情况更加具有其优势。
该工具箱的使用主要分为几个步骤:
在Matlab中设置工具箱的路径;
定义待优化函数;
调用PSO算法的核心函数:pso_Trelea_vectorized()。
其中第三步最关键,用户需要根据自己的需要设置好参数,可使算法极快收敛。
下面对各个步骤一一介绍。
设置工具箱的路径
在Matlab的命令窗口点击“File——>Set Path….”,如下图:
在弹出的对话框中点击“Add Folder”,然后浏览找到工具箱放置的位置,如下图
若想用到该工具箱所带的测试函数,还需要用如上同样的方法,设置路径指向工具箱下的“testfunctions”文件夹;
若想用于训练神经网络的训练,设置路径指向工具箱下的“testfunctions”文件夹“nnet”
定义待优化函数()
用户根据自己的需要,定义需要优化的函数。举个例子,若想计算如下二元函数的最小值
z= *(x-3)^2+*(y-5)^2-
其中自变量x、y的范围均为[-50, 50]。
可按下面的方法定义该待优化函数:
%%----------------------------------------------------------------%%
function z=test_func(in)
nn=size(in);
x=in(:,1);
y=in(:,2);
nx=nn(1);
for i=1:nx
temp = *(x(i)-3)^2+*(y(i)-5)^2-;
z(i,:) = temp;
end
%%----------------------------------------------------------------%%
需要特别指出的是:PSO算法的核心函数pso_Trelea_vectorized()自动初始化一组随机变量,因而待优化函数test_func(in)中的输入in是一个矩阵,由一组x和y的值组成,对应的,函数的输出z为一个向量
定义待优化函数()
当定义好待优化函数后,设置相应的参数,然后就可以调用PSO进行优化了,对上面优化问题,按下面的方式进行调用:
%%----------------------------------------------------------------%%
clear
clc
x_range=[-50,50]; %参数x变化范围
y_range=[-50,50]; %参数y变化范围
range = [x_range;y_range]; %参数变化范围