{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Finding the optimal policy\n", "\n", "Let's try to find the optimal policy using Poicy iteration an Value iteration in a simple grid world.\n", "\n", "The world and the optimal policy to be gound are the following:\n", "\n", "\n", "\n", "Next we have the implementation of the gridworld (see previous notebook for explanations)." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import random\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline\n", "\n", "#Define the state matrix\n", "state_matrix = np.zeros((3,4))\n", "state_matrix[0, 3] = 1\n", "state_matrix[1, 3] = 1\n", "state_matrix[1, 1] = -1\n", "\n", "#Define the reward matrix\n", "reward_matrix = np.full((3,4), -0.04)\n", "reward_matrix[0, 3] = 1\n", "reward_matrix[1, 3] = -1\n", "\n", "transition_matrix = np.array([[0.8, 0.1, 0.0, 0.1],\n", " [0.1, 0.8, 0.1, 0.0],\n", " [0.0, 0.1, 0.8, 0.1],\n", " [0.1, 0.0, 0.1, 0.8]])\n", "\n", "gamma = 0.999\n", "\n", "def prob_next_state(position,world_row=3,world_col=4):\n", " \"Given a position in the grid-world, returns a list of possible next states\"\n", " posible=[]\n", " for action in range(4):\n", " position_def = position\n", " if(action == 0): new_position = (position[0]-1, position[1]) #UP\n", " elif(action == 1): new_position = (position[0], position[1]+1) #RIGHT\n", " elif(action == 2): new_position = (position[0]+1, position[1]) #DOWN\n", " elif(action == 3): new_position = (position[0], position[1]-1) #LEFT\n", " else: raise ValueError('The action is not included in the action space.')\n", "\n", " #Check if the new position is a valid position\n", " if (new_position[0]>=0 and new_position[0]=0 and new_position[1] \"\n", " elif(policy_matrix[row,col] == 2): \n", " U[row,col]=0 \n", " R[row,col]=-1 \n", " #policy_string += \" v \" \n", " elif(policy_matrix[row,col] == 3):\n", " U[row,col]=-1 \n", " R[row,col]=0 \n", " #policy_string += \" < \"\n", " elif(np.isnan(policy_matrix[row,col])): \n", " U[row,col]=0 \n", " R[row,col]=0 \n", " #policy_string += \" # \"\n", " plt.rcParams['figure.figsize'] = (4,3)\n", " if V.size==0:\n", " V=np.ones(policy_matrix.shape)\n", " for x in lstates:\n", " V[x.multi_index]=0.7\n", " plt.matshow(V,extent=[0, 4, 0, 3],vmin=0, vmax=1)\n", " else:\n", " plt.matshow(V,extent=[0, 4, 0, 3])\n", " plt.grid()\n", " X, Y = np.meshgrid(np.arange(0.5, 4.5, 1), np.arange(0.5, 3.5, 1))\n", " Q = plt.quiver(X, Y,U,R)\n", "\n", " plt.show()\n" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "def return_expected_action(state):\n", " \"\"\"Return the expected action.\n", " \"\"\"\n", " lV=[]\n", " for action in range(0,4):\n", " acum=0\n", " for x in zip(prob_next_state(state.multi_index,3,4),transition_matrix[int(action),:]):\n", " acum = acum + x[1]*(reward_matrix[x[0]]+gamma*V[x[0]])\n", " lV.append(acum)\n", " return np.argmax(lV)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Policy iteration algorithm" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Initial policy:\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Update!\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Update!\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Update!\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Update!\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAP4AAADMCAYAAABTJB73AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvFvnyVgAADr1JREFUeJzt3X1wVfWdx/H3NzcP5EEgQEAaQF0VWosjWyy1RrFStSDZsg+dru7UdqbusnaWLj6Na3e3y9ZxZmeXqS3TZcZhRLvrsjq6dlcNPhAMmqqgPBScKKKIVYJixARCbp5ubn77x40VrORewj0595zf5zWTMTEnd76Hm/c9596cc4855xARvxSFPYCIjD6FL+IhhS/iIYUv4iGFL+IhhS/iobyGb2YLzWyPme01s9vzedthM7N7zazNzFrCniUIZjbdzDaZ2W4ze9XMloc9Uz6Z2Rgze9nMdg2t30/CninfzCxhZr8xs4Zsy+YtfDNLAKuBRcB5wLVmdl6+br8A/BJYGPYQARoAbnHOfQG4CPibmN1/fcAC59wFwBxgoZldFPJM+bYc2J3Lgvnc4s8D9jrn9jnn+oEHgSV5vP1QOeeagfaw5wiKc+5959yOoc+PkvkFqg13qvxxGV1DX5YMfcTm6DUzmwYsBu7JZfl8hl8L7D/m61Zi9IvjEzM7E/hD4KVwJ8mvoV3hnUAb0Oici9P6/Ry4DRjMZeF8hm+f8f9i84jqCzOrAh4BbnTOdYY9Tz4559LOuTnANGCemc0Oe6Z8MLN6oM05tz3Xn8ln+K3A9GO+nga8l8fbl4CZWQmZ6Nc5534V9jxBcc4dBp4lPq/Z1AHfNLPfknmKvcDM/mu4H8hn+FuBc83sLDMrBa4BHsvj7UuAzMyAtcBu59xdYc+Tb2ZWY2bjhz4vB64AXg93qvxwzv3IOTfNOXcmme6anHPfGe5n8ha+c24AWAY8TeaFoYecc6/m6/bDZmYPAJuBWWbWambXhz1TntUB15HZWuwc+rg67KHyaCqwycxeIbORanTOZf2zV1yZTssV8Y+O3BPxkMIX8ZDCF/GQwhfxUNbwR3Jyg5ktzc94hSfO6wZav6jLdf1y2eKP5OSGOP/jxnndQOsXdTmtX3G2BVzm732xPblBxEc5/R1/6JTb7cA5wGrn3N99xjJLGXq0KSsrnXvGjCl5HrUwpAaKKCnO6TyISNL6RduBA610JQc/67yZ45zUATxDhzz+L/BD59wJ35Bi1swZbndzWc63GyXNLcuZP3tV2GMERusXbfO+sZ9tu3qzhn9Sr+rH8OQGES/l8qp+bE9uEPFV1hf3yJzc8B9Dz/OLyJx84+3JDSJxkMur+q+QeTcWEYkJHbkn4iGFL+IhhS/iIYUv4iGFL+IhhS/iIYUv4iGFL+IhhS/iIYUv4iGFL+IhhS/iIYUv4iGFL+IhhS/iIYUv4iGFL+IhhS/iIYUv4qHYh9+VHCSViu+Ffw4fSXMy10aImo7D6bBHiKXYh9/f75j51Xe49oaDrHvkKO0d8fpF2vNWijPm/pYf3NZGQ2OSnp54XSXmwUe7mD3/HW6/8xDPv9RDOh3fB7nRlMvbaxe0p5qSPPtiz7DLVFYYDz3axUOPdpFIQN2Xx1B/VSWLr6hk1jklmGW98Eho7ll3hL1vp4ZdprvHseb+Ttbc30n5GOPr88upv7KS+isrmTqlsO/iO37aTvcwD1Z9fY7db6bY/eZhVq4+zITqIhYtqKT+qgq+8bUKxo1NjOK0J+eppiS1U4s5/wuFd1Wpwv6tyMGvt/SycvXhnJdPp6F5Sy8vbO2lYUOSm26o5o+uqijY+B9+rIuNzcM/sB2rp9fRsKGbZ5p7eGJjN/94UzVzLxgT4ISn5hdrD9PekfteSnvHIOseOcpTTUmWLKrin26uZnptSYATjtyKf2vna3Xl/OuPFX7e3XzDeL7/F2OHXea7yw6yZXsf48YWsXBBBfVXVrLw8gomVBfu1uJj962aQk/viXdv+/ocl/1JK+0dg9ROTbD4ikrqr6pkQV055eWF/0zu5aemMzhM9/veSbHwmvcAOG9mKfVXVbD4ikq+euEYEonCfLD+2Ivrp1FUoHdB5MOfOCHBxAknDnj/gRQXzR3DnT+ayCXzyikpKexflk/73OnD30XPvdjD3/7leOqvrGTO7NKC3XM5kbNmDL+1fv7lHn52xyQWX1nJ2WcW5pb9RAr5gSny4WczvbaEn/6kJuwxAnPZxeVcdnF52GME5nvfHn5vTkamQHdERCRICl/EQwpfxEMKX8RDCl/EQwpfxEMKX8RDCl/EQwpfxEMKX8RDCl/EQwpfxEMKX8RDCl/EQwpfxEMKX8RDCl/EQwpfxEMKX8RDCl/EQwpfxENZwzez6Wa2ycx2m9mrZrZ8NAYTkeDk8vbaA8AtzrkdZnYasN3MGp1zrwU8m4gEJOsW3zn3vnNux9DnR4HdQG3Qg4lIcOxkLrFsZmcCzcBs51znp763FFgKUFMzae5D/70if1MWkK6eKVSVfxD2GIHR+kXbrbfcyrZdvVkv4ZPzlXTMrAp4BLjx09EDOOfWAGsAZs2c4ebPXnUS40ZHc8ty4rpuoPXzRU6v6ptZCZno1znnfhXsSCIStFxe1TdgLbDbOXdX8COJSNBy2eLXAdcBC8xs59DH1QHPJSIByvoc3zn3PFC41/sVkZOmI/dEPKTwRTyk8EU8pPBFPKTwRTwU+fCPdKbDHkFGaHDQ0Xl0MOwxvBT58P95ZXvYI8gIbdvVx+MbkmGP4aVIh9/63gCr7ztCe4e2+lG0vjHJ+o0KPwyRDr+hMUk6DU82dYc9ioxAQ2OSp5q6SaVyP0NU8iPy4R/7X4mO/QdS7Gzp50jnIM+/3BP2ON6JbPjJ7kGans/8wjy9SVuNqGnY+MleWoOe54+6yIa/sbmbvr5M7NpqRM+xsTc0dnMybwgjpy6y4a9vPP55vbYa0ZHsHmTTC588UO99O8Ubb6VCnMg/kQzfOUd5uXHbsvEA/PjmajJvGyBRsLOljxW3TOBL55cxsbqIu1fW8Mru/rDH8krOb71VSMyMVXfWcP/DmXcAmzO7jD9eVBXyVJKrunnl1M0r54mNSRIJ46++My7skbwTyS2+iJwahS/iIYUv4iGFL+IhhS/iIYUv4iGFX8C27ezltjsOhT2GjNBdd3cU7NmHkfw7/sf+bHEVX7+0gupx8Xz8OnBwgB2v9JFKOUpK4neA0iP3TmUgHd9DdXe29FNSXJj3W6TDr6gooqIintEDLFlYxZKF8T0wadLERNgjBOo//31K2COcUHyrEZETUvgiHlL4Ih5S+CIeUvgiHlL4Ih5S+CIeUvgiHlL4Ih5S+CIeUvgiHlL4Ih5S+CIeUvgiHlL4Ih5S+CIeUvgiHlL4Ih5S+CIeUvgiHlL4Ih5S+CIeUvgiHsoavpnda2ZtZtYyGgOJSPBy2eL/ElgY8BwiMoqyhu+cawbaR2EWERklebuElpktBZYC1NRMornltnzddEHp6plCc8vysMcITFfPFNZuXRH2GIGpHqyI9f0Ht+a0VN7Cd86tAdYAzJo5w82fvSpfN11QmluWE9d1g8z6PZR4K+wxAvPtrrn8aYzvv1zpVX0RDyl8EQ/l8ue8B4DNwCwzazWz64MfS0SClPU5vnPu2tEYRERGj3b1RTyk8EU8pPBFPKTwRTyk8EU8FPnw39mfCnsEkciJdPjOOW5ecSjsMUQiJ9Lhv/ZGP//3ZJJ3W7XVFzkZkQ6/YUM3AOs3doc8iUi0RDr89Y1JAB7fkAx5EpFoiWz4hz5Ks3l7LwCbXuimKzkY8kQi0RHZ8J94JsngUOv9/bCxWbv7IrmKbPgNjUnMMp+bZb4WkdxEMnznHJdfUsEv/qUGgHt+NpkvzxkT8lQi0RHJ8M2MH3xvHFUVmU3++LFF/PV3x4U8lUh0RDJ8ETk1Cl/EQwpfxEMKX8RDCj8kb7+b4p51R0inXdij5J1zjs432zi4aU/YowQilXI8+2J3pI8dydsFNWR46bRjy/ZeGhqTNGzo5rU3+rlx6TgSCQt7tLxI9w3Q8Zv9fLh5H4e2vE3fh1188e/jc8nFjsNpnmzqpqExydObujnSOciuTdPDHmvEIh1+eXkRU6ckGFNWmPH09zsefTpJw4YkTz6T5KOO4w8rXnN/J/c9eHTY2/iftaez4JKKIMccsVRXL23P7eXDzfto3/Eug70Dx33/9Z83sWdV07C3Ubfu+5SMLcxjMN5tTfHw4100bEjywtZe0unjv3/pNw8M+/MzaovZ2TQjwAlHLtLhf6u+im/VV4U9xgmVlhoXXlDGB20DHGwb4LnNPaSOOYP4rBklTKlJDHsbY6sK99lYcWUZY2dNpq89SX97ks7XPzju+1VnTqCorGTY27CiwnzQBvjc6cVceMEYDralOfhhmjfe+uTOSyTgS+eX/e7o0c8yOct9G6ZIhx8FZ80oYdn141l2/Xg6jw6y4blu1jcmeWJjki9+vpQH7j497BFHzMw47ZzJnHbOZP7guq/Q157k0Ja3ObR5Hx9tf5fJl57LGX8+N+wxR6y42Ljs4nIuu7iclSsm8cZb/axvTNLQ2M2vX+rhH26q5vK6wtwby0bhj6KxpxX9bi8lnXZs3dlHOu1i8zy/bEIltVfPpvbq2aT7B+jaF693R5p5dikzzy7lphuq6TicpvX9gew/VKAUfkgSCeOiuYX53DYfEqXFjPt8dPdmsqken6B6fOHuymdTuE8gRSQwCl/EQwpfxEMKX8RDCl/EQwpfxEMKX8RDCl/EQwpfxEMKX8RDCl/EQwpfxEMKX8RDCl/EQwpfxEMKX8RDCl/EQwpfxEMKX8RDCl/EQwpfxEM5hW9mC81sj5ntNbPbgx5KRIKVNXwzSwCrgUXAecC1ZnZe0IOJSHBy2eLPA/Y65/Y55/qBB4ElwY4lIkHK5YIatcD+Y75uBb7y6YXMbCmwdOjLvsRUWk59vEL0w0lAvC4Rc5x4r99GmLQ0xusHzMploVzC/6zrO/3eRd2dc2uANQBmts05d2EuA0RNnNcNtH5RZ2bbclkul139VuDYC4FPA94byVAiUhhyCX8rcK6ZnWVmpcA1wGPBjiUiQcq6q++cGzCzZcDTQAK41zn3apYfW5OP4QpUnNcNtH5Rl9P6mXO/93RdRGJOR+6JeEjhi3hI4Yt4SOGLeEjhi3hI4Yt4SOGLeOj/ATUgLeBjl26wAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Start with random policy\n", "policy_matrix = np.zeros((3,4))\n", "state = np.nditer(state_matrix, flags=['multi_index'])\n", "while not state.finished:\n", " policy_matrix[state.multi_index] = np.random.choice(4, 1)\n", " state.iternext()\n", "policy_matrix[0,3]=-1\n", "policy_matrix[1,3]=-1\n", "policy_matrix[1,1]=np.nan\n", "print('Initial policy:')\n", "print_policy(policy_matrix)\n", "\n", "\n", "# Enter the loop\n", "unchanged = False\n", "while not unchanged:\n", " unchanged = True\n", " # Policy evaluation step\n", " V=policy_evaluation(policy_matrix, 100)\n", " \n", " # Policy improvement\n", " state = np.nditer(state_matrix, flags=['multi_index'])\n", " lchanged_states=[]\n", " while not state.finished:\n", " if state[0]==0:\n", " action=return_expected_action(state)\n", " if policy_matrix[state.multi_index]!=action:\n", " unchanged = False\n", " lchanged_states.append(state.copy())\n", " policy_matrix[state.multi_index]=action\n", " state.iternext()\n", " \n", " if not unchanged:\n", " print('Update!')\n", " print_policy(policy_matrix,lstates=lchanged_states)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Policy iteration without complete convergence of policy evaluation" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Initial policy:\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Update in iteration 1 !\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Update in iteration 2 !\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Update in iteration 3 !\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Update in iteration 6 !\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Start with random policy\n", "state = np.nditer(state_matrix, flags=['multi_index'])\n", "while not state.finished:\n", " policy_matrix[state.multi_index] = np.random.choice(4, 1)\n", " state.iternext()\n", "policy_matrix[0,3]=-1\n", "policy_matrix[1,3]=-1\n", "policy_matrix[1,1]=np.nan \n", "print('Initial policy:')\n", "print_policy(policy_matrix)\n", "\n", "unchanged = False \n", "for k in range(1000): # <<------ Now we cannot stop after no change in policy\n", " unchanged = True\n", " # Policy evaluation\n", " V=policy_evaluation(policy_matrix, 1, V) # <<------ Only 1 swap. Reuse V. \n", " \n", " # Policy improvement\n", " state = np.nditer(state_matrix, flags=['multi_index'])\n", " lchanged_states=[]\n", " while not state.finished:\n", " if state[0]==0:\n", " action=return_expected_action(state)\n", " if policy_matrix[state.multi_index]!=action:\n", " unchanged = False\n", " lchanged_states.append(state.copy())\n", " policy_matrix[state.multi_index]=action\n", " state.iternext()\n", " \n", " if not unchanged:\n", " print('Update in iteration',k+1,'!')\n", " print_policy(policy_matrix,lstates=lchanged_states)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Policy iteration without complete sweeps of policy inprovement" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "scrolled": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Initial policy:\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Update in iteration 1 !\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Update in iteration 2 !\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Update in iteration 3 !\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Update in iteration 8 !\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Update in iteration 9 !\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAP4AAADMCAYAAABTJB73AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvFvnyVgAADr1JREFUeJzt3X1wVfWdx/H3NzcP5EEgQEAaQF0VWosjWyy1RrFStSDZsg+dru7UdqbusnaWLj6Na3e3y9ZxZmeXqS3TZcZhRLvrsjq6dlcNPhAMmqqgPBScKKKIVYJixARCbp5ubn77x40VrORewj0595zf5zWTMTEnd76Hm/c9596cc4855xARvxSFPYCIjD6FL+IhhS/iIYUv4iGFL+IhhS/iobyGb2YLzWyPme01s9vzedthM7N7zazNzFrCniUIZjbdzDaZ2W4ze9XMloc9Uz6Z2Rgze9nMdg2t30/CninfzCxhZr8xs4Zsy+YtfDNLAKuBRcB5wLVmdl6+br8A/BJYGPYQARoAbnHOfQG4CPibmN1/fcAC59wFwBxgoZldFPJM+bYc2J3Lgvnc4s8D9jrn9jnn+oEHgSV5vP1QOeeagfaw5wiKc+5959yOoc+PkvkFqg13qvxxGV1DX5YMfcTm6DUzmwYsBu7JZfl8hl8L7D/m61Zi9IvjEzM7E/hD4KVwJ8mvoV3hnUAb0Oici9P6/Ry4DRjMZeF8hm+f8f9i84jqCzOrAh4BbnTOdYY9Tz4559LOuTnANGCemc0Oe6Z8MLN6oM05tz3Xn8ln+K3A9GO+nga8l8fbl4CZWQmZ6Nc5534V9jxBcc4dBp4lPq/Z1AHfNLPfknmKvcDM/mu4H8hn+FuBc83sLDMrBa4BHsvj7UuAzMyAtcBu59xdYc+Tb2ZWY2bjhz4vB64AXg93qvxwzv3IOTfNOXcmme6anHPfGe5n8ha+c24AWAY8TeaFoYecc6/m6/bDZmYPAJuBWWbWambXhz1TntUB15HZWuwc+rg67KHyaCqwycxeIbORanTOZf2zV1yZTssV8Y+O3BPxkMIX8ZDCF/GQwhfxUNbwR3Jyg5ktzc94hSfO6wZav6jLdf1y2eKP5OSGOP/jxnndQOsXdTmtX3G2BVzm732xPblBxEc5/R1/6JTb7cA5wGrn3N99xjJLGXq0KSsrnXvGjCl5HrUwpAaKKCnO6TyISNL6RduBA610JQc/67yZ45zUATxDhzz+L/BD59wJ35Bi1swZbndzWc63GyXNLcuZP3tV2GMERusXbfO+sZ9tu3qzhn9Sr+rH8OQGES/l8qp+bE9uEPFV1hf3yJzc8B9Dz/OLyJx84+3JDSJxkMur+q+QeTcWEYkJHbkn4iGFL+IhhS/iIYUv4iGFL+IhhS/iIYUv4iGFL+IhhS/iIYUv4iGFL+IhhS/iIYUv4iGFL+IhhS/iIYUv4iGFL+IhhS/iIYUv4qHYh9+VHCSViu+Ffw4fSXMy10aImo7D6bBHiKXYh9/f75j51Xe49oaDrHvkKO0d8fpF2vNWijPm/pYf3NZGQ2OSnp54XSXmwUe7mD3/HW6/8xDPv9RDOh3fB7nRlMvbaxe0p5qSPPtiz7DLVFYYDz3axUOPdpFIQN2Xx1B/VSWLr6hk1jklmGW98Eho7ll3hL1vp4ZdprvHseb+Ttbc30n5GOPr88upv7KS+isrmTqlsO/iO37aTvcwD1Z9fY7db6bY/eZhVq4+zITqIhYtqKT+qgq+8bUKxo1NjOK0J+eppiS1U4s5/wuFd1Wpwv6tyMGvt/SycvXhnJdPp6F5Sy8vbO2lYUOSm26o5o+uqijY+B9+rIuNzcM/sB2rp9fRsKGbZ5p7eGJjN/94UzVzLxgT4ISn5hdrD9PekfteSnvHIOseOcpTTUmWLKrin26uZnptSYATjtyKf2vna3Xl/OuPFX7e3XzDeL7/F2OHXea7yw6yZXsf48YWsXBBBfVXVrLw8gomVBfu1uJj962aQk/viXdv+/ocl/1JK+0dg9ROTbD4ikrqr6pkQV055eWF/0zu5aemMzhM9/veSbHwmvcAOG9mKfVXVbD4ikq+euEYEonCfLD+2Ivrp1FUoHdB5MOfOCHBxAknDnj/gRQXzR3DnT+ayCXzyikpKexflk/73OnD30XPvdjD3/7leOqvrGTO7NKC3XM5kbNmDL+1fv7lHn52xyQWX1nJ2WcW5pb9RAr5gSny4WczvbaEn/6kJuwxAnPZxeVcdnF52GME5nvfHn5vTkamQHdERCRICl/EQwpfxEMKX8RDCl/EQwpfxEMKX8RDCl/EQwpfxEMKX8RDCl/EQwpfxEMKX8RDCl/EQwpfxEMKX8RDCl/EQwpfxEMKX8RDCl/EQwpfxENZwzez6Wa2ycx2m9mrZrZ8NAYTkeDk8vbaA8AtzrkdZnYasN3MGp1zrwU8m4gEJOsW3zn3vnNux9DnR4HdQG3Qg4lIcOxkLrFsZmcCzcBs51znp763FFgKUFMzae5D/70if1MWkK6eKVSVfxD2GIHR+kXbrbfcyrZdvVkv4ZPzlXTMrAp4BLjx09EDOOfWAGsAZs2c4ebPXnUS40ZHc8ty4rpuoPXzRU6v6ptZCZno1znnfhXsSCIStFxe1TdgLbDbOXdX8COJSNBy2eLXAdcBC8xs59DH1QHPJSIByvoc3zn3PFC41/sVkZOmI/dEPKTwRTyk8EU8pPBFPKTwRTwU+fCPdKbDHkFGaHDQ0Xl0MOwxvBT58P95ZXvYI8gIbdvVx+MbkmGP4aVIh9/63gCr7ztCe4e2+lG0vjHJ+o0KPwyRDr+hMUk6DU82dYc9ioxAQ2OSp5q6SaVyP0NU8iPy4R/7X4mO/QdS7Gzp50jnIM+/3BP2ON6JbPjJ7kGans/8wjy9SVuNqGnY+MleWoOe54+6yIa/sbmbvr5M7NpqRM+xsTc0dnMybwgjpy6y4a9vPP55vbYa0ZHsHmTTC588UO99O8Ubb6VCnMg/kQzfOUd5uXHbsvEA/PjmajJvGyBRsLOljxW3TOBL55cxsbqIu1fW8Mru/rDH8krOb71VSMyMVXfWcP/DmXcAmzO7jD9eVBXyVJKrunnl1M0r54mNSRIJ46++My7skbwTyS2+iJwahS/iIYUv4iGFL+IhhS/iIYUv4iGFX8C27ezltjsOhT2GjNBdd3cU7NmHkfw7/sf+bHEVX7+0gupx8Xz8OnBwgB2v9JFKOUpK4neA0iP3TmUgHd9DdXe29FNSXJj3W6TDr6gooqIintEDLFlYxZKF8T0wadLERNgjBOo//31K2COcUHyrEZETUvgiHlL4Ih5S+CIeUvgiHlL4Ih5S+CIeUvgiHlL4Ih5S+CIeUvgiHlL4Ih5S+CIeUvgiHlL4Ih5S+CIeUvgiHlL4Ih5S+CIeUvgiHlL4Ih5S+CIeUvgiHsoavpnda2ZtZtYyGgOJSPBy2eL/ElgY8BwiMoqyhu+cawbaR2EWERklebuElpktBZYC1NRMornltnzddEHp6plCc8vysMcITFfPFNZuXRH2GIGpHqyI9f0Ht+a0VN7Cd86tAdYAzJo5w82fvSpfN11QmluWE9d1g8z6PZR4K+wxAvPtrrn8aYzvv1zpVX0RDyl8EQ/l8ue8B4DNwCwzazWz64MfS0SClPU5vnPu2tEYRERGj3b1RTyk8EU8pPBFPKTwRTyk8EU8FPnw39mfCnsEkciJdPjOOW5ecSjsMUQiJ9Lhv/ZGP//3ZJJ3W7XVFzkZkQ6/YUM3AOs3doc8iUi0RDr89Y1JAB7fkAx5EpFoiWz4hz5Ks3l7LwCbXuimKzkY8kQi0RHZ8J94JsngUOv9/bCxWbv7IrmKbPgNjUnMMp+bZb4WkdxEMnznHJdfUsEv/qUGgHt+NpkvzxkT8lQi0RHJ8M2MH3xvHFUVmU3++LFF/PV3x4U8lUh0RDJ8ETk1Cl/EQwpfxEMKX8RDCj8kb7+b4p51R0inXdij5J1zjs432zi4aU/YowQilXI8+2J3pI8dydsFNWR46bRjy/ZeGhqTNGzo5rU3+rlx6TgSCQt7tLxI9w3Q8Zv9fLh5H4e2vE3fh1188e/jc8nFjsNpnmzqpqExydObujnSOciuTdPDHmvEIh1+eXkRU6ckGFNWmPH09zsefTpJw4YkTz6T5KOO4w8rXnN/J/c9eHTY2/iftaez4JKKIMccsVRXL23P7eXDzfto3/Eug70Dx33/9Z83sWdV07C3Ubfu+5SMLcxjMN5tTfHw4100bEjywtZe0unjv3/pNw8M+/MzaovZ2TQjwAlHLtLhf6u+im/VV4U9xgmVlhoXXlDGB20DHGwb4LnNPaSOOYP4rBklTKlJDHsbY6sK99lYcWUZY2dNpq89SX97ks7XPzju+1VnTqCorGTY27CiwnzQBvjc6cVceMEYDralOfhhmjfe+uTOSyTgS+eX/e7o0c8yOct9G6ZIhx8FZ80oYdn141l2/Xg6jw6y4blu1jcmeWJjki9+vpQH7j497BFHzMw47ZzJnHbOZP7guq/Q157k0Ja3ObR5Hx9tf5fJl57LGX8+N+wxR6y42Ljs4nIuu7iclSsm8cZb/axvTNLQ2M2vX+rhH26q5vK6wtwby0bhj6KxpxX9bi8lnXZs3dlHOu1i8zy/bEIltVfPpvbq2aT7B+jaF693R5p5dikzzy7lphuq6TicpvX9gew/VKAUfkgSCeOiuYX53DYfEqXFjPt8dPdmsqken6B6fOHuymdTuE8gRSQwCl/EQwpfxEMKX8RDCl/EQwpfxEMKX8RDCl/EQwpfxEMKX8RDCl/EQwpfxEMKX8RDCl/EQwpfxEMKX8RDCl/EQwpfxEMKX8RDCl/EQwpfxEM5hW9mC81sj5ntNbPbgx5KRIKVNXwzSwCrgUXAecC1ZnZe0IOJSHBy2eLPA/Y65/Y55/qBB4ElwY4lIkHK5YIatcD+Y75uBb7y6YXMbCmwdOjLvsRUWk59vEL0w0lAvC4Rc5x4r99GmLQ0xusHzMploVzC/6zrO/3eRd2dc2uANQBmts05d2EuA0RNnNcNtH5RZ2bbclkul139VuDYC4FPA94byVAiUhhyCX8rcK6ZnWVmpcA1wGPBjiUiQcq6q++cGzCzZcDTQAK41zn3apYfW5OP4QpUnNcNtH5Rl9P6mXO/93RdRGJOR+6JeEjhi3hI4Yt4SOGLeEjhi3hI4Yt4SOGLeOj/ATUgLeBjl26wAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Update in iteration 14 !\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAP4AAADMCAYAAABTJB73AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvFvnyVgAADqdJREFUeJzt3X+Q1PV9x/Hn+5Y7uB8BTkBEfkTGBBqDowmGGjEaiRoMV2nTTEY6+TFTW2qmpPhrrJk2pbHOdBonpkzKjMOIprVUR2ta9VDkEPSCggIGnFOqQVE5lCDewXG792Nv790/9lQ0crec+73vfvfzesww3sn3dt5f9p77/e7u97tfc3dEJCwVcQ8gIiNP4YsESOGLBEjhiwRI4YsESOGLBKio4ZvZQjN72cz2mtnNxbztuJnZXWZ2yMxa4p4lCmY23cw2m9keM3vRzJbHPVMxmdkYM3vOzHYPrN9P4p6p2MwsZWa/MbPGoZYtWvhmlgJWAVcAZwFLzOysYt1+CfglsDDuISLUB9zg7p8Dzgf+uszuvx5ggbufA5wLLDSz82OeqdiWA3sKWbCYW/x5wF53f83de4H7gMVFvP1YuXsz0Bb3HFFx97fd/fmBr4+R/wWaGu9UxeN5nQPfVg78KZuj18xsGrAIuLOQ5YsZ/lRg/3Hft1JGvzghMbMzgC8Az8Y7SXEN7ArvAg4BTe5eTuv3r8BNQH8hCxczfPuY/1c2j6ihMLM64EHgWnfviHueYnL3nLufC0wD5pnZnLhnKgYzawAOufvOQn+mmOG3AtOP+34a8FYRb18iZmaV5KNf6+6/inueqLj7EeBJyuc1m/nAlWb2Ovmn2AvM7D8H+4Fihr8d+KyZzTSzKuAq4OEi3r5EyMwMWAPscffb456n2MxskpmNH/i6GrgU+L94pyoOd/+Ru09z9zPId7fJ3b8z2M8ULXx37wOWAY+Tf2Hofnd/sVi3HzczuxfYCsw2s1YzuzrumYpsPvBd8luLXQN/vhH3UEU0BdhsZi+Q30g1ufuQb3uVK9NpuSLh0ZF7IgFS+CIBUvgiAVL4IgEaMvzhnNxgZkuLM17pKed1A61f0hW6foVs8YdzckM5/+OW87qB1i/pClq/UUMt4Pn3+8r25AaREBX0Pv7AKbc7gc8Aq9z9bz9mmaUMPNqMHl0199MzJhd51NKQ7augclRB50EkktYv2Q4caKUz3f9x5818yEkdwDNwyOP/AD909xN+IMXsWTN8T/Pogm83SZpblnPRnJVxjxEZrV+yzfv6fnbs7h4y/JN6Vb8MT24QCVIhr+qX7ckNIqEa8sU98ic3/PvA8/wK8iffBHtyg0g5KORV/RfIfxqLiJQJHbknEiCFLxIghS8SIIUvEiCFLxIghS8SIIUvEiCFLxIghS8SIIUvEiCFLxIghS8SIIUvEiCFLxIghS8SIIUvEiCFLxIghS8SIIUvEqCyD78z3U82W74X/jlyNMfJXBshadqP5OIeoSyVffi9vc6sL7/BkmsOsvbBY7S1l9cv0suvZvn03Nf5wU2HaGxK09VVXleJue+hTuZc9AY333qYLc92kcuV74PcSCrk47VL2vpNaZ58pmvQZWprjPsf6uT+hzpJpWD+l8bQcHktiy6tZfZnKjEb8sIjsblz7VH27ssOukymy1l9Twer7+mgeozxtYuqabislobLapkyubTv4lt+1kZmkAernh5nz2+z7PntEW5bdYRT6iu4YkEtDZfX8PWv1jBubGoEpz056zelmTplFGd/rvSuKlXavxUF+PW2bm5bdaTg5XM5aN7WzdPbu2nckOa6a+r5o8trSjb+Bx7uZGPz4A9sx+vqdho3ZHiiuYtHN2b4++vqmXvOmAgn/GR+seYIbe2F76W0tfez9sFjrN+UZvEVdfzD9fVMn1oZ4YTDt+KnbXx1fjX/8mOFX3TXXzOeP/+zsYMu871lB9m2s4dxYytYuKCGhstqWXhJDafUl+7W4j13r5xMV/eJd297epyL/6SVtvZ+pk5JsejSWhour2XB/Gqqq0v/mdxz66fTP0j3r72RZeFVbwFw1qwqGi6vYdGltXz5vDGkUqX5YP2eZ9ZNo6JE74LEhz/hlBQTTjlxwPsPZDl/7hhu/dEELpxXTWVlaf+yfNTppw1+Fz31TBd/8xfjabislnPnVJXsnsuJzJwx+NZ6y3Nd/PyWiSy6rJYzzyjNLfuJlPIDU+LDH8r0qZX87CeT4h4jMhdfUM3FF1THPUZkvv/twffmZHhKdEdERKKk8EUCpPBFAqTwRQKk8EUCpPBFAqTwRQKk8EUCpPBFAqTwRQKk8EUCpPBFAqTwRQKk8EUCpPBFAqTwRQKk8EUCpPBFAqTwRQKk8EUCpPBFAjRk+GY23cw2m9keM3vRzJaPxGAiEp1CPl67D7jB3Z83s08BO82syd1fing2EYnIkFt8d3/b3Z8f+PoYsAeYGvVgIhIdO5lLLJvZGUAzMMfdOz7yd0uBpQCTJk2ce/9/rSjelCWks2syddW/i3uMyGj9ku3GG25kx+7uIS/hU/CVdMysDngQuPaj0QO4+2pgNcDsWTP8ojkrT2Lc5GhuWU65rhto/UJR0Kv6ZlZJPvq17v6raEcSkagV8qq+AWuAPe5+e/QjiUjUCtnizwe+Cywws10Df74R8VwiEqEhn+O7+xagdK/3KyInTUfuiQRI4YsESOGLBEjhiwRI4YsEKPHhH+3IxT2CDFN/v9NxrD/uMYKU+PD/8ba2uEeQYdqxu4dHNqTjHiNIiQ6/9a0+Vt19lLZ2bfWTaF1TmnUbFX4cEh1+Y1OaXA4e25SJexQZhsamNOs3ZchmCz9DVIoj8eEf/19Jjv0Hsuxq6eVoRz9bnuuKe5zgJDb8dKafTVvyvzCPb9ZWI2kaN36wl9ao5/kjLrHhb2zO0NOTj11bjeQ5PvbGpgwn84Ew8sklNvx1TR9+Xq+tRnKkM/1sfvqDB+q9+7K88mo2xonCk8jw3Z3qauOmZeMB+PH19eQ/NkCSYFdLDytuOIUvnj2aCfUV3HHbJF7Y0xv3WEEp+KO3SomZsfLWSdzzQP4TwM6dM5o/vqIu5qmkUPPnVTN/XjWPbkyTShl/+Z1xcY8UnERu8UXkk1H4IgFS+CIBUvgiAVL4IgFS+CIBUvglbMeubm665XDcY8gw3X5He8mefZjI9/Hf86eL6vjaV2qoH1eej18HDvbx/As9ZLNOZWX5HaD04F1T6MuV76G6u1p6qRxVmvdbosOvqamgpqY8owdYvLCOxQvL98CkiRNScY8Qqf/4t8lxj3BC5VuNiJyQwhcJkMIXCZDCFwmQwhcJkMIXCZDCFwmQwhcJkMIXCZDCFwmQwhcJkMIXCZDCFwmQwhcJkMIXCZDCFwmQwhcJkMIXCZDCFwmQwhcJkMIXCZDCFwmQwhcJ0JDhm9ldZnbIzFpGYiARiV4hW/xfAgsjnkNERtCQ4bt7M9A2ArOIyAgp2iW0zGwpsBRg0qSJNLfcVKybLimdXZNpblke9xiR6eyazJrtK+IeIzL1/TVlff/BjQUtVbTw3X01sBpg9qwZftGclcW66ZLS3LKccl03yK/f/alX4x4jMt/unMs3y/j+K5Re1RcJkMIXCVAhb+fdC2wFZptZq5ldHf1YIhKlIZ/ju/uSkRhEREaOdvVFAqTwRQKk8EUCpPBFAqTwRQKU+PDf2J+NewQZpv5sjp5303GPEaREh+/uXL/icNxjyDC1727l0Ja9cY8RpESH/9IrvfzvY2nebNVWP4kOb93H4a2vxT1GkBIdfuOGDADrNmZinkROlrvzztbXaPtNK31dvXGPE5xEh7+uKf/88JENep6YNOnX2+g+2IFnc7TtfDPucYKT2PAPv5tj685uADY/naEz3R/zRHIyjt/FP7x1X4yThCmx4T/6RJr+gdZ7e2Fjs3b3k+Sd48Pftg/v9xinCU9iw29sSmOW/9os/70kQ++RDEdfehsG7r/e9gwdLx+Md6jAJDJ8d+eSC2v4xT9PAuDOn5/Kl84dE/NUUqjuQ5184affZNznT6eqvoZ5dyyhL6N3ZkZSIsM3M37w/XHU1eQ3GePHVvBX3xsX81RSqLGzTmXC3Bnv77GNnTWZCXNnxDtUYBIZvoh8MgpfJEAKXyRACl8kQAo/JvvezHLn2qPkcnr/OmmyWefJZzKJPnakaBfUkMHlcs62nd00NqVp3JDhpVd6uXbpOFIpi3s0KUD7kRyPbcrQ2JTm8c0Zjnb0s3vz9LjHGrZEh19dXcGUySnGjC7NeHp7nYceT9O4Ic1jT6R5t/3DhxWvvqeDu+87Nuht/Pea01hwYU2UY8amcuwYqupLd93ebM3ywCOdNG5I8/T2bnK5D//9V648MOjPz5g6il2bSvNtykSH/62GOr7VUBf3GCdUVWWcd85ofneoj4OH+nhqaxfZ445TmTmjksmTUoPexti68n02ds4/XRn3CIM6/bRRnHfOGA4eynHwnRyvvPrBnZdKwRfPHv3+sQgf59Qh7ts4JTr8JJg5o5JlV49n2dXj6TjWz4anMqxrSvPoxjSf/4Mq7r3jtLhHlBMYNcq4+IJqLr6gmttWTOSVV3tZ15SmsSnDr5/t4u+uq+eS+aW7xzIYhT+Cxn6q4v29lFzO2b6rh1zO9Tw/IWadWcWsM6u47pp62o/kaH27L+6Rhk3hxySVMs6fq/MLkqp+fIr68aW7Kz+U8n0CKSInpPBFAqTwRQKk8EUCpPBFAqTwRQKk8EUCpPBFAqTwRQKk8EUCpPBFAqTwRQKk8EUCpPBFAqTwRQKk8EUCpPBFAqTwRQKk8EUCpPBFAqTwRQJUUPhmttDMXjazvWZ2c9RDiUi0hgzfzFLAKuAK4CxgiZmdFfVgIhKdQrb484C97v6au/cC9wGLox1LRKJUyAU1pgL7j/u+FfjDjy5kZkuBpQPf9qSm0PLJxytFP5wIHI57iuiU9/pthIlLy3j9gNmFLFRI+B93faffu6i7u68GVgOY2Q53P6+QAZKmnNcNtH5JZ2Y7ClmukF39VuD4C4FPA94azlAiUhoKCX878Fkzm2lmVcBVwMPRjiUiURpyV9/d+8xsGfA4kALucvcXh/ix1cUYrkSV87qB1i/pClo/c/+9p+siUuZ05J5IgBS+SIAUvkiAFL5IgBS+SIAUvkiAFL5IgP4flfowVI7Nq78AAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Update in iteration 16 !\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "prob_state=1/9\n", "# Start with random policy\n", "state = np.nditer(state_matrix, flags=['multi_index'])\n", "while not state.finished:\n", " policy_matrix[state.multi_index] = np.random.choice(4, 1)\n", " state.iternext()\n", "policy_matrix[0,3]=-1\n", "policy_matrix[1,3]=-1\n", "policy_matrix[1,1]=np.nan \n", "print('Initial policy:')\n", "print_policy(policy_matrix)\n", "\n", "\n", "unchanged = False\n", "for k in range(1000):\n", " unchanged = True\n", " # Policy evaluation\n", " V=policy_evaluation(policy_matrix, 1, V)\n", " \n", " # Policy improvement\n", " state = np.nditer(state_matrix, flags=['multi_index'])\n", " \n", " lchanged_states=[]\n", " while not state.finished:\n", " if state[0]==0 and random.random() < prob_state: # <<---- Update only some states. \n", " action=return_expected_action(state)\n", " if policy_matrix[state.multi_index]!=action:\n", " unchanged = False\n", " lchanged_states.append(state.copy())\n", " policy_matrix[state.multi_index]=action\n", " state.iternext()\n", " \n", " if not unchanged:\n", " print('Update in iteration',k+1,'!')\n", " print_policy(policy_matrix,lstates=lchanged_states) \n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Policy iteration without complete sweeps in any loop" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "scrolled": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Initial policy:\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Update in iteration 1 !\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Update in iteration 2 !\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Update in iteration 3 !\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAP4AAADMCAYAAABTJB73AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvFvnyVgAADtVJREFUeJzt3X2QVfV9x/H3d5/33pXnzfIsVIVIN0IKEpAEI2HXRbZhTKcZdZqmqR3GNBriwxBtm5pQ/2mtJE7LNGWiSZPSGFrS0YFWhWC6pUgQEBELjghSFoUVd5dln59+/WNXRWV3L3jOnnPP7/Oa2WHv7tkznx/3fs7TPecec84hIn7JiTqAiAw/FV/EQyq+iIdUfBEPqfgiHlLxRTwUaPHNrMrMXjWzI2Z2f5DzjpqZPW5mdWZ2MOosYTCzKWb2nJkdMrNXzGxV1JmCZGZFZrbbzF7qH9/3os4UNDPLNbMXzWzzUNMGVnwzywXWAcuAWcCtZjYrqPnHwE+AqqhDhKgbuNc5dzWwAPhGwp6/DmCJc242MAeoMrMFEWcK2irgUCYTBrnGnw8ccc4ddc51Ak8AKwKcf6ScczVAfdQ5wuKce8s5t6//+3P0vYAmRZsqOK5Pc//D/P6vxJy9ZmaTgeXAjzKZPsjiTwJOnPe4lgS9cHxiZtOATwO/iTZJsPo3hfcDdcBW51ySxvcDYDXQm8nEQRbfLvCzxCxRfWFmJcAm4FvOuaao8wTJOdfjnJsDTAbmm1l51JmCYGbVQJ1zbm+mfxNk8WuBKec9ngy8GeD8JWRmlk9f6Tc4534ZdZ6wOOcagV+TnGM2i4Avmtkb9O1iLzGzfx7sD4Is/gvAVWY23cwKgFuApwKcv4TIzAx4DDjknFsbdZ6gmVmpmY3q/74YWAocjjZVMJxzDzjnJjvnptHXu+3OuT8Y7G8CK75zrhu4E3iGvgNDG51zrwQ1/6iZ2c+B54GZZlZrZrdHnSlgi4Cv0Le22N//dVPUoQI0AXjOzA7Qt5La6pwb8m2vpDJdliviH525J+IhFV/EQyq+iIdUfBEPDVn8S7m4wcxWBhMvfpI8NtD4sl2m48tkjX8pFzck+T83yWMDjS/bZTS+vKEmcH3v9yX24gYRH2X0Pn7/Jbd7gSuBdc65b19gmpX0L20KCwvmXj61LOCo8dDVnUN+XkbXQWQljS+7nTxZS3NL74Wum/mAizqBp/+Ux38H7nLODfiBFDNnTHWHagoznm82qTm4isXlj0YdIzQaX3abf+MJ9rzUPmTxL+qofgIvbhDxUiZH9RN7cYOIr4Y8uEffxQ3/1L+fn0PfxTfeXtwgkgSZHNU/QN+nsYhIQujMPREPqfgiHlLxRTyk4ot4SMUX8ZCKL+IhFV/EQyq+iIdUfBEPqfgiHlLxRTyk4ot4SMUX8ZCKL+IhFV/EQyq+iIdUfBEPqfgiHlLxRTyU+OI3t/TS1ZXcG/80nu3hYu6NkG0aGnuijpBIiS9+Z6djxsLj3HrHKTZsOkd9Q7JeSK++3sXlc9/g66vr2Ly1hba2ZN0l5oknmylffJz7HzrDjt+00dOT3IXccMrk47Vj7entLfx6Z9ug06RTxsYnm9n4ZDO5ubDo2iKqK9MsX5pm5pX5mA1545HI/GjDWY4c6xp0mtY2x/qfNbH+Z00UFxlfWFxMdUWa6oo0E8ri/RSveaSe1kEWVh0djkOvdXHotUYeXtfImNE5LFuSproyxY2fTzFyRO4wpr04T29vYdKEPD51dfzuKhXvV0UG/ntXOw+va8x4+p4eqNnVzv+80M7mZ1u4+47R/G5lKrbl/9enmtlWM/iC7Xxt7Y7Nz7byq5o2/mNbK39x92jmzi4KMeHH83ePNVLfkPlWSn1DLxs2nePp7S2sWFbCX94zmimT8kNMeOke/Jt6Pr+omL/+joofuHvuGMUf3zZi0Gn+8M5T7NrbwcgROVQtSVFdkabqhhRjRsd3bfGuHz9aRlv7wJu3HR2O62+upb6hl0kTclm+NE11ZZoli4opLo7/ntzup6fQO0jvjx7vouqWNwGYNaOA6soUy5emWTiviNzceC6s37Vzy2RyYvoUZH3xx47JZeyYgQt84mQXC+YW8dADY/ns/GLy8+P9YvmwieMHf4r+a2cb3/yTUVRXpJlTXhDbLZeBTJ86+Np6x+42vr9mHMsr0lwxLZ5r9oHEecGU9cUfypRJ+TzyvdKoY4Tm+uuKuf664qhjhOarXx58a04uTUw3REQkTCq+iIdUfBEPqfgiHlLxRTyk4ot4SMUX8ZCKL+IhFV/EQyq+iIdUfBEPqfgiHlLxRTyk4ot4SMUX8ZCKL+IhFV/EQyq+iIdUfBEPqfgiHlLxRTw0ZPHNbIqZPWdmh8zsFTNbNRzBRCQ8mXy8djdwr3Nun5ldBuw1s63Ouf8NOZuIhGTINb5z7i3n3L7+788Bh4BJYQcTkfDYxdxi2cymATVAuXOu6UO/WwmsBCgtHTd34788GFzKGGluK6Ok+HTUMUKj8WW3++69jz0vtQ95C5+M76RjZiXAJuBbHy49gHNuPbAeYOaMqW5x+aMXETd71BxcRVLHBhqfLzI6qm9m+fSVfoNz7pfhRhKRsGVyVN+Ax4BDzrm14UcSkbBlssZfBHwFWGJm+/u/bgo5l4iEaMh9fOfcDiC+9/sVkYumM/dEPKTii3hIxRfxkIov4iEVX8RDWV/8s009UUcQyTpZX/zvPlwfdQSRrJPVxa99s5t1Pz5LfYPW+iIXI6uLv3lrCz098J/bW6OOIpJVsr745/8rIpnJ2uK3tPayfUcbAM8810pXV+afKyDiu6wt/raaVjo6+sp+tqmXHbvbIk4kkj2ytvhbtn5wv37zs9rcF8lUVhbfOUdxsbH6zlEAfOee0fR9bICIZCIri29mPPpQKbNmFAAwp7yQv/3uuIhTiWSPrCy+iHw8Kr6Ih1R8EQ+p+CIeUvFFPKTii3hIxY+xPfvbWb3mTNQx5BKt/WEDW7bF88SyjG+hFUe/t7yEL3wuxeiRyVx+nTzVzb4DHXR1OfLzk3eC0s1/9BbH/q+L/dunRh0lFPsPdpKfF8/nLauLn0rlkEols/QAK6pKWFFVEnWM0NQ39HD67eR+lsJP/74s6ggDSm5rRGRAKr6Ih1R8EQ+p+CIeUvFFPKTii3goq9/Ok+y070A77zT04vo/JnHvS+00nO1l6eJUtME8ouLLsJsyMZ/5VccAcA7mV9Wyc8vkiFP5RZv6MuxKx+WycF7Re2v8stJcrp1TGG0oz6j4EonqivR739+0NEVOTjxPbU0qFV8iUV35/v78+QsBGR4qvkRi1owCpk3Jo6AAHdSLgA7uSSTMjOrKNK8d7aIkrfXPcFPxJTLVFWmOHOuKOoaXVHyJzPULiyn/ZEHUMbykbSyJTEGBMaFM654oqPgiHlLxRTyk4ot4SMUX8ZCKL+IhFV/EQyq+iIeGLL6ZPW5mdWZ2cDgCiUj4Mlnj/wSoCjmHiAyjIYvvnKsB6ochi4gMk8DOlzSzlcBKgNLScdQcXB3UrGOlua2Mx154MOoYoRndm6Lm4KqoY4Smua0s0eOD+zKaKrDiO+fWA+sBZs6Y6haXPxrUrGOl5uAqNua+HnWM0Hy5eS5fSuhzB33PX1JfmxdDR/VFPKTii3gok7fzfg48D8w0s1ozuz38WCISpiH38Z1ztw5HEBEZPtrUF/GQii/iIRVfxEMqvoiHVHwRD6n4Mdd2qinqCJJAKn6MdTa28saG3VHHkARS8WPszO43eHvnUVyvizqKJIyKH2Nndh6js6GVpldPRR1FEkbFj6nerh7e2XMcgDPPH4s4jSSNih9TDQdO0tPaCcDbzx+NOI0kjYofU2fOK3vz62doP62j+xIcFT+GnHN9xbf+Hxi8vUub+xIcFT+Gupramf7VBUz+4mwA5v3g98m/rCjiVJIkKn4MFYwsZmLlLCy3b5VfVDaC8UtmRpxKkkTFF/GQii/iIRVfxEMqvoiHEl/8Eye72LDpHPUNPVFH8YZzjhdf7uAXT56LOooMIPHFnzwxj7U/bGD8p45xw821PPIPDRx+rRPndOFLkNraetmyrYU//XYd0+YdZ17lCbq7o04lAwnsTjpR+au19Xz/HxsHnaatvZeeHqjZ1U7NrnZWr3mHK6fnU12RYkVVCZ9bUISZDTqPKOSlCykYm4YYZgNoPNvDv21uZvPWVn5V00pr2wcXpt+4v467/uztQedxZNfljBmdG2bMyLx1upuCfGPsmPiNL+uLP3F8HnOvKRx0msNHOnnz1Pub+qNG5jBvTiFzZxdR/smCWJYe4IqvLeSKry2MOsaARo7IYd7sIk7X9XC6rpvdL3Z84Pe/PbOAVPHgG5W58etEYK5acJzrrytmy4aJUUf5iKwv/u23jeD220YM+PuODseM645z1W/lU12RproyxaJri8nPj2fZs4mZMae8kDnlhfz53WM4VdfNlm2tbH62hW01rXxpeQn3fn101DHlArK++ENpbOrh2V9MZOaVBVFHSbzxn8h7b0Hc3t7Ly4c7o44kA0h88ctK8ygrjTqFf4qKcrh2jq4viKvEH9UXkY9S8UU8pOKLeEjFF/FQ4g/uiQy3n25swgG9Dpqbe1nzSD3VFSl+55r4HOxU8UUCdvWMAhYsqwVgx+52Xj7cyQPfjNf5DNrUFwnY3GsKGf+J909JvPGGVOxOGFPxRQKWk2PctDT93uPqivQgU0dDxRcJQXVFCui7FmHZklTEaT5K+/giIVi6OEVhofGZTxfG8upDFV8kBOlUDks+W8wNi4qjjnJBKr5ISJZXpLnhOhVfxCu33VzCiMvieRhNxRcJycgR8du3f1c8F0ciEioVX8RDKr6Ih1R8EQ+p+CIeUvFFPKTii3goo+KbWZWZvWpmR8zs/rBDiUi4hiy+meUC64BlwCzgVjObFXYwEQlPJmv8+cAR59xR51wn8ASwItxYIhKmTE7ZnQScOO9xLfCZD09kZiuBlf0PO3IncPDjx4uju8YBZ6JOEZZtMG5lgseX9OcPmJnJRJkU/0KfGfSRe0w759YD6wHMbI9zbl4mAbJNkscGGl+2M7M9mUyXyaZ+LTDlvMeTgTcvJZSIxEMmxX8BuMrMpptZAXAL8FS4sUQkTENu6jvnus3sTuAZIBd43Dn3yhB/tj6IcDGV5LGBxpftMhqfOfeR3XURSTiduSfiIRVfxEMqvoiHVHwRD6n4Ih5S8UU8pOKLeOj/AT4G3qbVhStwAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Update in iteration 5 !\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Update in iteration 6 !\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Update in iteration 8 !\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Update in iteration 10 !\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Update in iteration 17 !\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Update in iteration 20 !\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Update in iteration 26 !\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Update in iteration 41 !\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAP4AAADMCAYAAABTJB73AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvFvnyVgAADr1JREFUeJzt3X1wVfWdx/H3NzcP5EEgQEAaQF0VWosjWyy1RrFStSDZsg+dru7UdqbusnaWLj6Na3e3y9ZxZmeXqS3TZcZhRLvrsjq6dlcNPhAMmqqgPBScKKKIVYJixARCbp5ubn77x40VrORewj0595zf5zWTMTEnd76Hm/c9596cc4855xARvxSFPYCIjD6FL+IhhS/iIYUv4iGFL+IhhS/iobyGb2YLzWyPme01s9vzedthM7N7zazNzFrCniUIZjbdzDaZ2W4ze9XMloc9Uz6Z2Rgze9nMdg2t30/CninfzCxhZr8xs4Zsy+YtfDNLAKuBRcB5wLVmdl6+br8A/BJYGPYQARoAbnHOfQG4CPibmN1/fcAC59wFwBxgoZldFPJM+bYc2J3Lgvnc4s8D9jrn9jnn+oEHgSV5vP1QOeeagfaw5wiKc+5959yOoc+PkvkFqg13qvxxGV1DX5YMfcTm6DUzmwYsBu7JZfl8hl8L7D/m61Zi9IvjEzM7E/hD4KVwJ8mvoV3hnUAb0Oici9P6/Ry4DRjMZeF8hm+f8f9i84jqCzOrAh4BbnTOdYY9Tz4559LOuTnANGCemc0Oe6Z8MLN6oM05tz3Xn8ln+K3A9GO+nga8l8fbl4CZWQmZ6Nc5534V9jxBcc4dBp4lPq/Z1AHfNLPfknmKvcDM/mu4H8hn+FuBc83sLDMrBa4BHsvj7UuAzMyAtcBu59xdYc+Tb2ZWY2bjhz4vB64AXg93qvxwzv3IOTfNOXcmme6anHPfGe5n8ha+c24AWAY8TeaFoYecc6/m6/bDZmYPAJuBWWbWambXhz1TntUB15HZWuwc+rg67KHyaCqwycxeIbORanTOZf2zV1yZTssV8Y+O3BPxkMIX8ZDCF/GQwhfxUNbwR3Jyg5ktzc94hSfO6wZav6jLdf1y2eKP5OSGOP/jxnndQOsXdTmtX3G2BVzm732xPblBxEc5/R1/6JTb7cA5wGrn3N99xjJLGXq0KSsrnXvGjCl5HrUwpAaKKCnO6TyISNL6RduBA610JQc/67yZ45zUATxDhzz+L/BD59wJ35Bi1swZbndzWc63GyXNLcuZP3tV2GMERusXbfO+sZ9tu3qzhn9Sr+rH8OQGES/l8qp+bE9uEPFV1hf3yJzc8B9Dz/OLyJx84+3JDSJxkMur+q+QeTcWEYkJHbkn4iGFL+IhhS/iIYUv4iGFL+IhhS/iIYUv4iGFL+IhhS/iIYUv4iGFL+IhhS/iIYUv4iGFL+IhhS/iIYUv4iGFL+IhhS/iIYUv4qHYh9+VHCSViu+Ffw4fSXMy10aImo7D6bBHiKXYh9/f75j51Xe49oaDrHvkKO0d8fpF2vNWijPm/pYf3NZGQ2OSnp54XSXmwUe7mD3/HW6/8xDPv9RDOh3fB7nRlMvbaxe0p5qSPPtiz7DLVFYYDz3axUOPdpFIQN2Xx1B/VSWLr6hk1jklmGW98Eho7ll3hL1vp4ZdprvHseb+Ttbc30n5GOPr88upv7KS+isrmTqlsO/iO37aTvcwD1Z9fY7db6bY/eZhVq4+zITqIhYtqKT+qgq+8bUKxo1NjOK0J+eppiS1U4s5/wuFd1Wpwv6tyMGvt/SycvXhnJdPp6F5Sy8vbO2lYUOSm26o5o+uqijY+B9+rIuNzcM/sB2rp9fRsKGbZ5p7eGJjN/94UzVzLxgT4ISn5hdrD9PekfteSnvHIOseOcpTTUmWLKrin26uZnptSYATjtyKf2vna3Xl/OuPFX7e3XzDeL7/F2OHXea7yw6yZXsf48YWsXBBBfVXVrLw8gomVBfu1uJj962aQk/viXdv+/ocl/1JK+0dg9ROTbD4ikrqr6pkQV055eWF/0zu5aemMzhM9/veSbHwmvcAOG9mKfVXVbD4ikq+euEYEonCfLD+2Ivrp1FUoHdB5MOfOCHBxAknDnj/gRQXzR3DnT+ayCXzyikpKexflk/73OnD30XPvdjD3/7leOqvrGTO7NKC3XM5kbNmDL+1fv7lHn52xyQWX1nJ2WcW5pb9RAr5gSny4WczvbaEn/6kJuwxAnPZxeVcdnF52GME5nvfHn5vTkamQHdERCRICl/EQwpfxEMKX8RDCl/EQwpfxEMKX8RDCl/EQwpfxEMKX8RDCl/EQwpfxEMKX8RDCl/EQwpfxEMKX8RDCl/EQwpfxEMKX8RDCl/EQwpfxENZwzez6Wa2ycx2m9mrZrZ8NAYTkeDk8vbaA8AtzrkdZnYasN3MGp1zrwU8m4gEJOsW3zn3vnNux9DnR4HdQG3Qg4lIcOxkLrFsZmcCzcBs51znp763FFgKUFMzae5D/70if1MWkK6eKVSVfxD2GIHR+kXbrbfcyrZdvVkv4ZPzlXTMrAp4BLjx09EDOOfWAGsAZs2c4ebPXnUS40ZHc8ty4rpuoPXzRU6v6ptZCZno1znnfhXsSCIStFxe1TdgLbDbOXdX8COJSNBy2eLXAdcBC8xs59DH1QHPJSIByvoc3zn3PFC41/sVkZOmI/dEPKTwRTyk8EU8pPBFPKTwRTwU+fCPdKbDHkFGaHDQ0Xl0MOwxvBT58P95ZXvYI8gIbdvVx+MbkmGP4aVIh9/63gCr7ztCe4e2+lG0vjHJ+o0KPwyRDr+hMUk6DU82dYc9ioxAQ2OSp5q6SaVyP0NU8iPy4R/7X4mO/QdS7Gzp50jnIM+/3BP2ON6JbPjJ7kGans/8wjy9SVuNqGnY+MleWoOe54+6yIa/sbmbvr5M7NpqRM+xsTc0dnMybwgjpy6y4a9vPP55vbYa0ZHsHmTTC588UO99O8Ubb6VCnMg/kQzfOUd5uXHbsvEA/PjmajJvGyBRsLOljxW3TOBL55cxsbqIu1fW8Mru/rDH8krOb71VSMyMVXfWcP/DmXcAmzO7jD9eVBXyVJKrunnl1M0r54mNSRIJ46++My7skbwTyS2+iJwahS/iIYUv4iGFL+IhhS/iIYUv4iGFX8C27ezltjsOhT2GjNBdd3cU7NmHkfw7/sf+bHEVX7+0gupx8Xz8OnBwgB2v9JFKOUpK4neA0iP3TmUgHd9DdXe29FNSXJj3W6TDr6gooqIintEDLFlYxZKF8T0wadLERNgjBOo//31K2COcUHyrEZETUvgiHlL4Ih5S+CIeUvgiHlL4Ih5S+CIeUvgiHlL4Ih5S+CIeUvgiHlL4Ih5S+CIeUvgiHlL4Ih5S+CIeUvgiHlL4Ih5S+CIeUvgiHlL4Ih5S+CIeUvgiHsoavpnda2ZtZtYyGgOJSPBy2eL/ElgY8BwiMoqyhu+cawbaR2EWERklebuElpktBZYC1NRMornltnzddEHp6plCc8vysMcITFfPFNZuXRH2GIGpHqyI9f0Ht+a0VN7Cd86tAdYAzJo5w82fvSpfN11QmluWE9d1g8z6PZR4K+wxAvPtrrn8aYzvv1zpVX0RDyl8EQ/l8ue8B4DNwCwzazWz64MfS0SClPU5vnPu2tEYRERGj3b1RTyk8EU8pPBFPKTwRTyk8EU8FPnw39mfCnsEkciJdPjOOW5ecSjsMUQiJ9Lhv/ZGP//3ZJJ3W7XVFzkZkQ6/YUM3AOs3doc8iUi0RDr89Y1JAB7fkAx5EpFoiWz4hz5Ks3l7LwCbXuimKzkY8kQi0RHZ8J94JsngUOv9/bCxWbv7IrmKbPgNjUnMMp+bZb4WkdxEMnznHJdfUsEv/qUGgHt+NpkvzxkT8lQi0RHJ8M2MH3xvHFUVmU3++LFF/PV3x4U8lUh0RDJ8ETk1Cl/EQwpfxEMKX8RDCj8kb7+b4p51R0inXdij5J1zjs432zi4aU/YowQilXI8+2J3pI8dydsFNWR46bRjy/ZeGhqTNGzo5rU3+rlx6TgSCQt7tLxI9w3Q8Zv9fLh5H4e2vE3fh1188e/jc8nFjsNpnmzqpqExydObujnSOciuTdPDHmvEIh1+eXkRU6ckGFNWmPH09zsefTpJw4YkTz6T5KOO4w8rXnN/J/c9eHTY2/iftaez4JKKIMccsVRXL23P7eXDzfto3/Eug70Dx33/9Z83sWdV07C3Ubfu+5SMLcxjMN5tTfHw4100bEjywtZe0unjv3/pNw8M+/MzaovZ2TQjwAlHLtLhf6u+im/VV4U9xgmVlhoXXlDGB20DHGwb4LnNPaSOOYP4rBklTKlJDHsbY6sK99lYcWUZY2dNpq89SX97ks7XPzju+1VnTqCorGTY27CiwnzQBvjc6cVceMEYDralOfhhmjfe+uTOSyTgS+eX/e7o0c8yOct9G6ZIhx8FZ80oYdn141l2/Xg6jw6y4blu1jcmeWJjki9+vpQH7j497BFHzMw47ZzJnHbOZP7guq/Q157k0Ja3ObR5Hx9tf5fJl57LGX8+N+wxR6y42Ljs4nIuu7iclSsm8cZb/axvTNLQ2M2vX+rhH26q5vK6wtwby0bhj6KxpxX9bi8lnXZs3dlHOu1i8zy/bEIltVfPpvbq2aT7B+jaF693R5p5dikzzy7lphuq6TicpvX9gew/VKAUfkgSCeOiuYX53DYfEqXFjPt8dPdmsqken6B6fOHuymdTuE8gRSQwCl/EQwpfxEMKX8RDCl/EQwpfxEMKX8RDCl/EQwpfxEMKX8RDCl/EQwpfxEMKX8RDCl/EQwpfxEMKX8RDCl/EQwpfxEMKX8RDCl/EQwpfxEM5hW9mC81sj5ntNbPbgx5KRIKVNXwzSwCrgUXAecC1ZnZe0IOJSHBy2eLPA/Y65/Y55/qBB4ElwY4lIkHK5YIatcD+Y75uBb7y6YXMbCmwdOjLvsRUWk59vEL0w0lAvC4Rc5x4r99GmLQ0xusHzMploVzC/6zrO/3eRd2dc2uANQBmts05d2EuA0RNnNcNtH5RZ2bbclkul139VuDYC4FPA94byVAiUhhyCX8rcK6ZnWVmpcA1wGPBjiUiQcq6q++cGzCzZcDTQAK41zn3apYfW5OP4QpUnNcNtH5Rl9P6mXO/93RdRGJOR+6JeEjhi3hI4Yt4SOGLeEjhi3hI4Yt4SOGLeOj/ATUgLeBjl26wAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", " Value function:\n", " [[ 0.84881226 0.90630541 0.95748948 0. ]\n", " [ 0.797764 0. 0.69906187 0. ]\n", " [ 0.7404234 0.6895106 0.64536512 0.42192624]]\n" ] } ], "source": [ "# Start with random policy\n", "state = np.nditer(state_matrix, flags=['multi_index'])\n", "while not state.finished:\n", " policy_matrix[state.multi_index] = np.random.choice(4, 1)\n", " state.iternext()\n", "policy_matrix[0,3]=-1\n", "policy_matrix[1,3]=-1\n", "policy_matrix[1,1]=np.nan \n", "print('Initial policy:')\n", "print_policy(policy_matrix)\n", "\n", "unchanged = False\n", "for k in range(10000):\n", " unchanged = True\n", " # Policy evaluation\n", " V=policy_evaluation(policy_matrix, 1, V, randomp=1/9) # <<---- Update only some states.\n", " \n", " # Policy improvement\n", " state = np.nditer(state_matrix, flags=['multi_index'])\n", "\n", "\n", " lchanged_states=[]\n", " while not state.finished:\n", " if state[0]==0 and random.random() < prob_state: # <<---- Update only some states. \n", " action=return_expected_action(state)\n", " if policy_matrix[state.multi_index]!=action:\n", " unchanged = False\n", " lchanged_states.append(state.copy())\n", " policy_matrix[state.multi_index]=action\n", " state.iternext()\n", " \n", " if not unchanged:\n", " print('Update in iteration',k+1,'!')\n", " print_policy(policy_matrix,lstates=lchanged_states) \n", " \n", "print('\\n Value function:\\n',V)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Value iteration" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[ 0.84881226 0.90630541 0.95748948 0. ]\n", " [ 0.797764 0. 0.69906187 0. ]\n", " [ 0.7404234 0.6895106 0.64536512 0.42192624]]\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Value iteration\n", "\n", "V = np.zeros((3,4))\n", "for k in range(100):\n", " unchanged = True\n", "\n", " state = np.nditer(state_matrix, flags=['multi_index'])\n", " while not state.finished:\n", " if state[0]==0:\n", " lV=[]\n", " for action in range(0,4):\n", " acum=0\n", " for x in zip(prob_next_state(state.multi_index,3,4),transition_matrix[int(action),:]):\n", " acum = acum + x[1]*(reward_matrix[x[0]]+gamma*V[x[0]])\n", " lV.append(acum)\n", " V[state.multi_index]=max(lV)\n", " state.iternext()\n", " \n", "print(V)\n", "plt.matshow(V,extent=[0, 4, 0, 3])\n", "plt.grid()\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "state = np.nditer(state_matrix, flags=['multi_index'])\n", "while not state.finished:\n", " if state[0]==0:\n", " lV=[]\n", " for action in range(0,4):\n", " acum=0\n", " for x in zip(prob_next_state(state.multi_index,3,4),transition_matrix[int(action),:]):\n", " acum = acum + x[1]*(reward_matrix[x[0]]+gamma*V[x[0]])\n", " lV.append(acum)\n", " policy_matrix[state.multi_index]=np.argmax(lV)\n", " state.iternext()\n", " \n", "print_policy(policy_matrix,V)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Try to predict optimal policy with these changes.\n", "\n", "1. Change penalty to -0,8 per step\n", "\n", "2. Try deterministic transitions\n", "\n", "3. Try the following transition matrix:\n", "\n", "transition_matrix = np.array([[0.8, 0.1, 0.0, 0.1],\n", " [0.1, 0.8, 0.1, 0.0],\n", " [0.0, 0.1, 0.8, 0.1],\n", " [0.0, 0.0, 0.5, 0.5]])\n", " \n" ] } ], "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.4" } }, "nbformat": 4, "nbformat_minor": 2 }