非线性优化-拉格朗日乘子法

主 要 摘 自 《 非 线 性 优 化 》 \color{#F00}{主要摘自《非线性优化》} 线
\qquad 优化问题通常会分为有约束和无约束两类,考虑到这种结构,通过引入一些辅助变量,即拉格朗日乘子,获得一组复杂的最优化条件。

等式约束优化问题

\qquad 考虑等式约束的优化问题
m i n i m i z e f ( x ) s u b j e c t   t o h i ( x ) = 0 minimize\quad f(x)\\ subject\ to\quad h_{i}(x)=0 minimizef(x)subject tohi(x)=0
在这里插入图片描述
\qquad 上图中, g ( x , y ) = c g(x,y)=c g(x,y)=c为约束条件, f ( x , y ) f(x,y) f(x,y)为目标函数。由此可得目标函数和约束函数的梯度关系
∇ f ( x ∗ ) + ∑ i = 1 m λ i ∇ h i ( x ∗ ) = 0 \nabla f(x^{*})+\sum_{i=1}^{m}\lambda_{i}\nabla h_{i}(x^{*})=0 f(x)+i=1mλihi(x)=0 其 中 λ 其中\lambda λ非负
\qquad 拉格朗日乘子定理的必要条件为: 如果 x ∗ x^{*} x是函数 f f f h ( x ) = 0 h(x)=0 h(x)=0条件下的局部最小值点,假定约束梯度 ∇ h 1 ( x ) , . . . , ∇ h m ( x ) \nabla h_{1}(x),...,\nabla h_{m}(x) h1(x),...,hm(x)线性无关,那么存在唯一向量 λ ∗ = ( λ 1 ∗ , . . . , λ m ∗ ) \lambda^{*}=(\lambda_{1}^{*},...,\lambda_{m}^{*}) λ=(λ1,...,λm),即为拉格朗日乘子,使得
∇ f ( x ∗ ) + ∑ i = 1 m λ i ∇ h i ( x ∗ ) = 0 \nabla f(x^{*})+\sum_{i=1}^{m}\lambda_{i}\nabla h_{i}(x^{*})=0 f(x)+i=1mλihi(x)=0进一步如果 f f f h h h二次连续可微,则有(二阶必要性条件)
y ′ ( ∇ 2 f ( x ∗ ) + ∑ i = 1 m λ i ∗ ∇ 2 h i ( x ) ) y ≥ 0 y ∈ V ( x ∗ ) y^{'}(\nabla^{2}f(x^{*})+\sum_{i=1}^{m}\lambda_{i}^{*}\nabla^{2}h_{i}(x))y\ge 0\quad y\in V(x^{*}) y(2f(x)+i=1mλi2hi(x))y0yV(x)其中, y y y是变分 V ( x ∗ ) V(x^{*}) V(x)一阶可行变子空间,即
V ( x ∗ ) = { y ∣ ∇ h i ( x ) ′ y = 0 ,   i = 1 , . . . , m } V(x^{*})=\{y|\nabla h_{i}(x)^{'}y=0,\ i=1,...,m\} V(x)={yhi(x)y=0, i=1,...,m} \qquad 对可行域上一点进行泰勒展开 h ( x ∗ + y ) = h ( x ∗ ) + ∇ h ( x ∗ ) ′ y + o ( y ) h(x^{*}+ y)=h(x^{*})+\nabla h(x^{*})^{'}y+o(y) h(x+y)=h(x)+h(x)y+o(y),由等式约束条件得 ∇ h i ( x ∗ ) ′ y = 0 \nabla h_{i}(x^{*})^{'}y=0 hi(x)y=0

不等式约束优化问题

\qquad 不等式约束问题如下:
m i n i m i z e f ( x ) s u b j e c t   t o h 1 ( x ) = 0 , . . . , h m ( x ) = 0 ,   g 1 ( x ) ≤ 0 , . . . , g r ( x ) ≤ 0 minimize\quad f(x)\\ subject\ to\quad h_{1}(x)=0,...,h_{m}(x)=0,\\ \ \qquad\qquad g_{1}(x)\leq0,...,g_{r}(x)\leq0 minimizef(x)subject toh1(x)=0,...,hm(x)=0, g1(x)0,...,gr(x)0对任意的可行点 x x x,积极的不等式约束集为
A ( x ) = { j ∣ g j ( x ) = 0 } A(x)=\{j|g_{j}(x)=0\} A(x)={jgj(x)=0} \qquad 如果 j ∉ A ( x ) j\notin A(x) j/A(x),那么我们称第 j j j个约束在 x x x点处是非积极的。拉格朗日函数可以定义为:
L ( x , λ , μ ) = f ( x ) + ∑ i = 1 m λ i h i ( x ) + ∑ j = 1 r μ j g j ( x ) L(x,\lambda,\mu)=f(x)+\sum_{i=1}^{m}\lambda_{i}h_{i}(x)+\sum_{j=1}^{r}\mu_{j}g_{j}(x) L(x,λ,μ)=f(x)+i=1mλihi(x)+j=1rμjgj(x) \qquad 其中,局部最小值为 L ( x ∗ , λ ∗ , μ ∗ ) = f ( x ∗ ) + ∑ i = 1 m λ i ∗ h i ( x ∗ ) + ∑ j = 1 r μ j ∗ g j ( x ∗ ) L(x^{*},\lambda^{*},\mu^{*})=f(x^{*})+\sum_{i=1}^{m}\lambda_{i}^{*}h_{i}(x^{*})+\sum_{j=1}^{r}\mu_{j}^{*}g_{j}(x^{*}) L(x,λ,μ)=f(x)+i=1mλihi(x)+j=1rμjgj(x),在具有不等式约束的优化问题中。当最优点 x ∗ x^{*} x在不等式约束边界内时, μ ∗ = 0   ∀ j ∉ A ( x ∗ ) \mu^{*}=0\ \forall j\notin A(x^{*}) μ=0 j/A(x)。当最优点 x ∗ x^{*} x在不等式约束边界上时, g i ∗ ( x ) = 0   ∀ j ∈ A ( x ∗ ) g_{i}^{*}(x)=0\ \forall j\in A(x^{*}) gi(x)=0 jA(x)(一二阶必要性条件和可行变分子空间同上)。(KKT必要性条件)
\qquad 条件中对所有的 j ∉ A ( x ∗ ) j\notin A(x^{*}) j/A(x),均有 μ j ∗ = 0 \mu_{j}^{*}=0 μj=0,其可简写为
μ ∗ g i ( x ∗ ) = 0 , j = 1 , . . . , r \mu^{*}g_{i}(x^{*})=0,\quad j=1,...,r μgi(x)=0,j=1,...,r称为互补松弛条件,来源于对于任意的 j j j,要么约束 g j ( x ∗ ) ≤ 0 g_{j}(x^{*})\leq 0 gj(x)0被松弛为 g i ( x ) &lt; 0 g_{i}(x)&lt;0 gi(x)<0,拉格朗日乘子 μ j ∗ ≥ 0 \mu_{j}^{*}\ge 0 μj0只能取 μ j ∗ = 0 \mu^{*}_{j}=0 μj=0,要么反之。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
拉格朗日乘子法是一种优化算法,应用于具有约束条件的优化问题。它的原理是基于拉格朗日乘子的概念,在求解有约束问题的时候,将约束条件转化为目标函数的一部分,通过求解该新的目标函数,得到问题的最优解。 在使用拉格朗日乘子法时,首先根据问题的约束条件构造拉格朗日函数。拉格朗日函数是由目标函数和约束条件组成的,目标函数会被调整为加入拉格朗日乘子与约束条件的乘积,同时每个约束条件都会有一个对应的拉格朗日乘子。然后,通过求取拉格朗日函数的偏导数,将其等于0,可以得到一组方程,包括目标函数的梯度和约束条件的梯度。将这些方程联立求解,就可以得到问题的最优解。 对于拉格朗日函数的求解,可以采用数值方法,例如使用fmincon算法。fmincon是一种非线性约束最小化算法,可以求解具有非线性约束的优化问题。它的实现基于拉格朗日乘子法,通过迭代的方式逼近最优解。在每一次迭代中,通过求解一组子问题,不断调整拉格朗日乘子的值,直到找到最优解为止。 总之,拉格朗日乘子法是一种基于拉格朗日函数的优化算法,通过将约束条件转化为目标函数的一部分,再利用数值方法求解最优解。而fmincon算法则是一种具体的数值方法实现,可以应用于求解具有非线性约束的优化问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值