推荐 原创 视频 Java开发 iOS开发 前端开发 JavaScript开发 Android开发 PHP开发 数据库 开发工具 Python开发 Kotlin开发 Ruby开发 .NET开发 服务器运维 开放平台 架构师 大数据 云计算 人工智能 开发语言 其它开发
Lambda在线 > 科学很美丽 > 从动态规划谈起

从动态规划谈起

科学很美丽 2019-02-13

动态规划是码农们常用的一个算法,你对它的理解是否足够深刻?是否知道在计算机领域之外它还有广泛的应用?这篇文章将会带你去看看动态规划的思想是如何在工程技术和社会科学中得到应用的。最后我们还会用这柄强大的武器去推导数学和物理概念,由此得到欧拉-拉格朗日方程和哈密顿力学。

简单的说,动态规划就是个逐步回溯的过程。我们就拿爸妈们的神逻辑来解释吧:想要人生幸福就要找个好工作,想要找到好工作就要上个好大学,想要上个好大学就要上个好高中,…,所以我们不能输在起跑线上。虽然我反对这样去规划人生,但这的确是个极好的动态规划的例子。简单来说,每一步都要使得当前的选择对于整个人生最优。为了解决这个问题我们需要从下一步反推回上一步(即回溯)。比如对于升学和工作的选择,我们可以假设直接工作能拿到x元/年,升学则会在4年后拿到y元/年。为了做这个决定,我们要去考虑下一步的选择(退休年龄)。如果我们预计n年后退休,那么在(n-4)y比nx大的情况下应该继续深造(不考虑时间成本),反之应该直接工作。

现在动态规划的思想已经有了,但是如果想得出深刻的结果,我们还得利用数学工具。就好像有了上好的食材,还得有一流的烹饪技术才能做出美味可口的菜肴。首先来定义一下我们做决策的目标。想象我们可以在时间T之前的每一个时间点作决策,目标是想让下面的损失函数达到最小

其中x是t时刻的“状态变量”,描述了决策者外部的环境。c是t时刻决策者所作的决策。

现在让我们沿着时间倒着推。在T时刻,决策者的目标很明确,即选择一个c使得从动态规划谈起最小。注意当周围环境不同时,我们理性的决策者会作出不同的决策,即c是关于x的函数。这样我们可以定义一个值函数
从动态规划谈起

接下去我们来到T的上一个时刻,即当前时刻t=T-dt,其中dt是一段极短的时间间隔。决策者现在作的决策只对损失函数里积分的那一项有影响。为什么呢?因为他知道在T时刻他可以重新作选择来最小化。在T-dt时刻决策者最小化
从动态规划谈起
在T-dt时刻的值函数就由上式的最小值给出,即
从动态规划谈起

现在加入一个反馈机制,就是说决策者做的决策c会影响到下一时刻的状态x。上式的从动态规划谈起需要改进为从动态规划谈起,即T时刻的状态x是T-dt时刻的决策c的函数。

我们把从动态规划谈起展开成
从动态规划谈起
其中x的改变量dx既取决于时间间隔dt也取决于决策c,为了后面讨论方便我们把它写成一个关于c的函数dx/dt(c)乘以dt。

我们把上面的式子代入到式(1)中去,并且把T-dt替换成当前的时刻t,得到从动态规划谈起
这个方程不仅对T-dt时刻成立,而且对T之前的任意时刻都成立。

上面的方程和从动态规划谈起一块,被称作哈密顿-雅可比-贝尔曼方程(简写为HJB方程)。这个方程是如此的重要,以至于你可以在工程(控制理论)和经济(决策论、博弈论)的大量论文里见到它。有意思的是,它在物理里的特例在好几百年前就被发现了(叫作哈密顿-雅可比方程),可是直到上世纪六七十年代才被贝尔曼扩展成了可以应用在别的领域的万能方程。

我们接下来看看HJB方程在物理里的特例。记得我们在力学的原理一文中把动力学归纳为求解作用量
从动态规划谈起
的极值(一般为极小值)。这个优化问题里,在t时刻我们通过t到t+dt时刻的速度v,来控制t+dt时刻的位置x。所以控制变量可以是速度本身,即c=v。现在写下这个问题的HJB方程:从动态规划谈起
其中的min在这里求的是极(小)值,而不一定是最小值。

如何对一个函数求极值?只需让它的一阶导数为零。对上式里求极值的部分关于v求导,得到
从动态规划谈起
上式两边对t求导得到
从动态规划谈起
注意到值函数U可以用作用量S来表达:
从动态规划谈起
两边对t求导有从动态规划谈起
于是我们得到了欧拉-拉格朗日方程
从动态规划谈起

欧拉-拉格朗日方程给出了式(2)第二项取到极值的必要条件,我们把这个极值的负数定义成
从动态规划谈起
等式右边对速度v取极值,需要知道t,x,以及偏导数从动态规划谈起,因此等式左边的H是关于这三个量的函数,叫作哈密顿量。注意哈密顿量的自变量里没有速度v,取代它是一个偏导数,这种自变量的变换叫作勒让德变换。

我们把从0时刻到t时刻的作用量定义为从动态规划谈起,注意到从动态规划谈起,我们把哈密顿量里的从动态规划谈起替换从动态规划谈起,得到
从动态规划谈起
接着我们把式(2)里的从动态规划谈起替换成从动态规划谈起,就得到了哈密顿-雅可比方程:
从动态规划谈起

现在我们来看看这个哈密顿量的值到底是多少吧。哈密顿量的定义式的右侧是一个关于v的极值。而取到极值的必要条件由式(3)给出。根据式(3),我们可以把式(4)里的从动态规划谈起从动态规划谈起替换掉,得到
从动态规划谈起
我们在对称性与守恒律一文中得到了能量的表达式,可以看到哈密顿量有着和能量一样的表达式。同样的,哈密顿量的一个自变量从动态规划谈起有着和动量一样的表达式。所以简单的说,哈密顿量把能量用动量给表示了。把动量记作p,那么哈密顿量就是从动态规划谈起。我们也经常把位置x和动量p称为坐标和共轭坐标,(x,p)包含了物体的所有动力学信息,叫作广义坐标。

我们之前讲的基于最小作用量原理的力学称为拉格朗日力学,现在基于广义坐标的就叫做哈密顿力学。这是两种平行的体系,相对论用拉格朗日体系描述根本质,而量子力学用哈密顿系统描述则更方便。对于求偏导,得到(请自行验证)

这两个方程是哈密顿力学的基本方程。数学上,这是两个一阶偏微分方程。而拉格朗日力学的基本方程(就是欧拉-拉格朗日方程)则是一个二阶偏微分方程。这两种方程(组)是等价的,给定物体的初始条件(位置和速度),物体的运动轨迹可以用任一种方程(组)唯一地求得。


版权声明:本站内容全部来自于腾讯微信公众号,属第三方自助推荐收录。《从动态规划谈起》的版权归原作者「科学很美丽」所有,文章言论观点不代表Lambda在线的观点, Lambda在线不承担任何法律责任。如需删除可联系QQ:516101458

文章来源: 阅读原文

相关阅读

关注科学很美丽微信公众号

科学很美丽微信公众号:gh_7cb6a8cb0c93

科学很美丽

手机扫描上方二维码即可关注科学很美丽微信公众号

科学很美丽最新文章

精品公众号随机推荐