轨迹规划-二次规划QP

1. 二次规划的由来

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

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

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

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

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_第3张图片

2. KKT条件

轨迹规划-二次规划QP_第4张图片轨迹规划-二次规划QP_第5张图片轨迹规划-二次规划QP_第6张图片

3. 二次规划的求解

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

总结:

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

参考文献:

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

你可能感兴趣的:(规划算法,数学基础)