首页 > 编程知识 正文

拉格朗日乘子定理,拉格朗日乘子法求最优解例题

时间:2023-05-05 21:44:43 阅读:273153 作者:4687

  这几天一直在看支持向量机,然后就是大量大量的数学公式,一直迷迷糊糊的,然后一直遇到拉格朗日,拉格朗日,原来数学基础也不好,没怎么学过,于是下定决心要把拉格朗日乘子法搞懂,花了几天,看了一些文章,算是对拉格朗日乘子法有了简单的了解,下面就和大家简单的分享分享啦!
  
  我们在求解优化问题的时候,可能小伙伴们遇到的最大的困难就是约束条件了,想想如果没有约束条件是一件多么愉快的事情,但是往往事与愿违哈哈!一般我们遇到比较简单一点问题的可能就是等式约束,但是稍微复杂一点的题目都会涉及到不等式约束,所以,这个时候就要根据实际情况选取不同的方法咯。一般情况下,最优化问题会有三类:

(一)、无约束条件
  这种情况想都不用想,直接对变量求导等于0,代入原函数验证即可。

(二)、等式约束条件
  我们假定目标函数为f(x),约束条件为h_k(x)。
     minf(x) m i n f ( x )     (最大值最小值问题可以相互转化)
     s.t. hk(x)=0,k=1,2,3... s . t .   h k ( x ) = 0 , k = 1 , 2 , 3...
  我们原来高中学过的消元法不失为一种好方法,但是毕竟比较Low,体现不出优秀的你的水平哈哈,不开玩笑了,主要是消元的时候会很麻烦,比如说有高次的情况,开根号带来了计算时许多不便之处,而拉格朗日就厉害了,为什么这么讲呢,我们一起来看看:
  拉格朗日乘子法的求解流程大概包括以下几个步骤:
   1. 构造拉格朗日函数
   2. 解变量的偏导方程
   3. 代入目标函数即可
  是不是看上去很简单,其实的确不麻烦(==,吐槽一下当时看向量机的时候,还一直纠结着看不懂,但其实本身这个方法并没有想象的那么难)。关键在于构造拉格朗日函数,后面求解实际上就是高数里面基本的求偏导数的问题了。我们不妨另:
    F(x,λ)=f(x)+∑lk=1λkhk(x) F ( x , λ ) = f ( x ) + ∑ k = 1 l λ k h k ( x )    (公式不好打!!!)

  然后分别对每一个变量求导,得出来的解代入目标函数就ok了!

    ∂Fλk=0 ∂ F λ k = 0   ∂Fxi=0 ∂ F x i = 0

(三)、不等式约束条件
  不等式约束相比于等式约束,要复杂一点,而且通常情况下,不等式约束和等式约束总喜欢一起出现,在这里,为了更好的解决该问题,除了拉格朗日乘子外,我们引入了KKT条件。什么是KKT条件呢?KKT条件是怎么来的呢?我们不妨先看看我们的问题:
        minf(x) m i n f ( x )
      s.t. hi(x)=0,i=1,2,3...p s . t .   h i ( x ) = 0 , i = 1 , 2 , 3... p
      s.t. gj(x)<=0,j=1,2,3...q s . t .   g j ( x ) <= 0 , j = 1 , 2 , 3... q

  那么我们定义的拉格朗日函数又是什么呢,其实很容易想到:

    F(x,λ,l)=f(x)+∑pi=1λihi(x)+∑qj=1ujgj(x) F ( x , λ , l ) = f ( x ) + ∑ i = 1 p λ i h i ( x ) + ∑ j = 1 q u j g j ( x )

  其中,f(x)是目标函数, hi(x) h i ( x ) 是第i个等式约束条件, λi λ i 是对应的约束系数, gj(x) g j ( x ) 是不等式约束, uj u j 是对应的约束系数。这里把目标函数,等式约束,不等式约束融合到了一个式子里,这时候KKT约束就出场了:

 (1). F(x,λ,l) F ( x , λ , l ) ** 对 x x 求偏导为 0;

 (2). h(x)=0 h ( x ) = 0

 (3). a∗g(x)=0 a ∗ g ( x ) = 0

  至于为什么这么来的,由于时间问题不跟大家作详细的推导啦,网上百度一下到处都有的。(附个链接:可以随便看看,讲的挺好的)
  基于KKT条件,不等式约束条件的问题基本也就解决了,下面来说说我自己的一点心得吧!
第一点:拉格朗日乘子法求解优化问题是很有效的方法,对于限制条件比较多的情况下,特别是限制条件较为复杂的情况下,利用该方法可以很容易的求解出来。
第二点:约束条件其实就是限定了问题的解决范围,学会如何转化和考量限制条件是解决问题的关键。
第三点:基础知识的重要性,比如说高数如果学不好的话,在KKT条件的推导过程中,会遇到很多痛苦(对于数学基础不好的我感触尤深 = =)。
  
  就这样啦,第一次博客,问题挺多的,后面再加强!!!

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。