第四章一维搜索法
第四章 一维搜索法
由第一章关于求解最优化问题概述中我们知道,从已知迭代点n k R X ∈出发按照基本迭代公式k k k k P t X X +=+1来求解最优化问题,其关键在于如何构造一个搜索方向n k R P ∈和确定一个步长1R t k ∈,使下一迭代点1+k X 处的目标函数值下降,即)()(1k k X f X f <+.现在我们来讨论,当搜索方向k P 已经确定的情况下,如何来确定步长k t ?步长因子的选取有多种方法,如取步长为常数,但这样选取的步长并不最好,如何选取最好步长呢?实际计算通常采用一维搜索来确定最优步长.
对无约束最优化问题
)(min X f n
R
X ∈, 当已知迭代点k X 和下降方向k P 时,要确定适当的步长k t 使=+)(1k X f
)(k k k P t X f +比)(k X f 有所下降,即相当于对于参变量t 的函数
)()(k k tP X f t +=?
要在区间],0[∞+上选取k t t =使)()(1k k X f X f <+,即
)0()()()(??=<+=k k k k k X f P t X f t .
由于这种从已知点k X 出发,沿某一下降的探索方向k P 来确定步长k t 的问题,实质上是单变量函数()t ?关于变量t 的一维搜索选取问题,故通常叫做一维搜索.按这种方法确定的步长k t 又称为最优步长,这种方法的优点是,它使目标函数值在搜索方向上下降得最多.
今后为了简便起见,我们用记号
)(1k k k P X ls X ,=+
(4.1)
表示从点k X 出发沿k P 方向对目标函数)(X f 作直线搜索所得到的极小点是1+k X .其中l 和s 分别是Linear search (直线搜索)两词的词首.在目标函数)(X f 已确定的条件下(4.1)
等价于如下两式:
????
?+==+=++k
k k k t
k k t k k k P t X X t tP X f P t X f 1)(min )(min )(,? 下面进一步解释迭代点k k k k P t X X +=+1的空间位置.容易证明,若从k X 出发,沿k P 方
向进行一维搜索得极小点k k k k P t X X +=+1,则该点1+=k X X 处的梯度方向)(1+?k X f 与搜索方向k P 之间应满足
0)(1=?+k T k P X f . (4.2)
事实上,设)()(k k tP X f t +=?,对t 求导有
k T k k P tP X f t )()(+?='?. 令0)('=t ?,即0)(=+?k T k k P tP X f ,所以0)(1=?+k T k P X f .
式(4.2)的几何意义是明显的.从某一点k X 出发沿k P 方向对目标函数)(X f 作直线搜索,所得到的极小点为1+k X .式(4.2)指出,梯度)(1+?k X f 必与搜索方向k P 正交.又因为)(1+?k X f 与目标函数过点1+k X 的等值面)()(1+=k X f X f 正交,所以进一步看到,搜索方向
k P 与这个等值面在点1+k X 处相切(如图4.1所示)
. §4.1 搜索区间及其确定方法
一、搜索区间
设一维最优化问题为
)
(m in max
0t t t ?≤≤. (4.3)
为了求解问题(4.3),我们引入如下的搜索区间概念.
定义4.1 设
])0[)(0[max *
*11t t t R R ,,,:∈∞+∈→?,并且 )
(min )(max
0*t t t t ??≤≤=,
若存在闭区间])0[])([0[][max t b a b a ,,,,
?∞+?使][*
b a t ,∈,则称][b a ,是问题(4.3)的搜索区间.
简言之,一个一维最优化问题的搜索区间,就是包含该问题最优解的一个闭区间.通常,在进行一维搜索时,一般要先确定出问题的一个搜索区间,然后在此区间中进行搜索求解.
二、加步探索法
下面,介绍一个确定问题(4.3)的搜索区间的简单方法.这个方法的思想是:先选定一个
初始点])0[)(0[max 00t t t ,或,
∈?∞+∈和初始步长00>h .然后,沿着t 轴的正方向探索前进一个步长,得到新点00h t +.若目标函数在新点处的值是下降了,即
)()(000t h t ??<+,
则下一步就从新点00h t +出发加大步长,再向前探索.若目标函数在新点处的 函数值上升,即
)()(000t h t ??>+,
则下一步仍以0t 为出发点以原步长开始向t 轴的负方向同样探索.当达到目标函数上升的点时,就停止探索,这时便得到问题(4.3)的一个搜索区间.这种以加大步长进行探索来寻找探索区间的方法叫做加步探索法.
加步探索法算法的计算步骤:
(1) 选取初始数据.选取初始点])0[)(0[max 00t t t ,或,∈?∞+∈,计算)(00t ??=.给
出初始步长00>h ,加步系数1α>,令0=k .
(2) 比较目标函数值.令k k k h t t +=+1,计算)(11++=k k t ??,若k k ??<+1,转(3).否则转(4).
(3)加大探索步长.令k k h h α=+1,同时,令k t t =,1+=k k t t ,1k k ??+=,1k k =+,转(2).
(4) 反向探索.若0=k ,转换探索方向,令1,+=-=k k k t t h h ,转(2).否则,停止迭代,令
图4.1
11min{}max{}k k a t t b t t ++==,,,
输出][b a ,
. 加步探索法算法的流程图如图4.2所示。
在加步探索法中,一般建议2=α.若能估计问题(4.3)的最优解的大体位置的话,初
始点0t 要尽量取接近于问题(4.3)的最优解.在具体运用上述加步探索法时,有时还要考虑一些细节问题.例如,当探索得到新点处的目标函数值和出发点处相同时,以及初始步长应如何选取等,都需作适当处理.
三、单谷区间与单谷函数
由于以后要介绍的一些维搜索方法,主要适用于问题(4.3)在搜索区间中只有唯一的最优解的情况,为此,我们再给出下面单谷区间与单谷函数概念.
定义 4.2 设11R R →:?,闭区间1][R b a ?,
.若存在点][*
b a t ,∈,使得)(t ?在][*t a ,上严格递减,()t ?在][*b t ,上严格递增,则称][b a ,是函数)(t ?的单谷区间,)(t ?是][b a ,上单谷函数.
图4.2
由定义4.2易知,一个区间是某函数的单谷区间意味着,在该区间中函数只有一个“凹
谷”(极小值).例如,图4.3中的][b a ,
是)(t ?的单谷区间,也即)(t ?是][b a ,上的单谷函数.图4.4中的][b a ,
不是)(t ?的单谷区间,即)(t ?不是][b a ,上的单谷函数. 另外,从定义4.2还可知,某区间上的单谷函数在该区间上不一定是连续函数,而凸函
数在所给区间上必然是单谷函数(如图4.3所示).由定义4.1和定义4.2知,函数)(t ?的单谷区间总是相应问题(4.3)的一个搜索区间(如图4.3所示),但反之不然(如图4.4所示).
图4.3
图4.4
单谷区间和单谷函数有如下有用的性质:
定理4.1 设][1
1b a R R ,,
:→?是)(t ?的单谷区间,任取][21b a t t ,,∈并且12t t <. (1)若有)()(12t t ??≤,则][1t a ,
是)(t ?的单谷区间. (2)若有)()(12t t ??≥,则][2b t ,
是)(t ?的单谷区间. 证明略.
定理4.1说明,经过函数值的比较可以把单谷区间缩短为一个较小的单谷区间.换句话说,利用这个定理可以把搜索区间无限缩小,从而求出极小点.以下介绍的几种,一维搜索方法都是利用这个定理通过不断地缩短搜索区间的长度,来求得一维最优化问题的近似最优解.
§4.2 对分法
一、对分法基本原理
求解一维最优化问题min ()t ?一般可先确定它的一个有限搜索区间][b a ,
,把问题化为求解问题)
(min t b t a ?≤≤,然后通过不断缩短区间],[b a 的长度,最后求得最优解.
设1
1R R →:?在已获得的搜索区间][b a ,内具有连续的一阶导数.因为)(t ?在][b a ,
上可微,故)(t ?在][b a ,
上连续,由此知)(t ?在][b a ,上有最小值. 令0)(='t ?,总可求得极小点*t .不妨设)(t ?在)(*t a ,上是单减函数;在)(*
b t ,
上是单增函数.所以)(*t a t ,
∈时,0)(<'t ?,故0)(<'a ?;当)(*b t t ,∈时,0)(>'t ?,亦即0)(>'b ?.对分法的原理如图4.5所示.
二、对分法迭代步骤
已知)(t ?,)(t ?'表达式,终止限ε.
(1) 确定初始搜索区间],[b a ,要求'()0'(a b ??<>,.
(2) 计算],[b a 的中点)
(21
b a
c +=.
(3) 若0)(<'c ?,则c a =,转(4);若0)(='c ?,则c t =*,转(5);若0)(>'c ?,则c b =,转(4).
图4.5
(4) 若ε<-||b a ,则
)(21
*b a t +=
,转(5);否则转(2).
(5) 打印*
t ,结束.
对分法的计算流程如图4.6所示.
三、对分法有关说明
对分法每次迭代都取区间的中点.若这点的导数值小于零,说明0)(='t ?的根位于右半区间中(如图4.5所示),因此去掉左半区间;若中点导数值大于零,则去掉右半区间;若中点导数值正好等于零,则该点就是极小点.因为每次迭代都使原区间缩短一半,所以称为对分法或二分法.
§4.3 Newton 切线法
一、Newton 切线法基本原理
设11:R R →?在已获得的搜索区间][b a ,
内具有连续二阶导数,求
)
(min t b
t a ?≤≤.
因为)(t ?在][b a ,
上可微,故)(t ?在][b a ,上有最小值,令0)(='t ?. 下面不妨设在区间][b a ,
中经过k 次迭代已求得方程0)(='t ?的一个近似根k t .过))(,(k k t t ?'作曲线)(t y ?'=的切线,其方程是
))(()(k k k t t t t y -''='-??.
(4.4)
然后用这条切线与横轴交点的横坐标1+k t 作为根的新的近似(如图 4.7所示).它可由方程(4.4)在令0=y 的解出来,即
)()(1k k k k t t t t ??'''-
=+.
这就是Newton 切线法迭代公式.
二、Newton 切线法迭代步骤
已知)(t ?,)(t ?'表达式,终止限ε.
(1) 确定初始搜索区间],[b a ,要求'()0'(a b ??<>,.
(2) 选定0t .
(3) 计算000'()/"()t t t t ??=-.
(4) 若ε≥-||0t t ,则t t =0,转(3);否则转(5). (5) 打印()t t ?,,结束.
Newton 切线法的计算流程如图4.8所示.
三、Newton 切线法有关说明
这种方法如果初始点选得适当,收敛速度很快,通常经过几次迭代就可以得到满足一般精度要求的结果,但是它也有缺点.第一,需要求二阶导数.如果在多维最优化问题的一维搜索中使用这种方法,就要涉及Hesse 矩阵,一般是难于求出的.第二,当曲线)(t y ?'=在],[b a 上有较复杂的弯曲时,
这种方法也往往失效.如图4.9所示的迭代:210t t t →→,结果2t 跳出],[b a .迭代或
者发散,或者找到的根并不是我们想要的结
果.第三,即使曲线比较正常,在],[b a 中或者上凹或者下凹,初始点的选取也必须适当.在图 4.10(a )的情况下,曲线上凹,
应选点b 作为初始点;而在图4.10(b )的情况下,曲线下凹,应选点a 为初始点.否则都可能失败.
图4.7
图4.9
图4.8
图4.10
§4.4 黄金分割法
一、黄金分割法基本原理
要介绍黄金分割法有必要回顾一下古老的黄金分割问题.所谓黄金分割就是将一线段分为二段时,要求整段长L 与较长段x 的比值正好等于较长段x 与较短段x L -的比值(如图4.11所示),即
x L x
x L -=
.
于是有022=-+L Lx x ,解出其正根
L L x 618.021
5≈-=
.
由此可见长段的长度应为全长的0.618倍,而短段的长度应为全长的0.382倍.因为古代的人们认为按0.618的比率来分割线段是最协调,胜似黄金,故称之为黄金分割.
图4.11
用黄金分割法进行一维搜索,其基本思想是在单谷区间][b a ,
内适当插入两点21t t ,,由此把区间][b a ,
分为三段,然后再通过比较这两点函数值大小,就可以确定是删去最左段还是最右段,或者同时删去左右两段保留中间段.如此继续下去可将单谷区间无限缩小.
二、黄金分割法迭代步骤
现在提出一个问题,就在][b a ,
上如何选取二点21t t ,使得迭代次数最小而区间缩短最
快?要解决这个问题,人们想到对区间][b a ,
选二点21t t ,等价于将区间长度a b -进行黄金分割,也就是将第一个搜索点1t 取在][b a ,
的0.618处,第二个搜索点2t 取成1t 的对称点即][b a ,的0.382处(如图4.12所示),亦即
)(618.01a b a t -+=, )(382.02a b a t -+=.
计算)(1t ?与)(2t ?的值,并根据)(1t ?与)(2t ?的值的大小关系分情况讨论:
(1) 若)()(21t t ??<,说明1t 是好点,于是把区间][2t a ,
划掉,保留][2b t ,,则][2b t ,内有一保留点1t ,置新的区间][][211b t b a ,
,=; (2)若)()(21t t ??>,说明2t 是好点,于是应将][1b t ,划掉,保留][1t a ,,则][1t a ,内有保留点2t ,置新的区间][][111t a b a ,
,=. (3)若)()(21t t ??=,则应具体分析,看极小点可能在哪一边再决定取舍.在一般情况下,可同时划掉][2t a ,
和][1b t ,,仅保留中间的][12t t ,,置新的区间][][1211t t b a ,,=. 接下来是在留下的区间][11b a ,内找好点.重复上面的步骤,直到搜索区间][i i b a ,小于给定的允许误差0>ε为止.这样就得到黄金分割法迭代算法:
已知)(t ?,常数β=0.382,终止限ε.
(1)确定)(t ?的初始搜索区间][b a ,
. (2)计算)()(222t a b a t ??β=-+=,.
(3)计算1211()t a b t t ??=+-=,. (4) 若ε<-||21t t ,则打印22
1*t t t +=
,结束;否
则转(5).
(5) 判别是否满足21??≤:若满足,则置
12122??===,,t t t a ,
然后转(3);否则,置
)()(22221211t a b t t t t b ??βα??=-+====,,,,,
然后转(4).
黄金分割法算法流程如图4.13所示.
三、黄金分割法有关说明
黄金分割法是通过所选试点的函数值而逐步缩短单谷区间来搜索最优点*t .该方法适用于单谷区间],[b a 上的任何函数,甚至可以是不连续函数,因此这种算法属于直接法,适用相当广泛.
图4.12
§4.5 抛物线插值法
一、抛物线插值法基本原理 考虑一维搜索问题
)
(min 2
1t t t t ?≤≤,
假设其中)(t ?是定义在区间][21t t ,
上的单谷函数.首先用试探法在][21t t ,上找一点0t ,使之满足
)()()()(0201t t t t ????≥≥,.
通过目标函数曲线上的三个点))(())(())((220011t t t t t t ???,,,,,
,作它的二次拟合曲线(如图4.14所示)
2210)(t a t a a t P ++=.
)
图4.13
图4.14
由于上述三个点既是目标函数曲线)(t ?上的点,又是二次拟合曲线)(t P 上的点,故有方程组
?????=++==++==++=.,,
)()()()()()(2222210202
02010012121101t t a t a a t P t t a t a a t P t t a t a a t P ???
(4.5)
将方程组(4.5)中的0a 消去,得
22110210102210220202()()()()()()()()a t t a t t t t a t t a t t t t ?????-+-=-??-+-=-??,.
(4.6)
从方程组(4.6)可解出待定系数
))()(()()()()()()(1220012202102122122201t t t t t t t t t t t t t t t a ----+-+-=
???,
(4.7)
))()(()
()()()()()(1220012010121202t t t t t t t t t t t t t t t a ----+-+-=
???.
(4.8)
对于二次拟合函数2210)(t a t a a t P ++=,我们很容易求得它的极小值点.令0)
(=dt t dP ,
即0221=+t a a ,从中解出
212a a t -
=
(4.9)
即为二次拟合函数)(t P 的极小值点.
将式(4.7)与式(4.8)代入式(4.9)得
.
)()()()()()()()()()()()(212201012120220210212212220
21t t t t t t t t t t t t t t t t t t a a t ??????-+-+--+-+-=-= (4.10)
用区间],[21t t 上二次拟合函数)(t P 的这个极小值点t 作为目标函数)(t ?在该区间极小值点的一个估计值.若t 和0t 已充分接近,即对给定的允许误差0>ε使
ε<-||0t t
(4.11)
成立时,t 就可被看作是)(t ?在区间][21t t ,
内近似最优解;否则应缩短区间,按照)(t ?值保持两头大、中间小的原则构成新的三点,继续上述过程,直至不等式(4.11)成立为止.
二、抛物线插值法迭代步骤
下面具体介绍一下缩短区间,构成新三点的方法.
由式(4.15)得到的点t ,在区间],[21t t 内既可能在点0t 的左侧(即0t t <),又可能在0
t 的右侧(即0t t >),分别对应这两种情形比较)(t ?和)(0t ?的大小,又有)()(0t t ??<,
)()(0t t ??>及)()(0t t ??=等三种情形,故共有如下六种情况(如图4.15与图4.16所示):
(1)对于图 4.15(a )的情况:因)()(0t t ??<,所以相对0t 来说t 是好点,故划掉区
间],[20t t ,保留],[01t t 为新区间,故置)()(0202t t t t ??==,,00()()t t t t ??==,,1t 保持不变;
(2)对于图4.15(b )的情况:因)()(0t t ??>,所以相对t 来说0t 是好点,故划掉],[1t t ,
保留],[2t t 为新区间,故置11()()t t t t ??==,
,0t 与2t 保持不变; (3)对于图4.15(c )的情况:因)()(0t t ??<,所以相对0t 来说t 是好点,
故划掉],[01t t ,保留],[20t t 为新区间,故置10100()()t t t t t t ??===,
,,0()()t t ??=,2t 保持不变;
(4)对于图4.15(d )的情况:因)()(0t t ??>,所以相对t 来说0t 是好点,故划掉]
,[2t t 保留],[1t t ,故置22()()t t t t ??==,,0t 与1t 保持不变.
(5)对于图4.16(a )的情况:一般同时划掉],[1t t 及],[20t t 仅留中间的],[0t t ,故置
t t =1,1()()t t ??=,02t t =,20()()t t ??=,22
10t t t +=,
??? ??+=2)(210
t t t ??; (6)对于图4.16(b )的情况:一般同时划掉],[01t t 及],[2t t ,仅留中间],[0t t ,故置01t t =,
10()()t t ??=,t t =2,2()()t t ??=, 22
10t t t += ,
??? ??+=2)(210
t t t ??. 通过上述讨论,我们可直接给抛物线插值法的迭代流程图(图4.17). 三、抛物线插值法有关说明
抛物线插值法是多项式逼近法的一种.所谓多项式逼近,是利用目标函数在若干点的函数值或导数值等信息,构成一个与目标函数相接近的低次插值多项式,用该多项式的最优解作为目标函数的近似最优解.
图4.15 图4.16
斐波那契法 一维搜索方法
短后的区间不大于区间[0,10]的5% 。 解:由题意=δ5%,由斐波那契数列δ1 ≥n F ,则n=7, 00=a ,100=b 1t =0b )(0076a b F F --=2180 , 21 130)(00760'1=-+=a b F F a t , 将1t 和'1t 代入函数,比较大小有)()('11t f t f < 则有001==a a ,21801'2==t t ,21130'11==t b ,21 50)(116512=--=a b F F b t , 将2t 和'2t 代入函数,比较大小有)()('22t f t f < , 则有012==a a ,21502'3==t t ,2180'22==t b ,21 30)(225423=--=a b F F b t , 将3t 和'3t 代入函数,比较大小有)()('33t f t f >, 则有213033==t a ,2150'34==t t ,218023==b b ,21 60)(33433'4=-+=a b F F a t , 将4t 和'4t 代入函数,比较大小有)()('44t f t f >, 则有215044==t a ,2160'45==t t ,218034==b b ,21 70)(44324'5=-+=a b F F a t , 将5t 和'5t 代入函数,比较大小有)()('55t f t f >, 则有216055= =t a ,2170'56==t t ,218045==b b , 则令105 351)21602180()01.05.0(2160))((55215'6=-?++=-++=a b F F a t ε, 将6t 和'6t 代入函数,比较大小有)()('66t f t f <, 则216056==a a ,105351'66==t b ,区间为:?? ????105351,2160 所以选择6t 为极小点,=)(6t f 89.6)2170( -=f 。
最优化方法一维搜索法C++程序
加步探索法 #include 对分法 #include 《机械优化设计》 实验报告 班级: 机械设计(2)班 姓名:邓传淮 学号:0901102008 1 实验名称:一维搜索黄金分割法求最佳步长 2 实验目的:通过上机编程,理解一维搜索黄金分割法的原理,了解计算机在优化设计中的应用。 3 黄金分割法的基本原理 黄金分割法是用于一元函数f(x)在给定初始区间[a,b]内搜索极小点α*的一种方法。它是优化计算中的经典算法,以算法简单、收敛速度均匀、效果较好而著称,是许多优化算法的基础,但它只适用于一维区间上的凸函数[6],即只在单峰区间内才能进行一维寻优,其收敛效率较低。其基本原理是:依照“去劣存优”原则、对称原则、以及等比收缩原则来逐步缩小搜索区间[7]。具体步骤是:在区间[a,b]内取点:a1 ,a2 把[a,b]分为三段。如果f(a1)>f(a2),令a=a1,a1=a2,a2=a+r*(b-a);如果f(a1) 4实验所编程序框图(1)进退发确定单峰区间的计算框图 (2)黄金分割法计算框图 5 程序源代码 (1)进退发确定单峰区间的程序源代码 #include 一维优化方法 最优化设计数学模型中的基本概念: 1、设计变量 在机械设计中,区别不同的设计方案,通常是以一组取值不同的参数来表示。这些参 数可以是表示构件形状、大小、位置等的几何量,也可以是表示构件质量、速度、加速度、力、力矩等的物理量。在构成一项设计方案的全部参数中,可能有一部分参数根据实际情 况预先确定了数值,它们在优化设计过程中始终保持不变,这样的参数称为给定参数(或 叫预定参数)或设计常数。另一部分参数则是需要优选的参数,它们的数值在优化设计过 程中则是需要优选的参数,它们的数值在优化计算过程中是变化的,这类参数称为设计变量,它相当于数学上的独立自变量。一个优化问题如果有n个设计变量,而每个设计变量 用xi(i=1,2, ,n)表示,则可以把n个设计变量按一定的次序排列起来组成一个列阵或行 阵的转置,即写成 ??x1? x=?x? 2?=[x1,x2, ,xT ?? ?n] ?x? n? 我们把x定义为n维欧式空间的一个列向量,设计变量x1,x2, ,xn为向量x的n个 分量。以设计变量x1,x2, ,xn为坐标轴展成的空间称为n维欧式空间,用Rn表示。该空 间包含了该项设计所有可能的设计方案,且每一个设计方案就对应着设计空间上的一个设 计向量或者说一个设计点x。 2、目标函数 优化设计是在多种因素下欲寻求使设计者员满意、且适宜的一组参数。“最满意”、“最适宜”是针对某具体的设计问题,人们所追求的某一特定目标而言。在机械设计中, 人们总希望所设计的产品具有最好的使用性能、体积小、结构紧凑、重量最轻和最少的制 造成本以及最多的经济效益,即有关性能指标和经济指标方面最好。 在优化设计中,一般将所追求的目标(最优指标)用设计变量的函数形式表达,称该函 数为优化设计的目标函数。目标函数的值是评价设计方案优劣程度的标准,也可称为准则 函数。建立这个函数的过程称为建立目标函数。一般的表达式为 无约束优化:不对定义域或值域做任何限制的情况下,求解目标函数的最小值。 这是因为实际应用中,许多情形被抽象为函数形式后均为凸函数,对于凸函数来说局部最小值点即为全局最小值点,因此只要能求得这类函数的一个最小值点,该点一定为全局最小值。 (直接法:又称数值方法,它只需计算目标函数驻点的函数数值,而不是求其倒数,如坐标轮换法,单纯型法等。 间接法:又称解析法,是应用数学极值理论的解析方法。首先计算出目标函数的一阶或一阶、二阶导数,然后根据梯度及海赛矩阵提供的信息,构造何种算法,从而间接地求出目标函数的最优解,如牛顿法、最速下降法共轭梯度法及变尺度法。) 在优化算法中保证整体收敛的重要方法就是线搜索法与信赖域法,这两种算法既相似又有所不同。根据不同的线搜索准则就延伸出不同的线搜索算法,譬如比较常见和经典的最速下降法,牛顿法,拟牛顿法以及共辄梯度法等。 一维搜索又称线性搜索(Line Search),就是指单变量函数的最优化,它是多变量函数最优化的基础,是求解无约束非线性规划问题的基本方法之一。 一维搜索技术既可独立的用于求解单变量最优化问题,同时又是求解多变量最优化问题常用的手段,虽然求解单变量最优化问题相对比较简单,但其中也贯穿了求解最优化问题的基本思想。由于一维搜索的使用频率较高,因此努力提高求解单变量问题算法的计算效率具有重要的实际意义。 在多变量函数的最优化中,迭代格式X k+1=X k+a k d k其关键就是构造搜索方向d k和步长因子a k 设Φ(a)=f(x k+ad k) 这样从凡出发,沿搜索方向d k,确定步长因子a k,使Φ(a)<Φ(0)的问题就是关于步长因子a的一维搜索问题。其主要结构可作如下概括:首先确定包含问题最优解的搜索区间,然后采用某种分割技术或插值方法缩小这个区间,进行搜索求解。 一维搜索通常分为精确的和不精确的两类。如果求得a k使目标函数沿方向d k达到 极小,即使得f (x k+a k d k)=min f (x k+ ad k) ( a>0) 则称这样的一维搜索为最优一维搜索,或精确一维搜索,a k叫最优步长因子; 如果选取a k使目标函数f得到可接受的下降量,即使得下降量f (x k)一f (x k+a k d k)>0是用 户可接受的,则称这样的一维搜索为近似一维搜索,或不精确一维搜索,或可接受一维 搜索。 由于在实际计算中,一般做不到精确的一维搜索,实际上也没有必要做到这一点,因为精确的 第5章 一维搜索 §5.1 最优化算法的简单介绍 1.算法概念 在解非线性规划时,所用的计算方法,最常见的是迭代下降算法. 迭代:从一点) (k x 出发,按照某种规则A 求出后继点) 1(+k x .用1+k 代替k ,重复以上 过程,产生点列}{) (k x 。 规则A 是在某个空间X 中点到点的映射,即对每一个X x k ∈) (,有点 X x A x k k ∈=+)() () 1(. 更一般地,把A 定义为点到集的映射,即对每个点X x k ∈) (,经A 作用,产生一个点 集X x A k ?)() (.任意选取一个点)() () 1(k k x A x ∈+,作为) (k x 的后继点. 定义1: 算法A 是定义在空间X 上的点到集映射,即对每一个点X x ∈,给定-个子集 X x A ?)(. 例1 考虑线性规划: 1 s.t. min 2 ≥x x 最优解1=x .设计一个算法A 求出这个最优解. ??????????? ?+≥??? ???+=1 ,1 ),1(211 ,)1(21 ,1x x x x A 从一点出发,经A 作用得到一个闭区间.从此区间中任取一点作为后继点,得到一个点列.在一定条件下,该点列收敛于问题的解.利用算法A 可以产生不同的点列,如以3=x 为起点可产生点列: {} ,5/4 ,3/2 ,2 ,3 其聚点是问题的最优解. 在许多情况下,要使算法产生的点列收敛于全局最优解是比较困难的.因此,一般把满足某些条件的点集定义为解集合.当迭代点属于这个集合时,就停止迭代.机械优化设计一维搜索实验报告
一维优化方法
常用一维搜索算法
第5章 一维搜索