最优化方法课件02

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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)就是单峰 函数.
37
不精确一维搜索的Wolfe原则
设f(x)可微,取m∈(0,1/Baidu Nhomakorabea), 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)).
18
例1.4.1 用黄金分割法求函数f(x)=x2-x+2在区间 [-1,3]上的极小值,要求区间长度不大于原始区 间长的0.08。
19
用0.618法求解例2.1.1的数据表
迭代 次数 0 1 2 3 4 5 6
[a , b ]
[-1,3] [-1,1.472] [-0.056,1.472] [-0.056,0.888] [0.305,0.888] [0.305,0.665] [0.443,0.665]
(5)打印
t, (t ) ,停机.
25
三、Newton切线法有关说明
这种方法一旦用好,收敛速度是很高的.如果初 始点选得适当,通常经过几次迭代就可以得到满足一 般精度要求的结果,但是它也有缺点.第一,需要求 二阶导数.如果在多维最优化问题的一维搜索中使用
这种方法,就要涉及 Hesse 矩阵,一般是难于求出
h
x0
2h x1 x2 x1 x2
若f(x1)>f(x2),则我们所取的步长偏小. 令x1=x2, h=2h,x2=x1+h 继续往下判断,直到满足f(x1)≤f(x2).
8
进退法(寻找下单峰区间)
(2)f(x1)>f(x0)
x0
x1
x2 x1
此时x1取值大,我们缩小步长向x1左边搜 索,取h=h/2, x2=x1 , x1=x2 - h 若f(x1)≤f(x0),则我们要找的区间即为[x0,x2] 否则继续缩小区间,直到满足f(x1)≤f(x0).
|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]作为新区间.
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
31
为求(x)的极小点,令’(x)=0,得:
32
若 充分接近 ,即对于预先给定的精度 有 ,则把 作为近似极小点.
,
否则计算 ,找出 和 之间的大者,去 掉 或 ,使新的三点仍具有两端点的函数值 大于中间点的函数值的性质.利用新的点再构造 二次函数,继续进行迭代.
33
2.5不精确的一维搜索
2 1 p
3 5 p 0.382, 2 5 1
0.618
16
黄金分割法
若保留区间为[x1,b],我们得到的结果是一致的. 该方法称为黄金分割法,实际计算取近似值: x1=a+0.382(b – a), x2=a+0.618(b – a), 所以黄金分割法又称为0.618法. 黄金分割法每次缩小区间的比例是一致的,每 次将区间长度缩小到原来的0.618倍.
的.第二,当曲线 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),即 作一条抛物线,则可推导出:
前面介绍的得几种一维搜索方法,都是为 了获得一元函数f(x)的最优解,所以习惯上称 为精确一维搜索. 在解非线性规划问题中,一维搜索一般很难得 到真正的精确值. 因此,不精确的一维搜索开始为人们所重视. 即在xk点确定了下降方向pk后,只计算少量的 几个函数就可得到一个满足f(xk+1)<f(xk)的近 似点xk+1.
17
算法2.1.1 黄金分割法
给定a,b(a<b)以及e >0, step 1 令x2=a+0.618(b-a), f2=f(x2); step 2 令x1=a+0.382(b-a), f1=f(x1); step 3 若|b – a|< e , 则 x*=(a+b)/2,Stop. step 4 若f1<f2, 则b=x2,x2=x1,f2=f1,转step 2; 若f1=f2, 则a=x1,b=x2 ,转step 1; 若f1>f2, 则a=x2,x1=x2,f1=f2,转step 5; step 5 令x2=a+0.618(b – a),f2=f(x2),转step3.
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
下面不妨设在区间 [ 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切线法迭代公式.
34
不精确的一维搜索
对于不精确的一维搜索,要求产生的点列具有 某种收敛性.所以除了对下降方向pk有要求之 外,对步长ak也有要求,即要求目标函数要“充 分的下降”. 下面令f(a)= f(xk+a pk),我们讨论ak满足的条 件.
35
不精确一维搜索
对于一元函数f(a),精确一维搜索的条件为 f ’(ak)=0. 不精确一维搜索的条件f ’(ak)≈0,或 |f ’(ak) | ≤ s . 实际计算中上式不好控制,一般的方法是 |f ’(ak) / f ’(0) | ≤ s . s的选取:不宜太大——否则下降不够充分; 不宜太小——否则“太精确”. 适合的范围:比1稍小一些.
9
单峰区间的确定 确定单峰区间的方法—进退法
1.进退法的基本思路:
由单峰函数的性质可知,在极小点 x*左边函 数值应严格下降,而在极小值右边函数值应严格 上升。因此,可从某一个给定的初始点x0出发, 以初始步长h0沿着函数值的下降方向,逐步前进 (或后退),直至找到相继的3个试点的函数值 按“高---低---高”变化为止。
(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]
7
进退法(寻找下单峰区间)
(1)f(x1)≤f(x0)
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
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. 下面分两种情况讨论.
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
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].
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).
第二章 一维搜索
1
问题描述
已知xk,并且求出了xk处的可行下降方向pk ,从 xk出发,沿方向pk求目标函数的最优解,即求解 问题: 设其最优解为ak,于是得到一个新点 xk +1= xk + ak pk 所以一维搜索是求解一元函数f (a) 的最优化问 题(也叫一维最优化问题).我们来求解 令(a)=0,求出a的值。
相关文档
最新文档