OSQP二次规划求解库使用说明
贺志国
2023.5.10
1. 凸二次规划的一般表达式
min12xTPx+qTxs.t.l≤Ax≤u min \quad \frac{1}{2}x^T Px + q^Tx \qquad s.t. \quad l \leq Ax \leq u min21xTPx+qTxs.t.l≤Ax≤u
其中,PPP称为内核矩阵,要求是半正定矩阵。正定矩阵在复数域上是共轭对称矩阵(Hermite矩阵),在实数域上是对称矩阵。因为我们在实数域内求解,PPP也是一个对称矩阵。qqq称为偏移向量,AAA称为仿射矩阵。
凸二次规划的求解算法主要有如下几种:
- 有效集法:Active Set Method
- 内点法:Interior Point Method
- 一阶方法:First Order Method
- 交替方向乘子法:Alternating Direction Method of Multipliers(ADMM)
OSQP利用交替方向乘子法(ADMM)求解,qpOASES则利用有效集法,从网上给出的测评报告看,OSQP库的求解效率比qpOASES库要高很多。
2. 使用OSQP求解凸二次规划的简单示例
为了形象地说明使用OSQP求解凸二次规划的过程,下面给出一个简单的示例:
min12xT[4112]x+[11]Tx min \quad \frac{1}{2}x^T\left[\begin{matrix} 4 & 1\\ 1 & 2\end{matrix}\right]x + \left[\begin{matrix} 1 \\ 1\end{matrix}\right]^Tx min21xT[41

文章介绍了二次规划的一般形式和求解算法,如有效集法、内点法和ADMM等。重点讨论了OSQP库,它采用ADMM方法,相比qpOASES具有更高的求解效率。文中提供了一个简单的OSQP使用示例,展示如何设置内核矩阵P、偏移向量q、仿射矩阵A以及边界条件,并提供了相应的C代码片段来说明如何用OSQP解决凸二次规划问题。
最低0.47元/天 解锁文章
501

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



