文章目录
本文介绍解决约束优化问题的经典算法——罚函数法。
基本思想
依据约束条件的特点,把约束条件转化为某种惩罚函数加到目标函数中,从而把约束优化问题转化为一系列无约束优化问题,通过求解一系列无约束优化问题得到约束优化问题的最优解。此类方法称为“序列无约束极小化方法”。
外罚函数法
外罚函数法基本思想看两个例子:
例1 等式约束优化:
m i n f ( x ) = x 1 2 + 1 3 x 2 2 s . t . x 1 + x 2 = 1 minf(x) = x_1^2 + \frac{1}{3} x_2^2 \\ s.t. \qquad x_1 + x_2 = 1 minf(x)=x12+31x22s.t.x1+x2=1
解:等式约束得: x 2 = 1 − x 1 x_2 = 1 - x_1 x2=1−x1代入目标函数得:
m i n ϕ ( x 1 ) = x 1 2 1 3 ( x 1 − 1 ) 2 min \phi (x_1) = x_1^2\frac{1}{3}(x_1 - 1)^2 minϕ(x1)=x1231(x1−1)2
全局极小值点: x ∗ = 0.25 x^{\ast} = 0.25 x∗=0.25,从而原问题极小值点为: x ∗ = ( 0.25 , 0.75 ) T x^{\ast} = (0.25,0.75)^T x∗=(0.25,0.75)T。
现在要使构造的罚函数 P ( x ) ‾ \overline{P(x)} P(x)满足:
P ( x ) ‾ = { 0 x 1 + x 2 − 1 = 0 > 0 x 1 + x 2 − 1 ≠ 0 \overline{P(x)} = \begin{cases} 0 & x_1 + x_2 - 1 = 0 \\ > 0 & x_1 + x_2 - 1 \neq 0 \end{cases} P(x)={
0>0x1+x2−1=0x1+x2−1=0
能保证函数具有连续的偏导数的简单方法是令:
P ( x ) ‾ = ( x 1 + x 2 − 1 ) 2 \overline{P(x)} = (x_1 + x_2 - 1) ^ 2 P(x)=(x1+x2−1)2
现在考虑目标函数和上述罚函数的组合:
P ( x , σ ) = f ( x ) + σ P ( x ) ‾ = x 1 2 + 1 3 x 2 2 + σ ( x 1 + x 2 − 1 ) 2 P(x,\sigma) = f(x) + \sigma \overline{P(x)} = x_1^2 + \frac{1}{3} x_2^2 + \sigma (x_1 + x_2 - 1)^2 P(x,σ)=f(x)+σP(x)=x12+31x22+σ(x1+x2−1)2
其中, σ > 0 \sigma >0 σ>0为充分大的正数,称为罚参数或者罚因子。求上述组合的极小点:
由
∂ P ( x , σ ) ∂ x 1 = ∂ P ( x , σ ) ∂ x 2 = 0 { ( 1 + σ ) x 1 + σ x 2 = σ 3 σ x 1 + ( 1 + 3 σ ) x 2 = 3 σ \begin{array}{l} \frac{\partial P(\boldsymbol{x}, \sigma)}{\partial x_{1}}=\frac{\partial P(\boldsymbol{x}, \sigma)}{\partial x_{2}}=0 \\ \left\{\begin{array}{l} (1+\sigma) x_{1}+\sigma x_{2}=\sigma \\ 3 \sigma x_{1}+(1+3 \sigma) x_{2}=3 \sigma \end{array}\right. \end{array} ∂x1∂P(x,σ)=∂x2∂P(x,σ)=0{
(1+σ)x1+σx2=σ3σx1+(1+3σ)x2=3σ
求解上述方程组, 得:
x 1 ( σ ) = σ 1 + 4 σ , x 2 ( σ ) = 3 σ 1 + 4 σ x_{1}(\sigma)=\frac{\sigma}{1+4 \sigma}, \quad x_{2}(\sigma)=\frac{3 \sigma}{1+4 \sigma} x1(σ)=1+4σσ,x2(σ)=1+4σ3σ