{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Q-learning " ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "try:\n", " import google.colab\n", " IN_COLAB = True\n", "except:\n", " IN_COLAB = False\n", "\n", "if IN_COLAB:\n", " !pip install -U gymnasium pygame swig\n", " !pip install -U moviepy==1.0.3\n", " !pip install gymnasium[box2d]\n" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "gym version: 1.0.0\n" ] } ], "source": [ "import numpy as np\n", "rng = np.random.default_rng()\n", "import matplotlib.pyplot as plt\n", "import os\n", "\n", "import gymnasium as gym\n", "print(\"gym version:\", gym.__version__)\n", "\n", "from moviepy.editor import ImageSequenceClip, ipython_display\n", "\n", "class GymRecorder(object):\n", " \"\"\"\n", " Simple wrapper over moviepy to generate a .gif with the frames of a gym environment.\n", " \n", " The environment must have the render_mode `rgb_array_list`.\n", " \"\"\"\n", " def __init__(self, env):\n", " self.env = env\n", " self._frames = []\n", "\n", " def record(self, frames):\n", " \"To be called at the end of an episode.\"\n", " for frame in frames:\n", " self._frames.append(np.array(frame))\n", "\n", " def make_video(self, filename):\n", " \"Generates the gif video.\"\n", " directory = os.path.dirname(os.path.abspath(filename))\n", " if not os.path.exists(directory):\n", " os.mkdir(directory)\n", " self.clip = ImageSequenceClip(list(self._frames), fps=self.env.metadata[\"render_fps\"])\n", " self.clip.write_gif(filename, fps=self.env.metadata[\"render_fps\"], loop=0)\n", " del self._frames\n", " self._frames = []\n", "\n", "def running_average(x, N):\n", " kernel = np.ones(N) / N\n", " return np.convolve(x, kernel, mode='same')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In this short exercise, we are going to apply **Q-learning** on the Taxi environment used last time for MC control.\n", "\n", "As a reminder, Q-learning updates the Q-value of a state-action pair **after each transition**, using the update rule:\n", "\n", "$$\\Delta Q(s_t, a_t) = \\alpha \\, (r_{t+1} + \\gamma \\, \\max_{a'} \\, Q(s_{t+1}, a') - Q(s_t, a_t))$$\n", "\n", "**Q:** Update the class you designed for online MC in the last exercise so that it implements Q-learning. \n", "\n", "The main difference is that the `update()` method has to be called after each step of the episode, not at the end. It simplifies a lot the code too (no need to iterate backwards on the episode).\n", "\n", "You can use the following parameters at the beginning, but feel free to change them:\n", "\n", "* Discount factor $\\gamma = 0.9$. \n", "* Learning rate $\\alpha = 0.1$.\n", "* Epsilon-greedy action selection, with an initial exploration parameter of 1.0 and an exponential decay of $10^{-5}$ after each update (i.e. every step!).\n", "* A total number of episodes of 20000.\n", "\n", "Keep the general structure of the class: `train()` for the main loop, `test()` to run one episode without exploration, etc. \n", "\n", "Plot the training and test performance in the end and render the learned deterministic policy for one episode.\n", "\n", "*Note:* if $s_{t+1}$ is terminal (`done` is true after the transition), the target should not be $r_{t+1} + \\gamma \\, \\max_{a'} \\, Q(s_{t+1}, a')$, but simply $r_{t+1}$ as there is no next action." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "class QLearningAgent:\n", " \"\"\"\n", " Q-learning agent.\n", " \"\"\"\n", " \n", " def __init__(self, env, gamma, epsilon, decay_epsilon, alpha):\n", " \"\"\"\n", " :param env: gym-like environment\n", " :param gamma: discount factor\n", " :param epsilon: exploration parameter\n", " :param decay_epsilon: exploration decay parameter\n", " :param alpha: learning rate\n", " \"\"\"\n", " self.env = env\n", " self.gamma = gamma\n", " self.epsilon = epsilon\n", " self.decay_epsilon = decay_epsilon\n", " self.alpha = alpha\n", " \n", " # Q_table\n", " self.Q = np.zeros([self.env.observation_space.n, self.env.action_space.n])\n", " \n", " def act(self, state):\n", " \"Returns an action using epsilon-greedy action selection.\"\n", " \n", " action = rng.choice(np.where(self.Q[state, :] == self.Q[state, :].max())[0])\n", " \n", " if rng.random() < self.epsilon:\n", " action = self.env.action_space.sample() \n", " \n", " return action\n", " \n", " def update(self, state, action, reward, next_state, done):\n", " \"Updates the agent using a single transition.\"\n", " \n", " # Bellman target\n", " target = reward\n", " \n", " if not done:\n", " target += self.gamma * self.Q[next_state, :].max()\n", " \n", " # Update the Q-value\n", " self.Q[state, action] += self.alpha * (target - self.Q[state, action])\n", " \n", " # Decay epsilon\n", " self.epsilon = self.epsilon * (1 - self.decay_epsilon)\n", " \n", " \n", " def train(self, nb_episodes, recorder=None):\n", " \"Runs the agent on the environment for nb_episodes. Returns the list of obtained returns.\"\n", "\n", " # Returns\n", " returns = []\n", " steps = []\n", "\n", " # Fixed number of episodes\n", " for episode in range(nb_episodes):\n", "\n", " # Reset\n", " state, info = self.env.reset()\n", " done = False\n", " nb_steps = 0\n", "\n", " # Store rewards\n", " return_episode = 0.0\n", "\n", " # Sample the episode\n", " while not done:\n", "\n", " # Select an action \n", " action = self.act(state)\n", "\n", " # Perform the action\n", " next_state, reward, terminal, truncated, info = self.env.step(action)\n", " \n", " # End of the episode\n", " done = terminal or truncated\n", "\n", " # Learn from the transition\n", " self.update(state, action, reward, next_state, done)\n", "\n", " # Go in the next state\n", " state = next_state\n", "\n", " # Increment time\n", " nb_steps += 1\n", " return_episode += reward \n", " \n", "\n", " # Record at the end of the episode\n", " if recorder is not None and episode == nb_episodes -1:\n", " recorder.record(self.env.render())\n", "\n", " # Store info\n", " returns.append(return_episode)\n", " steps.append(nb_steps)\n", " \n", " \n", " return returns, steps\n", " \n", " def test(self, recorder=None):\n", " \"Performs a test episode without exploration.\"\n", " previous_epsilon = self.epsilon\n", " self.epsilon = 0.0\n", " \n", " # Reset\n", " state, info = self.env.reset()\n", " done = False\n", " nb_steps = 0\n", " return_episode= 0\n", "\n", " # Sample the episode\n", " while not done:\n", " action = self.act(state)\n", " next_state, reward, terminal, truncated, info = self.env.step(action)\n", " done = terminal or truncated\n", " return_episode += reward\n", " state = next_state\n", " nb_steps += 1\n", " \n", " self.epsilon = previous_epsilon\n", " \n", " if recorder is not None:\n", " recorder.record(self.env.render())\n", "\n", " return return_episode, nb_steps" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "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XbJCaoRBCAcAgC+r1XDU559/3uW1aZo6cOCA/vnPf2rs2LFuKQwAAADezeFwyG63l9m+d+9ehYWF1ehcY8eOrfBzpGmaevbZZ3XffffpwgsvlCS99dZbSkhI0IIFC3TJJZfot99+05dffqmffvpJffr0kSS98MILOvfcc/XUU08pOTm5hnfXMNqUhHAV9YKTiueEk6RIesIBAODTahXCPfPMMy6vLRaL4uLidPXVV2vmzJluKQwAAADebdSoUXr22Wf16quvSipeYConJ0cPPPCAzj33XLddZ8eOHUpPT9fIkSOd2yIiItSvXz8tX75cl1xyiZYvX67IyEhnACdJI0eOlMVi0cqVK8udt7igoEAFBQXO19nZ2W6rubpaGYckSbvM+ArbZNITDgCARqFWIdyOHTvcXQcAAAB8zJw5czR69Gh16dJF+fn5uuyyy7RlyxbFxsbq3//+t9uuk56eLklKSEhw2Z6QkODcl56ervh41yDL399f0dHRzjanmz17th566CG31VkVs5wl7FsaByVJu82EMvtKZZWEcOHy7vntAABA5Wo1J9y1116r48ePl9mem5ura6+9ts5FAQAAwPu1aNFC69at07333qvp06erZ8+eevzxx7VmzZoygZg3mjlzpnNO46ysLO3Zs6fBa2hjOSBJ2u5IqrBN6cIMkfSEAwDAp9UqhHvzzTd14sSJMttPnDiht956q85FAQAAwPt99913kooXRHjiiSf00ksv6brrrlNAQIBznzskJiZKkg4ePOiy/eDBg859iYmJOnTokMt+m82mY8eOOduczmq1Kjw83OXRkIKVr+bGUUnSNrPiOetKe8JVd3XUcjrcAQAAL1CjEC47O1tZWVkyTVPHjx9Xdna285GRkaHPP//cJ771BAAAQN0NGzZMx44dK7M9KytLw4YNc9t1UlNTlZiYqCVLlji3ZWdna+XKlRowYIAkacCAAcrMzNSqVaucbb7++ms5HA7169fPbbW4U8uS+eAyzFBllfR2K0926cIMBsNRAQDwZTWaEy4yMlKGYcgwDHXo0KHMfsMwGnReDQAAAHiOaZoyDKPM9qNHj6pZs2Y1OldOTo62bt3qfL1jxw6tXbtW0dHRatmypW6//XY9+uijat++vVJTU3X//fcrOTlZ48ePlyR17txZY8aM0fXXX6+5c+eqqKhI06ZN0yWXXOK1K6O2LpkPblcl88FJUqZZHNCxMAMAAL6tRiHcN998I9M0NXz4cH344YeKjo527gsMDFSrVq289kMOAAAA3GPChAmSir+AnTx5sqxWq3Of3W7X+vXrddZZZ9XonD///LNL77kZM2ZIkq6++mq98cYbuuuuu5Sbm6sbbrhBmZmZGjRokL788ksFBQU5j3n77bc1bdo0jRgxQhaLRRMnTtTzzz9fl1utV62M4gUjqgzhVLPhqAAAwDvVKIQ7++yzJRV/M9myZctyv/lE3bjjHWUaEAAAUJ8iIiIkFfeECwsLU3BwsHNfYGCg+vfvr+uvv75G5xw6dGi5q4eWMgxDDz/8sB5++OEK20RHR2v+/Pk1uq4ntSoZjrqzmj3hwowTCpBNRTX7CA8AALxErf4P3qpVK33//fd65ZVXtH37dr3//vtq3ry5/vnPfyo1NVWDBg1yd50AAADwEvPmzZMkxcXF6cEHH1RISIgkaefOnVqwYIE6d+6s2NhYT5boE1KN4pVRdzkqD+Gy1UwO05DFMBWpHB1WZANUBwAA3K1Wq6N++OGHGj16tIKDg7V69WoVFBRIKp6E9y9/+YtbC2xy6FwIAAB8xJo1a/TWW29JkjIzM9W/f3/NmTNH48eP18svv+zh6rzP6f38Olr2SJK2mC0qPc4hi7JKh6SyOAMAAD6rViHco48+qrlz5+q1115TQECAc/vAgQO1evVqtxXXJDGWFAAA+Ig1a9Zo8ODBkqQPPvhACQkJ2rVrl9566y2vnovNG4QrRzHGcUnSVrPqOZUzSoakRokQDgAAX1WrEG7z5s0aMmRIme0RERHKzMysa00AAADwAXl5eQoLC5MkLVy4UBMmTJDFYlH//v21a9cuD1fn3VJLFmU4aEbqhIKqaC1lqSSEKwnuAACA76lVCJeYmOiyhHypH374QW3atKlzUaibSuY0BgAAcJt27dppwYIF2rNnj7766iuNGjVKknTo0CGFh4d7uDrv1so4KEnaaSZWq31pT7hIhqMCAOCzahXCXX/99brtttu0cuVKGYah/fv36+2339Ydd9yhm2++2d01AgAAwAvNmjVLf/rTn9S6dWv169dPAwYMkFTcK65nz54ers67lfaE2+moZghX0hMukuGoAAD4rFqtjnrPPffI4XBoxIgRysvL05AhQ2S1WnXnnXfquuuuc3eNAAAA8EIXX3yxBg0apAMHDigtLc25fcSIEbrooos8WJn3a2k5JEnaZcZXq32mWTzsN4qecAAA+Kxa9YQzDEP33nuvjh07pg0bNmjFihU6fPiwIiIilJqa6u4aAQAA4KUSExPVs2dPWSwnP1b27dtXnTp18mBV3q+FcViStLfaIVzx6qj0hAMAwHfVKIQrKCjQzJkz1adPHw0cOFCff/65unTpoo0bN6pjx4567rnnNH369PqqFQAAAPBZxinPk3RUkrTfjK7WsRmqfk84pgcGAMA71Wg46qxZs/TKK69o5MiRWrZsmSZNmqRrrrlGK1as0Jw5czRp0iT5+fnVV60AAABAI2AqwciQJKUrplpHZLIwAwAAPq9GIdz777+vt956SxdccIE2bNig7t27y2azad26dTIMo+oToEGYfP8JAADgdUo/oUXruKyGTZJ0yIys1rEszAAAgO+r0XDUvXv3qnfv3pKkrl27ymq1avr06QRw7sRbCQAA0KiVzgd30IxUoQKqdUxpT7go43i91QUAAOpXjUI4u92uwMBA52t/f3+Fhoa6vSgAAACgsUo2iueD22vGVfsY53BU5aiqWd/4ThcAAO9Uo+Gopmlq8uTJslqtkqT8/HzddNNNatasmUu7jz76yH0VAgAAAI1I85KecPvN6s0HJ51cmMFq2BSsAp1QUL3UBgAA6k+NQrirr77a5fUVV1zh1mLgHgbffwIAAHit5iU94fbVoCdcnqwqMP1lNWyKUg4hHAAAPqhGIdy8efPqqw4AAACgSUh2hnDV7wknGcpSqOKVqSgjR/vN2Fpd2zRN5nMGAMBDajQnHHwDq6MCAAB4r9oMR5WkjNJ54Wq5OMOqXcd05mOL9Z91+2t1PAAAqBtCOAAAAKABJddiOKokZap0cYbcWl13yps/60hOoW7995paHQ8AAOqGEA4AAABoIEEqUExJT7aa94QrXpwhqpY94ex2RksAAOBJhHAAAABAAzBNqblxRJKUbQYrW81qdHymWdw+Ujlurw0AANQ/QjgAAACggZQORa3NwgqZKu0JRwgHAIAvIoTzNowSAAAAaLRKe8Ltq0UId3JhBkI4AAB8ESFcI2QS5AEAAHil5JIQrqbzwUlShnNhhspDuFW7M2peGAAAqHeEcN7G8HQBAAAAqC/NnSFczXvCZZX0hKtqYYbth2u3eioAAKhfhHAAAABAA2nhHI5ai55wZvV6wgEAAO9ECOdl6AgHAADQeLUwDkuS9ppxNT42o2RhBuaEAwDANxHCeZnaTud2TpcEt9YBAAAA9zLshUrUMUnSHjO+xsdnlvSEi1CuDDlqUUDNDwEAAO5DCNdI/HFoW0+XAAAAgEoE5B2Qn2Eq3wzQYUXU+PjMkoUZ/AxT4cpzd3kAAKCeEcI1QiyOCgAA4H0CTxySJB00o1SbbmlF8leOGSSp6sUZAACA9yGEAwAAABqAM4RTVK3PUdobLlKsgAoAgK8hhAMAAAAaQGDeQUnSITOy1udwrpBKTzgAAHwOIRwAAADQAE6GcHXoCVcSwkWpeiukHj5eoMteW6H/rttf62sCAAD38Pd0AQAAAEBTEJSzW5K0uxYro5YqHY4aZVQvhJv9+W9atu2olm07qrAgPvoDAOBJ/J8YAAAAaACH2l6sf21vpp8cnZQQbtXB7IIanyPDDJMkRVQjhNt5JFcfrdlX42sAAID6QQjXSDSPCnY+75ca7cFKAAAAUJ6MFsP1jK2ZJKm5pXazwmSo+sNRL31tRa2uAQAA6gchnJep6WL1n0wdKIdpKj4sSMvuGa5th3M0sF1svdQGAAAAz8oqnROuioUZfjuQrQNZ+Q1REgAAqCZCOB/XISFMwYF+kqTkyGAlRwZXcQQAAAA8wqz7KZyro1bRE27sc9/X/WIAAMCtWB0VAAAA8BEZNVyYAQAAeA9COB/nZ6npAFYAAAD4qsyShRkiCeEAAPA5hHA+7OXLeynQnx8hAABAU5Gp4oUdqhqOCgAAvA8Jjg87p0uCp0sAAABAA8oo6QkXauQrQDYPVwMAAGqCEA4AAADwEdkKkd0sno4kUpWvkAoAALwLIRwAAADgI0xZlFU6JNXIrdGxzCQMAIBnEcIBAADA67Vu3VqGYZR5TJ06VZI0dOjQMvtuuukmD1ddPzLNkhVS6QkHAIBP8fd0AQAAAEBVfvrpJ9ntdufrDRs26JxzztGkSZOc266//no9/PDDztchISENWmNDyVRJCGfkSGb1j8vOZw45AAA8iRAOAAAAXi8uLs7l9eOPP662bdvq7LPPdm4LCQlRYmJiQ5dWbY4aBGaVKV2cIdJghVQAAHwJw1EBAADgUwoLC/Wvf/1L1157rQzj5Exnb7/9tmJjY9W1a1fNnDlTeXl5lZ6noKBA2dnZLo/6ZDfdk8KV9oSLFCEcAAC+hJ5wXubUD5IAAAAoa8GCBcrMzNTkyZOd2y677DK1atVKycnJWr9+ve6++25t3rxZH330UYXnmT17th566KEGqLiYw01d4ZxzwtETDgAAn0IIBwAAAJ/yj3/8Q2PHjlVycrJz2w033OB83q1bNyUlJWnEiBHatm2b2rZtW+55Zs6cqRkzZjhfZ2dnKyUlpd7qtrsphMswS3vCsTADAAC+hBAOAAAAPmPXrl1avHhxpT3cJKlfv36SpK1bt1YYwlmtVlmtVrfXWBGHm4ej0hMOAADfwpxwXobBqAAAABWbN2+e4uPjNW7cuErbrV27VpKUlJTUAFVVj7tCOBZmAADAN9ETzsu4adEsAACARsfhcGjevHm6+uqr5e9/8mPstm3bNH/+fJ177rmKiYnR+vXrNX36dA0ZMkTdu3f3YMWu7A73nOeYikO4aIajAgDgUwjhAAAA4BMWL16s3bt369prr3XZHhgYqMWLF+vZZ59Vbm6uUlJSNHHiRN13330eqrR87lod9VhJT7hoo35XcwUAAO5FCAcAAACfMGrUKJnlBFkpKSlaunSpByqqmUA/98wEc8wMlyRFKUcWOeRghhkAAHwC/8cGAAAAGsDIzvEa3ile00d2qNN5MkoWZrAYpsKU547SAABAAyCE82GGwTIOAAAAvsLfz6LXJ5+p20a2r9N5bPLXcTNYkhRlMC8cAAC+ghAOAAAA8DGZZnFvuEjlergSAABQXT4Vwn322Wfq16+fgoODFRUVpfHjx7vs3717t8aNG6eQkBDFx8frzjvvlM1mc2nz7bffqlevXrJarWrXrp3eeOONhrsBAAAAwA0y1UySFElPOAAAfIbPLMzw4Ycf6vrrr9df/vIXDR8+XDabTRs2bHDut9vtGjdunBITE7Vs2TIdOHBAV111lQICAvSXv/xFkrRjxw6NGzdON910k95++20tWbJE1113nZKSkjR69GhP3ZoLBpgCAACgKhklK6RGKcfDlQAAgOryiRDOZrPptttu05NPPqkpU6Y4t3fp0sX5fOHChfr111+1ePFiJSQkqEePHnrkkUd0991368EHH1RgYKDmzp2r1NRUzZkzR5LUuXNn/fDDD3rmmWe8JoQDAAAAqpJZsjhDpEEIBwCAr/CJ4airV6/Wvn37ZLFY1LNnTyUlJWns2LEuPeGWL1+ubt26KSEhwblt9OjRys7O1saNG51tRo4c6XLu0aNHa/ny5RVeu6CgQNnZ2S4PAAAAwJOcc8IRwgEA4DN8IoTbvn27JOnBBx/Ufffdp08//VRRUVEaOnSojh07JklKT093CeAkOV+np6dX2iY7O1snTpwo99qzZ89WRESE85GSkuLWewMAAABqKqO0JxzDUQEA8BkeDeHuueceGYZR6WPTpk1yOBySpHvvvVcTJ05U7969NW/ePBmGoffff79ea5w5c6aysrKcjz179tTr9QAAAICqZJX0hIuiJxwAAD7Do3PC3XHHHZo8eXKlbdq0aaMDBw5Icp0Dzmq1qk2bNtq9e7ckKTExUT/++KPLsQcPHnTuK/1v6bZT24SHhys4OLjc61utVlmt1urfFAAAAFDPjpYszBCjuk2V8tPOY2oeGazkyPI/CwMAAPfxaAgXFxenuLi4Ktv17t1bVqtVmzdv1qBBgyRJRUVF2rlzp1q1aiVJGjBggB577DEdOnRI8fHxkqRFixYpPDzcGd4NGDBAn3/+ucu5Fy1apAEDBrjzturE9HQBAAAA8HqHFSlJijcya32OdXsyNWlu8dzIOx8f54aqAABAZXxiTrjw8HDddNNNeuCBB7Rw4UJt3rxZN998syRp0qRJkqRRo0apS5cuuvLKK7Vu3Tp99dVXuu+++zR16lRnT7abbrpJ27dv11133aVNmzbppZde0nvvvafp06d77N4AAACAmjpgxkiSkoyjqu3XuKt2ZbixIgAAUBWP9oSriSeffFL+/v668sordeLECfXr109ff/21oqKiJEl+fn769NNPdfPNN2vAgAFq1qyZrr76aj388MPOc6Smpuqzzz7T9OnT9dxzz6lFixb6+9//rtGjR3vqturENE1JhqfLAAAAQAPbXxLChRr5ilSOMhXm4YoAAEBVfCaECwgI0FNPPaWnnnqqwjatWrUqM9z0dEOHDtWaNWvcXR4AAADQYAoUqCNmuGKNbCUZx5RpEsIBAODtfGI4KgAAAABXB83iESEJxjEPVwIAAKqDEA4AAADwQQfMaElSEiEcAAA+wWeGowIAAAA46ZAZKUmKU1aNj735X6u08NeDbq4IAABUhhDOy2w9lOPpEgAAAOADjipCkhRj1DyE+2JDurvLAQAAVWA4KgAAAOCDjprhkqQYI9vDlQAAgOoghAMAAAB8UGkIF0sIBwCATyCEAwAAAHzQkdLhqCKEAwDAFxDCAQAAAD7o5HDUms8JBwAAGh4hHAAAAOCDSkO4aCNHfrJ7uBoAAFAVQjgAAACggXVKDKvzOTIUJodpSJKidbzO5wMAAPWLEM6HGYbh6RIAAABQC3+9uHudz+GQRcdUHOaxQioAAN6PEA4AAABoYLGhVoUH+df5PMwLBwCA7yCEAwAAAHyUM4RjhVQAALweIRwAAADgAe6YWuSoikO4OCOzzucCAAD1ixAOAAAA8AB3TO972IyUJDU3jtb9ZAAAoF4RwgEAAAA+aq8ZJ0mKNzI8XAkAAKgKIRwAAADgAe5Y5/6gGSVJ6m3Z4oazAQCA+kQIBwAAAHiAO+aEO6YwSZK/bHU+FwAAqF+EcAAAAIAHuKMn3FZHsiQpWsdlkcMNZwQAAPWFEA4AAADwUccULodpyM8wFa3jni4HAABUghAOAAAA8AB3rI5ql5+OKlySFGdk1v2EAACg3hDCAQAAAB7hjgGp0mEzUhIhHAAA3o4QDgAAAPAAd/SEk6RDJSFcgpHhnhMCAIB6QQgHAAAA+LD9ZrQkqblxxMOVAACAyhDC+Zg2sc08XQIAAADcwE0d4ZRuxkiSEnXMTWcEAAD1gRDOxzw+sbunSwAAAIAbuGs4arqiJDEcFQAAb0cI52NiQgM9XQIAAAC8yMGS4aiJhHAAAHg1QjgAAADAAww3DUhNN0t7wjEcFQAAb0YIBwAAAHiA24ajlvSEizZyZFWhe04KAADcjhDOhwxqF+vpEgAAADziwQcflGEYLo9OnTo59+fn52vq1KmKiYlRaGioJk6cqIMHD3qw4qq5a2GGLDWTzSz+WJ9qpLvprAAAwN0I4XzIA+d38XQJAAAAHnPGGWfowIEDzscPP/zg3Dd9+nT997//1fvvv6+lS5dq//79mjBhggerbUiG/A2HJCmeeeEAAPBa/p4uANXXPiFM2w7neLoMAAAAj/D391diYmKZ7VlZWfrHP/6h+fPna/jw4ZKkefPmqXPnzlqxYoX69+/f0KVWi+Gu8aiSvrN30xC/XxSnLLedEwAAuBc94XzMqR/VTNP0WB0AAAANbcuWLUpOTlabNm10+eWXa/fu3ZKkVatWqaioSCNHjnS27dSpk1q2bKnly5dXeL6CggJlZ2e7PHzVYUVKkuKNTI/WAQAAKkYI52NaxzRT71ZRGtYxTv5+/PgAAEDT0K9fP73xxhv68ssv9fLLL2vHjh0aPHiwjh8/rvT0dAUGBioyMtLlmISEBKWnVzxH2uzZsxUREeF8pKSk1PNd1J+DrJAKAIDXYziqj7FYDH1w0wC3Dl8AAADwdmPHjnU+7969u/r166dWrVrpvffeU3BwcK3OOXPmTM2YMcP5Ojs7u0GDOHd+nNtvxkiSko2j7jspAABwK7pS+SACOAAA0NRFRkaqQ4cO2rp1qxITE1VYWKjMzEyXNgcPHix3DrlSVqtV4eHhLo+G5M6PdAfMaElSIj3hAADwWoRwAAAA8Dk5OTnatm2bkpKS1Lt3bwUEBGjJkiXO/Zs3b9bu3bs1YMAAD1ZZOUPuS+EOlPSES6plT7iD2fluqwUAAJSPEA4AAABe709/+pOWLl2qnTt3atmyZbrooovk5+enSy+9VBEREZoyZYpmzJihb775RqtWrdI111yjAQMGeO3KqO5W2hMuzshWgGw1Pr7fX5YQxAEAUM+YEw4AAABeb+/evbr00kt19OhRxcXFadCgQVqxYoXi4uIkSc8884wsFosmTpyogoICjR49Wi+99JKHq66cO4ejZihMhaafAg274pSp/Yqt8TnW7M7QmK5J7isKAAC4IIQDAACA13vnnXcq3R8UFKQXX3xRL774YgNVVHcBbl3p3tAhRamFjijByNB+s+YhHAAAqF8MRwUAAAA84Nn/66GEcKuempTmlvMdMiMlSfFGhlvOBwAA3IsQzkdM6t3C0yUAAADAjbo2j9DKP4/UxW76nHe4JISLM7JqeQY3jo8FAABlEML5iDvHdPR0CQAAAPBi+0tWSG1uHPFwJQAAoDyEcD4iwMKPCgAAABXbVzIPXAvjcK2Od+dCEQAAoCySHR/BhyIAAABUZpeZIElKNdI9XAkAACgPIZyPCArw83QJAAAA8GKbzRRJUntjn/xlq/HxfOcLAED9IoTzEYRwAAAAqMweM04nzEBZjaJaDUk1GHoBAEC9IoQDAAAAGgFTFm03kyQV94bzNT/tPKbN6cc9XQYAAPWGEA4AAABoJH43W0iS2hgHPFxJzezLPKFJc5dr9LPfeboUAADqDSEcAAAA0EgcMGMkSWP9fqzxsZ4cjLrraK4Hrw4AQMMghAMAAAAaiSL5S5L8ZfdwJQAA4HSEcAAAAEAj8aOjoySppXGwxseWrstQaHPINE13lgUAAEQIBwAAADQaGx2tJUnhxgkFK7/Gxx/PL1LPhxfq6nk/ubkyAABACAcAAAB4WGRIgFvOk6kwHTNDJdV8cQbDkL7edEi5hXZ99/tht9QDAABOIoQDAAAAPOy5S3q67VxbSlZI7WDsrdFx177xs257Z63b6qgRRr8CAJoAQjgAAACgEfndURzCtbfs83AlAADgVIRwAAAAQCOy1WwuSWpn1C2EW7M7wx3lAACAEoRwAAAAgId1Sgxz27m2msmSpFF+q+p0noteWuaOcgAAQAlCOAAAAMDDEsKD1CIq2C3n2uYoDuEcpqFAFbnlnGt2Z+ilb7fKZne4bM/OL9Jzi7do++Ect1wHAIDGjBAOAAAA8AJt4kLdcp50RUuSLIap5sYRt5zzopeW6YkvN+vfP+522f7Qf37VM4t/16hnvnPLdQAAaMwI4QAAAIBGxdDm0sUZarhCalV+P+ja4+3D1cXntzlY3hQAgKoQwgEAAACNzD4zVpLUztjv1vOaOhm2FdoclbQEAACnI4QDAAAAGpk9Zpwkqbtle53PdSy3sNzt+Ta7y2s7veEAAKgUIRwAAADQyKxydJQkjfH7qc7n6vXIIudzs5Kc7c7319X5WgAANGaEcAAAAEAjs9LRyfk8SAUNcs2P1uxrkOsAAOCrCOEAAAAAL2BW1s2shg4qShlm8Wqr7Qz3hWP1NeCUgawAgKaAEM4HhFn9PV0CAAAAfIqhXxypkqQ0N8wLBwAA6o4Qzgf8cM9wT5cAAAAAH7PObCtJ6m7UTwhn1MtZAQBovAjhvFynxDBFBAd4ugwAAAD4mHWO4hAuzbLNw5UAAACJEA4AAABolNY52kiSOhh71UwnanWO0+epm79yt1rf85k2pWczjxsAADVECOfl3Dg/LwAAAJqQw4rSATNaFsNUZ2OXW889ae5yt54PAICmgBAOAAAAaKQ2OVIkSe0ttVsh9UhOYbnbj+fbanW+5duO6uVvt8k0Te3NyNPTCzfr8PECFdjszjYHsk7o6YWbdSg7v1bX8AYb9mXpucVblF9kr7oxAKDJYNlNAAAAoJHaZSZIkloYh2t1/LT5qyvcty+j5kNcL31thSSpVUyIHvvsN+3LPKGfdmbI7jg5/OOqf/yoLYdy9O3vh/WfaYNqXrQXOO+FH5zPbxvZ3oOVAAC8CT3hAAAAgEZqu5kkSepj+b1Wx6/ccazCfX/7Zmu523MLbPrvuv06nl9U4bG7juZpX2ZxiLd8+1H9eiDbuW/LoRxJ0vq9WbUpWZK0ZneGVu2quPaG8tsp9wUAACGclzOZ8hYAAAC1tMTeS5LUz7JJMap9qFWez9YfKHf7nR+s0y3/XqNb/r2m2ucy3FWUpAKbXRe9tEwTX16u3ILaDZt1Fz7LAwBORQgHAAAANFL7FOt8fof/e/V+PdM09fkv6ZKkbzcf1u8Hj2vPsTxl5RVp19FcZzvjlNTNMFxf11WBzeF8vmZ3Zr3Oy2aaprYcPO4yp92pth3OLXe7O50otGvb4Zx6vw4AoO6YEw4AAABotAzNtw3TZf7fqJel/OGj7vTqd9tdXo965rsKqmoYV/xjpdJaROiTeppb7vNf0jV1/mr1bhWlD28+q8z+rYdy9O3mQxraMb5eri9JY577TruO5um9Gweob2p0vV0HAFB39IQDAAAAGrEXbeMlSZ0sexSkgvq9VgXzxJ3u1N5qkpRbWH5PsvJ6mJmmWaZ3W4HNLtMsf+jnutPmliuw2eVw1H2YqMNhat7/dkiSVu3KqLDdx2uqtzJtdn5RreradTRPkvTZ+v01PhYA0LAI4bxcBZ8lAAAAgGrZrxjn81GWVfV6rez86s3B9vSikwtFmKZcVkc9VdcHvlL2aQs8XPbaSnWe9aUycgslSZl5heoy6yvnyquVySu0Ke2hhbrgxR+qbFuV8//2g36uJHyriU3p2er+4EK1+fPnbjkfAMA7EcIBAAAAjZgpi96xDZUkjfBb7dliaqjIbup/W464bFu+/ahMU1r020FJ0uLfDsnuMLVie9Wrof68M0P5RQ5t2Ff3VUs37nffyqe31mARCwCA7yKEAwAAABq5TxwDJUkDLRskH1uxs6pqTx2G+p91+zViztJqnff5JVvKbNubkadznl6qtIcW6sIX/+e2RR2K7A5d/PIyPfifjeXuN06bJW/DviwNf+pbfbUx3S3XB8rz6/5sDZ/zrb74pfyVjgG4n8+EcL///rsuvPBCxcbGKjw8XIMGDdI333zj0mb37t0aN26cQkJCFB8frzvvvFM2m2uX+G+//Va9evWS1WpVu3bt9MYbbzTgXQAAAAAN72dHRxWZfoo1spViHPJ0OW5RGludGtLd+u81Ony84nnvTm176pDYUo999pu2HMpR1okirduTqU/X1z2cMCQt3XxYP+/K0BvLdpbf5rSVKm785yptP5KrG/9Zv8OH0bRNnb9a2w/n6ua3fauHLODLfCaEO++882Sz2fT1119r1apVSktL03nnnaf09OJvh+x2u8aNG6fCwkItW7ZMb775pt544w3NmjXLeY4dO3Zo3LhxGjZsmNauXavbb79d1113nb766itP3VaVfOt7SgAAAHijIvlrjdlOkjTW8qOHq6mZP769Wq3v+UyZeYXlN6jGB+Yb3vpZWw8dr7Ld6T3f7A5HuW1uqcHw0QVr92vu0m3Vbi9JuYWuHQlM09SD/9lY4/Oc7pvNh3Tzv1bpWG4F72UN2OwOzXh3rd77aU+dzwXPyCus3hyOANzHJ0K4I0eOaMuWLbrnnnvUvXt3tW/fXo8//rjy8vK0YcMGSdLChQv166+/6l//+pd69OihsWPH6pFHHtGLL76owsLi/8nMnTtXqampmjNnjjp37qxp06bp4osv1jPPPOPJ2wMAAEAVZs+erTPPPFNhYWGKj4/X+PHjtXnzZpc2Q4cOlWEYLo+bbrrJQxV7n4/sgyVJE/x+kC9+1XvZayvL3W5W414W/npQV/3jxwpXUC1lnNYl7fRhopI073879d91NVuJtKoFHCynd4U7za8HsvXGsp16/ItNNbru6a6Z95O+2JCuv3z+W53OIxWHix+t2ae7Plxf53PBM8r7/QZQv3wihIuJiVHHjh311ltvKTc3VzabTa+88ori4+PVu3dvSdLy5cvVrVs3JSQkOI8bPXq0srOztXHjRmebkSNHupx79OjRWr58ecPdTA1V9UEBAACgKVi6dKmmTp2qFStWaNGiRSoqKtKoUaOUm5vr0u7666/XgQMHnI8nnnjCQxV7n8/tfVVgBqiTZY/SjLr1qPKEXw9ka+xz3ztfHzpeoOcWb9HqXZnVOn5/Vr7e+dG119aPOypfzGHLoeN6euFmbT10XE99tVkHsk7oaE7Fw13ry4nCquemy863aU5JrVU5mJ3vfP7lhgP654pdNa6pwp6JAIAK+Xu6gOowDEOLFy/W+PHjFRYWJovFovj4eH355ZeKioqSJKWnp7sEcJKcr0uHrFbUJjs7WydOnFBwcHCZaxcUFKig4OT/aLOz3bcKEgAAAKrnyy+/dHn9xhtvKD4+XqtWrdKQIUOc20NCQpSYmNjQ5fmEbIXqU0d/TfT7XlP8v9CtRbd4uqQa++3Ayc/iT361uZKW5fvytIUO/vDKcu18fFyF7V/7fock6fmvt0qSFv92UIPbx9b4ulWpoiNctXy8Zp8k6YWvt1Z6T5J06vf8N/2reD6ws9rGqG1caLWvR18B3+eO3zsANePRnnD33HNPmSEDpz82bdok0zQ1depUxcfH6/vvv9ePP/6o8ePH6/zzz9eBA/W7ksvs2bMVERHhfKSkpNTr9QAAAFC1rKwsSVJ0dLTL9rfffluxsbHq2rWrZs6cqby8PE+U57XetI2SJF3gt1x9jboPSWwMhj75jfYcy1N+kV1fb6p80YpN6cfLDFmtrQNZJ/Tp+v2yO0yXMOS73w+75fxS8aiarzama+eR3CrbZtRhnrgV249q7Z7MWh8PAE2FR3vC3XHHHZo8eXKlbdq0aaOvv/5an376qTIyMhQeHi5Jeumll7Ro0SK9+eabuueee5SYmKgff3SdZPbgwYOS5Pw2NDEx0bnt1Dbh4eHl9oKTpJkzZ2rGjBnO19nZ2Q0axPEFEwAAgCuHw6Hbb79dAwcOVNeuXZ3bL7vsMrVq1UrJyclav3697r77bm3evFkfffRRuedpiiMe1pttdciMVLyRqScCXtXQQuZG3nk0T4Of+EZXDWhVrfZVRXDH84uqdZ6zn/hWhXaHHrnQNfy66vWyC2fU9t8E324+7FxhtcrecbW8hiRd8uoKSdKO2ee6LaQEgMbIoyFcXFyc4uLiqmxX+g2mxeLacc9ischRsmLRgAED9Nhjj+nQoUOKj4+XJC1atEjh4eHq0qWLs83nn3/uco5FixZpwIABFV7barXKarVW/6YAAABQr6ZOnaoNGzbohx9+cNl+ww03OJ9369ZNSUlJGjFihLZt26a2bduWOc/s2bP10EMP1Xu93uaawrv0mfXPam05qA7GHv1uMtJDkt5aXr150Q4dr3xOuKwTlYdwh48X6EShXYX24n/HvLl8l0IC/apXZIkiu0OfrN2vczonlLs/M69QkSGBWr375IIQh46fnAfO5nDog1V7dX5aUpnjsk4UKTI4UBl5hWod26zCGspbEMM0i4c45hTYlJ6Vr3bx1R/eWhtZJ4p0LLdQqZXUWR6Hw9Rv6dnqmBAmf7/qDQ47kHVCfoah+PCg2pTaYOesCeJSoOH5xJxwAwYMUFRUlK6++mrNmjVLwcHBeu2117Rjxw6NG1f8jc6oUaPUpUsXXXnllXriiSeUnp6u++67T1OnTnWGaDfddJP+9re/6a677tK1116rr7/+Wu+9954+++wzT94eAAAAqmnatGn69NNP9d1336lFixaVtu3Xr58kaevWreWGcJ4e8XC6hppja6PZWl/Z+2i0389aaL1bqfn/kukb67V5hdK512rrzMcWu7zeeihHgVUEQaeHJe3v/aLS9j0eXlSm51vfx5Y4n6/Yfkwrth/Tn95fV+a4Uy29c6haxVQ/4Cr9FR7yxDc6lluo/0wbqO4tIqt9fE31eHihTFP65k9DaxTEPbv4dz3/9Vb9oU8LPXFxWpXt84vsGjD7a0nS1sfGVju4q8yJwpPn3PaXc+VnIRIDmgKf+L9tbGysvvzyS+Xk5Gj48OHq06ePfvjhB33yySdKSyv+S9PPz0+ffvqp/Pz8NGDAAF1xxRW66qqr9PDDDzvPk5qaqs8++0yLFi1SWlqa5syZo7///e8aPXq0p24NAAAA1WCapqZNm6aPP/5YX3/9tVJTU6s8Zu3atZKkpKSkcvdbrVaFh4e7PJqKf9jGOp9/ENj0egPWh4zcQh06nl+rMLW0V1x5Tl8ZtTorpdZGeef9aWeGiuwOFdoczjY2u0MnCu0qKCpbs1ly88dK5pf7/JeTC2E4HKbyi+wV1m+apnNffpFddkf5b+SJQrvzOqXv9Y87jlZ5L6Xyi+zOhTbe+3mvS70VOXxK78cCW8U/q5o4csoqu0WV/PzLc+p7VRenDx0utDlqXEtF6uv3tCH4cu0VMVlJxWv4RE84SerTp4+++uqrStu0atWqzHDT0w0dOlRr1qxxZ2n1iz8rAAAAmjp1qubPn69PPvlEYWFhSk8v/sd9RESEgoODtW3bNs2fP1/nnnuuYmJitH79ek2fPl1DhgxR9+7dPVy99/nR7KzXbWN0rf+X6m3Zoj/7v62/2C73dFk+recjxb3IggLc28+h86wvdf95XVxeV8f6vZk1uk55c9HZ7A4NeeIb5RXa9cqVvZ1zv1Xk9H+6zF26TbeNaK/gQD9dPHeZVu8urum+cZ113eA2Lm2vf+tnLf7tkBbPOFvnPv+9WkaHaPGMs13aHMzOV7+/LNGQDnF669q+5dbwzKLf9dySLXrjmjM1tGO8y77s/CKlPbTQZdtZs5dof1a+xpyRqLlX9i7/vk65MYub5ryrSyZy4z9XaeGvB/X9XcOUEh3ilnpsdofOfGyxrP4WrZg5QpY69MxbteuYJr68XJPPaq0HLzjDLfU1lLdX7tK9H2/Qkxd316Q+DNWH+/lETzgAAAA0bS+//LKysrI0dOhQJSUlOR/vvvuuJCkwMFCLFy/WqFGj1KlTJ91xxx2aOHGi/vvf/3q4cu/1sO0qfWrvL0m6wf8zDbas93BFjUN+OT3E6uq5xb/X+Jjnl2yt8xDnnUfzdCArX1knijT93bVVti/ver/sK17JuDSAk6RHPyu7Mu/i34pXpr1vwS8qtDm09VBOmTalQ4ErW0H2uSVbJEmzPtlYZt+yrUfL1Lg/q3iuvC83ppdpX+rU+e+8Yd2Jhb8WLzb4zk+73XbO9Ozin/Oh4wXKt9WtJ9iTX22WJL2xbKcbKmtY9368QZJ05weN6+9DFkzxHoRwAAAA8HqmaZb7mDx5siQpJSVFS5cu1dGjR5Wfn68tW7boiSeeaFJDTGvjtqKpzuf/DHxcacZWD1aDimTn22p8zOLfDupv39Tt5/nbgZMrBlcn0LvmjR//v737Do+qyv84/r6TyUwy6QUSeugdpEaqBRQQC4orIipYsIGiWNFVdIuw9l2XRd21rq6srqK7gvgDBKmC9I70GmpI7zPn90eSIUMSkighhc/refKQ3HvunXPmzGROvnzPOYx4e7nPsZveXk7cU8XX4I57ahZXv7m42ONsPJjs/b7fS9/T7rk5PDNzI2/M+5mp327zub7Qk19sJO6pWazck1hq3T776QD3fby67EYUeOCT1dz5wU8Fv2tOHy+MZZxKz+HK13/gmZkbufzVhXyyovjGHs//dzPX/22pdzpvobd+2MUVr//g/Xnqt9u4+s3FZOa4WbP/FJe+vID5W4/6XJOSlcvgNxbR/OnTM7++WnsYyJ9GesPfljL5603F6vDhsr0MeHUhCcmZ3mOzNyZw6csLOJSUWax8SbJy3Vz31yX8cdaWEs9d8+YSpswuHlgtWubaUq7/tR6esZbb3l1RbLrlibRsrnjtB95ZtIsdR1O57JWFzFx78Jw//i/1a6aHuj2GEW8v58n/bCAjJ4+hf1nMS3O2lX2hVAsKwomIiIiIXKDc+NEtazq5Jn93zq+dz9Hftr6Mq+RC8UORjLOSdkM909KdJ1lxlkDYmTYdyg++PfTp6eWC0ousx3UgMZOMHDefrNjPG/N2lHm/m99ZXuq5J74of2ZTRk4eszce4fttx0hIzsJdJGBiFWyT8daiXfx8NI1PVuxn9/F0bwZVUR8s28va/Ul8v+2Yz/Gp327zWVvug2V72XQohZlrD3H7uyvZezKDuz5c5XPNP5fvY9uRVJ+18gqDaD/8fJw1+5P4sIQdfif/dzO7jqfzpyIBzAc+WcPekxk+5c4WE/p2UwLrDybz98V7ip3777rDbDyUzNuLdpd6/awNCWwo5fpf66t1h1m840SxzMm/fr+THcfSeHH2NiZ+tp49J9J55N+143fbmv2nWLEnkX+vOsAXqw+y+XAKf1u466zXaE246kNBuGpObxURERERqUwnCaNP9l+8P7/n/zLP2z9AI1Ep6mhKdtmFfoGr/ryYHSVMPf0liu7lsD8xg84v/B+DXl/EXR/8VK7rkzNzAXwCXZblG6D63/rDxD01i7d/KB50uvrNxew5kc5fv9/B8/89PR32u7NMdS3q6ZkbScsunvX49bpD3imeZxr/rzVk5p4OXM7ZlMDdH65i/YEkn3Jfrcuvd7ffz6Us93y0mt3HT/dJnvv0E/Dbrzby1g/5AZ9Nh5J9gpvXvLmE7n+Yx4+7fQOxZ2728K8V+4l7ahb3/XM19/1ztff5+fui3Uz6cuMvChg9+cUGn+uKBjkLp0RDfgbl6Y09DJO+3MAd76/kno9WcTQlq8KP+/YPu3hmZn6dF+84zj0freJYKfc5nprNvf9cxbBpS32mZO87mc7lryyk+x/m+mSCFmWM4bdf5Wd8/uat08Hmj0oIvJYmJ8/DQ5+u5fNVB9h0KJm7P1zFxz/uY+xHq8qVFXkyLZu4p2Yx9C+LSzx/8FQGYz9axYrdJ0s8X1WqWwCyxmzMICIiIiIileMYEbTM+oh3/F/lMr/1jLH/HyFWJq/k3kQCUVVdPanFthSZinquJWfmkpyZy/ajqeUq//rcn3n+2vZ4isSMbJbl80f8o5+Xnk216VAK93y0qlhQcebaQ7w+4qIK1b2oCTPWlXrumw0JPjut3vfxGiB/OvLeqUOLlT9Zxk6wAEt2nuDuD1fx/WOXAr6bUXz8Y/46dPdd0pxh05b6XFc02HU2T8/cCJxeh2/O5iPsnTqUPxZMaR3etQHd4yLLvE/RflmzP4mVexKJb5b/++rgqYzSLmPN/lN0axLJyj2JfLrygPd4aTvyns2UggzDG7s15LZ38zc3sSx4+7buxcr+cdYWvtucP8143YEkxvSOo1Gki/s+XsPuE+kAXDdtCbunFO+39QeTvc99URUJYH+26gD/XX+Y/64/jM3KD1rPK5j2nJqVy4x7ep31+scKXvubD6eQmpVLSIC/z/lHP1vPij2JzN1S8muvqlS39fCUCSciIiIiIuRi567cx3k59yYAhvstZnnAg9qwQS4YHyzbS9xTs7ipyLp2FvnTN8trf2LJwZ+4p2YR99Qs/rv+cLnvtWzXiRLX0zvTmZln58L+xAw+W3WAp77YwKv/VzwL709ztpFXjqDVe0v2+EwlLk97XpqzHU8p935/6R7mbEpg5tqDDHj1B59zz369iX8u38s3Gw6TfZYNUmasPEDcU7PYedw3gFW4SUehI8lZPPjpWibMWMvRlCzW7j/FlG+3MuXbrazZf4qvCjYKAXyyEY8kF8+E+8/qg3y1zrfvU7LyMy+LronoMTDpy40cS/W9R0ZO+daFXL7rJH+et8MbUFyw7Rgtn5nNqn2nWL7rdIbamU/vj7sT+dOcbRwuyIj7v81H+Mfi3d56vvzdNhZsPz09vTBQbUz++nRxT83ymYrea8p8DidlsvlwMq98t530EjI8K1tKVi43vbWcBz5ZTZ773G+Y80spE05ERERERADwYGOaexgbTDP+YH+PJrZjvOP/Gu+4h/KFuz/7TUxVV1Gk0hXNnFuw/ViFso3KmvlWdP27stzy9xXlLluStftPlbvswVO+0xHzPIYnzrJD6PQy1iAr9LtvKr4Zw8q9ifx3/WGGdWngc3zbkRRe+F/p9/v5aBrPFuyK2yMuotRyn6/O36ChpHX8irrzg5+8mZp7T2b4TPEtaTpyadKz87xZZEWduWFHoU9X7mfX8TQ+u7dIZlo5k/RG/v1HABpGBDK8W0PuKJiKXXQKa2mmL9zFvC1HmTvxEu75Z/4mJj2bRvKvFfuZ8dOBEq9ZtONEietAJiRnccvff/SuPZiWncfz17YvXyPOkT98s4WVe/Pr1rv5AW69uMl5ffzSKAhXzXVqGFbVVRARERGRC8xiTydG5vyWZQEPEWjlMME+kwn2mcx29+SZ3Ds5hXadlQvDk19srFD5nGqUcXP935aVu+wDn5R/59jKsO6MNewKMwqnLdjJ1+sOMSq+CZOLrLNXlp/2lj8AWWjrGVOji06VPnONvTO9U8LGFPO2HOXVuT9zwxnBxEKfrtyP3Vby5MSVexKJf3EeY/s1IyrYUa6NSYrugPvo5+s5mlrxNe52HEtjw8Ek78/X/nVpieV2Hk/lRFoOJ9NKn95cdPOPTYeSmb/1KA0iAmkTG8qBxAx+2puIZUG7emF8ueYgUcEOYkIDuLpTffxsp6eQLtlxgpAAO50bhZPr9jBrQwL1wwOZvTGBBuGBNIwIZN7WY7g9Hp4e2pa6IQF4PIbPVp3eDXdPwXTf6sAy1W2VumouJSWFsLAwkpOTK2XL+zPTc9dPvpKwQP9SSouIiEhNUdljCPn1qrqPbv3HCpbsPHHeH/dsAslisO0nbvBbTB/bZmxW/p8O/867lK89vVnjaUkWziqupYjUNo9e0YqLm0eVK4OrumleJ4hZD/WjzbNzzuvjuhx+ZBTZXfh8uO6i+ny9rvxTrAH2Th161mnJf7y+A6Pi87PWjiRncfGU+d7rpi3YWeomJQDhLn/WPXcln6064JPJeVffpjx7dbsK1bOiyjuGUCZcNacAnIiIiMiFwVTD3UgzCWCmpx8zPf1ob+3lDf9ptLQdYoR9ISNYSIpx8ZW7D7M98az2tCJXf16IyDkwZ/ORcm+oUd3sOp7O8irYIfR8B+CACgfg8q85dNbz077fyRvzdvDyjZ1w+J3OFPx2Y8JZA3AASRm5TFuws1hm5bJd1WfHVmXCVdD5zoSrTruKiIiIyC9X1VlWUraq7qNR//iRpTurzx8KJXGSwyP2L+hg7aaDbS/h1ukpPtnGThYOtptG/OxpyEpPW7aaxuw29XDjV4W1FhGRC938Ry+heZ3gSru/MuFEREREROScysbB1LyRANjw0Me2iVv95tHN9jPRVgpO8uhpbaenbTu3Mt973XZPQ06YMI4RjgcbOz0N2G/qenP/0glkv6lLLn6cMGGa4ioiIufUZ6sOMGlI26quhoJwIiIiIiJScR5sLPZ0YrGnEzY8tLAO0cA6QVPrCG2tfbS2HaCFdRiXlU1r20Fac3qR7LIS4w6bSE6ZELJwkG38sVkGYyySCeKUCSYbfwwWR0wkSQRzwNThsIkiwUSRjaNyGy4iIjXO2z/sJsDuxyNXtKrSeigIJyIiIiIiv4oHGz+bRvxsGrGgyHEbHtpa+2luHSbUSieAHEKtdFpYh4myUrAwGCwiSKWBdYIgKxuA+lYi9a3ECtcjx/h5A3MJJoq9JoadpgEJJopUE0g6ASSbIE4ShoeSdyUUEZHa6c/zdygIJyIiIiIitZMHG5tNHJtNXLmviSGRRtYxIq1UHORhw4MbPxzkEmxlEk4aLisbF1mEWelEkkp96yQNrBMEWjk0to7TmON0Ys9ZH8dtLNIIJBMnbmykGhenTAinCCbJBJFCMMkmiEwcGCxseHCSi5NcXFYW0VYKYMgyTiw8pBCMnTxCycBmGVKMi1Rc2Mkj0zi9bcjFTjZ2cvAnzQSSSCgpxgVAOgHsMzHK5hMRqaUUhBMRERERkWrjKJEcNZFUfLNYQyPrGHVJItJKJdZKpIV1iFbWIVrYDpGLH4HkEGGlAeBnGcLIIIyM/Mut6rEpRp6xkUwQJ0wYKbjIM3Zy8SMHO7nYOWbCOW7CsTAkEorBwkUWJ00oJwgjzQSSSiAGC3/cZOAkx9hxWrnkGH+OEqEsQBGRKqIgnIiIiIiI1AIWB0wMB4g5awDPDzeRpGJhCLEyCCAXF1kEWVmEkk6YlU4Y6YRbaYRb6TjJwcJgw5BBANnGn0wcJJoQAJxWHnnGRqSVSjb+pJggPFhEWqkEko0Hi1ArAw8WmcaJP26cVg4O8gglnQgrjVAyCLYycZGF08ojilSirNRKeZZyjR/Z+JOKi3QTQBYOTprQgkCfP6nGRSqB5OGHHx5SjYuDJpp0AsjESYoJIg8bJ0wYx8kPBgaTSQpBCu6JiJRBQTgREREREblguPHjOOEAHDMRp09UOPOuMhhiOEW4lUY9K5EAcrDjxp88/K08AsihvnWSMNKxMERZKUD+NNY6JBNppRBiZRJEFn64ycZBINkEkEMWDpzk4m+58cdNMFlgnbuae4xFCi4MFm5s5OFHCBlk4CTd5Af1nOQSYOXgh5skE8whE81RIgkgGxfZOMgl1MrAhsFJLskEYcdNugkggwAMYMdNGoGkmUBSCq4CwykTQqIJ5ThhuMjChiHcSiOKFDxYHDbRHDfhJBBJhgkgG3+CyOQ44bjL2ilEROQcURBORERERESkWrC803G3m8bn/O42PNTlFAFWDqFkEG6l4U8eEVYafnjyg2BkEFIQCPNgEUEaDazjBFnZhJJOQEEWXzhp+Fvu0/e2DOGkF3vMILKpUxAsLCrSSqMZR855GyvKbSwyCMCfPAD88OBvuck1fuThRy75/+ZhJ4hMAJIIxmCRZRwkmEiOEU6GCcjPCrQyscjPuLQwBJCLHx5seMjB7t31N68g8JdKIMFkEUIGIVYmAeTgIBeHlZ8paceNwSLIyiLLOLzTkjNwkm388WDDYHGccDKNgyAriyCyyMNGCJmEWhkkmyBSCSTBRJGJo+A+/rixYcNDiJVJtnHgxsJd0F43Nm8wNc/4Ybfc5Bk/UnGRaEJIwUVKwX1zsZNXJLRgw4MdNzn4/8reMZQ/UmwIIRMbHgzgwE0aAeTgjwEMVgXuVb35k0ceNowyT2skBeFEREREREQuAB5sHCHqdNbfr8j+s+EhjDQ82MjESRjphFr5QbgAcrHhIYP86bdBZHoDW1k4ycFOlJVCA04QY50iEwdpBJJr7CQT5M2mCyeNrIJsvhArPwCWg51gMgkhs2A6cQ4AEVYqdaxkokkmq2Bji1MmmKNEYhWsF1iHZOpaSbgKduGF/LUBQwqCa0UVZgwGltD2IAqut6AFh3/5k1hR1TSG5DEWyQThhweAUCt/ncVUE0gg2WTiJI1AjppwbxDSjgcnOTisPBwFrxcLCCCHAHKIslIItrLwGIs8bORhJw9bQZDQhoM8gskkB3/y8MNBHk4r96x1zMYfP/IDx6cIIdW4cGPDg63IvfMDkHkFQdj8qegeb7akgzw8Ba9PPzxYGFJxYcOQjT/Z+JNpHARbmTgLArB5nA7ougvum4WjoOZuwq103NgIJBsnud5grD952HFjL3gt2snLb7eVRa7xI50AcslfMzLdBHrr5CSHSCvV2x+FAdMUXOQYf44TRroJINpKwZCfSZtuAkgjED88HDdhnDRh5JIfdM3F7vOc5BYEpTNwkmECcGNhkf/rxA9DoJXlbacbW3678fPex0EuQWQT5M3a9XizXgPI4YQJw42NECuDPPzwGJu3n9wFfeXBVrDJTc3bxEZBOBEREREREakQDzZOEer9+Tj5G0aU6oyA344qnP5rFex0m4M/UaQQYmWQbfyxLFMQaLDjhxt/y12Q4+XGjofsgqyqSFLxYMNlZRHDqSKBPUOayd8UozCwk40DNzaMsfC38ogkFadVGJbw4CKLDAK8WWVZOMgx/mRjJ51Aso0/DiuXZBOEsyBDzkEeIWQUZNuBv5VHDKdwWLlkmgCSCcJJDmkEkmJchFoZhJJOXSuJAHK804JtBZ2Salz5ASHL462XX0E2W2GGZC527LgJtdIJLwi4hpKB3fJgswwRpBV7ngsDpyEFQdN6VmKF+8pmGRy4ceAu8XxgQRC2PPcpWjaGJGKspArXp7rwt9y+madnCdAGklOj23o2/3X34pHcB2rUlHIF4UREREREqoEO9cNYurN67NApUpsZbGThBM4IHp4ZGCwlULiXemc9f86ZUr6vcgZXwXp+4VZ+YNLCkGyCcWMRYaWRaZwEWtmEkU4dK4nQguzFXOzkGDs5+BdkSuVPq80qmC6bRDBJJhgbBj/c3oywwsCgB4sUE4TDys82c2PjuAknDz9sGPKwEUQWTnILgo3GmylnjEW0lZyfsWl5CqbPegoCrp6Cx/PgX5D15sHCXjDNNQ97QYjVeAM/oQWZbA7y1210WVneTU8Kg5eFX/kbs+TiT17+NF5jIxUXAJk4yTL+pBNIJg5yjb0g88xO0anRSSaYQHIIsjKxFwRJXVY2dtz5mWfGjxOEeTP5Qsn0Bk2d5FDXSiKILO/amMFkEGRl4yILDxb1rZOEkoE/edSxkgs2aTldf3tBcDqIbJ+s0kIZxlkQyHVjtzylvnrSCtZ69GARQgYGi0wcRJKKn2VINYHYCgLChV82y/cNcK3fck6aUF7IG/3rX87niYJwIiIiIiLVwISBLXE57FzZPoYhf15c1dURESlD/np6GQRwwoQVO3vKFGRKnoPpz6VeX8Kxwpy5NFy++XlFyh4ydc5NnapIElQsOFtJ7bQKphEXfRjftepMkYzK/ImkudjJxFHqmnZWQcAtr8RwlfEG5C63reUtxxvcYf+OXaY+H7uvOIctqzxayU9EREREpBpwOexMGNiStvVCyy4sIiJSxUzB+myFX8UDaxZ5BWu3peIimeCCnY5LD0WZgjUAS5a/eUgO/szx9ORPuTcD8Lz9Q/rZNpybRlUyBeFERERERKq5kABNYBERESlquvsa/uPuj93yMM3/LzS3DlV1lcqkIJyIiIiISDV3Sas6VV0FERGRasbi6dy7+MnTilArg/f8XyaClKqu1FkpCCciIiIiUo31axnNlBs6VnU1REREqp0c/Lk3ZyL7PXVoYjvGW4438CevqqtVKgXhRERERESqmY4NTi9y/s+74gkJ8Oevt3SpwhqJiIhUT4mEcmfu46SYQOJt2/ij/V2q664bCsKJiIiIiFQzr97UudixemEBxY7ddnGT81EdERGRam2nacj43IdwG4ub7D9wm9/cYmVa1g2ugpr5UhBORERERKSaaRUTwuYXBrH7xau8x2yWVazc74d1OJ/VEhERqbYWeTozNW8kAJPtH9HHttHn/NyJl1RFtXwoCCciIiIiUg0FOe3YbKcDb83qVPx/8H/TreG5rJKIiEi19nf3UL5w98VueZju/+dqt2OqgnAiIiIiIjVAWKA/yyddXuz42mevYMXTA1j0+GU0CA/0OXdzz0bMm9ifj++KL9djzJvYn6VPFX8MgCCHX7nuER3sYPETl7H4icv4x+3dSyzz1q1dvd/f279Zue7bKqbqpxH9UtHBzqquQqVb+tTlbP3d4KquRpm+Gtenqqvwq7WKCWbWQ33P6T37tYzmp2cGntN7ilQNi0m5Y707pr7r/wrhpFZ1pbwUhBMRERERqSFiQ4uvCxcR5CAmNIDGUS4evbKVz7kG4S5a1A2hWZ2gct2/Rd2QYoG8hhH5P993SfMSrxne1Tfb7o4+TWkU6aJRpIuB7WJKvOaSVnW931/cLKpcdevUMLxc5c7m1osb47Cf/z+B7uwbV+Fr/GzFpx9XlaEd65VZpkF4IIHlDNRWlehgJxc1Cj8n9+rQIPSc3OeXuLFbQ9rVO7ePf2ffptQJqf3BYjm723tVzjqjv7uufaXctzSFO6Ye8NQhznaUtx2vV5sdUxWEq8aevbpdVVdBRERERKqpT8deXOzYsIsaMLZfUxpHuvjozp7EFmzmUD88kPfH9GB414Y8f007hl1Un0evaMXCxy4t8d7fPNiXx65sxZyH+/H1uD5MH9WV+y4tHoR7aXgn/jCsA4sev4yXb+zE9FFduaeMzLavxvUh0OHH4icu493R3bm0dR2f8/8d75up9NGdPZn/aMnr+Iy7rDlrn72CXmcE8v40vCMvXt+Rqzv5Bo9+O7Ryx9f3XtKMlU8PKDYN+O6+zRh/WYsSr5k3sX/J9+rfjOmjuhY77ipHoKuk6yqqX8to7/ePDWr9q64vr9IyBv83vvxZX5e3qcvrIzrz2k2dS73uu4dLfs4rYmTPxr/42hVPD+Cd27rxr7Hx3PgLpoyHBvj/4scuyT9u786lrfLfh49e0aqM0uee8xwGxp+5qm2p5+ZNvIS3b+vGb4eWXqYkJW2KU12c+Z8mjSNdpWYzl8fTV7XlzZHndifu2y5uwqj4JsXeMzPuKf4Zdi4V7piaWnTHVFP1O6YqCFeN3dW3aVVXQURERESqqZKy22w2i2eGtmPRE5fRv5VvcOuyNnV59abOjOnTlDdu7sKDA1oSF11yhlyHBmGMv7wlbWJDiQp2MqRjPfz9iv/pcFOPRgQ6/Ggc5eI33RuVWq6owkykRpEuBrSNwSqy4cSo+MZ0ahjO2H6nx8H9W9WheZ1g2sSGFLvX44PaEBHk4NMz/pgb0aMxt8Q35q+3nA5GTRjQkgB/P6jEv8EGt4+lbmgAgzvE+hz397N4bFBrwgLzgyddGod7z0UFOUvMqrL72RjSsR5Nz+ijogHHkjIjm9cJYkgZmWvNS8mMfPqqNt7vi2Y+RrgqHvQZ0zuuQuW7NYkoNXDXsWEYvZv7Blo7l5LRdv+lzbm+S0Nu6NqQjg3DfM7FN40EoHVsiPex6ocFcG3n+hWqK0DTqJKfwysKsj9Le86u6hhLTGgAV7aPpXfzaF75TfGdkMvSICKwzDKTrylfwPnpq9owsN3p92FYBfq6aLbmn4Z3LHZ++aTLyxWMffosgbOiu1mW514XFXlvFXVP/2a0qBvMoPax3N2vGc+X8/kBeKCE/4CoLqLPyF4c0LZuscBcRQT4+3nfJyWfr3gI6ffDOuBns2ga7fI5Xt4s6F9jxxk7prJ8WqU/ZlnsVV0BEREREREpH8uymD6qK+k5bmJKCMD8Em/d2o0/zdlWrmDA/8b35Zq/LgHg9RHlCx5882BfJn25kaTMHN4YUXKGxbyJlzB7YwJ3Fvwn9CNXtCI0wJ8r258OZo3uHUd2noeXv9te4j3+NqorT/5nA3Me8c1ymvVQXxZsO8bd/UrP0Jt2S1ea1Qli3pajvDr3ZyA/OHM4Octb5pmr2nJxsygW7ThOnxbRDJu2tNT7nbmRbWGA43/j+zJz7SEGd4hl0BuLvGXfHd2DT1fuZ9hFDbj0lYU+1358dzyfrzrApa3r8sP249zeqwldfj8XyJ85M+5fa7xlHx7Ykpu6NypWn5dv7MTj/9ng/fmL+3vzm7eWc23n+kQFO3ln0S4+ujOe2LAAFmw7Tv3wQPq0iOavt3Qh1+0h3OXg9RGdefrLTWTmuktt95neH9ODez9ezVu3dmXdgWS+XneIK9rG8JvujXj1/7bTOjaEm7o34os1B7klvjEvztrqvXbaLV3ZdTyNIQUBzTdHduHtRbvZcTSVIKed565uR88X5xd7zB5xvgGEWQ/1ZehflhAaYOfF608Hit4YcRH//HEfN3ZrSEiAP7uOp7H5cIr3/PPXtOP5/23h9l5NuO6i+szbeowPl+0lIye//b1bRNMzLpKGkYHc2K0hj3++gZdv7ES7+qF8uGwf13dpQEZuHoPfWAzkvw/mbz1WZnDy4YEtcdr9+NOcbSWeH3ZRffq2iPYJXpflywd6s2J3Ild3qscXaw7yxrwd3nNjepee+HFHnzjeX7rX+/P9lzbn0lZ1+HbTEVbsSeTz+3ox/l9rqBPs5LqLGvDkF/k7Ud7Tvxkt6wZTLyzQ+zwXPmZsaABHUvLfVw67jdsubsLo3nEcTsrkxz2J9GgSwa7jaQzr0oC9JzK4o28cX689RMNIF50ahPHPH/eRlJHLB8tO1ysqyMGwLg1oFBFIj7hI/jU2njve/4nsPA9NolwM7hDLwwN8M/xuvbgJ6Tlu+raIZvGO4yzacYIpN3Tk4KlMRr+30qeszWbx3cP9ueovi3lkYEu+XneYrDw3R5KzyHXnR/VfGt6JJ77YwNl8Pa4P1xX83ohvGokBVu5JLFauSZSLfSczAPjLyC4YY/AYgzGw63ga0xbs8ilf9HdVSYleHRqEsulQSvETZ/js3l4A1A0N4JXfdObpLzcS3yySxTtOeMvMmdCfr9cdZlCHGL7bdJToEAfPzNzkPf/Apc0J9PejbqiTf608wBNFsmiL7vBdmPH8zYN9ufrNJbSJDWHbkZLXbfvt0LZc1qYuszYk8FrB7+eS3NyjETGhATj9bXg8hv2JGfzw83Eu6nEjc/dlMfjgn2HZX6Dr7RBQddPJFYSrZoKddtKy86ir+fgiIiIiUoKyspwqanCH2GKZW6Upmn3Xr2Wds5Q8rUODMP734NmnE7aoG8xDA1p6f3Y57DxY5GcAfz8b4y5rwQfL9nI8NdubVVboqo71uKqE56Z9/TDa1z+dEdWsTlCxP/aGFkxbbVsv1BuEG3VxE/Lchtfn5f88tmCabWF2VeeGYaw/mOxzH5cj/8+rYGfJ2USNo1xMGNiSxPQc7zE/m0VMaAAPD/QNEkQFOYD86WaF585czyw2zEnXxuGs2Z8E4HOPZtFB7D6Rjp/N4jfdG3mDcB0bhBHucjB34ukpvrfEn54mVjSr8OpOpzPEru/SkOu7NCTuqVkltu1MIQH+9Gwayc9/GALA5W1imFhkquM7RTbtKKx3TJFpf0PPmEocFew8a8YUQI+4iGLH2tcPY+/UocWORwU7fZ6vWQ/187btqo6xjOnTlDF9TgeoujWJpGl0EE8UCWZ+dl8v7/dFpwBOGHj6tVv0sTs08M3MO1PnhmE8PLAVC7YfK/H8jj8OKTPTFCAuykVkwesHoGvjCLo2zn9uHh7YyicId+YaieGu09dNvqY96dl5fLbqIABPDs7PlIwvksH0wR09Ach1e7zH7ugTR72w/Gyswue58DEfvbKV97X4v/F9aV2Q4TrpLH17W6847/eFfda8bjDPfpUf/Fn97BU+5Xs3j2Z7weuuNPaC3yeQn1U5/vL8PmteJ7hY8DHS5aB1bAi7XrwKwFvW4zE0e3o2AL2KZGrGRbnYWxBEKzS6VxOf7M0/De/EloSUYkG4cZc1J8Du5/09dGaWZq7b4xOEaxgeSPPoIL5cm78D6Jnr+s19pD8tY/Kf4xunL2PVvlOlPic9i2TA3ditoXeqdOH74vI2dYmLDvK+vtvEhuLxGJ8gXNfGEd61QEf08J1+WvQ1WbjGZ4cG+e/PYylZJQbVY0MDvP+B8tCAlnyyYh9HU7KLlfvi/t50a1L8/e9lXoAlYdBheJUG4EBBuGrni/t785f5O3jkipZlFxYREREROY+CnHYmXtGKPI+psh0/Px0bz+tzd/gE7Srindu686fvtnFf/+Z8ufYgjSN9p0hNH9WV/9tylLv6NsUY2HsynUHtiwcp/3pLV6bO2cY9/Zrx095EjqZkeQMKPeIiGN2rCV+sOcT4y4uvBRcZ5OChAS2x2yxCzljf6y8ju7Bw+7Gzrjn2wrXt2XMina6NI/jLyC5M+XYbd5+xlM27Y3rwynfbeeCy/Kl0X4/rwzuLd/PU4DYl3bLc3rq1G99tPsITg1vz0Kdr+floGu/f0cN7/nfXtWf38fQSA2JlGX9ZC44mZ3FNOaeHPn1VG06m5TC4Qyz/WLKnzCBdWT4dezGfrNjH5GtKXkT++i4N+GlPIn1aVHy9u7M5s28uaVmHkT0b8+nK/bx8Yyf2nkzH5bAXC8A9NaQN//7pANHBDsIC/bmiXQyLfj7Bo1e2oklUEMt2nqRHCVML/3zzRUyYsY5ptxRfO3Box3os3XGC7gX9N2lIW7JyPfym+9nXrvP3s/H4oNZk5OR5A3BFvT6iM8t2nuT6Lg1Izsz1eb/8EiO6N2Ld/iT6tzq3fQH5mbiJ6Tlk53qICHKU+P6H/Ay5Jwe3ISUrl0aRLu/3o3vF8YdZWxjTO47U7DxmrjnExCvzM8ImDWlDYkYOcdFBNIp0MbJnI7o0iiAiyMGsDYd54NIW2CyL3SfSGdS++MY2hc/z/K1HaRDh4rmr2+Fns/hmQwLhLn/vklbPXNWW42nZ3gAcwJ9HduHF2Vu5u29TVu09xfG0bIKddl6b+zNf3N+71Ofjs3t78dHyvTxXwpr1NpvFE4Nb8+7iPQzqEMvlbeqWcId813auz4+7TxLftPg01LqhATx4eQty3B42H0phyc4TRAc7+Phu3529P7n7Yh7+91o2HUqhaXQQlxQsu9C1lGnIXpYF/R49e5nzxDKmGqxMV4OkpKQQFhZGcnIyoaFVG0EVERGRmkNjiOpPfSRybhhjKjRdUkSkpivvGEIbM4iIiIiIiIiIiFQyBeFERERERETknFEWnIhIyRSEExERERERERERqWQKwomIiIiIiIiIiFQyBeFERERERERERGo57ctZ9RSEExERERERERERqWQKwomIiIhIrTJt2jTi4uIICAggPj6elStXVnWVREREqpw2Tal6CsKJiIiISK3x73//m4kTJzJ58mTWrFlD586dGTRoEMeOHavqqomIiMgFTkE4EREREak1XnvtNcaOHcsdd9xBu3bteOutt3C5XLz33ntVXTURERG5wCkIJyIiIiK1Qk5ODqtXr2bgwIHeYzabjYEDB7J8+fIqrJmIiIgI2Ku6AiIiIiIi58KJEydwu93ExMT4HI+JiWHbtm3FymdnZ5Odne39OSUlpdLrKCIiIhcuZcKJiIiIyAVpypQphIWFeb8aNWpU1VUSERGRWkxBOBERERGpFaKjo/Hz8+Po0aM+x48ePUpsbGyx8pMmTSI5Odn7deDAgfNVVREREbkAKQgnIiIiIrWCw+GgW7duzJ8/33vM4/Ewf/58evXqVay80+kkNDTU50tERESksmhNOBERERGpNSZOnMjo0aPp3r07PXv25I033iA9PZ077rijqqsmIiIiFzgF4URERESk1hgxYgTHjx/nueee48iRI1x00UXMmTOn2GYNIiIiIuebgnAiIiIiUquMHz+e8ePHV3U1RERERHxoTTgREREREREREZFKpky4CjLGAJCSklLFNREREZGapHDsUDiWkOpH4zwRERH5Jco7zlMQroJSU1MBaNSoURXXRERERGqi1NRUwsLCqroaUgKN80REROTXKGucZxn9d2yFeDweDh8+TEhICJZlnfP7p6Sk0KhRIw4cOEBoaOg5v391o/bWbmpv7XehtVntrd0qu73GGFJTU6lfvz42m1YEqY40zju31N7a70Jrs9pbu6m9tVt1GecpE66CbDYbDRs2rPTHCQ0NvSDeCIXU3tpN7a39LrQ2q721W2W2Vxlw1ZvGeZVD7a39LrQ2q721m9pbu1X1OE//DSsiIiIiIiIiIlLJFIQTERERERERERGpZArCVTNOp5PJkyfjdDqruirnhdpbu6m9td+F1ma1t3a70Nor59+F9hpTe2u/C63Nam/tpvbWbtWlvdqYQUREREREREREpJIpE05ERERERERERKSSKQgnIiIiIiIiIiJSyRSEExERERERERERqWQKwomIiIiIiIiIiFQyBeGqmWnTphEXF0dAQADx8fGsXLmyqqtUpilTptCjRw9CQkKoW7cuw4YNY/v27T5lLr30UizL8vm67777fMrs37+foUOH4nK5qFu3Lo8//jh5eXk+ZRYuXEjXrl1xOp20aNGCDz74oLKbV8zzzz9frC1t2rTxns/KymLcuHFERUURHBzM8OHDOXr0qM89akpbAeLi4oq117Isxo0bB9T8vl20aBHXXHMN9evXx7IsvvrqK5/zxhiee+456tWrR2BgIAMHDmTHjh0+ZRITExk1ahShoaGEh4dz1113kZaW5lNmw4YN9OvXj4CAABo1asRLL71UrC6ff/45bdq0ISAggI4dOzJ79uzz2t7c3FyefPJJOnbsSFBQEPXr1+f222/n8OHDPvco6TUxderUGtdegDFjxhRry+DBg33K1Jb+BUp8L1uWxcsvv+wtU5P6tzyfP+fzd3JN/AyX86smvkY0ztM4ryb3rcZ5p9urcZ7GeVCz+rfWjvOMVBszZswwDofDvPfee2bz5s1m7NixJjw83Bw9erSqq3ZWgwYNMu+//77ZtGmTWbdunbnqqqtM48aNTVpamrfMJZdcYsaOHWsSEhK8X8nJyd7zeXl5pkOHDmbgwIFm7dq1Zvbs2SY6OtpMmjTJW2b37t3G5XKZiRMnmi1btpg333zT+Pn5mTlz5pzX9k6ePNm0b9/epy3Hjx/3nr/vvvtMo0aNzPz5882qVavMxRdfbHr37l0j22qMMceOHfNp69y5cw1gFixYYIyp+X07e/Zs88wzz5gvv/zSAGbmzJk+56dOnWrCwsLMV199ZdavX2+uvfZa07RpU5OZmektM3jwYNO5c2fz448/msWLF5sWLVqYkSNHes8nJyebmJgYM2rUKLNp0ybz6aefmsDAQPP22297yyxdutT4+fmZl156yWzZssX89re/Nf7+/mbjxo3nrb1JSUlm4MCB5t///rfZtm2bWb58uenZs6fp1q2bzz2aNGlifve73/n0edH3e01przHGjB492gwePNinLYmJiT5lakv/GmN82pmQkGDee+89Y1mW2bVrl7dMTerf8nz+nK/fyTX1M1zOn5r6GtE4T+O8mty3Guedbq/GeRrnGVOz+re2jvMUhKtGevbsacaNG+f92e12m/r165spU6ZUYa0q7tixYwYwP/zwg/fYJZdcYiZMmFDqNbNnzzY2m80cOXLEe2z69OkmNDTUZGdnG2OMeeKJJ0z79u19rhsxYoQZNGjQuW1AGSZPnmw6d+5c4rmkpCTj7+9vPv/8c++xrVu3GsAsX77cGFOz2lqSCRMmmObNmxuPx2OMqV19e+aHmcfjMbGxsebll1/2HktKSjJOp9N8+umnxhhjtmzZYgDz008/ect8++23xrIsc+jQIWOMMX/7299MRESEt73GGPPkk0+a1q1be3++6aabzNChQ33qEx8fb+69995z2saiSvrwPtPKlSsNYPbt2+c91qRJE/P666+Xek1Nau/o0aPNddddV+o1tb1/r7vuOnP55Zf7HKup/WtM8c+f8/k7ubZ8hkvlqS2vEY3zNM4rqia1V+O84jTOq939q3Fe9RznaTpqNZGTk8Pq1asZOHCg95jNZmPgwIEsX768CmtWccnJyQBERkb6HP/kk0+Ijo6mQ4cOTJo0iYyMDO+55cuX07FjR2JiYrzHBg0aREpKCps3b/aWKfr8FJapiudnx44d1K9fn2bNmjFq1Cj2798PwOrVq8nNzfWpZ5s2bWjcuLG3njWtrUXl5OTw8ccfc+edd2JZlvd4berbovbs2cORI0d86hYWFkZ8fLxPf4aHh9O9e3dvmYEDB2Kz2VixYoW3TP/+/XE4HN4ygwYNYvv27Zw6dcpbpjo+B8nJyViWRXh4uM/xqVOnEhUVRZcuXXj55Zd9UrprWnsXLlxI3bp1ad26Nffffz8nT570nqvN/Xv06FFmzZrFXXfdVexcTe3fMz9/ztfv5Nr0GS6Voza9RjTO0zivJvdtURrnaZxXm/tX47zqO86zV/gKqRQnTpzA7Xb7vDgAYmJi2LZtWxXVquI8Hg8PP/wwffr0oUOHDt7jt9xyC02aNKF+/fps2LCBJ598ku3bt/Pll18CcOTIkRLbXnjubGVSUlLIzMwkMDCwMpvmFR8fzwcffEDr1q1JSEjghRdeoF+/fmzatIkjR47gcDiKfZDFxMSU2Y7Cc2crc77beqavvvqKpKQkxowZ4z1Wm/r2TIX1K6luRetet25dn/N2u53IyEifMk2bNi12j8JzERERpT4HhfeoCllZWTz55JOMHDmS0NBQ7/GHHnqIrl27EhkZybJly5g0aRIJCQm89tprQM1q7+DBg7nhhhto2rQpu3bt4umnn2bIkCEsX74cPz+/Wt2/H374ISEhIdxwww0+x2tq/5b0+XO+fiefOnWqVnyGS+XROK/mjAU0ztM4T+O8mjkOKInGeRrnVcdxnoJwck6NGzeOTZs2sWTJEp/j99xzj/f7jh07Uq9ePQYMGMCuXbto3rz5+a7mrzJkyBDv9506dSI+Pp4mTZrw2WefVdkg4nx59913GTJkCPXr1/ceq019K6fl5uZy0003YYxh+vTpPucmTpzo/b5Tp044HA7uvfdepkyZgtPpPN9V/VVuvvlm7/cdO3akU6dONG/enIULFzJgwIAqrFnle++99xg1ahQBAQE+x2tq/5b2+SMi547GeRrn1eS+ldM0ztM4D2pW/9amcZ6mo1YT0dHR+Pn5FdvJ4+jRo8TGxlZRrSpm/PjxfPPNNyxYsICGDRuetWx8fDwAO3fuBCA2NrbEtheeO1uZ0NDQKh0UhYeH06pVK3bu3ElsbCw5OTkkJSX5lCnajzW1rfv27WPevHncfffdZy1Xm/q2sH5ne1/GxsZy7Ngxn/N5eXkkJiaekz6vivd/4cBs3759zJ071+d/R0sSHx9PXl4ee/fuBWpee4tq1qwZ0dHRPq/f2ta/AIsXL2b79u1lvp+hZvRvaZ8/5+t3cm34DJfKVRteIxrnaZwHtatvNc7TOK829i9onFfdx3kKwlUTDoeDbt26MX/+fO8xj8fD/Pnz6dWrVxXWrGzGGMaPH8/MmTP5/vvvi6WvlmTdunUA1KtXD4BevXqxceNGn1+ChR8K7dq185Yp+vwUlqnq5yctLY1du3ZRr149unXrhr+/v089t2/fzv79+731rKltff/996lbty5Dhw49a7na1LdNmzYlNjbWp24pKSmsWLHCpz+TkpJYvXq1t8z333+Px+PxDlR79erFokWLyM3N9ZaZO3curVu3JiIiwlumOjwHhQOzHTt2MG/ePKKiosq8Zt26ddhsNm86f01q75kOHjzIyZMnfV6/tal/C7377rt069aNzp07l1m2OvdvWZ8/5+t3ck3+DJfzoya/RjTO0zivqNrUtxrnaZxX2/q3kMZ51XycV+GtHKTSzJgxwzidTvPBBx+YLVu2mHvuuceEh4f77ORRHd1///0mLCzMLFy40Ger44yMDGOMMTt37jS/+93vzKpVq8yePXvM119/bZo1a2b69+/vvUfh1sFXXnmlWbdunZkzZ46pU6dOiVsHP/7442br1q1m2rRpVbKd+6OPPmoWLlxo9uzZY5YuXWoGDhxooqOjzbFjx4wx+dskN27c2Hz//fdm1apVplevXqZXr141sq2F3G63ady4sXnyySd9jteGvk1NTTVr1641a9euNYB57bXXzNq1a727RE2dOtWEh4ebr7/+2mzYsMFcd911JW5d36VLF7NixQqzZMkS07JlS5+tzZOSkkxMTIy57bbbzKZNm8yMGTOMy+UqttW33W43r7zyitm6dauZPHlypWz1fbb25uTkmGuvvdY0bNjQrFu3zuf9XLh70LJly8zrr79u1q1bZ3bt2mU+/vhjU6dOHXP77bfXuPampqaaxx57zCxfvtzs2bPHzJs3z3Tt2tW0bNnSZGVlee9RW/q3UHJysnG5XGb69OnFrq9p/VvW548x5+93ck39DJfzp6a+RjTO0zivJvetxnka52mcd1pN69/aOs5TEK6aefPNN03jxo2Nw+EwPXv2ND/++GNVV6lMQIlf77//vjHGmP3795v+/fubyMhI43Q6TYsWLczjjz9ukpOTfe6zd+9eM2TIEBMYGGiio6PNo48+anJzc33KLFiwwFx00UXG4XCYZs2aeR/jfBoxYoSpV6+ecTgcpkGDBmbEiBFm586d3vOZmZnmgQceMBEREcblcpnrr7/eJCQk+NyjprS10HfffWcAs337dp/jtaFvFyxYUOLrd/To0caY/O3rn332WRMTE2OcTqcZMGBAsefh5MmTZuTIkSY4ONiEhoaaO+64w6SmpvqUWb9+venbt69xOp2mQYMGZurUqcXq8tlnn5lWrVoZh8Nh2rdvb2bNmnVe27tnz55S388LFiwwxhizevVqEx8fb8LCwkxAQIBp27atefHFF30GMzWlvRkZGebKK680derUMf7+/qZJkyZm7NixxT5Ma0v/Fnr77bdNYGCgSUpKKnZ9Tevfsj5/jDm/v5Nr4me4nF818TWicZ7GeTW5bzXO0zhP47zTalr/1tZxnlXQOBEREREREREREakkWhNORERERERERESkkikIJyIiIiIiIiIiUskUhBMREREREREREalkCsKJiIiIiIiIiIhUMgXhREREREREREREKpmCcCIiIiIiIiIiIpVMQTgREREREREREZFKpiCciEgp9u7di2VZrFu3rtIeY8yYMQwbNqzS7i8iIiIixWmcJyJVQUE4Eam1xowZg2VZxb4GDx5crusbNWpEQkICHTp0qOSaioiIiEhFaJwnIjWRvaorICJSmQYPHsz777/vc8zpdJbrWj8/P2JjYyujWiIiIiLyK2mcJyI1jTLhRKRWczqdxMbG+nxFREQAYFkW06dPZ8iQIQQGBtKsWTP+85//eK89c5rCqVOnGDVqFHXq1CEwMJCWLVv6DPw2btzI5ZdfTmBgIFFRUdxzzz2kpaV5z7vdbiZOnEh4eDhRUVE88cQTGGN86uvxeJgyZQpNmzYlMDCQzp07+9SprDqIiIiIXCg0zhORmkZBOBG5oD377LMMHz6c9evXM2rUKG6++Wa2bt1aatktW7bw7bffsnXrVqZPn050dDQA6enpDBo0iIiICH766Sc+//xz5s2bx/jx473Xv/rqq3zwwQe89957LFmyhMTERGbOnOnzGFOmTOGjjz7irbfeYvPmzTzyyCPceuut/PDDD2XWQURERERO0zhPRKodIyJSS40ePdr4+fmZoKAgn68//vGPxhhjAHPffff5XBMfH2/uv/9+Y4wxe/bsMYBZu3atMcaYa665xtxxxx0lPtY777xjIiIiTFpamvfYrFmzjM1mM0eOHDHGGFOvXj3z0ksvec/n5uaahg0bmuuuu84YY0xWVpZxuVxm2bJlPve+6667zMiRI8usg4iIiMiFQuM8EamJtCaciNRql112GdOnT/c5FhkZ6f2+V69ePud69epV6i5Z999/P8OHD2fNmjVceeWVDBs2jN69ewOwdetWOnfuTFBQkLd8nz598Hg8bN++nYCAABISEoiPj/eet9vtdO/e3TtVYefOnWRkZHDFFVf4PG5OTg5dunQpsw4iIiIiFxKN80SkplEQTkRqtaCgIFq0aHFO7jVkyBD27dvH7NmzmTt3LgMGDGDcuHG88sor5+T+heuKzJo1iwYNGvicK1xkuLLrICIiIlJTaJwnIjWN1oQTkQvajz/+WOzntm3bllq+Tp06jB49mo8//pg33niDd955B4C2bduyfv160tPTvWWXLl2KzWajdevWhIWFUa9ePVasWOE9n5eXx+rVq70/t2vXDqfTyf79+2nRooXPV6NGjcqsg4iIiIicpnGeiFQ3yoQTkVotOzubI0eO+Byz2+3eRW4///xzunfvTt++ffnkk09YuXIl7777bon3eu655+jWrRvt27cnOzubb775xjuQGzVqFJMnT2b06NE8//zzHD9+nAcffJDbbruNmJgYACZMmMDUqVNp2bIlbdq04bXXXiMpKcl7/5CQEB577DEeeeQRPB4Pffv2JTk5maVLlxIaGsro0aPPWgcRERGRC4nGeSJS0ygIJyK12pw5c6hXr57PsdatW7Nt2zYAXnjhBWbMmMEDDzxAvXr1+PTTT2nXrl2J93I4HEyaNIm9e/cSGBhIv379mDFjBgAul4vvvvuOCRMm0KNHD1wuF8OHD+e1117zXv/oo4+SkJDA6NGjsdls3HnnnVx//fUkJyd7y/z+97+nTp06TJkyhd27dxMeHk7Xrl15+umny6yDiIiIyIVE4zwRqWksU7hSpIjIBcayLGbOnMmwYcOquioiIiIicg5pnCci1ZHWhBMREREREREREalkCsKJiIiIiIiIiIhUMk1HFRERERERERERqWTKhBMREREREREREalkCsKJiIiIiIiIiIhUMgXhREREREREREREKpmCcCIiIiIiIiIiIpVMQTgREREREREREZFKpiCciIiIiIiIiIhIJVMQTkREREREREREpJIpCCciIiIiIiIiIlLJFIQTERERERERERGpZP8POiOBxd6WCKIAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Parameters\n", "gamma = 0.9\n", "epsilon = 1.0\n", "decay_epsilon = 1e-5\n", "alpha = 0.1\n", "nb_episodes = 20000\n", "\n", "# Create the environment\n", "env = gym.make(\"Taxi-v3\")\n", "\n", "# Create the agent\n", "agent = QLearningAgent(env, gamma, epsilon, decay_epsilon, alpha)\n", "\n", "# Train the agent \n", "returns, steps = agent.train(nb_episodes)\n", "\n", "# Plot training returns\n", "plt.figure(figsize=(15, 6))\n", "plt.subplot(121)\n", "plt.plot(returns)\n", "plt.plot(running_average(returns, 1000))\n", "plt.xlabel(\"Episodes\")\n", "plt.ylabel(\"Returns\")\n", "plt.subplot(122)\n", "plt.plot(steps)\n", "plt.plot(running_average(steps, 1000))\n", "plt.xlabel(\"Episodes\")\n", "plt.ylabel(\"steps\")\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Test performance 8.027\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABMIAAAINCAYAAADcGdP7AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABByElEQVR4nO3de5hXZb03/vcAMiAy0KDMQCJQHhDFQ+oPJ91GwsNBtodk79JNnvLSJx+oEDWlPIEl6rY0fUhyX261Hun4pCm2SUQFSyTFzGOkRIFbBkqDEdqOHL6/P/bP769JVGAGvtB6va5rXdes+76/a33WuuCamzf3Wt+qUqlUCgAAAAD8nWtX6QIAAAAAYHsQhAEAAABQCIIwAAAAAApBEAYAAABAIQjCAAAAACgEQRgAAAAAhSAIAwAAAKAQBGEAAAAAFEKHShewNTZu3JhXX301Xbt2TVVVVaXLAQB2EqVSKW+88UZ69+6ddu38f+COyDwPANgamzvP2ymDsFdffTV9+vSpdBkAwE5q2bJl2XPPPStdBptgngcAtMb7zfN2yiCsa9euSf774mpqaipcDQCws2hqakqfPn3Kcwl2POZ5AMDW2Nx53k4ZhL29TL6mpsYECQDYYh6523GZ5wEArfF+87wtejnG1KlTc8QRR6Rr167p2bNnTjrppCxatKjFmCFDhqSqqqrF9tnPfrbFmKVLl2b06NHZdddd07Nnz1x00UVZv379lpQCAAAAAFtki1aEzZ07N+PGjcsRRxyR9evX50tf+lKGDx+eF154IV26dCmPO+ecczJlypTy/q677lr+ecOGDRk9enTq6+vz2GOPZfny5Tn99NOzyy675Oqrr26DSwIAAACAd9qiIGzWrFkt9u+444707NkzCxcuzDHHHFNu33XXXVNfX7/JYzzwwAN54YUX8uCDD6auri6HHHJIrrrqqlx88cW58sor07Fjx624DAAAAAB4b6363vDVq1cnSWpra1u033XXXdl9991z4IEHZtKkSfnLX/5S7ps/f34GDRqUurq6ctuIESPS1NSU559/fpPnaW5uTlNTU4sNAAAAALbEVr8sf+PGjZkwYUKOOuqoHHjggeX2f/mXf0nfvn3Tu3fvPPPMM7n44ouzaNGi/PjHP06SNDY2tgjBkpT3GxsbN3muqVOnZvLkyVtbKgAAAABsfRA2bty4PPfcc/n5z3/eov3cc88t/zxo0KD06tUrQ4cOzeLFi/PhD394q841adKkTJw4sbz/9ldiAgAAAMDm2qpHI8ePH5+ZM2fm4Ycfzp577vmeYwcPHpwkefnll5Mk9fX1WbFiRYsxb++/23vFqqury1+h7au0AQAAANgaWxSElUqljB8/PnfffXceeuih9O/f/30/8/TTTydJevXqlSRpaGjIs88+m5UrV5bHzJ49OzU1NRk4cOCWlAMAAAAAm22LHo0cN25cZsyYkZ/85Cfp2rVr+Z1e3bp1S+fOnbN48eLMmDEjxx13XHr06JFnnnkm559/fo455pgcdNBBSZLhw4dn4MCBOe2003LdddelsbExl156acaNG5fq6uq2v0IAAAAAyBauCLvllluyevXqDBkyJL169Spv3//+95MkHTt2zIMPPpjhw4dnwIABueCCCzJmzJjcd9995WO0b98+M2fOTPv27dPQ0JBPf/rTOf300zNlypS2vTIAAAAA+CtbtCKsVCq9Z3+fPn0yd+7c9z1O375989Of/nRLTg0AAAAArbJVL8sHAAAAgJ2NIAwAAACAQhCEAQAAAFAIgjAAAAAACkEQBgAAAEAhCMIAAAAAKARBGAAAAACFIAgDAAAAoBA6VLoAgLbW75L7K11Cq/z+mtGVLgEAYIdknge0lhVhAAAAABSCIAwAAACAQhCEAQAAAFAIgjAAAAAACkEQBgAAAEAhCMIAAAAAKARBGAAAAACFIAgDAAAAoBAEYQAAAAAUgiAMAAAAgEIQhAEAAABQCIIwAAAAAApBEAYAAABAIQjCAAAAACgEQRgAAAAAhSAIAwAAAKAQBGEAAAAAFIIgDAAAAIBCEIQBAAAAUAiCMAAAAAAKQRAGAAAAQCEIwgAAAAAoBEEYAAAAAIUgCAMAAACgEARhAAAAABSCIAwAAACAQhCEAQAAAFAIgjAAAAAACkEQBgAAAEAhCMIAAAAAKARBGAAAAACFIAgDAAAAoBAEYQAAAAAUgiAMAAAAgEIQhAEAAABQCIIwAAAAAApBEAYAAABAIQjCAAAAACgEQRgAAAAAhSAIAwAAAKAQBGEAAAAAFIIgDAAAAIBCEIQBAAAAUAiCMAAAAAAKQRAGAECmTp2aI444Il27dk3Pnj1z0kknZdGiRS3GDBkyJFVVVS22z372sy3GLF26NKNHj86uu+6anj175qKLLsr69eu356UAALyrDpUuAACAyps7d27GjRuXI444IuvXr8+XvvSlDB8+PC+88EK6dOlSHnfOOedkypQp5f1dd921/POGDRsyevTo1NfX57HHHsvy5ctz+umnZ5dddsnVV1+9Xa8HAGBTBGEAAGTWrFkt9u+444707NkzCxcuzDHHHFNu33XXXVNfX7/JYzzwwAN54YUX8uCDD6auri6HHHJIrrrqqlx88cW58sor07Fjx216DQAA78ejkQAAvMPq1auTJLW1tS3a77rrruy+++458MADM2nSpPzlL38p982fPz+DBg1KXV1duW3EiBFpamrK888/v30KBwB4D1aEAQDQwsaNGzNhwoQcddRROfDAA8vt//Iv/5K+ffumd+/eeeaZZ3LxxRdn0aJF+fGPf5wkaWxsbBGCJSnvNzY2bvJczc3NaW5uLu83NTW19eUAAJQJwgAAaGHcuHF57rnn8vOf/7xF+7nnnlv+edCgQenVq1eGDh2axYsX58Mf/vBWnWvq1KmZPHlyq+oFANhcHo0EAKBs/PjxmTlzZh5++OHsueee7zl28ODBSZKXX345SVJfX58VK1a0GPP2/ru9V2zSpElZvXp1eVu2bFlrLwEA4F0JwgAASKlUyvjx43P33XfnoYceSv/+/d/3M08//XSSpFevXkmShoaGPPvss1m5cmV5zOzZs1NTU5OBAwdu8hjV1dWpqalpsQEAbCsejQQAIOPGjcuMGTPyk5/8JF27di2/06tbt27p3LlzFi9enBkzZuS4445Ljx498swzz+T888/PMccck4MOOihJMnz48AwcODCnnXZarrvuujQ2NubSSy/NuHHjUl1dXcnLAwBIYkUYAABJbrnllqxevTpDhgxJr169ytv3v//9JEnHjh3z4IMPZvjw4RkwYEAuuOCCjBkzJvfdd1/5GO3bt8/MmTPTvn37NDQ05NOf/nROP/30TJkypVKXBQDQghVhAACkVCq9Z3+fPn0yd+7c9z1O375989Of/rStygIAaFNWhAEAAABQCIIwAAAAAApBEAYAAABAIQjCAAAAACgEQRgAAAAAhSAIAwAAAKAQBGEAAAAAFIIgDAAAAIBCEIQBAAAAUAiCMAAAAAAKQRAGAAAAQCEIwgAAAAAoBEEYAAAAAIUgCAMAAACgEARhAAAAABSCIAwAAACAQtiiIGzq1Kk5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AAAACkEQBgAAAEAhCMIAAAAAKARBGAAAAACFIAgDAAAAoBAEYQAAAAAUQpsHYVdeeWWqqqpabAMGDCj3v/nmmxk3blx69OiR3XbbLWPGjMmKFSvaugwAAAAAaGGbrAg74IADsnz58vL285//vNx3/vnn57777ssPf/jDzJ07N6+++mpOPvnkbVEGAAAAAJR12CYH7dAh9fX172hfvXp1brvttsyYMSPHHntskuT222/P/vvvn8cffzxHHnnktigHAAAAALbNirCXXnopvXv3zoc+9KGMHTs2S5cuTZIsXLgw69aty7Bhw8pjBwwYkL322ivz589/1+M1NzenqampxQYAAAAAW6LNV4QNHjw4d9xxR/bbb78sX748kydPzj/8wz/kueeeS2NjYzp27Jju3bu3+ExdXV0aGxvf9ZhTp07N5MmT27pUALaBfpfcX+kSWuX314yudAkAAMA20uZB2KhRo8o/H3TQQRk8eHD69u2bH/zgB+ncufNWHXPSpEmZOHFieb+pqSl9+vRpda0AAAAAFMc2eTTyr3Xv3j377rtvXn755dTX1+ett97KqlWrWoxZsWLFJt8p9rbq6urU1NS02AAAAABgS2zzIGzNmjVZvHhxevXqlcMOOyy77LJL5syZU+5ftGhRli5dmoaGhm1dCgAAAAAF1uaPRl544YU5/vjj07dv37z66qu54oor0r59+5x66qnp1q1bzj777EycODG1tbWpqanJ5z73uTQ0NPjGSAAAAAC2qTYPwl555ZWceuqpee2117LHHnvk6KOPzuOPP5499tgjSXLDDTekXbt2GTNmTJqbmzNixIh885vfbOsyAAAAAKCFNg/Cvve9771nf6dOnTJt2rRMmzatrU8NAAAAAO9qm78jDAAAAAB2BIIwAAA2y5VXXpmqqqoW24ABA8r9b775ZsaNG5cePXpkt912y5gxY7JixYoKVgwA0JIgDACAzXbAAQdk+fLl5e3nP/95ue/888/Pfffdlx/+8IeZO3duXn311Zx88skVrBYAoKU2f0cYAAB/vzp06JD6+vp3tK9evTq33XZbZsyYkWOPPTZJcvvtt2f//ffP448/7hvCAYAdghVhAABstpdeeim9e/fOhz70oYwdOzZLly5NkixcuDDr1q3LsGHDymMHDBiQvfbaK/Pnz69UuQAALVgRBgDAZhk8eHDuuOOO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33XM23Ogv3bjjTemX79+5f23V0JdffXVqaurS/fu3TNlypSsX78+F110UWpra7Pnnnvm9ttvf8fxf/Ob3+SjH/1oOnXqlAMPPDBz585t0f/cc89l1KhR2W233VJXV5fTTjstf/rTn8r9Q4YMyfjx4zNhwoTsvvvuGTFixCavY+PGjZkyZUr23HPPVFdX55BDDsmsWbPK/VVVVVm4cGGmTJmSqqqqFnPDv/Zu870rr7wyd955Z37yk5+Un2p45JFHkiTLli3LJz/5yXTv3j21tbU58cQT8/vf//4d92/y5MnZY489UlNTk89+9rMtQj3zTNj+BGFART333HN57LHH0rFjxyTJ1KlT8+1vfzvTp0/P888/n/PPPz+f/vSnM3fu3PTp0yf/9//+3yTJokWLsnz58nzjG9/YovNdeeWV+cQnPpFnn302n/nMZ5L89/8S3nPPPZk5c2ZmzpyZuXPnlh8nWL58eU499dR85jOfyYsvvphHHnkkJ598ckqlUhveBQCAttO+fftcffXVufnmm/PKK6+06lgPPfRQXn311cybNy9f//rXc8UVV+Qf//Ef84EPfCALFizIZz/72fzP//k/33Geiy66KBdccEF+9atfpaGhIccff3xee+21JMmqVaty7LHH5tBDD82TTz6ZWbNmZcWKFfnkJz/Z4hh33nlnOnbsmF/84heZPn36Juv7xje+ka997Wu5/vrr88wzz2TEiBE54YQT8tJLLyX577ncAQcckAsuuCDLly/PhRde+I5jvNd878ILL8wnP/nJ8hMNy5cvz0c/+tGsW7cuI0aMSNeuXfPoo4/mF7/4RXbbbbeMHDmyRdA1Z86c8jG/+93v5sc//nEmT578vucFtqESwHZ0xhlnlNq3b1/q0qVLqbq6upSk1K5du9KPfvSj0ptvvlnaddddS4899liLz5x99tmlU089tVQqlUoPP/xwKUnpz3/+c4sxffv2Ld1www0t2g4++ODSFVdcUd5PUpowYUKLMVdccUVp1113LTU1NZXbLrrootLgwYNLpVKptHDhwlKS0u9///tWXjkAwLZ3xhlnlE488cRSqVQqHXnkkaXPfOYzpVKpVLr77rtLf/3PvyuuuKJ08MEHt/jsDTfcUOrbt2+LY/Xt27e0YcOGctt+++1X+od/+Ify/vr160tdunQpffe73y2VSqXSkiVLSklK11xzTXnMunXrSnvuuWfp2muvLZVKpdJVV11VGj58eItzL1u2rJSktGjRolKpVCp97GMfKx166KHve729e/cuffWrX23RdsQRR5T+1//6X+X9v50T/q33m+/99T1923e+853SfvvtV9q4cWO5rbm5udS5c+fSz372s/LnamtrS2vXri2PueWWW0q77bZbacOGDeaZUCEdKpbAAYX18Y9/PLfcckvWrl2bG264IR06dMiYMWPy/PPP5y9/+Uv+x//4Hy3Gv/XWWzn00EPb5NyHH374O9r69euXrl27lvd79eqVlStXJkkOPvjgDB06NIMGDcqIESMyfPjw/NM//VM+8IEPtEk9AADbyrXXXptjjz12k6ugNtcBBxyQdu3+/weJ6urqcuCBB5b327dvnx49epTnTm9raGgo/9yhQ4ccfvjhefHFF5Mkv/71r/Pwww9nt912e8f5Fi9enH333TdJcthhh71nbU1NTXn11Vdz1FFHtWg/6qij8utf/3ozr3Dr5nu//vWv8/LLL7eYQybJm2++mcWLF7c49q677lreb2hoyJo1a7Js2TLzTKgQQRiw3XXp0iV77713kuTf//3fc/DBB+e2224rT6ruv//+fPCDH2zxmerq6vc8Zrt27d6xjHxTL8Pv0qXLO9p22WWXFvtVVVXZuHFjkv+e3M2ePTuPPfZYHnjggdx888358pe/nAULFqR///7vc6UAAJVzzDHHZMSIEZk0aVL5vapv29y506bmSe81d9oca9asyfHHH59rr732HX29evUq/7ypedu2sDXzvTVr1uSwww7LXXfd9Y6+PfbYY5udF2g97wgDKqpdu3b50pe+lEsvvTQDBw5MdXV1li5dmr333rvF1qdPnyQpv0tsw4YNLY6zxx57ZPny5eX9pqamLFmypE1qrKqqylFHHZXJkyfnV7/6VTp27Ji77767TY4NALAtXXPNNbnvvvsyf/78Fu177LFHGhsbW4RhTz/9dJud9/HHHy//vH79+ixcuDD7779/kuQjH/lInn/++fTr1+8dc74tCb9qamrSu3fv/OIXv2jR/otf/CIDBw7conrfa77XsWPHd8w9P/KRj+Sll15Kz54933EN3bp1K4/79a9/nf/6r/8q7z/++OPZbbfdynNb80zY/gRhQMX98z//c9q3b59vfetbufDCC3P++efnzjvvzOLFi/PUU0/l5ptvzp133pkk6du3b6qqqjJz5sz88Y9/zJo1a5Ikxx57bL7zne/k0UcfzbPPPpszzjgj7du3b3VtCxYsyNVXX50nn3wyS5cuzY9//OP88Y9/LE/kAAB2ZIMGDcrYsWNz0003tWgfMmRI/vjHP+a6667L4sWLM23atPzHf/xHm5132rRpufvuu/Ob3/wm48aNy5///OfyFxWNGzcur7/+ek499dQ88cQTWbx4cX72s5/lrLPOekfg9H4uuuiiXHvttfn+97+fRYsW5ZJLLsnTTz+dL3zhC5t9jPeb7/Xr1y/PPPNMFi1alD/96U9Zt25dxo4dm9133z0nnnhiHn300SxZsiSPPPJIPv/5z7f44oC33norZ599dl544YX89Kc/zRVXXJHx48enXbt25plQIR6NBCquQ4cOGT9+fK677rosWbIke+yxR6ZOnZrf/e536d69ez7ykY/kS1/6UpLkgx/8YCZPnpxLLrkkZ511Vk4//fTccccdmTRpUpYsWZJ//Md/TLdu3XLVVVe1yYqwmpqazJs3LzfeeGOamprSt2/ffO1rX8uoUaNafWwAgO1hypQp+f73v9+ibf/99883v/nNXH311bnqqqsyZsyYXHjhhbn11lvb5JzXXHNNrrnmmjz99NPZe++9c++992b33XdPkvIqrosvvjjDhw9Pc3Nz+vbtm5EjR7Z4H9nm+PznP5/Vq1fnggsuyMqVKzNw4MDce++92WeffTb7GO833zvnnHPyyCOP5PDDD8+aNWvy8MMPZ8iQIZk3b14uvvjinHzyyXnjjTfywQ9+MEOHDk1NTU352EOHDs0+++yTY445Js3NzTn11FNz5ZVXbtZ5gW2jqvS3D4YDAAAArXLmmWdm1apVueeeeypdCvBXPBoJAAAAQCEIwgAAAAAoBI9GAgAAAFAIVoQBAAAAUAiCMAAAAAAKQRAGAAAAQCEIwgAAAAAoBEEYAAAAAIUgCAMAAACgEARhAAAAABSCIAwAAACAQhCEAQAAAFAI/y8NUMx25HK+JwAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Test the agent for 1000 episodes\n", "test_returns = []\n", "test_steps = []\n", "for episode in range(1000):\n", " return_episode, nb_steps = agent.test()\n", " test_returns.append(return_episode)\n", " test_steps.append(nb_steps)\n", "print(\"Test performance\", np.mean(test_returns))\n", "\n", "plt.figure(figsize=(15, 6))\n", "plt.subplot(121)\n", "plt.hist(test_returns)\n", "plt.xlabel(\"Returns\")\n", "plt.subplot(122)\n", "plt.hist(test_steps)\n", "plt.xlabel(\"Number of steps\")\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "env = gym.make(\"Taxi-v3\", render_mode=\"rgb_array_list\")\n", "recorder = GymRecorder(env)\n", "agent.env = env\n", "\n", "return_episode, nb_steps = agent.test(recorder)\n", "\n", "video = \"videos/taxi-trained-td.gif\"\n", "recorder.make_video(video)\n", "ipython_display(video, loop=0, autoplay=1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Q:** Compare the performance of Q-learning to online MC. Experiment with parameters (gamma, epsilon, alpha, etc.)." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "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9dVX3VpgWV988YUWLlyoZ555pty5Dz74QIWFhXrzzTd11lln6aqrrtLtt9+uZ5991tnmhRde0LBhw3T33XerY8eOeuSRR9SjRw/9/e9/91jNAAAAQEWCZHNOK63p7qh5ilKBGSJJShSj4QAACCR1CuFWr16tCy64QJL073//WykpKdq1a5feffddvfjii24t0CErK0vjx4/Xe++9p8jIyHLnV6xYof79+ys0NNR5bOjQodq0aZOOHj3qbDN48GCX5w0dOlQrVqyo9LoFBQXKy8tzuXmSYXi0ewAAAPiIcdobvUTlymKYspoWHVZNlw4xdFDFo+Eco+jczTRNj/QLAEBDV6cQ7uTJk4qOLn6jsHDhQl1xxRWyWCzq06ePdu3a5dYCpeI3AmPHjtWECRPUq1evCttkZmYqJSXF5ZjjcWZmZpVtHOcrMmPGDMXGxjpvGRkZZ/JSfOKvl3TydQkAAAA4jSNEO6RYmbV4W36wZP04T4VwAADAM+oUwrVp00Zz5szRnj17tGDBAg0ZMkSSlJ2drZiYmBr3c99998kwjCpvGzdu1EsvvaRjx45p6tSpdSn3jEydOlW5ubnO2549e7xeAwAAAOof586oNdyUwcExddXxfAAAEBiC6/KkadOm6ZprrtHkyZM1aNAg9e3bV1LxqLju3bvXuJ+77rpLY8eOrbJNq1at9NVXX2nFihUKCwtzOderVy9de+21euedd5SamqqsrCyX847Hqampzj8rauM4X5GwsLBy1wUAAADOVG13RnU4YMZLktKNw26uCAAAeFKdQrgrr7xS/fr104EDB9StWzfn8UGDBunyyy+vcT9JSUlKSkqqtt2LL76oRx991Pl4//79Gjp0qD766CP17t1bktS3b1898MADKioqUkhI8WK1ixYtUvv27dW4cWNnm8WLF+vOO+909rVo0SJniFhfGZKeGdNNV/9jpf4ypL2vywEAAICkZOVIqnsIl0YIBwBAQKlTCCcVjyo7fQTZueeee8YFVaRZs2Yujxs1aiRJat26tZo2bSpJuuaaa/TQQw9p3Lhxuvfee7V+/Xq98MILeu6555zPu+OOO3ThhRdq5syZGjlypD788EP99NNPev311z1Stz/p3CRW66YNkcXCzg8AAMA9Tp06JdM0nZtm7dq1S5999pk6derkXK4ElXOMhDuomu2M6nDATJAkpRlH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76OkpATjx493d9WIiIh8jiRJ7q6CV2EQjoiIiIh8xqhRo3D27Fm8+OKLyMnJQbdu3bB8+XKnxRqIiIiIGhuDcERERETkU6ZMmYIpU6a4uxpEREREDjgnHBERERERERERUQNjJlwdCSEAAIWFhW6uCREREXkTW9/B1pcgz8N+HhEREV2K2vbzGISro6KiIgBAfHy8m2tCRERE3qioqAghISHurga5wH4eERERXY6a+nmS4L9j68RsNuP06dMICgpqkFVACgsLER8fjxMnTiA4OLjez+9p2F7fxvb6viutzWyvb2vo9gohUFRUhLi4OCgUnBHEE7GfV7/YXt93pbWZ7fVtbK9v85R+HjPh6kihUKBZs2YNfj/BwcFXxAvBhu31bWyv77vS2sz2+raGbC8z4Dwb+3kNg+31fVdam9le38b2+jZ39/P4b1giIiIiIiIiIqIGxiAcERERERERERFRA2MQzsNotVrMnDkTWq3W3VVpFGyvb2N7fd+V1ma217ddae2lxnelPcfYXt93pbWZ7fVtbK9v85T2cmEGIiIiIiIiIiKiBsZMOCIiIiIiIiIiogbGIBwREREREREREVEDYxCOiIiIiIiIiIiogTEIR0RERERERERE1MAYhPMwH374IVq2bAk/Pz+kpKRgy5Yt7q5SjWbNmoVevXohKCgITZo0wYgRI5CRkeFQZsCAAZAkyeHnoYcecihz/PhxDBs2DP7+/mjSpAmeeuopGI1GhzJr1qxBjx49oNVq0aZNG3zxxRcN3TwnL730klNbOnToIO8vLy/H5MmTERERgcDAQIwcORK5ubkO5/CWtgJAy5YtndorSRImT54MwPuv7dq1a3HTTTchLi4OkiTh559/dtgvhMCLL76I2NhY6HQ6pKWl4dChQw5l8vLyMGbMGAQHByM0NBT3338/iouLHcrs2bMH/fr1g5+fH+Lj4/HWW2851WXx4sXo0KED/Pz80KVLFyxbtqxR22swGDB9+nR06dIFAQEBiIuLw7333ovTp087nMPVc2L27Nle114AGDdunFNbhgwZ4lDGV64vAJevZUmS8Pbbb8tlvOn61ubzpzHfk73xM5walzc+R9jPYz/Pm68t+3mV7WU/j/08wLuur8/28wR5jEWLFgmNRiPmzZsn9u3bJyZMmCBCQ0NFbm6uu6tWrcGDB4v58+eL9PR0sWvXLnHD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vp4B77i+VX3+NNZ7si98hlPD8oXnCPt57OcBvnVt2c9jP88Xry/Afp6n9/MYhPMQGo0GycnJWLlypbzNbDZj5cqVSE1NdWPNaiaEwJQpU/DTTz9h1apVTumrruzatQsAEBsbCwBITU3F3r17Hd4EbR8KnTp1ksvYPz62Mu5+fIqLi5GVlYXY2FgkJydDrVY71DMjIwPHjx+X6+mtbZ0/fz6aNGmCYcOGVVvOl65tq1atEBMT41C3wsJCbN682eF65ufnY/v27XKZVatWwWw2yx3V1NRUrF27FgaDQS7z559/on379ggLC5PLeMJjYOuYHTp0CCtWrEBERESNx+zatQsKhUJO5/em9l7s5MmTOH/+vMPz15eur83nn3+O5ORkJCUl1VjWk69vTZ8/jfWe7M2f4dQ4vPk5wn4e+3n2fOnasp/Hfp6vXV8b9vM8vJ9X56UcqMEsWrRIaLVa8cUXX4j9+/eLiRMnitDQUIeVPDzRpEmTREhIiFizZo3DUselpaVCCCEyMzPFK6+8IrZt2yaOHDkifvnlF5GQkCCuueYa+Ry2pYOvv/56sWvXLrF8+XIRFRXlcungp556Shw4cEB8+OGHblnO/YknnhBr1qwRR44cEevXrxdpaWkiMjJSnDlzRghhWSa5efPmYtWqVWLbtm0iNTVVpKamemVbbUwmk2jevLmYPn26w3ZfuLZFRUVi586dYufOnQKAmDNnjti5c6e8StTs2bNFaGio+OWXX8SePXvE8OHDXS5d3717d7F582axbt060bZtW4elzfPz80V0dLS45557RHp6uli0aJHw9/d3WupbpVKJd955Rxw4cEDMnDmzQZb6rq69FRUV4uabbxbNmjUTu3btcng921YP2rBhg3jvvffErl27RFZWlvj6669FVFSUuPfee72uvUVFReLJJ58UGzduFEeOHBErVqwQPXr0EG3bthXl5eXyOXzl+toUFBQIf39/MXfuXKfjve361vT5I0TjvSd762c4NR5vfY6wn8d+njdfW/bz2M9jP6+St11fX+3nMQjnYT744APRvHlzodFoRO/evcWmTZvcXaUaAXD5M3/+fCGEEMePHxfXXHONCA8PF1qtVrRp00Y89dRToqCgwOE8R48eFUOHDhU6nU5ERkaKJ554QhgMBocyq1evFt26dRMajUYkJCTI99GYRo0aJWJjY4VGoxFNmzYVo0aNEpmZmfL+srIy8fDDD4uwsDDh7+8vbrnlFpGdne1wDm9pq83vv/8uAIiMjAyH7b5wbVevXu3y+Tt27FghhGX5+hdeeEFER0cLrVYrBg0a5PQ4nD9/XowePVoEBgaK4OBgMX78eFFUVORQZvfu3aJv375Cq9WKpk2bitmzZzvV5bvvvhPt2rUTGo1GJCYmiqVLlzZqe48cOVLl63n16tVCCCG2b98uUlJSREhIiPDz8xMdO3YUb7zxhkNnxlvaW1paKq6//noRFRUl1Gq1aNGihZgwYYLTh6mvXF+bTz75ROh0OpGfn+90vLdd35o+f4Ro3Pdkb/wMp8bljc8R9vPYz/Pma8t+Hvt57OdV8rbr66v9PMnaOCIiIiIiIiIiImognBOOiIiIiIiIiIiogTEIR0RERERERERE1MAYhCMiIiIiIiIiImpgDMIRERERERERERE1MAbhiIiIiIiIiIiIGhiDcERERERERERERA2MQTgiIiIiIiIiIqIGxiAcEVEVjh49CkmSsGvXrga7j3HjxmHEiBENdn4iIiIicsZ+HhG5A4NwROSzxo0bB0mSnH6GDBlSq+Pj4+ORnZ2Nzp07N3BNiYiIiKgu2M8jIm+kcncFiIga0pAhQzB//nyHbVqttlbHKpVKxMTENES1iIiIiOgysZ9HRN6GmXBE5NO0Wi1iYmIcfsLCwgAAkiRh7ty5GDp0KHQ6HRISEvD999/Lx148TOHChQsYM2YMoqKioNPp0LZtW4eO3969ezFw4EDodDpERERg4sSJKC4ulvebTCZMmzYNoaGhiIiIwNNPPw0hhEN9zWYzZs2ahVatWkGn0yEpKcmhTjXVgYiIiOhKwX4eEXkbBuGI6Ir2wgsvYOTIkdi9ezfGjBmDO++8EwcOHKiy7P79+/Hbb7/hwIEDmDt3LiIjIwEAJSUlGDx4MMLCwrB161YsXrwYK1aswJQpU+Tj3333XXzxxReYN28e1q1bh7y8PPz0008O9zFr1ix8+eWX+Pjjj7Fv3z48/vjjuPvuu/HXX3/VWAciIiIiqsR+HhF5HEFE5KPGjh0rlEqlCAgIcPh5/fXXhRBCABAPPfSQwzEpKSli0qRJQgghjhw5IgCInTt3CiGEuOmmm8T48eNd3tenn34qwsLCRHFxsbxt6dKlQqFQiJycHCGEELGxseKtt96S9xsMBtGsWTMxfPhwIYQQ5eXlwt/fX2zYsMHh3Pfff78YPXp0jXUgIiIiulKwn0dE3ohzwhGRT7v22msxd+5ch23h4eHy36mpqQ77UlNTq1wla9KkSRg5ciR27NiB66+/HiNGjECfPn0AAAcOHEBSUhICAgLk8ldffTXMZjMyMjLg5+eH7OxspKSkyPtVKhV69uwpD1XIzMxEaWkprrvuOof7raioQPfu3WusAxEREdGVhP08IvI2DMIRkU8LCAhAmzZt6uVcQ4cOxbFjx7Bs2TL8+eefGDRoECZPnox33nmnXs5vm1dk6dKlaNq0qcM+2yTDDV0HIiIiIm/Bfh4ReRvOCUdEV7RNmzY53e7YsWOV5aOiojB27Fh8/fXXeP/99/Hpp58CADp27Ijdu3ejpKRELrt+/XooFAq0b98eISEhiI2NxebNm+X9RqMR27dvl2936tQJWq0Wx48fR5s2bRx+4uPja6wDEREREVViP4+IPA0z4YjIp+n1euTk5DhsU6lU8iS3ixcvRs+ePdG3b19888032LJlCz7//HOX53rxxReRnJyMxMRE6PV6LFmyRO7IjRkzBjNnzsTYsWPx0ksv4ezZs5g6dSruueceREdHAwAeffRRzJ49G23btkWHDh0wZ84c5Ofny+cPCgrCk08+iccffxxmsxl9+/ZFQUEB1q9fj+DgYIwdO7baOhARERFdSdjPIyJvwyAcEfm05cuXIzY21mFb+/btcfDgQQDAyy+/jEWLFuHhhx9GbGwsFi5ciE6dOrk8l0ajwYwZM3D06FHodDr069cPixYtAgD4+/vj999/x6OPPopevXrB398fI0eOxJw5c+Tjn3jiCWRnZ2Ps2LFQKBS47777cMstt6CgoEAu8+qrryIqKgqzZs3C4cOHERoaih49euDZZ5+tsQ5EREREVxL284jI20jCNlMkEdEVRpIk/PTTTxgxYoS7q0JERERE9Yj9PCLyRJwTjoiIiIiIiIiIqIExCEdERERERERERNTAOByViIiIiIiIiIiogTETjoiIiIiIiIiIqIExCEdERERERERERNTAGIQjIiIiIiIiIiJqYAzCERERERERERERNTAG4YiIiIiIiIiIiBoYg3BEREREREREREQNjEE4IiIiIiIiIiKiBsYgHBERERERERERUQNjEI6IiIiIiIiIiKiB/T9vPc+/yPDUkgAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Parameters\n", "gamma = 1.0\n", "epsilon = 1.0\n", "decay_epsilon = 1e-5\n", "alpha = 0.05\n", "nb_episodes = 20000\n", "\n", "# Create the environment\n", "env = gym.make(\"Taxi-v3\")\n", "\n", "# Create the agent\n", "agent = QLearningAgent(env, gamma, epsilon, decay_epsilon, alpha)\n", "\n", "# Train the agent \n", "returns, steps = agent.train(nb_episodes)\n", "\n", "# Plot training returns\n", "plt.figure(figsize=(15, 6))\n", "plt.subplot(121)\n", "plt.plot(returns)\n", "plt.plot(running_average(returns, 1000))\n", "plt.xlabel(\"Episodes\")\n", "plt.ylabel(\"Returns\")\n", "plt.subplot(122)\n", "plt.plot(steps)\n", "plt.plot(running_average(steps, 1000))\n", "plt.xlabel(\"Episodes\")\n", "plt.ylabel(\"steps\")\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Test performance 7.922\n" ] }, { "data": { "image/png": "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/eEAAAAAFEBF3hEGAAAAADuaIAwAAACAQhCEAQAAAFAIgjAAAAAACkEQtou65pprUlVVlQkTJlS6lF3Kv/3bv+XTn/50evTokc6dO2fgwIF57LHHKl3WLuHtt9/OZZddln79+qVz58758Ic/nKuuuiq+b2PT5s+fnxNPPDENDQ2pqqrKPffc02J/qVTK5Zdfnl69eqVz584ZPnx4nn/++coUuxN6v/u3YcOGXHTRRRk4cGC6dOmShoaGfOYzn8krr7xSuYJ3Mpv78/e3PvvZz6aqqio33njjDqsPKkUfsO30AVtHH9A6+oDW0Qe0zpbcv+eeey4nnXRSunXrli5duuSII47I8uXLd3yxO6HN3b+1a9dm/Pjx2XvvvdO5c+cMGDAgM2bM2KE1CsJ2QY8++mi+9a1v5ZBDDql0KbuUv/zlLznqqKOy22675V//9V/z7LPP5mtf+1o+8IEPVLq0XcK1116bW265Jf/rf/2vPPfcc7n22mtz3XXX5eabb650aTuldevWZdCgQZk+ffom91933XW56aabMmPGjCxatChdunTJiBEj8sYbb+zgSndO73f//vrXv+bxxx/PZZddlscffzw//vGPs2TJkpx00kkVqHTntLk/f++4++67s3DhwjQ0NOygyqBy9AGtow/YOvqA1tEHtI4+oHU2d/+WLl2ao48+Ov37989DDz2UJ598Mpdddlk6deq0gyvdOW3u/k2cODGzZ8/O//k//yfPPfdcJkyYkPHjx+fee+/dcUWW2KW8/vrrpf322680Z86c0sc//vHSF77whUqXtMu46KKLSkcffXSly9hlnXDCCaVzzjmnxbZTTz21NGbMmApVtOtIUrr77rvL6xs3bizV19eX/uf//J/lbatXry5VV1eXvvvd71agwp3b39+/Tfn1r39dSlL64x//uGOK2oW81/17+eWXSx/84AdLTz/9dKlPnz6lG264YYfXBjuSPqB19AHbTh/QOvqA1tEHtM6m7t+nPvWp0qc//enKFLSL2dT9O+igg0pTp05tse0jH/lI6ctf/vIOq8uMsF3MuHHjcsIJJ2T48OGVLmWXc++99+bwww/PP//zP6dnz54ZPHhw/vf//t+VLmuX8dGPfjRz587N73//+yTJb3/72/zyl7/MqFGjKlzZrmfZsmVpampq8fe4W7duGTJkSBYsWFDBynZda9asSVVVVbp3717pUnYJGzduzBlnnJFJkybloIMOqnQ5sEPoA1pHH9B29AFtTx+wdfQB227jxo25//77s//++2fEiBHp2bNnhgwZ8r6Pn9LSRz/60dx77735t3/7t5RKpTz44IP5/e9/n+OOO26H1SAI24V873vfy+OPP55p06ZVupRd0h/+8Ifccsst2W+//fKzn/0s559/fj7/+c/nzjvvrHRpu4SLL744p512Wvr375/ddtstgwcPzoQJEzJmzJhKl7bLaWpqSpLU1dW12F5XV1fex5Z74403ctFFF+X0009PTU1NpcvZJVx77bXp0KFDPv/5z1e6FNhh9AGtow9oO/qAtqUP2Hr6gG23atWqrF27Ntdcc01GjhyZn//85/nHf/zHnHrqqZk3b16ly9sl3HzzzRkwYED23nvvdOzYMSNHjsz06dNzzDHH7LAaOuywM9EqL730Ur7whS9kzpw5nj3eRhs3bszhhx+eq6++OkkyePDgPP3005kxY0bOPPPMCle38/vBD36Qu+66KzNnzsxBBx2UJ554IhMmTEhDQ4P7R8Vs2LAhn/zkJ1MqlXLLLbdUupxdwuLFi/ONb3wjjz/+eKqqqipdDuww+oDW0QewM9IHbD19QOts3LgxSXLyySfnggsuSJIceuiheeSRRzJjxox8/OMfr2R5u4Sbb745CxcuzL333ps+ffpk/vz5GTduXBoaGnbYk29mhO0iFi9enFWrVuUjH/lIOnTokA4dOmTevHm56aab0qFDh7z99tuVLnGn16tXrwwYMKDFtgMPPNC3e2yhSZMmlX8bPHDgwJxxxhm54IILzFDcBvX19UmSlStXtti+cuXK8j42753m949//GPmzJnjt8Bb6OGHH86qVauyzz77lP89+eMf/5gvfvGL6du3b6XLg+1GH9A6+oC2ow9oG/qAbaMPaJ0999wzHTp08O/JNvr3f//3XHLJJfn617+eE088MYccckjGjx+fT33qU7n++ut3WB1mhO0ihg0blqeeeqrFtrPPPjv9+/fPRRddlPbt21eosl3HUUcdlSVLlrTY9vvf/z59+vSpUEW7lr/+9a9p165ldt6+ffvyb0XYcv369Ut9fX3mzp2bQw89NEnS3NycRYsW5fzzz69scbuId5rf559/Pg8++GB69OhR6ZJ2GWeccca7fts2YsSInHHGGTn77LMrVBVsf/qA1tEHtB19QOvpA7adPqB1OnbsmCOOOMK/J9tow4YN2bBhQ8X/PRGE7SK6du2agw8+uMW2Ll26pEePHu/azqZdcMEF+ehHP5qrr746n/zkJ/PrX/86t956a2699dZKl7ZLOPHEE/PVr341++yzTw466KD85je/yde//vWcc845lS5tp7R27dq88MIL5fVly5bliSeeSG1tbfbZZ59MmDAhX/nKV7LffvulX79+ueyyy9LQ0JBTTjmlckXvRN7v/vXq1Sv/9E//lMcffzyzZs3K22+/XX6nSm1tbTp27Fipsncam/vz9/f/Ydhtt91SX1+fAw44YEeXCjuMPqB19AFbRx/QOvqA1tEHtM7m7t+kSZPyqU99Ksccc0w+8YlPZPbs2bnvvvvy0EMPVa7oncjm7t/HP/7xTJo0KZ07d06fPn0yb968fPvb387Xv/71HVfkDvt+Strcxz/+8dIXvvCFSpexS7nvvvtKBx98cKm6urrUv3//0q233lrpknYZzc3NpS984QulffbZp9SpU6fShz70odKXv/zl0vr16ytd2k7pwQcfLCV513LmmWeWSqX/+Or0yy67rFRXV1eqrq4uDRs2rLRkyZLKFr0Teb/7t2zZsk3uS1J68MEHK136TmFzf/7+nq9Npyj0AdtOH7B19AGtow9oHX1A62zJ/bvttttK++67b6lTp06lQYMGle65557KFbyT2dz9W7FiRemss84qNTQ0lDp16lQ64IADSl/72tdKGzdu3GE1VpVKpVLbRmsAAAAAsPPxsnwAAAAACkEQBgAAAEAhCMIAAAAAKARBGAAAAACFIAgDAAAAoBAEYQAAAAAUgiAMAAAAgEIQhAEAANAmXnzxxVRVVeWJJ56odCllv/vd73LkkUemU6dOOfTQQytdDlBhgjBghzrrrLNSVVWVqqqq7LbbbunXr1++9KUv5Y033tiizz/00EOpqqrK6tWrt2+hAAC7oHd6rWuuuabF9nvuuSdVVVUVqqqypkyZki5dumTJkiWZO3fuVn/+rLPOyimnnNL2hQEVIQgDdriRI0dmxYoV+cMf/pAbbrgh3/rWtzJlypQdXseGDRt2+DkBALa3Tp065dprr81f/vKXSpfSZt58881t/uzSpUtz9NFHp0+fPunRo0cbVgXsigRhwA5XXV2d+vr69O7dO6ecckqGDx+eOXPmJEk2btyYadOmpV+/funcuXMGDRqUH/3oR0n+Y6r9Jz7xiSTJBz7wgVRVVeWss85KkvTt2zc33nhji/MceuihueKKK8rrVVVVueWWW3LSSSelS5cu+epXv5orrrgihx56aL7zne+kb9++6datW0477bS8/vrr5c/96Ec/ysCBA9O5c+f06NEjw4cPz7p167bfDQIAaIXhw4envr4+06ZNe88x7/RAf+vGG29M3759y+vvzIS6+uqrU1dXl+7du2fq1Kl56623MmnSpNTW1mbvvffO7bff/q7j/+53v8tHP/rRdOrUKQcffHDmzZvXYv/TTz+dUaNGZY899khdXV3OOOOM/PnPfy7vHzp0aMaPH58JEyZkzz33zIgRIzZ5HRs3bszUqVOz9957p7q6Ooceemhmz55d3l9VVZXFixdn6tSpqaqqatEb/q336veuuOKK3HnnnfnJT35SfqrhoYceSpK89NJL+eQnP5nu3buntrY2J598cl588cV33b8rr7wye+21V2pqavLZz362Rainz4QdTxAGVNTTTz+dRx55JB07dkySTJs2Ld/+9rczY8aMPPPMM7ngggvy6U9/OvPmzUvv3r3zf//v/02SLFmyJCtWrMg3vvGNrTrfFVdckX/8x3/MU089lXPOOSfJf/yW8J577smsWbMya9aszJs3r/w4wYoVK3L66afnnHPOyXPPPZeHHnoop556akqlUhveBQCAttO+fftcffXVufnmm/Pyyy+36lgPPPBAXnnllcyfPz9f//rXM2XKlPzDP/xDPvCBD2TRokX57Gc/m//+3//7u84zadKkfPGLX8xvfvObNDY25sQTT8yrr76aJFm9enWOPfbYDB48OI899lhmz56dlStX5pOf/GSLY9x5553p2LFjfvWrX2XGjBmbrO8b3/hGvva1r+X666/Pk08+mREjRuSkk07K888/n+Q/ermDDjooX/ziF7NixYpceOGF7zrG+/V7F154YT75yU+Wn2hYsWJFPvrRj2bDhg0ZMWJEunbtmocffji/+tWvsscee2TkyJEtgq65c+eWj/nd7343P/7xj3PllVdu9rzAdlQC2IHOPPPMUvv27UtdunQpVVdXl5KU2rVrV/rRj35UeuONN0q777576ZFHHmnxmbFjx5ZOP/30UqlUKj344IOlJKW//OUvLcb06dOndMMNN7TYNmjQoNKUKVPK60lKEyZMaDFmypQppd13373U3Nxc3jZp0qTSkCFDSqVSqbR48eJSktKLL77YyisHANj+zjzzzNLJJ59cKpVKpSOPPLJ0zjnnlEqlUunuu+8u/e1//6ZMmVIaNGhQi8/ecMMNpT59+rQ4Vp8+fUpvv/12edsBBxxQ+tjHPlZef+utt0pdunQpffe73y2VSqXSsmXLSklK11xzTXnMhg0bSnvvvXfp2muvLZVKpdJVV11VOu6441qc+6WXXiolKS1ZsqRUKpVKH//4x0uDBw/e7PU2NDSUvvrVr7bYdsQRR5T+x//4H+X1v+8J/97m+r2/vafv+M53vlM64IADShs3bixvW79+falz586ln/3sZ+XP1dbWltatW1cec8stt5T22GOP0ttvv63PhArpULEEDiisT3ziE7nllluybt263HDDDenQoUNGjx6dZ555Jn/961/zX//rf20x/s0338zgwYPb5NyHH374u7b17ds3Xbt2La/36tUrq1atSpIMGjQow4YNy8CBAzNixIgcd9xx+ad/+qd84AMfaJN6AAC2l2uvvTbHHnvsJmdBbamDDjoo7dr9vweJ6urqcvDBB5fX27dvnx49epR7p3c0NjaWf+7QoUMOP/zwPPfcc0mS3/72t3nwwQezxx57vOt8S5cuzf77758kOeyww963tubm5rzyyis56qijWmw/6qij8tvf/nYLr3Db+r3f/va3eeGFF1r0kEnyxhtvZOnSpS2Ovfvuu5fXGxsbs3bt2rz00kv6TKgQQRiww3Xp0iX77rtvkuRf/uVfMmjQoNx2223lpur+++/PBz/4wRafqa6uft9jtmvX7l3TyDf1MvwuXbq8a9tuu+3WYr2qqiobN25M8h/N3Zw5c/LII4/k5z//eW6++eZ8+ctfzqJFi9KvX7/NXCkAQOUcc8wxGTFiRCZPnlx+r+o7trR32lSf9H6905ZYu3ZtTjzxxFx77bXv2terV6/yz5vq27aHben31q5dm8MOOyx33XXXu/bttdde2+28QOt5RxhQUe3atcsll1ySSy+9NAMGDEh1dXWWL1+efffdt8XSu3fvJCm/S+ztt99ucZy99torK1asKK83Nzdn2bJlbVJjVVVVjjrqqFx55ZX5zW9+k44dO+buu+9uk2MDAGxP11xzTe67774sWLCgxfa99torTU1NLcKwJ554os3Ou3DhwvLPb731VhYvXpwDDzwwSfKRj3wkzzzzTPr27fuunm9rwq+ampo0NDTkV7/6VYvtv/rVrzJgwICtqvf9+r2OHTu+q/f8yEc+kueffz49e/Z81zV069atPO63v/1t/v3f/728vnDhwuyxxx7l3lafCTueIAyouH/+539O+/bt861vfSsXXnhhLrjggtx5551ZunRpHn/88dx888258847kyR9+vRJVVVVZs2alT/96U9Zu3ZtkuTYY4/Nd77znTz88MN56qmncuaZZ6Z9+/atrm3RokW5+uqr89hjj2X58uX58Y9/nD/96U/lRg4AYGc2cODAjBkzJjfddFOL7UOHDs2f/vSnXHfddVm6dGmmT5+ef/3Xf22z806fPj133313fve732XcuHH5y1/+Uv6ionHjxuW1117L6aefnkcffTRLly7Nz372s5x99tnvCpw2Z9KkSbn22mvz/e9/P0uWLMnFF1+cJ554Il/4whe2+Bib6/f69u2bJ598MkuWLMmf//znbNiwIWPGjMmee+6Zk08+OQ8//HCWLVuWhx56KJ///OdbfHHAm2++mbFjx+bZZ5/NT3/600yZMiXjx49Pu3bt9JlQIR6NBCquQ4cOGT9+fK677rosW7Yse+21V6ZNm5Y//OEP6d69ez7ykY/kkksuSZJ88IMfzJVXXpmLL744Z599dj7zmc/kjjvuyOTJk7Ns2bL8wz/8Q7p165arrrqqTWaE1dTUZP78+bnxxhvT3NycPn365Gtf+1pGjRrV6mMDAOwIU6dOzfe///0W2w488MB885vfzNVXX52rrroqo0ePzoUXXphbb721Tc55zTXX5JprrskTTzyRfffdN/fee2/23HPPJCnP4rroooty3HHHZf369enTp09GjhzZ4n1kW+Lzn/981qxZky9+8YtZtWpVBgwYkHvvvTf77bffFh9jc/3eueeem4ceeiiHH3541q5dmwcffDBDhw7N/Pnzc9FFF+XUU0/N66+/ng9+8IMZNmxYampqysceNmxY9ttvvxxzzDFZv359Tj/99FxxxRVbdF5g+6gq/f2D4QAAAECrnHXWWVm9enXuueeeSpcC/A2PRgIAAABQCIIwAAAAAArBo5EAAAAAFIIZYQAAAAAUgiAMAAAAgEIQhAEAAABQCIIwAAAAAApBEAYAAABAIQjCAAAAACgEQRgAAAAAhSAIAwAAAKAQBGEAAAAAFML/Byy74JYows9UAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "ename": "", "evalue": "", "output_type": "error", "traceback": [ "\u001b[1;31mThe Kernel crashed while executing code in the current cell or a previous cell. \n", "\u001b[1;31mPlease review the code in the cell(s) to identify a possible cause of the failure. \n", "\u001b[1;31mClick here for more info. \n", "\u001b[1;31mView Jupyter log for further details." ] } ], "source": [ "# Test the agent for 1000 episodes\n", "test_returns = []\n", "test_steps = []\n", "for episode in range(1000):\n", " return_episode, nb_steps = agent.test()\n", " test_returns.append(return_episode)\n", " test_steps.append(nb_steps)\n", "print(\"Test performance\", np.mean(test_returns))\n", "\n", "plt.figure(figsize=(15, 6))\n", "plt.subplot(121)\n", "plt.hist(test_returns)\n", "plt.xlabel(\"Returns\")\n", "plt.subplot(122)\n", "plt.hist(test_steps)\n", "plt.xlabel(\"Number of steps\")\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**A:** Q-learning accepts much higher values of gamma than MC, because the returns have a much lower variance. With the right parameters, Q-learning can learn much faster than MC." ] } ], "metadata": { "kernelspec": { "display_name": ".venv", "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.12.7" } }, "nbformat": 4, "nbformat_minor": 4 }