约束优化算法(1) Lagrangian乘子法 #notebook

本文来自 矩阵分析与应用,第二版
约束优化算法的标准处理方式是将其转化为无约束优化算法,有三种常见的转化方式,分别是lagrangian乘子法,罚函数法以及增广lagrangian乘子法(lagrangian乘子法+罚函数法)。
下面分别介绍拉格朗日乘子法

拉格朗日乘子法

考虑等式约束凸优化问题
min ⁡ f ( x ) subject to  A x = b (1) \min f(\boldsymbol{x})\quad\text{subject to }A\boldsymbol{x}=\boldsymbol{b} \tag{1} minf(x)subject to Ax=b(1)
其中 x ∈ R n , A ∈ R m × n x \in \mathbb{R}^{n},A \in \mathbb{R}^{m \times n} xRn,ARm×n,并且目标函数 f : R n → R f : \mathbb{R}^n \rightarrow \mathbb{R} f:RnR是凸函数。

lagrangian乘子法将式(1)变成无约束最小化问题,其lagrangian目标函数
L ( x , λ ) = f ( x ) + λ T ( A x − b ) (2) L(x,\lambda)=f(x)+\lambda^{\mathrm{T}}(Ax-b) \tag{2} L(x,λ)=f(x)+λT(Axb)(2)
原始优化问题(1)的对偶目标函数
g ( λ ) = inf ⁡ x L ( x , λ ) = − f ⋆ ( − A T λ ) − b T λ (3) g(\lambda)=\inf_{\boldsymbol{x}}L(\boldsymbol{x},\boldsymbol{\lambda})=-f^{\star}(-\boldsymbol{A}^{\mathrm{T}}\boldsymbol{\lambda})-\boldsymbol{b}^{\mathrm{T}}\boldsymbol{\lambda} \tag{3} g(λ)=xinfL(x,λ)=f(ATλ)bTλ(3)
其中 λ \lambda λ为对偶变量或者称为Lagrangian乘子向量, f ⋆ f^{\star} f f f f的凸共轭函数。

在这里插入图片描述
− sup ⁡ x ∈ D f ( x ) = inf ⁡ x ∈ D { − f ( x ) } -\sup_{x\in D}f(x)=\inf_{x\in D}\{-f(x)\} xDsupf(x)=xDinf{f(x)}

借助lagrangian乘子法,原始等式约束极小化式(1)变成对偶极大化问题
max ⁡ λ ∈ R m g ( λ ) = − f ∗ ( − A T λ ) − b T λ (4) \max_{\lambda\in\mathbb{R}^{m}}g(\lambda)=-f^{*}(-A^{\mathrm{T}}\lambda)-b^{\mathrm{T}}\lambda \tag{4} λRmmaxg(λ)=f(ATλ)bTλ(4)

假定强对偶性满足,则原始问题和对偶问题的最优解相同。此时,原始极小化问题式(1)的最优解点 x ∗ \boldsymbol{x}^* x即可由下式恢复
x ∗ = arg ⁡ min ⁡ x L ( x , λ ⋆ ) (5) \boldsymbol{x}^* = \underset{\boldsymbol{x}}{\arg \min} L(\boldsymbol{x},\boldsymbol{\lambda}^\star) \tag{5} x=xargminL(x,λ)(5)

在对偶上升法(dual ascent method)中,利用梯度上升法求解极大化问题式(4)。对偶上升法由两个步骤组成
x k + 1 = arg ⁡ min ⁡ x L ( x , λ k ) λ k + 1 = λ k + μ k ( A x k + 1 − b ) \begin{align*} \boldsymbol{x}_{k+1} = \underset{\boldsymbol{x}}{\arg \min} L(\boldsymbol{x},\boldsymbol{\lambda}_k) \tag{6} \\ \boldsymbol{\lambda}_{k+1} = \boldsymbol{\lambda}_{k} + \mu_k(\boldsymbol{A} \boldsymbol{x}_{k+1} - \boldsymbol{b}) \tag{7} \end{align*} xk+1=xargminL(x,λk)λk+1=λk+μk(Axk+1b)(6)(7)

其中式(6)为原始变量 x \boldsymbol{x} x极小化步骤,式(7)则是对偶变量 λ \boldsymbol{\lambda} λ更新步骤,其步长为 μ k \mu_{k} μk

由于对偶变量 λ ⪰ 0 \lambda \succeq 0 λ0可解释为一价格向量,所以对偶变量的更新也叫价格上升(price ascent)或价格调整(price adjustment)步骤。价格上升的目的就是使收益函数 g ( λ k ) g(\boldsymbol{\lambda}^k) g(λk)趋近于最大化。

对偶上升法包含有两层含义:

  • 对偶变量 λ \boldsymbol{\lambda} λ的更新采用梯度上升法
  • 通过步长 μ k \mu_k μk的适当选择,保证对偶目标函数的上升,即 g ( λ k + 1 ) > g ( λ k ) g(\boldsymbol{\lambda}^{k+1}) >g(\boldsymbol{\lambda}^k) g(λk+1)>g(λk)

思维导图

Convex Optimization with Equality Constraints
│
├── Lagrangian Multiplier Method
│   ├── Origin: Optimization Problem
│   │   └── min f(x) subject to Ax = b
│   │
│   └── Transform: Lagrangian Function
│       └── L(x,λ) = f(x) + λᵀ(Ax - b)
│
├── Dual Objective Function
│   └── Derive: Dual Function
│       └── g(λ) = inf_x L(x, λ)
│           └── = -f* (-Aᵀλ) - bᵀλ
│
├── Dual Ascent Method
│   ├── Objective: Maximize λ g(λ)
│   │   └── = -f* (-Aᵀλ) - bᵀλ
│   │
│   ├── Step 1: Minimize L(x, λk) for x
│   │   └── x(k+1) = arg min_x L(x, λk)
│   │
│   └── Step 2: Update λ
│       └── λ(k+1) = λk + μk(Ax(k+1) - b)
│           └── Price ascent or adjustment step
│
└── Strong Duality
    ├── Assumption: Strong Duality Satisfied
    │
    └── Recover Solution: Optimal x*
        └── x* = arg min_x L(x, λ*)

参考

  • 矩阵分析与应用,第二版
  • 34
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值