机械优化设计教案第三章一维优化
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
21
(2)若f1 ≤ f2 ,如图3.5(b) 所示,极小点必在[a,α2] 内, 消去区间[α2 ,b] ,令b=α2, 产生新区间[a ,b] ,至此,区 间收缩了一次。 同样,新区间α2点与原区 间α1点重合,令α2= α1,
f2= f1。
当缩短的新区间长度小于等于某一精度ε,即 b-a ≤ ε时,取α*为近似极小点。 α*=( b+a )/2
图3.5
20
比较f1 与f2的大小,有以下两种可能:
(1)若f1 > f2 ,如图3.5(a)所示,极小点必在[α1 ,b] 内, 消去区间[a,α1] ,令a=α1,产生新区间[a ,b] 。至此, 区间收缩了一次。
注意:
新区间的α1点与原区 间的点α2重合,可令α1 =α2, f1=f2, 这样可少 找一个新点和节省一次 函数值计算。 图3.5 黄金分割法区间收缩
10
进退法确定搜索区间的步骤:
2. 方法二 (1) 给定初始点α0和初始步长h0; (2) 令α1 =α0, h=h0, α2 =α1+h, 得: 两试点α1 ,α2 ,计算 f1 =f(α1), f2 =f(α2); (3) 比较 f1 和 f2 ,存在以下两种情况:
1) 若f1 > f2 ,如图3.3(a)、(b)所示, 则作 前进运算。取第3个试点α3 =α2+h, 计算函数值 f3=f(α3), 并比较f2 和 f3:
6 0.077
0.083 11 0.0069 0.0081
28
3.3.3 平分法
基本原理
取具有极小点的单峰函数的搜索区间[a, b]的坐 ab 标中点 2 作为计算点,计算目标函数在该点 处的导数 f ' ; 利用函数在极小点处的导数为零,而在其左侧 为负、右侧为正的原理,来判断极小点所在的那 一半搜索区间,以消掉另一半区间。 这样逐次迭代下去,总能将搜索区间收敛到 一个局部极小点附近,求得极小点的近似解。 特点:其收敛速度虽慢,但缩短率也达到0.5, 特别是每次迭代计算量较少,可靠性较好,故其 仍然是一个受欢迎的方法。
第3章 一维搜索方法 3. 1 引言
一维无约束优化问题:
min F ( )
求解一维目标函数 f ( ) 的极小点和极小值的数值 迭代方法即为一维搜索方法。
一维优化方法是优化方法中最基本的方法。该类 方法不仅用来解决一维目标函数的求优问题,而且更 常用于多维优化问题中在既定方向上寻求最优步长的 一维搜索。
图3.3 进退法
16
若 f2 >f3,如图3.3(d)所示, 则将步长加倍,继续作后 退运算,即令h=2h, α1 =α2, α2 =α3, α3 =α2+h。 继续比较f2 与 f3,直至找到相继3试点的函数值按“大 -小-大” 变化为止。相应的区间为 [α3 ,α1] 。
图3.3 进退法
17
o
f (1 ) f ( 2 )
1 2
6
2) 若f1≤ f2 ,如下图所示, 则作后退计算。 令 h=-h, 将α1、 f1与α2、 f2对调,转入第3)步。
f ( )
f ( 2 ) f (1 )
o
1 2
7
3)计算第3个试点α3 =α2+h, 计算函数值f3=f(α3), 并 比较f2 和 f3 ,有如下两种情况 :
22
黄金分割法的区间收缩率λ
即每次缩小所得的新区间长度与缩小前区间长度之比。 为加快区间收缩应保证区间收缩率不变,即在搜索区间 [a, b]内对称取计算点α1 , α2 。 区间收缩率λ的推导: 设初始区间长度为L, 则第一次 和第二次收缩得到的新区间长度 分别为: λ L 和 (1-λ) L 。
进退法的 程序框图
图3.4
18
例 : 试用进退法确定下列函 数 f ( ) 7 10
2
的最优解所在区间。设 初始点
0 0, 初始步长h 1。
19
3. 3 一维搜索的区间消去法
3. 3.1 黄金分割法(0.618法)
基本原理
黄金分割法是通过不断缩短搜索 区间的长度来寻求一维函数f(α) 的极小点,其基本原理如下: 在搜索区间[a, b]内按如下规 则对称地取两点α1 ,α2,并计算 它们的函数值f1 =f(α1), f2 = f(α2)。
此处介绍的均为一维的无约束优化方法。
3
本节的假设:
函数在区间[a,b]上是凸函数,且连续。 于是在区间[a,b]上有唯一的极小值;如图3.2所示, 在区间[α 1, α 3]上,函数值满足高-低-高(或大-小-大) 的特征。 在极小点的左边函数值应一直下降;而在极小 点的右边函数值应严格上升。
F(α) F(α1) F(α 2)
f ( )
f (1 ) f ( 2 )
f (3 )
o 3 1 2
9
进退法的程 序框图1
Y
输入初始自变量和步长值α1,h 计算f(α1), α2= α1+h,和f(α2)
f(α1) ≤ f(α2)?
N
h=-h, α1 与α2 ,f(α1)与 f(α2)互换, α3= α2+h, 计算f(α3)
☼
1
☼一维优化一般可分为两大步骤: 确定初始搜索区间[a,b]; 该区间应为包含一维优化目标函数的极小点在内的单 峰区间。 在搜索区间[a,b]内寻找极小点。
优化算法的基本迭代公式:
X k 1 X k k S k , k 0, 1, 2,
当迭代初始点 X k 及搜索方向S k 确定后,迭代所得的新点 X k 1 取 决于步长 k ,不同的 k 会得 到不同的目标函数值 f ( X k 1 ) 。
n 1
1 / Fn
1.17
也就是说,当n→∞时黄金分割法的总缩短率的 值比Fibonacci法的总缩短率的值大1.17倍,故其 效果虽然稍差些,但计算简便也是很好的。
27
当n=2…11时,两种方法总缩短率的比较:
黄金分割法与Fibonacci法的缩短率 2 3 4 5 计算点数n 0.33 0.2 0.125 Fibonacci法 0.5 0.23 0.14 黄金分割法 0.618 0.38 7 8 9 10 计算点数n Fibonacci法 0.048 0.029 0.018 0.010 黄金分割法 0.054 0.034 0.021 0.013
并转 ; 1) ak 若f ' ( k ) 0, 则取ak, k 为缩短后的搜索区间 1 , bk 1 ,
0
F(α 3)
α1
α2
图3.2
α3
α
4
3.2 确定最优解所在区间的进退法
进退法的基本思路
f(α)
f(α *)
0
由单峰函数性质可知,在极 小点左边函数值应严格下降, * 而在极小点 右边函数值应 严格上升。
α
α*
从某一给定的初始点 0 出发,以初始步长h0沿着目标 函数值的下降方向,逐步前进(或后退),直至找到相继 的3个试点的函数值按“大-小-大”变化为止。
图3.1
2
在多维优化问题中,一维优化的目的是:在既定的X k 和 S k 下寻求最优步长 k ,使迭代产生的新点 X k 1 的函数值为最小,即:
min F ( X k k S k )
常用的一维搜索方法
试探法 黄金分割法 fibonacci方法 平分法 格点法
插值类方法 牛顿法 抛物线法(二次插值法)
25
3.3.2 斐波纳期Fibonacci方法
除去黄金分割法外,在生产上,还常使用一些其他 区间消去的搜索方法,如:斐波纳期Fibonacci法。 该方法是构造一个数列,f0=1, f1=1, fn=fn-1+fn-2,按 照下列条件,构造搜索点: X1=a+fn-2(b-a)/ fn, X2=a+fn-1(b-a)/ fn, 各搜索点同样 可满足上述区间消去要求。
根据收缩率相等的原则,可得: λ L : L= (1-λ) L : λ L 该方程的正根为:
5 1 0.618 2
23
黄金分割法程序框图
图3.6
24
特点: 黄金分割法程序结构简单,容易理解,可 靠性好。但计算效率偏低,适用于低维优化 的一维搜索。
例3 1 用 黄 金 分 割 法 求 ) 2 7 10的 最 优 解 。 : f( 设 初 始 点 0 0, 初 始 步 长 1 取 迭 代 精 度 0.35。 h ,
11
(a)
(b) 图3.3 进退法
12
若 f2 ≤f3,如图3.3 (a)所示, 则找到 了相继3试点α1 、α2 、 α3的函数值按“大- 小-大” 变化,故 有搜索区间[a, b]=[α1 , α3];
图3.3 进退法
13
若 f2 >f3,如图3.3(b)所示, 则将步长加倍,即令 h=2h, α1 =α2, α2 =α3, α3 =α2+h。 如此重复该过程,总能找到相继3试点的函数值符合 “大-小-大” 变化的要求。左端点为a, 右端点为b, 从而找到了搜索区间[a, b]。
h=2h, α3= α2+h, 计算f(α3)
Y
f(α2) ≤ f(α3)?
N
作代换 α1 =α2 , α2 =α3 , f(α1)= f(α2) , f(α2)= f(α3) , α3= α2+h, 计算f(α3)
α1 ,α3 满足高-低-高,得区间[a,b]
a=min( α1 ,α3 ), b=max ( α1 ,α3 ) 结束
26
黄金分割法与Fibonacci方法比较
当计算点总数n→∞时,Fibonacci分数Fn-1/Fn(即 缩短率)的极限就是λ=0.6180339887418948…。实际 上当n≥8,即有Fn-1/Fn=0.618。 用n个计算点计算时或经过n-1次迭代后,黄金分割 法的总缩短率为λn-1,当n→∞时此两者之比为:
5
进退法确定搜索区间的步骤:
1. 方法一[1] (1) 给定初始点α0和初始步长h0; (2) 令α1 =α0, h=h0, α2 =α1+h, 得: 两试点α1 ,α2 ,计算 f1 =f(α1), f2 =f(α2);
f ( )
(3) 比较 f1 和 f2 ,存在以下两种情况:
1) 若f1 > f2 ,如右图所示, 取h=2h, 作前进运算。
图3.3 进退法
14
2) 若f2≥ f1 ,如图3.3(c)、(d)所示, 则作后退计算。 令h=-h, 将α1、 f1与α2、 f2对调,并取第3个试点α3 =α2+h, 计算函数值f3=f(α3), 比较对调后的f2 与 f3:
图3.3 进退法
15
若 f2 ≤f3,如图3.3(c)所示, 则搜索区间[a, b] =[α3 ,α1];
n 0 1 2 3 4 5 6 7 8 9 10 11
144
12
233
13
377
14
610
15
987
16
1597
17
2584
18
4181
19
6765
20
10946Leabharlann Baidu
Fn
1
1
2
3 5
8
13
21
34
55
89
由于该法需要存储斐波纳期数列,计算速度与 0.618法相比,没有本质的提高,故在生产中的应用已 经较少。
若 f2≤f3,如下图所示, 则找到了相继3试点α1 、 α2 、 α3的函数值按“大-小-大” 变化,故有 搜索区间[a, b],a=min[α1 , α3]; b= max[α1 , α3]。 f ( )
f (1 ) f ( 2 )
f (3 )
o
1
2
3
8
若 f3 <f2 ,如下图所示, 表明在α1 , α3 之间没有最小值。 作代换: α1 =α2 , f1=f2; α2 =α3 , f2 = f3。 继续计算 α3 (即步骤3) );如此重复该过程,总能找到相继3试点 的函数值符合“大-小-大” 变化的要求。左端点为a, 右端点为b,从而找到了搜索区间[a, b]。
29
平分法的迭代计算步骤
给 定ak , bk , 1 , 2 1) 计 算 k ak bk , 若 bk ak 1, 则 停 止 迭 代 , 2 并 取 * k , 否 则 转 下 一 步 ;
2) 计算f ' ( k ), 若f ' ( k ) 0或f ' ( k ) 2 , 则停止迭代 , 并取 * k;否则, ak 若f ' ( k ) 0, 则取 k,bk 为缩短后的搜索区间 1 , bk 1 ,
(2)若f1 ≤ f2 ,如图3.5(b) 所示,极小点必在[a,α2] 内, 消去区间[α2 ,b] ,令b=α2, 产生新区间[a ,b] ,至此,区 间收缩了一次。 同样,新区间α2点与原区 间α1点重合,令α2= α1,
f2= f1。
当缩短的新区间长度小于等于某一精度ε,即 b-a ≤ ε时,取α*为近似极小点。 α*=( b+a )/2
图3.5
20
比较f1 与f2的大小,有以下两种可能:
(1)若f1 > f2 ,如图3.5(a)所示,极小点必在[α1 ,b] 内, 消去区间[a,α1] ,令a=α1,产生新区间[a ,b] 。至此, 区间收缩了一次。
注意:
新区间的α1点与原区 间的点α2重合,可令α1 =α2, f1=f2, 这样可少 找一个新点和节省一次 函数值计算。 图3.5 黄金分割法区间收缩
10
进退法确定搜索区间的步骤:
2. 方法二 (1) 给定初始点α0和初始步长h0; (2) 令α1 =α0, h=h0, α2 =α1+h, 得: 两试点α1 ,α2 ,计算 f1 =f(α1), f2 =f(α2); (3) 比较 f1 和 f2 ,存在以下两种情况:
1) 若f1 > f2 ,如图3.3(a)、(b)所示, 则作 前进运算。取第3个试点α3 =α2+h, 计算函数值 f3=f(α3), 并比较f2 和 f3:
6 0.077
0.083 11 0.0069 0.0081
28
3.3.3 平分法
基本原理
取具有极小点的单峰函数的搜索区间[a, b]的坐 ab 标中点 2 作为计算点,计算目标函数在该点 处的导数 f ' ; 利用函数在极小点处的导数为零,而在其左侧 为负、右侧为正的原理,来判断极小点所在的那 一半搜索区间,以消掉另一半区间。 这样逐次迭代下去,总能将搜索区间收敛到 一个局部极小点附近,求得极小点的近似解。 特点:其收敛速度虽慢,但缩短率也达到0.5, 特别是每次迭代计算量较少,可靠性较好,故其 仍然是一个受欢迎的方法。
第3章 一维搜索方法 3. 1 引言
一维无约束优化问题:
min F ( )
求解一维目标函数 f ( ) 的极小点和极小值的数值 迭代方法即为一维搜索方法。
一维优化方法是优化方法中最基本的方法。该类 方法不仅用来解决一维目标函数的求优问题,而且更 常用于多维优化问题中在既定方向上寻求最优步长的 一维搜索。
图3.3 进退法
16
若 f2 >f3,如图3.3(d)所示, 则将步长加倍,继续作后 退运算,即令h=2h, α1 =α2, α2 =α3, α3 =α2+h。 继续比较f2 与 f3,直至找到相继3试点的函数值按“大 -小-大” 变化为止。相应的区间为 [α3 ,α1] 。
图3.3 进退法
17
o
f (1 ) f ( 2 )
1 2
6
2) 若f1≤ f2 ,如下图所示, 则作后退计算。 令 h=-h, 将α1、 f1与α2、 f2对调,转入第3)步。
f ( )
f ( 2 ) f (1 )
o
1 2
7
3)计算第3个试点α3 =α2+h, 计算函数值f3=f(α3), 并 比较f2 和 f3 ,有如下两种情况 :
22
黄金分割法的区间收缩率λ
即每次缩小所得的新区间长度与缩小前区间长度之比。 为加快区间收缩应保证区间收缩率不变,即在搜索区间 [a, b]内对称取计算点α1 , α2 。 区间收缩率λ的推导: 设初始区间长度为L, 则第一次 和第二次收缩得到的新区间长度 分别为: λ L 和 (1-λ) L 。
进退法的 程序框图
图3.4
18
例 : 试用进退法确定下列函 数 f ( ) 7 10
2
的最优解所在区间。设 初始点
0 0, 初始步长h 1。
19
3. 3 一维搜索的区间消去法
3. 3.1 黄金分割法(0.618法)
基本原理
黄金分割法是通过不断缩短搜索 区间的长度来寻求一维函数f(α) 的极小点,其基本原理如下: 在搜索区间[a, b]内按如下规 则对称地取两点α1 ,α2,并计算 它们的函数值f1 =f(α1), f2 = f(α2)。
此处介绍的均为一维的无约束优化方法。
3
本节的假设:
函数在区间[a,b]上是凸函数,且连续。 于是在区间[a,b]上有唯一的极小值;如图3.2所示, 在区间[α 1, α 3]上,函数值满足高-低-高(或大-小-大) 的特征。 在极小点的左边函数值应一直下降;而在极小 点的右边函数值应严格上升。
F(α) F(α1) F(α 2)
f ( )
f (1 ) f ( 2 )
f (3 )
o 3 1 2
9
进退法的程 序框图1
Y
输入初始自变量和步长值α1,h 计算f(α1), α2= α1+h,和f(α2)
f(α1) ≤ f(α2)?
N
h=-h, α1 与α2 ,f(α1)与 f(α2)互换, α3= α2+h, 计算f(α3)
☼
1
☼一维优化一般可分为两大步骤: 确定初始搜索区间[a,b]; 该区间应为包含一维优化目标函数的极小点在内的单 峰区间。 在搜索区间[a,b]内寻找极小点。
优化算法的基本迭代公式:
X k 1 X k k S k , k 0, 1, 2,
当迭代初始点 X k 及搜索方向S k 确定后,迭代所得的新点 X k 1 取 决于步长 k ,不同的 k 会得 到不同的目标函数值 f ( X k 1 ) 。
n 1
1 / Fn
1.17
也就是说,当n→∞时黄金分割法的总缩短率的 值比Fibonacci法的总缩短率的值大1.17倍,故其 效果虽然稍差些,但计算简便也是很好的。
27
当n=2…11时,两种方法总缩短率的比较:
黄金分割法与Fibonacci法的缩短率 2 3 4 5 计算点数n 0.33 0.2 0.125 Fibonacci法 0.5 0.23 0.14 黄金分割法 0.618 0.38 7 8 9 10 计算点数n Fibonacci法 0.048 0.029 0.018 0.010 黄金分割法 0.054 0.034 0.021 0.013
并转 ; 1) ak 若f ' ( k ) 0, 则取ak, k 为缩短后的搜索区间 1 , bk 1 ,
0
F(α 3)
α1
α2
图3.2
α3
α
4
3.2 确定最优解所在区间的进退法
进退法的基本思路
f(α)
f(α *)
0
由单峰函数性质可知,在极 小点左边函数值应严格下降, * 而在极小点 右边函数值应 严格上升。
α
α*
从某一给定的初始点 0 出发,以初始步长h0沿着目标 函数值的下降方向,逐步前进(或后退),直至找到相继 的3个试点的函数值按“大-小-大”变化为止。
图3.1
2
在多维优化问题中,一维优化的目的是:在既定的X k 和 S k 下寻求最优步长 k ,使迭代产生的新点 X k 1 的函数值为最小,即:
min F ( X k k S k )
常用的一维搜索方法
试探法 黄金分割法 fibonacci方法 平分法 格点法
插值类方法 牛顿法 抛物线法(二次插值法)
25
3.3.2 斐波纳期Fibonacci方法
除去黄金分割法外,在生产上,还常使用一些其他 区间消去的搜索方法,如:斐波纳期Fibonacci法。 该方法是构造一个数列,f0=1, f1=1, fn=fn-1+fn-2,按 照下列条件,构造搜索点: X1=a+fn-2(b-a)/ fn, X2=a+fn-1(b-a)/ fn, 各搜索点同样 可满足上述区间消去要求。
根据收缩率相等的原则,可得: λ L : L= (1-λ) L : λ L 该方程的正根为:
5 1 0.618 2
23
黄金分割法程序框图
图3.6
24
特点: 黄金分割法程序结构简单,容易理解,可 靠性好。但计算效率偏低,适用于低维优化 的一维搜索。
例3 1 用 黄 金 分 割 法 求 ) 2 7 10的 最 优 解 。 : f( 设 初 始 点 0 0, 初 始 步 长 1 取 迭 代 精 度 0.35。 h ,
11
(a)
(b) 图3.3 进退法
12
若 f2 ≤f3,如图3.3 (a)所示, 则找到 了相继3试点α1 、α2 、 α3的函数值按“大- 小-大” 变化,故 有搜索区间[a, b]=[α1 , α3];
图3.3 进退法
13
若 f2 >f3,如图3.3(b)所示, 则将步长加倍,即令 h=2h, α1 =α2, α2 =α3, α3 =α2+h。 如此重复该过程,总能找到相继3试点的函数值符合 “大-小-大” 变化的要求。左端点为a, 右端点为b, 从而找到了搜索区间[a, b]。
h=2h, α3= α2+h, 计算f(α3)
Y
f(α2) ≤ f(α3)?
N
作代换 α1 =α2 , α2 =α3 , f(α1)= f(α2) , f(α2)= f(α3) , α3= α2+h, 计算f(α3)
α1 ,α3 满足高-低-高,得区间[a,b]
a=min( α1 ,α3 ), b=max ( α1 ,α3 ) 结束
26
黄金分割法与Fibonacci方法比较
当计算点总数n→∞时,Fibonacci分数Fn-1/Fn(即 缩短率)的极限就是λ=0.6180339887418948…。实际 上当n≥8,即有Fn-1/Fn=0.618。 用n个计算点计算时或经过n-1次迭代后,黄金分割 法的总缩短率为λn-1,当n→∞时此两者之比为:
5
进退法确定搜索区间的步骤:
1. 方法一[1] (1) 给定初始点α0和初始步长h0; (2) 令α1 =α0, h=h0, α2 =α1+h, 得: 两试点α1 ,α2 ,计算 f1 =f(α1), f2 =f(α2);
f ( )
(3) 比较 f1 和 f2 ,存在以下两种情况:
1) 若f1 > f2 ,如右图所示, 取h=2h, 作前进运算。
图3.3 进退法
14
2) 若f2≥ f1 ,如图3.3(c)、(d)所示, 则作后退计算。 令h=-h, 将α1、 f1与α2、 f2对调,并取第3个试点α3 =α2+h, 计算函数值f3=f(α3), 比较对调后的f2 与 f3:
图3.3 进退法
15
若 f2 ≤f3,如图3.3(c)所示, 则搜索区间[a, b] =[α3 ,α1];
n 0 1 2 3 4 5 6 7 8 9 10 11
144
12
233
13
377
14
610
15
987
16
1597
17
2584
18
4181
19
6765
20
10946Leabharlann Baidu
Fn
1
1
2
3 5
8
13
21
34
55
89
由于该法需要存储斐波纳期数列,计算速度与 0.618法相比,没有本质的提高,故在生产中的应用已 经较少。
若 f2≤f3,如下图所示, 则找到了相继3试点α1 、 α2 、 α3的函数值按“大-小-大” 变化,故有 搜索区间[a, b],a=min[α1 , α3]; b= max[α1 , α3]。 f ( )
f (1 ) f ( 2 )
f (3 )
o
1
2
3
8
若 f3 <f2 ,如下图所示, 表明在α1 , α3 之间没有最小值。 作代换: α1 =α2 , f1=f2; α2 =α3 , f2 = f3。 继续计算 α3 (即步骤3) );如此重复该过程,总能找到相继3试点 的函数值符合“大-小-大” 变化的要求。左端点为a, 右端点为b,从而找到了搜索区间[a, b]。
29
平分法的迭代计算步骤
给 定ak , bk , 1 , 2 1) 计 算 k ak bk , 若 bk ak 1, 则 停 止 迭 代 , 2 并 取 * k , 否 则 转 下 一 步 ;
2) 计算f ' ( k ), 若f ' ( k ) 0或f ' ( k ) 2 , 则停止迭代 , 并取 * k;否则, ak 若f ' ( k ) 0, 则取 k,bk 为缩短后的搜索区间 1 , bk 1 ,