最优化方法第三章

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

进退法步骤
算法3.1.1 步1. 选取初始数据.α0∈[0, ∞) , h0>0, 加倍系数t >1(一般取t=2), 计算 ( 0 ) , k =0.
步2. 比较目标函数值.令 k 1 k hk, 计算k 1 ( k 1 ), 若k 1 k , 转步3 , 否则转步4.
线性搜索方法分类
线性搜索方法根据是否采用导数信息分为无导数方 法和导数方法. 由于没有利用导数信息, 无导数方法一般没有导数 方法有效
典型的无导数方法0. 618 法和Fibonacci法
§3.2 0.618法和Fibonacci法
0.618法和Fibonacci(斐波那契)法都是分割方法. 基本思想:通过取试探点和进行函数值的比较, 使包 含极小点的搜索区间不断缩短, 当区间长度缩短到一 定程度时, 区间上各点的函数值均接近极小值, 从而 各点可以看作为极小点的近似. 这类方法仅需计算函数值, 不涉及导数, 又称直接法
在[a, b] 上是凸函数. 0. 618 法的基本思想是在搜索区间[a, b] 上选取两个 对称点λ,μ且λ<μ, 通过比较这两点处的函数值θ(λ)和 θ(μ)的大小来决定删除左半区间[a,λ) , 还是删除右半 区间(μ, b] 删除后的新区间长度是原区间长度的0 .618倍. 新区间包含原区间中两个对称点中的一点, 我们只要 再选一个对称点,并利用这两个新对称点处的函数值 继续比较.重复这个过程, 最后确定出极小点α*
第3章线性搜索与信赖域方法
本章内容
3.1 线性搜索 3.2 0.618 法和Fibonacci法 3.3 逐次插值逼近法 3.4 精确线性搜索方法的收敛性 3.5 不精确线性搜索方法 3.6 信赖域方法的思想和算法框架 3.7 信赖域方法的收敛性 3.8 解信赖域子问题

L x x Lx x 2 Lx L2 0
5 1
x L 0.618L 解得 2 由此可见长段的长度应为全长的0.618倍,而短 段的长度应为全长的0.382倍. 因为古代的人们认为按0.618的比率来分割线段 是最协调,胜似黄金,故称之为黄金分割.

设包含极小点α*的初始搜索区间为[a, b], 设 ( ) f ( xk d k )

即要求

(3)若 (t1 ) (t2 ), 则应具体分析,看极小点可能在哪一边 [ 再决定取舍,在一般情况下,可同时划掉 a, t 2 ]和 [t1 , b] [ 仅保留中间的 [t 2 , t1 ]重置新的区间 a1 , b1 ] [t2 , t1 ] . 接下来是在留下的区间 [a1 , b1 ] 内找好点.重复上面 的步骤,直到搜索区间[ai , bi ] 小于给定的允许误差 0 为止。
显然, 短率满足
Fn k 这里 F 相当于黄金分割法中的τ, n k 1
每次缩
bk 1 ak 1
Fnk (bk ak ) Fnk 1
这里n是计算函数值的次数, 即要求经过n次计算函数 值后, 最后区间的长度不超过δ, 即 bn an
由于
F1 bn a n (bn 1 a n 1 ) F2 F1 F2 Fn 1 (b1 a1 ) F2 F3 Fn 11 (b1 a1 ) Fn
理想的方法是使目标函数沿方向dk达到极小, 即使得 f ( x k k d k ) min f ( x k d k )
0
或者选取αk>0使得 k min{ 0 | f ( xk d k )T d k 0}
这样的线性搜索称为精确线性搜索, 所得到的αk叫精 确步长因子

开始
黄金分割法算法流程 如图所示 (
确定[a,b]
5 1) / 2
t2 (b a )
2 (2 )
t1 a b t 2
1 (t1 )
b t2 t2 t1
2
N
t1 t 2
Y
t * (t1 t 2 ) / 2
1.751
1.901 1.751

否 否
3
4 5 6
[0.305,0.888]
[0.305,0.665] [0.443,0.665]
0.528
0.443 0.528
0.665
0.528 0.580
1.751
1.753 1.751
1.777
1.751 1.757

否 是
最优解x*=(0.443+0.665)/2=0.554
N

1

2
1 2
Y
* (t * )
a t1 , t1 t 2 ,
1

t* , *
2wk.baidu.com
t 2 (b a ), 2 (t 2 )
结束
例 用黄金分割法求函数f(x)=x2-x+2在区间[-1,3]上的极 小值, 要求区间长度不大于原始区间长的0.08.
t1 a 0.618(b a) t 2 a 0.382(b a) 接着计算 (t1 ) 与 (t 2 ) 的值,并根据 (t1 )与 (t 2 ) 的值的 大小关系分情况讨论: (1) 若 (t1 ) (t 2 ),说明t1是好点,于是把区间[ a, t 2 ] 划掉,保留 [t 2 , b] ,则[t 2 , b] 内有一保留点 t1 ,置新的区 间[a1 , b1 ] [t2 , b] ; (2)若 (t1 ) (t 2 ),说明t 2 是好点,于是应将[t1 , b] 划 掉 ,保留[a, t1 ] ,则 [a, t1 ]内 有保留点 t 2 ,置 新的区 , t1 ] 间[a1 , b1 ] [a..
斐波那契数
定义: The Fibonacci numbers 斐波那契数 {fn } = 0,1,1,2,3,5,8,13,21,34,55,… The Fibonacci numbers can be defined斐波那契数可被 定义为: f0 = 0
f1 = 1
f n = f n-1 + f n-2 for n=2,3,4,…
线性搜索算法分成两个阶段
第一阶段确定包含理想的步长因子(或问题最优解) 的搜索区间 第二阶段采用某种分割技术或插值方法缩小这个区 间
进退法
确定初始搜索区间的一种简单方法叫进退法, 其基 本思想是从一点出发, 按一定步长, 试图确定出函数 值呈现“高低高”的三点 即θ(a)≥θ(c)≤θ(b) 这里a≤c≤b
如再计算另一点的函数值,比较后就可进一步缩小搜索区间 。
3.2.1 0.618法
一、黄金分割法基本原理 要介绍黄金分割法有必要回顾一下古老的黄金分 割问题.所谓黄金分割就是将一线段分为二段的方 法.这样分后,要求整段长L与较长段x的比值正好 等于较长段x与较短段L-x的比值(如图)

于是 则
黄金分割法迭代步骤
现在提出一个问题,就在[a,b] 上如何选取二点使得迭代次 数最小而区间缩短最快? 要解决这个问题,人们想到对区间[a,b]选二点t1,t2 等价于 将区间长度b-a进行黄金分割,也就是将第一个搜索点t1取 在 [a,b] 的 0.618 处 , 第 二 个 搜 索 点 t2 取 成 t1 的 对 称 点 即 的0.382处(如图所示)
(I) 若f(x1)≥f(x2),x*∈[x1,b]
f(x)
(II) 若f(x1) < f(x2), x*∈[a,x2]
f(x)
a x1 x2 x* (I) 消去[a, x1 ]
b
x
a
x* x1 x2 b x
(II) 消去[x2, b]
在单峰函数的区间内,计算两个点的函数值,比较大小后,就 能把搜索区间缩小。在已缩小的区间内,仍含有一个函数值,


这样就得到黄金分割法迭代算法:
算法3 .2 .1 ( 0.618 法计算步骤) 已知 (t ),常数 0.382,终止限 . (1)确定 (t )的初始搜索区间[ a, b].

(2计算 t 2 a (b a),2 (t 2 ) . (3)计算 t1 a b t2,1 (t1 ) . t t2 * 1 | (4) 若 t1 t 2 | ,则打印t ,停机;否则,转 2 (5). (5) 判别是否满足 1 2 :若满足,则置 a t2, t1, 2 1 t2 , 然后转(3);否则,置 b t1, t2,1 2, a (b a), 2 (t2 ) t1 t2 然后转(4).
Fnk k ak (1 )(bk a k ) Fnk 1
Fn k 1 k a k (bk a k ), k 1,2,, n 1 Fn k 1 Fn k k ak (bk a k ), k 1,2,, n 1 Fn k 1
a
c
b
具体地说, 就是给出初始点α0>0, 初始步长h0>0, 若 ( 0 h0 ) ( 0 )
则下一步从新点α1=α0+h0出发, 加大步长, 再向前搜 索, 直到目标函数上升为止.

( 0 h0 ) ( 0 )
则下一步仍以α0为出发点, 沿反方向同样搜索, 直到 目标函数上升就停止.这样便得到一个搜索区间.这种 方法叫进退法.
迭代 次数 0 1 2
[a,b] [-1,3]
x1 0.528
x2 1.472
f1 1.751
f2 2.695
|b-a|<e 否
[-1,1.472]
[-0.056,1.472] [-0.056,0.888]
-0.056
0.528 0.305
0.528
0.888 0.528
2.059
1.751 1.788

§3.1 线性搜索
线性搜索是多变量函数最优化方法的基础,在多变 量函数最优化中,迭代格式为 xk 1 xk k d k 其关键是构造搜索方向dk和步长因子αk.设 ( ) f ( xk d k ) 从xk出发, 沿搜索方向dk, 确定步长因子αk, 使 ( k ) (0) 的问题就是关于α的线性搜索问题
25
2013-6-16
3.2.2 Fibonacci法
另一种与0 .618 法相类似的分割方法叫Fibonacci 法. 它与0 .618 法的主要区别之一在于: 搜索区间长度的 缩短率不是采用0 .618 而是采用Fibonacci 数. Fibonacci 数列满足 F0 F1 1
Fk 1 Fk Fk 1 , k 1,2 Fibonacci 法中的计算公式为
步3. 加大搜索步长, 令hk 1 : thk , : k , k : k 1
k : k 1 , k : k 1转步2
步4. 反向搜索.若k= 0, 转换搜索方向, 令 hk 1 : hk , : k 1 转步2;否则, 停止迭代, 令
a min{ , k 1}, b min{ , k 1} 输出[a, b] , 停止.
这些方法要求所考虑区间上的目标函数是单峰函数 如果这个条件不满足, 我们可以把所考虑的区间分 成若干个小区间, 在每个小区间上函数是单峰的. 这样, 我们在每个小区间上求极小点, 然后选取其 中的最小点
单峰函数
定义:如果函数f(x)在区间[a,b]上只有一个极值点, 则称f(x)为 [a, b]上的单峰函数。
f(x)
f(x)
f(x)
f(x)
a
b
x
a
a b
x
a
b
b
x
x
连续单峰函数
不连续单峰函数
离散单峰函数 非单峰函数
单峰函数具有一个重要的消去性质
定理:设f(x)是区间[a,b]上的一个单峰函数,x*∈[a,b]是其极小 点, x1 和x2是[a, b]上的任意两点,且a<x1 <x2<b,那么 比较f(x1)与f(x2)的值后,可得出如下结论:
相关文档
最新文档