内容来自马昌凤编著的《最优化方法及其Matlab程序设计》,文章仅为个人的学习笔记,感兴趣的朋友详见原书
简单来说,最优化问题就是求一个多元函数在某个给定集合上的极值,其一般表达为:
m i n f ( x ) min f(x) minf(x)
s . t . x ∈ K s.t. x∈K s.t.x∈K
其中, K K K为可行域, x x x为决策变量,s.t.是subject to(受限于)的缩写。
非线性规划:
m i n f ( x ) min f(x) minf(x)
s . t . h i ( x ) = 0 , i = 1 , . . . , l s.t. h_{i}(x)=0, i=1,...,l s.t.hi(x)=0,i=1,...,l
g i ( x ) > = 0 , i = 1 , . . . , m g_{i}(x)>=0, i=1,...,m gi(x)>=0,i=1,...,m
其中, f ( x ) f(x) f(x)、 h i ( x ) h_{i}(x) hi(x)、 g i ( x ) g_{i}(x) gi(x)都是定义在 R n R^n Rn上连续可微的多元实值函数,并且至少有一个是非线性的。
记 E = i ∣ h i ( x ) = 0 E={i|h_{i}(x)=0} E=i∣hi(x)=0 I = i ∣ g i ( x ) > = 0 I={i|g_{i}(x)>=0} I=i∣gi(x)>=0
若两指标集的并集为∅,则称之为无约束优化问题;否则为有约束优化问题。特别的,把 E E E≠∅且 I I I=∅的优化问题称为等式优化问题;而把 I I I≠∅且 E E E=∅的优化问题称为不等式优化问题。 f ( x ) f(x) f(x)称为目标函数, h i ( x ) h_{i}(x) hi(x), g j ( x ) g_{j}(x) gj(x)称为约束函数。
二次规划:目标函数为二次函数,而约束函数都为线性函数的优化问题。(而目标函数和约束函数都为线性函数的优化问题称为线性规划)
全局极小点——最值
局部极小点——极值
一阶必要条件:设 f ( x ) f(x) f(x)在开集 D D D上一阶连续可微,若 x ∗ ∈ D x^*∈D x∗∈D是一个局部极小点,则必有 g ( x ∗ ) = 0 g(x^*)=0 g(x∗)=0。
二阶必要条件:设 f ( x ) f(x) f(x)在开集 D D D上二阶连续可微,若 x ∗ ∈ D x^*∈D x∗∈D是一个局部极小点,则必有 g ( x ∗ ) = 0 g(x^*)=0 g(x∗)=0且 G ( x ∗ ) G(x^*) G(x∗)是半正定矩阵。
二阶充分条件:设 f ( x ) f(x) f(x)在开集 D D D上二阶连续可微。若 x ∗ ∈ D x^*∈D x∗∈D满足条件 g ( x ∗ ) = 0 g(x^*)=0 g(x∗)=0及 G ( x ∗ ) G(x^*) G(x∗)是正定矩阵,则 x ∗ x^* x∗是一个局部极小点。
设 f ( x ) f(x) f(x)在 R n R^n Rn上是凸函数,并且是一阶连续可微的,则 x ∗ ∈ x^*∈ x∗∈ R n R^n Rn是全局极小点的充要条件是 g ( x ∗ ) = 0 g(x^*)=0 g(x∗)=0