毕业论文

打赏
当前位置: 毕业论文 > 自动化 >

基于MATLAB的PSO算法仿真研究(4)

时间:2020-07-22 20:49来源:毕业论文
(6)惯性权重:决定对粒子流速的数量,一般可以采用恒定的或者线性递减等。 2.2基本粒子群算法 (1)算法原理 通过不断改变的学习因子C1,C2和W的惯

   (6)惯性权重:决定对粒子流速的数量,一般可以采用恒定的或者线性递减等。

 

2.2基本粒子群算法

  (1)算法原理

  通过不断改变的学习因子C1,C2和W的惯性权重基本的粒子群算法,粒子会因为公式2-2更新自己的速度和位置。

         (2-2)

  (2)算法步骤

2.1初始化随机种群里的各微粒的速度和位置;

2.2评价每个微粒的适应度,把当时每个微粒的位置和适应值存在每个微粒的 之中,然后把所有 里的适应值中的最优个体的位置和适应值存在gbest里;

2.3使用2-2的公式更新粒子的速度和位移;

2.4将每个微粒的适应值和它经过的最好的位置进行比较,如果更好,就使之成为当前的最好位置;

2.5对比当前所有的 和 的值,然后更新 ;

2.6如果停止条件被满足(通常是到了设定精度或迭代次数),停止,输出结果,反之就返回2.3继续搜素。

  (3)算法的MATLAB实现

  在MATLAB中编程实现的基本粒子群优化函数为:PSO。

  调用格式: =PSO(fitness,N,c1,c2,w,M,D)其中

fitness:待优化的目标函数;

N:粒子数目;

c1:学习因子1;

c2:学习因子2;

w:惯性权重;

M:最大迭代次数;

D:自变量的个数;

xm:目标函数取最小值时的自变量值;

fv:目标函数的最小值;

基本粒子群算法的MATLA代码见附录一

2.3带压缩因子的粒子群算法

(1)算法原理

  Clerc构造了收缩因子,并将它引入了PSO算法,它的速度更新公式为:

             (2-3)

(2)算法步骤

2.1随机初始种群里的各微粒的位置和速度;

2.2评价每个微粒的适应度,把当时每个微粒的位置和适应值存在每个微粒的 之中,然后把所有 里的适应值中的最优个体的位置和适应值存在gbest里;

2.3使用2-3和2-31公式更新粒子的速度和位移;

2.4将每个微粒的适应值和它经过的最好的位置进行比较,如果更好,就使之成为当前的最好位置;

2.5对比当前所有的 和 的值,然后更新 ;源-自/优尔+文,论^文'网]www.youerw.com

2.6如果满足停止条件(一般是到了设定的运算精度或者是迭代次数),则停止,输出结果,反之就返回2.3继续搜素。

(3)算法的MATLAB实现

 在MATLAB中编程实现的带压缩因子的粒子群优化函数为:YSPSO。

 调用格式: =YSPSO(fitness,N,c1,c2,w,M,D)其中

 fitness:待优化的目标函数;

 N:粒子数目;

 c1:学习因子1;

 c2:学习因子2;

 w:惯性权重;

 M:最大迭代次数;

 D:自变量的个数;

  :目标函数取最小值时的自变量值;

 :目标函数的最小值;

带压缩因子的粒子群算法的MATLAB代码见附录二

 

2.4线性递减权重粒子群算法

(1)算法原理

  由于惯性因子过大会利于跳出局部的极小点,便于全局搜素,而惯性因子过小就会利于在当前区域搜素的精确性提高,

基于MATLAB的PSO算法仿真研究(4):http://www.youerw.com/zidonghua/lunwen_56822.html
------分隔线----------------------------
推荐内容