3.1搜索算法结构

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

23 0.618034 0.618034
-1.1922e-005 2.9804e-006 1.219e-005 2.7093e-005
24 0.618035 0.618035
-1.1922e-005 -2.7117e-006 2.9804e-006 1.219e-005
25 0.618032 0.618032
f(x)
a x0 x1 x* x2 b x
(二)算法
1、选定初始点a 和步长h; 2、计算并比较f(a)和f(a+h);有前进(1)和后退(2)两种情况:
(1) 前进运算:若f(a) ≥f(a+h), 则步长加倍,计算f(a+3h)。若f(a+h) ≤f(a+3h),
令 a1=a, a2=a+3h, 停止运算;否则将步长加倍,并重复上述运算。 (2) 后退运算:若f(a) < f(a+h), 则将步长改为-h。计算f(a-h), 若f(a-h) ≥ f(a),
方法分类:
1、直接法:迭代过程中只需要计算函数值; 2、微分法:迭代过程中还需要计算目标函数的导数;
§3.2 搜索区间的确定
常用的一维直接法有消去法和近似法两类。它们都是从 某个初始搜索区间出发,利用单峰函数的消去性质,逐步缩 小搜索区间,直到满足精度要求为止。
§3.2.1 单峰函数
定义:如果函数f(x)在区间[a,b]上只有一个极值点, 则称f(x)为
(3)对称: x1 – a = b-x2 ;(4)保持缩减比:λ=(保留的区间长度/原
区间长度) 不变。(使每次保留下来的节点, x1或 x2 ,在下一次的比 较中成为一个相应比例位置的节点 )。
(一)黄金分割
bx xa
xa ba
(1 )L L
1 5
2
a λL
x
b
(1-λ)L L
取 “ +”,λ=0.61803398874189
若再计算另一点的函数值,比较后就可进一步缩小搜索区间 .
如何确定包含极小点在内的初始区间 ? §3.2.2 进退算法 (或称成功-失败法)
(一)基本思想: 由单峰函数的性质可知,函数值在极小点左边严格下降,在右 边严格上升。 从某个初始点出发,沿函数值下降的方向前进,直至发现函 数值上升为止。 由两边高,中间低的三点,可确定极小点所在的初始区间。
k,关于算法的收敛速度,有
1.线性收敛:
|| x(k 1) x* || || x(k ) x* ||
1当k充分大时成立。
2.超线性收敛:
lim
k
|| x(k1) x* || || x(k) x* ||
0
3.二阶收敛: ﹥0,是 使当k充分大时有
|| x (k1) x* ||
|| x (k ) x* ||2
f(x)=x2, a=-1.5, b=1;精度10-5
a
x1
x2
b
-3.6034e-005 2.9804e-006 2.7093e-005 6.6107e-005
22 0.618034 0.618034 (x1-a)/(x2-a) (b-x2)/(b-x1) -3.6034e-005 -1.1922e-005 2.9804e-006 2.7093e-005
(I) 若f(x1)≥f(x2),x*∈[x1,b] (II) 若f(x1) < f(x2), x*∈[a,x2]
f(x)
f(x)
a x1 x2 x*
bx
a
x* x1 x2 b x
(I) 消去[a, x1 ]
(II) 消去[x2, b]
在单峰函数的区间内,计算两个点的函数值,比较大小后,就
能把搜索区间缩小。在已缩小的区间内,仍含有一个函数值,
_
x
0, 点的可
行方向。
同时满足上述两个性质的方向称下降可行方向。
模型算法 初始x(1) ∈S, k =1
k=k+1
对x(k)点选择下降 可行方向d(k)
x2
f (X0) f (X1) f (X2)
X0
31 5
X1
X2
x1
线性搜索求 k,
新点 x(k1) x(k) (k)d (k ) 使x(k+1)∈S
由于非线性规划问题的复杂性,实用中建立下列 收敛性概念 :
2. 实用收敛性:定义解集
S* = { x | x 具有某种性质 }
例:S*={x|x---g.opt} S*={x|x---l.opt}
S*={x| f(x)=0}
S*={x|f(x)≤β }
(β为给定的实数,称为阈值)
2.实用收敛性(续)
+|| x(k) –x* || ,除以|| x(k) –x* || 并令k→∞,利用超线 性收敛定义可得结果。
该结论导出算法的停止条件可用:
|| x(k1) x(k) || 或 | f ( x(k1) ) f ( x(k) ) |
四、二次终结性
▲一个算法用于解正定二次函数的无约束极小 时,有限步迭代可达最优解,则称该算法具 有二次终结性。
34 0.626902 0.626902
-9.7339e-008 -2.4483e-008 2.5078e-008 9.7933e-008
35 0.595145 0.595145
-9.7339e-008 -4.7778e-008 -2.4483e-008 2.5078e-008
36 0.680264 0.680264
no
yes
是否满足停机条件?

二、收敛性概念:
考虑(fs)
min f(x)
s.t. x∈S
设迭代算法产生点列{x(k)} S.
1. 理想的收敛性:设x*∈S是g.opt(全局最优
解).当x*∈ {x(k)} 或 x(k) ≠ x*, k,满足
lim x(k ) x*
k
时,称算法收敛到最优解 x*。
第三章 常用的一维搜索方法
3.1 搜索算法结构
一、下降算法模型
考虑(fs)
min f(x)
s.t. x∈S
dk d k2
常用一种线性搜索的方式来求解:迭代中从
一点出发沿下降可行方向找一个新的、性
质有改善的点。迭代计算:
xk1 xk k d k , k 0,1, 2,
其中d k为第k 1次迭代的搜索方向,k 为沿d k
(三)算法
开始
给定a0 , b0 ,
a
x1 x2
b
x1 +x2 = a+b
a=a0 ,b= b0 , =0.618034
x*∈[x1, b]
x2 =a+(b-a), x1 =a+b-x2 f2 =f(x2), f1 =f(x1)
x*∈[a, x2]

b-x1 <


f1 f2
是 x2 –a<
否 a=x1, x1= x2, f1 =f2 x2 =a+b- x1, f2 =f(x2)
(1) 终止限不要取得太小; (2) 使用双精度运算; (3) 经过若干次运算后,转到算法中的第3步,重新开始。
(四) 黄金分割法的优缺点
1、优点:算法简单,效率高,只计算函数值,对函数要求低,稳定性好, 对多峰函数或强扭曲的,甚至不连续的,都有效;
2、缺点:对解析性能好的单峰函数,与后面要介绍的二次插值法、三次 插值法及牛顿-拉夫森法等比较,计算量较大,收敛要慢。
-1.1922e-005 -6.2296e-006 -2.7117e-006 2.9804e-006
26 0.618038 0.618038
x*= -2.7117e-006
= 5-1 若用0.618效果较差
2
f(x)=x2, a=-1.5, b=1;精度10-10
a
x1
x2
b
-2.1976e-007 -9.7339e-008 -2.4483e-008 9.7933e-008
§3.3 区间消去法-黄金分割法
消去法的思想:反复使用单峰函数的消去性质,不断缩小包含极小点的
搜索区间,直到满足精度为止。[a, b] [x1, x2 ] [a, b]新 [a, x2 ]或[x1, b]
消去法的优点:只需计算函数值,通用性强。
消去法的设计原则:(1)迭代公式简单;(2)消去效率高;
令 a1=a-h, a2=a+h, 停止运算;否则将步长加倍,继续后退。
——仅仅找区间!若进一步找
最小点,参阅P44!
f(x)
f(x)
a a+h a+3h
a+7h
x
a1
b1
a-7h
a-3h a-h a a+h x
a1
b1
(三) 几点说明 缺点:效率低; 优点:可以求搜索区间; 注意:h 选择要适当,初始步长不能选得太小;
所以线性搜索是求解一元函数
的最优化问题(也叫一维最优化问题或 f x =0 (a x b)
axb
一般地,线性搜索算法分成两个阶段:
第一阶段确定包含理想的步长因子 (或问题最优解)的搜索区间;
第二阶段采用某种分割技术或插值 方法缩小这个区间。
三、收敛速度(续)
定理:设算法点列{x(k)}超线性收敛于x*,且x(k)≠x*,
k,那么
lim
k
|| x(k 1) || x(k )
x(k) || x* ||
1
证明:只需注意
| ||x(k+1) –x* || -|| x(k) –x* || |≤ ||x(k+1) –x(k) || ≤ ||x(k+1) –x* ||
-4.7778e-008 -2.4483e-008 1.7832e-009 2.5078e-008
[a, b]上的单峰函数。
f(x)
f(x)
f(x)
f(x)
a
b xa
ab x
a
b
x
b
x
连续单峰函数
不连续单峰函数 非单峰函数离散单峰函数
单峰函数具有一个重要的消去性质
定理:设f(x)是区间[a,b]上的一个单峰函数,x*∈[a,b]是其极小
点, x1 和x2是[a, b]上的任意两点,且a<x1 <x2<b,那么比较f(x1) 与f(x2)的值后,可得出如下结论:
(二)黄金分割法的基本思想
黄金分割重要的消去性质: 设x1 ,x2 为[a, b] 中对称的两个黄金分割点,
x1为[a,x2]的 黄金分割点
a
x1
λL
x2
b
(1-λ)L
x1 a (1 )L
x2 a
L
(1-λ)L
λL L
b x2 (1 )L
b x1
L
x2为[x1,b]
的黄金分
我们主要介绍如下一些搜索方法:
• 搜索区间的确定 • 黄金分割法(0.618法) • 二次插值法 • Newton法
要点:单峰函数的消去性质、进退算法基本思想、黄金分割 法基本思想、重新开始、二次插值法要求、极小化框架、 Newton法基本思想、方法比较。
学习的重要性: 1、工程实践中有时需要直接使用; 2、多变量最优化的基础,迭代中经常要用到。
常用的一维搜索算法
问题描述:
已知 xk , 并且求出了xk 处的可行下降方向 pk ,
从 xk 出发,沿方向d k 求如下目标函数的最优解,
min f
0
xk d k
min 0
或者选取k 0 使得:
k min 0 f xk dk T dk 0
设其最优解为k (叫精确步长因子), 于是得到一个新点:xk1 xk kd k
搜索的最佳步长因子(通常也称作最佳步
长)。
Xk
X k2 dk
X k1
k d k
△下降_方向 :
设 使
x_∈S,d ∈R_ n,d≠0,若存在 0 ,
f (x d) f (x), (0, ) ,称d 为 在
_
x
点的下
降方向。
△可行_ 方向:设
_
x
∈S,d∈Rn,d≠0,若存在
使 x d S, (0, ) ,称d 为
否 b=x2, x2= x1, f2 =f1 x1 =a+b- x2, f1 =f(x1)
x*=x2, f*=f2
结束
x*=x1, f*=f1
!!! 在迭代过程中,四个点的顺序始终应该是 a<x1 < x2 <b
但在计算第二个分割点时使用x1 =a+b-x2 或 x2 =a+b- x1, 由于舍入误差的 影响,可能破坏a<x1 < x2 <b这一顺序,导致混乱。迭代中必须采取一些措施:
割点
在进行区间消去时,不管是消去[a, x1],还是消去[x2,b],留下来 的区间中黄还金含分一割个比黄λ金 0分.6割18点,,所只以要此在法对也称称位为置0.6找18另法一。个黄金分割点, 又可以进行下一次区间消去。
每次消去后,新区间的长度是原区间的0.618倍,经过n次消去后,保 留下来的区间长度为0.618nL,需计算函数值的次数为n+1。
▲收敛性:设解集S*≠ ,{x(k)}为算法产生的点 列。下列情况之一成立时,称算法收敛:
1°x(k) ∈S*;
有限步终止
2°x(k) S*, k,{x(k)}的任意极限点∈S* 。
▲全局收敛:对任意初始点x(1),算法均收敛。
局部收敛:当x(1) 充分接近解x*时,算法收敛。
三、收敛速度
设算法产生点列{x(k)},收敛到解x*,且x(k)≠x*,
相关文档
最新文档