OSQP是一种求解QP问题的数值优化软件,以下简单介绍OSQP软件的使用方法
一、 概述
首先是凸优化问题的定义以及两种典型的特例(线性规划与二次规划),如下图所示。
这里不介绍QP问题的拓展形式如SOCP等
OSQP软件的核心是ADMM算法
Ø交替方向乘子法(Alternating Direction Method of Multipliers,ADMM)是一种求解优化问题的计算框架, 适用于求解分布式凸优化问题
如果仅仅是简单的使用,不需要了解ADMM算法,但是如果调试OSQP软件的参数,就需要深入了解ADMM算法。
二、OSQP-Eigen核心代码
以下主要介绍三个重要的头文件:
Data类:对C语言OSQP中的OSQPData(struct)进行包装
Setting类:对C语言OSQP中的OSQPSetting(struct)进行包装
Solver类:对C语言OSQP中的OSQPWorkspace(struct)进行包装
(1)Data类
(2)Setting类
(3)Solver类
三、求解过程
OSQP求解过程为6步曲:
(1)创建求解器Solver的实例
(2)设置Setting参数
(3)设置Data参数
(4)初始化求解器Solver
(5)求解优化问题
(6)提取最优解
四、实例