第3章 一维最优化
一维优化方法总结

一维优化方法总结第三章:一维优化方法总结1.一维优化方法介绍求解以为目标函数f (x )最优解的过程,称为一维优化,所使用的方法称为一维优化方法。
一维优化方法是优化方法中最简单、最基本的优化方法。
他不仅用来解决一维目标函数的求最优问题,而且常用于多维优化问题在既定方向上寻求最优步长的一维搜索。
对于任一次迭代计算,总是希望从已知的点()k x 出发,沿给定的方向()k s 搜索该方向上到目标函数值最小的点(1)k +x 。
这种在确定的搜索方向()k s 上按步长因子()k α迭代使得目标函数在该方向上达到极小值的过程称为一维搜索优化计算方法。
一维搜索最优化方法一般需要分两步进行:第一步是在()k s 方向上确定使得目标函数值取得最小值的步长因子()k α所在的区间;第二步是采用不同方法利用步长因子()k α求得近似解。
2.搜索区间的确定及matlab 编程所谓搜索区间就是沿给定的搜索方向()k s 上找出一个单峰区间12[,]αα,即在该区间内目标函数值的变化只有一个峰值。
本文选用进退法进行区间确定。
这里直接以一维函数为例。
设函数为()y f x =,给定初始点1x ,选定恰当的步长为0h ,求其最小点*x 。
进退法分为三步:试探搜索、前进搜索和后退搜索。
第一步:试探搜索由于最小点*x 的位置是未知的,所以首先要试探最小点*x 位于初始点1x 的左方还是右方,然后再确定包含*x 在内的搜索区间[,]a b 。
由初始点1x 沿Ox 轴正向到2x 点,210x x h =+,分别计算两点的函数值11()y f x =,22()y f x =并比较1y 和2y 值的大小,可分为两种情况:(1)若21y y <,则极小点必在点右方,应继续前进搜索;(2)若21y y >,则极小点必在1x 点左方,应反向,即作后退搜索。
第二步:前进搜索由探索后的2x 点,沿Ox 正向继续前进搜索。
令02h h =,取得前进方向的第三个点32x x h =+,对应的函数值33()y f x =,比较后两个点的函数值,有如下两种情况:(1)若23y y <,则三个点123x x x 、、的函数值的关系为123y y y ><。
机械优化设计_第三章一维搜索方法

第三章
一维搜索方法
一、一维搜索的概念 二、搜索区间的确定与区间消去法原理 三、一维搜索的试探方法——黄金分割法 一维搜索的试探方法——黄金分割法 —— 四、一维搜索的插值方法
机械优化设计 一、一维搜索的概念
当采用数学规划法寻求多元函数的极值点时, 当采用数学规划法寻求多元函数的极值点时,一般要进行 一系列如下格式的迭代计算: 一系列如下格式的迭代计算:
X k +1 = X k + α k d k ( k = 0,1, 2 ⋅⋅⋅)
给定, 当方向 d k 给定,求最佳步长 α k 就是求一元函数
f ( x k +1 ) = f ( x k + α k d k ) = ϕ (α k )
的极值问题。这一过程被称为一维搜索。 的极值问题。这一过程被称为一维搜索。 一维搜索
机械优化设计
三、一维搜索的试探方法——黄金分割法 一维搜索的试探方法——黄金分割法 ——
1、前提 函数在区间 [ a, b] 上是单谷函数。 上是单谷函数。 2、点的插入原则 (1)要求插入点 α1 , α 2 的位置相对于区间[ a , b ] 两端点具有对称性。 两端点具有对称性。 α1 = b − λ (b − a) α 2 = a + λ (b − a ) (2)要求保留下来的区间内再插入一点所形成 的新三段具有相同的比例分布。 的新三段具有相同的比例分布。
可得初始搜索区间
[a ,
b ] = [0 . 3,
1 . 5 ].
机械优化设计
例题2.用外推法确定函数f ( x) = 3x 3 − 8 x + 9的一维优化初始区间, 给定 初始点x1 = 1.8, 初始进退距h0 = 0.1.
一维最优化-文档资料

2 a ( b a ) k k k
2 如果令 1 , 则 u , 因此 u 不必重新 。 k 1 k k 1
5 1 1 0 . 618 2 ( 2 ) 若在第 k 次迭代时有 f ( ) f ( u ) 。 同理可得。 k k
k 1
1 . 若 f ( ) f ( ) , 则令 a ,b 2 . 若 f ( ) f ( ) , 则令 a a ,b
k
k 1
b k;
k.
k
k
k 1
k
k 1
如何确定 ? k与 k
要求其满足以下两个条 件:
1 .b a k k k k
d [ a , b ] , 则有 上的极小点。任取点 c
( c ) f ( d ),则 (1)如果 f
x [c,b ];
( c ) f ( d ) , 则 (2)如果 f
x[a,d]。
. a c x
.
.
.
d
.
b
2. 黄金分割法 思想 通过选取试探点使包含极小点的区间不断缩短, 直到区间长度小到一定程度,此时区间上各点的函数 值均接近极小值。 下面推导黄金分割法的计算公式。
极值点的必要条件:
f' (x ) 0
二. 黄金分割法(0.618法)
1. 单峰函数 定义:设 f ( x) 是区间 [ a , b ] 上的一元函数,x 是 f ( x) 在 [ a , b ] 上的极小点,且对任意的 x , x [ a , b ] , x x ,有 1 2 1 2
( x ) f ( x ) ; (a)当 x2 x 时,f 1 2
3第三章一维优化方法new

1 = b (b - a)
计算其函数值。
2 = a + (b - a)
y1 = f(1) y2 = f(2) 1)若y1<y2则极小点必在区间[a,2]内, 令b =2,新区间为[a,2] 2)若y1≥y2则极小点必在区间[1,b]内, 令a = 1,新区间为[1,b]
经过函数值比较,区间缩短一次。
三、一维搜索方法的分类
分为两类:
一类称做试探法, 按某种给定的规律来确定区间 内插入点的位置, 如黄金分割法等;
一类称为插值法或函数逼近法,这类方法是根据某 些点处的某些信息, 如函数值、一阶导数、二阶导 数等, 构造一个插值函数来逼近原来函数, 用插值 函数的极小点作为区间的极小点, 如二次插值法, 三次插值法等。
3.3 一维搜索的试探方法
黄金分割法适用于[a,b]区间上的任何单峰函数求极小值问题。对函数
除要求单峰外不作其它要求,甚至可以不连续。因此,这种方法的适应
面相当广。黄金分割法也是建立在区间消去法原理基础上的试探方法。
一、黄金分割法的原理
在搜索区间[a, b]内适当插入两点1,2 ,1<2,且在区间内对称位置,
寻求最优步长 (k) 的方法称一维搜索法。求多元函数极值点,
需要进行一系列的一维搜索。
可利用一元函数的极值条件’(*)=0求*。把f (xk +
kdk
)进行泰勒展开并取二阶项,即
f x d f x d Tf x 1 d
T
Gd
2
f x d Tf x 是,计算
p*点的函数值yp*,比较yp*与y2,取其 中较小者所对应的点作为新的2,以 此点的左右两邻点作为新的1和3, 得到缩短后的新区间[1,3],如图
最优化方法 第三章第二讲 一维搜索

第三次迭代
令 x1 0.538, f1 1.751,取 F3 x2 0.077 (1.462 0.077) 0.846, F4 f 2 1.870。
因为 f 1 f 2 ,所以新区间为 0.077,0.846。
第四次迭代
令 x 2 0.538, f 2 1.751,取 F1 x1 0.077 (0.846 0.077) 0.231, F3 则 f 1 1.822。
设其最优解为 k ,得到 xk 1 xk k pk ,
一维搜索是求解一元函数 ( ) 的最优化问题(也叫 一维最优化问题) ,仍表示为 min f ( x ) 或 min f ( x )。 1
xR
a xb
定义:若在 a, b内 f ( x )有唯一极小点 x* ,在 x* 的左边 f ( x )严格下降,在 x* 的右边 f ( x )严格上升, 则称 f ( x )在区间 a, b上是下单峰函数。
step 6 令 k k 1,若 k n 2,则转 step 5; 若 k n 2,则转 step 7。
step 7 若 f1 f 2 , 则令 b x2 ,x2 x1 ,f 2 f1 , 转 step 8; 若 f1 f 2 ,则令 a x1,转 step 8。 step 8 令 x1 x2 0.1(b a ) , f1 f ( x1 ) 1 * 若 f1 f 2 ,则 x (a x2 ), 2 1 * 若 f1 f 2 ,则 x ( x1 x2 ), 2 1 * 若 f1 f 2 ,则 x ( x1 b ) 。 2
ab step 3 若 b a ,则 x ,停。否则转 step 4。 2
机械优化设计第三章一维搜索方法

(b a),故
Fn
b
a 。由Fn即可从斐波那契数列表或按F0
F1
1, Fn
Fn1
Fn2 (n
2, 3,
)
推算出相应的n。
3)确定试点并计算相应的函数值,在区间a, b内的两个试点:
x2
a
Fn1 Fn
(b
a),
x1
b
Fn1 Fn
(b
a),
f1 f (x1),
f2 f (x2 )
第三章 一维搜索方法
1.若f (a1) f (b1),则取[a,b1]为缩短后的搜索区间; 2.若f (a1) f (b1),则取[a1,b]为缩短后的搜索区间。
第三章 一维搜索方法
第二节 搜索区间的确定与区间消去法原理
间 接
假定在搜索区间[a, b]内取一点x, 并计算它的导数值 f '(x),可能出现三种情况:
x2 a b x1, f2 f (x2 )
5)检查迭代终止条件:bn1 an1
,若满足,则输出最优解x*
1 (a b), 2
ห้องสมุดไป่ตู้
f*
f (x*),
若不满足,则转入(4),继续进行迭代。
1. f (a1) f (b1),由于函数的单峰性, 极小点一定在[a, b1 ]内; 2. f (a1) f (b1),极小点一定在[a1,b]内; 3. f (a1) f (b1),极小点一定在[a1,b1]内。
第三章 一维搜索方法
第二节 搜索区间的确定与区间消去法原理
直 接 法
假定在搜索区间[a,b]内任取两点a1和b1,且a1 b1, 并计算f (a1)和f (b1),可能出现三种情况:
f (x1) f (x) f (x2)
第三章一维优化方法

p( x )
f ( x)
P3 P2
x
*( k 1) P
*(1) fP
k) x* x*( P
a x1
x2 x1
x *(1) P x2
x3 b x3
25
26
在流程图中有两个判别框的内容需稍加说明。其一是c2=0?若成 立,即:
或写作
这说明三个插值结点P1(x1,f1)、P2(x2,f2)、P3(x3,f3)在同一条直 线上;其二是 * * ( xP -x1)(x3- xP )≤0? (3.14) * 若成立,则说明 xP 落在区间[x1,x3]之外。
x2 x * p
f 2 f p*
x2 x
* p
f 2 f p*
x2 x * p
f 2 f p*
23
区间的缩短程序框图
24
三、终止准则
x , x , ..., x
x
*( k ) P
P 1
*(1) P
*(2) P
*( k 1) P
, x , ... x
*( k ) P
*
9
3.2 一维搜索的最优化方法
3.2.1 格点法
在区间[a,b]的内部取n个 内等分点: x1,x2,…,xn 区间[a,b]被分成(n+1)等 分,各分点的坐标为:
xk a ba k n 1
f ( x)
逐渐缩小搜索区间
新区间
k 1,2,..., n
o a x1 x2
ym 1 ym
2 2 2 2 ( x2 x3 ) f1 ( x3 x12 ) f 2 ( x12 x2 ) f3 B ( x1 x2 )( x2 x3 )( x3 x1 )
工程优化 第三章 一维搜索

例
经 6 次迭代达到
b7 a7 0.111 0.16 满足精度要求,极小点 x [0.168,0.279] . 0.168 0.279 x 0.23 * 2 实际上,最优解 x 0.25 .可取 作为近似最
优解.
第四节 对分法(二分法) 对分法适用对象:单峰函数、连续可导 优点:每迭代一次可去掉区间的二分之一。 如果找到一个区间 [a, b] ,具有性质 (a) 0, (b) 0 ,则在 a, b 之
* * ( x ) 0. ( x ) 间必有 的极小点 x ,且
算法步骤: 已知 a, b 且 a b , (a) 0, (b) 0 及 0 . 1)
c ab 2 ,转 2);
2)若 b a ,转 4);否则,转 3);
3 )计算 (c) . 若 (c) 0 ,转 4 ) ;若 (c) 0 ,则令 a c ,转 1) ;若 (c) 0 ,则令 b c ,转 1) ; * t 4)令 c ,停止迭代. 4 3 2 ( x ) 3 x 16 x 30 x 24 x 8 ,求 ( x) 的极小点. 例 设
第三章 常用一维搜索方法
第一节 一维搜索概述 一、下降迭代算法的基本思想 不失一般性,考虑如下的优化问题
min f ( x)
xS
n f : S R R. 其中
(3.1)
1 x 下降迭代算法的基本思想:给定一个初始点 S ,按照
k k { x } { x 某种迭代规则产生一个点列 ,使得当 } 是有限点列时, k { x 其最后一个点是最优化问题的最优解;当 } 是无穷点列时,
* [ a , b ] ( x ) x 设 在 上是单峰函数,最小点为 .在 (a, b) 内任取
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一维最优化问题: 一维最优化问题:
min s .t .
f ( x) x∈ R
极值点的必要条件: 极值点的必要条件:
f '( x ) = 0
二、 确定搜索区间的方法— 进退法
实际问题 数学模型 数值计算方法
程序设计
上机计算求出结果
数值解法: 数值解法:利用计算机通过反复迭代计 求得实际问题的近似值。 算,求得实际问题的近似值。
[a, b]称为ϕ ( x)的单谷区间。
显然此时x ∗为ϕ ( x)在[a, b]上唯一的极小点。
☺问题:凸函数是不是单谷函数?严格凸函数是 问题:凸函数是不是单谷函数? 不是单谷函数?单谷函数是不是凸函数? 不是单谷函数?单谷函数是不是凸函数?
搜索法求解: 搜索法求解: min ϕ (t)
t≥ 0
否
b − x1 ≤ ε
停止,输出 停止,输出x2 是
是
否
停止,输出 停止,输出x1 以[a,x2]为新的搜索区间 为新的搜索区间
三、黄金分割法
f ( a ) = a 2 − 7a + 10 的初始区间, 的初始区间, 例1:用黄金分割法求
设初始点 。= 1 a,初始步长 h 0 = 0 用进退法确定初始区间: 解:用进退法确定初始区间:
ϕ ( x1 )
x1 x2
3
x
2) 第二轮: 第二轮: x2=1.146, x1=0.708
ϕ
ϕ ( x1 ) = −0.0611 ϕ ( x2 ) = 0.2131
x2-0=1.146>0.5 3) 第三轮: 第三轮: x1=0.438, x2=0.708 0
x1 x2
1.854
x
ϕ
ϕ ( x2 ) = −0.0611 ϕ ( x1 ) = 0.2082
min
t≥ 0
(k)
ϕ (t)
或
0 ≤ t ≤ t max
min
ϕ (t)
t为实数 为实数
一般一维搜索问题
有效一维搜索问题
二、 确定搜索区间的方 法—进退法
一维搜索问题的算法分类: 一维搜索问题的算法分类: 精确一维搜索(最优一维搜索) 1)精确一维搜索(最优一维搜索) 非精确一维搜索(可接受一维搜索) 2)非精确一维搜索(可接受一维搜索) 1、进退法确定搜索区间的方法 、 在函数的任一单谷区间上必存在一个极小点 极小点, 在函数的任一单谷区间上必存在一个极小点, 而且在极小点的左侧 函数呈下降趋势 左侧, 下降趋势, 而且在极小点的左侧,函数呈下降趋势,在极小 右侧函数呈上升趋势。 点的右侧函数呈上升趋势 点的右侧函数呈上升趋势。 若已知方向S 上的三点x 若已知方向 (k)上的三点 1<x2<x3及其函数 、 和 , 值f(x1)、f(x2)和f(x3),便可通过比较三个函数值的 大小估计出极小点所在的位置,如图5.11所示。 所示。 大小估计出极小点所在的位置,如图 所示
5 −1 缩短比例 ω = ≈ 0.618 2
0.618法 法
0.618法解题步骤: 法解题步骤: 法解题步骤 确定[a,b],计算探索点 计算探索点 确定 x1=a+0.382(b-a) x2=a+0.618(b-a)
ϕ ( x1 ) ≤ ϕ ( x2 )
否 是
x2 − a ≤ ε
以[x1,b]为新的搜索区间 为新的搜索区间
)
(x1 − x2 )(x2 − x3 )(x3 − x1 )
(
)
(
)
a2
(x1 − x 2 ) f (x 3 ) + (x 2 − x 3 ) f (x1 ) + (x 3 − x1 ) f (x 2 ) =− (x1 − x 2 )(x 2 − x 3 )(x 3 − x1 )
a1 xp = − 2a2
假定:已经确定了单谷区间 假定:已经确定了单谷区间[a,b]
min
x≥ 0
ϕ
max
(x )
ϕ
0≤ x≤ x
min
(x )
ϕ ( x2 ) ϕ ( x1 )
a ≤ x≤ b
min
ϕ (x)
ϕ ( x2 )
ϕ ( x1 )
a
x∗
x1 x2
b a
x1 x2
x∗
b
新搜索区间为[a,x2] 新搜索区间为
新搜索区间为[x 新搜索区间为 1,b]
例2: : 求解
min ϕ ( x ) = x 3 − 2 x + 1
x≥0
其中单谷区间 [ 0 ,3 ], 精度 0 . 5
解: 1) 第一轮: 第一轮: x1=1.146, x2=1.854
ϕ
ϕ ( x2 )
ϕ ( x1 ) = 0.2131, ϕ ( x2 ) = 3.6648
x2-0>0.5 0
设二次插值多项式: 设二次插值多项式: f(x) =a0+a1x +a2x2 f(x1) = a0+a1x1 +a2x12 f(x2 )= a0 +a1x2 +a2x22 f(x3) = a0 +a1x3 +a2x32 解得 1 a2 解得a
a1
四、二次插值法
(x =
2
1
2 2 − x 2 f ( x3 ) + x 2 − x 3 f ( x1 ) + x 3 − x12 f ( x2 ) 2 2
区间缩小比例的确定: 区间缩小比例的确定:
ϕ ( x2 ) ϕ ( x1 ) ϕ ( x1 ) ϕ ( x2 )
a
x1 x2
b a
x1 x2
b
区间缩短比例为(x 区间缩短比例为 2-a)/(b-a) 缩短比例 满足: 满足:
缩短比例为(b-x1)/(b-a) 缩短比例为
☺每次插入搜索点使得两个区间[a,x2]和[x1,b]相等; 每次插入搜索点使得两个区间 和 相等; 相等 ☺每次迭代都以相等的比例缩小区间。 每次迭代都以相等的比例缩小区间。
a1 = a0 = 0, f1 = f ( a1 ) = 10
a 2 = a1 + h = 1, f 2 = f ( a 2 ) = 4
比较, 作前进运算: 比较,因 f1 ≥ f 2 作前进运算:
h = 2×h = 2
三、黄金分割法
a3 = a2 + h = 3, f 3 = f ( a3 ) = −3
通常取 P ( x ) − − − 三角函数 或者 多项式函数
→ 三角插值 )
→ 代数插值 ( 或多项式插值
四、二次插值法
1、定义: 定义:
二次插值法又称抛物线法 二次插值法又称抛物线法,它是以目标函数 又称抛物线法, 二次插值函数的极小点作为新的中间插入点 作为新的中间插入点, 的二次插值函数的极小点作为新的中间插入点, 进行区间缩小的一维搜索算法。 进行区间缩小的一维搜索算法。 用f(x)在2 或3 个点的函数值或导数值,构造 在 个点的函数值或导数值, 2 次或 次多项式作为 次或3次多项式作为 次多项式作为f(x)的近似值,以这多项式 的近似值, 的近似值 的极小点为新的迭代点。 的极小点为新的迭代点。 3点2次,2点2次,4点3次,3点3次,2点3次 点 次 点 次 点 次 点 次 点 次 等 次为例: 以3点2次为例: 点 次为例 求出f(x , 取x 1,x 2,x3,求出 1), f(x2), f(x3) ,
因 f 2 ≥ f 3 ,再作前进运算: 再作前进运算:
h = 2×h = 4
故初始搜索区间为: 故初始搜索区间为:
a1 = a2 = 1, f1 = f 2 = 4
a2 = a3 = 3, f 2 = f 3 = −3
a3 = a2 + h = 7 , f 3 = f ( a3 ) = 10
[a,b] = [a1 ,a3 ] = [1,8]
α
x* x1
x2 b
若对任意x 满足: 若对任意 1 ,x2, α≤ x1 < x2 ≤b满足: 满足 1)若x1 ≤ x* ,则φ(x1) > φ(x*); 若 2) 若x2 ≥x* ,则φ(x*) <φ(x2). 则称φ(x)在[α, b] 上强单峰。 强单峰。 则称 在 上述1), 若只有当x 若只有当 1 ≠x* , x2 ≠x* 时,上述 2) 式才 成立,则称φ(x)在[α, b] 上单峰。 单峰。 成立,则称 在
b-x1=1.146-0.438>0.5来自0 x1 x21.416
x
4) 第四轮: 第四轮: x2=0.876, x1=0.708
ϕ
ϕ ( x1 ) = −0.0611 ϕ ( x2 ) = −0.0798
b-x1=1.146-0.708<0.5 0
x1x2
1.416
x
输出:x*=x2=0.876为最优解,最优值为 为最优解, 输出: 为最优解 最优值为-0.0798
或
0 ≤ t ≤ t max
min
ϕ (t)
2、基本过程: 、基本过程: 使得x 称为搜索区间 ☺给出[a,b],使得 *在[a,b]中。[a,b]称为搜索区间。 给出 使得 中 称为搜索区间。 ☺迭代缩短[a,b]的长度。 的长度。 迭代缩短 的长度 的长度小于某个预设的值, ☺当[a,b]的长度小于某个预设的值,或者导数的绝 的长度小于某个预设的值 对值小于某个预设的正数,则迭代终止。 对值小于某个预设的正数,则迭代终止。
xp
1 (x = 2 (x
四、二次插值法
2
1 1
2 2 − x 2 f (x3 ) + x 2 − x 3 f (x1 ) + x 3 − x12 f (x2 ) 2 2
α x1 x* x2 b 强单峰