【Baidu Apollo】6.4 规划 动态规划DP 和 二次规划QP

时间:2024-03-31 09:47:15

5、Optimization Inside Motion Planning

 【Baidu Apollo】6.4 规划 动态规划DP 和 二次规划QP

  • 动态规划来自于动态系统, 通过类似于有限元的方式,把问题抽象再离散空间里面,把重复计算通过aggregating的方式进行简化。

       问题:计算时长太长,【Baidu Apollo】6.4 规划 动态规划DP 和 二次规划QP,这么撒点太复杂。

  • 对于凸问题,或者单调问题,求最优解,用binary search搜索某个点的值就可以,收敛速度是指数收敛。
  • 牛顿法更快,考虑了不同点位置的斜率变化率大小,收敛速度是指数平方,二次收敛。本质是二阶逼近的泰勒展开。

【Baidu Apollo】6.4 规划 动态规划DP 和 二次规划QP

  •  牛顿法的思想:把函数用来泰勒展开然后逼近,获得更多的信息,用更快的速度去收敛最优解。
  • 二次规划的核心,如果知道convex problem的二阶导数,可以更快的找到最优解,本质和taylor expansion和牛顿法相同。

二次规划有时候会处理高纬度问题,问题是在多维的空间里,进行优化convex optimization的时候,很难找到一个高阶的类似hessian矩阵的东西,一维的时候偏导是参数的个数,二维是参数个数的平方,三维是个tensor,非常庞大。这是个权衡的过程,实践中二维就够用了。

Quadratic Programming的劣势:

牛顿法要求derivative严格单调递增,一般的函数不是这样子的。

动态规划要求打点很多,对于高维是灾难,牛顿法只能找到局部最优,也不行。

解决方法:divide and conquer

动态规划 + 牛顿法 二次规划 可以找到global 的最优解。

如上图找到第一个或第二个点,这个点作为牛顿法的起始点,从这个点做一个hot start,然后做一个QP problem。这个时候有大概率找到global optima。EM Planner里面的组合优化,启发式的搜索,DP撒点不要太密也不要太稀疏, DP找到hot start然后QP找到最优解。启发式搜索只要reward function 不是特别复杂都可以找到最优解,其他类似方法有模拟退火等。

【Baidu Apollo】6.4 规划 动态规划DP 和 二次规划QP

二次规划

  • QP问题,没有constraint时,直接求导就行。

  • QP问题,有constraint。

二次规划找局部值或者边界值,hit boudary的constraint 叫 active constraint。在求解带约束的条件的时候,看一下满足active constraint的情况下的最优解,不满足情况下的最优解的样子,看不满足active constraint情况下的最优解在不在约束内,在的话就是最优解,不在的话看满足active constraint情况下的最优解。这种思想就 active set methode。

拓展到高维后的形式:

【Baidu Apollo】6.4 规划 动态规划DP 和 二次规划QP

 【Baidu Apollo】6.4 规划 动态规划DP 和 二次规划QP的求解

牛顿消元法:QR,LR算法。拆解为一个上三角矩阵或正交矩阵,这样容易计算。

同时这个矩阵也是个symmetric strictly positive definite。对称矩阵有更好的decompostion的方式:比如cholesky decomposition,schur decomposition。可以很快的求解线性系统。【Baidu Apollo】6.4 规划 动态规划DP 和 二次规划QP

  • QP问题,有等式约束

把下面的等式带入上面的function还元,不过很慢。

有更快的方法,lagrangian方法,dual parameters类似松弛变量,这种情况下等式就是一个超平面。

【Baidu Apollo】6.4 规划 动态规划DP 和 二次规划QP

【Baidu Apollo】6.4 规划 动态规划DP 和 二次规划QP

【Baidu Apollo】6.4 规划 动态规划DP 和 二次规划QP

【Baidu Apollo】6.4 规划 动态规划DP 和 二次规划QP

这个和之前的类似,当然也可能有没有解的情况。每加一个等式的约束,可行空间就降一个维度。

  • QP问题,有inequality constraints

【Baidu Apollo】6.4 规划 动态规划DP 和 二次规划QP

重点是12.30e,不等式为0,active的时候lambda为任意值,不等式不为0是,lambda为0。

除了active set methode以外还有其他方法,在松弛变量上做文章,interior point methode。

【Baidu Apollo】6.4 规划 动态规划DP 和 二次规划QP

 先当成没有inequality的去算,之后看那些inequality没有满足,这个时候这个条件被加入到active set里面。即这个条件等于0。重复直到找到最优解。

目标函数不是二次型的凸函数怎么办?

比如【Baidu Apollo】6.4 规划 动态规划DP 和 二次规划QP,局部用牛顿法逼近,用surrogate的objective function去代替原来的function。sequentially解决问题。在高维空间求解hessian。有很多方法:BFGS,LBFPS

【Baidu Apollo】6.4 规划 动态规划DP 和 二次规划QP

 推介书目:

Stephen Boyd convex optimization

Stephen J. Wright Numerical Optimization