首页 > 其他分享 >非线性规划——惩罚函数外点法(六)

非线性规划——惩罚函数外点法(六)

时间:2023-06-09 14:24:29浏览次数:39  
标签:惩罚 frac 函数 外点法 非线性 right array left

罚函数法又称乘子法,是将约束优化问题转换为无约束最优化问题的方法之一。其基本思想就是通过在原始的目标函数中添加一个障碍函数(也可以理解成惩罚函数)来代替约束条件中的不等式约束。如果当前解不满足约束条件,就在目标项上加上一个正向的惩罚(这里考虑的都是最小化问题),强迫当前解往可行域的方向走。至于正向惩罚的力度,取决于所用的映射函数,即惩罚函数。

一、非线性规划模型

\[\begin{array}{ll} \min & f(\boldsymbol{x}) \\\text { s. t. } & g_{i}(\boldsymbol{x}) \geqslant 0, \quad i=1, \cdots, p \\ & h_{j}(\boldsymbol{x})=0, \quad j=1, \cdots, q \end{array} \]

其中,\(f(\boldsymbol{x}),g_i(\boldsymbol{x})(i=1,2,\cdots,p)\)和 \(h_j(\boldsymbol{x})(j=1,2,\cdots,q)\) 是\(\mathbb{R}^n\)上的连续函数。
由于约束条件是非线性的,不能用消元法将其转换为无约束问题,在求解时需同时考虑目标函数值下降和满足约束条件。可以通过由目标函数和约束条件组成惩罚函数,将原问题转化为极小化惩罚函数的无约束问题。

二、惩罚函数外点法

惩罚函数基本思想:通过构造惩罚函数将约束问题转化为无约束问题,进而用无约束最优化方法求解。主要分为内点法和外点法。注意:罚函数法对目标函数的凹凸性没有要求,且结合启发式算法(如遗传算法、蚁群算法、禁忌搜索等)几乎可以求解任何问题,因为启发式算法无需目标函数的梯度等信息。外点法不保证搜索点保持在可行域内(搜索范围包括可行域和不可行域),适用于包含不等式约束或等式约束的优化问题。
惩罚函数为:

\[\phi(\boldsymbol{x},{r}^{(k)}) = f(\boldsymbol{x})+{r}^{(k)} \sum_{i=1}^{p} \{\min [0, g_{i}(x)]\}^{2} \]

其中,\(\boldsymbol{r}^{(k)}\)为趋于无穷大的严格递增正数列,\(r^{(k)}=Cr^{(k-1)}\)且\(C>1\),$ \lim \limits_{k\rightarrow \infty}r^{(k)}=\infty$。迭代点在可行域内时,惩罚项为0,惩罚函数等于原函数;迭代点在可行域外时,惩罚项大于0,大于原函数。因此,由于罚因子严格递增,随着迭代进行,可以迫使惩罚项趋于0,从而逼近原函数。

参数选择

初始点\(x^{(0)}\),可行域及非可行域内均可。
初始罚因子\(r^{(0)}\)的选择对算法的成败和计算效率有显著影响。选取过小,则无约束求解的次数增多,收敛速度慢;选取过大,则非可行域内惩罚函数比原函数大得多,在起作用约束边界处产生尖点,函数形态变坏,从而限制了某些无约束优化方法的使用,导致计算失败。
罚因子递增系数\(C\) (一般取\(C=[5,10]\))

算法步骤

(1)在\(n\)维空间任取初始点\(x^{(0)}\) 。
(2)选取初始罚因子\(r^{(0)}\),递增系数\(C\),并置\(k=0\)。
(3)求解无约束优化问题\(\min\phi(x,r^{(k)})\) ,得到最优点\(x_k^*\) 。
(4)当\(k=0\)时转步骤5,否则转步骤6。
置 \(k=k+1,r^{(k+1)}=Cr^{(k)},x_{k+1}^{(0)}=x_k^*\) 。
(6)由终止准则,若满足则结束算法,输出最优解;否则转步骤5。

三、实例

例1:用外点法求等式约束问题

\[\mathrm{min} \quad \frac{1}{2}x^2_1+\frac{1}{6}x^2_2 \\ \mathrm{s.t.} \quad x_1+x_2=1 \]

【解】(外点罚函数法)① 构造罚函数

\[F(x,M_k)=\frac{1}{2}x^2_1+\frac{1}{6}x^2_2+M_k(x_1+x_2-1)^2 \]

② 求偏导

\[\frac{\partial F}{\partial x_1}=x_1+2M_k(x_1+x_2-1)=0 \tag{1} \]

\[\frac{\partial F}{\partial x_1}=\frac{1}{3}x_2+2M_k(x_1+x_2-1)=0 \tag{2} \]

③ 联立两个偏导式,求驻点,并得到 \(x_1\)​和\(x_2\)的表达式
联立 (1)和(2),得

\[x_2=3x_1 \tag{3} \]

将(3)代回 (1),得到

\[x_1+2M_k(4x_1−1)=0 \]

\[x_1=\frac{2M_k}{1+8M_k} \]

根据 (3),得到

\[x_2=3x_1=\frac{6M_k}{1+8M_k} \]

\[x^*=[\frac{2}{\frac{2}{M_k}+8},\frac{6}{\frac{2}{M_k}+8} ]^\mathrm{T} \tag{4} \]

④ 令\(M_k \to \infty\),得到结果

\[x^*=[\frac{1}{4},\frac{3}{4}]\mathrm{T} \]

例2:求解非线性规划。

\[\text { min } f(X)=x_1+x_2 \\ \text { s.t. }-x_1^2+x_2 \geq 0 \\ x_1 \geq 0 \]

解:构造惩罚函数

\[P(X, M)=x_1+x_2+M[\min (0,-x_1^2+x_2)]^2+M[\min (0, x_1)]^2 \]

考察其驻点, 令

\[\begin{aligned} & \frac{\partial P}{\partial x_1}=1+2 M\left[\min \left(0,-x_1^2+x_2\right)\right]\left(-2 x_1\right)+2 M\left[\min \left(0, x_1\right)\right]=0 \\ & \frac{\partial P}{\partial x_2}=1+2 M\left[\min \left(0,-x_1^2+x_2\right)\right]=0 \end{aligned} \]

对于可行域外的点 (满足 \(x_1-1<0, x_2<0\) ), 可解得驻点

\[\left\{\begin{array}{l} 1+2 M\left(-x_1^2+x_2\right)\left(-2 x_1\right)+2 M x_1=0 \\ 1+2 M\left(-x_1^2+x_2\right)=0 \end{array}\right. \]

\[\begin{aligned} & \text { 解得 }\left\{\begin{array}{l} x_1=-\frac{1}{2(M+1)} \\ x_2=\frac{1}{4(M+1)^2}-\frac{1}{2 M} \end{array}\right. \\ & \text { 令 } M \rightarrow+\infty \text {, 则 }\left\{\begin{array}{l} x_1 \rightarrow 0 \\ x_2 \rightarrow 0 \end{array} \text {, 而 }\left[\begin{array}{ll} 0 & 0 \end{array}\right]^{\mathrm{T}} \text { 是可行点 } \rightarrow\right. \text { 问题的最优解。 } \\ \end{aligned} \]

例3:用惩罚函数法解如下非线性规划问题。

\[\begin{array}{l} \min \quad f({x_1},{x_2}) = 2{x_1} + 2{x_2} + 2\\ s.t.\quad \left\{ {\begin{array}{*{20}{c}} { - {x_1} + x_2^2 \le 1}\\ {{x_2} \ge 5} \end{array}} \right. \end{array}\]

解:将问题改写为

\[\begin{array}{l} \min \quad f({x_1},{x_2}) = 2{x_1} + 2{x_2} + 2\\ s.t.\quad \left\{ {\begin{array}{*{20}{c}} {{g_1}(x) = - {x_1} + x_2^2 - 1 \le 0}\\ {{g_2}(x) = - {x_2} + 5 \le 0} \end{array}} \right. \end{array}\]

参考文献

  1. 惩罚函数法
  2. 最优化方法——乘子法和外点罚函数法

标签:惩罚,frac,函数,外点法,非线性,right,array,left
From: https://www.cnblogs.com/haohai9309/p/17465183.html

相关文章

  • 非线性规划——等式约束的最优化方法(四)
    对非线性规划来说,大多数情况下我们是不可能无限制求其理想情况下的最优值的,总是存在一些约束生成了一部分可行解域。从机器学习上来说,我们的可行解域就被限制住了,直接求解起来事实上是有一定困难的,我们更希望求解的是无约束的优化问题,就衍生出拉格朗日乘子法。拉格朗日乘子法主要......
  • 非线性规划——无约束求解方法(三)
    无约束最优化问题的解析法主要有:最速下降法、牛顿法、共轭梯度法(DFP法)和变尺度法(变度量法)。对于特殊的最小二乘问题,有最小二乘法。这些方法各有千秋,除了最小二乘法,后面的方法都针对前面方法的某个问题做了改进。这些方法的核心就是研究如何确定每一步迭代的方向和步长。一、无约......
  • 非线性规划凸优化——凸函数、凸规划(二)
    凸规划是指若最优化问题的目标函数为凸函数,不等式约束函数也为凸函数,等式约束函数是仿射的。凸规划的可行域为凸集,因而凸规划的局部最优解就是它的全局最优解。当凸规划的目标函数为严格凸函数时,若存在最优解,则这个最优解一定是唯一的最优解。一、凸集凸集:设\(C\)为\(n\)维欧式......
  • 非线性规划——非线性规划的标准型(一)
    非线性规划是一种求解目标函数或约束条件中有一个或几个非线性函数的最优化问题的方法。运筹学的一个重要分支。20世纪50年代初,库哈(H.W.Kuhn)和托克(A.W.Tucker)提出了非线性规划的基本定理,为非线性规划奠定了理论基础。20世纪80年代以来,随着计算机技术的快速发展,非线性规划方......
  • 最大信息系数——检测变量之间非线性相关性
    最后的效果就是这样的。很明显可以看到,左下角那个有点像三角函数的关系,Pearson系数(就是线性相关系数)为0,而MIC则有0.8。 摘自:http://tech.ifeng.com/a/20180323/44917506_0.shtml最大信息系数最大信息系数(MIC)于2011年提出,它是用于检测变量之间非线性相关性的最新方法。用于进行......
  • Matlab求解非线性方程的根
    ✅作者简介:热爱科研的算法开发者,Python、Matlab项目可交流、沟通、学习。......
  • 无人机VESC7500,低压伺服keil源码,可以无感,霍尔单馈,正余弦,ABZ等多种反馈信号,是用非线性
    无人机VESC7500,低压伺服keil源码,可以无感,霍尔单馈,正余弦,ABZ等多种反馈信号,是用非线性磁链观测器,高频注入等多种算法于一身,上位机源码,原理图。没有PCB!最大电流300A,是学习不错的资料。ID:13295688026550883......
  • 北方苍鹰优化算法NGO优化VMD,对其分解层数,惩罚因子数做优化,利用NGO北方苍鹰优化算法确
    北方苍鹰优化算法NGO优化VMD,对其分解层数,惩罚因子数做优化,利用NGO北方苍鹰优化算法确定其最佳参数,熵值为适应度函数。程序语言为matlab。直接替换数据就可以用。。ID:2740680620067120......
  • 改进鲸鱼算法GSWOA优化VMD,对其分解层数,惩罚因子数做优化,利用GSWOA鲸鱼优化算法确定其
    改进鲸鱼算法GSWOA优化VMD,对其分解层数,惩罚因子数做优化,利用GSWOA鲸鱼优化算法确定其最佳参数,熵值为适应度函数。程序语言为matlab。程序比较新,用的人比较少,适合写paper。直接替换数据就可以用。ps:本人只是提供程序,方便可以更快的上手,并不能满足你直接就可以写论文愿望,要求高的勿......
  • 蝴蝶优化算法(BOA)文章复现(Circle混沌初始化种群+非线性因子w、p、r+融合正余弦算法
    蝴蝶优化算法(BOA)文章复现(Circle混沌初始化种群+非线性因子w、p、r+融合正余弦算法改进局部搜索策略+逐维t分布扰动策略)——MSBOA复现内容包括:文章改进BOA算法实现、23个基准测试函数、文中相关因子分析、文中混沌特性分析、与BOA对比等。代码基本上每一步都有注释,非......