增广拉格朗日乘子法

在了解增广拉格朗日乘子法之前,先了解一下拉格朗日乘子法和罚函数。

拉格朗日乘子法

基本的拉格朗日乘子法(又称为拉格朗日乘数法),就是求函数f(x1,x2,...)在约束条件下极值的方法。其主要思想是引入一个新的参数λ(即拉格朗日乘子),将约束条件函数与原函数联系到一起,使能配成与变量数量相等的等式方程,从而求出得到原函数极值的各个变量的解。

假设目标函数为f(x),约束条件为h_{k}(x)

minf(x)\\s.t.h_{k}(x)=0,k=1,2,... ,l

其中l表示有l个约束条件。

在这里我们举一个例子进行理解。

假设有一个方程为\frac{x^{2}}{a^{2}}+\frac{y^{2}}{b^{2}}+\frac{z^{2}}{c^{2}}-1=0的椭球,我们要求这个椭球内接长方体的最大体积。

那么也就是说我们要在\frac{x^{2}}{a^{2}}+\frac{y^{2}}{b^{2}}+\frac{z^{2}}{c^{2}}-1=0的条件下,求f(x,y,z)=8xyz的最大值。

现在我们定义一个拉格朗日函数F(x,\lambda )

F(x,\lambda )=f(x)+\sum_{k=1}^{l}\lambda_{k}h_{k}(x)

其中\lambda _{k}是各个约束条件的待定系数。

接下来求偏导为0的解:

\frac{\partial F}{\partial x}=0,\frac{\partial F}{\partial \lambda }=0

回到我们的题目,就可以将问题转化为:

F(x,y,z,\lambda )=8xyz+\lambda(\frac{x^{2}}{a^{2}}+\frac{y^{2}}{b^{2}}+\frac{z^{2}}{c^{2}}-1)

接下来对F(x,y,z,\lambda )求偏导可得:


\frac{\partial F(x,y,z,\lambda )}{\partial x}=8yz+\frac{2\lambda x}{a^{2}}=0

\frac{\partial F(x,y,z,\lambda )}{\partial y}=8xz+\frac{2\lambda y}{b^{2}}=0

\frac{\partial F(x,y,z,\lambda )}{\partial z}=8xy+\frac{2\lambda z}{c^{2}}=0

\frac{\partial F(x,y,z,\lambda )}{\partial \lambda }=\frac{x^{2}}{a^{2}}+\frac{y^{2}}{b^{2}}+\frac{z^{2}}{c^{2}}-1=0

联立前三个方程并代入第四个方程后可以求出:


x=\frac{\sqrt{3}}{3}a,y=\frac{\sqrt{3}}{3}b,z=\frac{\sqrt{3}}{3}c

最后可得

f(x,y,z)=8xyz=\frac{8\sqrt{3}}{9}abc

罚函数

罚函数法是一种广泛采用的约束优化方法,用于解决约束条件下的最优化问题。

考虑我们的问题为:

min f (x)\\ s.t.h_{j}(x)=0,j=1,2,3,.. .,p

将原约束优化问题转变为无约束优化问题:

minL_{p}(x)=f(x)+\rho p(x)

其中\rho表示惩罚参数。对于等式约束,我们可以定义罚函数为:

\rho (x)=\sum_{j=1}^{p}|h_{j}(x)|^{2}

如果满足约束条件则无影响,但是如果没有满足约束条件,则会施加惩罚。

对偶函数

对偶函数也称为拉格朗日对偶函数。

对于一个拉格朗日函数:

F(x,\lambda,v)=f(x)+\lambda h(x)+vq(x)

s.t. h(x)\leqslant0,q(x)= 0

我们称\lambda,v为拉格朗日乘子(或对偶变量)。称x为原变量。

拉格朗日函数就是一个关于x,\lambda,v的函数

拉格朗日对偶函数的定义为:对于定义域D上x的所有取值,求拉格朗日函数的最小值即为拉格朗日对偶函数。

即:

g(\lambda,v )=\inf_{x \in D}F(x,\lambda,v)

其中inf (下确界)的定义:一个集合的最大下界。

对偶上升法

对于一个等式约束的优化问题:

minf(x)

s.t. h(x)=0

首先我们可以得到拉格朗日函数:


F(x,\lambda )=f(x)+\lambda h(x)

则对偶上升法的算法流程如下:

1.假设\lambda _{k}是对偶问题的最优解。

2.求解minF(x,\lambda _{k})。即在\lambda =\lambda _{k}时不同x对应的F的值,F值最小处得到x_{k+1}

3.\lambda _{k+1}=\lambda _{k}+\alpha \frac{\partial F(x_{k+1} ,\lambda_{k} ) }{\partial \lambda_{k }}

其中\alpha称为步长,类似于学习率。

5.1-4迭代进行。

增广拉格朗日乘子法

拉格朗日乘子法的对偶上升法的主要缺点是要求约束优化目标具有局部凸结构。

罚函数的不足在于收敛慢,大的惩罚参数容易造成算法的数值不稳定性。

将两种方法结合起来的增广拉格朗日乘子法是能够减缓二者缺点的一种简单有效的途径。

我们假设优化问题只有等式约束:

min f (x)\\ s.t.h(x)=0

并对拉格朗日目标函数添加罚函数,如下:

F(x,\lambda )=f(x)+\lambda h(x)+\rho p(x)

这就是增广拉格朗日乘子法。若惩罚参数\rho为0,则增广拉格朗日乘子法退化为拉格朗日乘子法;若\lambda为0,则增广拉格朗日乘子法退化为罚函数法。

求最优解时使用对偶上升法

1.假设\lambda_{k}是当前对偶问题的最优解 

2.

x_{k+1}= argmin F(x,\lambda _{k}) \\ \lambda _{k+1}=\lambda _{k}+\alpha \frac{\partial F(x_{k+1} ,\lambda_{k} ) }{\partial \lambda_{k }}

3.1-2步迭代进行。

  • 5
    点赞
  • 78
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值