- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第二章 一维搜索
1
问题描述
已知xk,并且求出了xk处的可行下降方向pk ,从 xk出发,沿方向pk求目标函数的最优解,即求解 问题: 设其最优解为ak,于是得到一个新点 xk +1= xk + ak pk 所以一维搜索是求解一元函数f (a) 的最优化问 题(也叫一维最优化问题).我们来求解 令(a)=0,求出a的值。
a
x2
b
15
我们希望原来 黄金分割法 的x1,在缩小的 x x1 2 a b 区间内成为新 的“x2”. 我们根据这一 x’ 条件来计算p. a’ b’ 计算x2的公式为 x2= a +(1– p)(b – a).
2
因此我们希望 x’2= a’ +(1– p)(b’ – a’). 即 a+p(b – a)=a+(1–p)(a+(1– p)(b – a) – a) 化简得 p2-3p+1=0
的.第二,当曲线 y f (t在 上有较复杂的弯曲时, ) [ a, b ] 这种方法也往往失效.如图2.2所示的迭代:
t0 t1 t2 ,结果 t 2 跳出 [a, b].
26
图2.2
图2.3
27
牛顿法的计算步骤
28
牛顿法的计算步骤
29
牛顿法的计算步骤
30
2.4 抛物线法
在求一元函数的极小点问题上,我们可以利用若 干点处的函数值来构造一个多项式,用这个多项 式的极小点作为原来函数极小点的近似值. 抛物线法就是一个用二次函数来逼近f(x)的方法, 这也是我们常说的二次插值法. 设在已知的三点x1<x0<x2处对应的函数值f(xi)=fi, 且满足:f1>f0, f0<f2 过三点(x1,f1),(x0,f0),(x2,f2)作二次函数y=(x),即 作一条抛物线,则可推导出:
(5)打印
t, (t ) ,停机.
25
三、Newton切线法有关说明
这种方法一旦用好,收敛速度是很高的.如果初 始点选得适当,通常经过几次迭代就可以得到满足一 般精度要求的结果,但是它也有缺点.第一,需要求 二阶导数.如果在多维最优化问题的一维搜索中使用
这种方法,就要涉及 Hesse 矩阵,一般是难于求出
2 1 p
3 5 p 0.382, 2 5 1
0.6x1,b],我们得到的结果是一致的. 该方法称为黄金分割法,实际计算取近似值: x1=a+0.382(b – a), x2=a+0.618(b – a), 所以黄金分割法又称为0.618法. 黄金分割法每次缩小区间的比例是一致的,每 次将区间长度缩小到原来的0.618倍.
|b-a|<e 否 否 否 否 否 否 是
最优解x*=(0.443+0.665)/2=0.554
20
2. 2 二分法
若f(x)的导数存在且容易计算,则线性搜索的速 度可以得到提高,下面的二分法每次将区间缩 小至原来的二分之一. 设f(x)为下单峰函数,若f(x)在[a,b]具有连续的 一阶导数,且f ’(a)<0, f ’(b)>0 取 c=(a+b)/2,若f’(c)=0,则c为极小点; 若f ’(c)>0,则以[a,c]代替[a,b]作为新区间; 若f ’(c)<0,则以[c,b]代替[a,b]作为新区间.
前面介绍的得几种一维搜索方法,都是为 了获得一元函数f(x)的最优解,所以习惯上称 为精确一维搜索. 在解非线性规划问题中,一维搜索一般很难得 到真正的精确值. 因此,不精确的一维搜索开始为人们所重视. 即在xk点确定了下降方向pk后,只计算少量的 几个函数就可得到一个满足f(xk+1)<f(xk)的近 似点xk+1.
4
进退法(寻找下单峰区间)
在一维搜索之前,必须先知道一个f(x)的下单峰 区间. 求出f(x)的一个形如[0,b]形式的下单峰区 间 因为我们关心的问题是: 我们的目的是找出两个点x1<x2,使得 f(x1)≤f(x2),f(x1) ≤ f(0).
5
进退法(寻找下单峰区间)
x0
给定初始点x0=0,初始步长h>0,x1=x0+h. 下面分两种情况讨论.
2
a xb
min f ( x )
预备知识
定义:(单峰函数)如果函数f(x)在区间
[a, b]上只有唯一的最大值点(或最小值点)
C,而在最大值点(或最小值点)C的左侧,
函数单调增加(减少);在点C的右侧,函数
单调减少(增加),则称这个函数为区间[a, b]
上的单峰函数.
3
定理:如果函数f(x)在区间(a, b)上有唯一的 极值点,则f(x)在区间[a, b]上是单峰函数. 例如,图中的两个函数f(x),g(x)就是单峰 函数.
x1
0.528 -0.056 0.528 0.305 0.528 0.443 0.528
x2
1.472 0.528 0.888 0.528 0.665 0.528 0.580
f1
1.751 2.059 1.751 1.788 1.751 1.753 1.751
f2
2.695 1.751 1.901 1.751 1.777 1.751 1.757
37
不精确一维搜索的Wolfe原则
设f(x)可微,取m∈(0,1/2), s∈(m, 1),选取a k >0, 使
或用下面更强的条件代替(1.7)式:
38
Wolfe原则
关于满足Wolfe原则的步长ak的存在性: 定理1.4.2 设f(x)有下界且 gkTpk<0.令m∈(0,1/2), s∈(m,1), 则存在区间[c1,c2],使得任意的 a∈[c1,c2]均满足式(1.6)和(1.7)(也满足(1.8)).
10
单峰区间的确定
11
开始
单峰区间的确定
2.进退法流程图
h=-h z=x1,x1=x2,x2=z w=f1,f1=f2,f2=w x3=x2+h,f3=f(x3) N
给定x1,h0, 并置h=h0 x2=x1+h,f1=f(x1),f2=f(x2)
f1>f2? Y h=2h x3=x2+h, f3=f(x3) N f3>f2? Y x1=x2,x2=x3 f1=f2,f2=f3
a=x3,b=x1
N
h>0?
Y
a=x1,b=x3
输出a,b 结束
12
2.1 黄金分割法
设f(x)在[a,b]上为下单峰函数,即有唯一的极小点 x*,在x*左边f(x) 严格下降,在x*右边 f(x)严格上升. 在[a,b]内任取x1<x2, 若f(x1) < f(x2),则x*∈[a,x2] 若f(x1)≥f(x2),则x*∈[x1,b].
36
不精确一维搜索
例:函数f(a)=(a-1)2.
2.5
f ’(a)=2(a-1), f ’(0)=-2. 取s =0.5,则控制条件为 |f ’(ak)| ≤ s | f ’(0) |=1, 即|2(ak -1)| ≤1, 1/2≤ ak≤3/2.
2
1.5
1
0.5
0 -0.5
0
0.5
1
1.5
2
2.5
13
黄金分割法
若第一次选取的试点为x1<x2,则下一步保留的 区间为[a,x2]或[x1,b],两者的机会是均等的. 因此我们选取试点时希望x2-a=b-x1. 设x1=a+p(b-a),则x2=a+(1-p)(b-a). a
x1
x2
b
14
黄金分割法
另外,我们希望如果缩小的区间包含原来的试点, 则该试点在下一步被利用. 若保留的区间为[a,x2],前一次的试点x1在这个 区间内. x2 x1 a b
图2.1
24
二、Newton切线法迭代步骤
已知 f (t ),f (t ) 表达式,终止限
e.
(1) 确定初始搜索区间 [ a, b],要求
'(a) 0, '(b) 0
(2) 选定 t 0 . (3)计算 t t0 '(t0 ) / "(t0 ) (4)若 | t t0 | e ,则 t0 t ,转(3); 否则转(5).
下面不妨设在区间 [ a, b] 中经过
k 次
迭代已求得方程 f (t ) 0 的一个近似根 t k .过
(tk , f (tk )) 作曲线 y f (t )的切线,其方程
是
y f (tk ) f (tk )(t tk )
(2.1)
23
然后用这条切线与横轴交点的横坐标 tk 1 作为 根 的 新 的 近 似 ( 如 图 2.1 所 示 ) . 它 可 由 方 程 (2.1)在令 y 0 的解出来,即 f (tk ) ( 2.2) tk 1 tk f (tk ) 这就是Newton切线法迭代公式.
21
2.3 Newton
一、Newton切线法基本原理
设 f : R R 在已获得的搜索区间 [ a, b] 内具有连续二阶导数,求 min f (t )
1 1
因为 f (t ) 在 [ a, b]上可微,故 f (t ) 在 [ a, b] 上有最小值 令 f (t ) 0
22
a t b
(1)f(x1)≤f(x0) x1对应着图上用红线标出的一部分
6
进退法(寻找下单峰区间)
(1)f(x1)≤f(x0)
x0
h
2h x1 x2
此时x1取值小,我们加大步长向右搜索,取 h=2h,x2=x1+h 若f(x1)≤f(x2),则我们要找的区间即为[x0,x2]