2023-10-15-增广拉格朗日方法在iLQR算法中的应用

本文介绍了增广拉格朗日方法在iLQR算法中处理约束条件的应用,详细阐述了从约束优化问题、增广拉格朗日法的迭代公式到更新乘子和惩罚系数的整个流程。
摘要由CSDN通过智能技术生成

增广拉格朗日方法在iLQR算法中的应用

背景

在之前的文章《iLQR算法公式推导》中,我们推导了iLQR算法在无约束情况下的迭代公式,但是在实际应用中,我们往往需要考虑约束条件。本文将介绍如何使用增广拉格朗日法Augmented Lagrangian Methods来处理约束条件。

约束优化问题

具有约束的优化问题具有如下形式:

min ⁡ x 0 : N , u 0 : N − 1 ℓ N ( x N ) + ∑ k = 0 N − 1 ℓ k ( x k , u k ) s . t . x k + 1 = f ( x k , u k ) , k = 0 , ⋯   , N − 1 g k ( x k , u k ) ≤ 0 , h k ( x k , u k ) = 0 , (1) \begin{aligned} \min_{x_{0:N},u_{0:N-1}} \quad & \ell_N(x_N)+\sum_{k=0}^{N-1}\ell_k(x_k,u_k)\\ s.t. \quad & x_{k+1}=f(x_k,u_k),\quad k=0,\cdots,N-1\\ & g_k(x_k,u_k)\leq 0,\\ & h_k(x_k,u_k)=0, \end{aligned} \tag{1} x0:N,u0:N1mins.t.N(xN)+k=0N1k(xk,uk)xk+1=f(xk,uk),k=0,,N1gk(xk,uk)0,hk(xk,uk)=0,(1)

其中 k k k是时间步, x k ∈ R n x x_k\in\mathbb{R}^{n_x} xkRnx是状态, u k ∈ R n u u_k\in\mathbb{R}^{n_u} ukRnu是控制量, f f f是状态转移函数, ℓ f \ell_f f是终端损失函数, ℓ k \ell_k k是中间损失函数, g k g_k gk是不等式约束, h k h_k hk是等式约束。

增广拉格朗日法

将约束优化问题转化为增广拉格朗日函数的形式:

L ( x 0 : N , u 0 : N − 1 , λ 0 : N , μ 0 : N − 1 ) = ℓ N ( x N ) + ( λ N + 1 2 I μ N c N ( x N ) ) T c N ( x N ) + ∑ k = 0 N − 1 [ ℓ k ( x k , u k ) + ( λ k + 1 2 I μ k c k ( x k , u k ) ) T c k ( x k , u k ) ] = L N ( x N , λ N , μ N ) + ∑ k = 0 N − 1 L k ( x k , u k , λ k , μ k ) , (2) \begin{aligned} \mathcal{L}(x_{0:N},u_{0:N-1},\lambda_{0:N},\mu_{0:N-1})&=\ell_N(x_N)+(\lambda_N + \frac{1}{2}I_{\mu_N}c_N(x_N))^Tc_N(x_N)\\ &+\sum_{k=0}^{N-1}\left[\ell_k(x_k,u_k)+(\lambda_k + \frac{1}{2}I_{\mu_k}c_k(x_k,u_k))^Tc_k(x_k,u_k)\right]\\ &=\mathcal{L}_N(x_N,\lambda_N,\mu_N)+\sum_{k=0}^{N-1}\mathcal{L}_k(x_k,u_k,\lambda_k,\mu_k), \end{aligned} \tag{2} L(x0:N,u0:N1,λ0:N,μ0:N1)=N(xN)+(λN+21IμNcN(xN))TcN(xN)+k=0N1[k(xk,uk)+(λk+21Iμkck(xk,uk))Tck(xk,uk)]=LN(xN,λN,μN)+k=0N1Lk(xk,uk,λk,μk),(2)

其中 λ k ∈ R p k \lambda_k\in\mathbb{R}^{p_k} λkRpk是拉格朗日乘子, μ k ∈ R p k \mu_k\in\mathbb{R}^{p_k} μkRpk是惩罚系数, c k = ( g k , h k ) ∈ R p k c_k=(g_k,h_k)\in\mathbb{R}^{p_k} ck=(gk,hk)Rpk是不等式约束和等式约束的组合,相应的,不等式约束的序号和等式约束的序号的集合分别是 I k \mathcal{I}_k Ik E k \mathcal{E}_k Ek I μ k I_{\mu_k} Iμk是对角矩阵,它的定义如下:

I μ k , i i = { 0 , if  c k i < 0   ∧   λ k i = 0 , i ∈ I k μ k i , otherwise , (3) I_{\mu_k,ii}= \begin{cases} 0, & \text{if $c_{k_i}<0$ $\land$ $\lambda_{k_i} = 0$},i\in\mathcal{I}_k\\ \mu_{k_i}, & \text{otherwise}, \end{cases} \tag{3} Iμk,ii={ 0,μki,if cki< λki=0,iIkotherwise,(3)

其中 k i k_i ki表示第 k k k个时间步的第 i i i个约束, c k i c_{k_i} cki表示第 k k k个时间步的第 i i i个约束的值, λ k i \lambda_{k_i} λki表示第 k k k个时间步的第 i i i个约束的拉格朗日乘子, μ k i \mu_{k_i} μki表示第 k k k个时间步的第 i i i个约束的惩罚系数。

系统的动力学约束可以通过如下方式显式得处理:使用系统的初始状态 x 0 x_0 x0和控制量 u 0 : N − 1 u_{0:N-1} u0:N1,通过状态转移函数 f f f得到状态序列 x 1 : N x_{1:N} x1:N

增广拉格朗日法的迭代公式

根据iLQR算法的反向传播过程,我们可以通过固定拉格朗日乘子和惩罚系数来定义cost-to-go函数:

J ^ N ( x N ) ∣ λ , μ = L N ( x N , λ N , μ N ) = ℓ N ( x N ) + ( λ N + 1 2 I μ N c N ( x N ) ) T c N ( x N ) J ^ k ( x k ) ∣ λ , μ = min ⁡ u k [ L k ( x k , u k , λ k , μ k ) + J ^ k + 1 ( f ( x k , u k ) ) ∣ λ , μ ] = min ⁡ u k J ~ k ( x k , u

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值