{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# DiscreteDP Example: Mine Management" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Daisuke Oyama**\n", "\n", "*Faculty of Economics, University of Tokyo*" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "From Miranda and Fackler, Applied Computational Economics and Finance, 2002,\n", "Section 7.6.1" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import itertools\n", "import numpy as np\n", "from scipy import sparse\n", "import matplotlib.pyplot as plt\n", "from quantecon.markov import DiscreteDP" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The model is formulated with finite horizon in Section 7.2.1,\n", "but solved with infinite horizon in Section 7.6.1.\n", "Here we follow the latter." ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": true }, "outputs": [], "source": [ "price = 1 # Market price of ore\n", "sbar = 100 # Upper bound of ore stock\n", "beta = 0.9 # Discount rate\n", "n = sbar + 1 # Number of states\n", "m = sbar + 1 # Number of actions\n", "\n", "# Cost function\n", "c = lambda s, x: x**2 / (1+s)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Product formulation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This approch sets up the reward array `R` and the transition probability array `Q`\n", "as a 2-dimensional array of shape `(n, m)`\n", "and a 3-simensional array of shape `(n, m, n)`, respectively,\n", "where the reward is set to $-\\infty$ for infeasible state-action pairs\n", "(and the transition probability distribution is arbitrary for those pairs)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Reward array:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": true, "scrolled": true }, "outputs": [], "source": [ "R = np.empty((n, m))\n", "for s, x in itertools.product(range(n), range(m)):\n", " R[s, x] = price * x - c(s, x) if x <= s else -np.inf" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "(Degenerate) transition probability array:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": true }, "outputs": [], "source": [ "Q = np.zeros((n, m, n))\n", "for s, x in itertools.product(range(n), range(m)):\n", " if x <= s:\n", " Q[s, x, s-x] = 1\n", " else:\n", " Q[s, x, 0] = 1 # Arbitrary" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Set up the dynamic program as a `DiscreteDP` instance:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": true }, "outputs": [], "source": [ "ddp = DiscreteDP(R, Q, beta)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Solve the optimization problem with the `solve` method,\n", "which by defalut uses the policy iteration algorithm:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": true }, "outputs": [], "source": [ "res = ddp.solve()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The number of iterations:" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "9" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "res.num_iter" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The controlled Markov chain is stored in `res.mc`.\n", "To simulate:" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": true }, "outputs": [], "source": [ "nyrs = 15\n", "spath = res.mc.simulate(nyrs+1, init=sbar)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([100, 76, 58, 44, 33, 25, 19, 14, 11, 8, 6, 4, 3,\n", " 2, 1, 0])" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "spath" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Draw the graphs:" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n/w9skhKSWO7fFQAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "wspace = 0.5\n", "hspace = 0.3\n", "fig = plt.figure(figsize=(12, 8+hspace))\n", "fig.subplots_adjust(wspace=wspace, hspace=hspace)\n", "ax0 = plt.subplot2grid((2, 4), (0, 0), colspan=2)\n", "ax1 = plt.subplot2grid((2, 4), (0, 2), colspan=2)\n", "ax2 = plt.subplot2grid((2, 4), (1, 1), colspan=2)\n", "\n", "ax0.plot(res.v)\n", "ax0.set_xlim(0, sbar)\n", "ax0.set_ylim(0, 60)\n", "ax0.set_xlabel('Stock')\n", "ax0.set_ylabel('Value')\n", "ax0.set_title('Optimal Value Function')\n", "\n", "ax1.plot(res.sigma)\n", "ax1.set_xlim(0, sbar)\n", "ax1.set_ylim(0, 25)\n", "ax1.set_xlabel('Stock')\n", "ax1.set_ylabel('Extraction')\n", "ax1.set_title('Optimal Extraction Policy')\n", "\n", "ax2.plot(spath)\n", "ax2.set_xlim(0, nyrs)\n", "ax2.set_ylim(0, sbar)\n", "ax2.set_xticks(np.linspace(0, 15, 4, endpoint=True))\n", "ax2.set_xlabel('Year')\n", "ax2.set_ylabel('Stock')\n", "ax2.set_title('Optimal State Path')\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## State-action pairs formulation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This approach assigns the rewards and transition probabilities\n", "only to feaslbe state-action pairs,\n", "setting up `R` and `Q` as a 1-dimensional array of length `L`\n", "and a 2-dimensional array of shape `(L, n)`, respectively.\n", "In particular, this allows us to formulate `Q` in\n", "[scipy sparse matrix format](http://docs.scipy.org/doc/scipy/reference/sparse.html)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We need the arrays of feasible state and action indices:" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": true }, "outputs": [], "source": [ "S = np.arange(n)\n", "X = np.arange(m)\n", "\n", "# Values of remaining stock in the next period\n", "S_next = S.reshape(n, 1) - X.reshape(1, m)\n", "\n", "# Arrays of feasible state and action indices\n", "s_indices, a_indices = np.where(S_next >= 0)\n", "\n", "# Number of feasible state-action pairs\n", "L = len(s_indices)" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "5151" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "L" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([ 0, 1, 1, ..., 100, 100, 100])" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s_indices" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "scrolled": false }, "outputs": [ { "data": { "text/plain": [ "array([ 0, 0, 1, ..., 98, 99, 100])" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a_indices" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Reward vector:" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": true }, "outputs": [], "source": [ "R = np.empty(L)\n", "for i, (s, x) in enumerate(zip(s_indices, a_indices)):\n", " R[i] = price * x - c(s, x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "(Degenerate) transition probability array,\n", "where we use the [scipy.sparse.lil_matrix](http://docs.scipy.org/doc/scipy/reference/generated/scipy.sparse.lil_matrix.html) format,\n", "while any format will do\n", "(internally it will be converted to the [scipy.sparse.csr_matrix](https://docs.scipy.org/doc/scipy/reference/generated/scipy.sparse.csr_matrix.html) format):" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": true }, "outputs": [], "source": [ "Q = sparse.lil_matrix((L, n))\n", "it = np.nditer((s_indices, a_indices), flags=['c_index'])\n", "for s, x in it:\n", " i = it.index\n", " Q[i, s-x] = 1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Alternatively, one can construct `Q` directly as a scipy.sparse.csr_matrix as follows: " ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# data = np.ones(L)\n", "# indices = s_indices - a_indices\n", "# indptr = np.arange(L+1)\n", "# Q = sparse.csr_matrix((data, indices, indptr), shape=(L, n))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Set up the dynamic program as a `DiscreteDP` instance:" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": true }, "outputs": [], "source": [ "ddp_sp = DiscreteDP(R, Q, beta, s_indices, a_indices)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Solve the optimization problem with the `solve` method,\n", "which by defalut uses the policy iteration algorithm:" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": true, "scrolled": false }, "outputs": [], "source": [ "res_sp = ddp_sp.solve()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Number of iterations:" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "9" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "res_sp.num_iter" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Simulate the controlled Markov chain:" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": true }, "outputs": [], "source": [ "nyrs = 15\n", "spath_sp = res_sp.mc.simulate(nyrs+1, init=sbar)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Draw the graphs:" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n/w9skhKSWO7fFQAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "wspace = 0.5\n", "hspace = 0.3\n", "fig = plt.figure(figsize=(12, 8+hspace))\n", "fig.subplots_adjust(wspace=wspace, hspace=hspace)\n", "ax0 = plt.subplot2grid((2, 4), (0, 0), colspan=2)\n", "ax1 = plt.subplot2grid((2, 4), (0, 2), colspan=2)\n", "ax2 = plt.subplot2grid((2, 4), (1, 1), colspan=2)\n", "\n", "ax0.plot(res_sp.v)\n", "ax0.set_xlim(0, sbar)\n", "ax0.set_ylim(0, 60)\n", "ax0.set_xlabel('Stock')\n", "ax0.set_ylabel('Value')\n", "ax0.set_title('Optimal Value Function')\n", "\n", "ax1.plot(res_sp.sigma)\n", "ax1.set_xlim(0, sbar)\n", "ax1.set_ylim(0, 25)\n", "ax1.set_xlabel('Stock')\n", "ax1.set_ylabel('Extraction')\n", "ax1.set_title('Optimal Extraction Policy')\n", "\n", "ax2.plot(spath_sp)\n", "ax2.set_xlim(0, nyrs)\n", "ax2.set_ylim(0, sbar)\n", "ax2.set_xticks(np.linspace(0, 15, 4, endpoint=True))\n", "ax2.set_xlabel('Year')\n", "ax2.set_ylabel('Stock')\n", "ax2.set_title('Optimal State Path')\n", "\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.1" } }, "nbformat": 4, "nbformat_minor": 2 }