Skip to content

18.2.4 数值搜索程序

使用非线性优化程序, 通过综合几种类型的优化问题的计算成本, 可以找到能接受的近似解. 它们是基于函数值的比较原理.

18.2.4.1 一维搜索

几种优化方法都含有寻找实函数 f(x)[a,b] 上的极小值这样的子问题. 通常只需找出极小点 x 的近似 x¯ 就够了.

1. 问题的提法

函数 f(x),xR 称作在区间 [a,b] 上是单峰的,是指其在每个闭子区间 J [a,b] 上正好有一个局部极小点. 设 f[a,b] 上的单峰函数,而 x 是其全局极小点. 那么应该找到一个 [c,d][a,b] 使得 x[c,d] ,并且 dc<ε,ε>0 .

2. 一致搜索

选择一正整数 n 使得 δ=ban+1<ε2 ,并计算函数值 f(xk),xk=a+kδ(k= 1,,n) . 如果 f(x) 是这些函数值中的最小值,则极小点 x 就在区间 [xδ,x+δ] 上. 对于给定的精度, 可以估计出所需函数值的数目:

(18.67)n>2(ba)ε1.

3. 黄金分割法、斐波那契法

区间 [a,b]=[a1,b1] 将被逐步缩小使得新的子区间始终包含极小点 x . 按如下方式确定区间 [a1,b1] 中点 λ1,μ1 :

(18.68a)λ1=a1+(1τ)(b1a1),μ1=a1+τ(b1a1),

其中

(18.68b)τ=12(51)0.618.

这对应于黄金分割. 接着我们区分两种情形:

a) 如果 f(λ1)<f(μ1) ,则作替换 a2=a1,b2=μ1μ2=λ1 .(18.69a)

b) 如果 f(λ1)f(μ1) ,则作替换 a2=λ1,b2=b1λ2=μ1 .(18.69b)如果 b2a2ε ,则在区间 [a2,b2] 基础上重复此一程序,这里从第 1 步已经知道了一个值,即在情形 a ) 下是 f(λ2) ,而在情形 b ) 下是 f(μ2) . 为了确定包含极小点的区间 [an,bn] ,需要一起计算 n 个函数值. 根据要求

(18.70)ε>bnan=τn1(b1a1),

就可以估计出必要的步数 n .

使用黄金分割方法, 与斐波那契方法相比, 至多多一个函数值要确定. 在斐波那契法中, 不再是根据黄金分割法细分区间, 而是根据斐波那契数细分区间 (参见第 501 页 5.4.1.5 以及第 1178 页 17.3.2.4, 4.).

18.2.4.2 在 n 维欧几里得向量空间中的极小搜索

问题 f(x)=min!,xR 的极小点的近似搜索可以化成求解一列一维优化问题:

**a) x=x1,k=1 ,其中 x1x 的适当的初始近似.(18.71a)

b) 对于 r=1,,n ,求解一维问题:

(18.71b)φ(αr)=f(x1k+1,,xr1k+1,xrk+αr,xr+1k,,xnk)=min!,αrR.

如果 α¯r 是第 r 个一维问题的精确或近似极小点,则作替换 xrk+1=xrk+α¯r .

c) 如果两个相邻的近似彼此非常接近, 即在某种向量范数下有

(18.71c)xk+1xk<ε1, 或 |f(xk+1)f(xk)|<ε2,

那么 xk+1x 的一近似. 否则的话,由 k+1 代替 k 重复步骤 b). b) 中的一维问题可以利用 18.2.4.1 中给出的方法求解.

version 1.24.0