欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

轨迹规划-二次规划QP

程序员文章站 2022-05-21 19:58:24
...

1. 二次规划的由来

在1940年左右(1939年 Leonid Kantorovich 总结发表了线性规划), 线性规划LP被提出来, 10年后, QP作为Non-Linear Programming, NLP被总结发表。

顾名思义, 二次规划就是把一次规划(线性规划, LP)的目标公式扩展到二次函数:
轨迹规划-二次规划QP
这里 Q 是对称矩阵(Symmetric Matrix)

那么这样修改目标之后, 会带来什么改变?

首先从图上来看, 最大的变化就是二次带来等高线( contour line )不再是直线, 这样使得最值点不再是限制多面体的角上,可能是边上,或者内部。
轨迹规划-二次规划QP
同时, 这样改变之后有什么好处?

QP第一次统一了线性规划LP和最小二乘法LS,

欧式距离: 最小二乘法,LS
Hamitton 距离,或者Chebyshev距离: 线性回归, LP

这样,基于利用QP就可以统一描述不同距离公式下的回归的参数求解。

前面, 我们说了QP是LP和LP在不同角度的扩展:

  1. QP是LP的扩展, LP是QP在二次项系数为0时候(Q=0)的特例。

  2. QP是LS的扩展, LS是QP在一次项系数为0, 二次项系数为I(单位阵),并且没有限制的时候的特例:
    轨迹规划-二次规划QP

2. KKT条件

轨迹规划-二次规划QP轨迹规划-二次规划QP轨迹规划-二次规划QP

3. 二次规划的求解

一般来说, QP的求解主要有两大方面的限制(如下图所示):
首先是Q矩阵, Q矩阵是不是半正定(Semi-Definite)的, 如果不是意味着, 目标函数是非凸(non-convex)的情况。
其次是条件关系, 是不是全部是等式(eqality-constrained), 如果是的话, 就是一个可以直接求解的KKT系统(KKT System), 否则的话,就是一般情况下的Convex QP问题。
轨迹规划-二次规划QP

总结:

对于二次规划问题,本质上就是优化问题,无非就是求解二次目标函数,使其在线性约束的条件下达到最优的问题。因为数学库中一般都有现成的求解器,比如apllo中二次规划使用的是osqp求解器,所以在实际工程中需要着重考虑的是:不是如何对二次规划进行求解,而是如何进行建模

参考文献:

  1. 二次规划
  2. 一步一步走向锥规划 - QP
  3. 二次型的意义是什么?有什么应用?