Apollo自动驾驶教程学习笔记-Apollo规划技术详解6-4

课程链接:http://bit.baidu.com/Course/detail/id/298.html
讲师:樊昊阳 百度Apollo研发工程师

说明:因个人工作方向变更的原因,该系列学习笔记不再更新,如有影响还请抱歉

规划中的优化问题

这节课主要从数学角度出发讲解了如何对规划问题中做优化。又把我大学学过的最优化方法翻出来了。
由于基本讲的都是数学知识,所以我记录的笔记不太多,可以从其他地方学到更系统的知识,这里只做点题。

牛顿法

牛顿法是一种求解问题最优解的方法,其核心是泰勒展开,当取泰勒一阶内容作为优化函数时,是binary search问题,当使用泰勒二阶时,是牛顿法,牛顿法考虑目标函数一阶导的变化率。
牛顿法收敛很快,速度是指数平方,通常在几个迭代后就能收敛。
之后发展出来的二次规划算法,和牛顿法的本质是一样的。
牛顿法要求导数单调,当不单调时可能会找到局部最优解,也就是说,牛顿法对于解决非凸问题可能不是最优的。

启发式搜索

为了解决非凸问题,可以采用分段的思想,对目标函数先使用动态规划问题划分成小段,然后用二次规划方法去求解某个最优小段的优化问题,这是一种组合优化问题,也叫启发式搜索。
Apollo中的EM Planning 中的核心思想就是这个启发式搜索,其实就是将动态规划和二次规划结合起来,逐渐缩小搜索的范围。

拉格朗日方法

在无人驾驶中,通常都是有约束的,比如道路情况,车辆情况,交通规范等,对于有等式约束的二次规划问题,使用拉格朗日方法,在目标函数中加入一个拉格朗日算子,再化成无约束的二次规划问题。
KKT条件,现在的求解都是在KKT上出发,叫First-Order Necessary Condition。

Active Set

没听太懂,因为之前没接触过。
大概是解决不等式约束的优化问题时,先使用等式约束求解,然后再看是否有不等式约束仍然满足,如果满足就再对不等式约束进行求解。

目标函数不是二次型

对于不是二次型的目标函数,也有一些新的数学方法能够解决,比如局部牛顿法,将非二次型中的估计点按照二次型进行估计,多次迭代。

最后

无人车问题是非线性优化问题,是非凸问题(需要用启发式搜索方法来解决)。
推荐书籍:
Stephen Boyd 《Convex Optimization》,斯坦福大学凸优化教材
Steve Wright 《Numerical Optimization》,也很经典,我都没读过,数学造诣一般

你可能感兴趣的:(自动驾驶,学习笔记)