第三章 一维搜索(线性搜索)
合集下载
最优化方法 第三章第二讲 一维搜索
第三次迭代
令 x1 0.538, f1 1.751,取 F3 x2 0.077 (1.462 0.077) 0.846, F4 f 2 1.870。
因为 f 1 f 2 ,所以新区间为 0.077,0.846。
第四次迭代
令 x 2 0.538, f 2 1.751,取 F1 x1 0.077 (0.846 0.077) 0.231, F3 则 f 1 1.822。
设其最优解为 k ,得到 xk 1 xk k pk ,
一维搜索是求解一元函数 ( ) 的最优化问题(也叫 一维最优化问题) ,仍表示为 min f ( x ) 或 min f ( x )。 1
xR
a xb
定义:若在 a, b内 f ( x )有唯一极小点 x* ,在 x* 的左边 f ( x )严格下降,在 x* 的右边 f ( x )严格上升, 则称 f ( x )在区间 a, b上是下单峰函数。
step 6 令 k k 1,若 k n 2,则转 step 5; 若 k n 2,则转 step 7。
step 7 若 f1 f 2 , 则令 b x2 ,x2 x1 ,f 2 f1 , 转 step 8; 若 f1 f 2 ,则令 a x1,转 step 8。 step 8 令 x1 x2 0.1(b a ) , f1 f ( x1 ) 1 * 若 f1 f 2 ,则 x (a x2 ), 2 1 * 若 f1 f 2 ,则 x ( x1 x2 ), 2 1 * 若 f1 f 2 ,则 x ( x1 b ) 。 2
ab step 3 若 b a ,则 x ,停。否则转 step 4。 2
第三章 一维搜索法
x
0
x1 x2
x3
3-1 确定初始区间的进退法
探测初始空间的进退法步骤: 探测初始空间的进退法步骤 (1)给定初始点 x0 ,初始步长 h ,令 x1 = x0 ,记: f1 = f ( x1 ) 给定初始点 初始步长 令 记 (2)产生新的探测点 x2 = x1 + h ,记 f 2 = f ( x2 ) 产生新的探测点 (3)比较函数值 f1 和 f 2 的大小 确定向前或向后探测的策略 比较函数值 的大小,确定向前或向后探测的策略 则加大步长,令 若: f1 > f 2 则加大步长 令 h = 2h ,转(4)向前探测 转 向前探测 (4)产生新的探测点 x3 = x0 + h ,令 f 3 = f ( x3 ) 产生新的探测点 令 (5)比较函数值 f 2 和 f 3 的大小 比较函数值 则调转方向,令 若: f1 < f 2 则调转方向 令 h = − h ,转(4)向后探测 转 向后探测
3-1 确定初始区间的进退法
f (x ) f ( x1 )
f ( x2 )
f ( x1 ) > f ( x2 ) > f ( x3 )
极小点在右端点的
f (x3 ) (x
x
x3 右侧
0
x1
x2 x3
3-1 确定初始区间的进退法
f (x ) f ( x1 ) f ( x2 )
f ( x3 )
f ( x1 ) < f ( x2 ) < f ( x3 )
h=-h;x2=x0+h;f2=f(x2); ; ; ; End
3-2 黄金分割法
一维搜索试探方法的基本思想: 一维搜索试探方法的基本思想:在确定了搜索区间的 前提下,不断缩小搜索区间, 前提下,不断缩小搜索区间,同时保持搜索区间内函数值 “大-小-大”的走势,直到区间的宽度小于预定的精度。 小 大 的走势,直到区间的宽度小于预定的精度。 黄金分割法基本思想: 黄金分割法基本思想 : 在搜索区间内插入两个黄金分 割点,将区间分成三段。利用函数的单谷性质,通过函数值 割点,将区间分成三段。利用函数的单谷性质, 大小的比较,删去其中一段。 大小的比较,删去其中一段。在保留下来的区间上作同样的 处置,如此往复送代,使搜索区间缩小到精度范围内, 处置,如此往复送代,使搜索区间缩小到精度范围内,得到 极小点的近似解。 极小点的近似解。
0
x1 x2
x3
3-1 确定初始区间的进退法
探测初始空间的进退法步骤: 探测初始空间的进退法步骤 (1)给定初始点 x0 ,初始步长 h ,令 x1 = x0 ,记: f1 = f ( x1 ) 给定初始点 初始步长 令 记 (2)产生新的探测点 x2 = x1 + h ,记 f 2 = f ( x2 ) 产生新的探测点 (3)比较函数值 f1 和 f 2 的大小 确定向前或向后探测的策略 比较函数值 的大小,确定向前或向后探测的策略 则加大步长,令 若: f1 > f 2 则加大步长 令 h = 2h ,转(4)向前探测 转 向前探测 (4)产生新的探测点 x3 = x0 + h ,令 f 3 = f ( x3 ) 产生新的探测点 令 (5)比较函数值 f 2 和 f 3 的大小 比较函数值 则调转方向,令 若: f1 < f 2 则调转方向 令 h = − h ,转(4)向后探测 转 向后探测
3-1 确定初始区间的进退法
f (x ) f ( x1 )
f ( x2 )
f ( x1 ) > f ( x2 ) > f ( x3 )
极小点在右端点的
f (x3 ) (x
x
x3 右侧
0
x1
x2 x3
3-1 确定初始区间的进退法
f (x ) f ( x1 ) f ( x2 )
f ( x3 )
f ( x1 ) < f ( x2 ) < f ( x3 )
h=-h;x2=x0+h;f2=f(x2); ; ; ; End
3-2 黄金分割法
一维搜索试探方法的基本思想: 一维搜索试探方法的基本思想:在确定了搜索区间的 前提下,不断缩小搜索区间, 前提下,不断缩小搜索区间,同时保持搜索区间内函数值 “大-小-大”的走势,直到区间的宽度小于预定的精度。 小 大 的走势,直到区间的宽度小于预定的精度。 黄金分割法基本思想: 黄金分割法基本思想 : 在搜索区间内插入两个黄金分 割点,将区间分成三段。利用函数的单谷性质,通过函数值 割点,将区间分成三段。利用函数的单谷性质, 大小的比较,删去其中一段。 大小的比较,删去其中一段。在保留下来的区间上作同样的 处置,如此往复送代,使搜索区间缩小到精度范围内, 处置,如此往复送代,使搜索区间缩小到精度范围内,得到 极小点的近似解。 极小点的近似解。
3一维搜索
三点二次插值法(抛物线法)
利用函数在单谷区间中的三点1 2 3
P a0 a1 a2 2
P 1 a0 a11 a212 y1 f 1
2 P 2 a0 a1 2 a2 2 y2 f 2
牛顿法程序流程:
(1)给定x0、、,令x1 x0 (2)令x0 x1 f ' ( x 0) (3)计算x1 x0 f ' ' ( x 0) (4)判断是否 | f ' ( x1) | 或 1 x0 | |x (5)否,则转(2) (6)结束,结果为x x1
平分法
取具有极小点的单峰函数的搜索区间 a, b 的中点 a b 2 ,计算目标函数在该点的导数来 判断舍去的区间。(函数在极值点导数为零,在 其左侧为负、右侧为正)
格点法(全面搜索法)
插值法 (函数逼近法、曲线拟合法)
在某一确定区间内寻求函数的极小点位置, 可以根据某些点处的函数值,利用插值方法建立函 数的某种近似表达式,进而求出函数的极小点,并 用它作为原来函数极小点的近似值。
1 2 f பைடு நூலகம் f 0 f 0 0 f 0 0 2 1 0
f 0 f 0 1 0 0 f 0 1 0 f 0
f 1 f 2 f 1 1 2 a 解之,得: 1 2 1 2 f 1 f 2 f 1 1 2 1 2 a2 f 1 2 1 2
2 a1 1 f 1 1 2 p 1 2a2 2 f 1 f 2 f 1 1 2 f 1 1 2 1 f 1 f 2 2 f 1 1 2
第三章 一维搜索方法
直 接 法
假定在搜索区间[a, b]内任取两点a1和b1,且a1 b1, 并计算f (a1 )和f (b1 ),可能出现三种情况:
1. f (a1 ) f (b1 ),由于函数的单峰性, 极小点一定在[a, b1 ]内; 2. f (a1 ) f (b1 ),极小点一定在[a1 , b]内; 3. f (a1 ) f (b1 ),极小点一定在[a1 , b1 ]内。
第二节 搜索区间的确定与区间消去法原理
确定搜索区间的外推法的程序流程图:
3 1.用进退法确定函数 f ( x) 3x 3 8 x 9的一维优化初始区间 , 给定 初始点x1 0, 初始进退距h0 0.1.
解:
k
1 2 3 4
h
0.1 0.2 0.4 0.8
x1
0 0.1 0.2 0.4
确定搜索区间的外推法的基本步骤:
3.若y1 y2,则试探方法错误,需要反向,即令h0 h0, 并且将1和 2交换,同时交换y1和y2,在程序中,如果用 替换,则另一个函数值就没有了,所以加入 3和y3做中间 变量,即: 3 1 , y3 y1;1 2 , y1 y2; 2 3 , y2 y3。然后得到新的1和 2后,用新 2的向前推出
第三章 一维搜索方法
第三节 一维搜索的试探法 黄金分割法(0.618法):
计算步骤:
4)进行迭代终止条件检验,检查区间是否缩短到足够小和 y2 y1 ba 函数值是否收敛到足够近,即 和 ,如果 b y2 不满足条件,则转到第3)步;满足条件则继续执行下一步。 1 5)输出最优解x (a b)和最优函数值y* f ( x* )。 2
而另一个试验点可按下式1 b (b a )算出,它的函数值 为y1 f (1 ); 若y1 y2,则极小点必在区间[1 , b]内,即[1 , b]为新区间,则
《现代机械优化设计》第3章 一维搜索
a xp, f (a) f (xp ), f (a) f (xp )
b xp, f (b) f (xp ), f (b) f (xp )
计算 f (x*p ), f (x*p )
否
f (x*p ) 0 是
否
f (x*p )
x xp , f f (xp )
是
结束
否
是
K>0
否
xp-xp0 ≤ε
是
x*=x2, f*=f2
是
x*=xp,f*=fp
xp
1 2
f1(x22 x32 ) f2 (x32 x12 ) f3(x12 x22 ) f1(x2 x3) f2 (x3 x1) f3(x1 x2 )
结束
由于区 间缩到很 小时因计 算机舍入 误差引起, 可取中间 点输出。
x3
ⅱ) (xP x1)(x3 xP ) 0
f1
x1
f2
f3
x2 x3
补充 §3-5 格点法
一)基本思路
先将搜索区间分成若干等分,计算出当中的n个等分 点的目标函数值. 再通过比较,找出其中的最小点,则该 点的两个邻近点围成缩短了的新区间。
f
a
xmx1 m xm1 b
x
二)每轮迭代区间的缩短率
ⅰ)A=0
f1(x2 x3 ) f2 (x3 x1) f3 (x1 x2 ) 0
f1[( x2 x1) (x3 x1)] f2 (x3 x1) f3(x1 x2 ) 0
f2 f1 f3 f1 这表明此时三个插值点共线。 x2 x1 x3 x1
f2
f3
f1
x1
x2
a=x3、b=x1
x3=x2+h、y3=f(x3)
常用的一维搜索方法
称为搜索方向;
k 称为步长或步长因子。
图1
线搜索迭代法的步骤
0 x (1) 选定某一初始点 ,并令 k : 0;
(2) 确定搜索方向 d
k
k
;
k
(3) 从 x 出发,沿方向 d x k 1; (4) 检查得到的新点
求步长 λ
k
,以产生下一个迭代点
x
k 1
是否为极小点或近似极小点。
若是,则停止迭代。 否则,令 k :k1,转回(2)继续进行迭代。 在以上步骤中,选取搜索方向是最关键的一步。 各种算法的区分,主要在于搜索方向 d
最优解
从当前点出发,按照某 种规则找下一个迭代点 注:迭代格式 不同,对应着 不同的算法
找下一个迭代点
迭代法的分类
可 行 算 法 : 所 有 迭 代 点 都 是 可 行 点 据 迭 代 点 初始点不好找 的 可 行 性 不 可 行 算 法 : 至 少 有 一 个 迭 代 点 不 是 可 行 点 初始点任意选取
k k k Tk kk
T k T k g d g k 1 k d,
其中
(, 1 ) ,0 1 .
常用的一维搜索方法
我们主要介绍下面几种方法
“成功—失败”法 0.618法(黄金分割法) 二分法 牛顿法(Newton)和插值法 Armiji-Goldstein 准则 Wolfe-Powell 准则
注意: 1. h 选择要适当.(太大含多个单峰区间,太小迭代次数多); 2. f (x)单调时无结果, (加迭代次数限制);
“成功—失败”法----算例
3 例 :利用“成功-失败”法求函数 f( x )x 2 x 1 的搜索区间, 1 取初始点 x 1 ,步长 h . 2 21 1 h , 解:取初始点 x ,步长 2 2 1 1 5 11 f (x ) f ( ) , f ( x h ) f ( ) f ( 0 ) 1 , 2 8 22 搜 索 成 功 , 步 长 加 倍 ; 因 为 f () x f ( x h ) , 1 1 计 算 f ( x h + 2 h ) f ( x 3 h ) f ( 3 ) f ( 1 ) 0 , 2 2 搜 索 成 功 , 步 长 加 倍 ; 因 为 fxh ( ) fx ( 3 h ) , 1 1 计 算 f ( x 3 h + 4 h ) f ( x 7 h ) f ( 7 ) f ( 3 ) 2 2 , 2 2 搜 索 失 败 , 停 止 迭 代 ; 因 为 fx ( 3 h ) fx ( 7 h ) ,
常用的一维搜索方法
0
x
解: f ′ (x) =arctan x , f ″(x)=1/(1+ x2) 迭代公式: xk +1= xk - (1+ xk 2) arctan xk 取 x1= 1,计算结果: f′ (xk) 1/f″(xk ) k xk 1 1 0.7854 2 2 -0.5708 -0.5187 1.3258 3 0.1169 -0.1164 1.0137 4 -0.001095 -0.001095 x4≈ x* =0 取 x1=2,计算结果如下:
Proof. 1°反证法:设 x* ∈[a, b]为最小点, z 若x* ∈[a, x1],由定义 知 f (x1)< f (x2 ),矛盾 (假设); 2 °若x* ∈[x2 , b ],由定义知 f (x1 ) > f (x2 ), 矛盾(条件); 结论成立。 注:上述定理为缩短区间的算法提供了理论根据。
( x12 − x22 ) g ( x3 ) + ( x22 − x32 ) g ( x1 ) + ( x32 − x12 ) g ( x2 ) b= ( x1 − x2 )( x2 − x3 )( x3 − x1 )
x = −
−
b 2a
算法思路: 1. 寻找满足如下条件的点,成为两头大中间小的点: x 1 < x 2 < x3,f (x1 ) > f (x2 ), f (x2 ) < f (x3 ) 2. 两头大中间小,可得a>0, 则 x 为g(x)的极小值 点,且 x ∈ [ x1 , x3 ] 3.若 x2 − x < ε ,则迭代结束,取 x* = x ,否则在点 中 x1 , x2 , x3 , x ,选取使f (x) 最小的点作为新的x2, 并使新的x 1 , x3各是新的x2近旁的左右两点,继续 进行迭代,直到满足终止准则。
x
解: f ′ (x) =arctan x , f ″(x)=1/(1+ x2) 迭代公式: xk +1= xk - (1+ xk 2) arctan xk 取 x1= 1,计算结果: f′ (xk) 1/f″(xk ) k xk 1 1 0.7854 2 2 -0.5708 -0.5187 1.3258 3 0.1169 -0.1164 1.0137 4 -0.001095 -0.001095 x4≈ x* =0 取 x1=2,计算结果如下:
Proof. 1°反证法:设 x* ∈[a, b]为最小点, z 若x* ∈[a, x1],由定义 知 f (x1)< f (x2 ),矛盾 (假设); 2 °若x* ∈[x2 , b ],由定义知 f (x1 ) > f (x2 ), 矛盾(条件); 结论成立。 注:上述定理为缩短区间的算法提供了理论根据。
( x12 − x22 ) g ( x3 ) + ( x22 − x32 ) g ( x1 ) + ( x32 − x12 ) g ( x2 ) b= ( x1 − x2 )( x2 − x3 )( x3 − x1 )
x = −
−
b 2a
算法思路: 1. 寻找满足如下条件的点,成为两头大中间小的点: x 1 < x 2 < x3,f (x1 ) > f (x2 ), f (x2 ) < f (x3 ) 2. 两头大中间小,可得a>0, 则 x 为g(x)的极小值 点,且 x ∈ [ x1 , x3 ] 3.若 x2 − x < ε ,则迭代结束,取 x* = x ,否则在点 中 x1 , x2 , x3 , x ,选取使f (x) 最小的点作为新的x2, 并使新的x 1 , x3各是新的x2近旁的左右两点,继续 进行迭代,直到满足终止准则。
第三章 一维搜索方法
α2
α2
图3-1 具有单谷性的函数
说明:
单峰区间内,函数可以有不可微点,也可以是不连续
函数;
确定的搜索区间必定是一个含有最优点α*的单峰区间。
f (x) f (x)
0
α1
α3
α
0
α1
α3
α
2.进退法的基本思路:
由单峰函数的性质可知,在极小点α*左边函 数值应严格下降,而在极小点右边函数值应严格 上升,因此可以从某一个给定初始点α1出发,以 初始步长h0沿着目标值的下降方向,逐步前进或 后退,直至找到相继的3个试点的函数值按“大小-大”变化为止。
3 . 进退法的步骤:
(1)给定初始点α0和初始步长h0;
(2)令α1 α0 , h h0 , α2 α1 h, 得到两试点α1、α2, 并计算函数值f1 f ( α1 ) , f 2 f ( α2 ) ;
(3)比较f1与f2,存在两种情况:
1)若f1 f 2 , 则作前进运算, 取第三个点α3 α2 h, 计算f 3 f ( α3 ) , 比较f 2与f 3
① 若f 2
f 3,则搜索区间 [a, b] [3 , 1 ];
② 若f 2
f 3 , 则步长加倍,继续作后 退运算,即令 h 2h,
1 2、 2 3、 3 2 h计算f 2与f 3直到找到“大
小 大”搜索区间 [a, b] [ 3 , 1 ]
2 2 2
所以
p a1 / 2a2
y3 y1 c1 a3 a1
1 a 2 a
2 a3 y1 a32 a12 y2 a12 a22 y3
a3 y1 a3 a1 y2 a1 a2 y3
三章节一维搜索方法
f x ad f x adTf x 1 ad T G ad
2
f x dTf x 1 2dTGd
2
上式求α旳极值,即求α导数为零。
dTf x *d TGd 0
则
*
dTf x
d T Gd
从上式看,需要求导进行计算,对于函数关系复杂旳, 解析法十分不便。
数值法旳基本思绪:拟定 *旳搜索区间,在不断缩小
a2 a3 y1 a3 a1 y2 a1 a2
a1 a2 a2 a3 a3 a1
y3
所以
p
a1
/
2a2
1 2
a22 a32 a2 a3
y1 a32 a12 y1 a3 a1
y2 a12 a22 y2 a1 a2
y3 y3
令
c1
y3 a3
y1 a1
一、牛顿法(切线法)
一维搜索函数 y f ,假定一给出极小点旳一种很好旳近
似点0 ,因为一种连续可微旳函数在极小点附近与一种二次 函数很接近,所以,在0 点附近用一种二次函数 逼近。
f
f
0
f
0
0
1 2
f
0
0 2
求二次函数 旳极小点作为f 极小点旳新近似点1
1 0 即 f 0 f 0 0 0
P a0 a1 a2 2
它应满足条件 P 1 a0 a11 a212 y1 f 1 (1)
P 2 a0
a12
a2
2 2
y2
f
2
P 3
a0
a13
a2
ห้องสมุดไป่ตู้
2 3
y3
f
3
从极值旳必要条件求得
第三章 一维搜索
(
)
(1.5)
---------最优一维搜索或精确一维搜索, k ---最优步长因子
如果选取 k ,使下降量 f (xk ) f (xk kd k ) 0 是可接受 --------可接受一维搜索,或不精确一维搜索
定 理 若 目 标 函 数 f (x) 具 有 连 续 的 偏 导 数 , 并 设
搜索区间.
算法步骤:
1) 选取初始点 x R ,初始步长 h 0 及精度 0, 计算
1 (x) ; 2) 计算 2 (x h) ; 3) 若 2 1 (此时称搜索成功,下一步搜索就大步前
进),令 x x h, 1 2, h 2h ,转 2);若 2 1 (此时称 搜索失败,下一步搜索就小步退步),判别 | h | ? 若 | h | ,
设已迭代到点 xk 处,则下一次迭代会出现以下两种情况之一: (1) 从 xk 出发沿任何方向移动,目标函数不再下降;
(2) 从 xk 出发至少存在一个方向使目标函数 f (x) 有所下 降 . 这 时 , 从 中 选 取 一 个 下 降 方 向 dk , 即 dk 满 足 f (xk )T d k 0 ,然后在直线 x xk d k 上适当的确定一个新点 xk1 xk kd k ,使得 f (xk1) f (xk kd k ) f (xk ) ,此时就说完成 了第 k 1次迭代.
停止迭代,
x
x*
;否则令
h
h 4
,转
2).
缺点:效率较低,h 选择要适当,初始步长不能选得太小。但
改造之后用于求搜索区间比较有效。
基本思想:从一点出发,按一定的步长,试图确定出函数值呈
现“高---低---高”的三个点.一个方向不成功,就退回来沿相反
完整版一维搜索方法
f (? 1 ) f (? 2 )
o
?1 ?2
?
6
2) 若f1≤ f2 ,如下图所示, 则作后退计算。 令 h=-h, 将α1、 f1与α2、 f2对调,转入第3)步。
f (? )
f (? 2 )
f (? 1)
o
?1 ?2 ?
7
3)计算第3个试点α3 =α2+h, 计算函数值f3=f(α3), 并 比较f2 和 f3 ,有如下两种情况 :
1
? 一维优化一般可分为两大步骤: ?确定初始搜索区间[a,b]; 该区间应为包含一维优化目标函数的极小点在内的单 峰区间。 ?在搜索区间[a,b]内寻找极小点。
优化算法的基本迭代公式:
X k?1 ? X k ? ? k S k , k ? 0, 1, 2,?
当迭代初始点 Xk 及搜索方向Sk 确定后,迭代所得的新点 Xk?1 取
作代换: α1 =α2 , f1=f2; α2 =α3 , f2 = f3。 继续计算
α3 (即步骤 3) );如此重复该过程,总能找到相继3试点 的函数值符合“大-小-大” 变化的要求。左端点为a,
右端点为b,从而找到了搜索区间[a, b]。
f (? )
f (? 1) f (? 2 )
f (? 3 )
a=min( α1 ,α3 ), b=max ( α1 ,α3 )
h=2h, α3= α2+h, 计算f(α3)
N
作代换 α1 =α2 , α2 =α3 , f(α1)= f(α2) , f(α2)= f( α3) , α3= α2+h, 计算f(α3)
结束
10
? 进退法确定搜索区间的步骤:
2. 方法二 (1) 给定初始点α0和初始步长h0; (2) 令α1 =α0, h=h0, α2 =α1+h, 得: 两试点α1 ,α2 ,计算 f1 =f(α1), f2 =f(α2);
第二部分:03第三章 一维搜索方法
昆明理工大学机电工程学院
一、一维搜索的基本思想
选定初始点1,初始步长h0。计算函数值y1=f(1)和 y2=f(1+ h0),比较y1和y2,可分三种情况:
y1>y2,则极小点*必在1右方,作正向搜索寻求第三点。 y1<y2,则极小点*必在1+h0左方,作反向搜索寻第三点。 y1=y2,则极小点*必在1和1+h0之间,则为“高-低-高” 形态,找到初始单峰区间为[1 , 1+h0]
y 2 y1
1
y3
3
h0
O
22 2 1 1 1
h0
2013年9月22日星期日8时42分35秒
2013年9月22日星期日8时42分36秒
8
第 2 部分:优化设计
第三章 一维搜索方法
y
y3
y1 y1 2 y2
y 2 y y3 3
第 2 部分:优化设计
第三章 一维搜索方法
昆明理工大学机电工程学院
一、一维搜索的基本思想
一维最优化搜索是要在单峰区间求单峰函数的极小 点,通常分两步进行: 确定一个最小值所在的区间; 求出该区间内的最优步长因子k值。 确定搜索区间的外推法 在一维搜索时,假设函数f()具有单谷性,即在所考 虑的区间内部,函数f()有唯一得极小点*。为了确定 极小点*所在得区间[a, b],应使函数f()在[a, b]区间形 f() 成“高-低-高”趋势。 对于一般情况,分正向 搜索和反向搜索的外推法。
*
b
5
2013年9月22日星期日8时42分35秒
1
2013/9/24
第 2 部分:优化设计
第三章 一维搜索方法
第 2 部分:优化设计
一、一维搜索的基本思想
选定初始点1,初始步长h0。计算函数值y1=f(1)和 y2=f(1+ h0),比较y1和y2,可分三种情况:
y1>y2,则极小点*必在1右方,作正向搜索寻求第三点。 y1<y2,则极小点*必在1+h0左方,作反向搜索寻第三点。 y1=y2,则极小点*必在1和1+h0之间,则为“高-低-高” 形态,找到初始单峰区间为[1 , 1+h0]
y 2 y1
1
y3
3
h0
O
22 2 1 1 1
h0
2013年9月22日星期日8时42分35秒
2013年9月22日星期日8时42分36秒
8
第 2 部分:优化设计
第三章 一维搜索方法
y
y3
y1 y1 2 y2
y 2 y y3 3
第 2 部分:优化设计
第三章 一维搜索方法
昆明理工大学机电工程学院
一、一维搜索的基本思想
一维最优化搜索是要在单峰区间求单峰函数的极小 点,通常分两步进行: 确定一个最小值所在的区间; 求出该区间内的最优步长因子k值。 确定搜索区间的外推法 在一维搜索时,假设函数f()具有单谷性,即在所考 虑的区间内部,函数f()有唯一得极小点*。为了确定 极小点*所在得区间[a, b],应使函数f()在[a, b]区间形 f() 成“高-低-高”趋势。 对于一般情况,分正向 搜索和反向搜索的外推法。
*
b
5
2013年9月22日星期日8时42分35秒
1
2013/9/24
第 2 部分:优化设计
第三章 一维搜索方法
第 2 部分:优化设计
最优化第3章一维搜索方法
一维搜索方法一般分两步进行: ■ 首先确定一个包含函数极小点的初始区间,即确定 函数的搜索区间,该区间必须是单峰区间; ■ 然后采用缩小区间或插值逼近的方法得到最优步长, 最终求出该搜索区间内的一维极小点。
§3.1 搜索区间的确定
根据函数的变化情况,可将区间分为单峰区间和多峰区间。 所谓单峰区间,就是在该区间内的函数变化只有一个峰值, 即函数的极小值。
§3.4 插值方法
一、牛顿法
f(x)
利用一点的函数值、 一阶导数以及二阶 导数构造二次多项 式。用构造的二次 多项式的极小点作 为原函数极小点的 近似。
φ0(x)
φ1(x) f(x)
x*
x2
x1
x0 x
§3.4 插值方法
一、牛顿法
设f(x)为一个连续可微的函数,则在点x0附近 进行泰勒展开并保留到二次项:
§3.1 搜索区间的确定
f(x)
f(x)
f(a0) f(a0+h)
f(a0+3h)
f(a0-h) f(a0)
f(a0+h)
0 a0 a
a0+h
a0+3h x b
0 a0-h
a0
a
进退试算法的运算步骤如下:
a0+h x b
(1)给定初始点α0和初始步长h (2)将α0及α0+h 代入目标函数 f(x) 进行计算并比较大小
φ0(x)
φ1(x) f(x)
f ′ (x)
x*
x2 x1
x0
φ ′ 1(x) f ′ (x)
x* x2
x1
x0
牛顿法程序框图
开始
x 给定初始点 ,误差 0
,
令k=0
§3.1 搜索区间的确定
根据函数的变化情况,可将区间分为单峰区间和多峰区间。 所谓单峰区间,就是在该区间内的函数变化只有一个峰值, 即函数的极小值。
§3.4 插值方法
一、牛顿法
f(x)
利用一点的函数值、 一阶导数以及二阶 导数构造二次多项 式。用构造的二次 多项式的极小点作 为原函数极小点的 近似。
φ0(x)
φ1(x) f(x)
x*
x2
x1
x0 x
§3.4 插值方法
一、牛顿法
设f(x)为一个连续可微的函数,则在点x0附近 进行泰勒展开并保留到二次项:
§3.1 搜索区间的确定
f(x)
f(x)
f(a0) f(a0+h)
f(a0+3h)
f(a0-h) f(a0)
f(a0+h)
0 a0 a
a0+h
a0+3h x b
0 a0-h
a0
a
进退试算法的运算步骤如下:
a0+h x b
(1)给定初始点α0和初始步长h (2)将α0及α0+h 代入目标函数 f(x) 进行计算并比较大小
φ0(x)
φ1(x) f(x)
f ′ (x)
x*
x2 x1
x0
φ ′ 1(x) f ′ (x)
x* x2
x1
x0
牛顿法程序框图
开始
x 给定初始点 ,误差 0
,
令k=0
第三节 一维搜索方法
若令 t1′ = t1 ,则有 w = 1 ;若令 t2′ = t1 ,则有 w = 0.618 以后类似迭代
0.618法步骤 0.618法步骤
称为在[a,b]上是单谷 [a,b]上是单谷的 函数 ϕ (t ) 称为在[a,b]上是单谷的,如果存在一个 t * ∈ [a , b] ,使得 ϕ (t ) 在 [a , t * ] 上严格递减,且在 [t * , b] 上严格递增。区间[a,b]称为 ϕ (t ) 的单谷区间。 上严格递减, 上严格递增。区间[a,b] [a,b]称为 单谷区间。
• 例4.3.3 用Goldstein法求解 Goldstein法求解 min ϕ (t ) = t 3 − 2t + 1
t ≥0
t0 取= 2, m1 = 0.2, m2 = 0.7, α = 2
解答
4.Armijo法 4.Armijo法
• Armijo法 法
ϕ (0)
y = ϕ (t )
tk
Mt
第三节 一维搜索方法
目标函数为单变量的非线性规划问题称为一维搜索问 目标函数为单变量的非线性规划问题称为一维搜索问 线性搜索问题) 题(或线性搜索问题),其数学模型为 min ϕ (t) ,
t ≥0 ( 0≤ t ≤ t max )
其中 t ∈ R 。
精确一维搜索方法: 0.618法 Newton法 精确一维搜索方法: 0.618法,Newton法 非精确一维搜索方法: Goldstein法 Armijo法 非精确一维搜索方法: Goldstein法,Armijo法
1. 0.618法 0.618法
• 0.618法——思想 0.618法——思想
第一步: 插入 t1 , t2使 [ a, t2 ][t1 , b ] 等长度,令 第一步: 等长度,
常用的一维搜索方法
西安电子科技大学 穆学文 17
§4
牛顿法(Newton)和插值法
§4 .1、Newton法: 对 f (x) 在 x k 点展开: f (x )= f (xk )+ f ′(xk )( x-xk ) +(1/2) f ″(xk )(x-xk )2 + o ||(x- xk) 2 || 取二次式(略去高阶项) g(x) = f (xk) +f ′(xk)(x-xk) + (1/2)f ″(xk)(x-xk)2 用 g(x)作为f (x)的近似,当 f ″(xk) > 0时,其驻点为极小点: g′ (x)= f ′(xk) +f ″(xk)(x - xk )=0 得 xk +1= xk –f '(xk) /f ″(xk). 取 xk +1为新的迭代点。 以上过程即Newton法。 特点:收敛速度快,二阶收敛。缺点:须计算二次导数,对初 始点要求高、局部收敛。
西安电子科技大学 穆学文 18
Newton法算法框
初始 x1 ,ε1, ε2 >0 k=1
︱ f '(xk ) ︱<ε1?
y
停;解 xk
N
停k=k+1
Y
xk +1= xk - f′ (xk ) / f″(xk )
Y
| xk +1 - xk |< ε2
N
西安电子科技大学 穆学文 19
西安电子科技大学
穆学文
3
§1
“成功—失败” 法
以下方法称为“成功—失败”法(进退法): 步骤1:选取初始点 x∈R , 初始步长 h > 0 及精度ε> 0, ϕ11 = f ( x). 步骤2:计算 ϕ22 = f ( x + h). 步骤3:若 ϕ 22 < ϕ11, 搜索成功, 转步骤4;否则,搜索失败, 转步骤5。 步骤4:令 x:= x + h, ϕ11 := ϕ 22, h := 2h 步骤5:判断 h ≤ ε ? 若 h ≤ ε , 停止迭代, x** = x ;否则令 h 转步骤 2。 h=− ,
§4
牛顿法(Newton)和插值法
§4 .1、Newton法: 对 f (x) 在 x k 点展开: f (x )= f (xk )+ f ′(xk )( x-xk ) +(1/2) f ″(xk )(x-xk )2 + o ||(x- xk) 2 || 取二次式(略去高阶项) g(x) = f (xk) +f ′(xk)(x-xk) + (1/2)f ″(xk)(x-xk)2 用 g(x)作为f (x)的近似,当 f ″(xk) > 0时,其驻点为极小点: g′ (x)= f ′(xk) +f ″(xk)(x - xk )=0 得 xk +1= xk –f '(xk) /f ″(xk). 取 xk +1为新的迭代点。 以上过程即Newton法。 特点:收敛速度快,二阶收敛。缺点:须计算二次导数,对初 始点要求高、局部收敛。
西安电子科技大学 穆学文 18
Newton法算法框
初始 x1 ,ε1, ε2 >0 k=1
︱ f '(xk ) ︱<ε1?
y
停;解 xk
N
停k=k+1
Y
xk +1= xk - f′ (xk ) / f″(xk )
Y
| xk +1 - xk |< ε2
N
西安电子科技大学 穆学文 19
西安电子科技大学
穆学文
3
§1
“成功—失败” 法
以下方法称为“成功—失败”法(进退法): 步骤1:选取初始点 x∈R , 初始步长 h > 0 及精度ε> 0, ϕ11 = f ( x). 步骤2:计算 ϕ22 = f ( x + h). 步骤3:若 ϕ 22 < ϕ11, 搜索成功, 转步骤4;否则,搜索失败, 转步骤5。 步骤4:令 x:= x + h, ϕ11 := ϕ 22, h := 2h 步骤5:判断 h ≤ ε ? 若 h ≤ ε , 停止迭代, x** = x ;否则令 h 转步骤 2。 h=− ,
3.一维搜索方法
P(x)的系数确定与极小点的计算
a1
x22
x
2 3
f1
x
2 3
x12 f2
x12 x22 f3
x1 x2 x2 x3 x3 x1
a2
x2 x3 f1 x3 x1 f2 x1 x2 f3 x1 x2 x2 x3 x3 x1
x
a1
1 x22 x32 f1
x32 x12 f2
x12 x22 f3
2a2 2 x2 x3 f1 x3 x1 f2 x1 x2 f3
9
一维搜索方法的分类
• 为了每次缩短区间,只需要在区间内再插入一点并计 算其函数值。然而,对于插入点的位置,是可以用不 同的方法来确定的。
• 黄金分割法 • 一类称作解析法或函数逼近法:构造一个插值函数来
逼近原来函数,用插值函数的极小点作为区间的插入 点
– 牛顿法、二次插值法等
10
一维搜索的试探方法 黄金分割法
f (x)
(a) f a0
f a0 a a0
1 2
f
a0 a
a0 2
• 然后以二次函数的极小点作为极小点的一个新近似点,根据极值 必要条件
对a求偏导 (a1) 0
f a0 f a0 a1 a0 0
ak 1
ak
f ak f ak
k
0, 1, 2,
依此继续可得 牛顿法迭代公式
a1
a0
f a0 f a0
17
• 是最常用的一维搜索试探方法,又称作0.618法 • 适用于区间上的任何单谷函数求极小值问题
– 对函数除要求“单谷”外不作其他要求,甚至可以 不连续
• 基本思路:在搜索区间内适当插入两点,并计算其函 数值。将区间分成三段。应用函数的单谷性质,通过 函数值大小的比较,删去其中一段,使搜索区间得以 缩短。然后再在保留下来的区间上作同样的处置,如 此迭代下去,使搜索区间无限缩小,从而得到极小点 的数值近似解。
第3章一维搜索方法
解:
k h 0.1 0.2 0.4 0.8 0.1 0.3 8.203 6.681 0.3 0.7 6.681 4.429 x1 0 y1 9 x2 0.1 y2 8.203 0.3 0.7 1.5 6.681 4.429 7.125 x3 y3
0
1 2
a, 可得初始搜索区间
b 0.3, 1.5.
单谷区间
机械优化设计 说明:单谷区间内,函数可以有不可微点,也 可以是不连续函数;
f (x)
f (x)
0
α1
α3
α
0
α1
α3
机械优化设计 外推方法
基本思想:对 f ( x) 任选一个初始点 a1 及初始步长 h , 通过比较这两点函数值的大小,确定第三点位置,比较这 三点的函数值大小,确定是否为“高—低—高”形态。 步骤: 1)选定初始点a1,初始步长h=h0,计算y1=f(a1)和y2=f(a1+h) 2)比较y1和y2; a)如果y1>y2,向右前进,加大步长h=2h0,转(3)向前; b)如果y1<y2,向左后退, h=-2h0,将a1和a2,y1和y2的值互 换。转(3)向后探测; c)如果y1=y2,极小点在a1和a1+h之间。 3)产生新的探测点a3=a2技巧 为了避免多计算函数值,我们把第三种情形合并到前 面两种情形中去。例如,可以把前面三种情形改为下 列两种情形:
①若 f (a1 ) f (b1 ) 则取 [a, b1 ] 为缩短后的搜索区间。 ②若 f (a ) f (b ) 则取 [a1 , b] 为缩短后的搜索区间。
1 1
从上述的分析中可知,为了每次缩短区间,只需要在区 间内再插入一点并计算其函数值。如此反复进行下去, 当搜索区间长度足够小时,可用区间内的某点作为极小 点的近似值。
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
f 1 f (a1) f 2 f (b1)
(1)f(a1)<f(b1), (2)f(a1)>f(b1), (3)f(a1)=f(b1),
则极小点必在区间[a,b1]内; 则极小点必在区间[α1,b]内; 则极小点必在区间[α1,b1]内
可以总结为两种情况: ① 若 f (a1) f (b1) , 则取[a,b1]为
h=2h
x1=x2 y1=y2 x2=x3 y2=y3
a=x3、b=x1
x3=x2+h、y3=f(x3)
是 y2≥y3
否是
否
h>0
a=x1、b=x3
结束
f
y1 y2 y3
x1 x2 x3
x
x1 x2 x3
前进计算
f
x1 x2 x x3 x2 x1
x3 x2 x1
后退计算
21
3.3 区间消去方法
搜索区间确定之后,采用区间消去法逐步缩 短搜索区间,从而找到极小点的数值近似解。
y1←y2←Leabharlann 1 y2←y3y1←y2间点和终点
及它
们的对应函数值
a3
a2←a3
O a1←a2 a
从而形成单谷区间为一维搜
a1←a2←a1
索区间
。
2h0
h0 h0
图3-3 反向搜索的外推法
前进搜索步骤表
kh
x1
x2
x3
0 h0
初始点
初始点+ h0
1 2h0 初始点
初始点+ h0 初始点+3h0
2 4h0 初始点+ h0 初始点+3h0 初始点+7h0
,L
, xn )T
那么如何来求 f (X)的极小点呢?
基本思想:
X 0 , X1,L , X k , X k1
f ( X 0 ) f ( X1) ,L , f ( X k ) f ( X k1)
这种方法是逐次迭代的方法,在电子计算机上很容易实现,
因此它在优化设计中被广泛地采用。
2
Sk方向上的任何一点可以表示为
解:
kh
x1 y1
x2 y2
x3 y3
0.1 0 1
0.2
9 0.1 8.203 0.3 6.681
2 0.4 0.1 8.203 0.3 6.681 0.7 4.429
3 0.8 0.3 6.681 0.7 4.429 1.5 7.125
可得初始搜索区间 a, b 0.3, 1.5.
19
例3 2:用进退法确定函数f (x) 3x3 8x 9的一维优化初始区间, 给定初始点x1 1.8, 初始进退距h0 0.1.
区间的始点、中间点依次沿试探方向移动一步。
此过程一直进行到函数值再次上升时为止,即可找到搜索 区间的终点。
最后得到的三点即为搜索区间的始点、中间三点和终点, 形成函数值的“高-低-高”趋势。
单谷区间
说明:单谷区间内,函数可以有不可微点,也可以是不 连续函数;
f (x)
f (x)
0 α1
α
α3
y1
y2→y1 y3→y2
(进行换名)。经过三步最
后确定搜索间 1,3 ,
并且得到区间始点、中间点
O
a1 a2→a1 a3→a2
a
a3
和终点 1 2 3
所对
h0
h0
2h0
应的函数值 y1 y2 y3 。 图3-2 正向搜索的外推法
右图所表示的情况是:开始 是沿 的正方向试探,但 y3 由于函数值上升而改变了试 探方向,最后得到始点,中
缩小后的搜索区间。 ② 若 f (a1) f (b1) ,则取[a1,b]为
缩小后的搜索区间。
3 一维搜索方法分类
从前面的分析可知,每次缩短区间,只需要在区间 内再插入一点并计算其函数值。
而插入点的位置,可以由不同的方法来确定。就形 成了不同的一维搜索方法。
试探法
黄金分割法
一维搜索方法分类
插值法
0
α1
α3
外推方法
基本思想:对 f (x)任选一个初始点 a1 及初始步长 h ,
通过比较这两点函数值的大小,确定第三点位置,比较这 三点的函数值大小,确定是否为“高—低—高”形态。
步骤:
1)选定初始点a1,初始步长h=h0,计算y1=f(a1)和y2=f(a1+h) 2)比较y1和y2; a)如果y1>y2,向右前进,加大步长h=2h0,转(3)向前; b)如果y1<y2,向左后退, h=-2h0,将a1和a2,y1和y2的值互 换。转(3)向后探测; c)如果y1=y2,极小点在a1和a1+h之间。 3)产生新的探测点a3=a2+h,y3=f(a3);
X k1 X k ak S k
其中α是步长因子,为实系数,此时 Sk 方向上任何一点的目标函数值
为f X k k S k ,它是参数α的一元函数。那么在沿 Sk 方向求 f (X )
的极小点,这就是求一元函数 f X k k S k 的极小问题,它可表示为:
: min f X k k S k
解:
kh
x1
y1
x2
y2
x3
y3
0.1 1.8 12.096 1.9 14.377 1
-0.2 1.9 14.377 1.8 12.096 1.6 8.488
2 -0.4 1.8 12.096 1.6 8.488 1.2 4.584
3 -0.8 1.6 8.488 1.2 4.584 0.4 5.992
, 假定在搜索区间 a,b 内任取两点 a1,b1 ,且
f 1 f (a1) f 2 f (b1)
f 1 f (a1) f 2 f (b1)
(1)f(a1)<f(b1), 则极小点必在区间[a,b1]内;
f 1 f (a1) f 2 f (b1)
(1)f(a1)<f(b1), 则极小点必在区间[a,b1]内; (2)f(a1)>f(b1), 则极小点必在区间[α1,b]内;
通过函数值大小的比较,删去其中一段,使搜索区间得以 缩短。然后再在保留下来的区间上作同样的处置,如此迭 代下去,使搜索区间无限缩小,从而得到极小点的数值近 似解。
1.黄金分割法
黄金分割法是建立在区间消去法原理基础上的试探方法。
适用于[a,b]区间上的任何单谷函数求极小值问题。
对函数除要求“单谷”外不作其它要求,甚至可以不 连续。因此,这种方法的适应面相当广。 黄金分割法对插入点的要求:
求多元函数极值点,需要进行一系列的一维搜索。可见一 维搜索是优化搜索方法的基础。
求解一元函数 ( )的极小点 *,可采用解析解法, 即利用一元函数的极值条件 '( *) 0 求 * 在用函数 ( ) 的导数求 * 时,所用的函数( )
是仅以步长因子 为变量的一元函数,而不是以
设计点 x 为变量的多元函数 f (x) 。
3 8h0 初始点+3h0 初始点+7h0 初始点+15h0
后退搜索步骤表
kh
x1
0
h0
初始点
1 2h0 初始点+ h0
2
4h0
初始点
3 8h0 初始点-2h0
x2 初始点+ h0
初始点 初始点-2h0 初始点-6h0
x3
初始点-2h0 初始点-6h0 初始点-14h0
例3 1: 用进退法确定函数f (x) 3x3 8x 9的一维优化初始区间, 给定初始点x1 0, 初始进退距h0 0.1.
1
间新三段,与原来区
a
3
1
(1 )
2
2 1
间的三段具有相同的 比例分布 。
两内分点值:
2
5 1 0.618 2
1 b (b a) b 0.618(b a) 2 a (b a) a 0.618(b a)
图2-5 黄金分割法
设原区间[a,b]长度为1如下图所示,保留下来的区间
[a,α2]长度为 ,区间缩短率为 。为了保持相
同的比例分布,新插入点 α3应在
位
置上,α1 在原区间的
位置应相当于在保
留区间的 位置。故有
取方程正数解,得
α1、α2将区间分成三段
1
2
a
b
1
黄金分割法要求在 保留下来的区间内再
插入一点所形成的区
不断缩小此区间所,从而获得 k 的数值近似解。
一维搜索一般分为两大步骤: (1)确定初始搜索区间[a,b],该区间应是包括一维函数 极小点在内的单谷区间。 (2)在单谷区间[a,b]内通过缩小区间寻找极小点。
一维搜索也称直线搜索。这种方法不仅对于解决 一维最优化问题具有实际意义,而且也是求解多维最优 化问题的重要支柱。
4)比较函数值y2和y3:
a)如果y2>y3 ,加大步长h=2h,a1=a2,a2=a3,转(3)继 续探测; b)如果y2<y3,则初始区间得到: a=min[a1,a3],b=max[a1,a3],函数最小值所在区间为 [a,b]。
右图表示沿 的正向试探。
每走一步都将区间的始点、 中间点沿试探方向移动一步
为了直接利用
的函数式求解最佳步长因子 。
把
或它的简写形式
进行泰勒展开,
取到二阶项,即
将上式对 进行微分并令其等于零,给出 极值点 应满足的条件
从而求得
这里是直接利用函数 而不需要把它化成步长因
子 。的函数
。不过,此时需要计算
点处
梯度
和海赛矩阵 H 。
解析解法的缺点——需要进行求导计算。
对于函数关系复杂、求导困难或无法求导的情况,使 用解析法将是非常不便的。