Matlab粒子群算法工具箱使用方法及实例演示_第1页
Matlab粒子群算法工具箱使用方法及实例演示_第2页
Matlab粒子群算法工具箱使用方法及实例演示_第3页
Matlab粒子群算法工具箱使用方法及实例演示_第4页
Matlab粒子群算法工具箱使用方法及实例演示_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、粒子群算法工具箱应用简介1。引言。引言 粒子群算法(粒子群算法(PSO算法)算法) 定义:粒子群算法,又称粒子群优化算法(Partical Swarm Optimization),缩写为 PSO, 是近年来发展起来的一种新的进化算法(Evolutionary Algorithm - EA),由Eberhart 博士和kennedy 博士于1995年提出,其源于对鸟群捕食的行为研究。2。算法思想。算法思想 PSO模拟鸟群的捕食行为。模拟鸟群的捕食行为。 设想这样一个场景:一群鸟在随机搜索食物,在这个区域里设想这样一个场景:一群鸟在随机搜索食物,在这个区域里只有一块食物,所有的鸟都不知道食物在那里

2、,但是它们只有一块食物,所有的鸟都不知道食物在那里,但是它们知道当前的位置离食物还有多远,那么找到食物的最优策知道当前的位置离食物还有多远,那么找到食物的最优策略是什么呢?略是什么呢? 最简单有效的就是搜寻目前离食物最近的鸟的周围区域。最简单有效的就是搜寻目前离食物最近的鸟的周围区域。都向这片区域靠拢。都向这片区域靠拢。 3。抽象。抽象 PSO中,将问题的搜索空间类比于鸟类的飞行空间,将中,将问题的搜索空间类比于鸟类的飞行空间,将每只鸟抽象为一个无质量无体积的微粒,用以表征优化问题每只鸟抽象为一个无质量无体积的微粒,用以表征优化问题的一个候选解,我们称之为的一个候选解,我们称之为“粒子粒子”,

3、优化所需要寻找的,优化所需要寻找的最优最优解解则等同于要寻找的食物。则等同于要寻找的食物。所有的粒子都有一个由被优化的函数决定的所有的粒子都有一个由被优化的函数决定的适应值适应值(fitness value),每个粒子还有一个,每个粒子还有一个速度速度决定他们飞翔的方向和距离决定他们飞翔的方向和距离,然后粒子们就追随当前的最优粒子在解空间中搜索。,然后粒子们就追随当前的最优粒子在解空间中搜索。 3。抽象。抽象 PSO初始化为一群随机粒子初始化为一群随机粒子(随机解、一群鸟随机解、一群鸟),然后通,然后通过迭代找到最优解。在每一次迭代中,粒子(鸟)通过跟过迭代找到最优解。在每一次迭代中,粒子(鸟

4、)通过跟踪两个踪两个“极值极值”来更新自己的位置。一个就是粒子本身所找来更新自己的位置。一个就是粒子本身所找到的最优解,这个解叫做个体极值到的最优解,这个解叫做个体极值pBest,另一个极值是,另一个极值是整个种群目前找到的最优解,这个极值是全局极值整个种群目前找到的最优解,这个极值是全局极值gBest。(。(gBest是是pBest中最好值)中最好值)3。算法介绍。算法介绍 在找到这两个最优值时,粒子根据如下的公式来更新自己在找到这两个最优值时,粒子根据如下的公式来更新自己的速度和位置:的速度和位置: 其中其中 ,V 是粒子的速度,是粒子的速度,Present 是粒子的当前位置是粒子的当前位

5、置 ,pBest 与与 gBest见前面定义。见前面定义。rand ( )是是(0 ,1)之间的随机数之间的随机数 ,c1和和c2被称作学习因子。通常被称作学习因子。通常 ,c1 = c2 = 2。w 是加权系是加权系数(惯性权重),取值在数(惯性权重),取值在 0. 1到到0. 9之间。粒子通过不断学之间。粒子通过不断学习更新习更新 ,最终飞至解空间中最优解所在的位置,最终飞至解空间中最优解所在的位置 ,搜索过,搜索过程结束。最后输出的程结束。最后输出的 gBest 就是全局最优解。在更新过程就是全局最优解。在更新过程中中 ,粒子每一维的最大速率限被限制为粒子每一维的最大速率限被限制为 Vm

6、ax ,如果某一维如果某一维更新后的速度超过设定的更新后的速度超过设定的Vmax,那么这一维的速度就被,那么这一维的速度就被限定为限定为Vmax。3。算法介绍。算法介绍 将粒子延伸到N维空间,粒子i在N维空间里的位置表示为一个矢量,每个粒子的飞行速度也表示为一个矢量。p 粒子数(鸟的个数)粒子数(鸟的个数): 一般取一般取 140. 其实对于大部分的问其实对于大部分的问题题10个粒子已经足够可以取得好的结果个粒子已经足够可以取得好的结果;p 粒子的长度(维度)粒子的长度(维度): 这是由优化问题决定这是由优化问题决定, 就是问题解就是问题解的长度(决策变量个数)的长度(决策变量个数);p 粒子

7、的范围粒子的范围: 由优化问题决定,每一维可以设定不同的由优化问题决定,每一维可以设定不同的范围;范围;p Vmax: 最大速度,决定粒子在一个循环中最大的移动距最大速度,决定粒子在一个循环中最大的移动距离,离, 通常设定为粒子的范围宽度通常设定为粒子的范围宽度,例如,粒子例如,粒子 (x1, x2, x3) ,x1 属于属于 -10, 10, 那么那么 Vmax 的大小就是的大小就是 20。p 学习因子学习因子: 使粒子具有自我总结和向群体中优秀个体学习使粒子具有自我总结和向群体中优秀个体学习的能力,从而向群体内或邻域内最优点靠近,的能力,从而向群体内或邻域内最优点靠近,c1 和和 c2 通

8、常通常等于等于2,并且范围在,并且范围在 0 和和 4 之间。之间。p 中止条件中止条件: 最大循环数以及最小错误要求。最大循环数以及最小错误要求。p 惯性权重惯性权重w :决定了对粒子当前速度继承多少,合适的选决定了对粒子当前速度继承多少,合适的选择可以使粒子具有均衡的探索能力和开发能力,惯性权重的择可以使粒子具有均衡的探索能力和开发能力,惯性权重的取法有常数法、线性递减法、自适应法等。取法有常数法、线性递减法、自适应法等。3。算法介绍。算法介绍 例:对于问题 f(x) = x12 + x22+x32 求解,粒子可以直接编码为 (x1, x2, x3),而适应度函数就是f(x),接着我们就可

9、以利用前面的过程去寻优,寻优过程是一个迭代过程, 中止条件一般为设置为达到最大循环数或者最小错误要求。3。算法介绍。算法介绍 PSO框架图框架图粒子群优化算法粒子群优化算法Matlab工具箱简介工具箱简介 Matlab粒子群工具箱(粒子群工具箱(PSOt)提供了非常先进的粒子群)提供了非常先进的粒子群优化算法优化算法 ,可指定惯性因子的起始值和中止值,可指定惯性因子的起始值和中止值 ,可约定各,可约定各维变量的取值范围维变量的取值范围 、粒子在遇到边界时是否反弹等各种参、粒子在遇到边界时是否反弹等各种参数数 。除此以外。除此以外 ,粒子群工具箱既可以在用户约定的范围内,粒子群工具箱既可以在用户

10、约定的范围内自动随机生成指定群体规模的初始粒子群自动随机生成指定群体规模的初始粒子群 ,也可人工输入,也可人工输入小于群体规模的任意数目的初始粒子小于群体规模的任意数目的初始粒子 ,具备非常强的灵活,具备非常强的灵活性性 。粒子群优化算法粒子群优化算法Matlab工具箱简介工具箱简介粒子群优化算法粒子群优化算法Matlab工具箱简介工具箱简介PSOt具有非常强的灵活性,在实际计算中,用户只要根据具有非常强的灵活性,在实际计算中,用户只要根据需求编写好需求编写好目标函数目标函数,并设置好函数自变量的,并设置好函数自变量的取值范围取值范围和和每步迭代允许的每步迭代允许的最大变化量最大变化量,PSO

11、t即可自动进行优化计算即可自动进行优化计算。该该工具箱的使用方法主要分为为一下几个个步骤骤:(1)在MATLAB的命令窗口中点击击“File”,“Set Path”,设设置工具箱的路径径。(2)编写编写待优优化的函数数(test_func),保存为为同名m文件粒子群优化算法粒子群优化算法Matlab工具箱简介工具箱简介( 3 ) 调 用 粒 子 群 算 法 的 核 心 模 块 :) 调 用 粒 子 群 算 法 的 核 心 模 块 :pso_Trelea_vectorized.m,其调用格式为:,其调用格式为:pso_Trelea_vectorized(functname, D, mv, Var

12、Range , minmax, PSOparams, plotfcn, PSOseedValue)pso_Trelea_vectorized(functname, D, mv, VarRange, minmax, PSOparams, plotfcn, PSOseedValue)l Functname:目标函数名:目标函数名l D:待优化问题的维数;:待优化问题的维数;l mv:粒子飞行的最大速度;:粒子飞行的最大速度;l VarRange:参数变化范围矩阵;:参数变化范围矩阵;l Minmax:寻优类型,取:寻优类型,取0代表求目标函数最小值,取代表求目标函数最小值,取1代表求代表求目目 标

13、函数最大值);标函数最大值);l PSOparams:参数矩阵,包括最大迭代次数、粒子群规模、:参数矩阵,包括最大迭代次数、粒子群规模、惯性因子、学习因子、终止迭代条件等;惯性因子、学习因子、终止迭代条件等;l Plotfcn:寻优过程中用于展示寻优过程的画图函数;:寻优过程中用于展示寻优过程的画图函数;l PSOseedValue:可允许用户输入任意多组初始粒子。:可允许用户输入任意多组初始粒子。求非线性函数极大值求非线性函数极大值工具箱应用实例工具箱应用实例cos2cos222222sin,2.71289xyxyf(x y)exy工具箱应用实例工具箱应用实例(1)编写待优化函数程序)编写待

14、优化函数程序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* (

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论