基于重心法的粒子群优化算法

点赞:25597 浏览:117915 近期更新时间:2024-01-12 作者:网友分享原创网站原创

【摘 要】针对函数优化问题,提出了一种基于重心法的粒子群优化算法.该算法利用混沌序列产生粒子的位置和速度,并通过重心法和分类方式更新粒子的速度.最后将算法应用到函数优化问题中,并与其它改进的粒子群算法进行比较.数值结果表明,提高了算法局域搜索能力,全局最优解的精度.

【关 键 词】粒子群优化算法;混沌;重心法

1.引言

1995年,粒子群优化算法被美国的Kennedy和Eberhart首次提出,并在各个领域得到广泛的应用.由于混沌具有遍历性等特点,许多学者提出了嵌入混沌序列的混合粒子群优化算法[1].本文将使混沌序列遍历性得以充分利用.同时引入重心法和由粒子的目标函数适应值分类进行速度更新.提出了一种基于重心法的粒子群优化算法(简称CPSOC).

2.基于重心法的粒子群优化算法

本文所要解决的全局连续优化问题是:[2]

(1)

其中f(x)是一个实函数,在有界空间中x是一个实数向量.

2.1充分运用混沌序列遍历性质

本文采用的混沌序列迭代公式是Logistic方程:等于4,∈(0,1)随机数.

(2)

2.2重心法

重心法定义[3]:设有n个元素,用表示元素i和j的距离,用表示初始类.规定类与类之间为距离为两类最近的元素的距离,用表示与的距离,则.每一类用重心代表,类与类间的距离就是重心间的距离..其中,分别表示与的重心.

2.3分类过程[4]

第一步:当局域搜索更新的粒子的目标函数适应值不如先前粒子最好个体的目标函数适应值时,pbesti:个体极值点.gbesti:全局极值点.

(5)

第二步:当局域搜索更新的粒子的目标函数适应值好于先前粒子最好个体的目标函数适应值,但是不如整个粒子群迄今为止搜索到的最优解的目标函数值时.

(6)

其中:第k代这个类中最优解的位置.

第三步:当局域搜索更新的粒子的目标函数适应值好于整个粒子群迄今为止搜索到的最优解的目标函数适应值时,:第k代这个类中最优解的位置.

(7)

3.CPSOC算法流程


Step1初始化N粒子的位置(,i等于1,2等N)和速度(,i等于1,2等N)

Step2利用公式(1)计算每个粒子的目标函数值f().

Step3初始化粒子的各自最好位置,等于和f()等于f(),寻找

等于min{f(),等f(),等f()}(8)

Step4优化过程.

Step5继续计算初始化的混沌序列,执行重心法和分类更新速度过程.

Step6根据公式来更新粒子位置,更新个体最好目标函数值,k等于k+1.

Step7停止迭代的条件被满足.

4.算法仿真实验与比较研究

文中将基于重心法的粒子群优化算法与标准粒子群优化算法(SPSO)、混沌粒子群优化算法(CPSO)、惯性权重线性递减粒子群优化算法(LDIWPSO)进行比较[5].表1中粗体数值表示同类别数据中最好者.

5.实验结果分析

在表中CPSOC算法最优解的精度已达到10-1,说明算法的搜索能力强.CPSOC算法最优解的标准差已达到10-2,说明算法波动性小、稳定性强.在最优解的平均值比较中,在重心法的作用下粒子会聚成为类,根据函数值采用不同速度更新公式,以此获得全局最优解,这说明CPSOC算法最优解始终保持最好是充分利用混沌序列的均匀性和遍历性,为粒子发现全局最优解提供重要的信息.