阅前提示:文章是中山大学-最优化理论-罚函数方法1_哔哩哔哩_bilibili的学习笔记,感兴趣可以看视频,讲的非常好。

罚函数法(penalty function methods)的基本思想是借助罚函数把一般约束问题转化为无约束优化问题,进而用无约束最优化方法来求解。罚函数法有外罚函数法和内罚函数法,本文主要介绍外罚函数法。

外罚函数的构造

考虑一般约束优化问题:

$$
\begin{align*}
min \;\;\; f(x) \\
s.t. \;\;\; h_{i}(x) &= 0 \;\; , \;\; i \in E = \left \{1, \cdots, l  \right \}  \\
g_{j}(x) &\geqslant 0     \;\; , \;\; j \in I = \left \{1, \cdots, m  \right \}
\tag{1}
\end{align*}
$$

记可行域为 :

$$
D=\{ x \in R^{n} \; | \; h_{i}(x)=0(i \in E) \;\; , \;\; g_{j}(x) \geqslant 0(j \in I) \} \tag{2}
$$

对于等式约束\(h_{i}(x) = 0 \),构造等式约束的子罚函数:

$$
\sum_{i=1}^{l}h_{i}(x)^{2} \tag{3}
$$

若满足约束,即\(h_{i}(x) = 0  \),则该罚项起不到惩罚的作用(也不需要惩罚);若不满足约束,即\(h_{i}(x) \neq 0  \),那无论\(h_{i} \)正负,直接取平方,结果肯定是大于0的,起到了惩罚的作用。

对于不等式约束\(g_{j}(x) \geqslant 0 \),构造不等式约束的子罚函数:

$$
\sum_{j=1}^{m}[min\{0 \; , \; g_{j}(x) \}]^{2} \tag{4}
$$

若满足约束,即\(g_{i}(x) \geqslant 0 \),此时\(min\{0 \; , \; g_{j}(x)\} = 0 \),平方之后该项依旧为0,起不到惩罚的作用(也不需要惩罚);若不满足约束,即\(g_{j}(x) < 0 \),此时\(min\{0 \; , \; g_{j}(x)\} = g_{j}(x) \),取平方后结果肯定大于0,起到了惩罚的作用。

有了这两个子罚项,我们构造罚函数:

$$
\bar{P}(x) = \sum_{i=1}^{l}h_{i}(x) + \sum_{j=1}^{m}[min\{0 \; , \; g_{j}(x) \}]^{2} \tag{5}
$$

最后构造增广函数:

$$
P(x,\sigma)=f(x)+\sigma \bar{P}(x) \tag{6}
$$

其中  \(\sigma>0\) 是罚因子,当\(x \in D \)时,即\(x \)为可行点时(两个约束条件都满足,罚函数\(\bar{P}(x)=0 \)),\(P(x,\sigma)=f(x) \),此时目标函数没有受到额外惩罚;而当\(x\notin D \) ,即\(x \)不为不可行点时,\(P(x,\sigma) > f(x) \),此时目标函数受到了额外的惩罚。

最终,通过构造罚函数,我们将原本的一般约束优化问题\((1)\)转化为了无约束的优化问题\((7)\):

$$ 
min \;\;\; P(x,\sigma) \tag{7}
$$

其中\(\sigma \)是一个很大的正数。

例子

求解约束优化问题:

$$
\begin{align*}
min \;\;\;\;\;\;\; f(x) &= (x_{1}-1)^{2} + (x_{2}-1)^{2} \\
s.t.\;\;\; x_{1}+x_{2} &= 1
\end{align*}
$$

约束\(x_{1}+x_{2}=1\)等价于\(x_{1}+x_{2}-1=0\),所以构造罚函数:

$$
\bar{P}(x) =(x_{1}+x_{2}-1)^{2}
$$

最后构造增广函数:

$$
\begin{align*}
P(x,\sigma) &=f (x)+ \sigma \bar{P}(x) \\
&=(x_{1}-1)^{2}+(x_{2}-1)^{2}+\sigma (x_{1}+x_{2}-1)^2
\end{align*}
$$

最终的无约束优化问题为:

$$
min \;\;\; P(x,\sigma)=(x_{1}-1)^{2}+(x_{2}-1)^{2}+\sigma (x_{1}+x_{2}-1)^2
$$

由\(P(x.\sigma) \)分别对\(x_{1} \)和\(x_{2} \)求偏导=0得:

$$
\left\{ 
\begin{array}{c}
(1+\sigma)x_{1} + \sigma x_{2} = 1 + \sigma \\
\sigma x_{1} +(1+\sigma)x_{2} = 1 + \sigma
\end{array}
\right.
$$

解得:

$$
x_{1}(\sigma)=x_{2}(\sigma)=\frac{\sigma + 1}{2\sigma +1}
$$

令\(\sigma \rightarrow +\infty \),有\((x_{1}(\sigma) \; , \; x_{2}(\sigma))^{T}=(\frac{1}{2} \; ,\; \frac{1}{2})^{T}=x^{*}\)。这样我们就从无约束优化问题中得到了极小点\(x^{*}\)。


往期内容:

多目标粒子群算法:智能优化算法:多目标粒子群优化算法(MOPSO)_Jouski的博客-CSDN博客

创作不易,点个赞再走

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐