拉格朗日乘数法求条件极值(最大熵)
作为一种优化算法,拉格朗日乘子法主要用于解决约束优化问题,它的基本思想就是通过引入拉格朗日乘子来将含有n个变量和k个约束条件的约束优化问题转化为含有(n+k)个变量的无约束优化问题。拉格朗日乘子背后的数学意义是其为约束方程梯度线性组合中每个向量的系数。
如何将一个含有n个变量和k个约束条件的约束优化问题转化为含有(n+k)个变量的无约束优化问题?拉格朗日乘数法从数学意义入手,通过引入拉格朗日乘子建立极值条件,对n个变量分别求偏导对应了n个方程,然后加上k个约束条件(对应k个拉格朗日乘子)一起构成包含了(n+k)变量的(n+k)个方程的方程组问题,这样就能根据求方程组的方法对其进行求解。
解决的问题模型为约束优化问题:
min/max a function f(x,y,z), where x,y,z are not independent and g(x,y,z)=0.
即:min/max f(x,y,z)
s.t. g(x,y,z)=0
给定椭球
求这个椭球的内接长方体的最大体积。这个问题实际上就是条件极值问题,即在条件
下,求的最大值。
当然这个问题实际可以先根据条件消去,然后带入转化为无条件极值问题来处理。但是有时候这样做很困难,甚至是做不到的,这时候就需要用拉格朗日乘数法了。通过拉格朗日乘数法将问题转化为
对求偏导得到
联立前面三个方程得到和
,带入第四个方程解之
带入解得最大体积为
拉格朗日乘数法对一般多元函数在多个附加条件下的条件极值问题也适用。
求最大熵
题目:求离散分布的最大熵。
分析:因为离散分布的熵表示如下
而约束条件为
要求函数的最大值,根据拉格朗日乘数法,设
对所有的求偏导数,得到
计算出这个等式的微分,得到
这说明所有的都相等,最终解得
因此,使用均匀分布可得到最大熵的值。