罰函式法

来者可追2019發表於2024-05-05

罰函式法
求解約束最佳化問題:
\begin{align*}
\mathop{min}\limits_{x} & \quad f(x)\\
s.t. & \quad x \in S
\end{align*}
其中,$f$是連續函式。
可以採用罰函式法將約束最佳化問題轉變為無約束最佳化問題,具體方法是對目標函式加上懲罰項:
$$q(c_k,x)=f(x)+c_kP(x)$$
其中:1)數列$\{c_k\}\subset \mathbb{R}$,且$c_k \uparrow,c_k\rightarrow +\infty$。2)$P$連續,$P \geq 0$,且$P(x)=0 \iff x \in S$。
對任意的$k$,求解$ min_{x} q(c_k,x)$得到的解記為$x_k$。

引理
$$q(c_k,x_k)\leq q(c_{k+1},x_{k+1})$$
proof:
\begin{align*}
q(c_k,x_k)=&f(x_k)+c_kP(x_k)\\
\leq & f(x_{k+1})+c_kP(x_{k+1})\\
\leq & f(x_{k+1})+c_{k+1}P(x_{k+1})=q(c_{k+1},x_{k+1})
\end{align*}

假設$x^*$為原問題的解點,則有$$f(x^*)\geq q(x_k,x_k)\geq f(x_k)$$
proof:
\begin{align*}
f(x^*)=&f(x^*)+c_kP(x^*)\\
\geq& f(x_k)+c_kP(x_k)\\
\geq &f(x_k)
\end{align*}

收斂性
假設$\{x_k\}$是由罰函式法生成的序列,則其任意極限點都是原問題的解點。
proof:\quad
取$\{x_k\}$的一個極限點為$\mathop{x}\limits^{-}$,為了書寫方便記收斂子列依然為$\{x_k\}$。
由於函式$f$的連續性,有$$\lim\limits_{k\rightarrow +\infty}f(x_k)=f(\mathop{x}\limits^{-})$$
由上述兩個引理得到$q(c_k,x_k)$關於$k$單增,且以$f^*$為上界,於是得到:
$$\lim\limits_{k\rightarrow +\infty}q(c_k,x_k)=q^*\leq f^*$$
於是有$$\lim\limits_{k\rightarrow +\infty}q(c_k,x_k)-f(x_k)=\lim\limits_{k\rightarrow +\infty}=c_kP(x_k)\leq q^*-f(\mathop{x}\limits^{-})$$
再根據$c_k \rightarrow +\infty $,於是有$P(x_k)\rightarrow 0$,根據$P$的連續性得到:
$$\lim\limits_{k\rightarrow +\infty}P(x_k)=P(\mathop{x}\limits^{-})=0$$
於是極限點$\mathop{x}\limits^{-} \in S$。
由根據第二個引理得到:$$f(\mathop{x}\limits^{-})=\lim\limits_{k\rightarrow +\infty}f(x_k)\leq f^*$$
則$\mathop{x}\limits^{-}$是解點。
****************

相關文章