求解非线性方程及方程组的粒子群算法_张建科
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
位置; 步骤 5 根据方程( 2) , ( 3) 分别对粒子的速度和位置进行
更新; 步骤 6 如满足终止条件, 则输出解; 否则返回步骤 2。
3.3 算法伪码描述
N: 粒子群规模。 P: 粒子飞行所经历的最好位置。 D: 粒子的多维向量的维数。 G: 所有粒子飞行经过的最好位置。 Lbest: P 所对应的适应值。 t: 迭代次数。 Gbest: G 所对应的适应值。 Procedure PSO begin
子群迄今为止搜索到的最优位置满足的预定最小适应阈值。
3 PSO 解方程和方程组的步骤
3.1 问题转化
设非线性方程:
f( x) =0
( 5)
*
的全部实根包含在( c, d) 中, x 为方程( 5) 的任一固定实根。在
*
[a, b]内只包含方程( 5) 的一个实根 x , [a, b]"( c, d) 。易证方程
令 G=xi if ( fitnessi >Lbest)
令 P=xi 更新 Lbest, Gbest end while end while end begin
4 数值结果
应用 PSO 算法计算以下测试方程如下:
学 习 因 子 c1 =c2 =1.8, ! 从 1.0 减 小 到 0.4, 群 体 规 模 数 为
求解非线性方程及方程组的粒子群算法
张建科 1, 2 王晓智 3 刘三阳 2 张晓清 4 1( 西安邮电学院应用数理系, 西安 710061) 2( 西安电子科技大学理学院, 西安 710071) 3( 中国农业发展银行渭南市分行, 陕西渭南 714000) 4( 西安电子科技大学软件学院, 西安 710071)
t=0 Lbest=Lbest( 0) Gbest=Gbest( 0) while ( i<N)
while ( d<D) 在[xmin , xmax ]内随机产生 xid 在[Vmin , Vmax ]内随机产生 Vid
end while 计算粒子 xi 的适应度 fitnessi if ( fitnessi >Gbest)
3
例 2 f( x) =x - 2x- 1=0, x∈[1, 2]
1 引言
对非线性方程及方程数与变量数一致的非线性方程组问 题, 传统数值方法多使用目标函数的导数信息, 具有较快的、与 初值有关的局部收敛性。如牛顿法, 是一种非常有效的局部搜 索迭代方法。文[2, 3]给出了信赖域算法, 但同样使用了初始点 和导数信息。对一些强非线性方程和方程组, 传统方法易导致 失败, 有效性低。因此, 研究针对强非线性方程和方程组的高效 算法是一个较有意义的问题。
( 1) 在指定变量空间搜索解, 有全局特点, 避免了传统算法 的局部性。
( 2) 高度的适应性、鲁棒性和并行性。 由于粒子群算法有这些优良性质, 使得它不依赖于初始点 和 目 标 函 数 的 导 数 信 息 。方 程 和 方 程 组 问 题 可 以 转 化 为 函 数 优
化问题, 因此可以把粒子群算法推广到解非线性方程及方程 组。实验结果表明了算法的有效性。
例 7 1 000 162.488 372
43
- 0.707 724 1.500 668 搜到 26 次 0.86
0.000 114 0.999 817 搜到 17 次
例 8 1 000 150.880 000
50
1.546 314 1.391 152 搜到 40 次 1
1.067 307 0.139 012 搜到 10 次
基金项目: 陕西省自然科学研究项目( 编号: 2003 A 09) 作者简介: 张建科( 1978- ) , 男, 硕士研究生, 研究方向: 优化算法。王晓智( 1964- ) , 男, 高级工程师, 研究方向: 优化算法。刘三阳( 1959- ) , 男, 教授,
博导, 研究方向: 最优化理论及应用。张晓清( 1981- ) , 男, 硕士研究生, 研究方向: 优化算法。 56 2006.07 计算机工程与应用
2 PSO 算法思想
粒 子 群 算 法 源 于 对 鸟 群 觅 食 行 为 的 研 究 。研 究 者 发 现 鸟 群 在 飞 行 中 经 常 会 突 然 改 变 方 向 、散 开 、聚 集 , 其 行 为 不 可 预 测 , 但其整体总保持一致性, 个体和个体间也保持着最适宜的距 离。通过对类似生物群体行为的研究, 发现生物群体中存在一 种社会信息共享机制, 它为群体的进化提供了一种优势, 这也 是粒子群算法形成的基础。
假设在一个 S 维的目标搜索空间中, 有 m 个粒子组成一 个 群 体 , 其 中 第 i 个 粒 子 表 示 为 一 个 S 维 的 向 量 xi =( xi1 , xi2 , … , xiS ) , i=1, 2, … , m, 则 第 i 个 粒 子 在 S 维 搜 索 空 间 中 的 位 置 即每个粒子的位置就是一个潜在的解。将 xi 代入一个目标函数 就可以算出其适应值, 根据适应值的大小衡量解的优劣。第 i 个 粒 子 的 飞 翔 的 速 度 是 S 维 向 量 , 记 为 V=( Vi1 , Vi2 , … , ViS ) 。 记 第 i 个 粒 子 迄 今 为 止 搜 索 到 的 最 优 位 置 为 Pis =( Pi1 , Pi2 , … ,
Par ticle Swar m Optimization for Solving Nonlinear Equation and System
Zhang J ianke1,2 Wang Xiaozhi3 Liu Sanyang2 Zhang Xiaoqing4 1( Department of Mathematics and Physics, Xi'an University of Post and Telecommunications, Xi'an 710061) 2( School of Science, Xidian University, Xi'an 710071)
( 4)
在式( 3) 中 ! 为非负数, 称为动力常量, 控制着前一速度
对当前速度的影响, ! 较大时, 前一速度影响较大, 全局搜索能
力较强; ! 较小时, 前一速度影响较小, 局部搜索能力较强。通
过调整 ! 的大小来跳出局部极小值。" 为约束因子, 用来控制
速度的权值。
迭代终止条件根据具体问题一般选为最大迭代次数或粒
E- mail: jiankezh@163.com
摘 要 用随机搜索性能良好的粒子群算法求解非线性方程及方程组问题, 计算中不需使用目标函数的导数信息; 实验 结果表明了该算法的有效性。
关键词 粒子群算法 非线性方程 非线性方程组
文章编号 1002- 8331- ( 2006) 07- 0056- 03 文献标识码 A 中图分类号 O224; TP18
( 1)
t+1 t t
xis =xis +vis
( 2)
其 中 , i=1, 2, … , m, s=1, 2, … , S; 学 习 因 子 c1 和 c2 是 非 负
常数; r1 和 r2 为伪随机数, 服从[0, 1]上的均匀分布。vis ∈[- vmax ,
vmax ], vmax 为常数, 由用户设定。
*
( 5) 在[a, b]中的根 x 等价于函数:
2
V( x) =( f( x) )
( 6)
在[a, b]中的极小点。
同理设非线性方程组:
T
G( x) =[g1 ( x) , g2 ( x) , …, gp ( x) ]
( 7)
其中: ai ≤xi ≤bi , p∈N, i∈N, ai 和 bi 为 变 量 向 量 x 的 分 量
PiS ) , 整个粒子群迄今为止搜索到的最优位置为 Pgs =( Pg1 , Pg2 , …, PgS ) 。
Kennedy 和 Eberhart 最 早 提 出 的 粒 子 群 算 法 采 用 下 列 公
式对粒子操作:
t+1 t
t
t
vis =vis +c1 r1 ( pis - xis ) +c2 r2 ( pgs - xis )
20, 最 大 进 化 代 数 为 1 000, 用 VC++6.0 编 程 , 算 法 运 行 50 次 ,
取平均值。
3
例 1 f( x) =x - 2x- 5=0, x∈[- 4, 4]
要求
f( xn )
-6
<1.0×10
计算机工程与应用 2006.07 57
表 2 PSO 解非线性方程组数值结果
PSO 算法流程如下:
步骤 1 初始化一个规模为 N 的粒子群, 设定初始位置和
速度;
步骤 2 计算每个粒子的适应值;
步骤 3 对每个粒子将其适应值和其经历过的最好位置
Pis 的适应值进行比较, 若较好, 则将其作为当前的最好位置; 步骤 4 对每个粒子将其适应值和全局经历过的最好位置
P gs 的 适 应 值 进 行 比 较 , 若 较 好 , 则 将 其 作 为 当 前 的 全 局 最 好
xi 的上下限。方程组( 7) 等价于:
p
&2
M( x) = cj ( gj ( x) ) ai ≤xi ≤bi
( 8)
j=1
的最优解。其中 cj ( j=1, 2, …, p) 为加权系数。
3.2 算法步骤
PSO 算法中的适应值函数取 为 V( x) ( M( X) ) 。 终 止 条 件 :
所有粒子飞行经过的最好点的值小于给定的误差 #。
1995 年 , Kennedy 和 Eberhart 提 出 了 一 种 粒 子 群 算 法 [1] ( Particle Swarm Optimization, PSO) 。因其易于理解, 易实现, 很 多情况下比遗传算法更有效, 所 以 短 短 十 年 的 时 间 PSO 算 法 在优化问题, 电路设计, 系统辨识等领域得到了很好的应用。 PSO 算法的优势在于:
令 G=xi 更新 Lbest, Gbest end while t=t+1 while ( 终止条件未满足时) while ( i<N) while ( d<D) 计算 Vid 计算 xid end while 计算粒子 xi 的适应度 fitnessi if ( fitnessi >Gbest)
3( Wei- nan Branch Agricultural Development Bank of China, Weinan 714000) 4( School of Software, Xidian University, Xi'an 710071)
Abstr act: Particle Swarm Optimization with random searching is used to solve nonlinear equation and system problems. At the same time, the once derivation of the objective function is not used in the computation.A large number of numerical experiments indicate Particle Swarm Optimization is a very effective algorithm for nonlinear system. Keywor ds: Particle Swarm Optimization, nonlinear equation, nonlinear system
Y.Shi 和 Eerhart 在 1998 年对式( 1) 作了如下改进[4]:
t+1
t
tቤተ መጻሕፍቲ ባይዱ
t
vis =!vis +c1 r1 ( pis - xis ) +c2 r2 ( pgs - xis )
( 3)
1999 年 M.Clerc 对式( 2) 作了如下改进[6]:
t+1 t
t
xis =xis +"vis
最大代数 平均代数 搜到解次数 成功率 X1 平均值 X2 平均值 X3 平均值
例 5 1 000 208.300 000
50
1 - 0.000 001 - 0.000 004 - 0.000 004
例 6 1 000 262.037 037
27
0.54 0.000 001 - 0.000 012 - 0.000 001