第3章 一维最优化
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
区间缩小比例的确定: 区间缩小比例的确定:
ϕ ( 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]相等; 每次插入搜索点使得两个区间 和 相等; 相等 ☺每次迭代都以相等的比例缩小区间。 每次迭代都以相等的比例缩小区间。
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]为新的搜索区间 为新的搜索区间
二、 确定搜索区间的方法— 进退法
图5.11 极小点的估计 5.11
二、确定搜索区间的方法—进 退法 2、进退法的定义 、
在某一方向上按一定方式逐次产生一些探测点, 在某一方向上按一定方式逐次产生一些探测点, 并比较这些探测点上函数值的大小, 并比较这些探测点上函数值的大小,就可以找出函 数值呈“ 小 大 变化的三个相邻点, 数值呈“大-小-大”变化的三个相邻点,其中两端 点所确定的闭区间必定包含着极小点, 点所确定的闭区间必定包含着极小点,这样的区间 称为初始区间 记作[a,b]。这种寻找初始区间的方 初始区间, 称为初始区间,记作 。 进退法。 法称为进退法 法称为进退法。
α x1 x* x2 b 强单峰
α
x*
b
单峰
其具体的程序见右图: 其具体的程序见右图:
二、确定搜索区间的方法—进 退法
一维搜索法: 一维搜索法:就是一元函数极小化的数值 迭代算法,其求解过程称一维搜索。 迭代算法,其求解过程称一维搜索。一维搜索法 是构成非线性优化方法的基本算法, 是构成非线性优化方法的基本算法,因为多元函 数的迭代解法可归结为在一系列逐步产生的下降 方向上的一维搜索。 方向上的一维搜索。 一维搜索法一般分两步: 一维搜索法一般分两步: 1)确定初始搜索区间[a, b] 该区间应是包括一 ) , 维函数极小点在内的单峰区间; 维函数极小点在内的单峰区间; [ 内寻找极小点。 2)在搜索区间a, 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
b-x1=1.146-0.438>0.5 0 x1 x2
1.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
三、 黄金分割法
1、定义 黄金分割法:又称0.618 0.618法 黄金分割法:又称0.618法,是一种通过不断缩 小区间得到极小点的一维搜索算法。 小区间得到极小点的一维搜索算法。 单谷函数 如果x ∗ ∈ [a, b], 使得函数ϕ ( x)在[a, x ∗ ]上严格递减,
且在[ x ∗ , b]上严格递增, 称ϕ ( x)为[a, 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
否
b − x1 ≤ ε
停止,输出 停止,输出x2 是
是
否
停止,输出 停止,输出x1 以[a,x2]为新的搜索区间 为新的搜索区间
三、黄金分割法
f ( a ) = a 2 − 7a + 10 的初始区间, 的初始区间, 例1:用黄金分割法求
设初始点 。= 1 a,初始步长 h 0 = 0 用进退法确定初始区间: 解:用进退法确定初始区间:
一维最优化问题: 一维最优化问题:
min s .t .
f ( x) x∈ R
极值点的必要条件: 极值点的必要条件:
f '( x ) = 0
二、 确定搜索区间的方法— 进退法
实际问题 数学模型 数值计算方法
程序设计
上机计算求出结果
数值解法: 数值解法:利用计算机通过反复迭代计 求得实际问题的近似值。 算,求得实际问题的近似值。
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所示。 所示。 大小估计出极小点所在的位置,如图 所示
设二次插值多项式: 设二次插值多项式: 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
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
α
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] 上单峰。 单峰。 成立,则称 在
第3章 章
1. 一维最优化问题 2.进退法黄金分割法 进退法黄金分割法 3.黄金分割法 黄金分割法 4. 抛物线搜索法 5.一维搜索算法比较
一维最优化
一、 一维最优化问题
下降迭代算法中最优步长的确定
f ( x k + λk d k ) = min f ( x k + λd k )
λ
dk
x
k
.
λk
.
或
0 ≤ t ≤ t max
min
ϕ (t)
2、基本过程: 、基本过程: 使得x 称为搜索区间 ☺给出[a,b],使得 *在[a,b]中。[a,b]称为搜索区间。 给出 使得 中 称为搜索区间。 ☺迭代缩短[a,b]的长度。 的长度。 迭代缩短 的长度 的长度小于某个预设的值, ☺当[a,b]的长度小于某个预设的值,或者导数的绝 的长度小于某个预设的值 对值小于某个预设的正数,则迭代终止。 对值小于某个预设的正数,则迭代终止。
四、 二次插值法
1 . 问题提出 : 实际中 y = f ( x ) 存在 , 求知 , 只知离散数据 y i = f ( x i ) ( i = 0 . 1 . 2 ..... n ) 希 望 : 用简单函数 P ( x ) − − 插值函数 近似代替 f ( x ) 被插函数 , 使 f ( x i ) = P ( x i ) − − 插值条件 − − − − − − − − − − − − − − 插值法 x i叫插值结点 , R ( x ) = f ( x ) − P ( x )叫截断误差
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) ,
假定:已经确定了单谷区间 假定:已经确定了单谷区间[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]
ϕ ( 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
因 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]
二、 确定搜索区间的方法— 进退法
下降迭代算法中在搜索方向S 上寻求最优步 长ak时通常采用一维搜索法。 时通常采用一维搜索法。 一维搜索法就是一元函数极小化的数值迭代 一维搜索法 就是一元函数极小化的数值迭代 算法,其求解过程称一维搜索 一维搜索。 算法,其求解过程称一维搜索。 一维搜索问题指目标函数为单变量的非线性 一维搜索问题指目标函数为 单变量的非线性 规划问题。又称线性搜索问题。其模型为: 规划问题。又称线性搜索问题。其模型为:
[a, b]称为ϕ ( x)的单谷区间。
显然此时x ∗为ϕ ( x)在[a, b]上唯一的极小点。
☺问题:凸函数是不是单谷函数?严格凸函数是 问题:凸函数是不是单谷函数? 不是单谷函数?单谷函数是不是凸函数? 不是单谷函数?单谷函数是不是凸函数?
搜索法求解: 搜索法求解: min ϕ (t)
t≥ 0