全球旧事资料 分类
避免PSO的早熟现象。3算法步骤及设计
PSO的算法框架如下所述,图1给出了PS0的算法流程。1初始化所有的个体粒子,初始化它们的速度和位置,并且将个体的历史最优goodvalue设为当前位置,而群体中最优的个体历史位置作为当前的全局最
18
f粒子群_Matlab程序代码
优bestvalue。2在当代的进化中,计算各个粒子的适应度函数值。3如果该粒子当前的适应度函数值比其历史最优值要好,那么历史最优将会
被当前位置所替代。(4)如果该粒子的历史最优比全局最优要好,那么全局最优将会被该粒子
的历史最优所替代。5对每个粒子按照公式1和公式2对速度和位置进行更新。6进化代数增加1,如果还没有到达结束条件,转到2步,否则输出全局最
优bestvalue并结束。
开始
初始化粒子群
计算每个粒子新位置的适应值
根据粒子适应值更新个体最优值和全局最优值
根据公式更新粒子速度和位置
N
是否满足终
止条件
Y输出最优解
结束
图一PSO算法流程
28
f粒子群_Matlab程序代码
4程序设计与仿真(1)程序设计说明采用MATLAB软件编程,程序粒子种群个数设定为20个,搜索范围为全局版本,终止条件是粒子都到达最优点。
(2)函数f1x2x3y4y2,其图形如图2所示,其在x05,
y3处有最小值f725运行程序大约迭代220步,就可以让所有的粒子到达最优点。图3中坐标图从左到右从上到下分别为初始化种群的位置、k50的粒子位置、k100的粒子位置及迭代结束粒子的位置从图中可见能够搜索到最优点。
图2f1三维图形
图3仿真粒子位置图

(2)Rastrigi
函数f2xi1210cos2xi10,当
2时,为二维图i1
形如图4所示,在x10,x20处有最大值f0;在程序中取相反数求其最小值,迭代k670步左右将可以将所有的粒子推向一点最优点。取前十个粒子的位置如图5,可知可以快速地得到满意的最优解,且能够跳出局优。
图4f2函数
2三维图形
图5粒子位置坐标

(3)rose
brock函数:f3100xi1xi2xi12xi1010当
2时,函数i1
为二维,当x1x21时有最小值f0,其图形如图6,可知在最优点附近,函数值下降很慢,利用将所有粒子推向一点终止条件,大约迭代k1200次左右结束。
38
f粒子群_Matlab程序代码
可以从坐标图中(图7)看到粒子的在迭代过程中位置。
图6f3函数
2三维图形
图7粒子坐标位置

5时,即是5维的rose
brock函数,当x1x2x3x4x51时有最小值f0
采用粒子推向一点作为终止条件,运行程序迭代10万次(人为设定)后,全局
最优值已到了理r
好听全球资料 返回顶部