数学动态规划:Blackwell引理,价值函数算法

Posted Ming的经济学笔记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数学动态规划:Blackwell引理,价值函数算法相关的知识,希望对你有一定的参考价值。

(封面配图:感谢鲱鱼罐头app)

本期文章着重应用Banach不动点定理于贝尔曼方程/价值函数,并且基于不动点定理介绍一个简单的价值函数算法。

往期回顾:


正文:

上期介绍了Banach不动点定理。这个不动点定理里面有着唯一的不动点。并且我们知道,这个不动点定理是三个(Banach,Brouwer,Kakutani)不动点定理里面唯一一个有着不动点的唯一性结论的不动点定理。并且也是唯一一个能够应用于任何度量空间的不动点定理。

在宏观经济学里面,很多时候我们都会用到动态规划,也就是贝尔曼方程。贝尔曼方程本来就是函数套着函数,要解出下一个函数之前我们必须知道上一个函数是什么。很多时候,贝尔曼方程针对的是无限期动态规划,那么我们就根本不可能知道第一个函数是什么。如果我们根本就不知道第一个函数是什么的话,那么要解出下一个函数那是天方夜谭。

真的是这样吗?

当然不是!别忘了,我们学会了不动点定理,这一强大的数学工具!这个数学工具将会告诉我们,贝尔曼方程是可解的!

因为,贝尔曼方程是一个在函数空间里的压缩映射(contraction mapping)!

一般在函数空间里,如果有两个函数f和g,有着同样的定义域和共域:

那么他们之间的距离是:

如果我们有一个函数集H,这个函数集是所有的从X到Y的映射,那么,我们就有了一个度量空间:

我们来看看H在动态规划里是什么,首先我们看看最简单的宏观经济学里面用到的动态规划:

V是(无限期贴现的)价值函数,c是最优控制,k是状态变量,u是某个当期的价值函数。在经济学里,c是消费,k是资本,k’是下期的资本,β是主观贴现率。

一般来说,左边那个价值函数是Vn,右边的那个价格函数才是V(n+1)。为了序列方便,我们把两个价值函数的序列顺序倒过来。这是因为,在宏观经济学里面,消费者是有前瞻性的,所以是先算未来的Vn,再算现在的V(n+1)。

把条件代入:

那么我们可以看见,这里有一个价值函数的递归序列。为了简化分析,我们定义序列里的V都是:

Blackwell引理,又称Blackwell's Sufficient Condition for Contraction,就是一个把不动点定理应用到贝尔曼方程/动态规划里面的定理。

为了应用不动点定理,我们要先找出压缩映射,那么我们可以把上面的函数这样表达:

那么T就是我们要找的那个映射(叫做贝尔曼算子(Bellman Operator))。首先我们要确认,T是一个自我映射,那么T的定义域是V的度量空间:

其中B代表的是所有有界(bounded)的,定义域是正实数的函数。我们姑且假设价值函数是有界的,其次,我们假设当期的价值函数u(也就是效用函数也是有界的)。(定理证明完了之后再讨论价值函数的有界性质)

接下来,我们要证明T是一个压缩。Blackwell引理说,如果u是有界的,那么T是一个在B(R+)上面的压缩,且压缩参数为β!

证明如下:

我们假设有两个不同的价值函数V和W,都是在这个度量空间里面的元素。对于任何一个正实数k来说,既然u和V都是有界的,那么存在一个T(V(k))的最小上界(称之为c(v))。那么:

上面我们加了一个W,然后再减了一个W不多不少。并且这个W是在v的消费下面的。下面,我们可以把上面几个式子重排一下,然后取一个(V-W)的绝对值:

可是c(v)只最大化了T(V(k))而没有最大化T(W(k)),所以:

然后,第一个方括号里面就是T(W(k)),第二个括号里面是d(V,W):

然后我们把V和W倒过来,我们发现:

根据度量的定义,d(V,W)=d(W,V),所以上面两条不等式告诉我们:

并且这个不等式对于任何k都成立,所以:

并且因为|β|<1,这就足以证明贝尔曼算子T是一个压缩!并且,B(R+)是完整的(这里面是有证明的但是我没学过

以上是关于数学动态规划:Blackwell引理,价值函数算法的主要内容,如果未能解决你的问题,请参考以下文章

算法学习——动态规划3

动态规划中的0-1背包问题怎么去理解?要求给出具体实例和详细步骤。。。

增强学习笔记 第四章 动态规划

算法之名——动态规划(01背包)

[bzoj1004][HNOI2008][Cards] (置换群+Burnside引理+动态规划)

动态规划算法