第三章 一维搜索(线性搜索)
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
不断缩小此区间所,从而获得 k 的数值近似解。
一维搜索一般分为两大步骤: (1)确定初始搜索区间[a,b],该区间应是包括一维函数 极小点在内的单谷区间。 (2)在单谷区间[a,b]内通过缩小区间寻找极小点。
一维搜索也称直线搜索。这种方法不仅对于解决 一维最优化问题具有实际意义,而且也是求解多维最优 化问题的重要支柱。
可得初始搜索区间 a, b 0.4, 1.6.
运用进退法确定出初始搜索区间[a,b]后,便可采用一维优化方 法来求出函数f(x)在区间内的最优点x*。
20
2. 程序框图
初始进退距
给定x1、h0 h=h0
h=-h
x3=x1 y3=y1
y1=f(x1)、x2=x1+h、y2=f(x2)
否
y1≥y2
是
这个过程称为一维搜索过程。
如: F(X ) x12 x22 8x1 12x2 52
当
X 0 0 0T , d0 1 1T
X
0 0
1 1
则 F x12 x22 8x1 12x2 52 22 20 52
X k1 X k S k (k 0,1,2 )
一维搜索示意图
3.1.2 的确定方法
解:
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
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 区间消去方法
搜索区间确定之后,采用区间消去法逐步缩 短搜索区间,从而找到极小点的数值近似解。
第三章 一维搜索方法
3.1 概述 3.2 确定初始区间 3.3 缩小区间 3.4 黄金分割法(0.618法) 3.5 一维搜索的插值方法
第3章 一维搜索方法
3.1 概述
3.1.1 一维问题是多维问题的基础
求目标函数 f (X)的极小点,从理论上说需要求解方程:
f (X ) 0
其中
X
(
x 1
,
x2
1)要求插入点α1、α2 的位置相对于区间[a,b]两端
点具有对称性,即
1 b (b a) 2 a (b a)
其中 为待定常数。
2)黄金分割法还要求在保留下来的区间内再插入一点所 形成的区间新三段,与原来区间的三段具有相同的比 例分布。
即每次缩小所得的新区间长度与缩小前区间长度 之比(即:区间收缩率)为定值。
④ 求得最优步长
(k)
[
[f ( S ( k ) ]T
x(k ) G(
)]T x(k
S ))
(k
S
) (k
)
解析解法对于函数关系复杂、求导困难等情况难以 实现。在实际优化设计中,数值解法的应用更为有效, 且适合计算机的运算特点。 数值解法基本思路:
先确定 k 在的搜索区间,然后根据区间消去法原理
求多元函数极值点,需要进行一系列的一维搜索。可见一 维搜索是优化搜索方法的基础。
求解一元函数 ( )的极小点 *,可采用解析解法, 即利用一元函数的极值条件 '( *) 0 求 * 在用函数 ( ) 的导数求 * 时,所用的函数( )
是仅以步长因子 为变量的一元函数,而不是以
设计点 x 为变量的多元函数 f (x) 。
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
因此,在优化设计中,求解最佳步长因子 主要采用数 值解法,利用计算机通过反复迭代计算求得最佳步长因子 的近似值。
数值解法的基本思路是:首先确定 所在的搜索区间, 然后根据区间消去法原理不断缩小此区间,从而获得 的数 值近似解。
f ( xk1) f ( xk k sk ) (k )
解析法:
① f(X(k) + αS(k) ) 沿S(k) 方向在x(k) 点泰勒展开;
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);
缩小后的搜索区间。 ② 若 f (a1) f (b1) ,则取[a1,b]为
缩小后的搜索区间。
3 一维搜索方法分类
从前面的分析可知,每次缩短区间,只需要在区间 内再插入一点并计算其函数值。
而插入点的位置,可以由不同的方法来确定。就形 成了不同的一维搜索方法。
试探法
黄金分割法
一维搜索方法分类
插值法
3.2 确定初始区间
1、确定搜索区间的外推法
在给定区间内仅有一个谷值(或有唯一的极小点)的函 数称为单谷函数,其区间称为单谷区间。
函数值:“大—小—大” 图形:“高—低—高” 单谷区间中一定能求得一个极小点。
从
开始,以初始步长 向前试探。
如果函数值上升,则步长变号,即改变试探方向。
如果函数值下降,则维持原来的试探方向,并将步长加倍。
二次插值法
3.4 黄金分割法(0.618法)
1. 黄金分割法 2. 黄金分割法的搜索过程
3.4 黄金分割法(0.618法)
概述
在实际计算中,最常用的一维搜索试探方法是黄金分割法, 又称作0.618法。我们可以通过学习黄金分割法来了解一 维搜索试探方法的基本思想。
在搜索区间 [a,b]内适当插入两点α1、α2,并计算其函 数值。α1、α2将区间分成三段。应用函数的单谷性质,
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]为
, 假定在搜索区间 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]内;
y1←y2←y1 y2←y3
y1←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
区间的始点、中间点依次沿试探方向移动一步。
此过程一直进行到函数值再次上升时为止,即可找到搜索 区间的终点。
最后得到的三点即为搜索区间的始点、中间三点和终点, 形成函数值的“高-低-高”趋势。
单谷区间
说明:单谷区间内,函数可以有不可微点,也可以是不 连续函数;
f (x)
f (x)
0 α1
α
α3
为了直接利用
的函数式求解最佳步长因子 。
把
或它的简写形式
进行泰勒展开,
取到二阶项,即
将上式对 进行微分并令其等于零,给出 极值点 应满足的条件
从而求得
这里是直接利用函数 而不需要把它化成步长因
子 。的函数
。不过,此时需要计算
点处
梯度
和海赛矩阵 H 。
解析解法的缺点——需要进行求导计算。
对于函数关系复杂、求导困难或无法求导的情况,使 用解析法将是非常不便的。
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 x(k) S (k) f (x(k) ) [f (x(k) )]T S (k) 1 2[S (k) ]T G(x(k) )S (k) 2
③ 对α求导,令其为零。 d f (x(k ) S (k ) ) 0 d
[f ( x(k ) )]T S (k ) [S (k ) ]T G( x(k ) )S (k ) 0
,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方向上的任何一点可以表示为
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]。
右图表示沿 的正向试探。
每走一步都将区间的始点、 中间点沿试探方向移动一步
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
黄金分割法要求在 保留下来的区间内再
插入一点所形成的区
解:
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的一维优1.
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,b]区间上的任何单谷函数求极小值问题。
对函数除要求“单谷”外不作其它要求,甚至可以不 连续。因此,这种方法的适应面相当广。 黄金分割法对插入点的要求:
一维搜索一般分为两大步骤: (1)确定初始搜索区间[a,b],该区间应是包括一维函数 极小点在内的单谷区间。 (2)在单谷区间[a,b]内通过缩小区间寻找极小点。
一维搜索也称直线搜索。这种方法不仅对于解决 一维最优化问题具有实际意义,而且也是求解多维最优 化问题的重要支柱。
可得初始搜索区间 a, b 0.4, 1.6.
运用进退法确定出初始搜索区间[a,b]后,便可采用一维优化方 法来求出函数f(x)在区间内的最优点x*。
20
2. 程序框图
初始进退距
给定x1、h0 h=h0
h=-h
x3=x1 y3=y1
y1=f(x1)、x2=x1+h、y2=f(x2)
否
y1≥y2
是
这个过程称为一维搜索过程。
如: F(X ) x12 x22 8x1 12x2 52
当
X 0 0 0T , d0 1 1T
X
0 0
1 1
则 F x12 x22 8x1 12x2 52 22 20 52
X k1 X k S k (k 0,1,2 )
一维搜索示意图
3.1.2 的确定方法
解:
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
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 区间消去方法
搜索区间确定之后,采用区间消去法逐步缩 短搜索区间,从而找到极小点的数值近似解。
第三章 一维搜索方法
3.1 概述 3.2 确定初始区间 3.3 缩小区间 3.4 黄金分割法(0.618法) 3.5 一维搜索的插值方法
第3章 一维搜索方法
3.1 概述
3.1.1 一维问题是多维问题的基础
求目标函数 f (X)的极小点,从理论上说需要求解方程:
f (X ) 0
其中
X
(
x 1
,
x2
1)要求插入点α1、α2 的位置相对于区间[a,b]两端
点具有对称性,即
1 b (b a) 2 a (b a)
其中 为待定常数。
2)黄金分割法还要求在保留下来的区间内再插入一点所 形成的区间新三段,与原来区间的三段具有相同的比 例分布。
即每次缩小所得的新区间长度与缩小前区间长度 之比(即:区间收缩率)为定值。
④ 求得最优步长
(k)
[
[f ( S ( k ) ]T
x(k ) G(
)]T x(k
S ))
(k
S
) (k
)
解析解法对于函数关系复杂、求导困难等情况难以 实现。在实际优化设计中,数值解法的应用更为有效, 且适合计算机的运算特点。 数值解法基本思路:
先确定 k 在的搜索区间,然后根据区间消去法原理
求多元函数极值点,需要进行一系列的一维搜索。可见一 维搜索是优化搜索方法的基础。
求解一元函数 ( )的极小点 *,可采用解析解法, 即利用一元函数的极值条件 '( *) 0 求 * 在用函数 ( ) 的导数求 * 时,所用的函数( )
是仅以步长因子 为变量的一元函数,而不是以
设计点 x 为变量的多元函数 f (x) 。
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
因此,在优化设计中,求解最佳步长因子 主要采用数 值解法,利用计算机通过反复迭代计算求得最佳步长因子 的近似值。
数值解法的基本思路是:首先确定 所在的搜索区间, 然后根据区间消去法原理不断缩小此区间,从而获得 的数 值近似解。
f ( xk1) f ( xk k sk ) (k )
解析法:
① f(X(k) + αS(k) ) 沿S(k) 方向在x(k) 点泰勒展开;
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);
缩小后的搜索区间。 ② 若 f (a1) f (b1) ,则取[a1,b]为
缩小后的搜索区间。
3 一维搜索方法分类
从前面的分析可知,每次缩短区间,只需要在区间 内再插入一点并计算其函数值。
而插入点的位置,可以由不同的方法来确定。就形 成了不同的一维搜索方法。
试探法
黄金分割法
一维搜索方法分类
插值法
3.2 确定初始区间
1、确定搜索区间的外推法
在给定区间内仅有一个谷值(或有唯一的极小点)的函 数称为单谷函数,其区间称为单谷区间。
函数值:“大—小—大” 图形:“高—低—高” 单谷区间中一定能求得一个极小点。
从
开始,以初始步长 向前试探。
如果函数值上升,则步长变号,即改变试探方向。
如果函数值下降,则维持原来的试探方向,并将步长加倍。
二次插值法
3.4 黄金分割法(0.618法)
1. 黄金分割法 2. 黄金分割法的搜索过程
3.4 黄金分割法(0.618法)
概述
在实际计算中,最常用的一维搜索试探方法是黄金分割法, 又称作0.618法。我们可以通过学习黄金分割法来了解一 维搜索试探方法的基本思想。
在搜索区间 [a,b]内适当插入两点α1、α2,并计算其函 数值。α1、α2将区间分成三段。应用函数的单谷性质,
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]为
, 假定在搜索区间 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]内;
y1←y2←y1 y2←y3
y1←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
区间的始点、中间点依次沿试探方向移动一步。
此过程一直进行到函数值再次上升时为止,即可找到搜索 区间的终点。
最后得到的三点即为搜索区间的始点、中间三点和终点, 形成函数值的“高-低-高”趋势。
单谷区间
说明:单谷区间内,函数可以有不可微点,也可以是不 连续函数;
f (x)
f (x)
0 α1
α
α3
为了直接利用
的函数式求解最佳步长因子 。
把
或它的简写形式
进行泰勒展开,
取到二阶项,即
将上式对 进行微分并令其等于零,给出 极值点 应满足的条件
从而求得
这里是直接利用函数 而不需要把它化成步长因
子 。的函数
。不过,此时需要计算
点处
梯度
和海赛矩阵 H 。
解析解法的缺点——需要进行求导计算。
对于函数关系复杂、求导困难或无法求导的情况,使 用解析法将是非常不便的。
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 x(k) S (k) f (x(k) ) [f (x(k) )]T S (k) 1 2[S (k) ]T G(x(k) )S (k) 2
③ 对α求导,令其为零。 d f (x(k ) S (k ) ) 0 d
[f ( x(k ) )]T S (k ) [S (k ) ]T G( x(k ) )S (k ) 0
,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方向上的任何一点可以表示为
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]。
右图表示沿 的正向试探。
每走一步都将区间的始点、 中间点沿试探方向移动一步
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
黄金分割法要求在 保留下来的区间内再
插入一点所形成的区
解:
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的一维优1.
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,b]区间上的任何单谷函数求极小值问题。
对函数除要求“单谷”外不作其它要求,甚至可以不 连续。因此,这种方法的适应面相当广。 黄金分割法对插入点的要求: