• 用一个例子理解拉格朗日乘数法解决等式约束优化问题


    首先我们来看看一个实例:

    minf(x,y)=x2+y2s.t.xy=3

    即:在定义域xy=3内,求f(x,y)的最小值。
    两个函数的图像如下:


    z=x2+y2

    xy=3
    让我们把两个图像融合到一起:

    z=x2+y2xy=3

    z=x2+y2上划过的两个抛物线就是当点(x,y)满足xy=3时的点在z上的取值。这两条抛物线上的点(x,y,z)一 一对应着二维平面上的点(x,y)。二维平面上的两条双曲线就是当前问题的可行域(满足约束条件的点的集合)的可视化表示。现在让我们来看看对z从最底部往上开始做水平切割,每次的切口都是一个圆,每个圆都对应着下面的二维平面上的一个圆,即等高线。随着往上攀爬,切口的圆表示的z值越来越大,对应的等高线圆的也越来越大,当切口到那两条抛物线时,也就是在可行域内,z取到了值,之前的值虽然都比现在的小,但是不作数,因为当时的值对应的点(x,y)不在可行域内。继续往上,我们知道,z的取值会变大,也就是说,只有在切口圆第一次碰到抛物线的时候,z便已经取到了最大值,此时的切口圆对应的二维平面上的圆刚好与双曲线相切。

    现在让我们回到二维的平面,来看看相切时有什么等式成立:


    z=x2+y2及其等高线

    xy=3

    三维视角下相切时可行域曲线与目标函数等高线

    二维视角下相切时可行域曲线与目标函数等高线

    在相切时取最小值,另外在相切时有以下等式成立(下式为自己的理解,没有参考书籍,可能有误):

    x,yf(x,y)=λwg,λR

    其中,wg 表示函数g的法向量,x,yf(x,y) 为函数f(x,y)在相切点(x,y)的梯度。

    通过上式,我们可以得到:

    (Δf(x,y)Δx,Δf(x,y)Δy)=λ(wgx,wgy)

    即:

    2x=λy2y=λx

    另外,我们有:

    xy=3

    综合这三个等式,得到:

    (x,y){(3,3),(3,3)}

    所以minf(x,y)=6

    其实我不是很明白为什么低维的成立后,就可以运用到高维,而且高维的情况基本上都是重复几次低维的情况即可。

    另外,我们常见的拉格朗日乘数法的形式为:

    minz=f(x,y)s.t.ci(x,y)=0,i=1,2,...,n

    其写成拉格朗日函数的形式为:

    min L(x,α,β)=min(f(x,y)+ni=1λici(x,y))

    其实可以理解为:在可行域内,找到能够使f(x,y)的等高线,与所有c,同时相切的,所有(x,y)对应的值。另外, ni=1λici(x,y)) 可以看作是由多个函数组成的,单个函数,让我们记作为ψ。那么就可以套用上面的例子里面的推理过程,即:

    (Δf(x,y)Δx,Δf(x,y)Δy)=λ(ΔψΔx,ΔψΔy)=λ1(Δc1(x,y)Δx,Δc1(x,y)Δy)+λ2(Δc2(x,y)Δx,Δc2(x,y)Δy)++λn(Δcn(x,y)Δx,Δcn(x,y)Δy)

    即(注意,下面的λi与上面的λi不是同一个):

    Δf(x,y)Δx=λ1Δc1(x,y)ΔxΔf(x,y)Δy=λ1Δc1(x,y)ΔyΔf(x,y)Δx=λ2Δc2(x,y)ΔxΔf(x,y)Δy=λ2Δc2(x,y)Δy  Δf(x,y)Δx=λnΔcn(x,y)ΔxΔf(x,y)Δy=λnΔcn(x,y)Δy

    对于每组待解变量(x,y,λi),都有三个方程组:

    f(x,y)=0,Δf(x,y)Δx=λnΔcn(x,y)Δx,Δf(x,y)Δy=λnΔcn(x,y)Δy

    所以,是能够解出(x,y)的。
    参考文献:

    拉格朗日乘数法 —— 通俗理解

  • 相关阅读:
    基于主动视觉机制的深度学习--一个综合池化框架
    LTE无线网络规划的四大要点
    计算机组成原理(谭志虎主编 )
    Cesium从已知的自定义材质扩展其他效果(二)
    C# 复制、移动、删除文件,获取文件信息
    动态规划算法学习一:DP的重要知识点、矩阵连乘算法
    Postgresql顺滑升级步骤(11升级到14)
    陪诊系统|陪诊软件开发|陪诊系统搭建功能
    关于 [ 新版 ] dubbo-admin登录失败这件事
    JavaScript基础大总结
  • 原文地址:https://www.cnblogs.com/hisi-tech/p/16733341.html