漫步最优化四十——Powell法(上)











——

过去使用最广泛的共轭方向法是由Powell提出来的,这个方法与共轭梯度法一样,开始也是来自凸二次问题,但是它也成功应用于非二次问题。

Powell法最显著的特征就是通过一系列线搜索生成共轭方向,所用的技术基于下面的定理:

1 如果凸二次问题

f(x)=a+xTb+12xTHx

在直线

x=xa+αda


x=xb+αdb

上分别对 α 最小化,得到的最小点分别为 xa,xb ,如图1所示。

如果 db=da ,那么向量 xbxa da (或者 db )共轭。

如果 f(xa+αda),f(xb+αdb) α 最小化,那么

df(xa+αda)dα=dTag(xa)=0df(xb+αdb)dα=dTbg(xb)=0(1a)(1b)

因为

g(xa)=b+Hxag(xb)=b+Hxb(2a)(2b)

因为 db=da ,所以由等式1与2可得

dTaH(xbxa)=0

因此,向量 xbxa 与方向 da (或者 db )共轭,证毕。 ||

在Powell算法中,假设初始点为 x00 n 个线性无关方向为d01,d02,,d0n,并且每次迭代执行一系列线搜索。虽然可以使用任意的线性无关方向集合,但是出于方便,我们使用坐标方向集。


这里写图片描述
图1

第一次迭代的时候, f(x) 从初始点 x00 开始,在方向 d01,d02,,d0n 上最小化分别得到点 x01,x02,,x0n ,如图2所示,新的方向 d0(n+1)
d0(n+1)=x0nx0

f(x) 在这个方向上最小化得到新的点 x0(n+1) ,然后更新方向集为

d11d12d1(n1)d1n=d02=d03=d0n=d0(n+1)(3)

第一次迭代的效果就是 f(x) 减少了 Δf=f(x00)f(x0(n+1)) 并且同时删除了 d01 加入了 d0(n+1)

第二次得带执行同样的过程,从点

x10=x0(n+1)

开始, f(x) 在方向 d11,d12,,d1n 上最小化分别得到点 x11,x12,,x1n ,如图3所示,然后生成新的方向 d1(n+1)

d1(n+1)=x1nx10

f(x) 在方向 d1(n+1) 上最小化得到点 x1(n+1) 。因为

d1n=d0(n+1)

所以 d1(n+1) dn 共轭,因此我们令

d21d22d2(n1)d2n=d12=d13=d1n=d1(n+1)(4)

新的方向解将包含一对共轭方向,即 d2(n1),d2n

用同样的方式执行上面的过程,每次迭代都会增加一个共轭方向。Powell法需要 n(n+1) 次线搜索,因为每次迭代包含 (n+1) 次线搜索,共需要 n 次迭代,Powell算法实现如下:

11x00εd01=[x01 0  0]Td02=[0 x02  0]Td0n=[0 0  x0n]Tk=02i=1nαki,f(xk(i1)+αdki)αxki=xk(i1)+αkidki3dk(n+1)=xknxk0αk(n+1),f(x0+αdk(n+1))αxk(n+1)=xk0+αk(n+1)dk(n+1)fk(n+1)=f(xk(n+1))4αk(n+1)dk(n+1)<ε,x=xk(n+1),f(x)=fk(n+1)5d(k+1)1=dk2d(k+1)2=dk3d(k+1)n=dk(n+1)x(k+1)0=xk(n+1),k=k+1,k=k+12


这里写图片描述
图2


这里写图片描述
图3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值