経済学のための動的計画法 2

動的計画法(Dynamic Programming)

前回の記事の続きとして、本稿では動的計画法(Dynamic Programming)の解析的な解法について解説を行う。

動学問題

無限期間における以下の意思決定主体の動学的最適化問題を考えよう。

\begin{align*}
\max_{\left\{ c_{t},k_{t+1}\right\} _{t=0}^{\infty}}\sum_{t=0}^{\infty}\beta^{t}u\left(c_{t}\right)\\
\text{s.t.}c_{t}+k_{t+1}=\theta k_{t}^{\alpha}\\
c_{t}>0,k_{t+1}>0
\end{align*}

ここで、\(u\left(c_{t}\right)\) は意思決定主体の効用関数を示しており、\(c_{t}\) は消費、\(k_{t+1}\)は資本を表す。つまり、意思決定主体は自分自身の効用を最大にするような消費行動を取りたい。「s.t.」は制約条件を示している。最初の制約式は予算制約と呼ばれている。右辺が今期の資本の投入によって、生産される財の量を示しており、左辺では生産された財を今期の消費と来期の投資に分配することが示されている。二つ目の制約は消費と投資は正の値をとることを求めている。

さて、この問題は無限期間の問題なので、単に一階条件を取ると条件式は無限個存在するので解を得るのも難しい。そこで動的計画法を用いる。

最適性原理より、価値関数 \(V\left(k\right)\) を用いて、最適化問題は以下のようにベルマン方程式によって再帰的に表現できる。

\begin{align*}
V\left(k\right) & =\max_{c,k^{\prime}}u\left(c\right)+\beta V\left(k^{\prime}\right)\\
& \text{s.t.}c+k^{\prime}=\theta k^{\alpha}
\end{align*}

無限期間でのベルマン方程式は、時間\(t\) に依存しない定常状態を考えるので、今期の資本を\(k\)、来期の資本を\(k^{\prime}\)とする。

次に、予算制約を目的関数に代入してみる。

\[
V\left(k\right)=\max_{k^{\prime}\in\left(0,\theta k^{\alpha}\right)}u\left(\theta k^{\alpha}-k^{\prime}\right)+\beta V\left(k^{\prime}\right)
\]

ここで,価値関数を\(V\left(k\right)=a_{0}+a_{1}\ln k\) とGuess and Verifyする。Guess and Verifyとは、具体的な関数形は分からないけど、何となくあたりをつけた関数形を当てはめた問題を解いてみて、そのあとに関数形を正当化する方法である。最初はかなり気持ち悪く感じると思うが、初等的なベルマン方程式を解く際によく用いられる。

Guess and Verifyを用いると、ベルマン方程式は以下の形に書き換えられる

\[
a_{0}+a_{1}\ln k=\max_{k^{\prime}\in\left(0,\theta k^{\alpha}\right)}\ln\left(\theta k^{\alpha}-k^{\prime}\right)+\beta\left(a_{0}+a_{1}\ln k^{\prime}\right)
\]

ここで,一階の条件(\(k^{\prime}\)で微分)は

\[
0=\frac{-1}{\theta k^{\alpha}-k^{\prime}}+\frac{\beta a_{1}}{k^{\prime}}.
\]

となり、書き換えると

\[
k^{\prime}=\frac{\beta a_{1}\theta k^{\alpha}}{1+\beta a_{1}}.
\]

となる。これを元のベルマン方程式に代入する。

\begin{align*}
a_{0}+a_{1}\ln k & =\ln\left(\theta k^{\alpha}-\frac{\beta a_{1}\theta k^{\alpha}}{1+\beta a_{1}}\right)+\beta\left(a_{0}+a_{1}\ln\frac{\beta a_{1}\theta k^{\alpha}}{1+\beta a_{1}}\right)\\
& =\left(\alpha+\alpha\beta a_{1}\right)\ln k+\ln\frac{\theta}{1+\beta a_{1}}+\beta a_{0}+\beta a_{1}\ln\frac{\beta a_{1}\theta}{1+\beta a_{1}}.
\end{align*}

これが恒等式であるならば以下の連立方程式が成り立つ。

\[
a_{1}=\alpha+\alpha\beta a_{1}.
\]

\[
a_{0}=\ln\frac{\theta}{1+\beta a_{1}}+\beta a_{0}+\beta a_{1}\ln\frac{\beta a_{1}\theta}{1+\beta a_{1}}.
\]

これを解くとそれぞれ、

\[
a_{1}=\frac{\alpha}{1-\alpha\beta}.
\]

\begin{align*}
a_{0} & =\frac{1}{1-\beta}\left(\ln\theta(1-\alpha\beta)+\frac{\alpha\beta}{1-\alpha\beta}\ln\alpha\beta\theta\right).
\end{align*}

が得られる。これでGuessされた関数のパラメータが分かった。

よって、価値関数と政策関数は

\[
V\left(k\right)=\frac{1}{1-\beta}\left(\ln\theta(1-\alpha\beta)+\frac{\alpha\beta}{1-\alpha\beta}\ln\alpha\beta\theta\right)+\frac{\alpha}{1-\alpha\beta}\ln k.
\]

\[
k^{\prime}=\alpha\beta\theta k^{\alpha}.
\]

\[
c=\left(1-\alpha\beta\right)\theta k^{\alpha}.
\]

であることが分かる。

次回の予定

次回は動的計画法をRプログラムで実装する。

参考文献

  • 工藤教孝(2007)『動学的最適化入門』
タイトルとURLをコピーしました