拉格朗日
一、无约束优化
寻找极值:minf(x)\min f(x)minf(x)
最优条件:梯度 ∇f=0\nabla f=\boldsymbol{0}∇f=0
但现实问题几乎都有约束条件:
比如:在直线、圆、不等式范围内找最值。
此时 不能直接令梯度为0,必须用:拉格朗日乘子法。
二、等式约束优化(拉格朗日)
{minf(x)s.t.h(x)=0\boxed {\begin{cases} \min f(\boldsymbol x) & \\ s.t. \quad h(\boldsymbol x)= 0 \end{cases}}{minf(x)s.t.h(x)=0
s.t.h(x)=0s.t.\quad h(\boldsymbol{x}) = 0s.t.h(x)=0 是约束函数是人为定义的
构造拉格朗日函数:
L(x,λ)=f(x)+λh(x)\boxed {\mathcal{L}(\boldsymbol{x},\lambda)=f(\boldsymbol{x})+\lambda h(\boldsymbol{x})}L(x,λ)=f(x)+λh(x)
λ\lambdaλ:拉格朗日乘子(新增未知变量)
最优必要条件(3 组方程)
{∇xL=∇f(x)+λ∇h(x)=0∇λL=h(x)=0∇f(x)=−λ∇h(x)\boxed { \begin{cases}\nabla_{\boldsymbol{x}} \mathcal{L} = \nabla f(\boldsymbol{x}) + \lambda \nabla h(\boldsymbol{x}) = \boldsymbol{0} \\\nabla_{\lambda} \mathcal{L} = h(\boldsymbol{x}) = 0\\\nabla f(\boldsymbol x)=-\lambda \nabla h(\boldsymbol x) \end{cases}}⎩⎨⎧∇xL=∇f(x)+λ∇h(x)=0∇λL=h(x)=0∇f(x)=−λ∇h(x)
三、 一维例题演算
求解:
{minf(x1,x2)=x12+x22s.t.h(x1,x2)=x1+x2−2=0\begin{cases}\min f(x_1,x_2)=x_1^2+x_2^2 \\\text{s.t.}\quad h(x_1,x_2)=x_1+x_2-2=0\end{cases}{minf(x1,x2)=x12+x22s.t.h(x1,x2)=x1+x2−2=0
构造拉格朗日函数:
L=x12+x22+λ(x1+x2−2)\mathcal{L}=x_1^2+x_2^2+\lambda(x_1+x_2-2)L=x12+x22+λ(x1+x2−2)
求偏导等于 0:
{∂L∂x1=2x1+λ=0∂L∂x2=2x2+λ=0∂L∂λ=x1+x2−2=0\begin{cases}\dfrac{\partial \mathcal{L}}{\partial x_1}=2x_1+\lambda=0\\[4pt]\dfrac{\partial \mathcal{L}}{\partial x_2}=2x_2+\lambda=0\\[4pt]\dfrac{\partial \mathcal{L}}{\partial \lambda}=x_1+x_2-2=0\end{cases}⎩⎨⎧∂x1∂L=2x1+λ=0∂x2∂L=2x2+λ=0∂λ∂L=x1+x2−2=0
解方程:
{x1=1x2=1λ=−2minf(x1,x2)=f(1,1)=2\begin{cases} x_1=1\\x_2=1\\\lambda=-2\\ \min f(x_1,x_2)=f(1,1)=2 \end{cases}⎩⎨⎧x1=1x2=1λ=−2minf(x1,x2)=f(1,1)=2
四、多个等式约束
{minf(x)h1(x)=0h2(x)=0\begin{cases}\min f(\boldsymbol{x}) \\h_1(\boldsymbol{x})=0 \\h_2(\boldsymbol{x})=0\end{cases}⎩⎨⎧minf(x)h1(x)=0h2(x)=0
L=f(x)+λ1h1(x)+λ2h2(x)\mathcal{L}=f(\boldsymbol{x})+\lambda_1 h_1(\boldsymbol{x})+\lambda_2 h_2(\boldsymbol{x})L=f(x)+λ1h1(x)+λ2h2(x)
KKT (Karush–Kuhn–Tucker)条件
1. 回顾分界线
-
普通拉格朗日乘子法:只能处理 等式约束 h(x)=0h(\boldsymbol{x})=0h(x)=0
-
KKT是拉格朗日升级版,同时支持:等式约束 + 不等式约束
2.统一用极小化形式
{minxf(x)s.t.gi(x)≤0,i=1,…,m不等式约束hj(x)=0,j=1,…,n等式约束\boxed {\begin{cases}\displaystyle \min_{\boldsymbol{x}} f(\boldsymbol{x}) \\[4pt]\text{s.t.} \quad g_i(\boldsymbol{x}) \le 0,\quad i=1,\dots,m \quad \text{不等式约束}\\[4pt]\quad\quad h_j(\boldsymbol{x}) = 0,\quad j=1,\dots,n \quad \text{等式约束}\end{cases}}⎩⎨⎧xminf(x)s.t.gi(x)≤0,i=1,…,m不等式约束hj(x)=0,j=1,…,n等式约束
构造 拉格朗日 函数:
L(x,λ,ν)=f(x)+∑i=1mλigi(x)⏟λi:不等式约束乘子+∑j=1nνjhj(x)⏟νj:等式约束乘子\boxed{\mathcal{L}(\boldsymbol{x},\boldsymbol{\lambda},\boldsymbol{\nu})= f(\boldsymbol{x})+\underbrace{\sum_{i=1}^m \lambda_i g_i(\boldsymbol{x})}_{\lambda_i :不等式约束乘子}+ \underbrace{\sum_{j=1}^n \nu_j h_j(\boldsymbol{x})}_{\nu_j:等式约束乘子}}L(x,λ,ν)=f(x)+λi:不等式约束乘子i=1∑mλigi(x)+νj:等式约束乘子j=1∑nνjhj(x)
3. KKT 五大核心条件
若 x∗\boldsymbol{x}^*x∗ 是局部最优解(满足约束规范),必满足:
{1.驻点条件:∇f(x∗)+∑λi∇gi(x∗)+∑νj∇hj(x∗)=02.3.原可行性:gi(x∗)≤0,hj(x∗)=04.对偶可行性:λi≥05.互补松弛:λi⋅gi(x∗)=0\boxed{\begin{cases}1.\text{驻点条件:}\nabla f(\boldsymbol{x}^*)+\displaystyle\sum\lambda_i\nabla g_i(\boldsymbol{x}^*)+\sum\nu_j\nabla h_j(\boldsymbol{x}^*)=\boldsymbol{0}\\[4pt]2.3.\text{原可行性:}g_i(\boldsymbol{x}^*)\le 0,\quad h_j(\boldsymbol{x}^*)=0\\[4pt]4.\text{对偶可行性:}\lambda_i \ge 0\\[4pt]5.\textbf{互补松弛:}\lambda_i \cdot g_i(\boldsymbol{x}^*) = 0\end{cases}}⎩⎨⎧1.驻点条件:∇f(x∗)+∑λi∇gi(x∗)+∑νj∇hj(x∗)=02.3.原可行性:gi(x∗)≤0,hj(x∗)=04.对偶可行性:λi≥05.互补松弛:λi⋅gi(x∗)=0
互补松弛 λigi=0\boldsymbol{\lambda_i g_i=0}λigi=0
对每一条不等式约束,只有两种可能:
情况 一: 约束未激活(松弛)
gi(x∗)<0g_i(\boldsymbol{x}^*) < 0gi(x∗)<0 约束没有限制最优解,相当于不存在,必须 λi=0\boldsymbol{\lambda_i=0}λi=0
情况 二:约束激活(紧约束)
gi(x∗)=0g_i(\boldsymbol{x}^*) = 0gi(x∗)=0 最优解卡在约束边界上,约束生效,λi≥0\boldsymbol{\lambda_i \ge 0}λi≥0
4.例题演算
1.只含不等式约束,不带等式
求解:
{minf(x)=x2s.t. g(x)=x−3≤0\begin{cases}\min f(x) = x^2 \\\text{s.t. } g(x)=x-3 \le 0\end{cases}{minf(x)=x2s.t. g(x)=x−3≤0
构造拉格朗日函数:
L=x2+λ(x−3)\mathcal{L}=x^2+\lambda(x-3)L=x2+λ(x−3)
列出全部 KKT 条件
{1.∂L∂x=2x+λ=02.g(x)=x−3≤03.λ≥04.λg(x)=λ(x−3)=0\begin{cases}1.\quad \dfrac{\partial \mathcal{L}}{\partial x}=2x+\lambda=0 \\2.\quad g(x)=x-3 \le 0 \\3.\quad \lambda \ge 0 \\ 4.\quad \lambda g(x)=\lambda(x-3)=0\end{cases}⎩⎨⎧1.∂x∂L=2x+λ=02.g(x)=x−3≤03.λ≥04.λg(x)=λ(x−3)=0
分两类讨论:
情况 一: 约束松弛 g(x)<0 则 λ=0g({x}) < 0 \ 则 \ {\lambda=0}g(x)<0 则 λ=0
{1.∂L∂x=2x+λ=0✅2.g(x)=x−3≤0✅3.λ≥0✅4.λg(x)=λ(x−3)=0✅\begin{cases}1.\quad \dfrac{\partial \mathcal{L}}{\partial x}=2x+\lambda=0 ✅ \\2.\quad g(x)=x-3 \le 0 ✅\\3.\quad \lambda \ge 0 ✅\\ 4.\quad \lambda g(x)=\lambda(x-3)=0✅\end{cases}⎩⎨⎧1.∂x∂L=2x+λ=0✅2.g(x)=x−3≤0✅3.λ≥0✅4.λg(x)=λ(x−3)=0✅
符合所有 KKT 条件 ✅
情况 二:约束激活 g(x)=x−3=0g({x}) = x-3=0g(x)=x−3=0 则 x=3x=3x=3
{1.∂L∂x=2∗3+λ=0,λ=−62.g(x)=x−3≤0✅3.λ≥0❌4.λg(x)=λ(x−3)=0✅\begin{cases}1.\quad \dfrac{\partial \mathcal{L}}{\partial x}=2*3+\lambda=0,\lambda=-6 \\2.\quad g(x)=x-3 \le 0 ✅\\3.\quad \lambda \ge 0 ❌\\ 4.\quad \lambda g(x)=\lambda(x-3)=0✅\end{cases}⎩⎨⎧1.∂x∂L=2∗3+λ=0,λ=−62.g(x)=x−3≤0✅3.λ≥0❌4.λg(x)=λ(x−3)=0✅
λ=−6\lambda=-6λ=−6 不符合 KKT λ≥0\lambda \ge 0λ≥0条件 ,❌
最终最优解:x∗=0\boldsymbol{x^*=0}x∗=0
1.不等式约束+带等式
求解:
{minf(x1,x2)=x12+x22s.t.g(x1,x2)=x1+x2−4≤0不等式约束h(x1,x2)=x1−x2+2=0等式约束\begin{cases}\displaystyle \min f(x_1,x_2)=x_1^2+x_2^2 \\[4pt]\text{s.t.}\quad g(x_1,x_2)=x_1+x_2-4 \le 0 \quad &\text{不等式约束}\\[4pt]\quad\quad h(x_1,x_2)=x_1-x_2+2=0 \quad &\text{等式约束}\end{cases}⎩⎨⎧minf(x1,x2)=x12+x22s.t.g(x1,x2)=x1+x2−4≤0h(x1,x2)=x1−x2+2=0不等式约束等式约束
构造 拉格朗日 函数
L(x1,x2,λ,ν)=x12+x22+λ(x1+x2−4)+ν(x1−x2+2)\mathcal{L}(x_1,x_2,\lambda,\nu) = x_1^2+x_2^2+\lambda(x_1+x_2-4)+\nu(x_1-x_2+2)L(x1,x2,λ,ν)=x12+x22+λ(x1+x2−4)+ν(x1−x2+2)
列出全部 KKT 条件
{1.∂L∂x1=2x1+λ+ν=02.∂L∂x2=2x2+λ−ν=03.g(x1,x2)=x1+x2−4≤04.h(x1,x2)=x1−x2+2=05.λ≥06.λg(x1,x2)=λ(x1+x2−4)=0\begin{cases}1.\quad \dfrac{\partial \mathcal{L}}{\partial x_1}=2x_1+\lambda+\nu=0 \\2.\quad \dfrac{\partial \mathcal{L}}{\partial x_2}=2x_2+\lambda-\nu=0 \\3.\quad g(x_1,x_2)=x_1+x_2-4\le 0 \\4.\quad h(x_1,x_2) =x_1-x_2+2= 0 \\5.\quad \lambda \ge 0 \\6.\quad \lambda g(x_1,x_2)=\lambda(x_1+x_2-4)=0\end{cases}⎩⎨⎧1.∂x1∂L=2x1+λ+ν=02.∂x2∂L=2x2+λ−ν=03.g(x1,x2)=x1+x2−4≤04.h(x1,x2)=x1−x2+2=05.λ≥06.λg(x1,x2)=λ(x1+x2−4)=0
情况 一: 约束松弛 g(x)<0 则 λ=0g({x}) < 0 \ 则 \ {\lambda=0}g(x)<0 则 λ=0
{2x1+λ+ν=02x2+λ−ν=0x1−x2+2=0 ⟹ {2x1+2x2+2λ=0x1−x2=−2⇒{x1=−1x2=1\begin{cases}
2x_1+\lambda+\nu=0 \\
2x_2+\lambda-\nu=0\\
x_1-x_2+2= 0
\end{cases} \implies
\begin{cases} 2x_1+2x_2 +2 \lambda=0 \\ x_1-x_2=-2
\end{cases} \Rightarrow
\begin{cases} x_1=-1 \\ x_2=1
\end{cases}⎩⎨⎧2x1+λ+ν=02x2+λ−ν=0x1−x2+2=0⟹{2x1+2x2+2λ=0x1−x2=−2⇒{x1=−1x2=1
符合所有 KKT 条件 ✅ minf(−1,1)\min f(-1,1)minf(−1,1)
情况 二:约束激活 g(x1,x2)=x1+x2−4=0g(x_1,x_2) =x_1+x_2-4 =0g(x1,x2)=x1+x2−4=0 联立两条等式:
{x1+x2=4x1−x2=−2 ⟹ {x1=1x2=3\begin{cases}x_1+x_2=4\\x_1-x_2=-2\end{cases} \implies \begin{cases}x_1=1\\x_2=3\end{cases}{x1+x2=4x1−x2=−2⟹{x1=1x2=3
\quad
{2x1+λ+ν=02x2+λ−ν=0⇒{2x1+2x2+2λ=0⇒λ=−4❌\begin{cases}
2x_1+\lambda+\nu=0 \\
2x_2+\lambda-\nu=0\\
\end{cases} \Rightarrow
\begin{cases} 2x_1+2x_2 +2 \lambda=0
\end{cases} \Rightarrow \lambda=-4 ❌{2x1+λ+ν=02x2+λ−ν=0⇒{2x1+2x2+2λ=0⇒λ=−4❌
λ=−4\lambda=-4λ=−4 不符合 KKT λ≥0\lambda \ge 0λ≥0条件 ❌
最终最优解:minf(−1,1)\min f(-1,1)minf(−1,1)

6750

被折叠的 条评论
为什么被折叠?



