数值最优化—优化问题的解(一)

一、太长不看版

1、(定义)优化问题的解是寻找一个向量 x ∗ x^* x 使得函数 f ( x ) f(x) f(x)对任意定义域内的向量 x x x 都有 f ( x ∗ ) ≤ f ( x ) f(x^*)\leq f(x) f(x)f(x)
2、(定义)局部最小值点:在 x ∗ x^* x的定义域的邻域内对向量 x 都有 f ( x ∗ ) ≤ f ( x ) f(x^*)\leq f(x) f(x)f(x)
3、(定义)严格局部最小值点:在 x ∗ x^* x的定义域的邻域内对向量 x ≠ x ∗ x\neq x^* x=x 都有 f ( x ∗ ) < f ( x ) f(x^*)< f(x) f(x)<f(x)
4、如果函数 f ( x ) f(x) f(x) 是凸函数,那么 f ( x ) f(x) f(x) 的任何一个局部最小值点都是 f ( x ) f(x) f(x) 在定义域内的最小值。
5、如果函数 f ( x ) f(x) f(x) 是凸函数,且 f ( x ) f(x) f(x)可微,那么 f ( x ) f(x) f(x)的任何一个不动点都是 f ( x ) f(x) f(x) 在定义域内的最小值。
6、局部最小值点一阶必要条件: ∇ f ( x ∗ ) = 0 \nabla f(x^*)=0 f(x)=0
7、局部最小值点二阶必要条件: ∇ f ( x ∗ ) = 0 \nabla f(x^*)=0 f(x)=0 ∇ 2 f ( x ∗ ) \nabla^2 f(x^*) 2f(x) 正定。
8、局部最小值点二阶充分条件: ∇ 2 f ( x ) 在 x ∗ \nabla^2 f(x) 在x^* 2f(x)x的开邻域内连续, ∇ f ( x ∗ ) = 0 \nabla f(x^*)=0 f(x)=0并且 ∇ 2 f ( x ∗ ) \nabla^2 f(x^*) 2f(x) 正定,那么 x ∗ x^* x f ( x ) f(x) f(x) 的严格局部最小值点。

二、详细推导

第一部分给出的1、2、3均为定义,所以我们从4开始证明。
Proof 4
反证法
如果在满足4的条件下 $x^* $ 不是全局最小值,那么我们假设真实的全局最小值为 z z z 。那么一定有 f ( z ) < f ( x ∗ ) f(z)<f(x^*) f(z)<f(x)
(在定义1中我们定义全局最小值用的是小于等于号,是因为可能有多个向量 x ∗ x^* x使得 f ( x ∗ ) = m i n f ( x ) f(x^*)=min f(x) f(x)=minf(x)。但是这里我们已经假设 x ∗ x^* x 不是全局最小值了,那么一定有 f ( x ∗ ) > m i n f ( x ) f(x^*)> min f(x) f(x)>minf(x) 所以这里取小于号。)
假设 定义域上的点 x x x ,位于 x ∗ x^* x z z z 之间的连线上,那么我们可以得到:
x = λ z + ( 1 − λ ) x ∗ x = \lambda z + (1-\lambda)x^* x=λz+(1λ)x for some λ ∈ ( 0 , 1 ] \lambda \in (0,1] λ(0,1] (1)
那么根据 f ( x ) f(x) f(x) 的凸性,可以得到:
f ( x ) = f ( λ z + ( 1 − λ ) x ∗ ) ≤ λ f ( z ) + ( 1 − λ ) f ( x ∗ ) < f ( x ∗ ) f(x) = f(\lambda z + (1-\lambda)x^*) \le \lambda f(z )+(1-\lambda)f(x^*)<f(x^*) f(x)=f(λz+(1λ)x)λf(z)+(1λ)f(x)<f(x) (2)
其中第一个等式由方程(1)获得,第一个不等式由函数的凸性获得,第二个不等式由:
λ f ( z ) < λ f ( x ∗ ) \lambda f(z)<\lambda f(x^*) λf(z)<λf(x) 所以 λ f ( z ) + ( 1 − λ ) f ( x ) < λ f ( x ) + ( 1 − λ ) f ( x ) = f ( x ) \lambda f(z)+(1-\lambda)f(x) < \lambda f(x) +(1-\lambda)f(x) = f(x) λf(z)+(1λ)f(x)<λf(x)+(1λ)f(x)=f(x) 获得。
回溯方程(2),我们可以得到 f ( x ) < f ( x ∗ ) f(x) <f(x^*) f(x)<f(x) ,对任意 x = λ z + ( 1 − λ ) x ∗ x = \lambda z + (1-\lambda)x^* x=λz+(1λ)x 成立。且 lim ⁡ λ → 0 x = x ∗ \lim_{\lambda \rightarrow 0} x=x^* limλ0x=x 。那么也就是说,在 x ∗ x^* x 的邻域内, x ∗ x^* x不是局部最小值点。
与假设相反,所以原结论正确
Q.E.D
Proof 5
反证法
(假设与 z 的定义与上述中一样)
利用凸性我们可以得到:
∇ f ( x ∗ ) T ( z − x ∗ ) = d d λ f ( x ∗ + λ ( z − x ∗ ) ) ∣ λ = 0 = lim ⁡ λ → 0 f ( x ∗ + λ ( z − x ∗ ) ) − f ( x ∗ ) λ ≤ lim ⁡ λ → 0 λ f ( z ) + ( 1 − λ ) f ( x ∗ ) − f ( x ∗ ) λ = f ( z ) − f ( x ∗ ) < 0 \nabla f(x^*)^T(z-x^*) = \frac{d}{d\lambda}f(x^*+\lambda(z-x^*))|_{\lambda=0} \\ = \lim_{\lambda \rightarrow0}\frac{f(x^*+\lambda(z-x^*))-f(x^*)}{\lambda}\\ \le \lim_{\lambda \rightarrow0}\frac{\lambda f(z)+(1-\lambda)f(x^*)-f(x^*)}{\lambda}\\ =f(z)-f(x^*)<0 f(x)T(zx)=dλdf(x+λ(zx))λ=0=limλ0λf(x+λ(zx))f(x)limλ0λλf(z)+(1λ)f(x)f(x)=f(z)f(x)<0 (3)
(没找到公式对齐的方式,大家凑合着看吧。。。。)
这个公式唯一需要解释的是第一个等式,我们从右往左推。令 g ( λ ) = f ( x ∗ + λ ( z − x ∗ ) ) g(\lambda) = f(x^*+\lambda(z-x^*)) g(λ)=f(x+λ(zx)) ,对 g ( λ ) g(\lambda) g(λ) 关于 λ \lambda λ 求导可以得到 ∇ g ( λ ) = ∇ f ( x ∗ + λ ( z − x ∗ ) ) T ( z − x ∗ ) \nabla g(\lambda) = \nabla f(x^*+\lambda(z-x^*))^T(z-x^*) g(λ)=f(x+λ(zx))T(zx) ,所以 ∇ g ( 0 ) = ∇ f ( x ∗ ) T ( z − x ∗ ) \nabla g(0) = \nabla f(x^*)^T(z-x^*) g(0)=f(x)T(zx) ,从而得到了第一个等式。
所以我们得到了 ∇ f ( x ∗ ) T ( z − x ∗ ) < 0 \nabla f(x^*)^T(z-x^*) <0 f(x)T(zx)<0 ,那么必然有 ∇ f ( x ∗ ) ≠ 0 \nabla f(x^*) \neq 0 f(x)=0 ,所以与假设相违背,原结论成立。
Q.E.D

猜你喜欢

转载自blog.csdn.net/yikuanglancheng/article/details/108769871