外罚函数法(一):外罚函数的构造
阅前提示:文章是中山大学-最优化理论-罚函数方法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博客
创作不易,点个赞再走
更多推荐



所有评论(0)