2. 递归问题的求解

在上一部分之中, 我们成功把同时需要求解无限个变量的顺序问题, 转化为只需求解下一期的有限变量的递归问题. 这一部分中, 我们将讨论如何求解递归问题.

2.1值函数与策略函数: 一个通俗比喻

描述递归问题的最关键方程是 Bellman 方程, 为如下形式:(2.1)其中, 值函数 是给定初值 之后这一最优化问题可取得的最值, 策略函数 是这一最优化问题的解. 同时, 策略函数满足 Bellman 方程推导出的 Euler 方程.(2.2)

对值函数和策略函数的最好比喻是 “尽人事, 知天命”. 在给定 “生辰八字”(初值 ) 之后, “人事表”(策略函数 ) 告诉我们在此情形下我们应该执行的最优行动, 而 “天命表”(值函数 ) 则告诉我们在 “尽人事” 之后我们能够达到的最好结果.

我们也容易证明值函数与策略函数的对偶关系 (“历览前贤国与家, 成由勤俭败由奢”). 最优化问题取到值函数的对应值, 当且仅当最优化问题的解取策略函数的对应值.

然而求解值函数与策略函数并不容易, 因为 Bellman 方程两侧同时出现了值函数, 意味着我们在求解值函数时已经预先 “知道” 了值函数. 要解决这一问题, 我们需要使用迭代的方法.

2.2迭代法的理论基础: Banach 不动点定理

Banach 不动点定理 (压缩映射定理)

在使用迭代法之前, 我们需要先引入重要的 Banach 不动点定理. 我们先从定义几个概念开始.

定义 2.2.1 (序列的收敛性).

度量空间 中的一个序列 , 若 , , 使得则称 收敛 (convergent) 至极限 .

定义 2.2.2 (Cauchy 列).

对度量空间 中的一个序列 , 若 , , 使得则称 Cauchy 列.

注 2.2.3.

1.

所有收敛列都是 Cauchy 列.

2.

某些度量空间中, Cauchy 列不收敛到该空间之中, Cauchy 列不一定是收敛列.

定义 2.2.4 (完备度量空间).

若一个度量空间中的所有 Cauchy 列都收敛到空间中的某一点, 则称该空间为完备度量空间 (complete metric space).

例 2.2.5 (几个完备度量空间).

1.

是完备的, 其中 .

2.

是完备的, 其中

定义 2.2.6 (压缩映射).

对度量空间 , 映射 , 若 , 使得则称 压缩映射 (contraction mapping), 称 为该压缩映射的模量 (modulus).

有了上述的准备, 我们可以引入 Banach 不动点定理.

定理 2.2.7 (Banach 不动点定理).

对于完备度量空间 , 若 是模量为 的压缩映射, 则 有唯一不动点 (fixed point) , 使得 .

该定理还有两条推论.

推论 2.2.8.

1.

给定初始点 , 通过 定义出 , 则 收敛至 .

2.

的收敛速率为几何速率, 即

Blackwell 充分条件

直接检验一个映射是否为压缩映射有所不便, 故而我们引入 Blackwell 充分条件来简化判定过程.

定理 2.2.9 (Blackwell 充分条件).

为有界函数 构成的空间, 令 为度量空间 上的一个算子.

有如下两个性质:

1.

单调性 (monotonicity): , 若 , 则 ;

2.

贴现性 (discounting): , , 使得

是一个模量为 的压缩映射.

证明.

. 则有由单调性, 则有: 由贴现性, 则有: 综上有: 调换 , 同理可得 .

则有: 等价于: 为度量空间 上的压缩映射, 模量为 .

2.3值函数迭代法的过程

值函数迭代法 (Value Function Iteration) 可以帮助我们求解递归问题.

对于 Bellman 方程:(2.1)传统方法难以求解, 因为要求出方程左边的 , 必须要通过方程右边使用正确的 来求解最大化问题, 从而陷入了 “套娃” 的困难.

但我们可以观察到, 方程的右边天然定义了一个作用于 的映射 :(2.3)而 Bellman 方程则成为:(2.4)

若我们能证明 是压缩映射, 则无论从怎样的初值 出发, 经过足够多次 的作用, 最终总会收敛至不动点 .

命题 2.3.1.

对于度量空间上的如下映射 : 若满足:

1.

是有界 (bounded) 连续 (continuous) 函数;

2.

是紧 (compact-valued) 且连续的对应 (correspondence);

是度量空间 上的压缩映射.

证明.

我们验证 满足 Blackwell 充分条件:

1.

单调性: 令 , , 则有

2.

贴现性:

此外, 命题的两个条件确保 运算有意义并能求出最大值, 由最大值原理, 可证明 将有界连续函数 映射为有界连续函数 , 即 .

故而, 值函数迭代的过程可以总结成如下的过程:

1.

任意定义一个连续的迭代起点 (例如 );

2.

使用 Bellman 算子 作用于 获得 ;

3.

计算 ;

4.

, 则停止迭代, ; 若 , 则将 赋予 进行更新, 重复 2–4 的步骤.

通过计算机程序的迭代, 我们可以设计程序求出给定的 函数对应的值函数 . 如下是一些关于值函数 的性质, 可由 Banach 不动点定理的变体得出:

推论 2.3.2 (值函数的性质).

在特定条件下:

1.

是 (严格) 凹 (concave) 的, 则 也是 (严格) 凹的;

2.

是 (严格) 递增的, 则 也是 (严格) 递增的;

3.

是连续可微 (continuously differentiable) 的, 则 也是连续可微的;

4.

对应的策略函数 也是连续且递增的.

2.4待定系数法: 徒手解法

在计算机发明之前, 只有一些特定形式的 可以通过徒手求解的方式找出 . 然而, 鉴于我们有 Banach 不动点定理保障 的存在性, 对于某些特定形式的 , 我们可以猜测其值函数取某一特殊的形式, 这时即可用待定系数法 (“Guess and Verify”) 进行求解.

例 2.4.1 (Brock-Mirman 模型的待定系数法).

Brock-Mirman 问题的 Bellman 方程是: (2.5)我们猜测值函数取得如下形式: (2.6)则方程右边: 一阶条件为: 则 Bellman 方程变成: 则待定系数需要满足: 解得: 则带入策略函数有: (2.7)

有时, 待定系数法的值函数形式不好直接猜测. 我们可以 “借助” 迭代法的思想, 先将迭代起点设成 迭代 1–2 期, 看少数几期迭代之后的 中出现了怎样的函数成分, 再对值函数进行大胆猜测.