http://www.paper.edu.cn
-1-
求解二次规划的粒子群优化算法
1
李响,曹德欣,沐爱勤
中国矿业大学理学院,江苏徐州(221008)
E-mail:Ideal_nn@126.com
摘 要: 二次规划是一类基本而又重要的非线性规划问题. 粒子群是一种通过群体中个体
间的相互作用寻找复杂空间中最优区域的一种算法,本文讨论了一种改进的粒子群算法求解
二次规划问题,该算法无需对问题的凸性要求,进行了数值试验,数值结果表明了算法的有效
性.
关键词:粒子群;二次规划;无约束问题
1.引言
二次规划是一类基本而又重要的非线性规划问题.对二次规划问题的求解已经取得了很
多成果, 文献[8],[9]分别讨论了凸二次规划问题的内点算法, 文献[3],[4],[5]分别应用了牛顿
法、精确罚函数法和极大熵方法求二次规划问题的最优解, 文献[6],[7]对非凸二次规划分别
采用了分枝定界法和有效集方法. [10],[11]给出求解二次规划的区间数学方法,本文讨论粒子
群算法求解下面的无约束二次规划问题:
T
xX
1
min f(x)= x Hx+dx
2
∈
( 1 )
其中:
00
xx≤≤ ,
00
d x x R∈,, ,
nn
R
是对称矩阵.
2.粒子群优化算法(PSO)
PSO 算法最早由 Kennedy 和 Eberhart 提出[1]. PSO 初始化为一群随机粒子(随机解), 在
每一次迭代中, 粒子通过跟踪两个“极值”来更新自己: 第一个就是粒子本身所找到的最好解,
称为个体极值点(用 pbest 表示其位置), 另一个极值点是整个种群目前找到的最好解, 称为全
局极值点(用 gbest 表示其位置). 在找到这两个最好解后, 粒子根据如下的式(2)(3)和式(4)来
更新自己的速度和位置. 粒子 i 的信息可以用 D 维向量表示, 位置表示为
12
( , ,...., )
T
iii iD
Xxx x=
, 速度为
12
( , ,...., )
T
iii iD
Vvv v=
, 其他向量类似. 则速度和位置更新
方程为:
1
11 2 2
()()
kk kkk kkk
id id id id d id
v v c rand pbest x c rand gbest x
ω
+
=+ −+ −
(2)
max n 1 max
1
ddd
max n 1 max
ddd
vvv
-v v <-v
k
id
v
+
+
+
⎧
>
=
⎨
⎩
(3)
11kkk
id id id
xv
++
=+
(4)
称为惯性权重,
k
id
v 是粒子 i 在第 k 次迭代中第 d 维的速度; c1, c2 是加速系数(或称学习
因子), 分别调节向全局最好粒子和个体最好粒子方向飞行的最大步长, 若太小, 则粒子可
能远离目标区域, 若太大则会导致突然向目标区域飞去, 或飞过目标区域[2]. 合适的 c1, c2
可以加快收敛且不易陷入局部最优, 通常令
1
c =
2
c =2;
1,2
rand 是[0, 1]之间的随机数;
k
id
是粒子 i 在第 k 次迭代中第 d 维的当前位置;
id
best 是粒子 i 在第 d 维的个体极值点的位
1
本课题得到中国矿业大学科技基金(A200410)的资助。