设等式约束优化问题
{ minimize f ( x ) s.t. h ( x ) = o ( 1 ) \begin{cases} \text{minimize}\quad f(\boldsymbol{x})\\ \text{s.t. }\quad\quad\boldsymbol{h}(\boldsymbol{x})=\boldsymbol{o} \end{cases}\quad\quad{(1)} {
minimizef(x)s.t. h(x)=o(1)
其中 f : R n → R f:\text{R}^n\rightarrow\text{R} f:Rn→R, h : R n → R l \boldsymbol{h}:\text{R}^n\rightarrow\text{R}^l h:Rn→Rl,在 R n \text{R}^n Rn上连续。可行域 Ω = { x ∣ h ( x ) = o } \Omega=\{\boldsymbol{x}|\boldsymbol{h}(\boldsymbol{x})=\boldsymbol{o}\} Ω={
x∣h(x)=o}。构造罚函数
P ( x ) = 1 2 h ( x ) ⊤ h ( x ) P(\boldsymbol{x})=\frac{1}{2}\boldsymbol{h}(\boldsymbol{x})^\top\boldsymbol{h}(\boldsymbol{x}) P(x)=21h(x)⊤h(x)
称 R n → R \text{R}^n\rightarrow\text{R} Rn→R函数
F ( x , σ ) = f ( x ) + σ P ( x ) F(\boldsymbol{x},\sigma)=f(\boldsymbol{x})+\sigma P(\boldsymbol{x}) F(x,σ)=f(x)+σP(x)
为问题(1)的增广目标函数,其中 σ > 0 \sigma>0 σ>0,称为罚因子。注意到 F ( x , σ ) = f ( x ) F(\boldsymbol{x},\sigma)=f(\boldsymbol{x}) F(x,σ)=f(x),当且仅当 x ∈ Ω \boldsymbol{x}\in\Omega x∈Ω。考虑无约束优化问题
{ minimize F ( x , σ ) s.t. x ∈ R n , ( 2 ) \begin{cases} \text{minimize}\quad F(\boldsymbol{x},\sigma)\\ \text{s.t.\ \ }\quad\quad\boldsymbol{x}\in\text{R}^n \end{cases},\quad\quad{(2)} {
minimizeF(x,σ)s.t. x∈Rn,(2)
称为(1)的子问题。给定罚因子 σ > 0 \sigma>0 σ>0,设子问题(2)最优解 x σ = arg min x ∈ R n F ( x , σ ) \boldsymbol{x}_{\sigma}=\arg\min\limits_{\boldsymbol{x}\in\text{R}^n}F(\boldsymbol{x},\sigma) xσ=argx∈RnminF(x,σ)。若 x σ ∈ Ω \boldsymbol{x}_{\sigma}\in\Omega xσ∈Ω,则 σ P ( x σ ) = 0 \sigma P(\boldsymbol{x}_{\sigma})=0 σP(xσ)=0,且 F ( x σ , σ ) = f ( x σ ) F(\boldsymbol{x}_{\sigma},\sigma)=f(\boldsymbol{x}_{\sigma}) F(xσ,σ)=f(xσ)。故 x σ \boldsymbol{x}_{\sigma} xσ可以视为 f ( x ) f(\boldsymbol{x}) f(x)最优解的近似值。否则,即 x σ ∉ Ω \boldsymbol{x}_{\sigma}\not\in\Omega xσ∈Ω,则 σ P ( x σ ) \sigma P(\boldsymbol{x}_\sigma) σP(xσ)是一个正数,其存在是对 x σ \boldsymbol{x}_\sigma xσ脱离 Ω \Omega Ω的一种“惩罚”。此时,若加大 σ ′ > σ \sigma'>\sigma σ′>σ,再次尝试求解子问题 x σ ′ = arg min x ∈ R n F ( x , σ ′ ) \boldsymbol{x}_{\sigma'}=\arg\min\limits_{\boldsymbol{x}\in\text{R}^n} F(\boldsymbol{x},\sigma') xσ′=argx∈RnminF(x,σ′),意欲迫使 x σ ′ \boldsymbol{x}_{\sigma'} xσ′向 Ω \Omega Ω靠拢。可以证明以下命题
定理1:若约束优化问题(1)存在唯一最优解 x 0 \boldsymbol{x}_0 x0,子问题(2)对任意 σ > 0 \sigma>0 σ>0,均有最优解 x σ \boldsymbol{x}_\sigma xσ。给定序列 0 < σ 1 < σ 2 < ⋯ < σ k < ⋯ 0<\sigma_1<\sigma_2<\cdots<\sigma_k<\cdots 0<σ1<σ2<⋯<σk<⋯,且 lim k → ∞ σ k = + ∞ \lim\limits_{k\rightarrow\infty}\sigma_k=+\infty k→∞limσk=+∞。按迭代式
x k = arg min x ∈ R n F ( x , σ k ) \boldsymbol{x}_k=\arg\min_{\boldsymbol{x}\in\text{R}^n}F(\boldsymbol{x},\sigma_k) xk=argx∈RnminF(x,σk)
算得序列 { x k } \{\boldsymbol{x}_k\} {
xk},则必有
{ lim k → ∞ x k = x 0 lim k → ∞ σ k P ( x k ) = 0
最优化方法Python计算:求解约束优化问题的罚函数算法
于 2024-09-06 09:54:34 首次发布