2025年内点法[通俗易懂]

内点法[通俗易懂]文字理解 内点法属于约束优化算法 约束优化算法的基本思想是 通过引入效用函数的方法将约束优化问题转换成无约束问题 再利用优化迭代过程不断地更新效用函数 以使得算法收敛 内点法 罚函数法的一种 的主要思想是 在可行域的边界筑起一道很高的 围墙 当迭代点靠近边界时 目标函数徒然增大 以示惩罚 阻止迭代点穿越边界 这样就可以将最优解 档 在可行域之内了 数学定义

文字理解

内点法属于约束优化算法。约束优化算法的基本思想是:通过引入效用函数的方法将约束优化问题转换成无约束问题,再利用优化迭代过程不断地更新效用函数,以使得算法收敛。
内点法(罚函数法的一种)的主要思想是:在可行域的边界筑起一道很高的“围墙”,当迭代点靠近边界时,目标函数徒然增大,以示惩罚,阻止迭代点穿越边界,这样就可以将最优解“档”在可行域之内了。

数学定义

对于下面的不等式约束的优化问题:

\[\min f(x), x \in R^n \]

\[s.t \quad g_{i}(x) \leq0, i=1,2,…,m \]

利用内点法进行求解时,构造惩罚函数的一般表达式为

\[\varphi (X, r)=f(X)-r\sum_{i=1}^{m}\frac{1}{g_{i}(X)} \]

或者

\[\varphi (X, r)=f(X)-r\sum_{i=1}^{m}{\ln[-g_{i}(X)]} \]

算法步骤

取初始惩罚因子\(r^{(0)}>0\),允许误差\(\epsilon>0\);

在可行域\(D\)内选取初始点\(X^{(0)}\),令\(k=1\);

构造惩罚函数\(\varphi (X, r^{(k)})\),从\(X^{(k-1)}\)点出发用无约束优化方法求惩罚函数\(\varphi (X, r^{(k)})\)的极值点\((X^{*}, r^{(k)})\);

检查迭代终止准则:如果满足

|X^{} r{(k)}-X{} r{(k-1)}|\leq\epsilon_{1}=10{-5}-10^{-7}

或者

|\frac{\varphi (X^{} ,r^{(k)})-\varphi (X^{}, r^{(k-1)})}{\varphi (X^{*}, r{(k-1)})}|\leq\epsilon_{2}=10{-3}-10^{-4}

则停止迭代计算,并以\((X^{*}, r^{(k)})\)作为原目标函数\(f(X)\)的约束最优解,否则转入下一步;

取\(r^{(k+1)}=cr^{(k)}\),\(X^{(0)}=X^{*}r^{(k)}\),\(k=k+1\),转向步骤3。递减系数\(c=0.1-0.5\),通常取0.1。

内点惩罚函数法特点及其应用

惩罚函数定义于可行域内,序列迭代点在可行域内不断趋于约束边界上的最优点(这就是称为内点法的原因)

只适合求解具有不等式约束的优化问题

内点法求解案例

用内点法求下面约束优化问题的最优解,取迭代初始\(X^0 = [0, 0]^{\mathrm{T}}\),惩罚因子的初始值\(r^0 = 1\),收敛终止条件\(\|X^k – X^{k-1}\| \leq \varepsilon\),\(\varepsilon = 0.01\)

\[\min f(X) = x_1^2 + x_1^2 – x_1x_2 – 10x_1 – 4x_2 + 60 \]

\[\mathrm{s.t.}\; g(X) = x_1 + x_2 -8 \leq 0 \]

构造内惩罚函数:\(\varphi(X, r) = x_1^2 + x_1^2 – x_1x_2 – 10x_1 – 4x_2 + 60 -r\ln(x_1 + x_2 -8)\)

用解析法求内惩罚函数的极小值

\[\nabla\varphi(X, r) = [2x_1 – x_2 – 10 – \frac{r}{x_1 + x_2 – 8} \quad 2x_2 – x_1 – 4 – \frac{r}{x_1 + x_2 – 8}] \]

令\(\nabla \varphi(X, r) = 0\)得:\(\begin{align}2x_1 – x_2 – 10 – \frac{r}{x_1 + x_2 – 8} = 0 \\ 2x_2 – x_1 – 4 – \frac{r}{x_1 + x_2 – 8} = 0\end{align}\)

解得:

\(X^*_1(r) = \begin{bmatrix}\frac{13 + \sqrt{9+2r}}{2} & \frac{9 + \sqrt{9+2r}}{2}\end{bmatrix}^{\mathrm{T}}\)

\(X^*_2(r) = \begin{bmatrix}\frac{13 – \sqrt{9+2r}}{2} & \frac{9 – \sqrt{9+2r}}{2}\end{bmatrix}^{\mathrm{T}}\)

\(\because g(X^*_1(r)) > 0\)

\(\therefore\) 舍去\(X^*_1(r)\)

\(\because \varphi(X, r)\)为凸函数

\(\therefore\) 无约束优化问题的最优解为\(X^*(r) = X^*_2(r) = \begin{bmatrix}\frac{13 – \sqrt{9+2r}}{2} & \frac{9 – \sqrt{9+2r}}{2}\end{bmatrix}^{\mathrm{T}}\)

求最优解

当\(r^0 = 1\)时,\(X^*(r^0) = \begin{pmatrix}4.8417 & 2.8417\end{pmatrix}^{\mathrm{T}}\),\(\|X^*(r^0) – X^0\| = 5.6140 > \varepsilon\)

当\(r^1 = 0.1\)时,\(X^*(r^1) = \begin{pmatrix}4.9834 & 2.9834\end{pmatrix}^{\mathrm{T}}\),\(\|X^*(r^1) – X^*(r^0)\| = 0.2004 > \varepsilon\)

当\(r^2 = 0.01\)时,\(X^*(r^2) = \begin{pmatrix}4.9983 & 2.9983\end{pmatrix}^{\mathrm{T}}\),\(\|X^*(r^2) – X^*(r^1)\| = 0.0211 > \varepsilon\)

当\(r^3 = 0.01\)时,\(X^*(r^3) = \begin{pmatrix}4.9998 & 2.9998\end{pmatrix}^{\mathrm{T}}\),\(\|X^*(r^3) – X^*(r^2)\| = 0.0021 < \varepsilon\)

即\(X^*(r^3)\)为最优解

编程小号
上一篇 2025-03-12 20:33
下一篇 2025-02-20 09:30

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/hz/128539.html