最优化方法Python计算:求解约束优化问题的罚函数算法

设等式约束优化问题
{ 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:RnR h : R n → R l \boldsymbol{h}:\text{R}^n\rightarrow\text{R}^l h:RnRl,在 R n \text{R}^n Rn上连续。可行域 Ω = { x ∣ h ( x ) = o } \Omega=\{\boldsymbol{x}|\boldsymbol{h}(\boldsymbol{x})=\boldsymbol{o}\} Ω={ xh(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} RnR函数
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.  xRn,(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σ=argxRnminF(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σ=argxRnminF(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 klimσ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=argxRnminF(x,σk)
算得序列 { x k } \{\boldsymbol{x}_k\} { xk},则必有
{ lim ⁡ k → ∞ x k = x 0 lim ⁡ k → ∞ σ k P ( x k ) = 0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值