凸优化
Convex Optimization常用目标是凸函数、可行域是凸集的优化问题,找到的局部最优就是全局最优。
凸优化研究在凸集上最小化凸函数:min f(x),约束 x∈C。f 是凸函数(图像像一只碗,任意两点的连线都在曲线上方),C 是凸集(集合里任意两点的连线仍在集合内)。它最重要的性质是局部最优即全局最优;线性规划、二次规划、二阶锥规划、半定规划等类型都有多项式时间算法(如内点法),求解快且稳定。机器人实时控制大量依赖它:凸 MPC、全身控制里的二次规划、接触力分配,都是有意把问题写成凸的,好在毫秒级可靠求解。非凸问题(如一般的轨迹优化)常用序列二次规划拆成一串凸子问题来近似。
例子MIT Cheetah 3(2018)把四足机器人简化成单个刚体,把未来最长 0.5 s 的地面反作用力规划写成凸的二次规划,每次求解不到 1 ms,以 20–30 Hz 反复重算,跑出了小跑、疾驰、四足齐跳等步态。
- 也叫
- 凸规划、Convex Programming
- 相关
- 二次规划、凸 MPC、模型预测控制、轨迹优化、序列二次规划、OSQP
- 来源
- Wikipedia: Convex optimization
Boyd & Vandenberghe: Convex Optimization(官方免费电子版页面)
Dynamic Locomotion in the MIT Cheetah 3 Through Convex Model-Predictive Control (IROS 2018)