MPC目标是在给定模型下,优化有限长horizon的一个cost function,来构建控制输入。
显然,MPC的目标和Model based RL并不冲突,也就是technically speaking,MPC是RL的一个子问题而已。
ML的人厉害的地方在于,他们把他们搞的东西内涵定义的如此之广,其他领域的东西,也是他们的东西,其他领域有了进步,也能增加他们的荣光。这点传统领域的人好好学学。
/////////////////////////////////////////
如果说狭义上有什么区别的话,MPC传统上是基于对轨迹直接数值优化求解的,因此一般只能给出当前状态下的最优控制输入。而大部分RL的求解是要给出任意状态的控制输入,即一个optimal control law(RL那边叫control policy, 但我要坚持我们control的传统)。例如最简单的mpc问题:线性系统二次型cost function,那就相当于本科生就学的LQR,此时MPC有解析形式解,因此LQR情况下MPC也可以给出一个control law,而不只是当前状态的最优控制输入。
可以注意到,model based RL和传统的optimal control并无不同,只是换了个名称而已。虽然听上去RL要给出一个global control law很厉害的样子,但绝大部分的系统这一点实际是不能可靠做到的,于是最近几年DRL就主张用Deep nets去fit这样的control law (or the value function)。至于能不能work,那就看诸位对ML的信仰虔诚不虔诚了。至于MPC就朴实的多,数值优化至少能返回一个local optimal,有的时候可以证明local optimal就可以达到理想的控制效果了。而利用优化问题的稀疏性,mpc 优化算法可以做到非常实时,嚷嚷mpc爆慢的摸着良心说你有没有学过最优化理论。当然,对于复杂的非凸问题,靠局部的数值优化也是不够的,这里就不展开了。
再补充一点,如果只是给出当前状态下的最优输入,这个问题又被叫做optimal planning。当然,按照广义的RL, optimal planning也算是RL的,比如monte carlo tree search,作为一种planning algorithm, 也通常被认为是RL。