微分动态规划的基本思想

吴恩达cs229第19课,微分动态规划这一部分,看了两遍才看明白。

赶紧记下来:

微分动态规划是基于LQR(线性二次型)的,

后者能够比较简洁地计算最优策略,但要基于一个前提,就是 t+1 时刻的状态,是 t 时刻的状态和 t 时刻采取行为的线性函数。

然而,有很多控制系统,它的t+1的状态 是 t 时刻状态和行为的“非”线性函数(下文称为“状态转换函数”)。

没关系,我们可以做线性近似,其实就是在真实的状态转换函数找个固定点,近似认为状态转换函数是这个经过这个点与真实函数相切的线性函数,这样就又可以用LQR了。

这样近似的话,下一个问题就是找哪个固定点(切点)呢?

对于一些控制问题,如果控制过程正常,大部分状态和行为都在某个小的局部范围之内,那么我们可以选择这个局部中心作为上述固定点。

但另一些控制问题,整个控制过程会沿着转换函数有较大的变化,这时候要还想用线性二次型这种简洁地算法做基本算法,那么就可以用微分动态规划的思路。简单说,就是在真实的状态转换函数的多个点(切点)上做线性近似,每一步(每个时间点)使用一个专用的切点。

那么,每一步用哪个切点呢? 我们就要看看每一步“大概”会处在什么状态和选择什么行为,但我们还没有算出最优策略,怎么知道每一步在哪里? 好,我们用个“将就”能用的非优策略作为起点,用这个非优策略先虚拟地控制一遍,产生一个“名义轨迹”(原文 nominal trajactory),在这个轨迹上的每一步,就是“大概”每一步的状态和所选择的行为了,这些“大概”的状态和行为,就可以作为线性近似函数的切点。然后,以这一组状态转换近似函数(每一步一个近似函数,LQR算法是支持“随时间而变的状态转换函数”的)就是下一轮迭代的基础。每次迭代下来,名义轨迹会越来越接近我们的控制过程要达到的目标轨迹。

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页