第七章非线性规划 第二节 一维搜索(1)

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

第二步:选取前两个试点的位置。
Fn-2
Fn-1
t1 中间点 t1
a0
Fn-1 Fn Fn-2
b0
t1 a0 t a 1 0
Fn 2 Fn1 (b0 a0 ) b0 (a0 b0 ) Fn Fn Fn1 (b0 a0 ) Fn
Fn-3 Fn-2
t1 t2
Fn-1
t1中间点 t1 2
t2
a0
[a1 , b1 ] [t1 , b0 ]
中间点
b0
t 2 t1
Fn 2 a1 t2 (b1 a1 ) Fn1
Fn-1
第四步:计算函数值 f(t3) 或 f(t’3),并比较大小,如此迭代。
第六章 非线性规划
第二节 一维搜索
在迭代法中确定搜索步长 需要一维搜索: 一维搜索要求沿射线 X(k+1)=X(k)+ λkP(k) 搜索,使目标函数 f(X) 极小:
k: min f ( X ( k ) P ( k ) )

R
一维搜索是求解一元函数的无约束极值问题 min F ( ) 的数值解法。它是求解n元函数的无约束极值问题 的重要组成部分。 min f ( X ) n
f ( X 2 ) f ( X 1 ) f ( X 0 )
0 0 min f ( X p ) f ( X ) f ( X 0 p ) 0 min F0 ( )
f (X k )
Xk X
f ( X 2 ) f ( X 1 1 p1 ) min f ( X 1 p1 ) min F1 ( ) 0
在区间 [a1 , b] 内
只要在区间 [a , b]内任取两个不同点,并算出它们的函数值 加以比较,就可以把搜索区间缩小为 [a1 , b] 或 [a , b1] 。 要进一步缩小搜索区间,只需在缩小后的区间内再取一点 ,并与 f(a1)或 f(b1)比较函数值大小。 第一次插入两个点: 假设f(a1) < f(b1)
区间 [a , b] 上的上单峰函数。
在区间 [a , b]内任取两点 a1 和 b1 ,a1 < b1,并计算函数值 f(a1) 和 f(b1),可能出现两种情况: f(a1) ≥ f(b1), f(a1) < f(b1), a1一定在 t*的左端 。 b1一定在 t*的右端。
f(x)
X R

0
p0 X 0
X 0 p0
一维搜索性质:在搜索方向上所得到的最优点处的梯度和该 搜索方向正交。
min F ( )
R
min f (X) n
X R
p1 f ( X 1 )
X X 1 p
2
1
1
p f ( X ) 搜索方向
0 0源自文库
X0
1
0
0
0
X 0 0 p 0 X 1
a
a1
b1
b
第二次在新的 [a,b] 内插入一点同 上次保留下来的点值 比较,从而使搜索区 间进一步缩小:
假设f(a2) >f(b2)
a
a2 b2 a
b
第三次在新的 [a,b] 内插入一点同 上次保留下来的点值 比较,从而使搜索区间 进一步缩小:
假设f(a3) <f(b3)
a3 b3 b
a 4 b4
单峰函数:在定义域内只有一个极值点的连续函数。 下单峰函数:在定义域内只有一个极小值点的连续函数。 在区间 [a , t*] 中严格单调下降,而在区间 [t* , b] 中严格单调上升,则称为 区间 [a , b] 上的下单峰函数。 上单峰函数:在定义域内只有一个极大值点的连续函数。
在区间 [a , t*] 中严格单调上升,而在区间 [t* , b] 中严格单调下降,则称为
长度为 8 的区间缩短到 1也只需要插入 5 个点。
长度为 4 的区间缩短到 1 需要插入 4 个点。 长度为 5 的区间缩短到 1 需要插入 4 个点。 长度为 6 的区间缩短到 1 需要插入 5 个点。 长度为 7 的区间缩短到 1 需要插入 5 个点。 长度为 8 的区间缩短到 1 需要插入 5 个点。
6. 算法步骤 第一步: 确定试点的个数 n 。 根据相对精度δ的要求,利用公式(1/Fn≤δ)算出 Fn,然后根 据斐波那契数表确定最小的试点个数 n 。 例1 试用斐波那契法求函数 f(t)= t2 – t + 2的近似极小点和极小值 ,要求缩短后的区间长度不大于区间 [-1 , 3] 的 0.08 倍。
第四次在新的 [a,b] 内插入一点同 上次保留下来的点值 比较,从而使搜索区间 进一步缩小:
假设f(a4) >f(b4)
a
b
按照上述方法,随着计算函数值次数的增加,区间变得越 来越小,从而越接近极小点。 因此:区间缩短率和函数值计算次数之间存在一定的关系。
下面来讨论区间缩短率和函数值计算次数之间的关系。
0
0
一维搜索
F ( ) 考虑一元函数极小化问题: min R
思想: 首先定出一个包含 F ( ) 的极小点的区间,然后不 断缩小区间的长度,当区间充分小时,取其中的一点 作为近似极小点。
主要方法:(1)斐波那契法 (2)0.618法
一、斐波那契法(分数法)
设 y=f(x) 是区间 [a , b] 上的下单峰函数,在此区间 内,有唯一极小点 t *。
0
中间点 ② ①
a1 中间点-ε
中间点+ε
b1
2
[a,b1]
[a1,b]
ε足够小,缩小后的区间可接近原区间的一半
长度为 2 的区间缩短到 1 需要插入 2 个点。
长度为 3 的区间需要插入几个点才能缩短为 1? 对称搜索法
中间点 中间点 ①
0

1 ③ 3
2 3
3
2 区间缩小为 2,可采取区间长度为 2 的插入方法 缩小后的区间可接近 1
长度为 3 的区间缩短到 1 需要插入 3 个点。 长度为 2 的区间缩短到 1 需要插入 2 个点。
F2 =2:插入 2 个点可使长度缩短为 1 的最大原区间长度为 2
长度为 4 的区间需要插入几个点才能缩短为 1? 对称搜索法
中间点 ①
0
1 4
3 4
4
3 区间缩小为 3,然后可采取长度为 3 的插入方法再插入3个点
长度为 5 的区间缩短到 1 也只需要插入 4 个点。 长度为 6 的区间需要插入几个点才能缩短为 1?
中间点 ①
0
2 6
4 6
6
4 区间缩小为 4,然后可采取长度为 4的插入方法再插入4个点
长度为 6 的区间缩短到 1 需要插入 5 个点。
长度为 7 的区间需要插入几个点才能缩短为 1?
中间点 ①
0
a1
b1
2
[a,b1] [a1,b] [a,b1]+[a1,b] > [a,b] 说明缩小后的区间一般要大于原区间的一半
但是可以把计算函数值的点选得尽量靠近[a,b]的中点,对于长度为2 的单位长度的区间,缩短后的区间长度等于单位长度的(1+ε)倍, 从而使缩短后的区间长度接近于1个单位长度。
对称搜索法
F4 =5:插入 4 个点可使长度缩短为 1 的原区间最大长度为 5 。 F5 =8:插入 5 个点可使长度缩短为 1 的原区间最大长度为 8 。
F0=1 小结: F =1 1 F2=2 F3 =3 F4=5 F5=8
n Fn 0 1 1 1 2 2 3 3 4 5 5 8
Fn=Fn-1+Fn-2,n≥2
计算试点的 一般公式为:
Fn k (ak 1 bk 1 ) t k bk 1 F n k 1 ,k 1,..., n 1 t a Fn k (b a ) k k 1 k 1 k 1 F n k 1
第五步:当进行至 k=n-1 时: F1 1 1 t n1 bn 2 F (an 2 bn 2 ) bn 2 2 (an 2 bn 2 ) 2 (an 2 bn 2 ) 2 t a F1 (b a ) a 1 (b a ) 1 (a b ) n 1 n 2 n 2 n 2 n 2 n 2 n 2 n 2 n 2 F 2 2 2 1 1 因为二者相等,故无法比 t n1 bn 2 (an 2 bn 2 ) (an 2 bn 2 ) 较两个试点的函数值大小 2 2 。为了能够使二试点能够 1 比较函数值大小,取 t n1 an 2 ( )(bn 2 an 2 ) 2
n1 n1
1 Fn
bn1 an1 b0 a0
0
0
4. 绝对精度 区间 [a0 , b0],插入 n 个点并比较其函数值后缩短为[an-1,bn-1],其长度不长于 η ,η 称为区间缩短的绝对精度。 bn-1-an-1≤ η
5. 相对精度和绝对精度的关系
η = (b0-a0)δ
5 7
对称搜索法
0
2 7
7
5 区间缩小为 5,然后可采取长度为 5 的插入方法再插入4个点
长度为 7 的区间缩短到 1 也只需要插入 5 个点。 长度为 8 的区间需要插入几个点才能缩短为 1? (P161, 图6.8)
中间点 ①
5 8
0
3 8
8
5 区间缩小为 5,然后可采取长度为 5的插入方法再插入4个点
因要求缩短后的区间[an-1,bn-1]不长于原来区间[a0,b0]的 0.08 倍 ,故δ= 0.08 。 1 1 1 Fn 12.5 Fn 0.08
查斐波那契数表,可知 n=6 。
n Fn 0 1 1 1 2 2 3 3 4 5 5 8 6 13 7 21 8 34 9 55 10 89 11 144 12 233
f(x)
也可在 t 的左端 可在 t 的右端
也可在 t 的右端 可在 t 的左端
a
a 1 t* a 1
b1
b
x
a a 1 b 1 t* b 1
一定在 t 的左端
x b
一定在 t 的右端
f(a1) < f(b1),极小点 t* 必在区间 [a , b1] 内。
f(a1) ≥ f(b1),极小点 t* 必
长度为 4 的区间缩短到 1 需要插入 4 个点。 长度为 3 的区间缩短到 1 需要插入 3 个点。 F3 =3:插入 3 个点可使长度缩短为 1 的最大原区间长度为 3
长度为 5 的区间需要插入几个点才能缩短为 1?
中间点
对称搜索法

0
2 5
3 5
5
3 区间缩小为 3,然后可采取长度为 3 的插入方法再插入3个点
第三步:计算函数值 f(t1) 和 f(t’1),并比较它们的大小。
Fn-2
) 若 f ( t1 ) f ( t 1
Fn-3
t2
t1 中间点 t1 2
a0
] [a1 , b1 ] [a0 , t1
) 若 f ( t1 ) f ( t 1
中间点
b0
Fn 2 t 2 b1 (a1 b1 ) Fn1
例1 试用斐波那契法求函数 f(t)= t2 – t + 2的近似极小点和极小值 ,要求缩短后的区间长度不大于区间 [-1 , 3] 的 0.08 倍。 解:根据二阶条件,f(t) 的海赛矩阵 H(t) 为 H ( t ) 2
1. 递推公式 令 Fn 表示计算 n 个函数值能将区间长度缩短为 1 的最大原区 间长度,则 F0 =1 :因为不计算任何函数值不能够使区间缩小,故原区 间长度必须是 1 。 F1=1:因为每次要缩小搜索区间都要计算两次函数值,而只 计算一次函数值无法将区间缩短,故原区间长度必须是 1。
下面来讨论长度为 2 个单位长度的区间需要插入几个点才能缩短为 1 。
斐波那契数
6 13 7 21 8 34 9 55 10 89 11 144 12 233
2. 缩短率 最大长度为 Fn 的区间经过插入 n 个点并比较其函数值后可缩短为 1 ,称 1 / Fn 为最大缩短率。
3. 相对精度 区间 [a0 , b0] 插入 n 个点并比较其函数值后缩短为[an-1,bn-1],如要 求缩短后的区间 [an-1,bn-1] 不长于原来区间 [a0,b0] 的 δ 倍, δ 称为区间 缩短的相对精度。 b a (b a )
相关文档
最新文档