拉格朗日法、KKT条件

拉格朗日对偶性



求解最优化问题中,拉格朗日乘子法和 \(KKT\) 条件是两种常用的方法。在有等式约束时使用拉格朗日乘子法,不等式约束时使用 \(KKT\) 条件。这里的最优化问题通常指函数在作用域上的全局最小值(最小值与最大值可以互换)。

最优化问题常见三种情况:



一、无约束条件

求导等于0得到极值点,将结果带回原函数验证。



二、等式约束条件

设目标函数 \(f(x)\),等式约束 \(h_j(x)\),约束最优化问题描述如下:

\[\begin{aligned} & min\ \ f(x) \\ \\ & \text{s.t.}\ \ \ \ h_j(x)=0\ \ \ \ j=1,2,...,l \end{aligned} \]

\(l\) 表示有 \(l\) 个约束条件。

该类问题解决办法是消元法和拉格朗日法。消元法简单,这里讲拉格朗日法,后面提到的 \(KKT\) 条件是对拉格朗日乘子法的泛化。


实例:椭球 \(\frac{x^2}{a^2}+\frac{y^2}{b^2}+\frac{z^2}{c^2}=1\) 内接长方体的最大体积,即求 \(f(x,y,z)=8xyz\) 的最大值。


① 消元法

根据条件消去\(z\),然后带入函数转换为无条件极值问题。(有时这种方法解不出来)


② 拉格朗日法

定义拉格朗日函数:

\[L(x,\beta)=f(x)+\sum_{k=1}^{l}\beta_jh_j(x) \]

对各个变量求偏导:

\[\frac{\partial F}{\partial x_i}=0 \ \ ...\ \ \frac{\partial F}{\partial \beta_j}=0 \]

方程组的解可能是最优解,将结果带回原方程验证。

思想:通过引入拉格朗日乘子将含有 \(n\) 个变量和 \(j\) 个约束条件的约束优化问题转化为 \((n+j)\) 个变量的无约束优化问题。


定义拉格朗日函数:

\[\begin{aligned} F(x,y,z,\beta) & =f(x,y,z)+\beta\varphi(x,y,z) \\ & =8xyz+\beta(\frac{x^2}{a^2}+\frac{y^2}{b^2}+\frac{z^2}{c^2}-1) \end{aligned} \]

\(F(x,y,z,\beta)\) 求偏导:

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

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

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

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

联立前面 3 个方程得到 \(bx=ay\)\(az=cx\),带入第 4 个方程:

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

带入原函数得到最大体积:

\[V_{max}=f(\frac{\sqrt{3}}{3}a,\frac{\sqrt{3}}{3}b,\frac{\sqrt{3}}{3}c)=\frac{8\sqrt{3}}{9}abc \]



三、不等式约束条件

设目标函数 \(f(x)\),不等式约束 \(c_i(x)\)、等式约束 \(h_j(x)\),约束最优化问题描述如下:

\[\begin{aligned} \min\ \ \ \ & f(x) \\ \\ s.t.\ \ \ \ & c_i(x)\le0,\ \ \ \ i=1,2,...,k \\ \\ & h_j(x)=0,\ \ \ \ j=1,2,...,l \end{aligned} \]

定义不等式约束下的拉格朗日函数 \(L\)

\[L(x,\alpha,\beta)=f(x)+\sum_{i=1}^{k}\alpha_ic_i(x)+\sum_{j=1}^{l}\beta_jh_j(x) \]

其中 \(f(x)\) 是目标函数,\(h_j(x)\) 是第 \(j\) 个等式约束条件,\(\beta_j\) 是约束系数,\(c_i(x)\) 是第 \(i\) 个不等式约束,\(\alpha_i\) 是约束系数。

不等式约束求最优化问题的常用方法是 \(KKT\) 条件

\(KKT\) 条件是说最优值必须满足:

\[\triangledown_x L(x^*,\alpha^*,\beta^*)=0 \\ \triangledown_\alpha L(x^*,\alpha^*,\beta^*)=0 \\ \triangledown_\beta L(x^*,\alpha^*,\beta^*)=0 \\ \alpha_i^*c_i(x^*)=0 \\ c_i(x^*) \le 0,\ \ \ \ i=1,2,...,k \\ a_i^* \ge 0,\ \ \ \ i=1,2,...,k \\ h_j(x^*)=0,\ \ \ \ i=1,2,...,k \]

原始问题、对偶问题满足严格(强)对偶关系 \(\iff\) 满足 \(KKT\) 条件(充要条件)。



posted @ 2019-05-24 12:25  做梦当财神  阅读(1728)  评论(0编辑  收藏  举报