本文主要讲述给定一个线性规划,我们为什么能按照对偶规则,机械地并且非常容易地写出其对偶。当然为便于理解,本文先介绍了什么是拉格朗日乘子法、 KKT(KarushKuhnTucker) 条件。二者是求解有约束条件的优化问题的两个重要方法。
1.优化问题常见类型
通常我们需要求解的最优化问题有如下3类:
(i) 没有约束条件:
(ii) 有等式约束的优化问题,可以写为:
(iii) 再加入不等式约束的优化问题,可以写为
对于第(i)类的优化问题,我们先求取f(x)的导数,然后令导函数为零,可以求得候选极大值或极小值,再在这些值中选取最优解;如果是凸函数,可以保证是最优解。
2.拉格朗日乘子法
对于上面第(ii)类的优化问题,常常使用的方法就是拉格朗日乘子法(Lagrange Multiplier) ,即把等式约束 gi(x) 用一个系数与 f(x) 写为一个式子,称为拉格朗日函数,而系数称为拉格朗日乘子。通过拉格朗日函数对各个变量求导,令其为零,可以求得候选值集合,然后验证求得最优值。为什么可以这样呢?接下来我们给予证明:
我们考虑下面问题:
我们首先画出函数 f(x,y) 的等高线,然后画出 g(x,y)=0 这条曲线如下图:
我们的目标就是要字 g(x,y)=0 这条曲线上找一个点使 f(x,y) 的值尽可能小。我们现在观看等高线 f(x,y)=2 ,发现它与 g(x,y)=0 有两个交点,我们想象当 f(x,y) 的值不断变小时, g(x,y)=0 与等高线从有两个交点到若即若离的状态(一个交点,相切),最后没有交点。只有到等高线与曲线 g(x,y)=0 相切的时候,可能取得最优值,如上图所示,即等高线和曲线 g(x,y)=0 在该点的法向量必须有相同方向。因此最后最优解肯定是若即若离的点处取得。这个若即若离的数学表示方法就是: g(x,