lecturenote4 standard
DESCRIPTION
L4TRANSCRIPT
講義ノート4:動的計画法
稲葉 大
First draft 2008年 10月 27日Revised 2009年 1月 7日Revised 2010年 5月 26日
目 次
I 動的計画法 (dynamic programming):有限期間 2
I.1 後ろ向き帰納法 (backward induction method) . . . . . . . . . . . . . . . . . . . 2
I.2 基本的再帰関係式 (fundamental recurrence relation) . . . . . . . . . . . . . . . . 5
II 動的計画法 (dynamic programming):無限期間 11
II.1 ベルマン方程式の導出 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
II.2 状態評価関数 (value function)とポリシー関数 (policy function) . . . . . . . . . . 12
(i) Value function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
(ii) Policy function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
(iii) Euler equation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
II.3 動的計画法:例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
(i) Value function iteration . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
(ii) Howard’s improvement algorithm . . . . . . . . . . . . . . . . . . . . . . 15
(iii) Guess and Verify . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
III 動的計画法:一般的な定式化 18
III.1 不確実性のないケース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
(i) (42)式の導出 (Benveniste and Scheinkman (1979)) . . . . . . . . . . . . 21
III.2 3つの導出方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
(i) Value function iteration . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
(ii) Howard’s improvement algorithm . . . . . . . . . . . . . . . . . . . . . . 22
(iii) Guess and verify . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
今回の講義では動的計画法 (dynamic programming)を用いた方法を紹介する.ここで紹介するベーシックな最適成長モデルにおいては,直接の方法でも動的計画法でもどちらの方法を用い
1
ても良い.しかし実際には,モデルの性質によって異なり,動的計画法しか利用できないケース(例えばサーチモデル,離散選択のモデルなど)のための準備として動的計画法を学んでおく必要がある.以下では不確実性のないケースを紹介する.不確実性のあるケースについては,後に考察していく.並行してAdda and Cooper (2003)の chapter 2,およびLjungqvist and Sargent
(2004)の chapter 2と appendix on functional analysisを読んでおくことを進める.
I 動的計画法 (dynamic programming):有限期間以下では動的計画法について直観的な解説をする1.次のように記述される中央計画者問題を考察する.
(SP) maxct,kt+1
T∑t=0
βtu(ct)
subject to
kt+1 − kt = f(kt) − ct − δkt for t = 1, 2, · · · , T,
k0 = k0
kT+1 ≥ 0.
ここで 0 < β < 1は,割引因子 (discount factor)である.効用関数 u(·)と生産関数 f(·)は,
u(0) = 0, u′(·) > 0, u′′(·) < 0, u′(0) = ∞, u′(∞) = 0
f(0) = 0, f ′(·) > 0, f ′′(·) < 0, f ′(0) = ∞, f ′(∞) = 0
と仮定する.さきのラグランジアンを用いたケースでは,この問題を巨大な非線形制約付き最適化問題としてとらえ,通時的に一度に問題を解いている.一方,問題の再帰的な (recursive)
な構造を利用して解いていくのが動的計画法である.動的計画法は,以下の原理に基づいて考察する.
ベルマンの最適性の原理 (Bellman’s principle of optimality)
最適政策とは,最初の状態や決定がどうであっても,それ以後の決定が最初の決定によって生じた状態に関して最適政策となるように構成しなければならないという性質を持っている.(西村 (1994)P150より抜粋)
この考え方を用いると,時間が有限であるときには,後ろ向き帰納法 (backward induction
method)によって,得られる政策が最適政策になる.なぜなら,後ろ向き帰納法 (backward in-
duction method)で求めた解は,ある t時点を考えるとき,それ以降の政策は常に最適になっているからである.
I.1 後ろ向き帰納法 (backward induction method)
(T 期)いま経済は T 期にいるとする.このとき,決定する問題は非常にシンプルである.T 期におい
1以下の記述も多くを西村 (1990)に寄っている.
2
て,状態変数である kT は前の期に決まっている値となっている.今決めることは,T 期以降にできることで,効用を最大化することである.つまり ucT を最大にするように,今の消費 cT と残す資本 kT+1を決定する.よって問題は,
maxcT ,kT+1
u(cT )
s.t. kT+1 − kT = f(kT ) − cT − δkT
kT : given
kT+1 ≥ 0.
となる.制約式を代入すれば,問題は次のように書くことができる.
maxkT+1
u(f(kT ) + (1 − δ)kT − kT+1
)s.t. kT : given
kT+1 ≥ 0.
この問題の解つまり,最適な次期資本 k∗T+1は kT の関数になっている.これを k∗
T+1 = ϕT (kT )
とする2.最適に選んだ政策関数 (policy function)と呼ぶことがある.この政策関数をもとの問題に代入すると,
VT (kT ) =u(f(kT ) + (1 − δ)kT − ϕT (kT )
)とかくことができる.VT (kT )は,時点 T,状態 kT であるときに達成される最大の効用を評価したものであり,「状態評価関数 (state evaluation function)」あるいは「価値関数 (value function)」と呼ばれる.
(T − 1期)T − 1期において,問題は次のようになる.T 期以降については,T − 1期に決めた kT に基づいて,VT (kT )によって最適化されている.よって,T 期以降は VT (kT )によって最適化されているとして,T − 1期の問題だけを考えれば,以降は全て最適化されている.
maxcT−1,kT
u(cT−1) + βVT (kT )
s.t. kT − kT−1 = f(kT−1) − cT−1 − δkT−1
kT−1 : given
2これは次のように導出できる.上の問題の T 期以降の最大化の必要条件は,kT+1 で微分して,
u′(cT ) = µ
kt+1 ≥ 0, µ ≥ 0, and µkT+1 = 0.
µはクーン・タッカー条件に関するラグランジアンである.u′(cT ) = µ > 0であるから,kT+1 = ϕT (kT ) = 0とわかる.よって,予算制約式より,最適な消費は,
cT = f(kT ) + (1 − δ)kT − ϕT (kT )
であることがわかる.
3
制約式を代入して cT−1を消去すると,
maxkT
u(f(kT−1) + (1 − δ)kT−1 − kT
)+ βVT (kT )
s.t. kT−1 : given
解である最適な次期資本ストックを k∗T = ϕT−1(kT−1)とする.この政策関数をもとの問題に代
入すると,
VT−1(kT−1) =u(f(kT−1) + (1 − δ)kT−1 − ϕ∗
T−1(kT−1))
+ βVT (kT )
とかくことができる. (一般の t期)同様にして,t期において,問題は次のようになる.t + 1期以降については,t期に決めた kt+1
に基づいて,Vt+1(kt+1)によって最適化されている.よって,Vt+1(kt+1)を与えられたものとして,t期の問題だけを考えれば,以降は全て最適化されている.
maxct,kt+1
u(ct) + βVt+1(kt+1)
s.t. kt+1 − kt = f(kt) − ct − δkt
kt : given
制約式を代入して ctを消去すると,
maxkt+1
u(f(kt) + (1 − δ)kt − kt+1
)+ βVt+1(kt+1)
s.t. kt : given
解である最適な次期資本ストックを k∗t+1 = ϕt(kt)とする.この政策関数をもとの問題に代入す
ると,
Vt(kt) =u(f(kt) + (1 − δ)kt − ϕ∗
t (kt))
+ βVt+1(kt+1)
とかくことができる.
(現在 t=0)
maxc0,k1
u(c0) + βV1(k1)
s.t. k1 − k0 = f(k0) − c0 − δk0
k0 : given
制約式を代入して c0を消去すると,
maxk1
u(f(k0) + (1 − δ)k0 − k1
)+ βV1(k1)
s.t. kt : given
4
解である最適な次期資本ストックを k∗1 = ϕ0(k0)とする.この政策関数をもとの問題に代入す
ると,
V0(k0) =u(f(k0) + (1 − δ)k0 − ϕ∗
0(k0))
+ βV1(k1)
とかくことができる.
以上の操作で,各期の最適な次期資本および今期消費額が政策関数として表現された.以下のように各期の最適政策と遷移式に基づいて,逐次に最適な消費額が決定される.
t = 0において,初期値は k0.期末(次の期)の資本ストックは k∗1 = ϕ0(k0). このとき最
適な消費は,c∗0 = f(k0) + (1 − δ)k0 − ϕ0(k0).t = 1において,資本ストックは k1.期末(次の期)の資本ストックは k∗
2 = ϕ1(k1). このとき最適な消費は,c∗1 = f(k1) + (1 − δ)k1 − ϕ1(k1)....
t期において,資本ストックは kt.期末(次の期)の資本ストックは k∗t+1 = ϕt(kt). このと
き最適な消費は,c∗t = f(kt) + (1 − δ)kt − ϕt(kt)....
T 期において,資本ストックは kT.期末(次の期)の資本ストックは k∗T+1 = ϕT (kT ) = 0.
このとき最適な消費は,c∗T = f(kT ) + (1 − δ)kT − ϕT (kT ).
後ろ向き帰納法は,時間が有限であるときならば有効である.しかし期間 T が無限であるようなケースでは,後ろが定まっていないために,後ろ向き帰納法を使うことができない.そのため準備として次のような再帰関係式を考察しておく.(後ろ向き帰納法ここまで)—————————————
I.2 基本的再帰関係式 (fundamental recurrence relation)
もう一度同じ問題を考えて,問題が再帰的な関係を持つことを考えてみる.
(SP) maxct,kt+1
T∑t=0
βtu(ct)
subject to
kt+1 − kt = f(kt) − ct − δkt for t = 1, 2, · · · , T,
k0 = k0
kT+1 ≥ 0.
5
最後の T 期の問題は,
VT (kT ) = maxcT ,kT+1
u(cT )
s.t. kT+1 − kT = f(kT ) − cT − δkT
kT : given
kT+1 ≥ 0.
となる.この問題は簡単に解くことができ,
u′(cT ) = λT
λT = µ
kt+1 ≥ 0, µ ≥ 0, and µkT+1 = 0.
より,
u′(cT ) = µ
µkT+1 = 0.
と横断性条件が導出される.u′(cT ) = µ > 0であるから,kT+1 = 0とわかる.よって,予算制約式より最適な消費は,
cT = f(kT ) + (1 − δ)kT
よって T 期の状態評価関数は,
VT (kT ) = u(f(kT ) + (1 − δ)kT
)(1)
と分かる.この最後の評価関数を「境界条件 (boundary condition)」と呼ぶことがある.
次に T − 1期以降の問題を考察すると,
VT−1(kT−1) = maxcT−1,cT ,kT ,kT+1
u(cT−1) + βu(cT ) (2)
s.t. kT − kT−1 = f(kT−1) − cT−1 − δkT−1
kT+1 − kT = f(kT ) − cT − δkT
kT−1 : given
kT+1 ≥ 0.
となる.この問題は
VT−1(kT−1) = maxcT−1,kT
[u(cT−1) + β max
cT ,kT+1
u(cT )]
s.t. kT − kT−1 = f(kT−1) − cT−1 − δkT−1
kT+1 − kT = f(kT ) − cT − δkT
kT−1 : given.
6
と考えることができる.よって,(1)の VT (kT )を用いると,
VT−1(kT−1) = maxkT
{u(f(kT−1) − kT + (1 − δ)kT−1
)+ βVT (kT )
}(3)
と書くことができる.
同じく T − 2期以降の問題は,
VT−2(kT−2) = maxcT−2,cT−1,cT ,kT−1,kT ,kT+1
u(cT−2) + βu(cT−1) + β2u(cT ) (4)
s.t. kT−1 − kT−2 = f(kT−2) − cT−2 − δkT−2
kT − kT−1 = f(kT−1) − cT−1 − δkT−1
kT+1 − kT = f(kT ) − cT − δkT
kT−2 : given
kT+1 ≥ 0.
となる.この問題は次のように書き直すことができる.
VT−2(kT−2) = maxcT−2,kT−1
{u(cT−2) + β
[max
cT−1,cT ,kT ,kT+1
u(cT−1) + βu(cT )]}
s.t. kT−1 − kT−2 = f(kT−2) − cT−2 − δkT−2
kT − kT−1 = f(kT−1) − cT−1 − δkT−1
kT+1 − kT = f(kT ) − cT − δkT
kT−2 : given
kT+1 ≥ 0.
中括弧における最大化問題は (2)の VT−1(kT−1)に対応するため,最終的に
VT−2(kT−2) = maxkT−1
[u(f(kT−2) − kT−1 + (1 − δ)kT−2
)+ βVT−1(kT−1)
](5)
と書くことができる.
同じく T − 3期以降の問題は,
VT−3(kT−3) = maxcT−3,cT−2,cT−1,cT ,kT−2,kT−1,kT ,kT+1
u(cT−3) + βu(cT−2) + β2u(cT−1) + β3u(cT ) (6)
s.t. kT−2 − kT−3 = f(kT−3) − cT−3 − δkT−3
kT−1 − kT−2 = f(kT−2) − cT−2 − δkT−2
kT − kT−1 = f(kT−1) − cT−1 − δkT−1
kT+1 − kT = f(kT ) − cT − δkT
kT−3 : given
kT+1 ≥ 0.
7
となる.この問題は次のように書き直すことができる.
VT−3(kT−3) = maxcT−3,kT−2
{u(cT−3) + β
[max
cT−2,cT−1,cT ,kT−1,kT ,kT+1
u(cT−2) + βu(cT−1) + β2u(cT )]}
s.t. kT−2 − kT−3 = f(kT−3) − cT−3 − δkT−3
kT−1 − kT−2 = f(kT−2) − cT−2 − δkT−2
kT − kT−1 = f(kT−1) − cT−1 − δkT−1
kT+1 − kT = f(kT ) − cT − δkT
kT−3 : given
kT+1 ≥ 0.
中括弧における最大化問題は (4)の VT−2(kT−2)に対応するため,最終的に
VT−3(kT−3) = maxkT−2
[u(f(kT−3) − kT−2 + (1 − δ)kT−3
)+ βVT−2(kT−2)
](7)
と書くことができる.
以上のように考えてみれば,一般に t期については,
Vt(kt) = maxcτ ,kτ+1
T∑τ=t
βτ−tu(cτ )
s.t. kτ+1 − kτ = f(kτ ) − cτ − δkτ (for τ = t, · · · , T − 1,)
kt : given
kT+1 ≥ 0.
となる.次のように書き直してみると,
Vt(kt) = maxct,kt+1
{u(ct) + β max
cτ ,kτ+1
[T∑
τ=t+1
βτ−t−1u(cτ )
]}s.t. kt+1 − kt = f(kt) − ct − δkt
kτ+1 − kτ = f(kτ ) − cτ − δkτ (for τ = t + 1, · · · , T − 1,)
kt : given.
これまでの考えと同様にすれば後ろの括弧は t + 1期以降の問題であることがわかる.よって
Vt(kt) = maxkt+1
[u(f(kt) − kt+1 + (1 − δ)kt
)+ βVt+1(kt+1)
](8)
と書くことができる.この式はベルマン方程式 (Bellman’s equation)と呼ばれる.以上をまとめると,
8
初期値 k0 = k0と境界条件
VT (kT ) = u(f(kT ) + (1 − δ)kT
)とベルマン方程式
Vt(kt) = maxkt+1
[u(f(kt) − kt+1 + (1 − δ)kt
)+ βVt+1(kt+1)
](for t = 0, 1, 2, · · · , T − 1.)
により,各期の状態評価関数 (value function)が
VT (kT ) → VT−1(kT−1) → · · · → V0(k0)
のように求まる.一方,最適政策関数は,状態評価関数を求めた後で,
maxkt+1
[u(f(kt) − kt+1 + (1 − δ)kt
)+ βVt+1(kt+1)
](for t = 0, 1, 2, · · · , T − 1.)
の解として,k∗t+1 = ϕt(kt), c∗t = f(kt) − ϕt(kt)︸ ︷︷ ︸
kt+1
+(1 − δ)ktと求めることができる.
最適政策関数は次のように求めれば良い.
maxkt+1
[u(f(kt) − kt+1 + (1 − δ)kt
)+ βVt+1(kt+1)
](for t = 0, 1, 2, · · · , T − 1.)
の解を求める.kt+1で微分して,最大化のための必要条件を求めると,
− u′(ct) + βV ′t+1(kt+1) = 0 (9)
⇐⇒u′(ct) = βV ′t+1(kt+1) (10)
⇐⇒u′(f(kt) − kt+1 + (1 − δ)kt
)= βV ′
t+1
(kt+1
)(遷移式を代入.) (11)
⇐⇒k∗t+1 = ϕt(kt) (12)
と,最適政策関数は ktの関数であることが確認できた.ct, kt+1の最適経路の扱いは4ページとおなじである.
オイラー方程式の導出また,k∗
t+1 = ϕt(kt)を用いると,ベルマン方程式は,
Vt(kt) = u(f(kt) − ϕt(kt) + (1 − δ)kt
)+ βVt+1
(ϕt(kt)
)(for t = 0, 1, 2, · · · , T − 1.)
のように書くことができる.両辺を ktで微分すると,
V ′t (kt) = u′(c∗t )
[f ′(kt) − ϕ′
t(kt) + (1 − δ)]
+ βV ′t+1(kt+1)ϕ
′t(kt)
⇐⇒V ′t (kt) = u′(c∗t )
[f ′(kt) + (1 − δ)
]+ ϕ′
t(kt)[−u′(c∗t ) + βV ′
t+1(kt+1)]
9
ここで,最大化のための一階条件 (10)式を用いると第二項が消え (これを包絡面の定理 (envelope
theorem)という),
⇐⇒V ′t (kt) = u′(c∗t )
[f ′(kt) + (1 − δ)
]が得られる.これと,(10)式より,
u′(ct) = βu′(ct+1)[f ′(kt+1) + (1 − δ)
]となり,オイラー方程式を得ることができる.
10
II 動的計画法 (dynamic programming):無限期間次に無限期間のケースについて,動的計画法を適用することを考えてみる.今までと同様に最適成長モデルを例として取り上げる.一般の動的計画法の問題については,後にまとめる予定だが,Ljungqvist and Sargent (2004)などを参照すると良い.
II.1 ベルマン方程式の導出
次のように記述される中央計画者問題を考察する.
(SP) maxct,kt+1
∞∑t=0
βtu(ct)
subject to
kt+1 − kt = f(kt) − ct − δkt
k0 = k0
ここで 0 < β < 1は,割引因子 (discount factor)である.効用関数 u(·)と生産関数 f(·)は,
u(0) = 0, u′(·) > 0, u′′(·) < 0, u′(0) = ∞, u′(∞) = 0
f(0) = 0, f ′(·) > 0, f ′′(·) < 0, f ′(0) = ∞, f ′(∞) = 0
と仮定する.ここで状態評価関数 (value function)は次のように書くことができる.
V0(k0) = maxct,kt+1
∞∑t=0
βtu(ct) (13)
s.t. kt+1 − kt = f(kt) − ct − δkt
k0 : given
V0(k0)効用を最大にする消費の経路に基づいて測った効用であるから,間接効用関数 (indirect
utility function)と対応している.ベルマンの最適性の原理から,(13)は,
V0(k0) = maxc0,k1
[u(c0) + β max
cτ ,kτ+1
∞∑τ=1
βτ−1u(cτ )
](14)
s.t. kt+1 − kt = f(kt) − ct − δkt
k0 : given
と書くことができる.括弧の中の第二項は,t = 1から先の効用最大化問題であるから,
V0(k0) = maxc0,k1
[u(c0) + βV1(k1)
](15)
s.t. k1 − k0 = f(k0) − c0 − δk0
k0 : given.
11
c0を消去すれば,V0(k0)は,次のように書くことができる.
V0(k0) = maxk1
[u(f(k0) − k1 + (1 − δ)k0
)+ βV1(k1)
](16)
一般の t期では,
Vt(kt) = maxcτ ,kτ+1
∞∑τ=t
βτ−tu(cτ ) (17)
s.t. kτ+1 − kτ = f(kτ ) − cτ − δkτ
kt : given
と表すことができる.よって同様にして,
Vt(kt) = maxct,kt+1
{u(ct) + β max
cτ ,kτ+1
[T∑
τ=t+1
βτ−t−1u(cτ )
]}s.t. kt+1 − kt = f(kt) − ct − δkt
kt : given
と書くことができ, ctを消去すれば,Vt(kt)は,次のようにベルマン方程式 (Bellman equation)
として書くことができる.
Vt(kt) = maxkt+1
[u(f(kt) − kt+1 + (1 − δ)kt
)+ βVt+1(kt+1)
](18)
さらに,(17)は時間 tに関わらず同じ形をしていることから,tに依存しない時間不変な状態評価関数 (time-invariant value function)として表すことができる.つまり,
V (·) = Vt(·).
よって,ベルマン方程式は,時間不変な関数 V (·)について
V (kt) = maxkt+1
[u(f(kt) − kt+1 + (1 − δ)kt
)+ βV (kt+1)
].
II.2 状態評価関数 (value function)とポリシー関数 (policy function)
次に,得られたベルマン方程式に基づいて value functionを求め,その後 policy functionを求める.有限期間の問題と異なり,無限期間の問題では最後の T 時点が無いため,後ろ向き帰納法を用いて後ろ向きに解くことができない.変わりに,value function V (·)が時間不変であることから,問題は
V (kt) = maxkt+1
[u(f(kt) − kt+1 + (1 − δ)kt
)+ βV (kt+1)
]. (19)
を満たすような関数 V (·)を見つけるという問題になっている.
12
(i) Value function
関数が解になるような問題であるため,取り扱うのは関数空間の問題であり,関数解析 (func-
tional analysis)の知識が必要不可欠となる.しかしここでは,value function V (·)は一意に存在する十分条件を満たしている.よって以下の value function iterationが利用可能である.
1. 関数方程式 (19)は,一意で強凹関数である解を持つ.
2. 一般的に kt+1 = k̃,kt = kと置くとする.有限でかつ連続である関数 V0を初期値として,次の繰り返し (iteration)によって,j → ∞としたときにVj(·)は関数方程式の解に近づく.
Vj+1(k) = maxk̃
[u(f(k) − k̃ + (1 − δ)k
)+ βVj(k̃)
]s.t. k : given.
(ii) Policy function
(19)式において,左辺の最大化問題を考える.一階条件は kt+1で微分して,
− u′(ct) + βV ′(kt+1) = 0
⇔ u′(ct) = βV ′(kt+1) (20)
⇔ u′(f(kt) − kt+1 + (1 − δ)kt
)= βV ′(kt+1) (21)
である3.u(·), f(·), V (·)はどれも時間不変な関数であるため,この式を解くことで,時間不変な policy function (time invariant policy function):
kt+1 = ϕ(kt) (22)
が t期の状態 ktの関数として得られる.これは t期において,状態 ktのときの最適な次期資本ストックを表す政策関数である.また t期において,状態 ktのときの t期の最適な消費 ctは,
ct = f(kt) − ϕ(kt) + (1 − δ)kt (23)
となる.
(iii) Euler equation
policy function (22)の kt+1 = ϕ(kt)を用いると,ベルマン方程式は,
V (kt) = u(f(kt) − ϕ(kt) + (1 − δ)kt
)+ βV
(ϕ(kt)
)
3計算の過程で ct = f(kt) − kt+1 + (1 − δ)kt の関係を利用している.
13
のように書くことができる.両辺を ktで微分すると,
V ′(kt) = u′(ct)[f ′(kt) − ϕ′(kt) + (1 − δ)
]+ βV ′(kt+1)ϕ
′(kt)
⇐⇒ V ′(kt) = u′(ct+1)[f ′(kt) + (1 − δ)
]− ϕ′(kt)
[u′(ct) − βV ′(kt+1)
]ここで,最大化のための一階条件 (20)式を用いると第二項が消え (これを包絡面の定理 (envelope
theorem)という),
V ′(kt) = u′(ct+1)[f ′(kt) + (1 − δ)
](24)
が得られる.これと,(20)式より,
u′(ct) = βu′(ct+1)[f ′(kt+1) + (1 − δ)
]となり,オイラー方程式を得ることができる.
II.3 動的計画法:例
ここでは効用関数,生産関数を具体的に特定化した例を用いて,動的計画法を適用し,value
functionを求めてみる.value functionを求める方法として代表的なものが 3つある.
1. Value function iteration
2. Howard’s improvement algorithm
3. Guess and verify
Value function iterationは,先にみた関数方程式の性質を利用したものであり,解を解析的に求めることができないケースにおいても数値計算によって対応することが可能である.またHoward’s
improvement algorithmは,value function iterationではなく,policy function iterationになっているところがポイントである.ここでは,Guess and Verifyのみを紹介する.value function
iterationおよびHoward’s improvement algorithmについては,ここではアルゴリズムだけを簡単に説明する.具体的な数値計算の方法については,Adda and Cooper (2003)およびLjungqvist
and Sargent (2004)を参照すること.一方,解を解析的に求めることができるケースでは,Guess
and Verifyという手続きによって,解関数を推測して,それが解になっていることを証明することで,解を求める.ただしこの手法が使えるのは,非常に限定的なケースだけであり,より強力なのは数値計算に基づいた手法である.
(i) Value function iteration
このアルゴリズムは,すでにほとんど解説済みである.
1. 一般的に kt+1 = k̃,kt = kと置くとする.有限でかつ連続である関数 V0を初期値として与える.
14
2. 次の繰り返し (iteration)を行う.
Vj+1(k) = maxk̃
[u(f(k) − k̃ + (1 − δ)k
)+ βVj(k̃)
]s.t. k : given.
3. j = j + 1とおく.
4. Vjが収束するまで,繰り返す.
この手法を value function iterationとか,iterating on the Bellman equationと呼ぶ.
(ii) Howard’s improvement algorithm
このアルゴリズムについては,後で一般的なケースについて説明する.
(iii) Guess and Verify
ここで Sargent (1987)の第一章に基づいて,効用関数 u(c) = log(c),生産関数 f(k) = Akαというケースを考える.ただし 0 < α < 1, A > 0である.また減耗率 δ = 1とする.ベルマン方程式 (19)式は,
V (kt) = maxkt+1
[log
(Akα
t − kt+1
)+ βV (kt+1)
](25)
である.このベルマン方程式を満たすような V (·)の関数を見つけたい.今,関数 V (·)を
V (kt) = E + F log(kt) (26)
と推測 (guess)する.Eと F はまだ決まっていない係数 (undetermined coefficients)である.この guessに基づいて,一階条件から policy functionを導出してみよう.(25)式左辺の最大化の一階条件は,
− 1
ct
+ βV ′(kt+1) = 0
⇔ 1
ct
= βV ′(kt+1) (27)
⇔ − 1
ct
+ βF1
kt+1
= 0
⇔ 1
ct
= βF1
Akαt − ct
⇔ ct =Akα
t − ct
βF
⇔(
1 +1
βF
)ct =
Akαt
βF
⇔ ct =Akα
t
1 + βF.
15
また kt+1の policy functionは,
kt+1 = Akα − ct
⇔ kt+1 = Akα − Akαt
1 + βF
⇔ kt+1 = Akα − Akαt
1 + βF
⇔ kt+1 =βF
1 + βFAkα
t
となる.(24)より,
V ′(kt) = βV ′(kt+1)αAkα−1t
⇔ V ′(kt) =1
ct
αAkα−1t ((27)式より)
⇔ V ′(kt) =Akα−1
tAkα
t
1+βF
(ctの policy functionより)
⇔ V ′(kt) = (1 + βF )αk−1t (28)
と書くことができる.一方,(26)式を kについて微分したものは,
V ′(kt) = Fk−1t (29)
(28)と (29)とを比較すると,
F = (1 + βF )α
⇔ F =α
1 − αβ
であることがわかる.よって,value functionおよび policy functionは,
V (kt) = E +α
1 − αβlog(kt) (30)
ct = (1 − αβ)Akαt (31)
kt+1 = Aαβkαt (32)
Eを求めるには,(25)に,上の 3本を代入して,
V (kt) = maxkt+1
[log
(Akα
t − kt+1
)+ βV (kt+1)
]⇔ E +
α
1 − αβlog(kt) = log
((1 − αβ)Akα
t
)+ β
[E +
α
1 − αβlog
(Aαβkα
t
)]⇔ E +
α
1 − αβlog(kt) = log
((1 − αβ)A
)+ α log(kt) + βE +
αβ
1 − αβlog
(Aαβ
)+
α2β
1 − αβlog(kt)
⇔ E +α
1 − αβlog(kt) = log
((1 − αβ)A
)+ βE +
αβ
1 − αβlog
(Aαβ
)+
(α +
α2β
1 − αβ
)log(kt)
⇔ (1 − β)E +α
1 − αβlog(kt) = log
((1 − αβ)A
)+
αβ
1 − αβlog
(Aαβ
)+
(α
1 − αβ
)log(kt)
16
log(kt)の係数はまったく同じだから,両辺が等しくなるためには,定数項の部分が等しくなる必要がある.つまり
(1 − β)E = log((1 − αβ)A
)+
αβ
1 − αβlog
(Aαβ
)⇔ E = (1 − β)−1
{log
((1 − αβ)A
)+
αβ
1 − αβlog
(Aαβ
)}.
実はこの例では,value function iterationを用いても同じ解を得ることができる.これについては,練習問題としておく.少し kt のダイナミクスについて考えてみよう.t期に状態 kt のとき,最適な kt+1 は policy
functionkt+1 = Aαβkαt によって決まる.つまり最適経路は kt+1 = Aαβkα
t という差分方程式を満たしていることになる.対数をとると,
log kt+1 = log(Aαβ) + α log kt (33)
|α| < 1より,t → ∞のとき,ktはある有限な値に収束していく.この定常状態は,
k = Aαβkα
⇔ k = (Aαβ)1
1−α
17
III 動的計画法:一般的な定式化いままでは,最適成長モデルに基づいて動的計画法を説明してきた.そこでの直観的な理解を生かし,以下ではより一般的な定式化を行う.ベルマン方程式から,状態評価関数 (value
function)とポリシー関数 (policy function)を導くという手続きはまったく同じである.動的計画法は,関数が解になるような問題であるため,取り扱うのは関数空間の問題であり,関数解析 (functional analysis)の知識が必要不可欠となる.しかし,数学的に厳密に取扱うにはこの講義の時間を超えるため,Ljungqvist and Sargent (2004)およびAdda and Cooper (2003) に基づいて直観的な説明だけを行うことにする.数学的には正しくないが直観的に言えば,関数空間をあたかも実数の空間であるかのように取り合っていると考えるとわかりやすいかもしれない.
III.1 不確実性のないケース
いままで考察してきたモデルは全て不確実性のない (no uncertainty,または deterministic)モデルであった.以下では不確実性のないケースの一般的な定式化を行う.不確実性のあるケースは別の講義ノートで改めて解説を行う.割引因子として 0 < β < 1を置く.目的は以下のペイオフ関数 r(·, ·)のは割引現在価値を最大にするように,無限期間の操作変数 (control variables){ut}∞t=0を選ぶことである.
max{ut}∞t=0
∞∑t=0
βtr(xt, ut) (34)
s.t. xt+1 = g(xt, ut)
x0 : given.
ペイオフ関数 r(·, ·)は,凹関数であると仮定する.xt+1 = g(xt, ut)は,xt の遷移を表す遷移式 (transition equation)と呼ばれる.集合 {(xt+1, xt) : xt ≤ g(xt, ut)}は,凸集合で,かつコンパクト集合であるとする4.動的計画法では,時間不変 (time-invariant)なポリシー関数(policy function)hを見つけることである.hは,状態変数 (state variables)である xtから操作変数 (control variables)である utへのmappingであり,
ut = h(xt) (35)
xt+1 = g(xt, ut) (36)
x0 : given,
に基づいて作られた系列 {ut}∞t=0は元の問題の解なる.このような解の形式を”recursive”と呼ぶ.policy functionを見つけるためには,次のような状態評価関数 (value function)を考える必要がある.これはある状態のときの問題の最適な価値を表したものであり,次のように書くこ
4数学的には正確ではないが,直観的に説明しておく.凸集合とは,集合 (集まり)があったときに,その境界のどこにもクボミがない状態である.ちなみに凸という漢字は凸集合ではない.コンパクト集合とは,有限で閉じた閉集合を表す.例えば数直線状に閉区間を考えたときには,値が有限であり,かつ境界を含み,中身が詰まっている区間が閉区間である.
18
とができる.
V0(x0) = max{ut}∞t=0
∞∑t=0
βtr(xt, ut) (37)
s.t. xt+1 = g(xt, ut)
x0 : given.
この value functionは次のように書くことができる.
V0(x0) = maxu0
[r(x0, u0) + β max
{uτ}∞τ=1
∞∑τ=1
βτ−1r(xτ , uτ )
]s.t. xt+1 = g(xt, ut)
x0 : given.
第二項に (37)を利用すると,
V0(x0) = maxu0
[r(x0, u0) + βV1(x1)
]s.t. xt+1 = g(xt, ut)
x0 : given.
と書くことができる.一般の t期についても同様にして,ベルマン方程式を導出できる.
Vt(xt) = maxut
[r(xt, ut) + βVt+1(xt+1)
]s.t. xt+1 = g(xt, ut)
xt : given.
ここで,(37)は tに関係しない定式化になっているため5,V0(·) = V (·)と時間不変 (time-invariant)
な関数として書くことができる.よって,一般に x̃ = xt+1,x = xt,u = utとするとき,V (·)は
V (x) = maxu
[r(x, u) + βV (x̃)
](38)
s.t. x̃ = g(x, u)
x : given,
というベルマン方程式の解になる.value function V (·)をどのように見つけるかは,あとに議論するとして,V (·)が見つかれば,policy functionは,
maxu
[r(x, u) + βV (x̃)
]s.t. x̃ = g(x, u)
x : given.
5tをどこから始めても関数の形は同じままである.
19
の解として求めることができる.まとめると,問題は次のようになる.次のベルマン方程式の解として value function V (·),policy function h(·)を求める.
V (x) = maxu
[r(x, u) + βV (x̃)
](39)
s.t. x̃ = g(x, u)
x : given,
policy function h(x)と x̃ = g(x, u)を代入すれば,定義域上の任意の xに対して
V (x) = r(x, h(x)
)+ βV
(g(x, h(x)
)). (40)
未知の関数である V (·),h(·)を解とする関数方程式 (functional equation)が得られる.以上の仮定の下で,次のことがわかる6
1. 関数方程式 (39)は,一意で強凹関数である解を持つ.
2. 有限でかつ連続である関数V0を初期値として,次の繰り返し (iteration)によって,j → ∞としたときに Vj(·)は関数方程式の解に近づく.
Vj+1(x) = maxx̃
[r(x, u) + βVj(x̃)
]s.t. x : given.
3. (39)の右辺を最大にする必要条件は,
∂r(x, u)
∂u+ βV ′
(g(x, u)
)∂g(x, u)
∂u= 0 (41)
この必要条件を満たす,一意で時間不変 (time-invariant)な policy function h(·)が存在する.
4. 端点を除いて,value functionは次のように微分可能である.(40)より,
V ′(x) =∂r
(x, h(x)
)∂x
+ β∂g
(x, h(x)
)∂x
V ′(g(x, h(x)
)). (42)
この式の導出はBenveniste and Scheinkmanによる7.特に x̃ = g(u)であるとき, ∂g∂x
= 0
より,
V ′(x) =∂r
(x, h(x)
)∂x
(43)
である.
6証明は省略する.詳しくは Ljungqvist and Sargent (2004)および Adda and Cooper (2003)に直観的な説明が書かれている.また数学的に厳密な取扱いは,Stokey and Lucas (1989)にある.
7(42)式の導出は後述
20
5. Euler方程式の導出x̃ = g(u)であるとき,(41)式は,
∂r(x, u)
∂u+ βV ′(x̃)
∂g(u)
∂u= 0 (44)
上の式に (43)を代入すると,
∂r(x, u)
∂u+ β
∂r(x̃, h(x̃)
)∂x̃
∂g(u)
∂u= 0. (45)
のように Euler方程式を導出できる8.
(i) (42)式の導出 (Benveniste and Scheinkman (1979))
(40)より,両辺微分して,
V ′(x) =∂r
(x, h(x)
)∂x
+∂r
(x, h(x)
)∂u
∂h(x)
∂x
+ βV ′(g(x, h(x)
))[∂g
(x, h(x)
)∂x
+∂g
(x, h(x)
)∂u
∂h(x)
∂x
]
を少し整理すると,
V ′(x) =∂r
(x, h(x)
)∂x
+ βV ′(g(x, h(x)
))∂g(x, h(x)
)∂x
+
[∂r
(x, h(x)
)∂u
+ βV ′(g(x, h(x)
))∂g(x, h(x)
)∂u
]∂h(x)
∂x.
(41)式より,第三項はゼロであるから,包絡面の定理 (envelope theorem)より (42)式
V ′(x) =∂r
(x, h(x)
)∂x
+ βV ′(g(x, h(x)
))∂g(x, h(x)
)∂x
.
が導出される.
8分かりやすく時間の添え字を戻せば,
∂r(xt, ut)∂ut
+ β∂r
(xt+1, h(xt+1)
)∂xt+1
∂g(ut)∂ut
= 0
∂r(xt, ut)∂ut
+ β∂r
(xt+1, ut+1
)∂xt+1
g′(ut) = 0
ここで,xt = kt,ut = kt+1,r(xt, ut) = u(f(kt) − kt+1 + (1 − δ)kt
),g(ut) = kt+1 とおけば,
−u′(ct) + βu′(ct+1) [f ′(kt+1) + (1 − δ)] = 0
と,最適成長のモデルにおけるオイラー方程式になっていることが確認できる.
21
III.2 3つの導出方法
最適成長の例で説明したとおり,value functionと policy functionを求めるのには 3つの方法がある.
1. Value function iteration
2. Howard’s improvement algorithm
3. Guess and verify
Value function iterationは,先にみた関数方程式の性質を利用したものであり,解を解析的に求めることができないケースにおいても数値計算によって対応することが可能である.またHoward’s
improvement algorithmは,value function iterationではなく,policy function iterationになっているところがポイントである.value function iterationおよびHoward’s improvement algorithm
については,ここではアルゴリズムだけを簡単に説明する.具体的な数値計算の方法については,Adda and Cooper (2003)および Ljungqvist and Sargent (2004)を参照すること.
(i) Value function iteration
1. 有限でかつ連続である関数 V0を初期値として与える.
2. 次の繰り返し (iteration)を行う.
Vj+1(x) = maxu
[r(u, x) + βVj(x̃)
]s.t. x̃ = g(x, u)
x : given,
3. j = j + 1とおく.
4. Vjが収束するまで,繰り返す.
この手法を value function iterationとか,iterating on the Bellman equationと呼ぶ.
(ii) Howard’s improvement algorithm
Howard’s improvement algorithmは次のステップからなる.
1. はじめに policy functionの初期関数として u = h0(x)を選ぶ.valueを計算する.
Vhj(x) =
∞∑t=0
βtr(xt, hj(xt)
),
s.t. xt+1 = g(xt, hj(xt)
), x0 : given.
22
2. 次の目的関数を最大にする policy functionを,u = hj+1(x)とする.
maxu
=[r(x, u) + βVhj
(g(x, u)
)]3. j = j + 1とおく.
4. hj(·)が収束するまで,step 1, 2, 3を繰り返す.
(iii) Guess and verify
すでに解説済み.
参考文献[1] Adda, Jerome and Russell W. Cooper, (2003) “Dynamic Economics: Quantitative Methods
and Applications,” MIT Press.
[2] Benveniste, Lawrence, and Jose Scheinkman, (1979) “On the differentiability of the value
function in dynamic models on economics,” Econometrica, Vol. 47(3), 727-732.
[3] チャン, A., C., (1995),「現代経済学の数学基礎〈上〉〈下〉」,CAP出版
[4] Ljungqvist, Lars and Thomas Sargent, (2004), “Recursive Macroeconomic Theory,” 2nd
edition, MIT Press.
[5] 西村清彦,(1990),「経済学のための最適化理論入門」,東京大学出版会.
[6] Sargent, Thomas, (1987) “Dynamic Macroeconomic Theory,” Harvard University Press.
[7] Stokey, Nancy, and Robert Lucas, (1989) “Recursive Methods in Economic Dynamics,”
Cambridge, MA: Harvard University Press.
23