Matlab粒子群算法工具箱使用方法及实例演示

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

工具箱应用实例
求非线性函数极大值
f(x, y)
sin x y
2
2
x y
2
2
e
cos 2 x cos 2 y 2
2.71289
工具箱应用实例
工具箱应用实例
(1)编写待优化函数程序 function z = test_func(in) nn=size(in); %输入的是矩阵 ,即算法中随机产生一组x和 y ,按[x(nn, 1), y(nn, 1)]排列 x=in(:,1); y=in(:,2); nx=nn(1); for i=1:nx temp=sin(sqrt(x(i)^2+y(i)^2))/sqrt(x(i)^2+y(i)^2)+exp((cos( 2*pi*x(i))+cos(2*pi*y(i)))/2)-2.71289; z(i,:)=temp; end
工具箱应用实例
(2)编写调用函数 x_range=[-2,2]; y_range=[-2,2]; range=[x_range; y_range]; Max_V=0.2* (range(:,2) - range(:,1)); %最大速度取范围 的 10%~ 20% n=2; %粒子维数 PSOparams=[10 300 20 2 2 0.9 0.4 1500 1e-25 250 NaN 0 0] %个体数目 20 ,进化次数 300 PSO_Trelea_vectorized('test_func', n, Max_V, range, 1, PSOparams)
3。算法介绍
• 例:对于问题 f(x) = x1^2 + x2^2+x3^2 求解,粒 子可以直接编码为 (x1, x2, x3),而适应度函数就 是f(x),接着我们就可以利用前面的过程去寻优 ,寻优过程是一个迭代过程, 中止条件一般为设 置为达到最大循环数或者最小错误要求。
3。算法介绍
• PSO框架图
Vmax: 最大速度,决定粒子在一个循环中最大的移动距 离, 通常设定为粒子的范围宽度,例如,粒子 (x1, x2, x3) , x1 属于 [-10, 10], 那么 Vmax 的大小就是 20。 学习因子: 使粒子具有自我总结和向群体中优秀个体学习 的能力,从而向群体内或邻域内最优点靠近,c1 和 c2 通常 等于2,并且范围在 0 和 4 之间。 中止条件: 最大循环数以及最小错误要求。 惯性权重w :决定了对粒子当前速度继承多少,合适的选 择可以使粒子具有均衡的探索能力和开发能力,惯性权 重的取法有常数法、线性递减法、自适应法等。
3。算法介绍
将粒子延伸到N维空间,粒子i在N维空间里的位置表示为 一个矢量,每个粒子的飞行速度也表示为一个矢量。
粒子数(鸟的个数): 一般取 1~40. 其实对于大部分的 问题10个粒子已经足够可以取得好的结果; 粒子的长度(维度): 这是由优化问题决定, 就是问题解 的长度(决策变量个数); 粒子的范围: 由优化问题决定,每一维可以设定不同的 范围;
粒子群优化算法Matlab工具箱简介
粒子群优化算法Matlab工具箱简介
PSOt具有非常强的灵活性,在实际计算中,用户只要根据 需求编写好目标函数,并设置好函数自变量的取值范围和 每步迭代允许的最大变化量,PSOt即可自动进行优化计算 。 该工具箱的使用方法主要分为一下几个步骤:
(1)在MATLAB的命令窗口中点击“File”,“Set Path
pso_Trelea_vectorized(functname, D, mv, VarRange, minmax, PSOparams, plotfcn, PSOseedValue) Functname:目标函数名 D:待优化问题的维数; mv:粒子飞行的最大速度; VarRange:参数变化范围矩阵; Minmax:寻优类型,取0代表求目标函数最小值,取1代表求目 标函数最大值); PSOparams:参数矩阵,包括最大迭代次数、粒子群规模、惯 性因子、学习因子、终止迭代条件等; Plotfcn:寻优过程中用于展示寻优过程的画图函数; PSOseedValue:可允许用户输入任意多组初始粒子。
”,设置工具箱的路径。
(2)编写待优化的函数(test_func),保存为同名m文件
粒子群优化算法Matlab工具箱简介
(3)调用粒子群算法的核心模块ຫໍສະໝຸດ Baidupso_Trelea_vectorized
.m,其调用格式为:
pso_Trelea_vectorized(functname, D, mv, VarRange , minmax, PSOparams, plotfcn, PSOseedValue)
3。抽象
PSO初始化为一群随机粒子 (随机解、一群鸟),然后通
过迭代找到最优解。在每一次迭代中,粒子(鸟)通过跟
踪两个“极值”来更新自己的位置。一个就是粒子本身所找 到的最优解,这个解叫做个体极值 pBest ,另一个极值是 整个种群目前找到的最优解,这个极值是全局极值 gBest 。(gBest是pBest中最好值)
3。算法介绍
• 在找到这两个最优值时,粒子根据如下的公式来更新自己 的速度和位置:
其中 ,V 是粒子的速度,Present 是粒子的当前位置 ,pB est 与 gBest见前面定义。rand ( )是(0 ,1)之间的随机数 ,c1和c 2被称作学习因子。通常 ,c1 = c2 = 2。w 是加权系数(惯性 权重),取值在 0. 1到0. 9之间。粒子通过不断学习更新 , 最终飞至解空间中最优解所在的位置 ,搜索过程结束。最后 输出的 gBest 就是全局最优解。在更新过程中 ,粒子每一维的 最大速率限被限制为 Vmax ,如果某一维更新后的速度超过设 定的Vmax,那么这一维的速度就被限定为Vmax。
粒子群算法工具箱应用 简介
1。引言
• 粒子群算法(PSO算法) • 定义:粒子群算法,又称粒子群优化算法(Partical Swarm Optimization),缩写为 PSO, 是近年来发 展起来的一种新的进化算法(Evolutionary Algorith m - EA),由Eberhart 博士和kennedy 博士于1995 年提出,其源于对鸟群捕食的行为研究。
2。算法思想
• PSO模拟鸟群的捕食行为。 设想这样一个场景:一群鸟在随机搜索食物,在这个区域里 只有一块食物,所有的鸟都不知道食物在那里,但是它们 知道当前的位置离食物还有多远,那么找到食物的最优策 略是什么呢? 最简单有效的就是搜寻目前离食物最近的鸟的周围区域。 都向这片区域靠拢。
3。抽象
PSO中,将问题的搜索空间类比于鸟类的飞行空间,将 每只鸟抽象为一个无质量无体积的微粒,用以表征优化问题 的一个候选解,我们称之为“粒子”,优化所需要寻找的最 优解则等同于要寻找的食物。 所有的粒子都有一个由被优化的函数决定的适应值(fitness value),每个粒子还有一个速度决定他们飞翔的方向和距离 ,然后粒子们就追随当前的最优粒子在解空间中搜索。
粒子群优化算法Matlab工具箱简介
Matlab粒子群工具箱(PSOt)提供了非常先进的粒子群
优化算法 ,可指定惯性因子的起始值和中止值 ,可约定各 维变量的取值范围 、粒子在遇到边界时是否反弹等各种参 数 。除此以外 ,粒子群工具箱既可以在用户约定的范围内 自动随机生成指定群体规模的初始粒子群 ,也可人工输入 小于群体规模的任意数目的初始粒子 ,具备非常强的灵活 性。
相关文档
最新文档