From b31e3a0b122e737e811775db0496d18ea4d8e8b2 Mon Sep 17 00:00:00 2001 From: Roger Labbe Date: Tue, 6 May 2014 10:01:27 -0500 Subject: [PATCH] I think outputs are now correctly removed before check in. --- Gaussians.ipynb | 14 +- Introduction.ipynb | 6 +- Kalman Filters.ipynb | 1993 +++++++++++-------------- Multidimensional Kalman Filters.ipynb | 882 +++++------ Untitled0.ipynb | 362 +++-- histogram_filter.ipynb | 307 +--- 6 files changed, 1516 insertions(+), 2048 deletions(-) diff --git a/Gaussians.ipynb b/Gaussians.ipynb index d20c160..5f1e9a3 100644 --- a/Gaussians.ipynb +++ b/Gaussians.ipynb @@ -1,7 +1,7 @@ { "metadata": { "name": "", - "signature": "sha256:7987517a7cb3fbbd21339999a44f481804ef1719e02dea0e02c2456b42d2d036" + "signature": "sha256:22eea384355b20ece229d2669aa6a64132be5fada2c2565b3598ab6846b58610" }, "nbformat": 3, "nbformat_minor": 0, @@ -48,7 +48,8 @@ ], "language": "python", "metadata": {}, - "outputs": [] + "outputs": [], + "prompt_number": "" }, { "cell_type": "code", @@ -63,7 +64,8 @@ ], "language": "python", "metadata": {}, - "outputs": [] + "outputs": [], + "prompt_number": "" }, { "cell_type": "markdown", @@ -107,7 +109,8 @@ ], "language": "python", "metadata": {}, - "outputs": [] + "outputs": [], + "prompt_number": "" }, { "cell_type": "markdown", @@ -135,7 +138,8 @@ ], "language": "python", "metadata": {}, - "outputs": [] + "outputs": [], + "prompt_number": "" }, { "cell_type": "markdown", diff --git a/Introduction.ipynb b/Introduction.ipynb index 75e3719..86e2612 100644 --- a/Introduction.ipynb +++ b/Introduction.ipynb @@ -1,6 +1,7 @@ { "metadata": { - "name": "" + "name": "", + "signature": "sha256:ba2750345b8a777403243fcf1a80cb6a58d7ee1074b9095134150e1679648635" }, "nbformat": 3, "nbformat_minor": 0, @@ -66,7 +67,8 @@ "input": [], "language": "python", "metadata": {}, - "outputs": [] + "outputs": [], + "prompt_number": "" } ], "metadata": {} diff --git a/Kalman Filters.ipynb b/Kalman Filters.ipynb index ecc08cd..b11dd91 100644 --- a/Kalman Filters.ipynb +++ b/Kalman Filters.ipynb @@ -1,1107 +1,888 @@ -{ - "metadata": { - "name": "" - }, - "nbformat": 3, - "nbformat_minor": 0, - "worksheets": [ - { - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#Kalman Filters\n", - "\n", - "\n", - "Now that we understand the histogram filter and gaussians we are prepared to implement a 1D Kalman filter. We will do this exactly as we did the histogram filter - rather than going into the theory we will just develop the code step by step. \n", - "\n", - "#Tracking A Dog\n", - "\n", - "As in the histogram chapter we will be tracking a dog in a long hallway at work. However, in our latest hackathon someone created an RFID tracker that provides a reasonable accurate position for our dog. Suppose the hallway is 100m long. The sensor returns the distance of the dog from the left end of the hallway. So, 23.4 would mean the dog is 23.4 meters from the left end of the hallway.\n", - "\n", - "Naturally, the sensor is not perfect. A reading of 23.4 could correspond to a real position of 23.7, or 23.0. However, it is very unlikely to correspond to a real position of say 47.6. Testing during the hackathon confirmed this result - the sensor is accurate, and while it had errors, the errors are small.\n", - "\n", - "Implementing and/or robustly modelling an RFID system is beyond the scope of this book, so we will write a very simple model. We will start with a simulation of the dog moving from left to right at a constant speed with some random noise added. " - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "import numpy.random as random\n", - "import math\n", - "\n", - "class DogSensor(object):\n", - " \n", - " def __init__(self, x0=0, velocity=1, noise=0.0):\n", - " \"\"\" x0 - initial position\n", - " velocity - (+=right, -=left)\n", - " noise - scaling factor for noise, 0== no noise\n", - " \"\"\"\n", - " self.x = x0\n", - " self.velocity = velocity\n", - " self.noise = math.sqrt(noise)\n", - "\n", - " def sense(self):\n", - " self.x = self.x + self.velocity\n", - " return self.x + random.randn() * self.noise\n" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 2 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The constructor (__init__()) initializes the DogSensor class with an initial position (x0), velocity (vel), and an noise scaling factor. The *sense()* function has the dog move by the set velocity and returns its new position, with noise added. If you look at the code for *sense()* you will see a call to *numpy.random.randn()*. This returns a number sampled from a normal distribution with a mean of 0.0. Let's look at some example output for that.\n", - "\n" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "for i in range(20):\n", - " print (\"%.4f\" % random.randn())," - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "-1.9126 0.6913 -0.5946 -1.2480 0.2278 0.7453 0.0081 0.6740 0.5837 0.5784 -1.2489 0.1916 -1.1272 -0.0133 -0.3466 0.9102 0.8873 2.1069 0.8212 0.6930\n" - ] - } - ], - "prompt_number": 3 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "You should see a sequence of numbers near 0, some negative and some positive. Most are probably between -1 and 1, but a few might lie somewhat outside that range. This is what we expect from a normal distribution - values are clustered around the mean, and there are fewer values the further you get from the mean.\n", - "\n", - "Okay, so lets look at the output of the *DogSensor* class. We will start by setting the noise to 0 to check that the class does what we think it does" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%matplotlib inline\n", - "\n", - "dog = DogSensor (noise=0.0)\n", - "xs = []\n", - "for i in range(10):\n", - " x = dog.sense()\n", - " xs.append(x)\n", - " print(\"%.4f\" % x),\n", - "plot(xs)\n", - "show()" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000" - ] - }, - { - "metadata": {}, - "output_type": "display_data", - "png": "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\nAElFTkSuQmCC\n", - "text": [ - "" - ] - }, - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "\n" - ] - } - ], - "prompt_number": 4 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The constructor initialized the dog at position 0 with a velocity of 1 (move 1.0 to the right). So we would expect to see an output of 1..10, and indeed that is what we see. If you thought the correct answer should have been 0..9 recall that *sense()* returns the dog's position *after* updating his position, so the first postion is 0.0 + 1, or 1.0.\n", - "\n", - "Now let's inject some noise in the signal." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "def test_sensor(noise_scale):\n", - " dog = DogSensor(noise=noise_scale)\n", - "\n", - " xs = []\n", - " for i in range(100):\n", - " x = dog.sense()\n", - " xs.append(x)\n", - " p1, = plot(xs, c='b')\n", - " p2, = plot([0,99],[1,100], 'r--')\n", - " xlabel('time')\n", - " ylabel('pos')\n", - " ylim([0,100])\n", - " title('noise = ' + str(noise_scale))\n", - " legend([p1, p2], ['sensor', 'actual'], loc=2)\n", - " show()\n", - " \n", - "test_sensor(4.0)" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "display_data", - "png": "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\n", - "text": [ - "" - ] - } - ], - "prompt_number": 5 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**note**:*numpy uses a random number generator to generate the normal distribution samples. The numbers I see as I write this are unlikely to be the ones that you see. If you run the cell above multiple times, you should get a slightly different result each time. I could use numpy.random.seed(some_value) to force the results to be the same each time. This would simplify my explanations in some cases, but would ruin the interactive nature of this chapter. To get a real feel for how normal distributions and Kalman filters work you will probably want to run cells several times, observing what changes, and what stays roughly the same.*\n", - "\n", - "So the output of the sensor should be a wavering blue line drawn over a dotted red line. The dotted red line shows the actual position of the dog, and the blue line is the noise signal produced by the simulated RFID sensor. Please note that the red dotted line was manually plotted - we do not yet have a filter that recovers that information! \n", - "\n", - "If you are running this in an interactive IPython Notebook, I strongly urge you to run the script several times in a row. You can do this by putting the cursor in the cell containing the Python code and pressing Ctrl+Enter. Each time it runs you should see a different jagged blue line wavering over the top of the dotted red line.\n", - "\n", - "I also urge you to adjust the noise setting to see the result of various values. However, since you may be reading this in a read only notebook, I will show two extreme examples. The first plot shows the noise set to 100.0, and the second shows noise set to 0.5." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "test_sensor(100.0)" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "display_data", - "png": "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\n", - "text": [ - "" - ] - } - ], - "prompt_number": 6 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "test_sensor(0.5)" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "display_data", - "png": "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\nb6yuXpYiFWntWmPq1TPG21Zohl4221zZqMAsW2Z1VBWvvJ9rz6lRjB/vaGj8/W38+As//1znnkfv\n3r1Ldqvr27cvzZs3Z9OmTcyaNYvRo0fTqVMnAJo2bVpqh7qL0bFjRzp37oyXlxdXXnklQ4cOJTEx\n8ZJeS8QTHDwI998PCxfCT/nViD/zEMmHvend2+rIXI/n1K3Gj7+4L/qLPb8M8+bN49VXXyU5ORmA\n3Nxcjh8/TkpKCk2bNq2Q99i7dy9//etf2bx5M6dOnaKwsJCIiIgKeW2RqiYvD3r1grFjHRPppGye\nU6OwiN1uZ+jQobzxxhtkZGSQmZlJmzZtMMbQuHFj9u/ff9bn/X7jolq1anHq1KmS+0VFRSW73AE8\n9thjhIaGsn//frKzs3nppZcoLi6unIsScVd2O6ZvX/56fzrh4Y7lwOX8lCgqWV5eHjabjXr16lFc\nXMzs2bP5/vvvsdlsDBkyhKlTp7JlyxaMMezfv79ka9TAwEAOHDhQ8jotWrTg9OnTrF69moKCAl58\n8UXOnDlT8nhubi6+vr7UrFmTPXv28NZbbzn9WkVc1m/2rl57oiPbDtfl7bc17PVCKVFUstDQUEaN\nGsX1119PUFAQ33//PTfeeCPg6Lt49tlnue+++/Dz8+Oee+4hMzMTgGeeeYYXX3yRgIAAXnnlFfz9\n/XnzzTcZMmQIwcHB/OlPfyo1Cmrq1KksWrQIPz8/hg4dSv/+/UvVSsraWlWkSvt572ozaxZT70xg\n1LExLF/pbfmuc+7EkrWeJk6cyIIFC/Dy8qJt27bMnj2bvLw8+vXrh91uJyQkhPfee4/atWuXDlZr\nPVU6laVUKZmZ0Lo1xf/3BI8deIptO71ZvRrq1LE6MOdyu0UBk5OT6datG7t376Z69er069ePO+64\ng507d1KvXj2efvppJk2aRGZmJnFxcaWDVaKodCpLqWp+OnyCQX+ty4kTsHw5+PpaHZHzud2igH5+\nfvj4+JSMzDl16hQNGzZkxYoVDBo0CIBBgwaVmpQmInIpDh+GP/eqi7c3rFrlmUmiIjg9UdSpU4dR\no0bRpEkTGjZsSO3atYmOjiY9PZ3AwEDA0ZGbnp7u7NBExJ393L/3i2++gWuvhX79HHMl1Cdx6Zw+\nj+LAgQNMmzaN5ORk/P396dOnDwsWLCh1js1mO2fn6/jfzG2IjIwkMjKyEqMVEZdnDMyYAX//O2ze\n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\nQmCC\n", - "text": [ - "" - ] - } - ], - "prompt_number": 7 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "You may not have a full understanding of the exact *meaning* of a noise value of 100.0, but as it turns out if you multiply *randn()* with a number $n$, the result is just a normal distribution with $\\sigma = \\sqrt{n}$. So the example with noise = 100 is using the normal distribution $N(0,100)$. Recall the notation for a normal distribution is $N(\\mu,\\sigma^2)$. If the square root is confusing, recall that normal distributions use $\\sigma^2$ for the variance, and $\\sigma$ is the standard deviation, which we do not use in this book. *dog_sensor.__init__()* takes the square root of the noise setting so that the *noise * randn()* call properly computes the normal distribution. " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### Math with Gaussians\n", - "\n", - "Let's say we believe that our dog is at 23m, and the variance is 5 ($N(23,5)$). We can represent that in a plot:\n" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "import gaussian\n", - "gaussian.norm_plot(23, 5)" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "display_data", - "png": "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\neBYuXAiYP86bytWq47xVPfzttHnzZrVz5041aNCgeo8fPHhQpaWlqejoaHX06FFvRmo006ZNm9TY\nsWNVTU2NUkqpL7/80nimUaNGqYKCAqWUUvn5+So1NdWrmb744gtVXFyslFLqxIkTqn///qqkpETd\nf//9atmyZUoppZYuXaoeeOABn8j1zjvvKKfTqZRS6oEHHvBqrqYyKWXuWG8qk8ljvalMpo/1U6dO\nKaWUOnv2rEpJSVFbtmwxfpw3las1x7lXW/bXXnstXbt2vejxe++9l9///vfejFKnsUx//vOfWbhw\nIeHh4QD06NHDeKbevXvXfWpXVlZisVi8mikyMpLExEQAOnbsiM1mw+Fw1LuobtasWaxfv954rsOH\nDzNu3DhCvxtLm5KSwqFDh4xnAnPHelP//1auXGnsWG8qk+lj/dJLLwWgpqYGp9NJ165djR/njeXq\n1q1b645zr3wkXaCsrKxei3X9+vVq/vz5SillpGXfWKbExET10EMPqZSUFDVq1Ci1Y8cO45nKy8uV\n1WpVUVFRymKxqIMHD3o904XZ+vbtq6qqqlSXLl3qHj937ly9+6ZynThxot7jN954o1qzZo3xTL5w\nrF+YqaqqyieO9QsznThxwvix7nQ6VUJCgurYsaO6//77lVLKJ47zxnJdqLnj3GixP3XqlBo+fLg6\nfvy4Ukr/AXz99dfejnRRYR00aJCaN2+eUkqpoqIidcUVVxjPNGbMGPXaa68ppZR6+eWX1dixY72e\nSSn9dXvo0KFq3bp1Sil10UHftWtXE7HUiRMn1LBhw+pynffII4+oKVOmGM/kK8d6w38nXzjWG2by\nlWO9srJSpaSkqE2bNvnMca7Uv3NdOF9PS45zo8V+165dqmfPnio6OlpFR0ersLAwdfnll6sjR44Y\ny6SUUuPHj1eFhYV19/v16+f1P8yGmTp16lT387lz51Tnzp29mkcppWpqatQNN9yg/vjHP9Y9NmDA\nAPXFF18opZQ6fPiwGjBggE/kUkqpVatWqZEjR6pvv/3WeCZfONYb+3cyfaw3lskXjvXzHn74YfXY\nY4/5xHHeWC6lWn6cG12pavDgwRw5coSysjLKysqwWq3s3LmTnj17mozFpEmT2LRpEwB79+6lpqaG\n7t27G80UExPD+++/D8CmTZvo37+/V99fKUVmZibx8fHMnz+/7vH09HSee+45AJ577jkmTZrkE7kK\nCgp47LHHyMvLIyIiwngm08d6U/9OJo/1pjKZPNa//vrrupE23377Le+++y5Dhgwxfpw3latVx7mH\nP4DqycjIUL1791bf+973lNVqVX/729/qPX/FFVd4vR+zsUw1NTVq+vTpatCgQWro0KFen970fKbw\n8PC6TDt27FDDhw9XCQkJ6uqrr1Y7d+70aqYtW7aokJAQlZCQoBITE1ViYqJ666231NGjR9WYMWNU\nbGysGjdunPrmm2+M58rPz1cxMTGqb9++dY/dddddxjNdyNvHelP//0we6039O5k81nft2qWGDBmi\nEhIS1ODBg9Xvf/97pZQyfpw3las1x7lcVCWEEEFAFhwXQoggIMVeCCGCgBR7IYQIAlLshRAiCEix\nF0KIICDFXgghgoAUeyGECAJS7IUQIgj8fxncASVSIaMEAAAAAElFTkSuQmCC\n", - "text": [ - "" - ] - } - ], - "prompt_number": 8 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "This corresponds to a fairly inexact belief. While we believe that the dog is at 23, note that roughly 21 to 25 are quite likely as well. Let's assume for the moment our dog is standing still, and we query the sensor again. This time it returns 23.2 as the position. Can we use this additional information to improve our estimate of the dog's position.\n", - "\n", - "Intuition suggests 'yes'. Consider: if we read the sensor 100 times and each time it returned a value between 21 and 25, all centered around 23, we should be very confident that the dog is somewhere very near 23. Of course, a different physical interpertation is possible. Perhaps our dog was randomly wandering back and forth in a way that exactly emulated a normal distribution. But that seems extremely unlikely - I certainly have never seen a dog do that. So the only reasonable assumption is that the dog was mostly standing still at 23.0.\n", - "\n", - "Let's look at this in a plot:" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "dog = DogSensor(23, 0, 5)\n", - "xs = range(100)\n", - "ys = []\n", - "for i in xs:\n", - " ys.append(dog.sense())\n", - " \n", - "plot(xs,ys)\n", - "show()" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "display_data", - "png": "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\n", - "text": [ - "" - ] - } - ], - "prompt_number": 9 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Eyeballing this confirms our intuition - no dog moves like this. However, noisy sensor data certainly looks like this. So let's proceed to see how we might solve this mathematically. But how?\n", - "\n", - "\n", - "Recall the histogram code for adding a measurement to a pre-existing belief:\n", - "\n", - " def sense(pos, measure, p_hit, p_miss):\n", - " q = array(pos, dtype=float)\n", - " for i in range(len(hallway)):\n", - " if hallway[i] == measure:\n", - " q[i] = pos[i] * p_hit\n", - " else:\n", - " q[i] = pos[i] * p_miss\n", - " normalize(q)\n", - " return q\n", - " \n", - "Note that the algorithm is essentially computing:\n", - "\n", - " new_belief = old_belief * measurement * sensor_error\n", - " \n", - "The measurement term might not be obvious, but recall that measurement in this case was always 1 or 0, and so it was left out for convience. \n", - " \n", - "If we are implementing this with gaussians, we might expect it to be implemented as:\n", - "\n", - " new_gaussian = measurement * old_gaussian\n", - " \n", - "where measurement is a gaussian returned from the sensor. But does that make sense? Can we multiply gaussians? If we multiply a gaussian with a gaussing is the result another gaussian, or something else?\n", - "\n", - "Of course the answer is 'yes', or this chapter would be for naught. It is not particularly difficult to perform the algebra to derive the equation for multiplying two gaussians, but I will just present the result:\n", - "$$ N({\\mu}_1, {{\\sigma}_1}^2)*N({\\mu}_2, {{\\sigma}_2}^2) = N(\\frac{{\\sigma}_1 {\\mu}_2 + {\\sigma}_2 {\\mu}_1}{{\\sigma}_1 + {\\sigma}_2},\\frac{1}{\\frac{1}{{\\sigma}_1} + \\frac{1}{{\\sigma}_2}}) $$" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let's immediately look at some plots of this to inform our intuition about this result. First, let's look at the result of multiplying $N(23,5) $ to itself. This corresponds to getting 23.0 as the sensor value twice in a row." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "import gaussian\n", - "def multiply(mu1, sig1, mu2, sig2):\n", - " m = (sig1*mu2 + sig2*mu1) / (sig1+sig2)\n", - " s = 1. / (1./sig1 + 1./ sig2)\n", - " return (m,s)\n", - "\n", - "\n", - "xs = np.arange(16, 30, 0.1)\n", - "\n", - "\n", - "m1,s1 = 23, 5\n", - "m, s = multiply(m1,s1,m1,s1)\n", - "\n", - "ys = [gaussian.gaussian(x,m1,s1) for x in xs]\n", - "p1, =plot (xs,ys)\n", - "\n", - "ys = [gaussian.gaussian(x,m,s) for x in xs]\n", - "p2, = plot (xs,ys)\n", - "\n", - "legend([p1,p2],['original', 'multiply'])\n", - "show()" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "display_data", - "png": "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\nRA38D9RdEf53Rgb8AAAAAElFTkSuQmCC\n", - "text": [ - "" - ] - } - ], - "prompt_number": 10 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The result is either amazing or what you would expect, depending on your state of mind. I must admit I vacillate freely between the two! Note that the result of the multiplation is taller and narrow than the original gaussian. If we think of the gaussians as two measurement, this makes sense. If I measure twice and get the same value, I should be more confident in my answer than if I just measured once. \"Measure twice, cut once\" is a useful saying and practice due to this fact! \n", - "\n", - "Now let's multiply two gaussians (or equivelently, two measurements) that are partially separated. What do you think the result will be? Let's find out:" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "xs = np.arange(16, 30, 0.1)\n", - "\n", - "\n", - "m1,s1 = 23, 5\n", - "m2,s2 = 25, 5\n", - "m, s = multiply(m1,s1,m2,s2)\n", - "\n", - "ys = [gaussian.gaussian(x,m1,s1) for x in xs]\n", - "p1, = plot (xs,ys)\n", - "\n", - "ys = [gaussian.gaussian(x,m2,s2) for x in xs]\n", - "p2, = plot (xs,ys)\n", - "\n", - "ys = [gaussian.gaussian(x,m,s) for x in xs]\n", - "p3, = plot(xs,ys)\n", - "legend([p1,p2,p3],['measure 1', 'measure 2', 'multiply'])\n", - "show()" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "display_data", - "png": "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\n", - "text": [ - "" - ] - } - ], - "prompt_number": 11 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Another beautiful result! If I handed you a measuring tape and asked you to measure the distance from table to a wall, and you got 23m, and then a friend make the same measurement and got 25m, your best guess must be 24m. \n", - "\n", - "That is fairly counter-intuitive, so let's consider it further. Perhaps a more reasonable assumption would be that either you or your coworker just made a mistake, and the true distance is either 23 or 25, but certainly not 24. Surely that is possible. However, suppose the two measurements you reported as 24.01 and 23.99. Surely you would agree that in this case the best guess for the correct value is 24? Which interpretation we choose depends on the properties of the sensors we are using. Humans make galling mistakes, physical sensors do not. \n", - "\n", - "This topic is fairly deep, and I will explore it once we have completed our Kalman filter. For now I will merely say that the Kalman filter requires the interpretation that measurements are accurate, with gaussian noise, and that a large error caused by misreading a measuring tape is not gaussian noise. So perhaps you would be justified in thinking that a histogram filter will perform better for the human readings, and the Kalman filter will perform better with sensor readings that have gaussian noise.\n", - "\n", - "For now I ask that you trust me. The math is correct, so we have no choice but to accept it and use it. We will see how the Kalman filter deals with movements vs error very soon. 24 is the correct answer to this problem." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### Implementing Sensing\n", - "\n", - "Recall the histogram filter uses a numpy array to encode our belief about the position of our dog at any time. That array stored our belief that the dog was in any position in the hallway using 10 positions. This was very crude, because with a 100m hallway that corresponded to positions 10m apart. It would have been trivial to expand the number of positions to say 1,000, and that is what we would do if using it for a real problem. But the problem remains that the distribution is discrete and multimodal - it can express strong belief that the dog is in two positions at the same time.\n", - "\n", - "Therefore, we will use a single gaussian to reflect our current belief of the dog's position. Gaussians extend to infinity on both sides of the mean, so the single gaussian will cover the entire hallway. They are unimodal, and seem to reflect the behavior of real-world sensors - most errors are small and clustered around the mean. Here is the entire implementation of the sense function for a Kalman filter:" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "def sense(mu, sigma, measurement, measurement_sigma):\n", - " return multiply(mu, sigma, measurement, measurement_sigma)" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 12 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Kalman filters are supposed to be hard! But this is very short and straightforward. All we are doing is multiplying the gaussian that reflects our belief of where the dog was with the new measurement. Perhaps this would be clearer if we used more specific names:" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "def sense_dog(dog_pos, dog_sigma, measurement, measurement_sigma):\n", - " return multiply(dog_pos, dog_sigma, measurement, measurement_sigma)" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 13 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "That is less abstract, which perhaps helps with comprehension, but it is poor coding practice. We are writing a Kalman filter that works for any problem, not just tracking dogs in a hallway, so we don't use variable names with 'dog' in them. Still, the *sense_dog()* function should make what we are doing very clear. \n", - "\n", - "Let's look at an example. We will suppose that our current belief for the dog's position is $N(2,5)$. Don't worry about where that number came from. It may appear that we have a chicken and egg problem, in that how do we know the position before we sense it, but we will resolve that shortly. We will create a *DogSensor* object initialized to be at position 0.0, and with no velocity, and modest noise. This corresponds to the dog standing still at the far left side of the hallway. Note that we mistakenly believe the dog is at postion 2.0, not 0.0." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "dog = DogSensor(velocity=0, noise=1)\n", - "\n", - "pos,s = 2, 5\n", - "for i in range(20):\n", - " pos,s = sense(pos, s, dog.sense(), 5)\n", - " print 'time:', i, 'position = ', \"%.3f\" % pos, 'variance = ', \"%.3f\" % s\n", - "\n" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "time: 0 position = 0.091 variance = 2.500\n", - "time: 1 position = -0.441 variance = 1.667\n", - "time: 2 position = -0.577 variance = 1.250\n", - "time: 3 position = -0.360 variance = 1.000\n", - "time: 4 position = -0.401 variance = 0.833\n", - "time: 5 position = -0.436 variance = 0.714\n", - "time: 6 position = -0.272 variance = 0.625\n", - "time: 7 position = -0.119 variance = 0.556\n", - "time: 8 position = -0.083 variance = 0.500\n", - "time: 9 position = -0.032 variance = 0.455\n", - "time: 10 position = -0.088 variance = 0.417\n", - "time: 11 position = -0.103 variance = 0.385\n", - "time: 12 position = -0.082 variance = 0.357\n", - "time: 13 position = -0.055 variance = 0.333\n", - "time: 14 position = -0.018 variance = 0.312\n", - "time: 15 position = -0.034 variance = 0.294\n", - "time: 16 position = -0.083 variance = 0.278\n", - "time: 17 position = -0.128 variance = 0.263\n", - "time: 18 position = -0.102 variance = 0.250\n", - "time: 19 position = -0.079 variance = 0.238\n" - ] - } - ], - "prompt_number": 14 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Because of the random numbers I do not know the exact values that you see, but the position should have converged very quickly to almost 0 despite the initial error of believing that the position was 2.0. Furthermore, the variance should have quickly converged from the intial value of 5.0 to 0.238.\n", - "\n", - "By now the fact that we converged to a position of 0.0 should not be terribly suprising. All we are doing is computing new_position = old_position * measurement, and the measurement is a normal distribution around 0, so we should get very close to 0 after 20 iterations. But the truly amazing part of this code is how the variance became 0.238 despite every measurement having a variance of 5.0. \n", - "\n", - "If we think about the physical interpretation of this is should be clear that this is what should happen. If you sent 20 people into the hall with a tape measure to physically measure the position of the dog you would be very confident in the result after 20 measurements - more confident than after 1 or 2 measurements. So it makes sense that as we make more measurements the variance gets smaller.\n", - "\n", - "Mathematically it makes sense as well. Recall the computation for the variance after the multiplication: $\\sigma^2 = \\frac{1}{\\frac{1}{{\\sigma}_1} + \\frac{1}{{\\sigma}_2}}$. We take the reciprocals of the sigma from the measurement and prior belief, add them, and take the reciprocal of the result. Think about that for a moment, and you will see that this will always result in smaller numbers as we proceed.\n", - "\n", - "\n", - "#Implementing Updates\n", - "\n", - "That is a beautiful result, but it is not yet a filter. We assumed that the dog was sitting still, an extremely dubious assumption. Certainly it is a useless one - who would need to write a filter to track nonmoving objects? The histogram used a loop of sense and update functions, and we must do the same to accomodate movement.\n", - "\n", - "How how do we perform the update function with gaussians? Recall the histogram method:\n", - "\n", - " def update(pos, move, p_correct, p_under, p_over):\n", - " n = len(pos)\n", - " result = array(pos, dtype=float)\n", - " for i in range(n):\n", - " result[i] = \\\n", - " pos[(i-move) % n] * p_correct + \\\n", - " pos[(i-move-1) % n] * p_over + \\\n", - " pos[(i-move+1) % n] * p_under \n", - " return result\n", - " \n", - " \n", - "In a nutshell, we shift the probability vector by the amount we believe the animal moved, and adjust the probability. How do we do that with gaussians?\n", - "\n", - "It turns out that we just add gaussians. Think of the case without gaussians. I think my dog is at 7.3m, and he moves 2.6m to right, where is he now? Obviously, $7.3+2.6=9.9$. He is at 9.9m. Abstractly, the algorithm is *new_pos = old_pos + dist_moved*. It does not matter if we use floating point numbers or gaussians for these values, the algorithm must be the same. \n", - "\n", - "How is addition for gaussians performed. It turns out to be very simple:\n", - "$$ N({\\mu}_1, {{\\sigma}_1}^2)+N({\\mu}_2, {{\\sigma}_2}^2) = N({\\mu}_1 + {\\mu}_2, {\\sigma}_1 + {\\sigma}_2)$$\n", - "\n", - "All we do is add the means and the variance separately! Does that make sense? Think of the physical representation of this abstract equation.\n", - "${\\mu}_1$ is the old position, and ${\\mu}_2$ is the distance moved. Surely it makes sense that our new position is ${\\mu}_1 + {\\mu}_2$. What about the variance? It is perhaps harder to form an intuition about this. However, recall that with the *update()* function for the histogram filter we always lost information - our confidence after the update was lower than our confidence before the update. Perhaps this makes sense - we don't really know where the dog is moving, so perhaps the confidence should get smaller (variance gets larger). I assure you that the equation for gaussian addition is correct, and derived by basic algebra. Therefore it is reasonable to expect that if we are using gaussians to model physical events, the results must correctly describe those events.\n", - "\n", - "I recognize the amount of hand waving in that argument. Now is a good time to either work through the algebra to convince yourself of the mathematical correctness of the algorithm, or to work through some examples and see that it behaves reasonably. This book will do the latter.\n", - "\n", - "So, here is our implementation of the update function:\n", - "\n", - "\n" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "def update(pos, sigma, movement, movement_sigma):\n", - " return (pos + movement, sigma + movement_sigma)" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 15 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "What is left? Just calling these functions. The histogram did nothing more than loop over the *sense()* and *update()* functions, so let's do the same. " - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "# assume dog is always moving 1m to the right\n", - "movement = 1\n", - "movement_error = 2\n", - "sensor_error = 10\n", - "pos = (0, 500) # gaussian N(0,50)\n", - "\n", - "dog = DogSensor(pos[0], velocity=movement, noise=sensor_error)\n", - "\n", - "zs = []\n", - "ps = []\n", - "\n", - "for i in range(10):\n", - " pos = update(pos[0], pos[1], movement, movement_error)\n", - " print 'UPDATE:', \"%.4f\" %pos[0], \", %.4f\" %pos[1]\n", - " \n", - " Z = dog.sense()\n", - " zs.append(Z)\n", - " \n", - " pos = sense(pos[0], pos[1], Z, sensor_error)\n", - " ps.append(pos[0])\n", - " \n", - " print 'SENSE:', \"%.4f\" %pos[0], \", %.4f\" %pos[1]\n", - " print\n", - " \n", - "p1, = plot(zs,c='r', linestyle='dashed')\n", - "p2, = plot(ps, c='b')\n", - "legend([p1,p2], ['measurement', 'filter'], 2)\n", - "show()" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "UPDATE: 1.0000 , 502.0000\n", - "SENSE: 10.2262 , 9.8047\n", - "\n", - "UPDATE: 11.2262 , 11.8047\n", - "SENSE: 4.7554 , 5.4138\n", - "\n", - "UPDATE: 5.7554 , 7.4138\n", - "SENSE: 5.9000 , 4.2574\n", - "\n", - "UPDATE: 6.9000 , 6.2574\n", - "SENSE: 4.2941 , 3.8490\n", - "\n", - "UPDATE: 5.2941 , 5.8490\n", - "SENSE: 4.8349 , 3.6904\n", - "\n", - "UPDATE: 5.8349 , 5.6904\n", - "SENSE: 5.3833 , 3.6267\n", - "\n", - "UPDATE: 6.3833 , 5.6267\n", - "SENSE: 5.5365 , 3.6007\n", - "\n", - "UPDATE: 6.5365 , 5.6007\n", - "SENSE: 7.4788 , 3.5900\n", - "\n", - "UPDATE: 8.4788 , 5.5900\n", - "SENSE: 7.2898 , 3.5856\n", - "\n", - "UPDATE: 8.2898 , 5.5856\n", - "SENSE: 8.9818 , 3.5838\n", - "\n" - ] - }, - { - "metadata": {}, - "output_type": "display_data", - "png": "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\npcaOlB5kfQAAAABJRU5ErkJggg==\n", - "text": [ - "" - ] - } - ], - "prompt_number": 16 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "There is a fair bit of arbitrary constants code above, but don't worry about it. What does require explanation are the first few lines:\n", - "\n", - " movement = 1 \n", - " movement_error = 2\n", - " \n", - "For the moment we are assuming that we have some other sensor that detects how the dog is moving. For example, there could be an inertial sensor clipped onto the dog's collar, and it reports how far the dog moved each time it is triggered. The details don't matter. The upshot is that we have a sensor, it has noise, and so we represent it with a guassian. Later we will learn what to do if we do not have a sensor for the *update()* step.\n", - "\n", - "For now let's walk through the code and output bit by bit.\n", - "\n", - " movement = 1\n", - " movement_error = 2\n", - " sensor_error = 10\n", - " pos = (0, 500) # gaussian N(0,500)\n", - " \n", - " \n", - "The first lines just set up the initial conditions for our filter. We are assuming that the dog moves steadily to the right 1m at a time. We have a relatively low error of 2 for the movement sensor, and a higher error of 10 for the RFID position sensor. Finally, we set our belief of the dog's initial position as $N(0,500)$. Why those numbers. Well, 0 is as good as any number if we don't know where the dog is. But we set the variance to 500 to denote that we have no confidence in this value at all. 100m is almost as likely as 0 with this value for the variance. \n", - "\n", - "Next we initialize the RFID simulator with\n", - " dog = DogSensor(pos[0], velocity=movement, noise=sensor_error)\n", - "\n", - "It may seem very 'convienent' to set the simulator to the same position as our guess, and it is. Do not fret. In the next example we will see the effect of a wildly inaccurate guess for the dog's initial position.\n", - "\n", - "The next code allocates an array to store the output of the measurements and filtered positions. \n", - "\n", - " zs = []\n", - " ps = []\n", - " \n", - "This is the first time that I am introducing standard nomenclature used by the Kalman filtering literature. It is traditional to call our measurement $Z$, and so I follow that convention here. As an aside, I find the nomenclature used by the literature very obscure. However, if you wish to read the literature you will have to become used to it, so I will not use a much more readable variable name such as $m$ or $measure$.\n", - " \n", - " \n", - "Now we just enter our *sense()->update()* loop.\n", - "\n", - " for i in range(10):\n", - " pos = update(pos[0], pos[1], movement, sensor_error)\n", - " print 'UPDATE:', \"%.4f\" %pos[0], \", %.4f\" %pos[1]\n", - "\n", - "Wait, why *update()* before sense? It turns out the order does not matter once, but the first call to DogSensor.sense() assumes that the dog has already moved, so we start with the update step. In practice you will order these calls based on the details of your sensor, and you will very typically do the *sense()* first.\n", - "\n", - "So we call the update function with the gaussian representing our current belief about our position, the another gaussian representing our belief as to where the dog is moving, and then print the output. Your output will differ, but when writing this I get this as output:\n", - "\n", - " UPDATE: 1.000 502.000\n", - "\n", - "What is this saying? After the update, we believe that we are at 1.0, and the variance is now 502.0. Recall we started at 500.0. The variance got worse, which is always what happens during the update step.\n", - "\n", - " Z = dog.sense()\n", - " zs.append(Z)\n", - " \n", - "Here we sense the dog's position, and store it in our array so we can plot the results later.\n", - "\n", - "Finally we call the sense function of our filter, save the result in our *ps* array, and print the updated position belief:\n", - " pos = sense(pos[0], pos[1], Z, movement_error)\n", - " ps.append(pos[0])\n", - " print 'SENSE:', \"%.4f\" %pos[0], \", %.4f\" %pos[1]\n", - " \n", - "Your result will be different, but I get\n", - "\n", - " SENSE: 1.6279 , 9.8047\n", - " \n", - "as the result. What is happening? Well, at this point the dog is really at 1.0, however the predicted position is 1.6279. What is happening is the RFID sensor has a fair amount of noise, and so we compute the position as 1.6279. That is pretty far off from 1, but this is just are first time through the loop. Intuition tells us that the results will get better as we make more measurements, so let's hope that this is true for our filter as well. Now look at the variance: 9.8047. It has dropped tremendously from 502.0. Why? Well, the RFID has a reasonably small variance of 2.0, so we trust it far more than our previous belief. At this point there is no way to know for sure that the RFID is outputting reliable data, so the variance is not 2.0, but is has gotten much better.\n", - "\n", - "Now the software just loops, calling *update()* and *sense()* in turn. Because of the random sampling I do not know exactly what numbers you are seeing, but the final position is probably between 9 and 11, and the final variance is probably around 3.5. After several runs I did see the final position nearer 7, which would have been the result of several measurements with relatively large errors.\n", - "\n", - "Now look at the plot. The noisy measurements are plotted in with a dotted red line, and the filter results are in the solid blue line. Both are quite noisy, but notice how much noisier the measurements (red line) are. This is your first Kalman filter shown to work!\n", - "\n", - "\n", - "#More Examples\n", - "\n", - "Before I go on, I want to emphasize that this code fully implements a 1D Kalman filter. If you have tried to read the literatue, you are perhaps surprised, because this looks nothing like the complex, endless pages of math in those books. To be fair, the math gets a bit more complicated in multiple dimensions, but not by much. So long as we worry about *using* the equations rather than *deriving* them we can create Kalman filters without a lot of effort. Moreover, I hope you'll agree that you have a decent intuitive grasp of what is happening. We represent our beliefs with gaussians, and our beliefs get better over time because more measurement means more data to work with. \"Measure twice, cut once!\"\n", - "\n", - "So I didn't put a lot of noise in the signal, and I also 'correctly guessed' that the dog was at position 0. How does the filter perform in real world conditions? Let's explore and find out. I will start by injecting a lot of noise in the RFID sensor. I will inject an extreme amount of noise - noise that apparently swamps the actual measurement. What does your intution tell about how the filter will perform if the noise is allowed to be anywhere from -300 or 300. In other workds, an actual position of 1.0 might be reported as 287.9, or -189.6, or any other number in that range. Think about it before you scroll down." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "sensor_error = 30000\n", - "movement_error = 2\n", - "pos = (0,500)\n", - "\n", - "dog = DogSensor(pos[0], velocity=movement, noise=sensor_error)\n", - "\n", - "zs = []\n", - "ps = []\n", - "\n", - "for i in range(1000):\n", - " pos = update(pos[0], pos[1], movement, movement_error)\n", - " \n", - " Z = dog.sense()\n", - " zs.append(Z)\n", - " \n", - " pos = sense(pos[0], pos[1], Z, sensor_error)\n", - " ps.append(pos[0])\n", - "\n", - "\n", - "p1, = plot(zs,c='r', linestyle='dashed')\n", - "p2, = plot(ps, c='b')\n", - "legend([p1,p2], ['measurement', 'filter'], 2)\n", - "show()" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "display_data", - "png": "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\nrphsLIyDAAAAAElFTkSuQmCC\n", - "text": [ - "" - ] - } - ], - "prompt_number": 17 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "In this example the noise is extreme yet the filter still outputs a nearly straight line! This is an astonishing result! What do you think might be the cause of this performance? If you are not sure, don't worry, we will discuss it latter.\n", - "\n", - "Now let's lets look at the results when we make a bad initial estimate of position. To avoid obscuring the results I'll reduce the sensor variance to 30, but set the initial position to 1000m. Can the filter recover from a 1000m initial error?" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "sensor_error = 30\n", - "movement_error = 2\n", - "pos = (1000,500)\n", - "\n", - "dog = DogSensor(0, velocity=movement, noise=sensor_error)\n", - "\n", - "zs = []\n", - "ps = []\n", - "\n", - "for i in range(100):\n", - " pos = update(pos[0], pos[1], movement, movement_error)\n", - " \n", - " Z = dog.sense()\n", - " zs.append(Z)\n", - " \n", - " pos = sense(pos[0], pos[1], Z, sensor_error)\n", - " ps.append(pos[0])\n", - "\n", - "\n", - "p1, = plot(zs,c='r', linestyle='dashed')\n", - "p2, = plot(ps, c='b')\n", - "legend([p1,p2], ['measurement', 'filter'], 2)\n", - "show()" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "display_data", - "png": "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\nhwAAAABJRU5ErkJggg==\n", - "text": [ - "" - ] - } - ], - "prompt_number": 18 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Again the answer is yes! Because we are relatively sure about our belief in the sensor ($\\sigma=30$) even after the first step we have changed our belief in the first position from 1000 to somewhere around 60.0 or so. After another 5-10 measurements we have converged to the correct value! So this is how we get around the chicken and egg problem of initial guesses. In practice we would probably just assign the first measurement from the sensor as the initial value, but you can see it doesn't matter much if we wildly guess at the initial conditions - the Kalman filter still converges very quickly.\n", - "\n", - "What about the worst of both worlds, large noise and a bad initial estimate:" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "sensor_error = 30000\n", - "movement_error = 2\n", - "pos = (1000,500)\n", - "\n", - "dog = DogSensor(0, velocity=movement, noise=sensor_error)\n", - "\n", - "zs = []\n", - "ps = []\n", - "\n", - "for i in range(1000):\n", - " pos = update (pos[0], pos[1], movement, movement_error)\n", - " \n", - " Z = dog.sense()\n", - " zs.append(Z)\n", - " \n", - " pos = sense (pos[0], pos[1], Z, sensor_error)\n", - " ps.append(pos[0])\n", - "\n", - "\n", - "p1, = plot(zs,c='r', linestyle='dashed')\n", - "p2, = plot(ps, c='b')\n", - "legend([p1,p2], ['measurement', 'filter'], 2)\n", - "show()" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "display_data", - "png": "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\n", - "text": [ - "" - ] - } - ], - "prompt_number": 19 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "This time the filter does struggle. Notice that the previous example only computed 100 updates, whereas this example uses 1000. By my eye it takes the filter 400 or so iterations to become reasonable accurate, but maybe over 600 before the results are good. Kalman filters are good, but we cannot expect miracles. If we have extremely noisy data and extremely bad initial conditions, this is as good as it gets.\n", - "\n", - "Finally, let's make the suggest change of making our initial position guess just be the first sensor measurement." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "sensor_error = 30000\n", - "movement_error = 2\n", - "pos = None\n", - "\n", - "dog = DogSensor(0, velocity=movement, noise=sensor_error)\n", - "\n", - "zs = []\n", - "ps = []\n", - "\n", - "for i in range(1000):\n", - " Z = dog.sense()\n", - " zs.append(Z)\n", - " if pos == None:\n", - " pos = (Z, 500)\n", - " \n", - " pos = sense (pos[0], pos[1], Z, sensor_error)\n", - " ps.append(pos[0])\n", - "\n", - " pos = update (pos[0], pos[1], movement, movement_error)\n", - "\n", - "p1, = plot(zs,c='r', linestyle='dashed')\n", - "p2, = plot(ps, c='b')\n", - "legend([p1,p2], ['measurement', 'filter'], 2)\n", - "show()" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "display_data", - "png": "iVBORw0KGgoAAAANSUhEUgAAAYYAAAEACAYAAAC3adEgAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsXXd4FNXXfndTCCUJCSWBBIykGEIX6QQjEBCkNwlIVxGE\nH9go+QRBURBFQQTpRZCi9GYIHWmhNykJJUAKoUMKKbs73x8nJ3dmS7JJloA67/Pk2ezslHtnds+5\np71HI0mSBBUqVKhQoSIb2uc9ABUqVKhQ8WJBVQwqVKhQoUIBVTGoUKFChQoFVMWgQoUKFSoUUBWD\nChUqVKhQQFUMKlSoUKFCAasUw8CBA+Hh4YEaNWqYfDZt2jRotVo8ePAgZ9vkyZPh7++PwMBAREZG\n5mw/ceIEatSoAX9/f4wYMcIGw1ehQoUKFbaGVYphwIABiIiIMNl+69Yt7NixAy+99FLOtgsXLmD1\n6tW4cOECIiIiMHToUHCpxJAhQ7Bw4ULExMQgJibG7DlVqFChQsXzhVWKITg4GG5ubibbP/74Y0yd\nOlWxbePGjQgLC4ODgwN8fHzg5+eHqKgoJCYmIjk5GfXr1wcA9O3bFxs2bLDBFFSoUKFChS1R4BjD\nxo0b4e3tjZo1ayq2JyQkwNvbO+e9t7c34uPjTbZ7eXkhPj6+oJdXoUKFChXPCPYFOSgtLQ3ffPMN\nduzYkbNNZdZQoUKFin8HCqQYrl69itjYWNSqVQsAEBcXh7p16yIqKgpeXl64detWzr5xcXHw9vaG\nl5cX4uLiFNu9vLzMnt/Pzw9Xr14tyNBUqFCh4j8LX19fXLlypfAnkqzE9evXperVq5v9zMfHR7p/\n/74kSZL0999/S7Vq1ZIyMjKka9euSVWqVJEMBoMkSZJUv3596ciRI5LBYJDatGkj/fnnn2bPl49h\n/evxxRdfPO8hvDBQ74WAei8E1HshYCvZaVWMISwsDI0bN0Z0dDQqVaqExYsXKz7XaDQ5/wcFBaFH\njx4ICgpCmzZtMHv27JzPZ8+ejXfffRf+/v7w8/PDm2++WXjNpkKFChUqbAqrXEkrV67M9fNr164p\n3oeHhyM8PNxkv7p16+LcuXP5GJ4KFSpUqChqqJXPLzhCQkKe9xBeGKj3QkC9FwLqvbA9NNl+qRcK\nGo1GzXJSoUKFinzCVrKzQFlJzwvu7u54+PDh8x6GiiKGm5ubgnJFhQoVzxb/KItBtST+m1CfuwoV\n1sFWvxU1xqBChQoVKhRQFYMKFSpU5BdpaYDB8LxH8cygKgYVKlSoyC9KlgQmTy766z55UiSX+UcF\nn1WoUKHihYEtqCfyC1dX4OJFIDBQuX3PHqBECZtdRrUYVDw3LFmyBMHBwc97GCpU5B8VKgCvvvp8\nru3oqHyflgZ88AHw1182u4SqGP5j0Ol0z3sIKlT889G0KVC+fNFf19MTcHJSbvv1VyA6GtDaTpyr\nisEG8PHxwffff4+aNWvC2dkZgwYNQlJSEtq0aQNXV1eEhobi0aNHAIAjR46gcePGcHNzQ+3atbFv\n376c8yxevBhBQUFwcXGBr68v5s2bl/PZvXv30K5dO7i5uaFMmTJo1qxZzmdarVZBS9K/f3+MGzcO\nALB37154e3tj6tSpqFChAgYNGgRJkjBlyhT4+fmhbNmyePvtt3PqQ2JjY6HVarFkyRJUrlwZZcqU\nwZw5c3Ds2DHUrFkTbm5uGD58uGL+ixYtQlBQENzd3fHmm2/i5s2birHNnTsXAQEBcHNzw7BhwwAA\nFy9exJAhQ3D48GE4OzvD3d3dVo9DhYpnjyFDgHr1iv66kgTIuOkAANwTx4aK4YWkMbU0rBd0uJKP\nj4/UqFEj6c6dO1J8fLxUvnx5qU6dOtLp06el9PR0qXnz5tLEiROluLg4qUyZMjmssjt27JDKlCkj\n3bt3T5IkSdq6dat07do1SZIkad++fVKJEiWkU6dOSZIkSWPGjJE++OADSafTSTqdTjpw4EDO9TUa\njXT16tWc9/3795fGjRsnSZIk7dmzR7K3t5fGjBkjZWZmSk+fPpWmT58uNWrUSIqPj5cyMzOlwYMH\nS2FhYZIkEYuuRqORhgwZImVkZEiRkZGSo6Oj1KlTJ+nu3bs589u3b58kSZK0YcMGyc/PT7p06ZKk\n1+ulSZMmSY0bN1aMrX379tLjx4+lmzdvSuXKlZMiIiIkSZKkJUuWSE2bNs3z/r6oz12FiiJH+fKS\nlJio3HbmjCQBklSmTNGyq/5jMGECaVPjvwkTrN/f0r55YPjw4ShXrhwqVqyI4OBgNGrUCLVq1UKx\nYsXQuXNnnDp1Cr/99hvatm2bwyrbsmVLvPbaa9i6dSsAoG3btnj55ZcBAM2aNUOrVq2wf/9+AICj\noyMSExMRGxsLOzs7NGnSJNfxSLIiF61Wi4kTJ8LBwQFOTk6YO3cuJk2ahIoVK8LBwQFffPEF1qxZ\nA4Ms/W7cuHFwdHREaGgonJ2d0atXL5QtWzZnfqdPnwYAzJkzB2PHjsUrr7wCrVaLsWPH4vTp04qe\nHGPGjIGLiwsqVaqEN954I+dYSS1aU6HCMubNA2TN0AAAX34JODsrt7GlYMPf079PMZDuVP7lphis\n3TcPeHh45PxfvHhxxXsnJyekpKTgxo0b+OOPP+Dm5pbzd/DgQdy+fRsA8Oeff6Jhw4YoU6YM3Nzc\nsG3bNty/fx8A8Nlnn8HPzw+tWrWCr68vvv32W6vHVq5cOTjKAlaxsbHo3LlzzhiCgoJgb2+PpKQk\nq+ZTvHhxpKSkAABu3LiBESNG5JyrTJkyAKBo2+rp6Znzf4kSJZCammr12FWo+M/i2DEgNla5bfBg\nSpWVg7ORbBgM/3cphhcI8tUw96OoVKkS+vTpg4cPH+b8JScnY9SoUcjIyEDXrl0xatQo3LlzBw8f\nPkTbtm1zzlOqVCl8//33uHr1KjZt2oQffvgBe/bsAUDCNi0tLed6iYmJih4ZGiOfZOXKlREREaEY\nR1paGipUqJDveVauXBnz5s1TnCs1NRUNGzbM81jjcalQ8Y9BeDiljT5L7N4NHD2q3Nanj2mabJUq\nZElY8ZuzFqpiKAKwcH/nnXewefNmREZGQq/XIz09HXv37kV8fDwyMzORmZmJsmXLQqvV4s8//0Rk\nZGTOObZs2YIrV65AkiS4uLjAzs4O2mwTsnbt2vjtt9+g1+sRERGR436yhA8++ADh4eE5QeK7d+9i\n06ZNBZrTBx98gG+++QYXLlwAADx+/Bh//PFHrsfxsR4eHoiLi0NWVla+rq1CxXPHnj3Aw4fAwoXA\nTz+RYLY1rl0DjH/LZ88C2da6AhqNTSuxrVIMAwcOhIeHB2rUqJGz7bPPPkPVqlVRq1YtdOnSBY8f\nP875bPLkyfD390dgYKBCuJ04cQI1atSAv78/RowYYbNJvIgwXrFrNBp4e3tj48aN+Oabb1C+fHlU\nrlwZ06ZNgyRJcHZ2xk8//YQePXrA3d0dK1euRMeOHXPOceXKlRx/f+PGjfHhhx/i9ddfBwDMmDED\nmzdvhpubG1asWIHOnTtbHAsAjBgxAh06dECrVq3g4uKCRo0a4ahsZWLNSp736dSpE0aPHo2ePXvC\n1dUVNWrUwPbt2y2ei+8FALRo0QLVqlWDp6cnyj+P1D8VKgqKI0eobmDIEGDJEuDy5aK5rp2dqQKI\njATGjbNpjMGqEPb+/fulkydPKno+R0ZGSnq9XpIkSRo9erQ0evRoSZJEz+fMzEzp+vXrkq+vb07P\n53r16klRUVGSJEkF6vls5XBV/MugPncV+cKtW5L09OmzvQYgSQMHiujkO+88m2sEBEhSSook7d5N\n2+rWlaSjR5X7rVghSd26SZJOV7RZScHBwXBzc1NsCw0NzXFlNGjQAHFxcQCAjRs3IiwsDA4ODvDx\n8YGfnx+ioqKQmJiI5ORk1K9fHwDQt29fbNiwwVb6TYUKFSoInTuTy+VZQ24N27KGgNGqFdCkCTBr\nFtC8OW07cYJcSTod8PQpbdPpqOjNzs5ml7bJbBYtWoS2bdsCABISEuDt7Z3zmbe3N+Lj4022e3l5\nKTJXVKhQocIm0Ghs61axBrZWDAYDULcuUKmS6VzS04GDB4E33wTOnwdSU4Hly4Fz52x2+UKT6H39\n9ddwdHREr169bDGeHEyQpY2GhISofV1VqFBhHYpCMVStClSuLN4vWQIsXmy78x8+TOyt27cDxskZ\nNWpQRpSjI/bWqIG9VarQ9vHjbXb5QimGJUuWYNu2bdi1a1fONi8vL0VxU1xcHLy9veHl5ZXjbuLt\nXl5eFs89oYD1BCpUqPiPoygUQ6tWVGhWtizg4EB/toRWCzRoQNe5fh3gZJ1SpQAXFyAzE3B0RAiA\nEB8fymDq2hUTbeSeL7D9ExERge+++w4bN26Ek4zUqUOHDli1ahUyMzNx/fp1xMTEoH79+vD09ISL\niwuioqIgSRKWLVuGTp062WQSKlSoUJGDqChiHH2WCAsDQkOB2bOJq8jPz3Sf06eBGTMKdn47O0Cv\np/9ffhmYPp3+Z66kjAxiWX3lFWJWBYqeRC8sLAyNGzfG5cuXUalSJSxatAjDhw9HSkoKQkNDUadO\nHQwdOhQAEBQUhB49eiAoKAht2rTB7Nmzc9ITZ8+ejXfffRf+/v7w8/PLoYZQoUKFigJj1Chg9Gjl\ntmzSSrNISjIlossL2TQuOWjQAKheHejendw95liL4+KAtWuBhIT8XQsAbt8Gjh833c6K4do1YMMG\nwN4eYALKzz7L/3UswCpX0sqVK022DRw40OL+4eHhCA8PN9let25dnLNhgESFChUqkJYGXL0q3les\nSILbEvIrqB88AOrUyd09Za5IU6ulWoePPwZWrcrfNbku4sQJCkIzvv0WKFaMAs4AKUVmLCjqAjcV\nKlSoeGHx2mvK3gh6fe6pmxUrilW2NbCmh4klxQAAq1dbfy0Gj1/GXwYAGDaM4hm9ewO+vkDfvjQf\ngNxKNoKqGGyEy5cvo3bt2jl0FV9//TUA6odQqVKl5zw6FSr+xXBxAWTMC3kqBq02f64k48Y4AJHZ\n3b0rVu4cA5BD1pck3wgKotddu4CTJ4GZM+n9J58Ahw7RHDgGUbo00XLImCkKC1Ux2AhTp05FixYt\n8OTJE+j1evzf//2f2f18fHywe/fuIh6dChX/Yri65k8x5DdrycmJVudybNtG9QScPXnggOlxR47k\nfe4bN4CICNPtPL7Nm8mtxPGDy5eB+/dpfunpwJ07tP15cCWpyBs3btxAEGv5XKDRaArch0CSEdCp\nUKEiG+7uyj7ITZuSH94S3NysE9oMR0fy7Q8ZIrbFxQGbNgHff0/vr1+n182bAV4UBgbmfe6VK4E2\nbUy3y4X848eUhQQIriStlgLUbdoAP/5IdRRqP4YXC82bN8fevXsxbNgwODs7o3fv3jmtNeXo06cP\nbt68ifbt28PZ2RnfZ3+pcmv3GRISgs8//xxNmjRByZIlcZ2/gCpUqCDUqUOZQYw5c3JP3bSzA/z9\n83eNX36h88px5oz439mZeid06ABs2ULbrKGxz8yk140bldvl7mf5XNiFVLYs8Omn5EaKj6fsKHY3\n2QCqYrABdu/ejeDgYMyaNQvJyclwdHQ0y1C6bNkyVK5cGVu2bEFycjI+/fRTxMfHo127dhg/fjwe\nPnyI77//Hl27ds1p0AMAy5cvx4IFC5CSkoLK8mpLFSpUUI8CWfEs+vYlyghbolcvoEULy59rtSLe\nwLTYBgNQrRopLkuwz04MZcuDUbMm1UpUrapUDBs2UKBbo6GYwu7dVAXt4PDicSW9KDDX1bMgf7aA\ntS6f5cuX59ruU6PRoH///qhatSq0Wi3s7QvNYqJCxb8Lhw4JVwuQdwzhyhUgICB/13B1pSA3QMLZ\nGFqtKKqTK4bq1YFc+pPkCHPjrCZJAho3JsvAWCjp9RTbYJdVTAwwdqwyZbeQ+FcpBnNdPQvyV5TI\nq90nADWrScW/A6dPA/37F+4cN2+atrtknztDq839h2ww5O+H/ugR8NVXQnhzvxN5i80pUwTb6Z07\nlKJapQrwxhumgWs5LCmG27eB4cOJKK9pU+VnLVrQ/k+e0PunT8klFRNj/ZzygLr8fEaw1OzGXJvN\nPn36YN68efk+lwoV/yikpgLR0YU7R4sWFAz++2+xzWBQrqrNZejMmAG89RZRV0hS/ugjkpMpnjB3\nrnK7vT1ZBA8eUOqqnIbjjz+ANWuA7GZaFsG1B8aKQasFypWj2IEkAR07CmVWrhxZDRxw57TVoqbE\nUJE/5JY95OHhgasyky+3dp/y86lQ8Y/HkydAdgvYAuPKFdOexzodCWaAFMLevaYWwfr1Ig6RlpY/\nBcVKhiuQ27ShLKUePah+4PXXAQ8PpWLQaChTKa+Wn23aAAMHmlJmy7mSNBpyX7HyY8U3bhxZL0wH\noiqGFxvy9pX8njF27FhMmjQJbm5u+OGHH3Jt92nueBUq/rE4elRZb1BQGP8eEhOB7AZgyMqieEPx\n4sp9DhyglT2Q/3x/3p9/kwYDBX7r1SNX0cqVRLPRsaPSz//gAfWEZqVlDvb2QO3apttv3aLjDx0S\nxW58fY2GlNCIEXQ8Zz8NGpS/eeUGm/SBszEsDesFHa6KZwz1uf9LMGEChfEKA0CSnJyU2/74Q5Jc\nXen/lBRJKl7c/HFTptD/x4/nbxxXrtD+n35K7xMSJCk1VXyu0SjPB0hS9+6SdPIk/R8envv5V66U\npLffVm5bvJiOnTRJnNtgkKQffqD/P/iAtm/ZIkkXL9L/FSsWbWtPFSpUqCg0bOUSNbYYmjVT+tvz\nStusXj1/qZ1sMTx8SK8VKgAlSojPzfViMBhEcPibb0w/378faN9ejNnYDcTv3d2Bhg3pf40G+Ogj\n+n/6dLruW2+JQjpZh8zCQlUMKlSoKBpUrWq+b0F+4Oxseg6tVghvvV7UBhhD7oox5561lJZYtqzp\nti5d6JrXr1NGkLx725tv0rbcuk6uWSMK4QwGoaiSk5WusE2bqEp7+XJ6/913wLp1ogKasWxZ/ov2\ncoGqGFSoUFE0KF7cOpqI3LB3LwlLOeSKQaezbA2wr95SncPw4cp2nQw3N3pduJBe79+nYLZGA7z9\nNm27dk3s/+ef1HktN/B4L14E9uwRFoKnJzGn8viYR+nLLykt9fp1iqlwBTQX1alcSSpUqHghULUq\n9SW2FqVLW6cYNBrLWUOvvgr4+Ci32dmJVb29vfkU0WrVqBMa7yNPd2WkptKK3RwGDxb/c9Oe2rWB\nY8fofw4w37lDK3omt7OEoCAKXB84QNZGNhsz0tLo/MaKKyaG6jfYUmCLZ+tWIDycXouaK2ngwIHw\n8PBADRmt64MHDxAaGoqAgAC0atUKj2QdkyZPngx/f38EBgYiMjIyZ/uJEydQo0YN+Pv7YwT3MFWh\nQsU/E5cuATt3Wr9/s2bkCrEGcoqLvODqKhSJmxswa5aoPma8/rqoXNZozPcuaNqUXETmwO6pqVOF\n0D97Vnzu60tZQv/3fxRTuHs398K2rl2pLoJX+cuWic/S04USA0Trzrt3hXXE7jAHB2JobdNGuJts\nAKsUw4ABAxBhRA07ZcoUhIaGIjo6Gi1atMCUKVMAABcuXMDq1atx4cIFREREYOjQoTmpl0OGDMHC\nhQsRExODmJgYk3OqUKGiiLFqFbkuCgpzvQoKCw+P/MUiOnRQKoJhw8idI8esWcBLL+V+HmO/vRxD\nhwKlSlG7zV69hJJhaLUUbC5WjM7x4AEpqfffVwaqGR4eFBPg64WH04o/IoLYUuvXFwrh99/pNTGR\n6iZGjqS02JYtyVLYvZsUV1FzJQUHB8ON/WzZ2LRpE/r16wcA6NevHzZk84ds3LgRYWFhcHBwgI+P\nD/z8/BAVFYXExEQkJyejfna+cd++fXOOsRZubm45NQLq33/nz/i7p8KGWLgQWLGiYMf27Am88w65\nh+RcRYWFVms5gGwOe/cqBbomD66ko0fNt/6UN78xhpsbUWDwuDi2ANB90GopBlCyJI3l6VNSmiVL\nmu/dzJCP22AAWremamcACA2lV66/kLckbd4c2LEDOHwYuH0b90d+hYt7BI1OYVHgGENSUhI8PDwA\nUDVvUnYLuoSEBHjL0qa8vb0RHx9vst3Ly0tR3WsNHjx4kFNVrP79d/4e8A9Dhe1RmIDlnDlAp07U\nPMZca0tjXLkCdOuW9352dpareG/fNo0/GHMl5aUYLM25eXORDirHrVuUHpqVJVJT5YorM5OOe/iQ\nYh1nzlBVdMmSlBpbtap1Y+F7uG8fFQJ27QoEB5Pbq0ULkS4LkPUCINnBHdvQBlXv7MVHo2zHcGST\nM/HKzpaYwJ2RQD0JQnJL/VKhQkXBEBysXInmB66uRC4HmM/lN0Z6OmXh5IVbt8T/GRmUBcR9jZs2\npZX4+fNiH3NcScaKYckSqlauW9cyV5K3t/lagKQkYMECigO89RZtk883PJwCzvfvE48RAERGUmD6\nt9/Mz9HNjeZZrZrYlpVFc/v0U3J9lShBFOI7d5KSSE6mzK6KFQEHB2xHK7xzYQgM2IXmeAPVqtbF\n9lyMk/ygwIrBw8MDt2/fhqenJxITE1E+uxm3l5cXbskebFxcHLy9veHl5YU4WUApLi4OXl5eFs8v\nVwwqVKh4RpgwQbSnLAg4mGwNT8/9+/kn0Tt3jjKCTpyg91evAmXK0P937lCDG4OBhHeVKnSNU6fI\nkpEjMpKK4OrWpf2PHFFaAABdIyXFNKuJYwb16oltjRvTXM6dE+e4d0/UEmg0tOofOVIZWGY8ekQ1\nGZJEiuD778mtN2IEKdwnT8hyevIEOH0aqQtX4eKJNJzWH8dFfUtciy2NE2UbYlXbNWiBJ8CvF4C+\nMzDR3LUKgAK7kjp06IClS5cCAJYuXYpO2Q+iQ4cOWLVqFTIzM3H9+nXExMSgfv368PT0hIuLC6Ki\noiBJEpYtW5ZzjAoVKv6hYIVgTeBz506qM8gLmZmi0Y651T1bBwkJwM8/U1yAM4COHqXUTqbE3r2b\n/P27d4tUVLYmjK0KrpFgVw5DzpXk7Ez/+/lR9lHZsiKV9fx5oFEjcZxeT5lCsoxNE0gS1S4A5I5K\nSqLA9vHjQHIyzp7U4ZvLXeDjA3QKc8KIzO/g1KsLWrx0BWdTfNGi4kVhTVnKqCoArFIMYWFhaNy4\nMS5fvoxKlSph8eLFGDNmDHbs2IGAgADs3r0bY8aMAQAEBQWhR48eCAoKQps2bTB79uwcN9Ps2bPx\n7rvvwt/fH35+fjnNaVSoUPEPRGqqEKC2dCUXKyZ6EGRmmgZv+VpMf8FtPSWJxtSlC2UqAeSbX7iQ\nBG5iIm1jQW8ca2CXVEgIMGkSZTaNGCH2mzqVOqutXEmxAwcHsjpYKd65I5SYRlZdvW6d8jqSRKm7\nAFFjGAyi+C40FDev6RCx4gF6YiXe2joEV+GLTZuAuOs6pMxcgq+/BoZV3Y3S6bfJFdi2LR1rjdK1\nEla5klauXGl2+04LOczh4eEIDw832V63bl2cM6aXVaFCxT8Tn35Kr7/9Zp1iyC0gbAncE1kOvtaT\nJ+Q2at6ctqWkAJ9/LphWGfKaAICEqYOD6Xjk1snLL5PQv3ZNKIYnT+j/ypVJeTk6KtNEb94kdxbD\nwYHGP2gQxSY8PKiBz+bNZJVoNBTUbtAABkmDg41GYfa5YERmNIPGYEBT7MXlZcdQos+nQKNBAByh\nGfYhjWPcOKqYrluXzgvQq3ETowJCrXxWoeKfgr/+yt0tUdSYM4dev/uOsoXyQqVKwGuv5e8a7L+X\nC3FeXTdvLrZptbT6vnxZ2VmtZk2AY5l8Do2GhLmxYjh6lOby+ut0jZIlyQKRKxZ5BlRAAGUgabXk\n0uIC4MaNgaVLyapg8HPLyBCKrX9/pHXqhc+3B6PkpeMYcn4oXnM4jesjZuBu+4HY0G8DSnw4gI7N\nbvWLpUspBjFokLJnw+bNykB2IaEqBhUq/ikYMSL/fX0lyXyPYsa+fSTUCoObN62rY3B0FMKrZUsK\nFOcFLqBjy2HfPvM9lOXtPOUFZTqdSC1lllLAfOZSdsp9jvAvUYKoMzhdev58oE8fUnCMzz6j2MT1\n6yIofvAgKTRu7AMIptXoaEjLl+PoUaDzo8Uo/W5XXL4MnHozHOdXnMMnxWbB5eN3oWnfjsbArLH7\n91MAnTPI7OzINcb3RaNyJalQ8d+EnIXTWjx4kHtQctQoIo8rDFxcLBeGyVGunKhoPnMmd0E2YAC9\nvvYa5exnZFBBlyQJXiS5NVGhgtjOFgVAVBGlS5PVIKP0walTps18uOitf3/iK+rTh+IGnTqRiwqg\nwjYvLxp/6dKUTQSIfs+pqcCvv5IbqnRp3EE5jMSPaDnYF598AozZ1RJBuICwMDJ47o76Hn8kNkXg\n6I4UD0lOFkVyGo0Y482bwJgx4vlzPOHpU+C998jaKYirzgJUxaDixcXly7lXjf5b8dtvgslTDnO8\n/XnBYCBOf0uwhTCRuzRyQ7t2QsAaF6UxOHNo6FBahWdlkT8/I4Oymg4fFvsyxYVeT3xBL78MTJlC\nfQ54hf7991Sb0LKlUhEcPChaYi5YQNdr3Zr2GziQlA5bZ/I4w6pVlH4aHy8C7z17ksLz8qLxf/wx\nnqI4Pj/UFq/gMjKKueLjtpdQujRQwkGHBXgXV66QPnZ1zFYov/8OrF1LQWkXFypqCw4mK6RWLRrP\n2bOixuPcObo3VavSOIODBY23DaAqBhUvLrZvJ5/qfw03bph3GRXEYsjrGFu4H3LjGMrtunLFEB9P\ndQDMQVS3LgVyz5yhDCOt1rTugK/JsQYPDxL2Y8cKfiHGkiXC1QPQSpt7NBsMdG5j+m5AuKFGjaJU\n1UuXqOjMOMhrMAAGA56k2WN88meohvM4ddsTe4etxS/vHERb77MYNw4YH7IfTXAImjm/kFuIa0hm\nz6Z4yPr19D44mCyXqCi6B46OpADZ7ccWypkzFIR+HlxJKlQ8F1iqUP23w5K/uCAWQ17HFMZiCAmh\nvP/o6Lwthvh4YOZM8f7RI6VwrVKFhCFj/356vX8fWLSIhHpmpvC5A3SPXnuNgvJyyOMHc+bQ6lqO\niAgi2uOKiApBAAAgAElEQVR7rNWSUsrIoHls20YCFxDuJ1dXpWKR3zdJAgwGPNCWRYuupXFSVxML\nHYZga7clqFXxLlWH9+5N/ZtZ4Q8danqP9HqyjuRgBWCusvzQIXEPbagUAFUxqHiRYUx18G/C2bOW\nhbIlrp/LlymXPj94VhaDRkPke1wNLE/TNIdFi4D//Y+6mzHkefcNGyrTTMeNMz1HVhalpDIdxo8/\nUk2BcaxAHojetk3ZRAcwrWNYupQC9AkJ1Bdh9WqqjAZEhtOcOUp+JNn/WToNZn39EA0S1iGkqQ6b\nDW3xxrwwesbly1P8w9mZit3khIVyJSe/H1evCmU2ZQrVdLRubXo/tFqhMGy8gFIVg4oXF5L071EM\nmZnKlM769YELF8Rn8nx9S4rh++9FNzFrIUmmFNFyNGumrNbND5ydgRkzaLx50W9zppCc40h+TO3a\n1ISna1dSIizo0tLEfbt3j3iJwsIo1vDddxQkNv6OyC0udnOtXw/s2kXb+N7yPtxfwd5euIs4fsBZ\nVHPmkLtnzRp6ny2Q07fsRLcH87Da0B2z8CG++zoTGoAUS0KCMjOJhTin7LJ1wHNdtYpet24F5s0T\nY2zalBQnz/PVV8VxqmJQ8Z/D7t3mg7AvCn791Xq66UuXBI0yQAHRYsXox16smKiEBShwKqdkYMhX\nwtaiQoXc00JnzCCXhLWIiqJjABr7Tz9ZNya2FJhRuVo1UR1844Zwea1ZQ8Hyfftov717ydcOiHmk\npABDhtC4V66k45KSSIm8/DIFaHlMGzZQptChQ8DJk7SNFQKfj/fdupWsmqNHKUMIAD7+mDqtnTlD\nwW5OaQ0KwuN3P0G775rB3s0Z24KnoBV2CGHPc8tuTQCAgtTVqgn6DkdHEuy8z5499MoV1QBZEVFR\nRJsRH6/sVWFnR+eoWJHiEzaEqhhUvLhwcLAtz39B0a4dMYMaY9gw68dnnLkjD77Wr69UGrGxlit+\n8+v60WpF20lb4MYNyujhlEprkU0TrRiX3Mfv6CgsCHnTHY1G3KfOncU2duWsW0efV69ONQexsRRz\nYE4jgBTt9u3iGbIi4L4HYWH0umaNUEilStF+AQFUP8LHZbvlfj/ph8At3yOwugN+/x0oVcefMq7k\nMQI7O3InsYvI15dSTnnsjo6kAHiszHnk4EDd3Xbtou8MKwy2oHmxxBbDSy9R9p684K+QUBWDihcX\n7dtTt6znjX37TFtFApSaeO+edecwVgzyoLBxVk/lyiSQjFEQi4HdUoVh3dy2jRryAESb/ccfFJRN\nSRGZPXnhpZdEeiggFIOzM7m6fviBlOGaNeJaS5ZQOub+/dSLQO4ukfv7N22izziV8+uvxTkAUmbn\nzolUWL7Xu3fTqzl3Je9TvboIAM+bB0Oll/DrmAsY8VUZzJlD8XQ7O5CANqb+5tgOVz2XL0/j4jRb\njYbqKQwGsiC5bwPPc+1aIezZJThxIinlpk3pHlSpQlYOYFOuJFUxqHhxkVfDlaJCiRKWf3TmLAlz\nMGcxsOCwtyfLg90HlnL8C2IxsLAyztzJD7KyRF0AZ9UcPkxEcwBVBFvC9evif/mzjIykQrTMTLHK\n/vtv4e8HyMVSoQK5gq5cEfdLbjEA5EaRK03jYLtxwL5jR3EezkQyBvvxr18HMjOxC80RunoQfG/t\nxee/+iMiQoOOHWW6wMFB+R2RK4aYGEF0N3QoXS8qit7Xrk3PVGaN5JxHqxVuJ72erJj336d79Ouv\nQJ065GLq2dPmvxVVMah4cVGQFfKzgNznawxrg+NnzihrE+TC394emDYNaNJEfGbuvC+9JBrjFCVY\ncAHK5zF7Nr0uWCD6JciRnk4rWraq3NyEy6x8eUEy5+hIAeZffqF9WRjKr8dMqgAJU7mr7dgxU9cU\no3hxsaKWcyUBRCnh5ETB7ux+Mjl4/XXo9cBaqQt6LGuHt7AVbSudx1z3MbhxKAG1ahnNtU8fEtoA\npbbOnk29GWrVohX+zZvinvj7KzOw+P6ysuNmPxoNuZ4AUppLlgBffEHKgPtgMGz8W1EVg4oXFzbm\nfykwbKEY2B3B6N5dbGNBeOwYvVqq3xgwwLoKYzny2n/PHuoWZgmSRJQacmprYzx5QhlWbFUwTp2i\nV52OBHlGBq3uJUk0zGndmubKltcXXygVKMcdDAYSuLVqUWU43yuA9tdqzVt1er0YM6d89u1Lr/xM\nExJETwQAGXDEgZMl0KQJ8PXTj9Ci7mPEwgcfHXkbrdo6QONW2vQ6lSoBPj5i3pUr0wr/vffIImJF\n9uSJMv5x4ADFIVq3Ft3h2FrhZj0AuckGDBAUHMZWkcqVpOI/g6ZNgQ8+eN6jyF0xWLtKq1BBZLoA\ngin1yy/Jvy6Hi4v5FFNzNQmLF5vP+WdwPrxx4RTj/fcpiG4JLGx4/pw9JQ90eniQsP3wQ+WxHJcp\nUYJiBxMmkNVjMFCaqZ0d9TwATGsR2rSh19atyZLS60lQbtxIyoJX+P7+JDQ9PMSzYB8+QLEaLqzj\ntNy7d0loy5b9ethhAzpiABbBA0kYMtweA2sex3G8hsEL6sHzg+zAd9eu9Gxu3CBhzFlKcrB1w5Yf\nB5lnzqS4gbx96MqVpBBmzhTj47jNw4fCimAFz5/JY16dOpHLS7UYVPwnkJamXF09LwwYQKtVY1St\nav2P0ThuwKb/uHGUzfLqq4L+o2ZN87ELc1XMM2cKX785sECx1Nc5r/Ebr8L9/EjwymMHdnbkMuLm\nOgx7exJaTLLXoAH52OX3on9/8/Qfn31GcQX2vev1pAR5Hjyvfv3oe3L8OJ1/5kxy03DA95dflOME\nEKfzxMCUGWjzUxt0wno0xGG4nt2Pj/AjXsZ1HGn8Cc7V7oP3a0VBC4nSWpli/MQJUnAPH9J7FtQ7\ndghlxoqBLT92mbGFKLNOoNeTi+3gQZovAAQG0mv9+mIhYMx3tWWLeHaXLpEFVpg4khEKrRgmT56M\natWqoUaNGujVqxcyMjLw4MEDhIaGIiAgAK1atcIjGYf85MmT4e/vj8DAQERGRhb28ir+zVi3zjzF\nclHjm2+ISdMYs2crKZhzg7FQl5v+BgMJSHZxxMdTlbMxzFkMPXuSEM2mZTABBzn37jU/rrzcD2xp\ndO5MxWVXr5IwltNZaLU0H2MlUr06MHky+fA54Hr/vlIxnDpF2UIcB2CEhJA1cOkSUWW4uyu5klgx\npKeLugpfX7J+Jk+muAcAODnhDsrhi/ES3uzkBG9voPrOH5FZ0Qc9q51DR2zEaHyL3WiOa8OnY7zb\nzwgc1YEEvb296OH85ptEsHfnDmUGsduM5yG3KC1ZDHx/5BYDp6UuWiQIIzUaUsBvv23Zorp3T9Rh\nXL5MikcekC8kCqUYYmNjMX/+fJw8eRLnzp2DXq/HqlWrMGXKFISGhiI6OhotWrTAlClTAAAXLlzA\n6tWrceHCBURERGDo0KEwvAg+ZBUvJl4UriR5cxU5QkKst2iMhbo8WGhOaSxcKAQew5zFkJVFAmH4\ncPOpvezekTeyl8Mai2faNLISJk+m1NUePWi7qysVhe3YYd7HX748pfquXy8EeVYW3YvMTCo6YwFq\nPC9mUY2NJYuoZk06xlgxyAPV2Vh/pQYmRjbC//0f0OydSqiiuY5Dh0hn/PUX8BBuWJ7QAv0q7caA\nzHnovLYP6uMYNL3CaPXO1gBbQgCNz9VVjNP4VacTY+Nnzd/fMmXI0tDpyEI0psJIS6P95fePg+kT\nJ9J7Y8UACAsDEKm4NkKhfnUuLi5wcHBAWloadDod0tLSULFiRWzatAn9sqv5+vXrhw3ZjUI2btyI\nsLAwODg4wMfHB35+fjh69GjhZ6Hi34kXhSvJFtQcTZoQtw/D2GKQKw1Oo/zrL6obYKSnU8N4OVgg\nzZqlpJswhqV0W2sWZvKMILllsH8/xU5KlKCuZzodVRprtaJyW6+n8bEgb9BAXHPWLNpXrzcdR/Zi\nUqG4srLovpw4QXGGDRuI6rpyZej1pEN++gkYsrMrDAaSpYNf2o775YOw473f0a4dFUbnPEmDgcbG\n16pRg6gotm0Tc+Xn7uNDY5VnkgHi/Z9/Uhc1gOIO//sfub04bfWrryi+YLyqv3yZUk/t7ZWJAqwY\nBgwgpljuQicH37OqVUU1tI1QKMXg7u6OTz75BJUrV0bFihVRunRphIaGIikpCR7ZfUg9PDyQlB2g\nSUhIgLfMjPL29kY8l8irUGGMF4UrKbdxDBokqBZyg4uLsrPYkSN0bLt2lMp46ZL4jK+1dq1wiQBk\nRRhXRNepI6wBc2PkimNLiuH110WOvSXUqUPZM3wNdpu4uZErxMmJsqwaNiSXkySRwHN0JNfL+vVC\nIMbHi0yjFStIyGdTVudwCH38sbj2kyeicvvOHVIsAwZQcdqaNcDatTiS+SrKliU3+5o1wI4e8zHx\nQnd8/u5t9K52GsWSbtK9XL9eWeuQkkLZTSyDSpakxkapqfT+wQORIfT55zQuZn015ijiFFOASPuO\nHaNrcJB8/nzKPjJWDAEB1GBo3Tqlu++990RcoXt3ZYxryBB65UrpCxeUcQsboFBOqatXr2L69OmI\njY2Fq6srunfvjuXLlyv20Wg00OTy47b02QTmKQcQEhKCkJCQwgxVxT8RUVEkOL744vmOw5xiyMig\nldzOncD//V/e58jIIH81ByCdnEgZsEKIiKDG8IBwZQCmq0hj10+HDsrP5dDpKKtn7VrLtBi//ir+\nv3OHYinGro6WLUX9xPbtQKtW9L/BQIpLrycOIBcXUiKnTtFqOSuLqpABan4zaBD9bxwnYYvB3p6E\nb+PGIlNr7VpyVy1bRgVxBw7QPfjuO2D5ckR7N0ffewswf+4TdOtTnBrcuNWgGoWkJDoeIOG5dKkY\nu15PQr5zZxHQ3rVLuMkAchVWrUrz6NCBLBym465Ykag0OPY0YYL4HvBzktdWVK0KdOsGfPKJ+edQ\npQplVjHkyhGg7190NAW4K1ak++Hjg71792KvpfhRIVAoxXD8+HE0btwYZbJ5yrt06YLDhw/D09MT\nt2/fhqenJxITE1E+W2t6eXnhFpetA4iLi4OXORMJSsWg4j+K0qWt6wv8rGEwkJ9Cbq6npAAjR9KP\n35gHyBzMVT4z2rcnN0T37hRsP3BAVLLeuCH2M5er/vix8C8bK6+GDUkQrV0rVpdycH3B5ctCMI0e\nLVwrPM6nT2nu+/fTavriRYo5yJXU8OFE98Ar1wcP6PO8aBqcnEipFCtGvh95MR2Pkec1ciQMBw4i\nNr0iSma5YzFGY1rcJxjlvhDdvv8VuNCWsqVY8WRkiMKy8+fpj5UvQAF/tshmzRJKhOHsTM926lSy\nVOTjKl1aSaGt1SrZUjluws88NJRiDZbShlnhyN9nZCgL4XiBwl3wYLponsgxiUKiUK6kwMBAHDly\nBE+fPoUkSdi5cyeCgoLQvn17LM1OvVu6dCk6deoEAOjQoQNWrVqFzMxMXL9+HTExMagvn7gKFXK8\n/TalO5rD4cNFl7HUqpWgyGbo9ST87t2zrkmKOa4k48XPmjWUk1+xohBCO3eKz81ZDFu2UHcxvoYc\nZcuKFW3PnqZj+ugjcp+8+ip1PQNMrYWYGBKOixbReycnSt2sWpUUEs+JBWH58pTF1bWrUtDeuWN+\ntVyvHrlJVqygwrURIwS53W+/Uerm8eNAfDzuJzuiB35Htasb4fP7t4hCAxwMfBefbW5GymraNDqO\n74fcPceoXFkE6eWZVfb2ytRWgGI63btTzcXRo2QhFitG17Ik4AGhwOUcWI6O5okRLWHbNnIvyVGu\nnHXWqQ1QKMVQq1Yt9O3bF6+99hpqZtO+vv/++xgzZgx27NiBgIAA7N69G2Oyy7qDgoLQo0cPBAUF\noU2bNpg9e3aubiYV/3Hkxv9y8KDgr3/WMMeVJBfy1lg1vIo8fpzGzoFFQLnSP3BAaRXIO3eZsxhY\n+PTsaSpI5IV5774rgqMMTol1cSFB366dafaSPA3zhx/IusnIoGAr5/b/8IPIoFm3jhSSq6tyXvK8\ne0B0MJP73CtUoCAv+9M7d4bk5491FwPxv3fTUP2jliiGDNypXA93B47B+hm3EHB+HbmezMFc/LJO\nHWqYAyiV7qefmu6bkUFuJo45pKbSPH19c8+W4+ckdyVNmJB7IaExzLkv3dwEBfkzRqETX0eNGoVR\nrKGz4e7ujp3ymy5DeHg4wsPDC3tZFf8F5Mb/snat6LL1rGGu8lkuoH/9VRSZpaSQ+4cbvDA4H33H\nDuFmMUdX4e6unDMHP5lEbe5cen/oECkkdlew9fTRR1Qt/sorpuOOiSF/fa1alEvfpQu5kO7cISvF\nXNqoXCFmZJjnSlq3jhRapUrkvqpdm7bLe2nMm0c+++7d6bkFB9PxcsUnScCtW9jj9x62nSiPVf7F\ncDepL3zQGAP3r8AubEYQTgCvdQWSE4ERP4r6B3d3uq9ymMu4WrxYGZdhGKd7vvWWIOuT3wNLBIdy\n6HT0/Zw3T7Dkcic4a2FOMXz7Lc3z/fefOYeY7SoiVKiQ48mT3DuHWYMXhSvJWDgAQqiXKKHMMb94\nkVbDci4fQAR/N22ic33+uShokmeU+Pgo58yLrqdPqW8wr1579KAV8bBhSjfX9Om04vbzI1dKt27i\nMy8vEsYffECKQaejuMHFi+RecXExdZHIFUuLFmLMcrCgvHWL3CVsdWzdKvaJjyfXTJ06yo5xMlfy\nzq0ZmNn+FDbjWwzHTCyf9xSVoneh3Ee94ZyWQgVzcaUp8CrP8AJIEXLtA8NcV7lDh8xXCLOrp2RJ\nusdr1tDxJ04Iy2PBArJO8lIMlSrRfnLq7/xi6VJBqsgYM0YU3D1jvADVQyr+ddi3zzyFRH7x6quW\nszgYkqQUQLZAaiqlFjLMWQy8wqxRQ7myk7sP5ODq5iNHSLhGRdG2n34iYjQWNo6OyvadLNzktQSA\nWDEuW2Ya/wDIbRQdrdyWnk5KjJsLVagg6iRcXIi3p2VL5TFyhZiaKiiruXkNQMUBDHPcQQAQF0eW\nVXayiQQgNaAONtf/CjNmkM57b5gjmmE/7qMMZmAkXr+3FlVGdoBz7470DEaMoIwtVsryavSXXhLu\nqVq1yOXl7q5UdJJEAWBzq232/7M3g11cqamUZdWzJ1lsTHH9+DG9WqIuMRd3GjDA+rhYTIwInBtv\nLwKoikGF7WFJOOQXd+7knZ995w75xm2JL79UEKzhzTcFfw2jenXxPwuaJ0+o6MqSYjDmSnJ1pWye\nfv0orXTFChKyzLnj5yfy4I2L4IYMoQBviRKm1deenuTeMXZVPX1KioYVQ9euQrhyGqcx5EI0NZUU\nIaDsX+3goGwt6eUlri3LmDnU5DN0XRuGoZiFIFxAqeiTmDT4JmL2JyKwSgZO7HqMT/AD3PCILIuI\nCDrQzk7Z6YzPLb+fK1eSi2XxYlpVJyZSiiwHpBkpKUqFkp1RmYOGDelZs2I4dgwYP16k0z56RJYA\n30Nzz9qSYnj82LpEBUadOua3v/669ecoIFTFoML2MCb8KiiWLxdVqMZo1kxZVGRLyLuSZWRQsVHD\nhub35UYrAPn/J02iLBZjMJ0FWxdaLa1qY2Lo+PffFy0mk5JIYO3cKRSSMR1Go0ZUmBYcTL5s5kqS\nJHIVmUsTLVaMMn3kq1y5YDtwgNxPd+8Kl5E8sPvZZ2SFvP66kkTPwUGpQBIScqg49tQaiUFYgI7Y\ngA5b3kPFrBt4CTfwJcYj85OxiKr7IX7udwzj/moN929kAeCQEBL2x49T5ZqDg6liMBaytWqRVTZz\nprD42GI4dYrmtW8fuZ34ecqzsNasIWG8eLHY9tprdN3ZsylD7ulTuofGlBhyWFIM6enm3Vvm0LSp\nsM4YTP/xDOoWjKEqBhW2x0svmeWwyTdyo8QIDqZAptztYivI22oaDOaFbPv2lOlTo4ZY1eeWYccr\n/sBAai7P1BJ6vXmuJL1eZP0ApsKmRQtaETMlRnh47paTp6cQ8qwYdDpB33z1Krml9u0jl0y9emSN\nGQyiMO3iRXJR9esnYigREcAvv0AySDiF2hiGmaiF0whYPg7FkYa+85qgktM9vIWtOIG6mNn3OEbv\naYPuWAOHxvVoTrt20XXl2V3cy+HMGQowv/OOuM/mLAY5NBq6x4Ag/3N2pv2LF6dEAE5cGD9e9FRu\n3Zq+T+YWAWXKKC2z3BSDObLDVavoutYqBnMuSXMpx88IavBZhe3h66v00RcUuZHotWtHf8+CT+mN\nN0S+uCU6jAYNyLUi70GQW3V+ly7kkkpNpWIn9jXb2wtBsnUrrVA1GnJZHD5MwU9eMWdmUqcwef9m\nnY7OMWWK6JVgDrdvizgJWyF79wrh8+iRyHBi2hoPDxKccpeUnCtp5048uGfAp6XXYV/iG9DhMdpj\nMz7DdwgIKg39sROo0bkmSnmXBu5kAUtuklXEfvI1a+ia7JaRZyjxqpjHx3UUACkRb29lIPzIETpv\nnz50Tp5rWpqovub3p05R+uz48WTdjhxJn+VVqKjVmnIkmft+du5sWn/D8yiMYijC1H7VYlBhe2i1\nplkjBYE1Qp8J52yJ6tVF+qklxTBsGAXGmd8HEKvE3r1N9+dWlt26UexgyxZyc9jbk+vo9GliL42J\noetpteTaYaHm7k4uDuO0ylatRPDX3Djl1o9eT7EAbhgkX9Xa2VGMJD1dmWp76pSywZBGAykzC5EI\nxadLq6NCrxBIOj2W/XAXsfDBzxiOd/Ab6jueRqOaaSjlkEF+fjk9OVdhr1xJrivOtGKLgNt/AhRs\n5jTU2Fiy1Hr1oswieX/oc+conTM5mZ7Z7t20nc8dHy8aGtWpQ0qa5yd3i1lCUhIp9+vXKX7B9y43\nq0UOdllZqxh69TKldOcOcUUAVTGoeHFx7pySnsEcNBrlSnPaNFN6gcLAkmLIyqKaBO6QBpCPe948\n5XiSkgTtQv36tPoPDCSXRdmy5OZgPqjbt2k1zj0LgLy5kj78UAR+jYVUQAC5u3hsbF0wrl0jt5+z\nM1kMK1ZQ8Z08A6thQyR3fAcb+qzFACxCt+Ud4fV5fwzQLsXpy8VxwNAYi9PD0DjEEZqyZYVfPC2N\n7sPy5TSHL78UAl/u1794UVQg29tTtbucr2j+fMHTdPgwKVQHB+JsmjxZ7Hf/PvVFjo5Wuv44TTgu\nTtnQiNN4p0wRvRW2baPnaa6vdp8+NM4tW8gt5+REridrV/FOTmSJmjSLtoD33jNlTH31VeuPLyRU\nxaDixYW3N63OGMY8OuYQGUnHzJ9vmzFIEgm5Q4fEtsREEkpffknCePp0scpnKmfG8eP0IwcoKPv3\n30oenadPaRWs15Of//59YPVqEvZ6Pa14792ja8rrOr76ioRuWpoQrBoN+bHj4kSBlqMjCbIVK0wV\nw5w5VIyXnCyE7LVrQMWKMLiUxpMKr2DZ746oHqTHx5GtUQJpqGs4htU9NyC2difsnBWNejhO8+3Z\nk8ZZqhRl/aSl0VjlCQJsicgzoEJDhUXi6Gj6jM31oHBwIGuLrQGAngVAMRAuJqtdm2IlqanKYjvA\n1MrcvJlcdEePKhUOg91TfP8cHCi+Yq1iKFOGxmFtVtLx4yLOwihCtmFVMaiwPRISRPP4wmDgQKXf\n3s5OsIHu2kWrN2MwMdz779P7rVvJl1xQlCpFq3n5teLjiQbi4kVyvcgFVJUqJAS4KEpGGgmAfOws\n7PbsUTJqMsqXFzGae/coAykgQGkxHD5Mczt5UnD/aLWUqTRnDo23Vy86/vZtqsSNiSErhyFJkAAc\nRT0cjExBBFpj5ummaDuhHlzSElE+6Sx+P/MK5nXchmtJpTALwzAWUxC8/mM4vOIrAtcODiTQK1em\n+/XhhxQH+PBDUQX96BH1o7C3VzK91qgh7sGYMbSq52c3ZQq5bv7+m8ZeubK4nqOj8r6zS2/ZMqGI\np0+nlfrhw6YLBeOU6sxMChCfPSsYcOXYvp3ut1zp5wflyllmuDWH9etN63O8vc1TdzwDqIpBhe1x\n/jwVbRUW5riSuCBr717K1Y+JEcIHIMXAqzJJIteOOddAbjhzRuTQazQUL8nKEj9sYz8xWzXp6VSt\nmpJC/nM+nuHrS6mUq1aJDCVj0jpz1d7sN5d/duSIOE9WFmVpyYU+QEKM3SqnThFzanY1ekYGcEfn\njvcxD601kXgP8/ExfsBJ5xAMbBKNG7ed8DjNEZvrTkTruvfoHFz8lpREFsjvv9P70aNFAd/cueSa\n8vAQlBKACBTrdPT9YCFvb0/K0tWVFGpAAMVTmjUTweDt28mqatJEtPc0Vgw8d71ezPnvv5XP4N49\nWAQXtnGDIXNITi54+8yXXza1AHKDOeugfHnz8atnAFUxqLA9EhKUBGUFhTmfOqcM7txJwVju6sVg\nn7yLS8HN7h07RDMUQFQ+ly9PSsBYMcyaRa/z51OGy9mzpivLxYvpMz8/onFm94ixa8HLS6kYGjQg\nWoywMBKGq1fTdt6HayO4gQxA2T4ACbHseMHDkt749V5bdGqZDHeXLJQoAfic34z0hm/gWr8vcQHV\ncAHVsDi5G7qV3Ysye9ZQCUBKihDQ8tiDJAk20lOnSPA/fUpuJKa8+O030VuCK9h5/F27invL49Tp\n6LvTujVZDfJUZCb8s7en8yckKLmyuF5BpxPjNE5rNS5mk4ML9izts2cPEeEV1GKws8sfG8BzblKl\nKgYVtoc5criCgAUeNy1p315ZcczXunRJCKCDB8lfnJsvV6/PPVYRF6ekZJZTYuj1SsUgFxSZmTSO\n/fuFMOIfd0IC/S1ZQvuMHEnuFq1WWYlbvbpybN9+S/vExhIlBCtG3mfdOlO3CAtRBwdI06ZhFobC\nf803WJnVDcHlL+NMi0+Q8Tgdj/TOWOb/JdyWTjc9vnt3otpITSXF4OJCVdoMufKqUEHM8dEjkTa7\ne7cI7EZHkwIPCqL3TAb4yiuk8Hx8iAKiaVOxIJArIvnznDiRCs64qxyjXDkS7KVKiVoQ+TPIDTwf\nZxwIFeUAACAASURBVGfz342QEHLblS2b97lsAXb9yZGQIMgYnzFUxaDC9rAV82NgIAkJd3f6ka9Y\nYdqGkn/8/OrkRMKGg43mxmJvT1W81oJrCABykch7K8sV1ZUrYrW+ezcJJK4C5wK1TZtoZX3qFCmg\n8eOBGTOUrSLlq1Y7OypMa9VKCMfz54XQnDqVzmMGh2954y1sxc/FR2Hnp9vxp107fNIuGpWc7sIe\nOjgii3zykkRuIq4VYFdMkyZ0bmdnEvDyLJl588T/TJNhzofOK/n0dHKv8X1MSyOF2KcP8UVxi0+2\ngM6epQXB//5Hrj15NbleT8rEmGRu4kSyJpydSfHmphiYjK5mTbIEWTHkVpj5+HGR0FEAIKXArjDG\nxYvUua4IoCoGFbaHrRTDtWuUUTNuHPnmS5UyNeXljWIAsioqVqQio9wwbZrSsjlxwnJcpFYtWsk6\nOtL12bfNXDbvv08ZRfI0SW4XWacOrY5Z6LG1watiV1dynbzzDhW9FS8ugqe1atH16ten7B1WDDVq\n0DENG5LQ8/fH/v3krRmPiZiGj/Hh6+fRbUVndMRGnGz+KWq/8lQop6wsmr+8knfHDhHoZ+X26JGg\nhACUQVl5lbKDA9C3LzX7adBAWTshZ56VF55VqkT3ZNo0UtKnT9NnrBji46l+YeBAEt5yBWyJcqJm\nTREHefhQrLiNuaQA4dYJCSFuqtRUUhbGFqkc8o5sRQFWuAx5459njEIrhkePHqFbt26oWrUqgoKC\nEBUVhQcPHiA0NBQBAQFo1aoVHj16lLP/5MmT4e/vj8DAQERGRhb28ipeRNiqEGfuXCFgjfsbcMoj\nuyTk/mS5YurenSyP06dNzXD5j/zmTWXDe8bdu1TYFBYmCNk4YDxmDOWmFy9O2Ujy8wUEkDLx9SXF\nwcKMBaVGQ6tl5jgaOlTk1nOQdP9+Jbsqu6dq1MDd1u9gvd9n+NR1HnxSzqFzZwnOpSQcDf4E51Ed\njn/twrm/7TC42FIUH9KflEjlykRvYTCQv9x4JW2OUnv9ehKWvr6i94FGY8qVlJVFQjYiggQyC+5p\n03IYVWFnRxaDgwMJ5rAwUv4ArfSXLaNjFy8W9B3m8vYtKYYmTcQ9LF5c0HC/+qrpYoXbcsop1Zcu\nzZ3WuggFM7p3J+Uvx82b5H4sAhRaMYwYMQJt27bFxYsXcfbsWQQGBmLKlCkIDQ1FdHQ0WrRogSnZ\nRUoXLlzA6tWrceHCBURERGDo0KEwvAh8+ypsi3r1Ct+LARA/Zs5bl4Nz3+fPJ5eE3G1gMJAvPzmZ\nhG/JkvRDM6bwliSx+mdaisePlSmkHMx0dBQduAwGWoW+9RZZBOxjl4/xzz+VwstgoAKqv/8mIc1z\nY1+4MVdShQqCquHaNSAtDREpTdG5M+B1YQcqj+yMuXe7IFXnhA0z4xA9aiEmbKuPiPlxWIyB+LHY\nGPJi6fVkbfj5UX6+TieEm9zCWbxY6R5iODiIwOmxYyQ4u3QRbqe5c8kfzpYAz4uvIUn0LAA6T716\nlM1UsiSl1crvEVd1X7tm6kaRw5JikKNuXWVVujH4fpctK9yK9erlTothiVL9WcDcteSMts/68oU5\n+PHjx/jrr78wcOBAAIC9vT1cXV2xadMm9OvXDwDQr18/bNiwAQCwceNGhIWFwcHBAT4+PvDz88PR\no0cLOQUVNseBA5Z7LVsDV1ex0i8MjDNvOPMFoAAnC2pnZ7Evp7h+8YVwd2Rk0HyMhYmDAwmC1FQh\nnDdsIGHHLRQHDjRNc5QkoHlzEm7vvEPpmoAyLfb+feX1hg4Vbo7p05U/elZKO3dSwZlGA6SlIXK3\nPfq1SULPOpcQMiQQva99hdej5+Ov8l3x6Fwc8de5jkFtj0SUGfMenYcVMqdVygnddDqyZFq1IiUm\n91dPnapM/2SwdcTjjYkRNRYrV5Lfu3p14YYzXtGWL0/WQP36NI7QUFrNs2CWp3+ydbR5M40lPJwq\noY1x6lTeLh3jYj5j8GeSROMKCso7FbUoXUnmFMPgwco+2s/y8oU5+Pr16yhXrhwGDBiAV199Fe+9\n9x5SU1ORlJQEj+xVl4eHB5KysyYSEhLgzQRdALy9vRFvri+riueLtDTzQsJaaDT5b2VojOLFKUXw\niy/oR6vVUnWt/PvC3c2uXRO8MrNn04pWnsPv6Um1DvIq6rAwsbplCgo7O1oVx8YK6mXjBj2A4HC6\neVPZJpIFcN++5AKR/4i9vKhAqXhxWhlznQNAvvyoKDz5cSGuR1zGxihPtEtdjcE3wuF7eh1CnQ5g\n1P8ysHtONEaWXY4qumgUc80Wor17C/eUwSCsFxZyT54IIazT0Up66FBSiE2bijHwMzMO6LJikMcU\neGVfpgylpCYkELUGIJhKAXKhVa5M7UYDAkgZnT9Pz3PRIlIwcqvllVdI4UsSreSHDydXlswVDYBc\nPjNnwgSXL4tssrwUA9+Tv//OvYWsHNYoD1uhQwfqwy2Hqyt9t4sAhVIMOp0OJ0+exNChQ3Hy5EmU\nLFkyx23E0Gg00OSSLpbbZyqeE9h18jyRnk4ZMRMnUjqmry8FeLnyGSCXT3g4/Vj5ezRxIqVGXr1K\nGUwbN9K5vLwomKnXUxrm118LoX/vnnnqBUCpGFq2pBV948bUmvPpU5EaCpBLq39/QY6XmkpFaDNm\n0Od2dlSN7OFBiszZGfjxR0TfLIY+H5SE67aVCA4Pxog5gaiGv3He8VWMLz8Hg+5MRtuHv6FWwFMS\nYKGhQvF++61wf8hXmHw/SpYkIXPokBCWu3eToNfrBWXFxYtksTg70xh9fGgurHSWLhXnbt6cLACD\ngWIwly/T/c7MVMYt+LnMn0/xgw4dRMFgYCBVj3OMASAFoNcLxcuBcu4tzbCzM79yX7BAsNZaqxhW\nrCAFZTBQ6m9uhHr83SkK9OxpuVFPEaBQisHb2xve3t6ol93jtVu3bjh58iQ8PT1xO9sflpiYiPLZ\nrIleXl64JaMIiIuLgxcHpowwYcKEnL+9RdCYQoUMmZnPXzHUry+Cli1bik5uS5cKigtHR8E+un49\nKYVVq4Qbq2RJihmkp5Mw4u5lVatSJaqjo6gNaNKEVviXLinHwSvaNWtIKWRk0Fjq1hXK5LvvSJCx\nG4s5f1aupBgHxwpYoGXXUTy1K4UWP3dCVVyEu3QPV1EFcXO3ItazEb7tEoWSmQ+FsN+yRcRPBg0i\nd9Dx4yQ4WVgZDMQVBZDVcukS7ZucTM+UhWW2mxelSpkKWEkiIrzatckKYAHK9QcAWSFubrRvly6k\nQFq2JGuuTBkRMGYuKD4vQHMYNIhiMDodBVh79KDjGzUSXElarbDAjDPRLCmG06dFYWXZsrknQchr\nR7Zvp5TYuXOVit4Ycq6kZ43Dh5Vp0Rawd+9ehay0FQo1S09PT1SqVAnR0dEICAjAzp07Ua1aNVSr\nVg1Lly7F6NGjsXTpUnTK9ld36NABvXr1wscff4z4+HjExMSgvqwZuBy2nKSKfIIzRwqKy5dpdS5v\n+p5fuLpSyunYsWQltG9P2x89olXqli20muUg9L17tHqWB4CdnKgq+fhx2r5mjXJeTIDHCAlRrmB1\nOrpG376kQBISlKvy2bOVtNEAKTSdjgrtjGsl7O1zKBsiHdth4svTUEW6hriWA1BhZ3aPBYOBah+Y\nbkKebaXV0nl79qR7sH49WR/yeBBnsnz3HVkBR4+SgOG4wKRJFEOKiyPhadyEqFEjEtTXronP4uNp\nXgApDG9vGktKClWIt2wpCAXt7SlTa9MmWr1zXwsulNNoKJU0NZXcUO3aUWC8eHFKN503j9I0S5cW\nx1qrGA4cEE2I8qKOKFmSAukxMTTmYsVIqb7xhqDkNgY3RSoKrFxJVnJu6bMAQkJCECLjE5s4caJN\nLl9o9Tdz5kz07t0bmZmZ8PX1xeLFi6HX69GjRw8sXLgQPj4++D37Sx4UFIQePXogKCgI9vb2mD17\ntupKsiUePSLfeWGrI+/epR/1kycFyy7avZsEUWEUg3FqILfbZKqAHTvoNTOTitlCQ2l1mpEh3Bkv\nvSQoGH76yZRh0xgBAYJFNSqKVvssOFhInjlDrpFp0wRvEzdtT06m1XCfPhQolNNqAEDz5jhhVx+f\ndtLi8u0JGPtjCXyYshXawzIf+rlzynmzAJS7y7iQbPJk0Siob1+ypjQaCoY7OCj7O9+6RdlBPXvS\nKp+th+LFSQjzHFigjhkjxiBJgjDv9GmynB48oFjFL7+IlFtWXo6OgguJLY6bN8nquH+f0nCHDhXz\n+vpr8VyrV6eAtZ+fsBiMV+mWFEOjRrnzIRlj9GiiJV+wQCwouFLbHPJyT9kS/3RKjFq1auHYsWM4\nc+YM1q1bB1dXV7i7u2Pnzp2Ijo5GZGQkSsvMtvDwcFy5cgWXLl1Ca+M8XRWFg5sb5ZGbC5jmB82b\n0+sPP1i3f3q60jebmalsS1kQbNpEhUcMeYVzejoFiWfMIMGXlSWEKbsiGjVS1j7IO4AB5L+9f5/2\nbdeOztuggajuHTmSzuHuriyWe/hQcPRwMyIOVA8eTD7rw4dNWFMfDR+HVp1K4M2RgXgn/luct6+D\n4cMBrYOdMrYxaZIyENqsGbnHeH7yBkhOTqQAypRRxgCYldPJie7Vu+/SgsHOjqye2rVJsQ4fTimQ\nffuK/P2tW+n5cX0IIPz9/L/BQAqTuZJiY8kC0WrJJcffn7VrRbIAr8LZDWjMYyQXgl26iKC6v7+p\nMK5e3XzDm+3bzddiWIJcucyZQ8FvbglqDkXpSvqnKwYVLyAKmmudkUHCkoOZXAGbFy5cEKRouV1/\n/HhTXh9L4Px5hk5HK7y0NBLEXLz044+kRE6eFPuuWEHHmqt4BUiJnT4t+h1s3UrnLVuWVqsjR5Lw\nZ9eBfBxyhtPs2FoOMjIAvR4JcXqsm34T4zERjXAIDXEYNRb8D1XKPUHi0K8wKPAQ3MNakztMqzXN\n4JIrgfnzaZ+oKFIabDkBZCF17ixoJhjsm05PJ0th/nwq8rKzI9qOLl1IsLOC45U+QK6crCzggw/E\nebVaug9ffEHnkCQlcSErMq2WMp14wXf4MF0PoHHodEJZc/8E7tomB2cJ2dnR/OTxAIAUjzlqCGZd\ntRYeHmQZRUfTc710Sdk9zhh5xS1siYiI/LGx2hiqYnjRwe6KvMA/zmLFCq4Y/vqL8sZ5VWRtUxF2\nIxiPxTgF8KuvlAI8L7A7AiBhPn68KU0As4oyiR5Aq8yJE0mwGvuEJYmqlHncpUrRijs9XVTw8kqS\nKZ75PgQGkoA7coQEE7frzMbTp8Ck92JRA+cw+dxbuI8yGI6Z+Ag/IqJOOH4ZcRn2s2bQ+c+cIT/+\n+++LrCUGE7XxuatXpwI9c8/j4EFTxcDw8VH2pJYfL29PWbEiWUstWtC94efPZHgaDbXRbN9etABl\nxQyI1Xte/vfDh8W9jY8nIW6sXPl6/B3+9ltyf8lhKYMsv+jYkdxxlStbd77WrYFvvin8da2BJBWd\ndWIGqmJ4kfHkiTIbJDfwDykjo+BcRfyDK6xi4B+/JJFA59Vls2bW9YI+f56CnfK2mXfv0rGDB5s/\n5uRJcj0EB1PWUPPmZPEYm+Ny98HZs1S9XLw4FbbFxpL1wPtkZAhXTXAwCVqONZw9Czg7IzarIn6r\nNx2v13+KMpErcAa1cAz1cKzFWMzCMPTCSry99C1Us78MjVMxOmfJksLlVaoUKbuxY0Vdxtix9Mor\n76pVaeUsv8fMOAtQkNL4ma9dS4L355/FNvnz3LhRuP8GDyZX1Icf0rPn5889lfkeZmaKz+S8ScWK\niValcXEk7Hk8cpePPDbQu7flSmJzfTjksKbyOT+4ccOycn1euHJF6c4rYqiKobDYsYPyn58F8pMB\nIRd4ln5Uxu0MjZGURPPhH7+1qzLjFRy7CwwGErxXr9J79nnnhaws+uMYh5OT6F3MbKV16yqP8fYm\nF5CcNlmSlAHgiRMpS4exYAEFK52cyLV09iwpCb6Xjo4UUP7pJxKcgwcr3CYHS7VGk5KnsTSuOd5v\nn4gbem/8gR6oguu036BB9Przz2SNFZMphuhokcZqMFDW01tv0Xt2ty1fLsbKBXjly1NcQJ7xxPQR\nOp2woLjxvRxxcSIe8vvvpp3KLl2icdrZ0Zh5ruXK0X2NjlYGkxny55qVRQqd9xs3TjwreUKBmxsF\n6c19x6ZPF1Xt5mBrxWAr0kdbgtOfnxNUxVBYnDmj7AdsS/Bqy5ovrr09FSYFBpoPzPH5HjywfA7+\nsXNRk7s7+TnNtZ+UIzqafOCMtm1pPAaD0pqwVjFw9gfP29VVWBpaLaVTGmcYFStGZr63Nx3355/k\nR2/XjoRMgwZkVcj7LPzxBwl/Ly9ybdjZkWXCKYLffUcra19fqnvo1IliGgBWxjZC5/fKYsbwq4js\ntwK9q51GOcgyYtauFQqW3WdMl92rl7IJDStWOVNss2ZiYXDxotiH742nJ8WD3NzIjRYRQfuz+8dc\n5frIkZb7CcyeTefh78e5c+Jecc+I48fJ9VWnjiAUlCSh8Pi9HJIkuuHZ2VEs6sMP6Zh580w5sABS\nULnVE9haMZgbw38cqmIoLO7eVVIt5BePHxMfjzlwg3lr+Fm0WvIRN2qU+4/GGsGcLfzw+ec0v7x6\n1cotmyNH6O/hQ9ELWK4YzPXTNYZOR0Jo40Z6z6unAwdIkDs5UREVs33yuXlfSaIsJOYdCg+nALWT\nk1JgurnR+fbupWulpZEVsW0buTpmzgSaNMHlq3YYN46Mlrey1qMGzmLU8R7YtQvoNrku+anPnDGd\nBz+H4cPpYA6iDhlCCozB1sCRI+RWKluW5pCZSbn1QUGknIsVI8HNc2UlceSI4GtimFuJ63SiULBa\nNWGxAOS+GjtWuFSM6xt4jJJEn/n6iopkOztaQEgSWWSsJGrVIv+9mxtZSXZ2VAyXmJh7kHjVKlHB\n/NZbpt/Z6Ojc00rzC0dHcV9UAFAVQ+Exb56g8M0LT56YNvNOSyNBZAmurtYTd129WjizmAXOo0cU\n9GvWjIRRcHDux732mkjzbNSI/riYKSZGNFkZMMC065Y5yIXS1KnkxtDpKG7QubNIzWR3ycsvC3fK\nt99SZa+88U2FCuSCcXQUionrAuQCymAgv/qff+LKhOU4/fQV/IiRaIgjOHwYcHeT0AsrMA2f4FjH\nSco4uPwZLVxI12N6GL2erBCuCVm1igQop4jq9VSxe+0aKRFWbsnJFHTWaulZjBpFioOzmLj4zlzh\nlSV6j0qV6B69/DJlKsnH/+CBOM74OydXDFlZNAZ5tlDNmjRuebvNkSNJqdnZid4SMTG0EBo4kNxW\nzLskB1c+A/TbMN7n6lXz5HoFhbVcSf8hqIqhKMHVnklJwp+s1+eeffDggfWm7jffKLNzjBESknvf\n23btqMhLXvms0+VttucVLGSLY+hQ0R/ZGB9/LKgs5Iph1CgSmOXLk0CSr4zLliXlkJxMgdT0dNr/\n9GlBUscuD4DmVLIkuUiaNKF76+CQM3a9pMWhBB+8jVVo2BDovKoHotAAS9AfO3cCU2/2RG+sQKul\n78Bz7ADl+Nl3HhhIPnknJ5ESOnOm6MXQtKlY6depQ0riyRMSdLdv03ni44W7JCODti1aZCrAnJ2J\n1ZQ7mgGUUvr/7Z15XJT19sc/Mwy4orgBCirKIo4rrmWluOAulZql5ZKl3bwumXm19dq9V7HMUjP7\nZVmaLZgtaqakuaS5UC5ZSioqKiCQSyogOsA8vz8Oh+/3eWYGEFAhvu/XixcwzPI8DzPnfL9n+Rz+\nnxjh1/3Xv+h9wNf5zz/pvRkUJMTyOnbUl25u2UK7Fk2jBH1wsOvEMSO/b3ftIudosdDz+PpSSayc\nq5Cvpfw8RsVWVw1uxUWuglIAUI7h9sJhlfR0sUuw2fSKoTeLbJRr1Ch49N+2bQU7Gf7AyVpJRYnn\nysdw990iRs8fbl79FSRQtnq1MFRdu1Iohx/fv7/oSZg/Xz9p7T//EdUbb7xBDoHr+MeP1/dNeHiQ\nc2ncWIxwfP99XL9hwk+4B122/BdjvuiHFjiC48eBhOffRzSG436sowT0mTP0mLAwfdnsk0+KMkaO\nudvt5ASnTKHbJ04U1zcnh75q1CBnNmoU3Wf9enr8iBFU2suOAaBENBuwefOERAVAMXmLhZ6PFVON\nI1ABfeduv35CvVNOcvP/qlo1fXileXOhAdW0KTk+Z8Y5MFDIi8taSYzcRe6qYczY3GV0cqXtGLy9\nqQxZkY9yDCUlPFx8EAqDHYNcHVRQmdzVq6J00RlsjPlDUq1a0cpBXeHlRStXWV3VYhGVQEayskiv\nR3YMn35KMsty/0VByevPPqM6/vR0EWpxc6NQFIfdvv1WzDrIzaWKnKlTRdKfjdnKlfQ8XNJqNlOu\ngnNAEyaIDtyOHXEdlfDu1z7w9wfGhfyIkU+44xia4RX8l06Zm8l+/JEMPCfYjfF3eZfWvz/F1HmV\nL1dBSVpJGDqUqqSM0h9ZWXTbl1/qw0HbttHqmgff/PKL+Nvzz5MDvHFDKK9yh7HMPfeI9+rDD9PA\nIPn6yT9XqiTeA5mZFIJq2pR2PS+8QDmK8+f1MtsA7cAaN6Zyy6NHHRcqsmOIj3fepb9ggaieAm69\nYzCZVALagHIMJaVly8Jj8Aw7BjkcUNAWNiNDL3VghJ8nJ4eMU0oK1b4XFE4qiHr1SLfGZqOV+eef\nk8Q06w0BFBrhPMGWLdRF27gxhQoAil3//DMldPk5+cPfoIG+egkgg5aQQAZdnp5lNJhGA7NgAUkg\nLF4snOfx4+LvnKAGqCrolVeA1q2R4x+AL74AWr0xGjVNV/HZZ8CO9Vfxx4HrmPhUDvJNUFISjb8E\nRDKekYsFrlwR3b0Axe+nTHGUBElJIcmFN96g3WJqKl0PYy3/3r107h984LhT27uX7ussgW+1ituf\nesp59dHSpc4HKDlbnT/yCB0Dc/EiHf8331CyfeZMMuwsf8HwUCXekRlzHbt26Z2Ws+qpkyf1lX7G\n5yhtx6BwQDmGkuLtXXg5J3PtmmNMVa5OMWJsHDNiNtMOQd6yHznifBdilJMuiMWLqVxwxAhKRD/2\nmChd/PFHqvABaAUZGkrhEHkVnZ1Nq/PGjfUKnh4ejgaLVTrtdr1hX7BACK0x8mB5gMJIWVnO8xuP\nPiqUVxcvxoX/LsHw4bSYnzMH+Pf5ibjiXg87dwLWpc9QrN/DQ6ySP/qIwkUPPCCMHEAGX3a8W7ZQ\n/wPnZGJjqcPX11ffoNSgATm+++6jZjrW9DE6hi++oP+f3GjIQ4iCgig5/dRTwLhx4jGdOpFzZKNu\nXMUzbm50rZcvJ2fJDXVms1jcOHu/8Y6Q348FxeTbtRP5s/XrRQ9Lq1a0oxk/nvJYADlY4yxvvlY8\nJwLQ/wzQ+87VLlZRKijHUFImTaIBJEXpnKxZk77L83A5fOLMuPHq0G4n4+9sHu2gQY4fVGfP1bw5\nJRnlmb9XrpBhYzIzyRHIGkNcisgruypVhBNiCYnt2/WNZHwtevcmfZ9u3cRxGQ2PyUTHAQhpaH5u\nYwjBWUXTunVkGNkJyMedZ+TXnWqJNjgEf38g8ayGX+fGYOjVD1HZdlV/HvyarVvTqvbMGVFyKx+v\n/DufD/9veJXPSXHjMQFk2Ll5T3YMj0sJbXYM69cLZdP/+z9Kvs+YoZ/PXLmyXkPJlcYOy1k8/jiF\ngbhaTNZKcuYYeJfLSWH+nd/PMu3bCxnwQ4fE//TwYXpfNGkiHrdsWcEzlgEKzRm1krhEV3HLqBiO\n4YEHqAv1VtGvX8HDy+PiqCPVy4sMK5d2ygqTzlZgdjtVzpw5QwY9M1Osvs+fpw9adDTtGux2Wln6\n+rquEOLJYRwimT9fnx/5/HPHclo3N9FLceGC3jFwvNi4s2HHMHs2hZp4V7RggfMdQ/Xq5CCN8Waj\nQWjd2lGf/qefxKAd+ZjHjcOV7QcxGQsx9ewz+BzDMW8e4JXyh1Bt5QKAGzfoWrCDuH6dnoOrs/h/\n07o17aQSE0WoiM+bHTz/np7u2GnOjo5zDQAtKhYtorCXfL78PLVrix2Lu7vzZK2vL4WmChv76OYm\n3j9yUUG9enRdp01zbqhNJjoXHhOam0uO6NVX9WG0wkhKuvnmtO++c9xVFLaTVpSYinF1164tulJo\ncXC2EpbZuJHi9LzarFqVSvWYiAjnxlyWmrbbaQXMhsHbW6+Zn5tLBotLHl3Rvj1t1QGKD/Nqnp9j\nxQr9ypwdw5o1ZEA++IBCJfv307Gw5DWf//ffi7AVyzPn5lJ4qls3R8Pz559CJZSN1qefUqjEuEOw\nWJwn469coevZrRv+9G6Jff/8CPdN7QCvMQ/gMrywu+Mz6Iqd+msKUPPYSy+Rwz1xgjp0eeJbtWpk\nDD086DEBAfTFTo/P0WSiSqD9+8mAsdHjun9nyAlYDw/6f4wbJ0Im48eLHcDdd4tEc6VKzp+zdWv6\n/s034jZjiSegdwy7dolV97Bh9P+Rq71k2KHx/7lmTVogVK6sD7MBtEDq2VMv6ihTGka9tDufFQ5U\nDMcAlHxGgSt++om2ywXpmri5kTFdvVp8YN59Vxj5mBjnK0FeXfOq3HgfucSusFASVyvJoZBr1xwr\nYnJyKC7MXa3Z2WQ4eZzlzz/T3zt0oMqj+fP1H/YnnxThA7ud6uHT08nonD9PjkMmLo4MI6/WgXz5\n6nxpZlnig68JJ5YB3LC7IzGnPp4xL4LPn7+j37Ih6N8fONuyPz4evws+Xnkr92+/1c8Pjo6m0Bn/\n7z79lBwXO4YqVSi3sngx/Y/+8Q+9xDR/r1GD+gIsFr1jYFkQI7Jj4Gv3z38Kx+Cs6evNN+ncnb1P\nXnyR5i3IGBVbAdp9NGlCfRWbNtG5FwXOnyQl0a7h8mXXOl42GyWqzWbKK0yaRLcvXUq9D6Vh1JVj\nuOWUimPIzc1FWFgYBuWNX7x06RIiIiIQEhKC3r1747L0BoyKikJwcDBCQ0OxiefT3g6MJYYyp51g\ndgAAIABJREFUmzaJKpqi0rMnGUheORZUo2+300pq586ba6SpWZOqTXhOsLzSateOdhrvv0+/799P\n8gO9e1N8XC73A0i7ByAjyKvmAQPow87wKjUtTeQZ3nlHJBDtdgpH8eyF8+fpfqmpYrXKipz161NY\n6soVciZnzpChNxqw2rWp2kV2DFxvz/+zGjWo2gcQ0h9r1gAAEhCAtnvfRWgokFS7NfaMeBvnX1mM\n53vvR8PDGyme36kTrfYTE+k6sVNJTRX1//y6ycm0gq5Vi+L7kydT30KzZvQ83KDHzqRGDUqyA+RI\nOHn9889kvJwtGLp2FYPe5f8r/1+8vWmYDkDNfamplJg/fLhkUsyrVlHIbeJE/XGlpZFTdIXJRM45\nNbXgeQWAfvcsNQ9i3Dg69qlT6askKMdwyykVx7Bw4UJYrdb8MZ1z585FREQEjh8/jp49e2JunjRA\nXFwcVq1ahbi4OMTExGDChAmw366Ow4J2DD/+KMoti8rWrfS41FT6nb87g7XVTSaKJ8scPiy6VZ3B\n2//KlfVTyPz9aRfA8svr1wt9+z//dFwNsriaUXtJnj0QH08/z5hByequXSnE0q4d/W63U+iAq4WO\nH6duaTnkwwbnxAkxmJ7loy9fdnSMnPTt319INOTkkMOTk6MPPkiVNO7uQJUquFo7AK8FvY8WOILH\nh6QjI4OihXf5JdLxc+jQZKLj3bFDSGJ4eIg5BW5uIq9it1NeJDSUkvpbt1Lcns+JnR4fE0DVPLwL\n2bePVsVduojnBsiYzp4tHhsZKZLlcsjp99+pz2L0aGFQe/WiSqUePaiEtKiDaLiSyRXh4eIYEhJo\nF1EQsiRGQfz2m0h+DxggZD+YuXNLLjqZnl40zS9FsSmxY0hKSsKGDRvw5JNPQst706xbtw6jR48G\nAIwePRpr8lZ3a9euxfDhw+Hu7o6AgAAEBQXhZ7kB6FZRWEyzOC3xISEUWuHqkoJWcvyhSkx0nEmb\nmlqwfhDLSHt4kG4O8+yztOrMyKAPirs7reyzsylht3694zEA+kS3j49Qvly8mMoYGZOJnvP6dTrP\nmjXpcTduUNz4gw9EUvnKFREGYSNatarjuXLnrAw7hoEDxYxoeXf3/fd0/idP4uKoqXg9thuGV/8W\nYWHAt7VG4mD9AfjXXTtgmpXnXF9+WWgr8fnWrk2G0sND5A18fMTsATmsw6vRuXOFAiqfk3xcznYC\nnFRmh8gFD6wV5Aw5DOfpSc5YbhhMSKDwzEMPUWNZQTvTjRtpx7h+fcGLDYAUZXnWx7Vr9P9KTXVt\n+HknUBTHAFDo8JVXHAfxJCUJ2Y3i8swzjkUSilKlxI5h6tSpmDdvHsyS8U1LS4NPXm2/j48P0vJk\nCc6dOwd/qW7f398fySWRgygqH31Eqy5XvP9+fmiiyMgDTQBRaeQMT0+KQaelUchlzx4Rey1MK2nX\nLhFW4JJBgBK5HL5JShIy1RzaMn6A3dxo9fn666RwCejjxJyQZjw86DFHj4oxmXfdRYa1cmUyeqy7\n1K5d0UTIvvlGHz9/+WUKYbz/vsg9nDql7+o1mxGb1hgTl7ZG++Of4dsX9yAggFQcduythGbTBtI1\n2bqVDNtzz9FrcOhMlrf28CAn99NPVO3FOlB8HiwTzit4LtFlJ8AzAqZNc66Iy07GbKZrxHmdmBjX\nDVnbtonXYadt1J66cIEqugrD21v0ERRW5y87xORkeg/Vr+86V7Z/Py0Iiio2N22a8/e1/LrFpX59\n+lLcMkrkGNavXw9vb2+EhYXl7xaMmEym/BCTq7/fckaN0q+2AVqpsrjbn38WvBJzhtzsw7+7on59\nSmJmZ9Nj/vqLVujXrtGHZOfOovVBREbqlVi50Sw3Vxj5adPou3EoenAwGd8XX6QuYpuNjAEPwGnU\nSL+68/CglS/HtX18KEcwa5bYKbCxq1KFDEbv3vQ6HLOXkQ3V//0flTpyLf7OnWLVHBFBVv/FF5EN\nC8YvbIG7EIvKVUyY57cQO3O6IKrJUtx9d95Dpk2j6/vTTxQOWbmSnichgfIL8njQGjVEcxr/v6ZP\np8f7+JCz/eADcV2nTqX/k8lEx8ozAtq2pXATc/fdFIZjoyfvQNnJhYc7XhO+dhzSYccQGChyRwCt\nsI2y2s5o147+B0UpIQ0LE4PvV68WYURXtGrluqzaeAz8vJmZjiEfuTJKUWYp0VDR3bt3Y926ddiw\nYQOuX7+Oq1evYuTIkfDx8UFqaip8fX2RkpIC77yB335+fkiUKmmSkpLg5+fn9Llnca09gPDwcIS7\n+mAVl99/J6MozyBu3x74+GPn3ZhGXn6ZKnU6daIVYUErKTZ6XPrJH4wrV0TX8tWrjjX+Z89SbwEb\nhZo19YN2uE5ell3mCp70dHpONtLJycJgzZ1LcffmzcUwdmP8WN5N1KhByfm336ZwBcOOgZOMly9T\nCEEuUfzmG0pWv/wyGdpu3cghytVAfG7Sc2ZUqoMpLXfh2JmquNo5Ap4TZgEnfgROgwz+gQP0PSxM\nXN+1a/VyEca8UufOtINYtYoc0KJFYkdx8iQd99q1Qk8pO5t2V8OH61Vpjav/8+fpXOQdA19LFrtz\nZVBlY8s/Z2fTdevcmW6/fLnooyd79KCEubOqJBnOgwBU9hwWJqrAXOHrW7A6L0DXkBcBM2ZQ0p53\nx4C+h0NRYrZv347tN1s4UwRKtGOYM2cOEhMTkZCQgOjoaPTo0QMrV65EZGQkVuRp/KxYsQIP5HVC\nRkZGIjo6GjabDQkJCYiPj0cnWSVSYtasWflfpe4UAP2qrmVLMhQHDujVOAuCp3CFhNBq0Jhkk+Et\ntZeX3jGwoBrg3HCkpen7Lxo0EIJwUVEinpuTI0INQ4eKJrCLF+k+bKT+/FO8js1GzoEds7s7fXF1\nCq/0AgIocco7pIwMWjFv3EjSBAA5tEOHaHVctaq+N6JKFVpFDhtGv69ZQ6+Tk6MbVH/1mgW//AJ8\nFvACov2fQ8u3xuJiVlV8NfsYPM2ZNAZSrkR57z0KH02ZIqa5yU2GVqtYuTJ16lC55okT9P/mRO61\na2Ke8Y8/iuOyWmnHwAqpDIfiALoeJ0+K0lTOmXAlF1OQY2BDye/JjAx9lZCzHZgz5JGmN0OXLpQP\nCAgo+H7VqztqXRmRnaJRJRWg0JkcKlSUiPDwcJ2tLC1KtY+Bw0IzZ87E5s2bERISgq1bt2JmXiOW\n1WrFsGHDYLVa0a9fPyxZsuT2hJKccfiwmLp1773CmMnSAkXB15d2HgVVgcix1thYsdKfNUusCl11\nPvNq+MIFCgFxTkZ2YPLKODFR7Dzi4mjVxh/UrCz9+MhJk8Tzh4VRtciIEeRQeBXSowcl+2JjyTBn\nZdF1O3ZMrIabNBHnxM/fpg1dE4uFDEGDBoCnJ27YTLiaXQXbzzTBiYeexy+vfIvZeAEh94di/PCr\n+Dx7KN6r8RxmveGJNceaw6duLh1/QoJjAve55+j/5ew99MgjpPFkpEYN2kmNGiVW4atWOZZQ7tlD\nOQujJMbSpfr/5/799N1iIWPu60vHY3w/uDLWslhgWBg5Xfn//thjFP5zNeXP2WsURy7Cza3wcGph\njZwA7UKHDqWft2yh96DMoUOOAoOKMkeJQkky3bp1Q7c841q7dm388MMPTu/3wgsv4IUXXiitly06\nvXtTnJQHt3B56aFD+jd8Yastnq/7+ee04n7+eTLWsta9EQ7LBAXRipSNaFoardjr13ftGG7cEHIY\ngMiLyKECWdsIoFr7li1pRSxrI/H0LUDsVN5+W5TQcmK4dm1hbD09aSUeFEQ5CU7qfvUVXdNKlWhl\nzvo4cpNa1675oao//gDezFqED+vXQBX30QiqloJDzS1oVLc7OuI61oe/gQ6NzjuWTfIq2t2dztlo\nVM6epaR6aKheKNCZjg9Aq95Tp0RljKbpeygY7pswOgZA/3tAAL2vatUSISiADDlfE+NjZORQ0v33\n0/eEBL2UOOA449oZ/N69VSvyonQtW62i2unYMUfhQ1fzyBVliorR+fzSS8DmzfqkF3+I/vEPCh3w\nYJPCHENKCsViOWwAULWOMzljgIwt9xTUr0+GlJuE2JEUpJV06BAljV3FZefMEWqVXbqIpOjBgyLm\nzefUtKlIXhsN4cGDtPLnkBQ/Zto0Or6rV+k+bKh++ok++CxxwbF9vsYmE2zPvYD9tlZ46CHqq7J1\n6YaUszm4vORz/DrgJWRnA2fe/hZf1p+MDl0qOe816dCBcj4svaGbpwlKkNtsjvLP/foBX3/tOBt4\n61ZK7Lq5ieT32bOO41llPSj+37RoQUUMdru4f+PGFK7jcZvMX3/p329GAymfH883ZoorG8GJ9aJU\nMBUH42S1wnjlFdrtKModFcMxcKmqXEnC8WqTiYwNV68U5hh4dyFrwhe0xY6MFBo0rGJZqxa9Lify\nunYV8e6MDApD2GyOWkmBgWJkJVOnjrjf7t20atY0CrtYLBQSkuPdvIplp8RTvBISaBX9yivk/Pg6\nNGxIx8wKqJxYNplE4x1AO5k6dYBz53Dop3Q0PLEVlcKs6N4tF/d5/orTrQZhxY9N4O3nDsvVS0CX\nLnQIp0+TcaxTRziGGTPEzsFiEYaTE+dGEhMpgTpyJO1wXn6Zcj7Tp+ub0gBypB99ROf03ntUbOCs\niocNfaVKdH39/SmRykJ3hVXxcD8EG1JZUlwmJUWfCAboWp46VfDzO4OPyZgTKS2KEkravVuI+b36\nqggrKcoVpRZKKtPIVUFM06ZkRPbsEbdVqaJX6XQGr5rWrSOjf+AAhZJcfWA4GdekiahesdvJePFj\n5NWq3U4hm7p1xRQ0Zwqm8v2Nuw026mz8J0ygpPC1a+JvnCzn15Cf49Ilcb+JE2nH8s471DjHz1m5\nMhnyt97CjWGP4cBZP9hqtEbs9POYp1XFPN/XMHDp/ag6uC+qfiRVUq1fTwlIlphevJgG4Vy7JhyD\nccaCHApzNvuCY/oDBpBxlJOfxmsWGkpf/PrXrpFkuFHzv3JlCjsePUphs0OHRBivKHB/Sm4uOWlX\nEg7O/q+dO1PV3M1SubLoebkVXLhQcIc/QEULxR0UpSgzlJ8dw8aNN1dtkZsrwju8apM/nLm5whDt\n3EnP/9lnhVeAaJqofsnIEAk7njMM0AeDj5XrtmvVouNhRyHPVWYuXBDPYzZT/mHoUHq8UR8mOJhC\nIpUr0xeHD8aOpSTo//4nhuuYzSJGXbMmGXujM5HDHocPizLOd97RX3c3N8obWK34c+cxvL6tIxrj\nDHpeiMYEj/exI6sDNq9MxZha61B3+uOo6nZDSHs/9xztWDIzKdfC+RmrlWL5K1eSc/7+e32+RtPo\nXD08xA6Pad1aaDc9/DCFBDWNzj0hofDQh8VC/RucU5DPs25dCkl160avw/0G7dsXrtWzYYPoaShI\n28eogQXQY7iy7PBhsVsrDKPcSWmjaY6y587uoySxyz3l5z/Yv79jvLgg3ntPlGLyG1Weltapk+gP\niI2lCooHHihci0Y2kpomnA8PigfIoHDyffNmikFz9cmbb9Jr+PkJtVGe9LVzp5CVvnKF4ue86mzQ\nQC+L7O1NRvTf/9YNpUG7dhQSevllESIZM0bITXA4y91db6zk43/kEapOks9VmvD12+Y0RKSsQMjS\nafht20VsQm9kohqOHLVgfb2xaNsyhwz/kSP0Wps2UV6GHeO1a+TIOCzk7i6M/fXrFHaRHYPdTolu\nLgutUUOEergEmDGZqLyWd2GuHENkJH13VTDQqRO9X5yVXPbqVTQxO35cQY6hIHlugK5LQZIpMsZx\nqKVNUSQx4uMpj6Mo15QfxwDc3I7BuMoFhJgbQDkFNg7OwjGukDt4X3hBNAXJxumeexwdjJsbOYis\nLIpb+/lRHPnkSVE2W7myvkErI0MYwJo1xchEgHIBQUGUOD13ThiqrCzRNcu9CGzg+Dg5fPHQQ0It\n1BWtWgEjRyLbqx4OowX+pc1Fr17A0MF2pA6dhE8GrULrmHliVjI/N+ci0tPJQAYHi78ZS4Jlx8AY\ndwxbttC1bt2aDGWNGiSM5+5OOQaOqz/zDIViuBHQ1eqVS3pdGeVJkyih7cwxFDUJy860MMdQ2Apb\nVsAtiFu9YyiKpphRH0tRLik/jqFatZuTHA4Lo2ohgCojBgxwrP5o145i77Nn60dcFkTDhkIXSTbi\nssMwlj/WrUuhmTNnRKnrW2+JpDIbmatX9SWXdjtJNGzZQjFnuRKqd2+h2LlrlyiJlbsgefZyeDg5\nnaFDKZwjK33yNeVrtXix7nSTvjuEh7I+Rs0Qb0RW24K0eq3w++/AU2+3QuU2zcjgdesmHCEbOqOB\nMpupX+DGDcpryGWL48c7NhbycfEMa5OJXsvfn6q8atakhPXDD9P3jRupSupf/6IdINfyG6uFGD4+\n4wxuI84cw9ixjhIrRqpXF+dw4oTrRc2NG4XP4y5qJZBxkl1pY9Rwcsa//uXY3Kcod5Qfx1AUnRYZ\neVv98MPkBDjRCpBhSEujle3Vq6JxrCjIpYfOtJJkx9CoEYU1WErCbKbX3bmTXlPTyIhlZJAcQ3q6\nWD3zc6akkFPZulWMpQRo8AyfCzsGuanLZhMD4Lt1I8c4YQI5pr/+okE1rK4aGkoJ2DyDmZtLLQNt\nw0ywWoG0+HScOu2GFSuk/C8nWNlgTJ9Ot1er5vi/klfFw4fTboav3a5djmMweW6D3U5loixdnpxM\nORRuVBs3jqqF4uOp/JTLaZOTySG6knDIzSWnW1hPDTuGlStF8jk0VHR9u4JX1z/9RJVPzZo5v1/b\ntgUb28GD9eNXC6JBA+cT7kqLooSSPDwKvzaKMk/5cQz79rle/TmjenW94qlxG3zuHJVJyoNjhg0T\nAmoF4e4uVmZc7mnUGWLHkJsrwioNGpCR5i7b+Hg6pgMHKFnKq27Wavr1V4rF790rBPichQpkrSRZ\np4hlHnJzhZQGG/CdOykXwdILXH5rtyMbFvTrR+MfduygqkPPtZ9Q3sL4ulySqWmUVH7xRYr783F+\n/TV9ZycwdCiVlbZsKSqBsrIcwyl8PmyM+LUA2vXUrOk4TW3bNrq+APDoowWHVQYPpqRzYWGcnj3J\nqY8a5bCbKhA+7vvuowtYXL76quiGNj1dzLS4FTRqJOZ6KP7WlB/HEBJyc1ObWrTQ680YVzvsKN55\nhz54gwbRirooA0DmzhUSzN7e5FDkMsHMTOpi5YoiNtZNm+rL/Ww24azsdtGty0b05ElaqV66JJKU\nbOzkEtfkZOHgZB2f1q3FPIf0dErqHjtGP+fkUPiLdz8WC+DhgcxKtTEO76Oy6Qb2PPdVfhOr01h4\n+/ZkXN3daVX87rvCIbLkNJ8fr3pXr6bVfqVK+u5ts5k6h594Qj9HmP9PEyYIo3/9OonMyQl1QAyI\n6dSJylEffBAuefBBMSu5IDhRD4g5ysOGFV6SefiwqHC7XcOonIW9SpMOHSiHo/jbU34cQ0k5eFAf\nx968WVQUtW8v5AyK8iGOiBAyFHXqUAWPvDthg/XVV2S0uTqKu4WZsDAaUAOQwW/YkAbwmM1UgTRg\ngDiemTOpaop/lx1MZqYobZUrt/r3p4QtJ5ivXhX6QGlp0LqFi8paLy/8vikFbeaPRPrAEfis23tw\nezivOem//6UeBqNjjoykY7xwQThdLnsdPpx2bXx7tWr6kY85OWRgeaBQWhqVnU6erJeYlncMclWZ\n7KSMDstsJudS0hGSrjh40LFxzoi/vziu2+kYVKmoohQoH+8iTdPLTRd2X00jgyzPJFi7lubwMtwl\neuSIfqVVWAw1NZXCIywl/O67ZODlD/+cOfT9n/8kY+pqp9O9O1XrtGunHxIzfTqVjFarJhLcJ05Q\n0pV3DDx3wd+fQlRubmJ4yccfk6PiBC8bsTytpJ9wD5ZtD8SDO55B/To3UKcOtRLc08WOGc/m4Ktv\nPVDdQ5J5PnGCnOgff4i8xt69YlBQq1YUugGEY8jOFiWf/NpstCwWyinY7SJ8lpZGIzLd3cXkM0Ds\nGBo00Bt62QDWqyekOfjYbgX83qhXr/Dqm65dhYDc7XIMNytZoVC4oHw4hhs3ij6xKTqajEZ0NE0r\nA0TIYuRIcT/+kD//PH1xzKSwcr+TJ2k1z8lSk4mSkXKFEmO302reWcfsm28KQ8eJdW9vMqRt2tAO\nwG4XOwzeoRg/+E8/TTsYs5nE8O66i55j3Tpcu5iFpRiH/25oj3/gXbTvZEZo+s94DJ/gpxO+aGv6\nDVdqN8XRo8DyifuQnFET4/zytJRkEbrff6dS2x9+EJVdcXHCScg7MXYMbm7kPLnayWwmhwWQ8T96\nlBwgG/i6dcmZdOwoBAMBCr9xLsBuJyfMz8dUrUq7I36PsLxJdPStmQ28Z49+/rYzZMdxuxzDjRtF\nX0ApFAVQPhzDzWyRPT3JQDz3nKg0YkVQOabMBtZkohU7VwIV5hj4WOT7uTo+u512DR06OP5t6lQx\nJOeuu+i4x4yhpGirVmQk5dfgUiDjIHW7nZLU585B04BNVzpj2SZ/9J4SCn+rJ77EUJw3+yAT1fAU\n3sProR8hHsH46ImfMKvyXFTSrsPbG+iUuweeyBAr+LFjRYOc7Nj4PKtXFzF/Jjycdjmc9M7KEpo/\nbm4UXjp8mM6hfXs6v2PHxON4lkHPnpT1Zr74QuwcOAFsvN5z54qdBucWJky4eRl1V/j66hcnhc0t\n5mR5UJBwjrcaT08hqKhQlIDy4Rjsdlr5cWVNQdSsKao4eJCNM62kmjXpQ7thgz6R2L27iMObTBT3\nzsgQRpC362lpZICOHqVjMxoqq1XoIeXk6IXS5LAHQIJxLPCXk0PGMzSUjCeXWxbUIDV0KHD9Oj78\nEHji5PNYsdEbwwZm4Xe0wib0waK7P8fKKk9hPN5HZK2dcEcO5QZk5VD+zolWNzeRBJZX3c4cw/bt\n5Ii9vEjJlstkT52ifguZefPomo8aRTmPf/6TciBcyeXuTl3fchmwySRyDTyb2ni9mzShuRqdOond\nYGmGVtatEwUHaWmiLNYV3NQWH68ftnQrqVFDn8NSKIpJ+XEMgHNZZiNubiLMw4bLmWPIzRUKoVxS\n+eijFJI4dkwostpsZGx4HrKmCYmCtm3FrkTOX9StSz0Hfn5CK0mutJHnNhvhyhezmfIPEyeS7IXx\nA1+/PrB8ORAcjGxYMLveAvz738D3X1zFjseX48lv74cfzonzfust+rlTJ0p42+0FOwYZ2THwNczO\nFr0Z3brRnOalS0X10l9/kZPga797NzB6NIWTMjPp9rwpf7Ba6XGnTtHuRJbE4N3Ym2+Sk2TBPGcG\nv08f+h/a7RRSuXKl9JKxHTuS4wFop2ecgWHk1KmiTwNUKMoYJfrUJCYmonv37mjRogVatmyJRXkD\nXy5duoSIiAiEhISgd+/euMzzCABERUUhODgYoaGh2LRpU9FeyGi8CsJsdmyWYuMgdyfffz81vgFi\n7vPcuaJihv9mt1PSlQ2zUSuJZ1jLhvvCBUo+ZmdTE1V2tjB0AwZQDuH8eTKkX3xBsXCGy01PnKBy\nW3l4+pAhVC64YwdQsyZ+O1cXvcY3RW1cwne5fRAbC1jvDyajKA9KmjmTdh98LUwmWnlv3Oh4bZ0Z\n0qefFo11/HcOg8nnXLOmcAzsiPj+16+La+Xh4fg6DRvqm7P4evGqv107cjZubo47LhnuqeCE+51K\nxv73vyIfolCUM0rkGNzd3fHWW2/hyJEj2Lt3L9555x388ccfmDt3LiIiInD8+HH07NkTc/PE0uLi\n4rBq1SrExcUhJiYGEyZMgL0oxl4ODRRG3bqOTThshLhxjH/mmcCaRnXv/v5kkOSdCStK8mPlOPOO\nHUK+WWbKFFr1RkWJ23il3aEDbfkvXKBVcFycviNb5soV6jOwWIAOHWCbOgPbFh7C6hcP4png79B1\ndm/cc30LTiIQu8NfzK+Kzddv4l1OnTr6ZjBNoz6CTp2EDg/nM+QGOaZ+fbE74LLeu+927AvRNOEY\neOfBkhNy57qHh6O8SZUqopoLcNwxfPAB7Tb8/R3HRWZmCoc6diw9D1/vO1W++dJLopdDoShnlOhT\n4+vri7Z5jV3Vq1dH8+bNkZycjHXr1mH06NEAgNGjR2PNmjUAgLVr12L48OFwd3dHQEAAgoKC8LMc\ngnGFlxflDYriGIKCSHJaZvx4qpk3jkfs0YMM9bvvinGIKSn6HYfdTklNHmbfrJmQnZAdiLwy5TJR\nNpy1a4sqn927KYG6ciUZYzlxbZTlsNuB556DVqUqLu47hb7PNMMkvI1Vl/sivV5THF19GK/mvAhv\nuJgTYLPRa9WuTc7oyScpts9hMpNJHBfnApzJKg8bJmZTs/CgEaNjkGcr8HcOk3l40P+kQwdynpGR\nYlfExpQdw/nzlEDmZG67do5Db7KzqXQ2NpYqnT7+WN8zoVAobopSW06dPn0aBw8eROfOnZGWlgaf\nvCoaHx8fpOXFWs+dOwd/qUnJ398fyUXVKCpIp+X558WKdts2YNYsCqWwhMbQoRQf/vVX8RhNIyfA\nK0uuvElOpn4BTjRev075AVkOgh8j5yzkY+NVt6aRk7h4Ucya9vCgVfqFC/T6R49Sw9TFi6Lihh2L\n3Y6NG4FmUaNRHymw1j2P39AaXy5IwrJlgG9tqdfAmWwCVwedO0ex9/ffp2a8vXv1Qmc2G51jtWrO\nq7L8/KgqZ/5810lwk4lCYzxfwFi+KztReafWqxc1zxn7SLh82GKhsBfrMh08KMpkGR49Gh1NuQ5u\nxmvUyPkOqDh8+WXhgnsKxd+EUpnglpGRgSFDhmDhwoXwNCTlTCYTTAXEeV39bVbfvvllfuHh4Qj/\n/nt9s5S80j52TIRNLl8mwbmwMAqViBfS7zhu3KBKlpkzaaUJiBh35cpUKfSf/5CRiYwkh6NpZNQq\nVaLQkmwkx42jFTkgkrXONHI8PGgozOjRFALh1fuECfnHd7FtT7y9tyPSFjTD1+ev4f2YW4LEAAAg\nAElEQVRGC9DnypuoNOFLIEYTq2A2ojNmOB95yY4hJ0ckQu12mgGRnCwqa777jnZZsuSGkbVrKRfz\n7LPO/24ykTOYOFHvGD74QH+/J54Q87XtdnKMstyGPOAIcK2VxA1+/NoAFRukp8Nh9Gpp8NBDdO7s\n4BWKMsD27duxXVZULiVK7Biys7MxZMgQjBw5Eg/kzRP28fFBamoqfH19kZKSAu+8RKWfnx8SOQEJ\nICkpCX75gXE9s77/Xih/Gtm2jQwZDwTJzKQQAlfbmM0UPtm6lZxGs2autZJmzaJQUpUqwrh260bf\na9USK055lfvUU2ScJk6kx7VsKUJRQMHy4Pv30/c8426HCW9jEvbNaY67LJnYjG+wbm8k+mMD7roS\nh5gqbyIsbhPF0IOCyDmyzv8nn9D3AwdoR/Dpp/p5v/37k4PUNNql7NtH5yx3VAO0Ej5wgFbmrsJ1\nw4cDAQGuz+vf/6avsWPp98BASlDzNWctKdlRfP21SEizcZ84Ua9xxf+nBQvomjujShXKeXDPhNlM\nVUN54cxS41Z1VCsUxSQ8PBzh4eH5v79aEsFGiRKFkjRNwxNPPAGr1YpnJHGtyMhIrMgrRVyxYkW+\nw4iMjER0dDRsNhsSEhIQHx+PTvKqvqicPk3Ogbl2jYzC1auOteuhoVThs2sXrSaZlStFeKNlS6Bx\nY/E32bDLlUw1a1K1TYMGVErq5kZhFh5+ThdF9CQA+pUtAJw9Cw3AnD8ehAkaWlU6jk+qjke3wCRs\nOROIjn3rYv+jb2H987vx0rPXEGbJm/27aRN1OMvyHQEBZAQvXxZjPOVEttVKDuull+h31jSqVo3C\najxTgHcgycn685X57DN9cthIzZq0C+NV+sKFVBnEjqFSJce5ygEBjqGeiRP1uxLZobtK5loslLuJ\niBCP8fLSz51QKBRFpkQ7hl27duGTTz5B69atEZZXmhcVFYWZM2di2LBhWLZsGQICAvBFXrjEarVi\n2LBhsFqtsFgsWLJkSYFhpnxyc8no8xxiLi9luLu1alW638aN1FjESWSLRaiRfvIJGRp+juPHyZlw\nYhTQV7IEBIjJaX36ULgpO5sGknz5JRlVeS4CQCvVr78mhyEbvunT8cu8bXgNM3DyZBi+nLYHHru3\n4z7rRXiFNcGTnvH0en36Uzhr/XpxDiz4x1VRkyZRQjkwkBwRz542maikdcECkrIICREzgzk5XK0a\nOYn4eDLo8sjQgti9m46Hd08yubkUJuMdR24uvTbnPozd4Xa781BP48b6nQHvGNq0oYZCrrhyxsyZ\ntCO7VQ1lNzNBUKEox5Rox3DvvffCbrfj119/xcGDB3Hw4EH07dsXtWvXxg8//IDjx49j06ZN8PLy\nyn/MCy+8gBMnTuDo0aPoI4/aLIhz5xxHP8qwkbdYKKF77RrlCJYvp9vffZe+P/44zVE4dIjE8wAK\nH8llpcyLL1LndGAgPe+ePbSazsykCTYAOaKcHDGM3mYjJyEbwexsICkJ51EXE/aMxP1YiyCcwMbo\nqxhy358YVHcPvOq5k0Pz8yPpi+bNKf/BjVqAOP+UFDKWX39NRrp/f4rbyzH5u+6ilbe7u16+o39/\nCt3Urk3OgndZvEPiBL4rXnnFdXMeOwZ+LTc3Civ17Em/16ypHyP66af0/yisaqhuXUqUc7lrQe8D\ngJyRry/9vGKFMuYKRTEoH53PbGj373dMZgIilGOxiMTm229TGOXee0UDGSeMo6P1Wjyylg2HxObM\nEav0tWvp9VlB1DiPmMnOFvIaeY4hc947+Lbh0wjCCVwzV8MRtMBcPA9fa20ypNnZFMpq0IDyJK1a\n0TGzVpKvL5WLPvssVfDwavrKFTGlLj5eNNiZTNQA1rChcAxyHmf1alp9AyJRy+dTWOnwli3OxQIB\nOtaHH9ZXE125InIIVaqQA/3sM9qlcYjIYnEska1fX38da9QQO4eNG4WGkzMCA0WvhTyboqTUrasm\nkykqDGXXMdSoQYaD5yInJtIq2dlsZm4+M5v1oxx37KBJZU2a0O/16ullsDt2pBCSXDI7Y4bIRfTr\nJ8Imchjk+nUKJQEihLN6NRnkp5+GBuAHew9E9d6KIMtpvIA5+KzLO1je8BXUwmVKINetSyv2oCBy\nOJwozc6mfEjXrtRn8eWXNCt5zBiaIcF5EZbottupIornM3A/AesOmc10PnJvRUiIyFOYzSTxza9d\nGK5Cfzxe9N//pt/d3CgPNH68/n5jx1J+g3cAgYH6ZDNA1UXGBD47Ej8/vbyIs+PjqrWCjvdmWbNG\nn9hXKP7GlF3HcOUKlQbKej4nT1J5Z7t2+tWgm5vIPzirs9c0Enrz9dU7BpOJjDMbpokTKVErS1Sw\nsZSfNzGRxOCAfOmFs9n1kZ1rRtyNpuiPDRg7qRpOB3THp4/F4He0xoBIN3JCwcEUijKZhNiczO95\nyWazmSp5eIRo796UZGYJcU9PkvXo0YN+ZwXX+fPpMTabCO1ER1P1FV8L+Tsb6GnTKGFbXN59V5Sq\nAlQyHBcnzu/4caoau3GDwmEsjX7hguMktZwcR8fw6qvCwRcEOwabrfD73gz33CNKohWKvzll1zEA\nFNcHhGM4fZp+Dg4WJaUAGcC//qKVvyv5a5OJkscXL4oEJj8HSywsXCi0kuTHApS3kOcEAMAff+BM\njzHoiJ9hHdMRdesC3bENEdiME699iffezESPKnnnkJVFJaP/+x8ZGJuN5kV8+KE+bs8r7t27KYHM\nGMM8mkaOcskS+p2NZmgoOZCvv6ZdAms+sXaQXI7q5SVCNM5GdzrD1Qr8yhV6PX6OJUsopyCL7vHu\nStZKMiagL12iHZnRMRRUKms8Pt5pKhSKYlG2HUOrVrTKNHbF3ncf7RhmzCCDw8YnPZ0SwnIsmMMK\n/Bw8F7hpUzGCU9NobCbH2+WQCjunK1coIZ3XwJeO6niq0wGE4ig64hdc+s87OHYMSIYfnm2zFR4j\nHqKdgXH28bBhVN+fnU3hn/R0YTABveGVh67IDV4jR5LhrV5dSJHLj+valYx0cLAwsCwjIedEgoLo\nGCpXFh3LhcHXzIjJpH+O6tWpdJY7rHlnMm8elcm60jLiDnTjTuqll/R5IVcMG0b5pSpV9KJ8CoWi\nyJRtx6BpFCIJDHQUbQNoRZ2bS0nb5s3pZy8v4KOPxH327aOuYhaLY8LCqPzxgQdIW+fYMTLWaWn6\nHYOMzQa0b4/kiDGIwGZkmyrhZ3TCEvwTHm658K1tgwW5+pg5axGFhIgk8KxZYtYxIIz66dP6ATDs\nTJYvp90KG8v77yeZDw8PRznuY8foXDkExyEVLy+S9WjUSDi+Dh3o9smT6Tm5gsgVDz/sOF9BPgej\nc/noI1H9df48dTk/9xzlVwYPpuuRkUHNc0aMDoMdY9++QvbcGVWq0DU3mQruu1AoFC4pu44hN5cM\nCMd1zWZHw2WzkbNo144MwdChVAK5fbtYqe7aRUbIGAIZNUqUfgJCSmP1ajKcnJAFcBqN8Sam4tUN\nHTH77Ei0+XEhumIHljX5H1rhMN2Jx3jWrKlXcX32WeobmDNHNOUlJNDrMWYzOYpXXqHyUYYdA+8K\n2DFyFZamUVPXihWijJMb3CwWuobsGD75hEJo/fuLip+XX6ZjXryYdkKFlYJGR+uT+zImE+VQ5F2O\nLI/iKsRns4kOdj5unlYnw4Nvvv9e39x4u/juOzUER1FhKLuO4T//oUQql59++ilVuLDMAhvNCxeo\nyoXnCC9fTrkGDidNnUohCKNjsFhoFS+P3WTNkWrVgM8/R9yuv/AEPkAbHMKP6Ibk7Hr4NSMIy3t+\ngtcxA6YAqVt6xgwyHDxGFBDjRbOzyWBzv8XHHwv5BoCM5rBholGPq26ioij/wDuFypXp+XfvJiPM\neYFRo0R3s6xO6qyJjPMtDz9M/QyccC6ocawomEy0g+H/FwAMGiSS9PfeS47XeCznzon8B0DnyhVU\nMnJC2pjruR0MHkwy6QpFBaBsO4YaNcTvjRuTU3jiCVpxBwXR7ewgDh0S9+XVaXg4dR7n5OhXrL16\nkSMxmWi0ZLVqQMOGyB73NBZgCp45MRF9+wJdI73QFKdwHCFYiwew1LoQq7u8hYGPedEql0X95Koa\n465m504RuklMpNJT+Rj556pVKazSsqV+5sP+/fT3e+4hozl4MO2CvvuOnIOx4YwNPJeyBgSIJPuW\nLaInJDqaDDAbcuPgnZtlwAAafyk7IqNwYaNG+sf89JPj0B15boPMpk1ixR4cXLJjLQ42m8hPKRR/\nc8quYwBEfJ7hkExgoEjYOssH8O6AQzvZ2WRw+vQhY/jFF5RUTk8nQxkYiCvWuxGO7diIfmjYkHqx\nYmOBFzEHPshb0Xp6CmmG7t3FSp6dgTOD5uEhjlHThHy3m5sYXt+zJzmG9HRKmPbvT6ttgI7bbNaX\nSvK85ZYtKREtw6vypUsptLZ2rYjzp6Q4Vh+xrlNJm7cqVdJ3WfOxF9R5HBQkGvoYT0/njWmffEK7\nHJtNCPUpFIpbQtl2DH/9ReGOpCSh98MqnQzLWcgrXtbKuXaNdh1smL//nkoha9WiVTcAnDyJvX82\nRfvlE2FFHGLsfTBtGvWMBQaCykejomh3sGAB1dPzKv311+k1eIUvG0WW8rZY9JLS8fH0s9lMj/fy\nolJT3jG4uVFY6emnxf149c94elLfQHa2ozNibaamTckJZmcLB8shODmsxvcvSBG2KNhslPiVr0Hb\ntnpBQRm7nY6tdm3aVTG1ajkPaz36KPWh8E7vTqDkNRQVhLLtGNzdyTl8+qnoQJZDRoCYyibHqc+f\np9zDlCkUgpo/Xyh7jhpF8f3du3ERtdGqlw96XPoSE7AESxvNFjZn0SLqNJ41i/IUVarQ6h+gHAFA\nhvfZZ0UXtGyk2Rm4uYkSTNmw9OxJ58dhpqpVybnVrk0eifsSzGZaKU+dKh4rh1+MjqFuXX2CWF7F\njxpFyW358XxOpeEYuOyVGT6cqp2csXmzECdUKBRlirLtGHglfugQGbgvvnAMeXh76xOezD/+Qcv+\n5s0pbMQG1M0Nudt24KuM3miIRAxqdAh/JVzGs7WWw3TmNN3nxg3aKbCUdUwMPU9GBv0uG1EW1AOc\nOwaLRYRG2rWj2QctWtBOwcNDVA316kX195UrU+8GJ1htNlopyw1ebNiNOwmAdiqylLnZTMfOfPyx\n/vh796ZQDk+7Ky43btD5saAgQBVKPCDISGFhprKGl5fQgVIo/uaUygS3W4KbG+0GGjSgxOPFixST\nZ+MMkH7NsmX0gd2wgfoV2ren+/HS/+23KWyUm4tcmLH6o2t45aMuSEcfbOz4b3Srtg84PVsY8qtX\nKRZ/+TJVQY0bJxKiAwfSfZyJzm3eTMng3Fwy8s2bUyzcz48M4OTJIrH82290fAsWCP2d11+n78nJ\nlFhmh9G1q+O14eSrM8ewdCkZaCY3l7quf/6ZdjZGY9ypkz6UU1xsNgrTLVlC5wqQE0pIEDIeMq6S\nzGWVr75yXaqrUPzNKLuOISeHwkGAMCCyU3joIVHbzkN2WNZZdgwAoGlYva0upiEBdXARCzEFfRED\nU52+QMx24L33RGPZihWOhpKNGIdJ2LjKM6SvX6eqFc6BVKkiwlx2OzVm8Q6IndDly44rde5QrlqV\n4u2tWlGp69y5dGwA7R7c3OgaSP0WAMiRyWRmUvVPx45UFXSrVunHjpEjlRPbPKfZGSYTVXZdv+68\nPLWswZpUCkUFoGyHklirX15Z8qr9kUfI0PXqJQzuvn3ifpIB/DnDiglvN8f/4R84gHbohxiYAOpj\nAPQyzhaLowAbzzDmBPiaNfRdvl9sLP2d+wLWrxfO5vvvHTuvATL28+frO3kXL6bva9dSfiUnh56H\nG/bk83N3dz7P4ORJcc1GjaJdBAv3GVfpJ0+67ma+Ga5fp+eXHYMs42GE73enEskKhcIld8QxxMTE\nIDQ0FMHBwXjttddc35Fj6fKqun9/ur1/fxKK++c/hfFh6WkAMJuhaTTBs3/CYswdfwr9sRH5ZsjP\nj2QxPDwohs9zU93cnDuGbdtEEplXjzw6sn17MrgZGeKYBw0Sg4IA56JuNhs9huc+AI6GMjeXKp+M\nYy1XrnStbdS6tWiWAyg0duaMEJiTyczUX7fi4kwS47ffhEChEVdaSQqF4o5z2z+Vubm5mDhxImJi\nYhAXF4fPP/8cf8hzimXc3Ch8IjeNVa9OxuT6dRE6GjiQDDEb39WrkVGnMUaMoEX5G2OOYHTEOf1z\njxpFSeHx48nBsHG2WMQ4TcYY6hgxgr6z9lH16voZCM6QQyqTJolyWUA4g+PH9XOpAVp1f/kl5TCM\nx+BstW23k1OQDa6bG12bJUuAxx7T35/luUsKVz/Jr3vwoJARN3LffXT8rnYUCoXijnHbHcPPP/+M\noKAgBAQEwN3dHY888gjWrl3reMf0dIrBW636GcPt2tFKX9MoURwQQAN1jhyhfoN+/WA/l4rRaa8j\nOxv45cdrGDMnBBa3vJXyPfdQWGjOHNoBsDPhyWRubmQohwwRISpjApjDMdu2UTjKy0vo/siOgbWC\nrFb9lLjjx/X5ErOZ5DIGDdJ3e9evTwnP4hhu2Wn8+itJU8glt8xvv1F3dUkxmej55VLYvXvp+Z1h\nVL1VKBRlhtvuGJKTk9GwYcP83/39/ZEsT1BjBgygZrIOHUgY76GH6PYWLcggc9PamTOU+Dx9Gn/F\nHsOCmGbwmv4k0tIo2lJ163oKN/FK9plnxA6gTx8yZoAwmDVrAs2aUWks72TkMFD16sIxeHrS/Xfu\nBF57jZwJJ8K3bAGeeopCNRaLvkN70yZ9XiEpifomjh+n52epjZQUWnW/+aZenK4g5GY6xpVaLKAX\n8ysJJhOdOzf2AeTkjN3rDDsF5RgUijLHba9KMhXREMzauZMM2qxZCA8PR3hAAMWFGLnT2WzGavtg\nzMRcWBGHzwZ/hYjlj1JTb926VN3EBpMdAUBGa8AAMrwTJ9JtDzxAX/x3QO8YeFwmo2mUS/jf/0gu\ng/Mh3G9x7Zq+kU2mWjVyHDabCDWFhtLPdepQ/8bRo7TLuZldw8mT+pxEQeGaSZPE+ZaE6dNpznRR\nMZlc5x8UCkWR2L59O7az+Gcpctsdg5+fHxJ5QDyAxMRE+PMKWWIWQHFoHkn5zTck37B1q4NQ3ey0\nJ7Gy5hgsDFiMgYfmAKGzgDylB1StSvkIFqLjZrgpU+j2K1foPqxbBJDR2rUL6NKFfpdX3EYtn8BA\ncgIBAfqKH35MnTrAL7/oV8aLFpExdnOjXVHbtqLqaPx4Covt3Ushs+IkZ41NgEOG6HMaMu7upTPk\n3lgmWxgmk2u5DIVCUSTCw8MRzoUzAF599dVSed7bHkrq0KED4uPjcfr0adhsNqxatQqRkZHO78zG\n1GajMEVoKLB7Nw4gDH0Qgx7YggZIxorMIdg2eQ0Gds1L3H77rcgZuLvT4y9eJOPIF27dOmomO3yY\nVvVhYfrXZuE5gIy8pyfJbpw9q+9ziI6m8JZRQI7zC2azY7hk0iRaXc+aRbuMunXFjsFioRDX5MlF\nH7dZGN7eRZuXfDuRhwgpFIoyxW13DBaLBYsXL0afPn1gtVrx8MMPo7ks2SDDK/CtW4Hvv8eN7n3x\n9Lf90Q0/ohmOoRV+xwb0x1GEor7bnyL0s3+/6E3w8KDEblgY7UBYu+j0aZLBXrOGuo7lUE29evRc\nPEsgO5vi5XyfL75wPFZjF7KPT9GayTjMxI7B05OcRuvWpecYymKS99dfgc6d7/RRKBQKJ9yRzud+\n/fqhX79+hd+xcmUy4p99hqv26hj7KJB5qQYOoQ2aQpqT/L//UWWS2UxDeXbsoPnM69aJWPv162Km\nAVfhJCbSa6SkCGE8vu+1azQQByBZh/r1xS7CmbEursQD6yW1bk1ls8ePU3XVihUkNV0aYZ677xaK\ns2WF8qaVpFBUIMpud5G3NzB5MjJOpmHDygsI3bkUdeoAX3ZdRE6henUhz9y6NZWxtm1LekWAMNKB\ngaT7zw1Ybm6iO9nfn0ped+wQxj4ri0plL10SHc5s9O+5h353tvpevJikNZw1srni1VeByEjSKxo7\nluY83Lihn1BWGo6hUiWhLltWKG9aSQpFBaLsOoa0NJyz1cV9Y4PwBJbhAZ+9eO89oJp7Xlw6PZ0q\njEwmvfIoIxsdnlr255/UP3DXXWK1uncvMHOmqLffvZsMqdxPYDRiziqMqlenx95M6OfSJXotOYx1\n9qxIRN97b+k4hrJIerrr5jeFQnFHKbOOISeHmnv7ds3COTTAkjbv0R/kuHSLFsDnnzsfYi+HKXg4\nTWamY/iialUyviwXbbGQ4xg4kPofANFpzSxZ4vh63PV8M7H8RYv00hUA5S9YnM/NreAehKLyww/A\nCy+U/HlKk5vZWSkUittKmVVXHTCANgT/m5kB03sQ4Z927Sh0dP48NX+5Mnjyip+Tr6tXO96vShVK\nFHMMno2xr68QtDObqZ+AkcdsMgXJYRSEcbC97FgsltIxoJcvi3nJCoVCUQhldsfg7U2LZ7fK7mS4\nOTnMejyXLlFjWWqqvrQUIA2lNm3E788/T5PRnJGaqtchYl0hGWN4yFlDWGloDh06pN8hlNaOwdk5\n3WmaNdM3KSoUijJDmXUMS2b/BU9zJsXu5YayypUphKRp1JtQvz4NwGHCw+lvvJPQNJKV5h2HEZbe\nZozyFQD1T3CjHeA8aVrcHQNz6hQlzyMiSOAPoClyxv6K4rBzJ8l4lyVKqxRXoVCUOmX2k+k5KBz4\n4ANyDLIUhtVKZZw5Oc71g378kaqMGE2j5i5XpZF3363/G4eWZNzcREUS4NwxvPGG8xGjBVGlCjBy\nJP383Xf03dNTyHZ06eJ4LMXBSWf5HUc5BoWizFJ2P5m//aYXmjPiLOHM8NwEgIzPzYRkWrakITtG\n+HkA59pDOTn68FVRqFNHaCtxg1tAgBjdWVo884yjnPedxttb78AVCkWZocwmnwE4N+a//eaYU1i5\nUvw8aJAYusN4eJQ81OPhQcYsJYWa54wYJTGKwsSJQjqDHcODD+qF/koDs1kvh10WcHenHhOFQlHm\nKLs7hqZNhdR2Vpao3vnjDxLUk6uO5GTwunVUuZSSIm5jvaSScO+9pK109qzzvxslMYrCjBki92Hc\nOSgUCsUdouw6hk2bxKS0Dz4gIwqIEk5fX/q9Y0fH1fDzz+vDFFevivnLJcFkci0tXZwdgww7CDXR\nTKFQ3GHKrmOQDeSSJcLoZmbSroH/bpyFDFA384IF4vexY4UjKS65ufpeBmfHWxKJh8aNyaGphKxC\nobjDlF0rVKuW+PnoUSGjHRtLjsFioVzC4MHOHy8b6WXLRKimuFy9ShVMrujenXoiboZp04RSa4sW\nNG5UoVAo7jBl1zEYR0KyoZ88mUpDf/sNaN7cdeiltJU7jYPujaSnk1rrzXDhgqMkhkKhUNxhyk+m\nkx1Ds2b0BZCmkauYf2krd9psBZd8Xr8uZkkXlY8/vvkSV4VCobjFlN0dg5FKlfS/nzpFYzm7d3e8\nr8UCNGpUuq+/f79zVVXmxo2bdwwA7RoUCoWiDFFsxzB9+nQ0b94cbdq0weDBg3HlypX8v0VFRSE4\nOBihoaHYtGlT/u379+9Hq1atEBwcjClTphT9xUJDKR4vk5TkfJIaQH0GN9uFXBiFhaaKs2NQKBSK\nMkixHUPv3r1x5MgRHDp0CCEhIYiKigIAxMXFYdWqVYiLi0NMTAwmTJgALc+oPv3001i2bBni4+MR\nHx+PmJiYor3YqFGOWkc8Y8EZs2YBTz5ZzDNzQWHNccoxKBSKvwnFdgwREREw5xnmzp07IykpCQCw\ndu1aDB8+HO7u7ggICEBQUBBiY2ORkpKC9PR0dOrUCQAwatQorOEJac6QwzbPPw80aKD/e07O7Z1j\nXL8+yX27om1bx47rwvD1Be6/v0SHpVAoFKVNqSSfP/zwQwwfPhwAcO7cOdx11135f/P390dycjLc\n3d3hL4m5+fn5ITk52fWTFpY87tXr9tb8Fzaj+GadAkDjNktb/kKhUChKSIGOISIiAqlOavPnzJmD\nQYMGAQBmz54NDw8PjOAu5VJi1uzZ+YY/PDwc4c4M7+0cJu/uLnSNSosnnyx7s5gVCkW5Yfv27di+\nfXupP2+BjmGzPMDGCcuXL8eGDRuwZcuW/Nv8/PyQKNXzJyUlwd/fH35+fvnhJr7dz8/P5XPP+s9/\nxC8ZGY4x/OBg5xVJt4rmzYFdu0r3OSdPLt3nUygUFQrjovnVV18tlectdiwmJiYG8+bNw9q1a1FZ\nMtiRkZGIjo6GzWZDQkIC4uPj0alTJ/j6+qJGjRqIjY2FpmlYuXIlHnA2Cc0Zzz0HfPSR/ramTUmJ\nVKFQKBSlSrFzDJMmTYLNZkNERAQA4O6778aSJUtgtVoxbNgwWK1WWCwWLFmyBKa8JPGSJUswZswY\nZGVloX///ujbt2/RXmzdOr2aKlBy0TqFQqFQOMWkabczUF80TCYTdIdlMgF9+wIbN4rbIiOBceNo\n/kJ55ckngaFD6dwUCoWihDjYzmJSfiQxjOWq69bdmeMoTc6fp9yJQqFQlCHKh2P488/SrwgqC6xb\nB/Tpc6ePQqFQKHSUD62kevUcu4p/+MH5bObyxs0qsioUCsUtpnw4Bmfs3k2zGRQKhUJRqpRfx5CV\npbqGFQqF4hZQfh3DtWvlX7SuWbPiSWkoFArFLaT8OoZFi1zLbpcXfHzKv3NTKBR/O8pHVZIz5swB\n2rW700dRMh57zPUEOoVCobhDlI8GN4VCoVAUSmnZzvIbSlIoFArFLUE5BoVCoVDoUI5BoVAoFDqU\nY1AoFAqFDuUYFAqFQqFDOQaFQqFQ6CixY5g/fz7MZjMuXbqUf1tUVBSCg4MRGhqKTZs25d++f/9+\ntGrVCsHBwZgyZUpJX1qhUCgUt4ASOYbExERs3rwZjRs3zr8tLi4Oq1atQlxcHGTlocMAAAbaSURB\nVGJiYjBhwoT8utqnn34ay5YtQ3x8POLj4xETE1Oyo68A3IpB3+UVdS0E6loI1LUofUrkGJ599lm8\n/vrrutvWrl2L4cOHw93dHQEBAQgKCkJsbCxSUlKQnp6OTp06AQBGjRqFNWvWlOTlKwTqTS9Q10Kg\nroVAXYvSp9iOYe3atfD390fr1q11t587dw7+/v75v/v7+yM5Odnhdj8/PyQnJxf35RUKhUJxiyhQ\nKykiIgKpqakOt8+ePRtRUVG6/IGSsFAoFIq/CVox+P333zVvb28tICBACwgI0CwWi9a4cWMtNTVV\ni4qK0qKiovLv26dPH23v3r1aSkqKFhoamn/7Z599pj311FNOnz8wMFADoL7Ul/pSX+rrJr4CAwOL\nY9IdKBURvSZNmmD//v2oXbs24uLiMGLECPz8889ITk5Gr169cOLECZhMJnTu3BmLFi1Cp06dMGDA\nAEyePBl9+/Yt6csrFAqFohQpFdltk8mU/7PVasWwYcNgtVphsViwZMmS/L8vWbIEY8aMQVZWFvr3\n76+cgkKhUJRByqTstkKhUCjuHGWq8zkmJgahoaEIDg7Ga6+9dqcP55aTmJiI7t27o0WLFmjZsiUW\nLVoEALh06RIiIiIQEhKC3r174/Lly/mPcdU8+HchNzcXYWFhGDRoEICKey0uX76MoUOHonnz5rBa\nrYiNja2w1yIqKgotWrRAq1atMGLECNy4caPCXIuxY8fCx8cHrVq1yr+tOOd+083FpZKpKAVycnK0\nwMBALSEhQbPZbFqbNm20uLi4O31Yt5SUlBTt4MGDmqZpWnp6uhYSEqLFxcVp06dP11577TVN0zRt\n7ty52owZMzRN07QjR45obdq00Ww2m5aQkKAFBgZqubm5d+z4bwXz58/XRowYoQ0aNEjTNK3CXotR\no0Zpy5Yt0zRN07Kzs7XLly9XyGuRkJCgNWnSRLt+/bqmaZo2bNgwbfny5RXmWuzYsUM7cOCA1rJl\ny/zbbubc7Xa7pmma1rFjRy02NlbTNE3r16+ftnHjxgJft8w4ht27d2t9+vTJ/91Y3VQRuP/++7XN\nmzdrzZo101JTUzVNI+fRrFkzTdM0bc6cOdrcuXPz79+nTx9tz549d+RYbwWJiYlaz549ta1bt2oD\nBw7UNE2rkNfi8uXLWpMmTRxur4jX4uLFi1pISIh26dIlLTs7Wxs4cKC2adOmCnUtEhISdI7hZs/9\n3LlzuorQzz//3GVFKFNmQknJycloKM0/5sa4isLp06dx8OBBdO7cGWlpafDx8QEA+Pj4IC0tDYDr\n5sG/C1OnTsW8efNgNou3ZUW8FgkJCahXrx4ef/xxtGvXDuPGjUNmZmaFvBa1a9fGtGnT0KhRIzRo\n0ABeXl6IiIiokNeCudlzL05zcZlxDHJlU0UjIyMDQ4YMwcKFC+Hp6an7m8lkKvDa/F2u2/r16+Ht\n7Y2wsDCXzZIV5Vrk5OTgwIEDmDBhAg4cOIBq1aph7ty5uvtUlGtx8uRJLFiwAKdPn8a5c+eQkZGB\nTz75RHefinItnFHYuReXMuMY/Pz8kJiYmP97YmKizsv9XcnOzsaQIUMwcuRIPPDAAwBoFcAd5ykp\nKfD29gbgeI2SkpLg5+d3+w/6FrB7926sW7cOTZo0wfDhw7F161aMHDmyQl4Lf39/+Pv7o2PHjgCA\noUOH4sCBA/D19a1w12Lfvn3o0qUL6tSpA4vFgsGDB2PPnj0V8lowN/OZ8Pf3h5+fH5KSknS3F3ZN\nyoxj6NChA+Lj43H69GnYbDasWrUKkZGRd/qwbimapuGJJ56A1WrFM888k397ZGQkVqxYAQBYsWJF\nvsOIjIxEdHQ0bDYbEhISEB8fny9KWN6ZM2cOEhMTkZCQgOjoaPTo0QMrV66skNfC19cXDRs2xPHj\nxwEAP/zwA1q0aIFBgwZVuGsRGhqKvXv3IisrC5qm4YcffoDVaq2Q14K52c+Er68vatSogdjYWGia\nhpUrV+Y/xiWllSApDTZs2KCFhIRogYGB2pw5c+704dxydu7cqZlMJq1NmzZa27ZttbZt22obN27U\nLl68qPXs2VMLDg7WIiIitL/++iv/MbNnz9YCAwO1Zs2aaTExMXfw6G8d27dvz69KqqjX4tdff9U6\ndOigtW7dWnvwwQe1y5cvV9hr8dprr2lWq1Vr2bKlNmrUKM1ms1WYa/HII49o9evX19zd3TV/f3/t\nww8/LNa579u3T2vZsqUWGBioTZo0qdDXVQ1uCoVCodBRZkJJCoVCoSgbKMegUCgUCh3KMSgUCoVC\nh3IMCoVCodChHINCoVAodCjHoFAoFAodyjEoFAqFQodyDAqFQqHQ8f9XtAL0cMCUgQAAAABJRU5E\nrkJggg==\n", - "text": [ - "" - ] - } - ], - "prompt_number": 20 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "This simple change significantly improves the results. On some runs it takes 200 iterations or so to settle to a good solution, but other runs it converges very rapidly. This all depends on whether the initial measurement $Z$ had a small amount or large amount of noise. \n", - "\n", - "200 iterations may seem like a lot, but the amount of noise we are injecting is truly huge. In the real world we use sensors like thermometers, laser rangefinders, GPS satellites, computer vision, and so on. None have the enormous error as shown here. A reasonable value for the variance for a cheap thermometer might be 10, for example, and our code is using 30,000 for the variance. " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "####Explaining the Results\n", - "\n", - "So how does the Kalman filter do so well? I have glossed over one aspect of the filter as it becomes confusing to address too many points at the same time. In these example we do not have 1 sensor but 2. The first sensor is the RFID sensor that outputs the position measurement, and the second sensor measures our dog's movement using an intertial tracker. How does our filter perform if that tracker is also noisy? Let's see:\n", - "\n" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "sensor_error = 30000\n", - "movement_sensor = 30000\n", - "pos = (0,500)\n", - "\n", - "dog = DogSensor(0, velocity=movement, noise=sensor_error)\n", - "\n", - "zs = []\n", - "ps = []\n", - "\n", - "for i in range(1000):\n", - " Z = dog.sense()\n", - " zs.append(Z)\n", - " \n", - " pos = sense(pos[0], pos[1], Z, sensor_error)\n", - " ps.append(pos[0])\n", - "\n", - " pos = update(pos[0], pos[1], movement, movement_error)\n", - "\n", - "p1, = plot(zs,c='r', linestyle='dashed')\n", - "p2, = plot(ps, c='b')\n", - "legend([p1,p2], ['measurement', 'filter'], 2)\n", - "show()" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "display_data", - "png": "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\n/D86QZGQicY8YwAAAABJRU5ErkJggg==\n", - "text": [ - "" - ] - } - ], - "prompt_number": 21 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "This result is worse than the example where only the measurement sensor was noisy. Instead of being mostly straight, this time the filter's output is distintly jagged. But, it still mostly tracks the dog. What is happening here?\n", - "\n", - "This illustrates the effects of *multi-sensor fusion*. Suppose the dog is actually at 10.0, and we get subsequent measurement readings of -289.78 and 301.43. From that information alone it is impossible to tell if the dog is standing still during very noisy measurements, or perhaps sprinting from -289 to 301 and being accurately measured. But we have a second source of information, his velocity. Even when the velocity is also noisy, it constrains what our beliefs might be. For example, suppose with the readings of -289.78 to 301.43 we get a velocity reading of 590. That matches the difference between the two positions quite well, so this will lead us to believe the RFID sensor and the velocity sensor. Now suppose we got a velocity reading of 1.7. This doesn't match our RFID reading very well. Finally, suppose the velocity reading was -678.8. This completely contradicts the RFID reading - we may not be sure from these few values which sensor is most inaccurate, but perhaps by now you will trust that the gaussians expressing our beliefs will correctly handle these cases. It's a bit hard to talk about while working with 1D problems, so we will take this topic up in great detail in the next chapter where we develop multidimensional Kalman filters. Remark\n", - "\n", - "Besides that issue, we are modelling the noise in our sensors using gaussians which model their real world performance. We are multiplying the gaussians (probabilities) when we get a new position measurement, adding the gaussians when we get a movement update. This is algorithmically correct (this is how the histogram filter works) and mathematically correct - why wouldn't it work? \n", - "\n", - "#### Summary\n", - "This takes some time to assimulate. To truly understand this you will probably have to work through this chapter several times. I encourage you to change the various constants and observe the results. Convince yourself that gaussians are a good representation of a unimodal belief of something like the position of a dog in a hallway. Then convince yourself that multiplying gaussians truly does compute a new belief from your prior belief and the new measurement. Finally, convince yourself that if you are measuring movement, that adding the gaussians correctly updates your belief. That is all the Kalman filter does. Even now I alternate between complacency and amazement at the results. \n", - "\n", - "If you understand this, you will be able to understand multidimensional Kalman filters and the various extensions that have been make on them. If you do not fully understand this, I strongly suggest rereading this chapter until you do understand it. Try implementing the filter from scratch, just by looking at the equations and reading the text. Change the constants. Maybe try to implement a different tracking problem, like tracking stock prices. Experimentation will build your intuition and understanding of how these marvelous filters work.\n", - "\n" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "author notes:\n", - " clean up the code - same stuff duplicated over and over - write a 'clean implemntation' at the end.\n", - " \n", - " " - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "ename": "SyntaxError", - "evalue": "invalid syntax (, line 1)", - "output_type": "pyerr", - "traceback": [ - "\u001b[1;36m File \u001b[1;32m\"\"\u001b[1;36m, line \u001b[1;32m1\u001b[0m\n\u001b[1;33m author notes:\u001b[0m\n\u001b[1;37m ^\u001b[0m\n\u001b[1;31mSyntaxError\u001b[0m\u001b[1;31m:\u001b[0m invalid syntax\n" - ] - } - ], - "prompt_number": 22 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "sensor_error = 30\n", - "movement_error = 2\n", - "pos = (1000,500)\n", - "\n", - "zs = []\n", - "ps = []\n", - "\n", - "\n", - "for i in range(100):\n", - " pos = update(pos[0], pos[1], movement, movement_error)\n", - "\n", - " Z = math.sin(i/3.)*5.\n", - " zs.append(Z)\n", - " \n", - " pos = sense(pos[0], pos[1], Z, sensor_error)\n", - " ps.append(pos[0])\n", - "\n", - "\n", - "p1, = plot(zs,c='r', linestyle='dashed')\n", - "p2, = plot(ps, c='b')\n", - "legend([p1,p2], ['measurement', 'filter'], 2)\n", - "show()" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [], - "language": "python", - "metadata": {}, - "outputs": [] - } - ], - "metadata": {} - } - ] +{ + "metadata": { + "name": "", + "signature": "sha256:0131b9ce88d9ff5da30b8c74995895cb6cb161758766f2e1e2599c4b05cebb6c" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#Kalman Filters\n", + "\n", + "\n", + "Now that we understand the histogram filter and gaussians we are prepared to implement a 1D Kalman filter. We will do this exactly as we did the histogram filter - rather than going into the theory we will just develop the code step by step. \n", + "\n", + "#Tracking A Dog\n", + "\n", + "As in the histogram chapter we will be tracking a dog in a long hallway at work. However, in our latest hackathon someone created an RFID tracker that provides a reasonable accurate position for our dog. Suppose the hallway is 100m long. The sensor returns the distance of the dog from the left end of the hallway. So, 23.4 would mean the dog is 23.4 meters from the left end of the hallway.\n", + "\n", + "Naturally, the sensor is not perfect. A reading of 23.4 could correspond to a real position of 23.7, or 23.0. However, it is very unlikely to correspond to a real position of say 47.6. Testing during the hackathon confirmed this result - the sensor is accurate, and while it had errors, the errors are small.\n", + "\n", + "Implementing and/or robustly modelling an RFID system is beyond the scope of this book, so we will write a very simple model. We will start with a simulation of the dog moving from left to right at a constant speed with some random noise added. " + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import numpy.random as random\n", + "import math\n", + "\n", + "class DogSensor(object):\n", + " \n", + " def __init__(self, x0=0, velocity=1, noise=0.0):\n", + " \"\"\" x0 - initial position\n", + " velocity - (+=right, -=left)\n", + " noise - scaling factor for noise, 0== no noise\n", + " \"\"\"\n", + " self.x = x0\n", + " self.velocity = velocity\n", + " self.noise = math.sqrt(noise)\n", + "\n", + " def sense(self):\n", + " self.x = self.x + self.velocity\n", + " return self.x + random.randn() * self.noise\n" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": "" + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The constructor (__init__()) initializes the DogSensor class with an initial position (x0), velocity (vel), and an noise scaling factor. The *sense()* function has the dog move by the set velocity and returns its new position, with noise added. If you look at the code for *sense()* you will see a call to *numpy.random.randn()*. This returns a number sampled from a normal distribution with a mean of 0.0. Let's look at some example output for that.\n", + "\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "for i in range(20):\n", + " print (\"%.4f\" % random.randn())," + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": "" + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You should see a sequence of numbers near 0, some negative and some positive. Most are probably between -1 and 1, but a few might lie somewhat outside that range. This is what we expect from a normal distribution - values are clustered around the mean, and there are fewer values the further you get from the mean.\n", + "\n", + "Okay, so lets look at the output of the *DogSensor* class. We will start by setting the noise to 0 to check that the class does what we think it does" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "%matplotlib inline\n", + "\n", + "dog = DogSensor (noise=0.0)\n", + "xs = []\n", + "for i in range(10):\n", + " x = dog.sense()\n", + " xs.append(x)\n", + " print(\"%.4f\" % x),\n", + "plot(xs)\n", + "show()" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": "" + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The constructor initialized the dog at position 0 with a velocity of 1 (move 1.0 to the right). So we would expect to see an output of 1..10, and indeed that is what we see. If you thought the correct answer should have been 0..9 recall that *sense()* returns the dog's position *after* updating his position, so the first postion is 0.0 + 1, or 1.0.\n", + "\n", + "Now let's inject some noise in the signal." + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "def test_sensor(noise_scale):\n", + " dog = DogSensor(noise=noise_scale)\n", + "\n", + " xs = []\n", + " for i in range(100):\n", + " x = dog.sense()\n", + " xs.append(x)\n", + " p1, = plot(xs, c='b')\n", + " p2, = plot([0,99],[1,100], 'r--')\n", + " xlabel('time')\n", + " ylabel('pos')\n", + " ylim([0,100])\n", + " title('noise = ' + str(noise_scale))\n", + " legend([p1, p2], ['sensor', 'actual'], loc=2)\n", + " show()\n", + " \n", + "test_sensor(4.0)" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": "" + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**note**:*numpy uses a random number generator to generate the normal distribution samples. The numbers I see as I write this are unlikely to be the ones that you see. If you run the cell above multiple times, you should get a slightly different result each time. I could use numpy.random.seed(some_value) to force the results to be the same each time. This would simplify my explanations in some cases, but would ruin the interactive nature of this chapter. To get a real feel for how normal distributions and Kalman filters work you will probably want to run cells several times, observing what changes, and what stays roughly the same.*\n", + "\n", + "So the output of the sensor should be a wavering blue line drawn over a dotted red line. The dotted red line shows the actual position of the dog, and the blue line is the noise signal produced by the simulated RFID sensor. Please note that the red dotted line was manually plotted - we do not yet have a filter that recovers that information! \n", + "\n", + "If you are running this in an interactive IPython Notebook, I strongly urge you to run the script several times in a row. You can do this by putting the cursor in the cell containing the Python code and pressing Ctrl+Enter. Each time it runs you should see a different jagged blue line wavering over the top of the dotted red line.\n", + "\n", + "I also urge you to adjust the noise setting to see the result of various values. However, since you may be reading this in a read only notebook, I will show two extreme examples. The first plot shows the noise set to 100.0, and the second shows noise set to 0.5." + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "test_sensor(100.0)" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": "" + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "test_sensor(0.5)" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": "" + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You may not have a full understanding of the exact *meaning* of a noise value of 100.0, but as it turns out if you multiply *randn()* with a number $n$, the result is just a normal distribution with $\\sigma = \\sqrt{n}$. So the example with noise = 100 is using the normal distribution $N(0,100)$. Recall the notation for a normal distribution is $N(\\mu,\\sigma^2)$. If the square root is confusing, recall that normal distributions use $\\sigma^2$ for the variance, and $\\sigma$ is the standard deviation, which we do not use in this book. *dog_sensor.__init__()* takes the square root of the noise setting so that the *noise * randn()* call properly computes the normal distribution. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Math with Gaussians\n", + "\n", + "Let's say we believe that our dog is at 23m, and the variance is 5 ($N(23,5)$). We can represent that in a plot:\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import gaussian\n", + "gaussian.norm_plot(23, 5)" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": "" + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This corresponds to a fairly inexact belief. While we believe that the dog is at 23, note that roughly 21 to 25 are quite likely as well. Let's assume for the moment our dog is standing still, and we query the sensor again. This time it returns 23.2 as the position. Can we use this additional information to improve our estimate of the dog's position.\n", + "\n", + "Intuition suggests 'yes'. Consider: if we read the sensor 100 times and each time it returned a value between 21 and 25, all centered around 23, we should be very confident that the dog is somewhere very near 23. Of course, a different physical interpertation is possible. Perhaps our dog was randomly wandering back and forth in a way that exactly emulated a normal distribution. But that seems extremely unlikely - I certainly have never seen a dog do that. So the only reasonable assumption is that the dog was mostly standing still at 23.0.\n", + "\n", + "Let's look at this in a plot:" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "dog = DogSensor(23, 0, 5)\n", + "xs = range(100)\n", + "ys = []\n", + "for i in xs:\n", + " ys.append(dog.sense())\n", + " \n", + "plot(xs,ys)\n", + "show()" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": "" + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Eyeballing this confirms our intuition - no dog moves like this. However, noisy sensor data certainly looks like this. So let's proceed to see how we might solve this mathematically. But how?\n", + "\n", + "\n", + "Recall the histogram code for adding a measurement to a pre-existing belief:\n", + "\n", + " def sense(pos, measure, p_hit, p_miss):\n", + " q = array(pos, dtype=float)\n", + " for i in range(len(hallway)):\n", + " if hallway[i] == measure:\n", + " q[i] = pos[i] * p_hit\n", + " else:\n", + " q[i] = pos[i] * p_miss\n", + " normalize(q)\n", + " return q\n", + " \n", + "Note that the algorithm is essentially computing:\n", + "\n", + " new_belief = old_belief * measurement * sensor_error\n", + " \n", + "The measurement term might not be obvious, but recall that measurement in this case was always 1 or 0, and so it was left out for convience. \n", + " \n", + "If we are implementing this with gaussians, we might expect it to be implemented as:\n", + "\n", + " new_gaussian = measurement * old_gaussian\n", + " \n", + "where measurement is a gaussian returned from the sensor. But does that make sense? Can we multiply gaussians? If we multiply a gaussian with a gaussing is the result another gaussian, or something else?\n", + "\n", + "Of course the answer is 'yes', or this chapter would be for naught. It is not particularly difficult to perform the algebra to derive the equation for multiplying two gaussians, but I will just present the result:\n", + "$$ N({\\mu}_1, {{\\sigma}_1}^2)*N({\\mu}_2, {{\\sigma}_2}^2) = N(\\frac{{\\sigma}_1 {\\mu}_2 + {\\sigma}_2 {\\mu}_1}{{\\sigma}_1 + {\\sigma}_2},\\frac{1}{\\frac{1}{{\\sigma}_1} + \\frac{1}{{\\sigma}_2}}) $$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's immediately look at some plots of this to inform our intuition about this result. First, let's look at the result of multiplying $N(23,5) $ to itself. This corresponds to getting 23.0 as the sensor value twice in a row." + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import gaussian\n", + "def multiply(mu1, sig1, mu2, sig2):\n", + " m = (sig1*mu2 + sig2*mu1) / (sig1+sig2)\n", + " s = 1. / (1./sig1 + 1./ sig2)\n", + " return (m,s)\n", + "\n", + "\n", + "xs = np.arange(16, 30, 0.1)\n", + "\n", + "\n", + "m1,s1 = 23, 5\n", + "m, s = multiply(m1,s1,m1,s1)\n", + "\n", + "ys = [gaussian.gaussian(x,m1,s1) for x in xs]\n", + "p1, =plot (xs,ys)\n", + "\n", + "ys = [gaussian.gaussian(x,m,s) for x in xs]\n", + "p2, = plot (xs,ys)\n", + "\n", + "legend([p1,p2],['original', 'multiply'])\n", + "show()" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": "" + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The result is either amazing or what you would expect, depending on your state of mind. I must admit I vacillate freely between the two! Note that the result of the multiplation is taller and narrow than the original gaussian. If we think of the gaussians as two measurement, this makes sense. If I measure twice and get the same value, I should be more confident in my answer than if I just measured once. \"Measure twice, cut once\" is a useful saying and practice due to this fact! \n", + "\n", + "Now let's multiply two gaussians (or equivelently, two measurements) that are partially separated. What do you think the result will be? Let's find out:" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "xs = np.arange(16, 30, 0.1)\n", + "\n", + "\n", + "m1,s1 = 23, 5\n", + "m2,s2 = 25, 5\n", + "m, s = multiply(m1,s1,m2,s2)\n", + "\n", + "ys = [gaussian.gaussian(x,m1,s1) for x in xs]\n", + "p1, = plot (xs,ys)\n", + "\n", + "ys = [gaussian.gaussian(x,m2,s2) for x in xs]\n", + "p2, = plot (xs,ys)\n", + "\n", + "ys = [gaussian.gaussian(x,m,s) for x in xs]\n", + "p3, = plot(xs,ys)\n", + "legend([p1,p2,p3],['measure 1', 'measure 2', 'multiply'])\n", + "show()" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": "" + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Another beautiful result! If I handed you a measuring tape and asked you to measure the distance from table to a wall, and you got 23m, and then a friend make the same measurement and got 25m, your best guess must be 24m. \n", + "\n", + "That is fairly counter-intuitive, so let's consider it further. Perhaps a more reasonable assumption would be that either you or your coworker just made a mistake, and the true distance is either 23 or 25, but certainly not 24. Surely that is possible. However, suppose the two measurements you reported as 24.01 and 23.99. Surely you would agree that in this case the best guess for the correct value is 24? Which interpretation we choose depends on the properties of the sensors we are using. Humans make galling mistakes, physical sensors do not. \n", + "\n", + "This topic is fairly deep, and I will explore it once we have completed our Kalman filter. For now I will merely say that the Kalman filter requires the interpretation that measurements are accurate, with gaussian noise, and that a large error caused by misreading a measuring tape is not gaussian noise. So perhaps you would be justified in thinking that a histogram filter will perform better for the human readings, and the Kalman filter will perform better with sensor readings that have gaussian noise.\n", + "\n", + "For now I ask that you trust me. The math is correct, so we have no choice but to accept it and use it. We will see how the Kalman filter deals with movements vs error very soon. 24 is the correct answer to this problem." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Implementing Sensing\n", + "\n", + "Recall the histogram filter uses a numpy array to encode our belief about the position of our dog at any time. That array stored our belief that the dog was in any position in the hallway using 10 positions. This was very crude, because with a 100m hallway that corresponded to positions 10m apart. It would have been trivial to expand the number of positions to say 1,000, and that is what we would do if using it for a real problem. But the problem remains that the distribution is discrete and multimodal - it can express strong belief that the dog is in two positions at the same time.\n", + "\n", + "Therefore, we will use a single gaussian to reflect our current belief of the dog's position. Gaussians extend to infinity on both sides of the mean, so the single gaussian will cover the entire hallway. They are unimodal, and seem to reflect the behavior of real-world sensors - most errors are small and clustered around the mean. Here is the entire implementation of the sense function for a Kalman filter:" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "def sense(mu, sigma, measurement, measurement_sigma):\n", + " return multiply(mu, sigma, measurement, measurement_sigma)" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": "" + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Kalman filters are supposed to be hard! But this is very short and straightforward. All we are doing is multiplying the gaussian that reflects our belief of where the dog was with the new measurement. Perhaps this would be clearer if we used more specific names:" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "def sense_dog(dog_pos, dog_sigma, measurement, measurement_sigma):\n", + " return multiply(dog_pos, dog_sigma, measurement, measurement_sigma)" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": "" + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "That is less abstract, which perhaps helps with comprehension, but it is poor coding practice. We are writing a Kalman filter that works for any problem, not just tracking dogs in a hallway, so we don't use variable names with 'dog' in them. Still, the *sense_dog()* function should make what we are doing very clear. \n", + "\n", + "Let's look at an example. We will suppose that our current belief for the dog's position is $N(2,5)$. Don't worry about where that number came from. It may appear that we have a chicken and egg problem, in that how do we know the position before we sense it, but we will resolve that shortly. We will create a *DogSensor* object initialized to be at position 0.0, and with no velocity, and modest noise. This corresponds to the dog standing still at the far left side of the hallway. Note that we mistakenly believe the dog is at postion 2.0, not 0.0." + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "dog = DogSensor(velocity=0, noise=1)\n", + "\n", + "pos,s = 2, 5\n", + "for i in range(20):\n", + " pos,s = sense(pos, s, dog.sense(), 5)\n", + " print 'time:', i, 'position = ', \"%.3f\" % pos, 'variance = ', \"%.3f\" % s\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": "" + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Because of the random numbers I do not know the exact values that you see, but the position should have converged very quickly to almost 0 despite the initial error of believing that the position was 2.0. Furthermore, the variance should have quickly converged from the intial value of 5.0 to 0.238.\n", + "\n", + "By now the fact that we converged to a position of 0.0 should not be terribly suprising. All we are doing is computing new_position = old_position * measurement, and the measurement is a normal distribution around 0, so we should get very close to 0 after 20 iterations. But the truly amazing part of this code is how the variance became 0.238 despite every measurement having a variance of 5.0. \n", + "\n", + "If we think about the physical interpretation of this is should be clear that this is what should happen. If you sent 20 people into the hall with a tape measure to physically measure the position of the dog you would be very confident in the result after 20 measurements - more confident than after 1 or 2 measurements. So it makes sense that as we make more measurements the variance gets smaller.\n", + "\n", + "Mathematically it makes sense as well. Recall the computation for the variance after the multiplication: $\\sigma^2 = \\frac{1}{\\frac{1}{{\\sigma}_1} + \\frac{1}{{\\sigma}_2}}$. We take the reciprocals of the sigma from the measurement and prior belief, add them, and take the reciprocal of the result. Think about that for a moment, and you will see that this will always result in smaller numbers as we proceed.\n", + "\n", + "\n", + "#Implementing Updates\n", + "\n", + "That is a beautiful result, but it is not yet a filter. We assumed that the dog was sitting still, an extremely dubious assumption. Certainly it is a useless one - who would need to write a filter to track nonmoving objects? The histogram used a loop of sense and update functions, and we must do the same to accomodate movement.\n", + "\n", + "How how do we perform the update function with gaussians? Recall the histogram method:\n", + "\n", + " def update(pos, move, p_correct, p_under, p_over):\n", + " n = len(pos)\n", + " result = array(pos, dtype=float)\n", + " for i in range(n):\n", + " result[i] = \\\n", + " pos[(i-move) % n] * p_correct + \\\n", + " pos[(i-move-1) % n] * p_over + \\\n", + " pos[(i-move+1) % n] * p_under \n", + " return result\n", + " \n", + " \n", + "In a nutshell, we shift the probability vector by the amount we believe the animal moved, and adjust the probability. How do we do that with gaussians?\n", + "\n", + "It turns out that we just add gaussians. Think of the case without gaussians. I think my dog is at 7.3m, and he moves 2.6m to right, where is he now? Obviously, $7.3+2.6=9.9$. He is at 9.9m. Abstractly, the algorithm is *new_pos = old_pos + dist_moved*. It does not matter if we use floating point numbers or gaussians for these values, the algorithm must be the same. \n", + "\n", + "How is addition for gaussians performed. It turns out to be very simple:\n", + "$$ N({\\mu}_1, {{\\sigma}_1}^2)+N({\\mu}_2, {{\\sigma}_2}^2) = N({\\mu}_1 + {\\mu}_2, {\\sigma}_1 + {\\sigma}_2)$$\n", + "\n", + "All we do is add the means and the variance separately! Does that make sense? Think of the physical representation of this abstract equation.\n", + "${\\mu}_1$ is the old position, and ${\\mu}_2$ is the distance moved. Surely it makes sense that our new position is ${\\mu}_1 + {\\mu}_2$. What about the variance? It is perhaps harder to form an intuition about this. However, recall that with the *update()* function for the histogram filter we always lost information - our confidence after the update was lower than our confidence before the update. Perhaps this makes sense - we don't really know where the dog is moving, so perhaps the confidence should get smaller (variance gets larger). I assure you that the equation for gaussian addition is correct, and derived by basic algebra. Therefore it is reasonable to expect that if we are using gaussians to model physical events, the results must correctly describe those events.\n", + "\n", + "I recognize the amount of hand waving in that argument. Now is a good time to either work through the algebra to convince yourself of the mathematical correctness of the algorithm, or to work through some examples and see that it behaves reasonably. This book will do the latter.\n", + "\n", + "So, here is our implementation of the update function:\n", + "\n", + "\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "def update(pos, sigma, movement, movement_sigma):\n", + " return (pos + movement, sigma + movement_sigma)" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": "" + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "What is left? Just calling these functions. The histogram did nothing more than loop over the *sense()* and *update()* functions, so let's do the same. " + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# assume dog is always moving 1m to the right\n", + "movement = 1\n", + "movement_error = 2\n", + "sensor_error = 10\n", + "pos = (0, 500) # gaussian N(0,50)\n", + "\n", + "dog = DogSensor(pos[0], velocity=movement, noise=sensor_error)\n", + "\n", + "zs = []\n", + "ps = []\n", + "\n", + "for i in range(10):\n", + " pos = update(pos[0], pos[1], movement, movement_error)\n", + " print 'UPDATE:', \"%.4f\" %pos[0], \", %.4f\" %pos[1]\n", + " \n", + " Z = dog.sense()\n", + " zs.append(Z)\n", + " \n", + " pos = sense(pos[0], pos[1], Z, sensor_error)\n", + " ps.append(pos[0])\n", + " \n", + " print 'SENSE:', \"%.4f\" %pos[0], \", %.4f\" %pos[1]\n", + " print\n", + " \n", + "p1, = plot(zs,c='r', linestyle='dashed')\n", + "p2, = plot(ps, c='b')\n", + "legend([p1,p2], ['measurement', 'filter'], 2)\n", + "show()" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": "" + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "There is a fair bit of arbitrary constants code above, but don't worry about it. What does require explanation are the first few lines:\n", + "\n", + " movement = 1 \n", + " movement_error = 2\n", + " \n", + "For the moment we are assuming that we have some other sensor that detects how the dog is moving. For example, there could be an inertial sensor clipped onto the dog's collar, and it reports how far the dog moved each time it is triggered. The details don't matter. The upshot is that we have a sensor, it has noise, and so we represent it with a guassian. Later we will learn what to do if we do not have a sensor for the *update()* step.\n", + "\n", + "For now let's walk through the code and output bit by bit.\n", + "\n", + " movement = 1\n", + " movement_error = 2\n", + " sensor_error = 10\n", + " pos = (0, 500) # gaussian N(0,500)\n", + " \n", + " \n", + "The first lines just set up the initial conditions for our filter. We are assuming that the dog moves steadily to the right 1m at a time. We have a relatively low error of 2 for the movement sensor, and a higher error of 10 for the RFID position sensor. Finally, we set our belief of the dog's initial position as $N(0,500)$. Why those numbers. Well, 0 is as good as any number if we don't know where the dog is. But we set the variance to 500 to denote that we have no confidence in this value at all. 100m is almost as likely as 0 with this value for the variance. \n", + "\n", + "Next we initialize the RFID simulator with\n", + " dog = DogSensor(pos[0], velocity=movement, noise=sensor_error)\n", + "\n", + "It may seem very 'convienent' to set the simulator to the same position as our guess, and it is. Do not fret. In the next example we will see the effect of a wildly inaccurate guess for the dog's initial position.\n", + "\n", + "The next code allocates an array to store the output of the measurements and filtered positions. \n", + "\n", + " zs = []\n", + " ps = []\n", + " \n", + "This is the first time that I am introducing standard nomenclature used by the Kalman filtering literature. It is traditional to call our measurement $Z$, and so I follow that convention here. As an aside, I find the nomenclature used by the literature very obscure. However, if you wish to read the literature you will have to become used to it, so I will not use a much more readable variable name such as $m$ or $measure$.\n", + " \n", + " \n", + "Now we just enter our *sense()->update()* loop.\n", + "\n", + " for i in range(10):\n", + " pos = update(pos[0], pos[1], movement, sensor_error)\n", + " print 'UPDATE:', \"%.4f\" %pos[0], \", %.4f\" %pos[1]\n", + "\n", + "Wait, why *update()* before sense? It turns out the order does not matter once, but the first call to DogSensor.sense() assumes that the dog has already moved, so we start with the update step. In practice you will order these calls based on the details of your sensor, and you will very typically do the *sense()* first.\n", + "\n", + "So we call the update function with the gaussian representing our current belief about our position, the another gaussian representing our belief as to where the dog is moving, and then print the output. Your output will differ, but when writing this I get this as output:\n", + "\n", + " UPDATE: 1.000 502.000\n", + "\n", + "What is this saying? After the update, we believe that we are at 1.0, and the variance is now 502.0. Recall we started at 500.0. The variance got worse, which is always what happens during the update step.\n", + "\n", + " Z = dog.sense()\n", + " zs.append(Z)\n", + " \n", + "Here we sense the dog's position, and store it in our array so we can plot the results later.\n", + "\n", + "Finally we call the sense function of our filter, save the result in our *ps* array, and print the updated position belief:\n", + " pos = sense(pos[0], pos[1], Z, movement_error)\n", + " ps.append(pos[0])\n", + " print 'SENSE:', \"%.4f\" %pos[0], \", %.4f\" %pos[1]\n", + " \n", + "Your result will be different, but I get\n", + "\n", + " SENSE: 1.6279 , 9.8047\n", + " \n", + "as the result. What is happening? Well, at this point the dog is really at 1.0, however the predicted position is 1.6279. What is happening is the RFID sensor has a fair amount of noise, and so we compute the position as 1.6279. That is pretty far off from 1, but this is just are first time through the loop. Intuition tells us that the results will get better as we make more measurements, so let's hope that this is true for our filter as well. Now look at the variance: 9.8047. It has dropped tremendously from 502.0. Why? Well, the RFID has a reasonably small variance of 2.0, so we trust it far more than our previous belief. At this point there is no way to know for sure that the RFID is outputting reliable data, so the variance is not 2.0, but is has gotten much better.\n", + "\n", + "Now the software just loops, calling *update()* and *sense()* in turn. Because of the random sampling I do not know exactly what numbers you are seeing, but the final position is probably between 9 and 11, and the final variance is probably around 3.5. After several runs I did see the final position nearer 7, which would have been the result of several measurements with relatively large errors.\n", + "\n", + "Now look at the plot. The noisy measurements are plotted in with a dotted red line, and the filter results are in the solid blue line. Both are quite noisy, but notice how much noisier the measurements (red line) are. This is your first Kalman filter shown to work!\n", + "\n", + "\n", + "#More Examples\n", + "\n", + "Before I go on, I want to emphasize that this code fully implements a 1D Kalman filter. If you have tried to read the literatue, you are perhaps surprised, because this looks nothing like the complex, endless pages of math in those books. To be fair, the math gets a bit more complicated in multiple dimensions, but not by much. So long as we worry about *using* the equations rather than *deriving* them we can create Kalman filters without a lot of effort. Moreover, I hope you'll agree that you have a decent intuitive grasp of what is happening. We represent our beliefs with gaussians, and our beliefs get better over time because more measurement means more data to work with. \"Measure twice, cut once!\"\n", + "\n", + "So I didn't put a lot of noise in the signal, and I also 'correctly guessed' that the dog was at position 0. How does the filter perform in real world conditions? Let's explore and find out. I will start by injecting a lot of noise in the RFID sensor. I will inject an extreme amount of noise - noise that apparently swamps the actual measurement. What does your intution tell about how the filter will perform if the noise is allowed to be anywhere from -300 or 300. In other workds, an actual position of 1.0 might be reported as 287.9, or -189.6, or any other number in that range. Think about it before you scroll down." + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "sensor_error = 30000\n", + "movement_error = 2\n", + "pos = (0,500)\n", + "\n", + "dog = DogSensor(pos[0], velocity=movement, noise=sensor_error)\n", + "\n", + "zs = []\n", + "ps = []\n", + "\n", + "for i in range(1000):\n", + " pos = update(pos[0], pos[1], movement, movement_error)\n", + " \n", + " Z = dog.sense()\n", + " zs.append(Z)\n", + " \n", + " pos = sense(pos[0], pos[1], Z, sensor_error)\n", + " ps.append(pos[0])\n", + "\n", + "\n", + "p1, = plot(zs,c='r', linestyle='dashed')\n", + "p2, = plot(ps, c='b')\n", + "legend([p1,p2], ['measurement', 'filter'], 2)\n", + "show()" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": "" + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In this example the noise is extreme yet the filter still outputs a nearly straight line! This is an astonishing result! What do you think might be the cause of this performance? If you are not sure, don't worry, we will discuss it latter.\n", + "\n", + "Now let's lets look at the results when we make a bad initial estimate of position. To avoid obscuring the results I'll reduce the sensor variance to 30, but set the initial position to 1000m. Can the filter recover from a 1000m initial error?" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "sensor_error = 30\n", + "movement_error = 2\n", + "pos = (1000,500)\n", + "\n", + "dog = DogSensor(0, velocity=movement, noise=sensor_error)\n", + "\n", + "zs = []\n", + "ps = []\n", + "\n", + "for i in range(100):\n", + " pos = update(pos[0], pos[1], movement, movement_error)\n", + " \n", + " Z = dog.sense()\n", + " zs.append(Z)\n", + " \n", + " pos = sense(pos[0], pos[1], Z, sensor_error)\n", + " ps.append(pos[0])\n", + "\n", + "\n", + "p1, = plot(zs,c='r', linestyle='dashed')\n", + "p2, = plot(ps, c='b')\n", + "legend([p1,p2], ['measurement', 'filter'], 2)\n", + "show()" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": "" + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Again the answer is yes! Because we are relatively sure about our belief in the sensor ($\\sigma=30$) even after the first step we have changed our belief in the first position from 1000 to somewhere around 60.0 or so. After another 5-10 measurements we have converged to the correct value! So this is how we get around the chicken and egg problem of initial guesses. In practice we would probably just assign the first measurement from the sensor as the initial value, but you can see it doesn't matter much if we wildly guess at the initial conditions - the Kalman filter still converges very quickly.\n", + "\n", + "What about the worst of both worlds, large noise and a bad initial estimate:" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "sensor_error = 30000\n", + "movement_error = 2\n", + "pos = (1000,500)\n", + "\n", + "dog = DogSensor(0, velocity=movement, noise=sensor_error)\n", + "\n", + "zs = []\n", + "ps = []\n", + "\n", + "for i in range(1000):\n", + " pos = update (pos[0], pos[1], movement, movement_error)\n", + " \n", + " Z = dog.sense()\n", + " zs.append(Z)\n", + " \n", + " pos = sense (pos[0], pos[1], Z, sensor_error)\n", + " ps.append(pos[0])\n", + "\n", + "\n", + "p1, = plot(zs,c='r', linestyle='dashed')\n", + "p2, = plot(ps, c='b')\n", + "legend([p1,p2], ['measurement', 'filter'], 2)\n", + "show()" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": "" + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This time the filter does struggle. Notice that the previous example only computed 100 updates, whereas this example uses 1000. By my eye it takes the filter 400 or so iterations to become reasonable accurate, but maybe over 600 before the results are good. Kalman filters are good, but we cannot expect miracles. If we have extremely noisy data and extremely bad initial conditions, this is as good as it gets.\n", + "\n", + "Finally, let's make the suggest change of making our initial position guess just be the first sensor measurement." + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "sensor_error = 30000\n", + "movement_error = 2\n", + "pos = None\n", + "\n", + "dog = DogSensor(0, velocity=movement, noise=sensor_error)\n", + "\n", + "zs = []\n", + "ps = []\n", + "\n", + "for i in range(1000):\n", + " Z = dog.sense()\n", + " zs.append(Z)\n", + " if pos == None:\n", + " pos = (Z, 500)\n", + " \n", + " pos = sense (pos[0], pos[1], Z, sensor_error)\n", + " ps.append(pos[0])\n", + "\n", + " pos = update (pos[0], pos[1], movement, movement_error)\n", + "\n", + "p1, = plot(zs,c='r', linestyle='dashed')\n", + "p2, = plot(ps, c='b')\n", + "legend([p1,p2], ['measurement', 'filter'], 2)\n", + "show()" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": "" + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This simple change significantly improves the results. On some runs it takes 200 iterations or so to settle to a good solution, but other runs it converges very rapidly. This all depends on whether the initial measurement $Z$ had a small amount or large amount of noise. \n", + "\n", + "200 iterations may seem like a lot, but the amount of noise we are injecting is truly huge. In the real world we use sensors like thermometers, laser rangefinders, GPS satellites, computer vision, and so on. None have the enormous error as shown here. A reasonable value for the variance for a cheap thermometer might be 10, for example, and our code is using 30,000 for the variance. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "####Explaining the Results\n", + "\n", + "So how does the Kalman filter do so well? I have glossed over one aspect of the filter as it becomes confusing to address too many points at the same time. In these example we do not have 1 sensor but 2. The first sensor is the RFID sensor that outputs the position measurement, and the second sensor measures our dog's movement using an intertial tracker. How does our filter perform if that tracker is also noisy? Let's see:\n", + "\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "sensor_error = 30000\n", + "movement_sensor = 30000\n", + "pos = (0,500)\n", + "\n", + "dog = DogSensor(0, velocity=movement, noise=sensor_error)\n", + "\n", + "zs = []\n", + "ps = []\n", + "\n", + "for i in range(1000):\n", + " Z = dog.sense()\n", + " zs.append(Z)\n", + " \n", + " pos = sense(pos[0], pos[1], Z, sensor_error)\n", + " ps.append(pos[0])\n", + "\n", + " pos = update(pos[0], pos[1], movement, movement_error)\n", + "\n", + "p1, = plot(zs,c='r', linestyle='dashed')\n", + "p2, = plot(ps, c='b')\n", + "legend([p1,p2], ['measurement', 'filter'], 2)\n", + "show()" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": "" + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This result is worse than the example where only the measurement sensor was noisy. Instead of being mostly straight, this time the filter's output is distintly jagged. But, it still mostly tracks the dog. What is happening here?\n", + "\n", + "This illustrates the effects of *multi-sensor fusion*. Suppose the dog is actually at 10.0, and we get subsequent measurement readings of -289.78 and 301.43. From that information alone it is impossible to tell if the dog is standing still during very noisy measurements, or perhaps sprinting from -289 to 301 and being accurately measured. But we have a second source of information, his velocity. Even when the velocity is also noisy, it constrains what our beliefs might be. For example, suppose with the readings of -289.78 to 301.43 we get a velocity reading of 590. That matches the difference between the two positions quite well, so this will lead us to believe the RFID sensor and the velocity sensor. Now suppose we got a velocity reading of 1.7. This doesn't match our RFID reading very well. Finally, suppose the velocity reading was -678.8. This completely contradicts the RFID reading - we may not be sure from these few values which sensor is most inaccurate, but perhaps by now you will trust that the gaussians expressing our beliefs will correctly handle these cases. It's a bit hard to talk about while working with 1D problems, so we will take this topic up in great detail in the next chapter where we develop multidimensional Kalman filters. Remark\n", + "\n", + "Besides that issue, we are modelling the noise in our sensors using gaussians which model their real world performance. We are multiplying the gaussians (probabilities) when we get a new position measurement, adding the gaussians when we get a movement update. This is algorithmically correct (this is how the histogram filter works) and mathematically correct - why wouldn't it work? \n", + "\n", + "#### Summary\n", + "This takes some time to assimulate. To truly understand this you will probably have to work through this chapter several times. I encourage you to change the various constants and observe the results. Convince yourself that gaussians are a good representation of a unimodal belief of something like the position of a dog in a hallway. Then convince yourself that multiplying gaussians truly does compute a new belief from your prior belief and the new measurement. Finally, convince yourself that if you are measuring movement, that adding the gaussians correctly updates your belief. That is all the Kalman filter does. Even now I alternate between complacency and amazement at the results. \n", + "\n", + "If you understand this, you will be able to understand multidimensional Kalman filters and the various extensions that have been make on them. If you do not fully understand this, I strongly suggest rereading this chapter until you do understand it. Try implementing the filter from scratch, just by looking at the equations and reading the text. Change the constants. Maybe try to implement a different tracking problem, like tracking stock prices. Experimentation will build your intuition and understanding of how these marvelous filters work.\n", + "\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "author notes:\n", + " clean up the code - same stuff duplicated over and over - write a 'clean implemntation' at the end.\n", + " \n", + " " + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": "" + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "sensor_error = 30\n", + "movement_error = 2\n", + "pos = (1000,500)\n", + "\n", + "zs = []\n", + "ps = []\n", + "\n", + "\n", + "for i in range(100):\n", + " pos = update(pos[0], pos[1], movement, movement_error)\n", + "\n", + " Z = math.sin(i/3.)*5.\n", + " zs.append(Z)\n", + " \n", + " pos = sense(pos[0], pos[1], Z, sensor_error)\n", + " ps.append(pos[0])\n", + "\n", + "\n", + "p1, = plot(zs,c='r', linestyle='dashed')\n", + "p2, = plot(ps, c='b')\n", + "legend([p1,p2], ['measurement', 'filter'], 2)\n", + "show()" + ], + "language": "python", + "metadata": {}, + "outputs": [] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [], + "language": "python", + "metadata": {}, + "outputs": [] + } + ], + "metadata": {} + } + ] } \ No newline at end of file diff --git a/Multidimensional Kalman Filters.ipynb b/Multidimensional Kalman Filters.ipynb index 0ef5418..74ac03e 100644 --- a/Multidimensional Kalman Filters.ipynb +++ b/Multidimensional Kalman Filters.ipynb @@ -1,481 +1,403 @@ -{ - "metadata": { - "name": "" - }, - "nbformat": 3, - "nbformat_minor": 0, - "worksheets": [ - { - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Multidimensional Kalman Filters\n", - "\n", - "The techniques in the last chapter are very powerful, but they only work in one dimension. The gaussians represent a mean and variance that are scalars - real numbers. They provide no way to represent multidimensional data, such as the position of a dog in a field. You may retort that you could use two Kalman filters for that case, one tracks the x coordinate and the other tracks the y coordinate. That does work in some cases, but put that thought aside, because soon you will see some enormous benefits to implementing the multidimensional case.\n", - "\n", - "\n", - "## Multivariate Normal Distributions\n", - "\n", - "What might a multivariate (meaning multidimensional) normal distribution look like? Our goal is to be able to represent a normal distribution across multiple dimensions. Consider the 2 dimensional case. Let's say we believe that x = 2 and y = 7. Therefore we can see that for N dimensions, we need N means, like so:\n", - "$$ \\mu = \\begin{bmatrix}{\\mu}_1\\\\{\\mu}_2\\\\ \\vdots \\\\{\\mu}_n\\end{bmatrix} \n", - "$$\n", - "\n", - "Therefore for this example we would have\n", - "$$\n", - "\\mu = \\begin{bmatrix}2\\\\7\\end{bmatrix} \n", - "$$\n", - "\n", - "The next step is representing our variances. At first blush we might think we would also need N variances for N dimensions. We might want to say the variance for x is 10 and the variance for y is 8. While this is possible, it does not consider the more general case. For example, suppose we were tracking house prices vs total $m^2$ of the floor plan. These numbers are *correlated*. It is not an exact correlation, but in general houses in the same neighborhood are more expensive if they have a larger floor plan. We want a way to express not only what we think the variance is in the price and the $m^2$, but also the degree to which they are correlated. It turns out that we use a matrix to denote this:\n", - "\n", - "$$\n", - "\\Sigma = \\begin{pmatrix}\n", - " {\\sigma}_{1,1} & {\\sigma}_{1,2} & \\cdots & {\\sigma}_{1,n} \\\\\n", - " {\\sigma}_{2,1} &{\\sigma}_{2,2} & \\cdots & {\\sigma}_{2,n} \\\\\n", - " \\vdots & \\vdots & \\ddots & \\vdots \\\\\n", - " {\\sigma}_{n,1} & {\\sigma}_{n,2} & \\cdots & {\\sigma}_{n,n}\n", - " \\end{pmatrix}\n", - "$$\n", - "\n", - "This is called the covariance matrix, and is probably a bit confusing at the moment. Rather than explain the math in detail at the moment, we will take our usual tactic of building our intuition first with various physical models. \n", - "\n", - "So here is the full equation for the multivarate normal distribution.\n", - "\n", - "$$\\mathcal{N}(\\mu,\\,\\Sigma) = (2\\pi)^{-\\frac{n}{2}}|\\Sigma|^{-\\frac{1}{2}}\\, e^{ -\\frac{1}{2}(\\mathbf{x}-\\mu)'\\Sigma^{-1}(\\mathbf{x}-\\mu) }$$\n", - "\n", - "I urge you to not try to remember this function. We will program it once in a function and then call it when we need to compute a specific value. However, if you look at it briefly you will note that it looks quite similar to the univarate normal distribution except it uses matrices instead of scalar values. If you are reasonably well-versed in linear algebra this equation should look quite managable; if not, don't worry, the python is coming up next!\n" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "import numpy as np\n", - "import math\n", - "def multivariate_gaussian(x, mu, cov):\n", - " n = len(x)\n", - " det = np.sqrt(np.prod(np.diag(cov)))\n", - " frac = (2*math.pi)**(-n/2.) * (1./det)\n", - " fprime = (x - mu)**2\n", - " return frac * np.exp(-0.5*np.dot(fprime, 1./np.diag(cov)))\n" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 1 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let's use it to compute a few values just to make sure we know how to call and use the function, and then move on to more interesting things.\n", - "\n", - "First, let's find the probability for our dog being at (2.5, 7.3) if we believe he is at (2,7) with a variance of 8 for x and a variance of 10 for y. This function requires us to pass everything in as numpy arrays (we will soon provide a more robust version that works with numpy matrices, numpy arrays, and/or scalars in any combinations. That code contains a lot of boilerplate which obscures the algorithm).\n", - "\n", - "So we set x to (2.5,7.3)" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "x = np.array([2.5, 7.3])" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 2 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Next, we set the mean of our belief:" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "mu = np.array([2,7])" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 3 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Finally, we have to define our covariance matrix. In the problem statement we did not mention any correlation between x and y, and we will assume there is none. This makes sense; a dog can choose to independently wander in either the x direction or y direction without affecting the other. If there is no correlation between the values you just fill in the diagonal of the covariance matrix with the variances:" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "cov = np.array([[8.,0],[0,10.]])" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 4 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now just call the function" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "print multivariate_gaussian(x,mu,cov)" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "0.0174395374407\n" - ] - } - ], - "prompt_number": 5 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let's check the probability for the dog being at exactly (2,7)" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "x = np.array([2,7])\n", - "print multivariate_gaussian(x,mu,cov)" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "0.0177940635854\n" - ] - } - ], - "prompt_number": 6 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "These numbers are not easy to interpret. Let's plot this in 3D, with the z coordinate being the probability." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%matplotlib inline\n", - "pylab.rcParams['figure.figsize'] = 12,6\n", - "\n", - "from mpl_toolkits.mplot3d import Axes3D\n", - "\n", - "xs, ys = arange(-8, 13, .75), arange(-8, 20, .75)\n", - "xv, yv = meshgrid (xs, ys)\n", - "\n", - "zs = np.array([multivariate_gaussian(np.array([x,y]),mu,cov) \n", - " for x,y in zip(np.ravel(xv), np.ravel(yv))])\n", - "zv = zs.reshape(xv.shape)\n", - "\n", - "ax = plt.figure().add_subplot(111, projection='3d')\n", - "ax.plot_wireframe(xv, yv, zv)\n", - "show()\n", - "pylab.rcParams['figure.figsize'] = 6,4" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "display_data", - "png": "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\nmCYMHaqzc6dMRoZMVpaE0wn165usXSuzZo2IjGqasF369NMAsqzj8/k5fFhn924nO3fa+e47B0uX\nyni9sGyZQr16wqlgxgwnjRubjB6tccUVOikpgqhPnarwyisy2dnQpo3JsGEB3njDxvjxbiZONNm5\nU6FuXYPmzTUaN9Y5dEjYQHm9JnY7rF1byp49Mtu2KaxaJayw5s61k5cnYRiwaJHQhSuKiE7bbOax\nuZOORbhVmjatTevWQsPbtq0e+veyywzq1jV56SU3kycXliNCdrvMgAEqixY5WLzYpE8fg1tvNXG5\nDO6808W8eXbsdvB4TK66SmPiRDuqKqQexcUmrVqJzloHD0p88IGNkSN/4/YAv0FYjgXREJk9idYM\noSJZQWWeUeciq9HPPTc397TdABISEtizZ0/o5z179pCYmHjC7+zdu5fExESCwWDUbbOysti5cycd\nOnQIfb9z586sWbPmtEl1deFcgVU1wYpQWKiKCvjK4kSV8jVV4BMOyx3B7XZHrZg/29WlFuH0eDwn\n/e7JGgycKqyuTjExMae1fTiiyRAqquo/UToRyneSCieyp3uepilI2rhxKgsWKHi9EB8vSEp6usGi\nRTK7donr3KiRSWKiSSAA+/ZJqCocOiTRtatOz54mn36q4POJSGjDhiYtWpg0bWpw5IiIckoSvPFG\ngJtu0ikthTfeUBk3zkZSks7GjQqxsUKvunmzQn4+uFzQurVBs2YmS5bIxMTArbdqPPCA6NZkGPDt\ntzKvvWZj0yYZj8ekqEiiqAhq1zbJz5ew2eC884K0a2fSvDns3y+zcKEoEhsyJMibb9opLRXFX40a\nmVxyiYFhQGamkB7s3CnIYu3aolhLloVV13vv+enUyaB3bycTJwbo1ctg4UKZt95SWbFCoWFDg/x8\n4WlqmiIl73abNGhg0Ly5jmlKZGTIJCfDunUKzZsbzJrlPVaQJpGZKfH99yrff2/DbjfJy5Ow26Fl\nS434eAgGIT9fZvduGZfLpFYtUVg2a5aXiy7SkaQyIrRmjcTQobH06BHkvffyef11N5Mnu7nuOi/z\n5jnZvVvh73/38sQTAYYM8dCzp85PPynMnCmaPUybVsJVV3lwOk1+/bWU+Pjf56vJ5/OFig5/D4gk\nsqfTDEHTNILBYDm5258FVtYv2vW+4oorWLZs2Wk9NzVNo2XLlixatIgmTZrQtWvXExZYrVq1igce\n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\n", - "text": [ - "" - ] - } - ], - "prompt_number": 7 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The result is clearly a 3D bell shaped curve. We can see that the gaussian is centered around (2,7), and that the probability quickly drops away in all directions.\n", - "\n", - "As beautiful as this is, it is perhaps a bit hard to get useful information. For example, it is not easy to tell if x and y both have the same variance or not. So for most of the rest of this book we will display multidimensional gaussian using contour plots. I will use some helper functions in gaussian.py to plot them. If you are interested in linear algebra go ahead and look at the code used to produce these contours, otherwise feel free to ignore it." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "import gaussian as g\n", - "pylab.rcParams['figure.figsize'] = 12,4\n", - "\n", - "cov = array([[2,0],[0,2]])\n", - "e = g.sigma_ellipse (cov, 2, 7)\n", - "subplot(131)\n", - "g.plot_sigma_ellipse(e, '|2 0|\\n|0 2|')\n", - "\n", - "\n", - "cov = array([[2,0],[0,9]])\n", - "e = g.sigma_ellipse (cov, 2, 7)\n", - "subplot(132)\n", - "g.plot_sigma_ellipse(e, '|2 0|\\n|0 9|')\n", - "\n", - "subplot(133)\n", - "cov = array([[2,3],[1,2]])\n", - "e = g.sigma_ellipse (cov, 2, 7)\n", - "g.plot_sigma_ellipse(e,'|2 3|\\n|1 2|')\n", - "show()\n", - "pylab.rcParams['figure.figsize'] = 6,4" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "display_data", - "png": "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\njwAAAABJRU5ErkJggg==\n", - "text": [ - "" - ] - } - ], - "prompt_number": 8 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "From a mathematical perspective these display the values that the multivariate gaussian takes for a specific sigma (in this case $\\sigma^2=1$. Think of it as taking a horizontal slice through the 3D surface plot we did above. However, thinking about the physical interpretation of these plots clarifies their meaning.\n", - "\n", - "The first plot uses mean and the covariance matrices $\n", - "\\mu =\\begin{bmatrix}2\\\\7\\end{bmatrix}, cov = \\begin{bmatrix}2&0\\\\0&2\\end{bmatrix}$. Let this be our current belief about the position of our dog in a field. In other words, we believe that he is positioned at (2,7) with a variance of $\\sigma^2=2$ for both x and y. The contour plot shows where we believe the dog is located with the '+' in the center of the ellipse. The ellipse shows the boundary for the $1\\sigma^2$ probability - points where the dog is quite likely to be based on our current knowledge. Of course, the dog might be very far from this point, as Gaussians allow the mean to be any value. For example, the dog could be at (3234.76,189989.62), but that has vanishing low probability of being true. Generally speaking displaying the $1\\sigma^2$ to $2\\sigma^2$ contour captures the most likely values for the distribution. An equivelent way of thinking about this is the circle/ellipse shows us the amount of error in our belief. A tiny circle would indicate that we have a very small error, and a very large circle indicates a lot of error in our belief. We will use this throughout the rest of the book to display and evaluate the accuracy of our filters at any point in time. \n", - "\n", - "The second plot uses mean and the covariance matrices $\n", - "\\mu =\\begin{bmatrix}2\\\\7\\end{bmatrix}, cov = \\begin{bmatrix}2&0\\\\0&9\\end{bmatrix}$. This time we use a different variance for x (2) vs y (9). The result is an ellipse. When we look at it we can immediately tell that we have a lot more uncertainty in the y value vs the x value. Our belief that the value is (2,7) is the same in both cases, but errors are different. This sort of thing happens naturally as we track objects in the world - one sensor has a better view of the object, or is closer, than another sensor, and so we end up with different error rates in the different axis.\n", - "\n", - "\n", - "The third plot uses mean and the covariance matrices $\n", - "\\mu =\\begin{bmatrix}2\\\\7\\end{bmatrix}, cov = \\begin{bmatrix}2&3\\\\1&2\\end{bmatrix}$. This is the first contour that has values in the off-diagonal elements of $cov$, and this is the first contour plot with a slanted ellipse. This is not a coincidence. The two facts are telling use the same thing. A slanted ellipse tells us that the x and y values are somehow **correlated**. We denote that in the covariance matrix with values off the diagonal. What does this mean in physical terms? Think of trying to park your car in a parking spot. You can not pull up beside the spot and then move sideways into the space because most cars cannot go purely sideways. $x$ and $y$ are not independent. This is a consequence of the steering system in a car. When your tires are turned the car rotates around its rear axle while moving forward. Or think of a horse attached to a pivoting exercise bar in a corral. The horse can only walk in circles, he cannot vary $x$ and $y$ independently, which means he cannot walk straight forward to to the side. If $x$ changes, $y$ must also change in a defined way. \n", - "\n", - "So when we see this ellipse we know that $x$ and $y$ are correlated, and that the correlation is \"strong\". I will not prove it here, but a 45 $^{\\circ}$ angle denotes complete correlation between $x$ and $y$, whereas $0$ and $90$ denote no correlation at all. Those who are familiar with this math will be objecting quite strongly, as this is actually quite sloppy language that does not adress all of the mathematical issues. They are right, but for now this is a good first approximation to understanding these ellipses from a physical interpretation point of view. The size of the ellipse shows how much error we have in each axis, and the slant shows how strongly correlated the values are.\n", - "\n", - "\n", - "\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "###Kalman Filter Basics\n", - "\n", - "Let's say we are tracking an aircraft and we get the following data for the $x$ coordinate at time $t$=1,2, and 3 seconds. What does your intuition tell you the value of $x$ will be at time $t$=4 seconds?\n" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "scatter ([1,2,3],[1,2,3]);xlim([0,4]);ylim([0,4]);show()" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "display_data", - "png": "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\n", - "text": [ - "" - ] - } - ], - "prompt_number": 9 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "It appears that the aircraft is flying in a straight line because we can draw a line between the three points, and we know that aircraft cannot turn on a dime. The most reasonable guess is that $x$=4 at $t$=4. I will depict that below with a green square to depict the predictions." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "scatter ([1,2,3],[1,2,3]);xlim([0,5]);ylim([0,5])\n", - "plot([0,5],[0,5],'r')\n", - "scatter ([4], [4], c='g', marker='s',s=200)\n", - "show()" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "display_data", - "png": "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\nA8c27bZHjKyVAAAAAElFTkSuQmCC\n", - "text": [ - "" - ] - } - ], - "prompt_number": 10 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "If this is data from a Kalman filter, then each point has both a mean and variance. Let's try to show that by showing the approximate error for each point. Don't worry about why I am using a covariance matrix to depict the variance at this point, it will become clear in a few paragraphs. The intent at this point is to show that while we have$x$=1,2,3 that there is a lot of error associated with each measurement." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "cov = array([[0.003,0], [0,12]])\n", - "sigma = sigma=[0.5,1.,1.5,2]\n", - "e1 = g.sigma_ellipses(cov, x=1, y=1, sigma=sigma)\n", - "e2 = g.sigma_ellipses(cov, x=2, y=2, sigma=sigma)\n", - "e3 = g.sigma_ellipses(cov, x=3, y=3, sigma=sigma)\n", - "g.plot_sigma_ellipses([e1, e2, e3], axis_equal=True,x_lim=[0,4],y_lim=[0,15])\n", - "plt.ylim([0,11])\n", - "show()" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "display_data", - "png": "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\nSUVORK5CYII=\n", - "text": [ - "" - ] - } - ], - "prompt_number": 11 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We can see that there is a lot of error associated with each value of $x$. We could write a 1D Kalman filter as we did in the last chapter, but suppose this is the output of that filter, and not just raw sensor measurements. Are we out of luck?\n", - "\n", - "Let us think about how we predicted that $x$=4 at $t$=4. In one sense we just drew a straight line between the points and saw where it lay at $t$=4. My constant refrain: what is the physical interpretation of that? What is the difference in $x$ over time? What is $\\frac{\\partial x}{\\partial t}$? The derivative, or difference in distance over time is *velocity*. \n", - "\n", - "This is the **key point** in Kalman filters, so read carefully! Our sensor is only detecting the position of the aircraft (how doesn't matter). It does not have any kind of sensor that provides velocity to us. But based on the position estimates we can compute velocity. In Kalman filters we would call the velocity an **unobserved variable**. Unobserved means what it sounds like - there is no sensor that is measuring velocity directly. Since the velocity is based on the position, and the position has error, the velocity will have error as well. What happens if we draw the velocity errors over the positions errors?" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "from matplotlib.patches import Ellipse\n", - "\n", - "cov = array([[1,1],[1,1.1]])\n", - "ev = g.sigma_ellipses(cov, x=2, y=2, sigma=sigma)\n", - "\n", - "isct = Ellipse(xy=(2,2), width=.2, height=1.2, edgecolor='r', fc='None', lw=4)\n", - "plt.figure().gca().add_artist(isct)\n", - "g.plot_sigma_ellipses([e1, e2, e3, ev], axis_equal=True,x_lim=[0,4],y_lim=[0,15])\n", - "plt.ylim([0,11])\n", - "plt.show()" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "display_data", - "png": "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\n1cXgrYtfkwAAAABJRU5ErkJggg==\n", - "text": [ - "" - ] - } - ], - "prompt_number": 12 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Think about what this plot means. We have a lot of error in our position estimates. We therefore have a lot of error in our velocity estimates. But look at the intersections between the velocity and the positions. Take the intersection at $t$=2. The intersection between the velocity and the position is where our aircraft is most likely to be, which I have roughly depicted with a red ellipse ('roughly' because I set the size via eyeball, not via math). The size of the error is much smaller than the error of the positions, despite the fact that velocity was derived from position. \n", - "\n", - "What makes this possible? Imagine for a moment that we superimposed the velocity from a *different* airplane over the position graph. Cleary the two are not related, and there is no way that combining the two could possibly yield any additional information. In contrast, the velocity of the this airplane tells us something very important - the direction and speed of travel. So long as the aircraft does not alter its velocity the velocity allows us to predict where the next position is. After a relatively small amount of error in velocity the probability that it is a good match with the position is very small. Think about it - if you suddenly change direction your position is also going to change a lot. If the position measurement is not in the direction of the assumed velocity change it is very unlikely to be true. The two are correlated, so if the velocity changes so must the position, and in a predictable way. " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Kalman Filter Algorithm\n", - "So in general terms we can show how a multidimensional Kalman filter works. In the example above, we compute velocity from the previous position measurements using something called the **measurement function**. Then we predict the next position by using the current estimate and something called the **state transition function**. In our example above, *new_position = old_position + velocity*time*. Next, we take the measurement from the sensor, and compare it to the prediction we just made. In a world with perfect sensors and perfect airplanes the prediction will always match the measured value. In the real world they will always be at least slightly different. We call the difference between the two the **residual**. Finally, we use something called the **Kalman gain** to update our estimate to be somewhere between the measured position and the predicted position. I will not describe how the gain is set, but suppose we had perfect confidence in our measurement - no error is possible. Then, clearly, we would set the gain so that 100% of the position came from the measurement, and 0% from the prediction. At the other extreme, if he have no confidence at all in the sensor (maybe it reported a hardware fault), we would set the gain so that 100% of the position came from the prediction, and 0% from the measurement. In normal cases, we will take a ratio of the two: maybe 53% of the measurement, and 47% of the prediction. The gain is updated on every cycle based on the variance of the variables (in a way yet to be explained). It should be clear that if the variance of the measurement is low, and the variance of the prediction is high we will favor the measurement, and vice versa. \n", - "\n", - "The chart shows a prior estimate of $x=1$ and $\\dot{x}=1$ ($\\dot{x}$ is the shorthand for the derivative of x, which is velocity). Therefore we predict $\\hat{x}=2$. However, the new measurement $x^{'}=1.3$, giving a residual $r=0.7$. Finally, Kalman filter gain $k$ gives us a new estimate of $\\hat{x^{'}}=1.8$.\n", - "\n", - "** CHECK SYMBOLOGY!!!!**" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "from mkf_internal import *\n", - "show_residual_chart()" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "display_data", - "png": "iVBORw0KGgoAAAANSUhEUgAAAW8AAAEKCAYAAADdBdT9AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XlcVGX7P/DPsBkICoqCIALuLM4wQAouiLmgFsbjlpgE\n4m6mPtmTS5roo2ilmeaS+i13s5+Uj1gu5AKKhlaiqBSiMQJqiooim2zX748TR4YdBWYOXO/Xa15y\n5mzXmfFcc899rnOPjIgIjDHGJEVH0wEwxhirOU7ejDEmQZy8GWNMgjh5M8aYBHHyZowxCeLkzRhj\nEsTJW4vY2dnhxIkTmg6jQs7Ozjh9+jQAICQkBAEBARqO6MXZ2dnh5MmTAIDQ0FBMmjTphbZT8jXR\nZpGRkbCxsdF0GKwWcfKuZaUT8L59+9CiRQucOXOmynVlMhlkMlldhlct3t7eMDQ0hImJifg4f/48\nrl69Ci8vLwBQi1OlUkFHRwdFRUW1FkPxNov3b29vj08++aTWtl8y/gULFmDr1q1VrhMUFIRFixap\nPVfyNalN5X2Qb9++HX369Kn1fZX2svvJy8vDnDlzYGNjI753//73v8X5JT842YvT03QADU3JBLxj\nxw7MmTMHhw8fhoeHh4Yjqz6ZTIYNGzYgODi4wmXKu7frRe/3KigogJ5e+f8Vnzx5Ah0dHcTExKB/\n//5wcXGBj49PtdeXKm35IH8RK1aswMWLF/Hrr7/C0tISt27dUvt2IpPJXvj/CnuOW951gIiwefNm\nfPDBB4iIiBAT982bN/Haa6/B3NwcrVq1wrhx4/DkyZNytxESEoJRo0YhICAAzZo1g1wuR2JiIlas\nWAELCwvY2tri559/Fpfftm0bHB0d0axZM3To0AFbtmwR50VGRqJt27b4/PPPYWFhASsrK2zfvr3G\nx1W6xVScXIpbnqampmIrHQC++eYbODo6okWLFhg8eDCSk5PFdXV0dLBx40Z06tQJXbp0qXLfHh4e\ncHJywrVr18Tj+fTTT9GmTRtMmDABRISVK1eiY8eOMDc3x1tvvYX09HRx/V27dsHW1hbm5uYIDQ1V\n23bpLqDo6Gj07NkTZmZmaNeuHXbs2IGtW7di7969+PTTT2FiYoI333xTfE2KW8jPnj3D7NmzYW1t\nDWtra/z73/9GXl4egNp7D4oVfzPZunUrrK2tYWVlhdWrV4vzc3JyEBQUhBYtWsDJyQm//vqr2vrF\nr1WzZs3g5OSE//3vfwCAP/74A9OmTcMvv/wCExMTtGjRQjy2Dz74ALa2trC0tMS0adOQm5tbbmy/\n/fYb/Pz8YGlpCQCwtbUVX9+AgAAkJyfD19cXJiYmWLVqFQAgJiZGfM1dXFwQFRUlbs/b2xvz589H\njx490Lx5c/j5+am9t40WsVplZ2dHw4cPJwsLC4qLi1Obd+PGDTp+/Djl5eVRWloaeXl50ezZs9XW\nPXHiBBERLV68mF555RWKiIiggoICeuedd8jW1pZCQ0OpoKCAtm7dSvb29uK6P/30E/31119ERBQV\nFUVGRkZ08eJFIiI6deoU6enp0eLFi6mgoIAOHz5MRkZG9Pjx43KPwdvbm/7v//6v3GMrGd+4ceOI\niEilUpFMJqPCwkJx2f/973/UsWNH+vPPP6mwsJCWLVtGPXv2FOfLZDIaNGgQpaenU25ubpl9JSUl\nkUwmo4KCAioqKqLo6GgyMjKikydPisczb948ysvLo5ycHPriiy/I09OTbt++TXl5eTRlyhTy9/cn\nIqJr166RsbExnTlzhp49e0bvv/8+6enpiccSEhKidiwmJia0b98+KigooIcPH9KlS5eIiCgoKIgW\nLVpU4WuyaNEi8vT0pLS0NEpLS6OePXuKy9f0PSi53WLbtm2j3r17q70+Y8eOpezsbLpy5Qq1atWK\njh8/TkREc+fOJS8vL0pPT6eUlBRycnIiGxsbcVv79++nu3fvEhHRd999R02bNqW///6biIi2b98u\n7qfY7Nmz6c0336T09HR6+vQp+fr60vz588uNfdmyZdSuXTvauHEjxcXFUVFRUaXHlpqaSi1btqQj\nR44QEdHPP/9MLVu2pAcPHhARUd++fcna2pquXbtGWVlZNGLECPH9asw4edcyW1tbatasGfn5+ZX5\nT1vagQMHSKlUitOlk+OgQYPEeeHh4WRsbCxuMyMjg2QyGT158qTcbfv5+dHatWuJSEgchoaGasm1\ndevWdP78+XLX7du3LxkZGZGpqSmZmpqSm5tbufEVn0DFiaTk9gcPHkxff/21OF1YWEhGRkaUnJxM\nRELyPnXqVIWvTfE2TU1NyczMjBwcHOjLL78Uj8fAwICePXsmLu/g4KCWEO7cuUP6+vpUUFBAS5Ys\nERM5EVFWVhYZGBiUeyyhoaE0fPjwcmMKCgqihQsXqj1X8jXp0KGDmICIiI4dO0Z2dnZizDV5D6qb\n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\nMSZB/x9UihJ3mqcUtQAAAABJRU5ErkJggg==\n", - "text": [ - "" - ] - } - ], - "prompt_number": 13 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 13 - } - ], - "metadata": {} - } - ] +{ + "metadata": { + "name": "", + "signature": "sha256:fff3501726b07546f648c399fe50981edcfb8d3db4ccb230e1d64757436ddf9d" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Multidimensional Kalman Filters\n", + "\n", + "The techniques in the last chapter are very powerful, but they only work in one dimension. The gaussians represent a mean and variance that are scalars - real numbers. They provide no way to represent multidimensional data, such as the position of a dog in a field. You may retort that you could use two Kalman filters for that case, one tracks the x coordinate and the other tracks the y coordinate. That does work in some cases, but put that thought aside, because soon you will see some enormous benefits to implementing the multidimensional case.\n", + "\n", + "\n", + "## Multivariate Normal Distributions\n", + "\n", + "What might a multivariate (meaning multidimensional) normal distribution look like? Our goal is to be able to represent a normal distribution across multiple dimensions. Consider the 2 dimensional case. Let's say we believe that x = 2 and y = 7. Therefore we can see that for N dimensions, we need N means, like so:\n", + "$$ \\mu = \\begin{bmatrix}{\\mu}_1\\\\{\\mu}_2\\\\ \\vdots \\\\{\\mu}_n\\end{bmatrix} \n", + "$$\n", + "\n", + "Therefore for this example we would have\n", + "$$\n", + "\\mu = \\begin{bmatrix}2\\\\7\\end{bmatrix} \n", + "$$\n", + "\n", + "The next step is representing our variances. At first blush we might think we would also need N variances for N dimensions. We might want to say the variance for x is 10 and the variance for y is 8. While this is possible, it does not consider the more general case. For example, suppose we were tracking house prices vs total $m^2$ of the floor plan. These numbers are *correlated*. It is not an exact correlation, but in general houses in the same neighborhood are more expensive if they have a larger floor plan. We want a way to express not only what we think the variance is in the price and the $m^2$, but also the degree to which they are correlated. It turns out that we use a matrix to denote this:\n", + "\n", + "$$\n", + "\\Sigma = \\begin{pmatrix}\n", + " {\\sigma}_{1,1} & {\\sigma}_{1,2} & \\cdots & {\\sigma}_{1,n} \\\\\n", + " {\\sigma}_{2,1} &{\\sigma}_{2,2} & \\cdots & {\\sigma}_{2,n} \\\\\n", + " \\vdots & \\vdots & \\ddots & \\vdots \\\\\n", + " {\\sigma}_{n,1} & {\\sigma}_{n,2} & \\cdots & {\\sigma}_{n,n}\n", + " \\end{pmatrix}\n", + "$$\n", + "\n", + "This is called the covariance matrix, and is probably a bit confusing at the moment. Rather than explain the math in detail at the moment, we will take our usual tactic of building our intuition first with various physical models. \n", + "\n", + "So here is the full equation for the multivarate normal distribution.\n", + "\n", + "$$\\mathcal{N}(\\mu,\\,\\Sigma) = (2\\pi)^{-\\frac{n}{2}}|\\Sigma|^{-\\frac{1}{2}}\\, e^{ -\\frac{1}{2}(\\mathbf{x}-\\mu)'\\Sigma^{-1}(\\mathbf{x}-\\mu) }$$\n", + "\n", + "I urge you to not try to remember this function. We will program it once in a function and then call it when we need to compute a specific value. However, if you look at it briefly you will note that it looks quite similar to the univarate normal distribution except it uses matrices instead of scalar values. If you are reasonably well-versed in linear algebra this equation should look quite managable; if not, don't worry, the python is coming up next!\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import numpy as np\n", + "import math\n", + "def multivariate_gaussian(x, mu, cov):\n", + " n = len(x)\n", + " det = np.sqrt(np.prod(np.diag(cov)))\n", + " frac = (2*math.pi)**(-n/2.) * (1./det)\n", + " fprime = (x - mu)**2\n", + " return frac * np.exp(-0.5*np.dot(fprime, 1./np.diag(cov)))\n" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": "" + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's use it to compute a few values just to make sure we know how to call and use the function, and then move on to more interesting things.\n", + "\n", + "First, let's find the probability for our dog being at (2.5, 7.3) if we believe he is at (2,7) with a variance of 8 for x and a variance of 10 for y. This function requires us to pass everything in as numpy arrays (we will soon provide a more robust version that works with numpy matrices, numpy arrays, and/or scalars in any combinations. That code contains a lot of boilerplate which obscures the algorithm).\n", + "\n", + "So we set x to (2.5,7.3)" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "x = np.array([2.5, 7.3])" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": "" + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we set the mean of our belief:" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "mu = np.array([2,7])" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": "" + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Finally, we have to define our covariance matrix. In the problem statement we did not mention any correlation between x and y, and we will assume there is none. This makes sense; a dog can choose to independently wander in either the x direction or y direction without affecting the other. If there is no correlation between the values you just fill in the diagonal of the covariance matrix with the variances:" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "cov = np.array([[8.,0],[0,10.]])" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": "" + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now just call the function" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "print multivariate_gaussian(x,mu,cov)" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": "" + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's check the probability for the dog being at exactly (2,7)" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "x = np.array([2,7])\n", + "print multivariate_gaussian(x,mu,cov)" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": "" + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "These numbers are not easy to interpret. Let's plot this in 3D, with the z coordinate being the probability." + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "%matplotlib inline\n", + "pylab.rcParams['figure.figsize'] = 12,6\n", + "\n", + "from mpl_toolkits.mplot3d import Axes3D\n", + "\n", + "xs, ys = arange(-8, 13, .75), arange(-8, 20, .75)\n", + "xv, yv = meshgrid (xs, ys)\n", + "\n", + "zs = np.array([multivariate_gaussian(np.array([x,y]),mu,cov) \n", + " for x,y in zip(np.ravel(xv), np.ravel(yv))])\n", + "zv = zs.reshape(xv.shape)\n", + "\n", + "ax = plt.figure().add_subplot(111, projection='3d')\n", + "ax.plot_wireframe(xv, yv, zv)\n", + "show()\n", + "pylab.rcParams['figure.figsize'] = 6,4" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": "" + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The result is clearly a 3D bell shaped curve. We can see that the gaussian is centered around (2,7), and that the probability quickly drops away in all directions.\n", + "\n", + "As beautiful as this is, it is perhaps a bit hard to get useful information. For example, it is not easy to tell if x and y both have the same variance or not. So for most of the rest of this book we will display multidimensional gaussian using contour plots. I will use some helper functions in gaussian.py to plot them. If you are interested in linear algebra go ahead and look at the code used to produce these contours, otherwise feel free to ignore it." + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import gaussian as g\n", + "pylab.rcParams['figure.figsize'] = 12,4\n", + "\n", + "cov = array([[2,0],[0,2]])\n", + "e = g.sigma_ellipse (cov, 2, 7)\n", + "subplot(131)\n", + "g.plot_sigma_ellipse(e, '|2 0|\\n|0 2|')\n", + "\n", + "\n", + "cov = array([[2,0],[0,9]])\n", + "e = g.sigma_ellipse (cov, 2, 7)\n", + "subplot(132)\n", + "g.plot_sigma_ellipse(e, '|2 0|\\n|0 9|')\n", + "\n", + "subplot(133)\n", + "cov = array([[2,3],[1,2]])\n", + "e = g.sigma_ellipse (cov, 2, 7)\n", + "g.plot_sigma_ellipse(e,'|2 3|\\n|1 2|')\n", + "show()\n", + "pylab.rcParams['figure.figsize'] = 6,4" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": "" + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "From a mathematical perspective these display the values that the multivariate gaussian takes for a specific sigma (in this case $\\sigma^2=1$. Think of it as taking a horizontal slice through the 3D surface plot we did above. However, thinking about the physical interpretation of these plots clarifies their meaning.\n", + "\n", + "The first plot uses mean and the covariance matrices $\n", + "\\mu =\\begin{bmatrix}2\\\\7\\end{bmatrix}, cov = \\begin{bmatrix}2&0\\\\0&2\\end{bmatrix}$. Let this be our current belief about the position of our dog in a field. In other words, we believe that he is positioned at (2,7) with a variance of $\\sigma^2=2$ for both x and y. The contour plot shows where we believe the dog is located with the '+' in the center of the ellipse. The ellipse shows the boundary for the $1\\sigma^2$ probability - points where the dog is quite likely to be based on our current knowledge. Of course, the dog might be very far from this point, as Gaussians allow the mean to be any value. For example, the dog could be at (3234.76,189989.62), but that has vanishing low probability of being true. Generally speaking displaying the $1\\sigma^2$ to $2\\sigma^2$ contour captures the most likely values for the distribution. An equivelent way of thinking about this is the circle/ellipse shows us the amount of error in our belief. A tiny circle would indicate that we have a very small error, and a very large circle indicates a lot of error in our belief. We will use this throughout the rest of the book to display and evaluate the accuracy of our filters at any point in time. \n", + "\n", + "The second plot uses mean and the covariance matrices $\n", + "\\mu =\\begin{bmatrix}2\\\\7\\end{bmatrix}, cov = \\begin{bmatrix}2&0\\\\0&9\\end{bmatrix}$. This time we use a different variance for x (2) vs y (9). The result is an ellipse. When we look at it we can immediately tell that we have a lot more uncertainty in the y value vs the x value. Our belief that the value is (2,7) is the same in both cases, but errors are different. This sort of thing happens naturally as we track objects in the world - one sensor has a better view of the object, or is closer, than another sensor, and so we end up with different error rates in the different axis.\n", + "\n", + "\n", + "The third plot uses mean and the covariance matrices $\n", + "\\mu =\\begin{bmatrix}2\\\\7\\end{bmatrix}, cov = \\begin{bmatrix}2&3\\\\1&2\\end{bmatrix}$. This is the first contour that has values in the off-diagonal elements of $cov$, and this is the first contour plot with a slanted ellipse. This is not a coincidence. The two facts are telling use the same thing. A slanted ellipse tells us that the x and y values are somehow **correlated**. We denote that in the covariance matrix with values off the diagonal. What does this mean in physical terms? Think of trying to park your car in a parking spot. You can not pull up beside the spot and then move sideways into the space because most cars cannot go purely sideways. $x$ and $y$ are not independent. This is a consequence of the steering system in a car. When your tires are turned the car rotates around its rear axle while moving forward. Or think of a horse attached to a pivoting exercise bar in a corral. The horse can only walk in circles, he cannot vary $x$ and $y$ independently, which means he cannot walk straight forward to to the side. If $x$ changes, $y$ must also change in a defined way. \n", + "\n", + "So when we see this ellipse we know that $x$ and $y$ are correlated, and that the correlation is \"strong\". I will not prove it here, but a 45 $^{\\circ}$ angle denotes complete correlation between $x$ and $y$, whereas $0$ and $90$ denote no correlation at all. Those who are familiar with this math will be objecting quite strongly, as this is actually quite sloppy language that does not adress all of the mathematical issues. They are right, but for now this is a good first approximation to understanding these ellipses from a physical interpretation point of view. The size of the ellipse shows how much error we have in each axis, and the slant shows how strongly correlated the values are.\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "###Kalman Filter Basics\n", + "\n", + "Let's say we are tracking an aircraft and we get the following data for the $x$ coordinate at time $t$=1,2, and 3 seconds. What does your intuition tell you the value of $x$ will be at time $t$=4 seconds?\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "scatter ([1,2,3],[1,2,3]);xlim([0,4]);ylim([0,4]);show()" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": "" + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "It appears that the aircraft is flying in a straight line because we can draw a line between the three points, and we know that aircraft cannot turn on a dime. The most reasonable guess is that $x$=4 at $t$=4. I will depict that below with a green square to depict the predictions." + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "scatter ([1,2,3],[1,2,3]);xlim([0,5]);ylim([0,5])\n", + "plot([0,5],[0,5],'r')\n", + "scatter ([4], [4], c='g', marker='s',s=200)\n", + "show()" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": "" + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If this is data from a Kalman filter, then each point has both a mean and variance. Let's try to show that by showing the approximate error for each point. Don't worry about why I am using a covariance matrix to depict the variance at this point, it will become clear in a few paragraphs. The intent at this point is to show that while we have$x$=1,2,3 that there is a lot of error associated with each measurement." + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "cov = array([[0.003,0], [0,12]])\n", + "sigma = sigma=[0.5,1.,1.5,2]\n", + "e1 = g.sigma_ellipses(cov, x=1, y=1, sigma=sigma)\n", + "e2 = g.sigma_ellipses(cov, x=2, y=2, sigma=sigma)\n", + "e3 = g.sigma_ellipses(cov, x=3, y=3, sigma=sigma)\n", + "g.plot_sigma_ellipses([e1, e2, e3], axis_equal=True,x_lim=[0,4],y_lim=[0,15])\n", + "plt.ylim([0,11])\n", + "show()" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": "" + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can see that there is a lot of error associated with each value of $x$. We could write a 1D Kalman filter as we did in the last chapter, but suppose this is the output of that filter, and not just raw sensor measurements. Are we out of luck?\n", + "\n", + "Let us think about how we predicted that $x$=4 at $t$=4. In one sense we just drew a straight line between the points and saw where it lay at $t$=4. My constant refrain: what is the physical interpretation of that? What is the difference in $x$ over time? What is $\\frac{\\partial x}{\\partial t}$? The derivative, or difference in distance over time is *velocity*. \n", + "\n", + "This is the **key point** in Kalman filters, so read carefully! Our sensor is only detecting the position of the aircraft (how doesn't matter). It does not have any kind of sensor that provides velocity to us. But based on the position estimates we can compute velocity. In Kalman filters we would call the velocity an **unobserved variable**. Unobserved means what it sounds like - there is no sensor that is measuring velocity directly. Since the velocity is based on the position, and the position has error, the velocity will have error as well. What happens if we draw the velocity errors over the positions errors?" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from matplotlib.patches import Ellipse\n", + "\n", + "cov = array([[1,1],[1,1.1]])\n", + "ev = g.sigma_ellipses(cov, x=2, y=2, sigma=sigma)\n", + "\n", + "isct = Ellipse(xy=(2,2), width=.2, height=1.2, edgecolor='r', fc='None', lw=4)\n", + "plt.figure().gca().add_artist(isct)\n", + "g.plot_sigma_ellipses([e1, e2, e3, ev], axis_equal=True,x_lim=[0,4],y_lim=[0,15])\n", + "plt.ylim([0,11])\n", + "plt.show()" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": "" + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Think about what this plot means. We have a lot of error in our position estimates. We therefore have a lot of error in our velocity estimates. But look at the intersections between the velocity and the positions. Take the intersection at $t$=2. The intersection between the velocity and the position is where our aircraft is most likely to be, which I have roughly depicted with a red ellipse ('roughly' because I set the size via eyeball, not via math). The size of the error is much smaller than the error of the positions, despite the fact that velocity was derived from position. \n", + "\n", + "What makes this possible? Imagine for a moment that we superimposed the velocity from a *different* airplane over the position graph. Cleary the two are not related, and there is no way that combining the two could possibly yield any additional information. In contrast, the velocity of the this airplane tells us something very important - the direction and speed of travel. So long as the aircraft does not alter its velocity the velocity allows us to predict where the next position is. After a relatively small amount of error in velocity the probability that it is a good match with the position is very small. Think about it - if you suddenly change direction your position is also going to change a lot. If the position measurement is not in the direction of the assumed velocity change it is very unlikely to be true. The two are correlated, so if the velocity changes so must the position, and in a predictable way. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Kalman Filter Algorithm\n", + "So in general terms we can show how a multidimensional Kalman filter works. In the example above, we compute velocity from the previous position measurements using something called the **measurement function**. Then we predict the next position by using the current estimate and something called the **state transition function**. In our example above, *new_position = old_position + velocity*time*. Next, we take the measurement from the sensor, and compare it to the prediction we just made. In a world with perfect sensors and perfect airplanes the prediction will always match the measured value. In the real world they will always be at least slightly different. We call the difference between the two the **residual**. Finally, we use something called the **Kalman gain** to update our estimate to be somewhere between the measured position and the predicted position. I will not describe how the gain is set, but suppose we had perfect confidence in our measurement - no error is possible. Then, clearly, we would set the gain so that 100% of the position came from the measurement, and 0% from the prediction. At the other extreme, if he have no confidence at all in the sensor (maybe it reported a hardware fault), we would set the gain so that 100% of the position came from the prediction, and 0% from the measurement. In normal cases, we will take a ratio of the two: maybe 53% of the measurement, and 47% of the prediction. The gain is updated on every cycle based on the variance of the variables (in a way yet to be explained). It should be clear that if the variance of the measurement is low, and the variance of the prediction is high we will favor the measurement, and vice versa. \n", + "\n", + "The chart shows a prior estimate of $x=1$ and $\\dot{x}=1$ ($\\dot{x}$ is the shorthand for the derivative of x, which is velocity). Therefore we predict $\\hat{x}=2$. However, the new measurement $x^{'}=1.3$, giving a residual $r=0.7$. Finally, Kalman filter gain $k$ gives us a new estimate of $\\hat{x^{'}}=1.8$.\n", + "\n", + "** CHECK SYMBOLOGY!!!!**" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from mkf_internal import *\n", + "show_residual_chart()" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": "" + }, + { + "cell_type": "code", + "collapsed": false, + "input": [], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": "" + } + ], + "metadata": {} + } + ] } \ No newline at end of file diff --git a/Untitled0.ipynb b/Untitled0.ipynb index 7c9c161..c1b5900 100644 --- a/Untitled0.ipynb +++ b/Untitled0.ipynb @@ -1,190 +1,174 @@ -{ - "metadata": { - "name": "", - "signature": "sha256:72a139de073c5d503980bcd0a85ebae9c6b611ce8aba196ba5cf862647b7cad0" - }, - "nbformat": 3, - "nbformat_minor": 0, - "worksheets": [ - { - "cells": [ - { - "cell_type": "code", - "collapsed": false, - "input": [ - "def to_array(x):\n", - " try:\n", - " x.shape\n", - " try:\n", - " if type(x) != numpy.ndarray:\n", - " x=asarray(x)[0]\n", - " return x\n", - " except:\n", - " pass\n", - "\n", - " except:\n", - " return array(mat(x)).reshape(1)\n", - "\n", - "def to_cov(x,n):\n", - " try:\n", - " x.shape\n", - " return x\n", - " except:\n", - " return eye(n) * x\n", - " \n", - "def multivariate_gaussian (x, mu, cov):\n", - " \"\"\" This is designed to work the same as scipy.stats.multivariate_normal\n", - " which is available before version 0.14. You may either pass in a \n", - " multivariate set of data:\n", - " multivariate_gaussian (array([1,1]), array([3,4]), eye(2)*1.4)\n", - " or unidimensional data:\n", - " multivariate_gaussian(1, 3, 1.4)\n", - " \n", - " In the multivariate case if cov is a scalar it is interpreted as eye(n)*cov\n", - " \"\"\"\n", - " \n", - " # force all to numpy.array type\n", - " x = to_array(x)\n", - " mu = to_array(mu)\n", - " n = mu.size\n", - " cov = to_cov (cov, n)\n", - "\n", - " det = numpy.sqrt(numpy.prod(numpy.diag(cov)))\n", - " frac = (2*numpy.pi)**(-n/2.0) * (1.0/det)\n", - " fprime = x - mu\n", - " fprime **= 2\n", - " m = frac * numpy.exp(-0.5*numpy.dot(fprime, 1/numpy.diag(cov)))\n", - " return m\n", - "\n" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "print mvg (array([1,1]), array([1,1]), eye(2))\n", - "print mvg (mat([1,1]), mat([1,1]), eye(2))\n", - "print mvg (2,3,1)" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "print numpy.array(3)\n", - "print pylab.rcParams['figure.figsize']" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "class KalmanFilter1D(object):\n", - "\n", - " def __init__ (self, x0, var):\n", - " self.mean = x0\n", - " self.variance = var\n", - "\n", - " def estimate(self, z, z_variance):\n", - " self.mean = \\\n", - " (self.variance*z + z_variance*self.mean) / \\\n", - " self.variance + z_variance\n", - " self.variance = 1. / (1./self.variance+ 1./z_variance)\n", - "\n", - "f = KalmanFilter1D(1,2)\n", - "f.estimate(z = 2,\n", - " z_variance = 3)\n", - "\n", - "print f.mean, f.variance" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%%file test.py\n", - "print 'hi'" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%run test.py\n" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "import math\n", - "from IPython.html.widgets import interact, interactive, fixed\n", - "#from IPython.html import widgets\n", - "#from IPython.display import clear_output, display, HTML\n", - "\n", - "def gaussian (x, mu, sigma):\n", - " ''' compute the gaussian with the specified mean(mu) and sigma'''\n", - " return math.exp (-0.5 * (x-mu)**2 / sigma) / math.sqrt(2.*math.pi*sigma)\n", - "\n", - "def plt_g (mu,gamma):\n", - " xs = arange(0,10,0.15)\n", - " ys = [gaussian (x, mu,gamma) for x in xs]\n", - " plot (xs, ys)\n", - " show()\n", - "\n", - " \n", - "interact (plt_g, mu=(0,10), gamma=(0.01,6))" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "display_data", - "png": "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\n", - "text": [ - "" - ] - }, - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 2, - "text": [ - "" - ] - } - ], - "prompt_number": 2 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [], - "language": "python", - "metadata": {}, - "outputs": [] - } - ], - "metadata": {} - } - ] +{ + "metadata": { + "name": "", + "signature": "sha256:590f0bf7162a3bfaae7a3f473dc035e859b9b29d9c8a7e0a72698e7589560fdc" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "code", + "collapsed": false, + "input": [ + "def to_array(x):\n", + " try:\n", + " x.shape\n", + " try:\n", + " if type(x) != numpy.ndarray:\n", + " x=asarray(x)[0]\n", + " return x\n", + " except:\n", + " pass\n", + "\n", + " except:\n", + " return array(mat(x)).reshape(1)\n", + "\n", + "def to_cov(x,n):\n", + " try:\n", + " x.shape\n", + " return x\n", + " except:\n", + " return eye(n) * x\n", + " \n", + "def multivariate_gaussian (x, mu, cov):\n", + " \"\"\" This is designed to work the same as scipy.stats.multivariate_normal\n", + " which is available before version 0.14. You may either pass in a \n", + " multivariate set of data:\n", + " multivariate_gaussian (array([1,1]), array([3,4]), eye(2)*1.4)\n", + " or unidimensional data:\n", + " multivariate_gaussian(1, 3, 1.4)\n", + " \n", + " In the multivariate case if cov is a scalar it is interpreted as eye(n)*cov\n", + " \"\"\"\n", + " \n", + " # force all to numpy.array type\n", + " x = to_array(x)\n", + " mu = to_array(mu)\n", + " n = mu.size\n", + " cov = to_cov (cov, n)\n", + "\n", + " det = numpy.sqrt(numpy.prod(numpy.diag(cov)))\n", + " frac = (2*numpy.pi)**(-n/2.0) * (1.0/det)\n", + " fprime = x - mu\n", + " fprime **= 2\n", + " m = frac * numpy.exp(-0.5*numpy.dot(fprime, 1/numpy.diag(cov)))\n", + " return m\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": "" + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "print mvg (array([1,1]), array([1,1]), eye(2))\n", + "print mvg (mat([1,1]), mat([1,1]), eye(2))\n", + "print mvg (2,3,1)" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": "" + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "print numpy.array(3)\n", + "print pylab.rcParams['figure.figsize']" + ], + "language": "python", + "metadata": {}, + "outputs": [] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "class KalmanFilter1D(object):\n", + "\n", + " def __init__ (self, x0, var):\n", + " self.mean = x0\n", + " self.variance = var\n", + "\n", + " def estimate(self, z, z_variance):\n", + " self.mean = \\\n", + " (self.variance*z + z_variance*self.mean) / \\\n", + " self.variance + z_variance\n", + " self.variance = 1. / (1./self.variance+ 1./z_variance)\n", + "\n", + "f = KalmanFilter1D(1,2)\n", + "f.estimate(z = 2,\n", + " z_variance = 3)\n", + "\n", + "print f.mean, f.variance" + ], + "language": "python", + "metadata": {}, + "outputs": [] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "%%file test.py\n", + "print 'hi'" + ], + "language": "python", + "metadata": {}, + "outputs": [] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "%run test.py\n" + ], + "language": "python", + "metadata": {}, + "outputs": [] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "from IPython.html.widgets import interact, interactive, fixed\n", + "#from IPython.html import widgets\n", + "#from IPython.display import clear_output, display, HTML\n", + "\n", + "def gaussian (x, mu, sigma):\n", + " ''' compute the gaussian with the specified mean(mu) and sigma'''\n", + " return math.exp (-0.5 * (x-mu)**2 / sigma) / math.sqrt(2.*math.pi*sigma)\n", + "\n", + "def plt_g (mu,gamma):\n", + " xs = arange(0,10,0.15)\n", + " ys = [gaussian (x, mu,gamma) for x in xs]\n", + " plot (xs, ys)\n", + " show()\n", + "\n", + " \n", + "interact (plt_g, mu=(0,10), gamma=(0.01,6))" + ], + "language": "python", + "metadata": {}, + "outputs": [] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [], + "language": "python", + "metadata": {}, + "outputs": [] + } + ], + "metadata": {} + } + ] } \ No newline at end of file diff --git a/histogram_filter.ipynb b/histogram_filter.ipynb index 7c32d01..36c0bf4 100644 --- a/histogram_filter.ipynb +++ b/histogram_filter.ipynb @@ -1,7 +1,7 @@ { "metadata": { "name": "", - "signature": "sha256:8d7cf224140d3802499c78af56da276f1e1e580fa08934a23e11b1ea2301209a" + "signature": "sha256:1a6b28b567f1c5631b9b36052e0f65cf80787c42b18cc448bbc07857f94a982a" }, "nbformat": 3, "nbformat_minor": 0, @@ -17,22 +17,6 @@ "The Kalman filter belongs to a family of filters called *bayesian filters*. Without going into" ] }, - { - "cell_type": "code", - "collapsed": false, - "input": [], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [], - "language": "python", - "metadata": {}, - "outputs": [] - }, { "cell_type": "markdown", "metadata": {}, @@ -59,7 +43,7 @@ "language": "python", "metadata": {}, "outputs": [], - "prompt_number": 1 + "prompt_number": "" }, { "cell_type": "markdown", @@ -77,7 +61,7 @@ "language": "python", "metadata": {}, "outputs": [], - "prompt_number": 2 + "prompt_number": "" }, { "cell_type": "markdown", @@ -105,17 +89,8 @@ ], "language": "python", "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "display_data", - "png": "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\nlmPChAk6c+aMrly5omPHjmXt9fM//OEP+vKXv6xQKJQTV82SdPz4cZ0+fVqHDh3Sr3/9a3V2dmYl\nx+DgoE6dOqUf/OAHOnXqlCZNmqSXX345K1nuGRgY0O9//3t961vfylqGt956S7/85S/V09Ojq1ev\n6tatW9qzZ09Wsvj9fv34xz/WsmXLtHz5coVCIccLlc90wXs8HsXj8dR6PB6X1+vNYqLccufOHX3z\nm9/Ud77zHa1cuTLbcSRJU6ZM0Te+8Q2dPHkyK8c/ceKEDhw4oMcee0zPPPOMjhw5orVr12Ylyz2F\nhYWSpIKCAtXW1ioWi2Ulh9frldfrVXl5uSRp1apVOnXqVFay3HPo0CEtWrRIBQUFWctw8uRJPfHE\nE5o+fbry8vJUV1enEydOZC3PunXrdPLkSf35z3/W1KlTNXfu3GHHfqYL/uMvYg0MDKi1tVU1NTXZ\njpUTjDFqaGjQvHnz9MMf/jCrWf773//q+vXrkqTbt2/rT3/6k0KhUFaybNmyRfF4XJcuXdK+ffv0\n9a9/Xbt3785KFknq7+/XzZs3JUl9fX06fPhw1p7CmjlzpoqKivSPf/xD0t173/Pnz89Klnv27t2r\nZ555JqsZ/H6/urq6dPv2bRlj1NHRkdVbjG+//bYk6fLly/rd737nfPtqfH72O3YOHjxoHn/8cTNn\nzhyzZcuWrGapr683hYWF5otf/KLxer1m165dWcvS2dlpXC6XCQaDZuHChWbhwoXm0KFDWcly9uxZ\nEwqFTDAYNKWlpebnP/95VnJ8UjQazfpTNP/85z9NMBg0wWDQzJ8/P+vfw2fOnDHhcNiUlZWZ2tra\nrD5Fc+vWLTN9+nRz48aNrGW4p6mpycybN88sWLDArF271gwMDGQtS2VlpZk3b54JBoPmyJEjjmN5\n0QkALPWZvkUDABgeBQ8AlqLgAcBSFDwAWIqCBwBLUfAAYCkKHgAsRcEDgKX+H365oPMZsojKAAAA\nAElFTkSuQmCC\n", - "text": [ - "" - ] - } - ], - "prompt_number": 3 + "outputs": [], + "prompt_number": "" }, { "cell_type": "markdown", @@ -135,16 +110,8 @@ ], "language": "python", "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "pos = [ 0.3 0.3 0. 0. 0. 0. 0. 0. 0.3 0. ]\n" - ] - } - ], - "prompt_number": 4 + "outputs": [], + "prompt_number": "" }, { "cell_type": "markdown", @@ -170,16 +137,8 @@ ], "language": "python", "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "[0 1 0 0 0 0 0 0 0 0]\n" - ] - } - ], - "prompt_number": 5 + "outputs": [], + "prompt_number": "" }, { "cell_type": "markdown", @@ -226,17 +185,8 @@ ], "language": "python", "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "[ 0.12 0.12 0.04 0.04 0.04 0.04 0.04 0.04 0.12 0.04]\n", - "sum = 0.64\n" - ] - } - ], - "prompt_number": 6 + "outputs": [], + "prompt_number": "" }, { "cell_type": "markdown", @@ -275,18 +225,8 @@ ], "language": "python", "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "sum = 1.0\n", - "probability of door = 0.1875\n", - "probability of wall = 0.0625\n" - ] - } - ], - "prompt_number": 7 + "outputs": [], + "prompt_number": "" }, { "cell_type": "markdown", @@ -332,17 +272,8 @@ ], "language": "python", "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "pos before update = [ 0.4 0.1 0.2 0.3]\n", - "pos after update = [ 0.3 0.4 0.1 0.2]\n" - ] - } - ], - "prompt_number": 8 + "outputs": [], + "prompt_number": "" }, { "cell_type": "markdown", @@ -379,16 +310,8 @@ ], "language": "python", "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "[ 0. 0. 0. 0. 0.1 0.8 0.1 0. ]\n" - ] - } - ], - "prompt_number": 9 + "outputs": [], + "prompt_number": "" }, { "cell_type": "markdown", @@ -407,16 +330,8 @@ ], "language": "python", "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "[ 0. 0. 0. 0.04 0.38 0.52 0.06 0. ]\n" - ] - } - ], - "prompt_number": 10 + "outputs": [], + "prompt_number": "" }, { "cell_type": "markdown", @@ -435,17 +350,8 @@ ], "language": "python", "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "display_data", - "png": "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\nzp0VHdgt6XTa7RHmxez5024PME9ptweYp7TbA8xT2u0BKs4x5JlMRuFwWKFQSD6fT11dXUomk9PW\nHDhwQI888ogkqb29XePj4zp9+nTlJnaJ2SE0ff602wPMU9rtAeYp7fYA85R2e4CKcwx5LpdTMBjM\nbwcCAeVyuYJrxsbGyjwmAOBqHEN+5cNsCvvkB7oU+zwAwPw5foyt3+9XNpvNb2ezWQUCAcc1Y2Nj\n8vv9M16roaHB+MDv2bPH7RHmpfLzV/K/79xnL+77rtLfmzfm/MW/502fv3IaGhoKrnEMeWtrq0ZG\nRjQ6OqoVK1Zo//79SiQS09Z0dnaqv79fXV1dOnbsmD796U9r2bJlM17r5MmTJY4PACiGY8i9Xq/6\n+/vV0dEhy7LU3d2taDSqgYEBSVJPT482btyogwcPKhwOa+HChfrpT396TQYHAFxxzf5gCQBAZVT8\nzs5ibiiqZo8++qiWLVumz33uc26PUrJsNqt169bpjjvu0MqVK/X888+7PVJJ/vOf/6i9vV2rV69W\nc3OznnrqKbdHmhPLshSLxbRp0ya3RylZKBTSqlWrFIvFtGbNGrfHKcn4+Li2bt2qaDSq5uZmHTt2\nzO2RivbOO+8oFovl/6qrq3N+/9oVNDU1ZTc0NNinTp2yJycn7ZaWFnt4eLiSuyy7N9980x4aGrJX\nrlzp9igl++CDD+zjx4/btm3bFy5csD/72c8a9+9/YmLCtm3bvnTpkt3e3m4fOXLE5YlK99xzz9kP\nPPCAvWnTJrdHKVkoFLLPnj3r9hhz8vDDD9svvviibdtXvn/Gx8ddnmhuLMuyly9fbr///vtXXVPR\nI/Jibiiqdvfcc48WL17s9hhzsnz5cq1evVqStGjRIkWjUf3jH/9wearSLFiwQJI0OTkpy7K0ZMkS\nlycqzdjYmA4ePKhvfvObVfHnP86FiXP/61//0pEjR/Too49KuvL7vrq6OpenmpvBwUE1NDRMu1/n\nkyoa8mJuKMK1MTo6quPHj6u9vd3tUUpy+fJlrV69WsuWLdO6devU3Nzs9kgl+da3vqXvf//7qqkx\n8/PpPB6PvvzlL6u1tVUvvPCC2+MU7dSpU6qvr9f27dt15513aseOHbp48aLbY83Jvn379MADDziu\nqeh3VzVcgwnpo48+0tatW/WDH/xAixYtcnucktTU1OjPf/6zxsbG9Oabbxr1UQO/+tWvdOuttyoW\nixl5VCtJR48e1fHjx3Xo0CH98Ic/1JEjR9weqShTU1MaGhrSY489pqGhIS1cuFDPPvus22OVbHJy\nUr/85S/1ta99zXFdRUNezA1FqKxLly7p/vvv1ze+8Q1t3rzZ7XHmrK6uTl/96lf1pz/9ye1RivbW\nW2/pwIED+sxnPqNt27bpjTfe0MMPP+z2WCW57bbbJEn19fXasmWLMpmMyxMVJxAIKBAIqK2tTZK0\ndetWDQ0NuTxV6Q4dOqS77rpL9fX1jusqGvKP31A0OTmp/fv3q7Ozs5K7xMfYtq3u7m41Nzdr9+7d\nbo9TsjNnzmh8fFyS9O9//1u//e1vFYvFXJ6qeN/73veUzWZ16tQp7du3T1/60pf00ksvuT1W0S5e\nvKgLFy5IkiYmJvSb3/zGmKu3li9frmAwqHfffVfSlfPMd9xxh8tTlS6RSGjbtm0F1zneEDRfV7uh\nyCTbtm3T73//e509e1bBYFBPP/20tm/f7vZYRTl69Khefvnl/OVjkvTMM89o/fr1Lk9WnA8++ECP\nPPKILl++rMuXL+uhhx7Svffe6/ZYc2baqcbTp09ry5Ytkq6cqnjwwQf1la98xeWpird37149+OCD\nmpycVENDg3E3K05MTGhwcLCo301wQxAAGM7MX6UDAPIIOQAYjpADgOEIOQAYjpADgOEIOQAYjpAD\ngOEIOQAY7v8Av9rK1q6fmQEAAAAASUVORK5CYII=\n", - "text": [ - "" - ] - } - ], - "prompt_number": 11 + "outputs": [], + "prompt_number": "" }, { "cell_type": "markdown", @@ -466,24 +372,8 @@ ], "language": "python", "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "[ 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1]\n" - ] - }, - { - "metadata": {}, - "output_type": "display_data", - "png": "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\nTkSuQmCC\n", - "text": [ - "" - ] - } - ], - "prompt_number": 12 + "outputs": [], + "prompt_number": "" }, { "cell_type": "markdown", @@ -504,25 +394,8 @@ ], "language": "python", "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "[ 0.10407069 0.10329322 0.10125784 0.09874205 0.09670682 0.09592945\n", - " 0.09670682 0.09874205 0.10125784 0.10329322]\n" - ] - }, - { - "metadata": {}, - "output_type": "display_data", - "png": "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\n", - "text": [ - "" - ] - } - ], - "prompt_number": 13 + "outputs": [], + "prompt_number": "" }, { "cell_type": "markdown", @@ -554,27 +427,8 @@ ], "language": "python", "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "[ 0.1875 0.1875 0.0625 0.0625 0.0625 0.0625 0.0625 0.0625 0.1875\n", - " 0.0625]\n", - "[ 0.0875 0.175 0.175 0.075 0.0625 0.0625 0.0625 0.0625 0.075\n", - " 0.1625]\n" - ] - }, - { - "metadata": {}, - "output_type": "display_data", - "png": "iVBORw0KGgoAAAANSUhEUgAAAXYAAAEACAYAAACnJV25AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAHORJREFUeJzt3X9Mk3fiB/B3OXohJyJKUGafLmy02ha04No1muyuLuaY\n3kk25S5MDWarG9nFeCxedtlfB/tD5YyJTO4Ptuy8M7cgyf0QTmtzx+3bG5kjxICeCfOGHt1KGd7u\n9mXAUAvd5/sHrl8r8LQqPH38+H4lTXh4Pk8/7yK8eXza8jEIIQSIiEgaGekOQERE84vFTkQkGRY7\nEZFkWOxERJJhsRMRSYbFTkQkmaTFHggEYLPZYLVa0dDQMGP/5cuXsX79emRlZeHIkSMJ+w4ePIji\n4mKsWbMGO3bswM2bN+cvORERzUq12GOxGPbu3YtAIIC+vj60tLTgo48+ShiTl5eHY8eO4Wc/+1nC\n50OhEN5++2309PTg0qVLiMViOHny5Pw/AiIiSqBa7N3d3bBYLCgsLITRaERVVRXa2toSxuTn58Pl\ncsFoNCZ8PicnB0ajERMTE5iamsLExARMJtP8PwIiIkqgWuyRSARmszm+rSgKIpFISne8bNky7N+/\nH48++ihWrlyJ3NxcbNq06f7SEhFRUqrFbjAY7vmOr169iqNHjyIUCmFoaAjj4+N499137/n+iIgo\nNZlqO00mE8LhcHw7HA5DUZSU7vj8+fPYsGED8vLyAADbtm3DuXPnsHPnzoRxpaWluHjx4t3mJiJ6\nqDmdTly4cGHWfapn7C6XC/39/QiFQohGo2htbUVFRcWsY+/8W2I2mw1dXV24fv06hBDo6OiAw+GY\ncdzFixchhLiv2y9+8Yv7vo/5uOkhhx4y6CUHM+grhx4y6CXHfGRQOyFWPWPPzMxEU1MTysvLEYvF\n4PP5YLfb0dzcDACoqanB8PAw3G43RkdHkZGRgcbGRvT19cHpdKK6uhoulwsZGRlYt24dXn75ZbXp\niIhoHqgWOwBs3rwZmzdvTvhcTU1N/OOCgoKEyzW3e+211/Daa6/dZ0QiIrobUrzz1Ov1pjsCAH3k\n0EMGQB85mOH/6SGHHjIA+six0BkMQoi0LrRhMBiQ5ghERA8cte6U4ox9PuTkLIPBYNDklpOzTLcZ\niOjBxzP223IAWuWY/THrIQMRPRh4xk5E9BBhsRMRSYbFTkQkGRY7EZFkWOxERJJhsRMRSYbFTkQk\nGRY7EZFkWOxERJJhsRMRSYbFTkQkGRY7EZFkkhZ7IBCAzWaD1WpFQ0PDjP2XL1/G+vXrkZWVhSNH\njiTsGxkZQWVlJex2OxwOB7q6uuYvORERzUp1BaVYLIa9e/eio6MDJpMJbrcbFRUVsNvt8TF5eXk4\nduwYTp06NeP4n/70p9iyZQt+//vfY2pqCl999dX8PwIiIo3l5CzD2Nj/Lvg8ixcvxejoF3d9nOoZ\ne3d3NywWCwoLC2E0GlFVVYW2traEMfn5+XC5XDAajQmf//LLL9HZ2YkXX3wRwPT6qUuWLLnrgERE\nejNd6mLBb/f6y0O12CORCMxmc3xbURREIpGU7nhgYAD5+fl44YUXsG7dOrz00kuYmJi4p5BERJQ6\n1Usx0ws/3JupqSn09PSgqakJbrcbtbW1OHToEN54440ZY+vq6uIfe71eXaxJSESkJ8FgEMFgMKWx\nqsVuMpkQDofj2+FwGIqipHTHiqJAURS43W4AQGVlJQ4dOjTr2NuLnYiIZrrzpLe+vn7OsaqXYlwu\nF/r7+xEKhRCNRtHa2oqKiopZx965RFNBQQHMZjM+/vhjAEBHRweKi4tTfQxERHSPkq55evbsWdTW\n1iIWi8Hn8+H1119Hc3MzAKCmpgbDw8Nwu90YHR1FRkYGFi9ejL6+PmRnZ+PixYvYs2cPotEoioqK\ncPz48RlPoHLNU31lIKLktPtZnfvnVK07uZj1bTnSXap6yEBEyem92PnOUyIiybDYiYgkw2InIpIM\ni52ISDIsdiIiybDYiYgkw2InIpIMi52ISDIsdiIiybDYiYgkw2InIpIMi52ISDIsdiIiybDYiYgk\nw2InIpIMi52ISDJJiz0QCMBms8FqtaKhoWHG/suXL2P9+vXIysrCkSNHZuyPxWIoKyvD1q1b5ycx\nERGpUl3MOhaLYe/evejo6IDJZILb7UZFRQXsdnt8TF5eHo4dO4ZTp07Neh+NjY1wOBwYGxub3+RE\nRDQr1TP27u5uWCwWFBYWwmg0oqqqCm1tbQlj8vPz4XK5YDQaZxw/ODgIv9+PPXv2cBk2IiKNqBZ7\nJBKB2WyObyuKgkgkkvKdv/rqqzh8+DAyMngpn4hIK6qXYqYXbL03p0+fxvLly1FWVoZgMKg6tq6u\nLv6x1+uF1+u953mJiGQUDAaTduk3VIvdZDIhHA7Ht8PhMBRFSemOz507h/b2dvj9fty4cQOjo6Oo\n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\nyfwf+vSYxeHQUa4AAAAASUVORK5CYII=\n", - "text": [ - "" - ] - } - ], - "prompt_number": 14 + "outputs": [], + "prompt_number": "" }, { "cell_type": "markdown", @@ -593,25 +447,8 @@ ], "language": "python", "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "[ 0.15671642 0.31343284 0.10447761 0.04477612 0.03731343 0.03731343\n", - " 0.03731343 0.03731343 0.13432836 0.09701493]\n" - ] - }, - { - "metadata": {}, - "output_type": "display_data", - "png": "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\nAAAAAElFTkSuQmCC\n", - "text": [ - "" - ] - } - ], - "prompt_number": 15 + "outputs": [], + "prompt_number": "" }, { "cell_type": "markdown", @@ -630,17 +467,8 @@ ], "language": "python", "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "display_data", - "png": "iVBORw0KGgoAAAANSUhEUgAAAXYAAAEACAYAAACnJV25AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAGcdJREFUeJzt3X9s1PXhx/HXsbvFCIIUOy13XQ5o7V2BHp1XGjTNzqXQ\nlMWGVlyqTJ12pmExxsU/lv1l8Q9nt5gM7f5oiLoYTekfbNRN6FyHNzuU3RQYJgRXWDuu55j4g1Fa\ntfT2/v6B3pda+ukV2rvrm+cjuaSfft7v+7zuaF98+unn04/LGGMEALDGvGwHAADMLIodACxDsQOA\nZSh2ALAMxQ4AlqHYAcAyUxZ7d3e3AoGAiouL1draOum4v/3tb3K73dq1a9e05wIAZo7L6Tz2ZDKp\nkpIS9fT0yOv1qqKiQh0dHQoGgxPGrV+/Xtdee60eeOAB3XnnnWnPBQDMLMc99lgspqKiIvn9fnk8\nHjU2Nqqrq2vCuGeffVabN29Wfn7+tOcCAGaWY7EnEgkVFhamln0+nxKJxIQxXV1d2rp1qyTJ5XKl\nPRcAMPMci/3Lknby6KOP6qmnnpLL5ZIxRl8e2UlnLgBg5rmdVnq9XsXj8dRyPB6Xz+cbN+add95R\nY2OjJOnDDz/U3r175fF40porSWvWrNHf//73K3oRAHC1CYVCOnz48KVXGgfnz583y5cvN/39/ebz\nzz83oVDIHD16dNLxP/jBD8yuXbumNXeKCGl5/PHHr/g5bMhgTG7kyIUMxuRGjlzIYExu5MiFDMbk\nRo6ZyODUnY577G63W21tbaqpqVEymVRTU5OCwaDa29slSc3NzdOeCwCYXY7FLkm1tbWqra0d97nJ\nCv2FF16Yci4AYHZZceVpJBLJdoScyCDlRo5cyCDlRo5cyCDlRo5cyCDlRo7ZzuB4gVImfHk2DQAg\nfU7dacUeOwDg/1HsAGAZih0ALEOxA4BlKHYAsAzFDgCWodgBwDIUOwBYhmIHAMtQ7ABgGYodACxD\nsQOAZSh2ALAMxQ4AlqHYAcAyFDsAWIZiBwDLTFns3d3dCgQCKi4uVmtr64T1XV1dCoVCKi8v1y23\n3KJ9+/al1vn9fpWVlam8vFxr166d2eQAgEtyvDVeMplUSUmJenp65PV6VVFRoY6ODgWDwdSY4eFh\nzZ8/X5L07rvvqr6+XsePH5ckLVu2TO+8847y8vImD8Ct8QBg2i771nixWExFRUXy+/3yeDxqbGxU\nV1fXuDFflroknTt3TjfccMO49ZQ2AGSWY7EnEgkVFhamln0+nxKJxIRxu3fvVjAYVG1trZ555pnU\n510ul6qrqxUOh7Vjx44ZjG2nhQvz5HK5MvJYuHDyn6IAzG1up5UulyutJ9m0aZM2bdqk3t5e3Xvv\nvXrvvfckSfv371dBQYFOnz6t9evXKxAIqKqq6spTW2po6BNJmfkJZ2govX9bAHOPY7F7vV7F4/HU\ncjwel8/nm3R8VVWVxsbG9NFHH2nJkiUqKCiQJOXn56u+vl6xWOySxd7S0pL6OBKJKBKJTPNlAIDd\notGootFoWmMdf3k6NjamkpIS/elPf9LSpUu1du3aCb88PXHihJYvXy6Xy6WDBw/qrrvu0okTJzQy\nMqJkMqnrrrtOw8PD2rBhgx5//HFt2LBhfAB+eZpy4SekTL0XvO/AXObUnY577G63W21tbaqpqVEy\nmVRTU5OCwaDa29slSc3Nzdq1a5defPFFeTweLViwQDt37pQknTp1Sg0NDZIu/AexZcuWCaUOAJh5\njnvsGQnAHnsKe+wA0nXZpzsCAOYeih0ALEOxA4BlKHYAsAzFDgCWodgBwDIUOwBYhmIHAMtQ7ABg\nGYodACxDsQOAZSh2ALAMxQ4AlqHYAcAyFDsAWIZiBwDLUOwAYBmKHQAsQ7EDgGWmLPbu7m4FAgEV\nFxertbV1wvquri6FQiGVl5frlltu0b59+9KeCwCYeY43s04mkyopKVFPT4+8Xq8qKirU0dGhYDCY\nGjM8PKz58+dLkt59913V19fr+PHjac2VuJn1xbiZNYB0XfbNrGOxmIqKiuT3++XxeNTY2Kiurq5x\nY74sdUk6d+6cbrjhhrTnAgBmnmOxJxIJFRYWppZ9Pp8SicSEcbt371YwGFRtba2eeeaZac0FAMws\nt9PKC4cGprZp0yZt2rRJvb29uvfee3Xs2LFphWhpaUl9HIlEFIlEpjUfAGwXjUYVjUbTGutY7F6v\nV/F4PLUcj8fl8/kmHV9VVaWxsTF9/PHH8vl8ac+9uNgBABN9dad327Ztk451PBQTDofV19engYEB\njY6OqrOzU3V1dePGnDhxInUA/+DBg5KkJUuWpDUXADDzHPfY3W632traVFNTo2QyqaamJgWDQbW3\nt0uSmpubtWvXLr344ovyeDxasGCBdu7c6TgXADC7HE93zEgATndM4XRHAOm67NMdAQBzD8UOAJah\n2AHAMhQ7AFiGYgcAy1DsAGAZih0ALEOxA4BlKHYAsAzFDgCWodgBwDIUOwBYhmIHAMtQ7ABgGYod\nACxDsQOAZSh2ALAMxQ4AlqHYAcAyUxZ7d3e3AoGAiouL1draOmH9yy+/rFAopLKyMt122206cuRI\nap3f71dZWZnKy8u1du3amU0OALgkx5tZJ5NJlZSUqKenR16vVxUVFero6FAwGEyNeeutt1RaWqpF\nixapu7tbLS0tOnDggCRp2bJleuedd5SXlzd5AG5mncLNrAGk67JvZh2LxVRUVCS/3y+Px6PGxkZ1\ndXWNG7Nu3TotWrRIklRZWanBwcFx6ykPAMgsx2JPJBIqLCxMLft8PiUSiUnHP/fcc9q4cWNq2eVy\nqbq6WuFwWDt27JiBuACAqbidVl44NJCe119/Xc8//7z279+f+tz+/ftVUFCg06dPa/369QoEAqqq\nqpowt6WlJfVxJBJRJBJJe7sAcDWIRqOKRqNpjXUsdq/Xq3g8nlqOx+Py+XwTxh05ckQPPfSQuru7\ntXjx4tTnCwoKJEn5+fmqr69XLBabstgBABN9dad327Ztk451PBQTDofV19engYEBjY6OqrOzU3V1\ndePGnDx5Ug0NDXrppZdUVFSU+vzIyIiGhoYkScPDw3rttde0evXqy3k9AIBpcNxjd7vdamtrU01N\njZLJpJqamhQMBtXe3i5Jam5u1hNPPKFPPvlEW7dulSR5PB7FYjGdOnVKDQ0NkqSxsTFt2bJFGzZs\nmOWXAwBwPN0xIwE43TGF0x0BpOuyT3cEAMw9FDsAWIZiBwDLUOwAYBmKHQAsQ7EDgGUodgCwDMUO\nAJah2AHAMhQ7AFiGYgcAy1DsAGAZih0ALEOxA4BlKHYAsAzFDgCWodgBwDIUOwBYhmIHAMtMWezd\n3d0KBAIqLi5Wa2vrhPUvv/yyQqGQysrKdNttt+nIkSNpzwUAzALjYGxszKxYscL09/eb0dFREwqF\nzNGjR8eNefPNN82ZM2eMMcbs3bvXVFZWpj33ixtpO0W4qkgyksnQg/cdmMucvocd99hjsZiKiork\n9/vl8XjU2Niorq6ucWPWrVunRYsWSZIqKys1ODiY9lwAwMxzLPZEIqHCwsLUss/nUyKRmHT8c889\np40bN17WXADAzHA7rXS5XGk/0euvv67nn39e+/fvn/bclpaW1MeRSESRSCTtuQBwNYhGo4pGo2mN\ndSx2r9ereDyeWo7H4/L5fBPGHTlyRA899JC6u7u1ePHiac2Vxhc7AGCir+70btu2bdKxjodiwuGw\n+vr6NDAwoNHRUXV2dqqurm7cmJMnT6qhoUEvvfSSioqKpjUXADDzHPfY3W632traVFNTo2Qyqaam\nJgWDQbW3t0uSmpub9cQTT+iTTz7R1q1bJUkej0exWGzSuQCA2eX64rSZ7AVwuZTlCDnjwu8lMvVe\n8L4Dc5lTd3LlKQBYhmIHAMtQ7ABgGYodACxDsQOAZSh2ALAMxQ4AlqHYAcAyFDsAWIZiBwDLUOwA\nYBmKHQAsQ7EDgGUodgCwDMUOAJah2AHAMhQ7AFiGYgcAy1DsAGCZKYu9u7tbgUBAxcXFam1tnbD+\n2LFjWrduna655ho9/fTT49b5/X6VlZWpvLxca9eunbnUAIBJuZ1WJpNJPfzww+rp6ZHX61VFRYXq\n6uoUDAZTY5YsWaJnn31Wu3fvnjDf5XIpGo0qLy9v5pMDAC7JcY89FoupqKhIfr9fHo9HjY2N6urq\nGjcmPz9f4XBYHo/nks8x2V20AWCuWrgwTy6Xa9YfCxde3k6xY7EnEgkVFhamln0+nxKJRNpP7nK5\nVF1drXA4rB07dlxWQGRern/RAtk2NPSJJDPrjwvbmT7HQzEul+uynvRL+/fvV0FBgU6fPq3169cr\nEAioqqpqwriWlpbUx5FIRJFI5Iq2iyvz/1+0s72dK/v6Aq4m0WhU0Wg0rbGOxe71ehWPx1PL8Xhc\nPp8v7SAFBQWSLhyuqa+vVywWm7LYAQATfXWnd9u2bZOOdTwUEw6H1dfXp4GBAY2Ojqqzs1N1dXWX\nHPvVY+kjIyMaGhqSJA0PD+u1117T6tWr030NAIDL5LjH7na71dbWppqaGiWTSTU1NSkYDKq9vV2S\n1NzcrFOnTqmiokJnz57VvHnztH37dh09elQffPCBGhoaJEljY2PasmWLNmzYMPuvCACuci6T5dNW\nXC4XZ8584cLvNDL1Xkz+vmcuB//2mJty4XvEqTu58hQALEOxA4BlKHYAsAzFDgCWodgBwDIUOwBY\nhmIHAMtQ7ABgGYodACxDsQOAZSh2ALAMxQ4AlqHYAcAyFDsAWIZiBwDLUOwAYBmKHQAsQ7EDgGUo\ndgCwzJTF3t3drUAgoOLiYrW2tk5Yf+zYMa1bt07XXHONnn766WnNBQDMPMebWSeTSZWUlKinp0de\nr1cVFRXq6OhQMBhMjTl9+rT+9a9/affu3Vq8eLEee+yxtOdK3Mz6YtzMGpgbcuF75LJvZh2LxVRU\nVCS/3y+Px6PGxkZ1dXWNG5Ofn69wOCyPxzPtuQCAmedY7IlEQoWFhalln8+nRCKR1hNfyVwAwOVz\nO6288OPG5ZnO3JaWltTHkUhEkUjksrcLADaKRqOKRqNpjXUsdq/Xq3g8nlqOx+Py+XxpPfF05l5c\n7ACAib6607tt27ZJxzoeigmHw+rr69PAwIBGR0fV2dmpurq6S4796kH86cwFAMwcxz12t9uttrY2\n1dTUKJlMqqmpScFgUO3t7ZKk5uZmnTp1ShUVFTp79qzmzZun7du36+jRo1qwYMEl5wIAZpfj6Y4Z\nCcDpjimc7gjMDbnwPXLZpzsCAOYeih0ALEOxA4BlKHYAsAzFDgCWodgBwDIUOwBYhmIHAMtQ7ABg\nGYodACxDsQOAZSj2LyxcmCeXyzXrj4UL87L9UgFYjj8CdlGOXPijPvwRMCD35cL3CH8EDACuIhQ7\nAFiGYkdOytTvPPi9B2zEMfaLcuTCMTOOsWc6g3MO4FJy5XuEY+wAcJWYsti7u7sVCARUXFys1tbW\nS4555JFHVFxcrFAopEOHDqU+7/f7VVZWpvLycq1du3bmUgMAJuV4M+tkMqmHH35YPT098nq9qqio\nUF1d3bibUu/Zs0fHjx9XX1+f/vrXv2rr1q06cOCApAs/KkSjUeXlcQwTADLFcY89FoupqKhIfr9f\nHo9HjY2N6urqGjfmlVde0f333y9Jqqys1JkzZ/Sf//wntZ5jlwCQWY7FnkgkVFhYmFr2+XxKJBJp\nj3G5XKqurlY4HNaOHTtmMjcAYBKOh2Iu/OZ3apPtlf/lL3/R0qVLdfr0aa1fv16BQEBVVVXTTwkA\nSJtjsXu9XsXj8dRyPB6Xz+dzHDM4OCiv1ytJWrp0qSQpPz9f9fX1isVilyz2lpaW1MeRSESRSGTa\nLwQAbBaNRhWNRtMbbBycP3/eLF++3PT395vPP//chEIhc/To0XFjXn31VVNbW2uMMeatt94ylZWV\nxhhjhoeHzdmzZ40xxpw7d87ceuut5g9/+MOEbUwRIWMkGclk4DH5681chlzJkQsZnHNcd93iL7LM\n7uO66xZnPUOu5HDKkCty5XtkMo577G63W21tbaqpqVEymVRTU5OCwaDa29slSc3Nzdq4caP27Nmj\noqIizZ8/Xy+88IIk6dSpU2poaJAkjY2NacuWLdqwYYPT5oCcMzT0iZSBC1GGhiY/7JmpDLmSwykD\n0pMTV55mynXXLdbZsx875MjEW5H7V1vyXmQjRy5kyJUcuX8lcC68F05XnjrusWdO9vdGAMAW/EkB\nALAMxQ4AlqHYAcAyFDsAWIZiBwDLUOwAYBmKHQAsQ7EDgGUodgCwDMUOAJah2AHAMhQ7AFiGYgcw\nZyxcmCeXy5WRx8KFedl+uZctR/66IwBMLVf+Nn2uY48dACxDsQOAZSh2ALAMxQ4Alpmy2Lu7uxUI\nBFRcXKzW1tZLjnnkkUdUXFysUCikQ4cOTWsuAGCGGQdjY2NmxYoVpr+/34yOjppQKGSOHj06bsyr\nr75qamtrjTHGHDhwwFRWVqY994sbaRvJXOHj9TTHTf5yrzxHLmTIlRy5kCFXcuRChlzJkQsZciXH\nzGSYjOMeeywWU1FRkfx+vzwejxobG9XV1TVuzCuvvKL7779fklRZWakzZ87o1KlTac2dOdFZet7p\niGY7wBei2Q6g3Mgg5UaOaLYDfCGa7QDKjQxSbuSIzuqzOxZ7IpFQYWFhatnn8ymRSKQ15v33359y\nLgBg5jkWu8uV3gn6F34qAADkAscrT71er+LxeGo5Ho/L5/M5jhkcHJTP59P58+ennCtJoVBIf//7\nTFzhtS2tUc7/WV1pjlzIkCs5ciFDruTIhQy5kiMXMuRKjivLEAqFJp3jWOzhcFh9fX0aGBjQ0qVL\n1dnZqY6OjnFj6urq1NbWpsbGRh04cEDXX3+9brzxRi1ZsmTKuZJ0+PDhdF4bACBNjsXudrvV1tam\nmpoaJZNJNTU1KRgMqr29XZLU3NysjRs3as+ePSoqKtL8+fP1wgsvOM4FAMwul+EAOQBYZU5feZoL\nF0A9+OCDuvHGG7V69eqsbP9L8Xhct99+u1auXKlVq1bpmWeeyXiGzz77TJWVlVqzZo1KS0v105/+\nNOMZvpRMJlVeXq477rgjaxn8fr/KyspUXl6utWvXZiXDmTNntHnzZgWDQZWWlurAgQMZz/Dee++p\nvLw89Vi0aFFWvj5/9rOfaeXKlVq9erXuueceff755xnPIEnbt2/X6tWrtWrVKm3fvn12NjLpGe45\nLt0LoGbbG2+8YQ4ePGhWrVqV8W1f7N///rc5dOiQMcaYoaEhc/PNN2fl/RgeHjbGGHP+/HlTWVlp\nent7M57BGGOefvppc88995g77rgjK9s3xhi/328++uijrG3fGGPuu+8+89xzzxljLvybnDlzJqt5\nksmkuemmm8zJkyczut3+/n6zbNky89lnnxljjPne975nfv3rX2c0gzHGvPvuu2bVqlXm008/NWNj\nY6a6utocP358xrczZ/fYM3sB1OSqqqq0ePHijG/3q2666SatWbNGkrRgwQIFg0G9//77Gc9x7bXX\nSpJGR0eVTCaVl5f5mxUMDg5qz549+uEPf5j1U3Gzuf3//ve/6u3t1YMPPijpwu+9Fi1alLU8ktTT\n06MVK1aMu8YlExYuXCiPx6ORkRGNjY1pZGREXq83oxkk6dixY6qsrNQ111yjr33ta/r2t7+t3/zm\nNzO+nTlb7OlcPHW1GhgY0KFDh1RZWZnxbf/vf//TmjVrdOONN+r2229XaWlpxjP8+Mc/1i9+8QvN\nm5fdL2+Xy6Xq6mqFw2Ht2LEj49vv7+9Xfn6+HnjgAX3rW9/SQw89pJGRkYznuNjOnTt1zz33ZHy7\neXl5euyxx/TNb35TS5cu1fXXX6/q6uqM51i1apV6e3v18ccfa2RkRK+++qoGBwdnfDtzttjTvXjq\nanPu3Dlt3rxZ27dv14IFCzK+/Xnz5unw4cMaHBzUG2+8oWg0mtHt//73v9c3vvENlZeXZ31vff/+\n/Tp06JD27t2rX/3qV+rt7c3o9sfGxnTw4EH96Ec/0sGDBzV//nw99dRTGc1wsdHRUf3ud7/TXXfd\nlfFtnzhxQr/85S81MDCg999/X+fOndPLL7+c8RyBQEA/+clPtGHDBtXW1qq8vHxWdkDmbLGnc/HU\n1eb8+fO688479f3vf1+bNm3KapZFixbpu9/9rt5+++2MbvfNN9/UK6+8omXLlunuu+/Wvn37dN99\n92U0w5cKCgokSfn5+aqvr1csFsvo9n0+n3w+nyoqKiRJmzdv1sGDBzOa4WJ79+7VLbfcovz8/Ixv\n++2339att96qJUuWyO12q6GhQW+++WbGc0gXTrh4++239ec//1nXX3+9SkpKZnwbc7bYL754anR0\nVJ2dnaqrq8t2rKwxxqipqUmlpaV69NFHs5Lhww8/1JkzZyRJn376qf74xz+qvLw8oxmefPJJxeNx\n9ff3a+fOnfrOd76jF198MaMZJGlkZERDQ0OSpOHhYb322msZP3PqpptuUmFhof7xj39IunB8e+XK\nlRnNcLGOjg7dfffdWdl2IBDQgQMH9Omnn8oYo56enqwcJpSkDz74QJJ08uRJ/fa3v52dQ1Mz/uvY\nDNqzZ4+5+eabzYoVK8yTTz6ZlQyNjY2moKDAfP3rXzc+n888//zzWcnR29trXC6XCYVCZs2aNWbN\nmjVm7969Gc1w5MgRU15ebkKhkFm9erX5+c9/ntHtf1U0Gs3aWTH//Oc/TSgUMqFQyKxcuTJrX5+H\nDx824XDYlJWVmfr6+qydFXPu3DmzZMkSc/bs2axs3xhjWltbTWlpqVm1apW57777zOjoaFZyVFVV\nmdLSUhMKhcy+fftmZRtcoAQAlpmzh2IAAJdGsQOAZSh2ALAMxQ4AlqHYAcAyFDsAWIZiBwDLUOwA\nYJn/A4h5fNrtowwuAAAAAElFTkSuQmCC\n", - "text": [ - "" - ] - } - ], - "prompt_number": 16 + "outputs": [], + "prompt_number": "" }, { "cell_type": "markdown", @@ -659,17 +487,8 @@ ], "language": "python", "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "display_data", - "png": "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\n6aefNvfcc4+54447CjK+Mcb4/X7zySefFGx8Y4y57777zHPPPWeMOfeanDp1qqD1pNNpc+ONN5rj\nx4/nddz+/n6zbNky88UXXxhjjPne975nfvOb3+S1BmOMee+998zKlSvN559/bsbGxkxNTY354IMP\ncj7OFTtjz+8JUJOrrq7WokWL8j7uxW688UatXr1akjRv3jyFQiF9+OGHea/j2muvlSSNjo4qnU5r\n8eL8f6b14OCgdu3apR/+8IcFX4pbyPH/85//qK+vTw8++KCkc+97LVy4sGD1SFJvb6+WL18+7hyX\nfFiwYIE8Ho9GRkY0NjamkZEReb3evNYgSUeOHFFVVZWuueYafe1rX9O3v/1t/fa3v835OFdssGdz\n8tTVamBgQAcOHFBVVVXex/7vf/+r1atX64YbbtDtt9+u8vLyvNfwk5/8RL/85S81Z05hf7xdLpdq\namoUjUa1bdu2vI/f39+voqIiPfDAA/rWt76lhx56SCMjI3mv40Lbt2/XPffck/dxFy9erMcee0zf\n/OY3tXTpUl133XWqqanJex0rV65UX1+fPv30U42MjOjVV1/V4OBgzse5YoM925OnrjZnzpzRpk2b\ntHXrVs2bNy/v48+ZM0cHDx7U4OCg3njjDcXj8byO/4c//EHf+MY3FIlECj5b37t3rw4cOKDdu3fr\n17/+tfr6+vI6/tjYmPbv368f/ehH2r9/v+bOnaunnnoqrzVcaHR0VL///e9111135X3sY8eO6Ve/\n+pUGBgb04Ycf6syZM3r55ZfzXkcwGNRPf/pTrV+/XnV1dYpEIrMyAbligz2bk6euNmfPntWdd96p\n73//+9q4cWNBa1m4cKG++93v6u23387ruG+++aZeeeUVLVu2THfffbf27Nmj++67L681fKW4uFiS\nVFRUpIaGBiUSibyO7/P55PP5VFlZKUnatGmT9u/fn9caLrR7927dcsstKioqyvvYb7/9tm699VYt\nWbJEbrdbjY2NevPNN/Neh3RuwcXbb7+tv/zlL7ruuutUVlaW8zGu2GC/8OSp0dFRdXV1qb6+vtBl\nFYwxRs3NzSovL9ejjz5akBo+/vhjnTp1SpL0+eef609/+pMikUhea3jyySeVTCbV39+v7du36zvf\n+Y5efPHFvNYgSSMjIxoaGpIkDQ8P67XXXsv7yqkbb7xRJSUl+vvf/y7p3PHtFStW5LWGC3V2duru\nu+8uyNjBYFD79u3T559/LmOMent7C3KYUJI++ugjSdLx48f1u9/9bnYOTeX87dg82rVrl7n55pvN\n8uXLzZNPPlmQGpqamkxxcbH5+te/bnw+n3n++ecLUkdfX59xuVwmHA6b1atXm9WrV5vdu3fntYZD\nhw6ZSCRiwuGwWbVqlfnFL36R1/EvFo/HC7Yq5h//+IcJh8MmHA6bFStWFOzn8+DBgyYajZqKigrT\n0NBQsFUxZ86cMUuWLDGnT58uyPjGGNPW1mbKy8vNypUrzX333WdGR0cLUkd1dbUpLy834XDY7Nmz\nZ1bG4AQlAHCYK/ZQDADg0gh2AHAYgh0AHIZgBwCHIdgBwGEIdgBwGIIdAByGYAcAh/kfZVdRVjBh\n14AAAAAASUVORK5CYII=\n", - "text": [ - "" - ] - } - ], - "prompt_number": 17 + "outputs": [], + "prompt_number": "" }, { "cell_type": "markdown", @@ -705,25 +524,8 @@ ], "language": "python", "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "display_data", - "png": "iVBORw0KGgoAAAANSUhEUgAAAXYAAAEACAYAAACnJV25AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAFT5JREFUeJzt3X9s1Hfhx/HXB3uGyI9CSYX2ruZY23FXSq/VKxe2EDtT\naMCskYqmA8PiKmlmzKLZH8a/BvtjWg2JaP2jYTCzSFj/0RUFKuJ2DsuaCwLDpEFR23E9xOFGLVC2\n0vP9/QPWLxV6XKH93Ic3z0dyST/9vD/3fh288+qnn7tP6hhjjAAA1piV6wAAgOlFsQOAZSh2ALAM\nxQ4AlqHYAcAyFDsAWOauxd7d3a1QKKTy8nK1tbXdtn/v3r2KRCKqqqrS448/rtOnT4/vCwaDqqqq\nUk1NjVauXDm9yQEAd+Rk+hx7Op3WsmXLdOTIEfn9ftXW1mrfvn0Kh8PjY95++21VVFQoPz9f3d3d\n2rZtm3p7eyVJS5cu1Z/+9CcVFBTM/CsBAEi6yxl7IpFQWVmZgsGgfD6fmpub1dXVNWHMqlWrlJ+f\nL0mKxWIaHBycsJ/7nwDAXRmLPZVKqaSkZHw7EAgolUpNOn737t1av379+LbjOKqvr1c0GtWuXbum\nIS4A4G7yMu10HCfrJ3rzzTe1Z88e9fT0jH+vp6dHRUVFunjxotasWaNQKKTVq1ffe1oAwF1lLHa/\n369kMjm+nUwmFQgEbht3+vRpbd26Vd3d3Vq4cOH494uKiiRJhYWF2rBhgxKJxG3FXl1drXfeeee+\nXgQAPGwikYhOnTp1550mg+vXr5tHHnnE9Pf3m48++shEIhHT19c3Ycy7775rSktLzdtvvz3h+1ev\nXjXDw8PGGGOuXLliHnvsMfPb3/72tjnuEiErL7zwwn0/hw0ZjPFGDi9kMMYbObyQwRhv5PBCBmO8\nkWM6MmTqzoxn7Hl5eWpvb1dDQ4PS6bRaWloUDofV0dEhSWptbdWLL76oS5cu6dlnn5Uk+Xw+JRIJ\nXbhwQU1NTZKksbExbd68WWvXrp22n1YAgDvLWOyStG7dOq1bt27C91pbW8e/fvnll/Xyyy/fdtwj\njzwy+a8JAIAZY8Wdp3V1dbmO4IkMkjdyeCGD5I0cXsggeSOHFzJI3sgx0xky3qDkBsdx+Kw7AExR\npu604owdAPD/KHYAsAzFDgCWodgBwDIUOwBYhmIHAMtQ7ABgGYodACxDsQOAZSh2ALAMxQ4AlqHY\nAcAyFDsAWIZiBwDLUOwAYBmKHQAsc9c/jecGx3FcmWfevIUaHv7Alblgh/nzC3T58qUZn4e1ienk\nib+gJLkVgb/WhKlxb32yNjE1/AUlAHiIUOwAYBmKHQAsQ7EDgGUodgCwDMUOAJah2AHAMhQ7AFiG\nYgcAy1DsAGAZih0ALEOxA4BlKHYAsAzFDgCWodgBwDIUOwBY5q7F3t3drVAopPLycrW1td22f+/e\nvYpEIqqqqtLjjz+u06dPZ30sAGAGmAzGxsZMaWmp6e/vN6OjoyYSiZi+vr4JY44dO2aGhoaMMcYc\nOnTIxGKxrI+9+debjGRcemR8ucBt3FufrE1MTaY1k/GMPZFIqKysTMFgUD6fT83Nzerq6powZtWq\nVcrPz5ckxWIxDQ4OZn0sAGD6ZSz2VCqlkpKS8e1AIKBUKjXp+N27d2v9+vX3dCwAYHrkZdp54w/5\nZufNN9/Unj171NPTM+VjpW23fF138wEA+Fg8Hlc8Hs9qbMZi9/v9SiaT49vJZFKBQOC2cadPn9bW\nrVvV3d2thQsXTunYG7ZlFRYAHlZ1dXWqq6sb396+ffukYzNeiolGozp79qwGBgY0Ojqqzs5ONTY2\nThhz7tw5NTU16Re/+IXKysqmdCwAYPplPGPPy8tTe3u7GhoalE6n1dLSonA4rI6ODklSa2urXnzx\nRV26dEnPPvusJMnn8ymRSEx6LABgZjk3PzaTuwCOI8mtCI5y/HLxgHFvfbI2MTWOM/ma4c5TALAM\nxQ4AlqHYAcAyFDsAWIZiBwDLUOwAYBmKHQAsQ7EDgGUodgCwDMUOAJah2AHAMhQ7AFiGYgcAy1Ds\nAGAZih0ALEOxA4BlKHYAsAzFDgCWodgBwDIUOwBYhmIHAMtQ7ABgGYodACxDsQOAZSh2ALAMxQ4A\nlqHYAcAyFDsAWIZiBwDLUOwAYBmKHQAsQ7EDgGUodgCwDMUOAJah2AHAMnct9u7uboVCIZWXl6ut\nre22/WfOnNGqVas0e/Zs7dixY8K+YDCoqqoq1dTUaOXKldOXGgAwqbxMO9PptL71rW/pyJEj8vv9\nqq2tVWNjo8Lh8PiYRYsW6ac//alef/312453HEfxeFwFBQXTnxwAcEcZz9gTiYTKysoUDAbl8/nU\n3Nysrq6uCWMKCwsVjUbl8/nu+BzGmOlLCwC4q4zFnkqlVFJSMr4dCASUSqWyfnLHcVRfX69oNKpd\nu3bde0oAQNYyXopxHOe+nrynp0dFRUW6ePGi1qxZo1AopNWrV9/XcwIAMstY7H6/X8lkcnw7mUwq\nEAhk/eRFRUWSblyu2bBhgxKJxCTFvu2Wr+tuPgAAH4vH44rH41mNzVjs0WhUZ8+e1cDAgIqLi9XZ\n2al9+/bdcez/XksfGRlROp3WvHnzdPXqVR0+fFgvvPDCJDNtyyosADys6urqVFdXN769ffv2Scdm\nLPa8vDy1t7eroaFB6XRaLS0tCofD6ujokCS1trbqwoULqq2t1fDwsGbNmqWdO3eqr69P7733npqa\nmiRJY2Nj2rx5s9auXTsNLw8AkIljcvyxlRvX8d2K4PApHUyJe+uTtYmpcZzJ1wx3ngKAZSh2ALAM\nxQ4AlqHYAcAyFDsAWIZiBwDLUOwAYBmKHQAsQ7EDgGUodgCwDMUOAJah2AHAMhQ7AFiGYgcAy1Ds\nAGAZih0ALEOxA4BlKHYAsAzFDgCWodgBwDIUOwBYhmIHAMtQ7ABgGYodACxDsQOAZSh2ALAMxQ4A\nlqHYAcAyFDsAWIZiBwDLUOwAYBmKHQAsQ7EDgGUodgCwDMUOAJah2AHAMnct9u7uboVCIZWXl6ut\nre22/WfOnNGqVas0e/Zs7dixY0rHAgCmn2OMMZPtTKfTWrZsmY4cOSK/36/a2lrt27dP4XB4fMzF\nixf17rvv6vXXX9fChQv1/PPPZ32sJDmOI2nSCNPMUYaXC9zGvfXJ2sTUOM7kaybjGXsikVBZWZmC\nwaB8Pp+am5vV1dU1YUxhYaGi0ah8Pt+UjwUATL+MxZ5KpVRSUjK+HQgElEqlsnri+zkWAHDvMhb7\njV9D7839HAsAuHd5mXb6/X4lk8nx7WQyqUAgkNUTT+3Ybbd8XXfzAQD4WDweVzwez2psxjdPx8bG\ntGzZMv3+979XcXGxVq5cecc3QCVp27Ztmjdv3vibp9key5un8DLePIVXZXrzNOMZe15entrb29XQ\n0KB0Oq2WlhaFw2F1dHRIklpbW3XhwgXV1tZqeHhYs2bN0s6dO9XX16e5c+fe8VgAwMzKeMbuSgDO\n2OFhnLHDq+75444AgAcPxQ5Pmj+/QI7juPKYP78g1y8XDxi31ue9rk0uxcCTvLIuuBSDO/HCuuBS\nDAA8RCh2ALAMxQ4AlqHYAcAyFDsAWIZiBwDLUOwAYBmKHQAsQ7EDgGUodgCwDMUOAJah2AHAMhQ7\nAFiGYgcAy1DsAGAZih0ALEOxA4BlKHYAsAzFDgCWodgBwDIUOwBYhmIHAMtQ7ABgGYodACxDsQOA\nZSh2ALAMxX7T/PkFchxnxh/z5xfk+qXiAePW2mR92sMxxpicBnAcSW5FcDTZy3Uvx+QZ5s8v0OXL\nl1zIIM2bt1DDwx+4Mte9YF3kIkPmHG6tT6+vTck762LSfRS72zm8kCFzDi/wyr8F6yIXOby9NiVv\n/FtkKnYuxQCAZSh23Ib3G+BVvN+QHS7FuJ7DCxm8ksMLGbySwwsZvJLDCxm8koNLMQAAZVHs3d3d\nCoVCKi8vV1tb2x3HPPfccyovL1ckEtHJkyfHvx8MBlVVVaWamhqtXLly+lIDACZnMhgbGzOlpaWm\nv7/fjI6OmkgkYvr6+iaMOXDggFm3bp0xxpje3l4Ti8XG9wWDQfP+++9nmsJIMpJx6TH5y3Uvhxcy\neCWHFzJ4JYcXMnglhxcyeCVH5gyTyXjGnkgkVFZWpmAwKJ/Pp+bmZnV1dU0Ys3//fj399NOSpFgs\npqGhIf3rX/+69QfH/f3kAQBMScZiT6VSKikpGd8OBAJKpVJZj3EcR/X19YpGo9q1a9d05gYATCIv\n084b7/ze3WRn5X/84x9VXFysixcvas2aNQqFQlq9evUdRm675eu6mw8AwMfi8bji8XhWYzMWu9/v\nVzKZHN9OJpMKBAIZxwwODsrv90uSiouLJUmFhYXasGGDEolEFsUOAPhfdXV1qqurG9/evn37pGMz\nXoqJRqM6e/asBgYGNDo6qs7OTjU2Nk4Y09jYqFdffVWS1NvbqwULFmjx4sUaGRnR5cuXJUlXr17V\n4cOHtWLFint9TQCALGU8Y8/Ly1N7e7saGhqUTqfV0tKicDisjo4OSVJra6vWr1+vgwcPqqysTHPm\nzNErr7wiSbpw4YKampokSWNjY9q8ebPWrl07wy8HAMCdp67n8EIGr+TwQgav5PBCBq/k8EIGr+Tg\nzlMAgCh2ALAOxQ4AlqHYAcAyFDsAWIZiBwDLUOwAYBmKHQAsQ7EDgGUodgCwDMUOAJah2AHAMhQ7\nAFiGYgcAy1DsAGAZih0ALEOxA4BlKHYAsAzFDgCWodgBwDIUOwBYhmIHAMtQ7ABgGYodACxDsQOA\nZSh2ALAMxQ4AlqHYAcAyFDsAWIZiBwDLUOwAYBmKHQAsQ7EDgGUodgCwDMUOAJa5a7F3d3crFAqp\nvLxcbW1tdxzz3HPPqby8XJFIRCdPnpzSsQCAaWYyGBsbM6Wlpaa/v9+Mjo6aSCRi+vr6Jow5cOCA\nWbdunTHGmN7eXhOLxbI+1hhjJBnJ3OfjzSzHTf5y7z+HFzJ4JYcXMnglhxcyeCWHFzJ4Jcf0ZJhM\nxjP2RCKhsrIyBYNB+Xw+NTc3q6ura8KY/fv36+mnn5YkxWIxDQ0N6cKFC1kdO33iM/S8UxHPdYCb\n4rkOIG9kkLyRI57rADfFcx1A3sggeSNHfEafPWOxp1IplZSUjG8HAgGlUqmsxpw/f/6uxwIApl/G\nYnccJ6snufFbAQDAC/Iy7fT7/Uomk+PbyWRSgUAg45jBwUEFAgFdv379rsdKUiQS0TvvZPcDJLPt\nWY3K/MPqfnN4IYNXcnghg1dyeCGDV3J4IYNXctxfhkgkMukxGYs9Go3q7NmzGhgYUHFxsTo7O7Vv\n374JYxobG9Xe3q7m5mb19vZqwYIFWrx4sRYtWnTXYyXp1KlT2bw2AECWMhZ7Xl6e2tvb1dDQoHQ6\nrZaWFoXDYXV0dEiSWltbtX79eh08eFBlZWWaM2eOXnnllYzHAgBmlmO4QA4AVnmg7zz1wg1Qzzzz\njBYvXqwVK1bkZP6PJZNJPfHEE1q+fLkqKyv1k5/8xPUMH374oWKxmKqrq1VRUaHvfe97rmf4WDqd\nVk1NjZ588smcZQgGg6qqqlJNTY1WrlyZkwxDQ0PauHGjwuGwKioq1Nvb63qGv/zlL6qpqRl/5Ofn\n52R9fv/739fy5cu1YsUKbdq0SR999JHrGSRp586dWrFihSorK7Vz586ZmWTST7h7XLY3QM20t956\ny5w4ccJUVla6Pvet/vnPf5qTJ08aY4y5fPmyefTRR3Py73H16lVjjDHXr183sVjMHD161PUMxhiz\nY8cOs2nTJvPkk0/mZH5jjAkGg+b999/P2fzGGLNlyxaze/duY8yN/5OhoaGc5kmn02bJkiXm3Llz\nrs7b399vli5daj788ENjjDFf/epXzc9//nNXMxhjzJ///GdTWVlprl27ZsbGxkx9fb3529/+Nu3z\nPLBn7O7eADW51atXa+HCha7P+7+WLFmi6upqSdLcuXMVDod1/vx513N86lOfkiSNjo4qnU6roKDA\n9QyDg4M6ePCgvvGNb+T8o7i5nP8///mPjh49qmeeeUbSjfe98vPzc5ZHko4cOaLS0tIJ97i4Yf78\n+fL5fBoZGdHY2JhGRkbk9/tdzSBJZ86cUSwW0+zZs/WJT3xCn//85/XLX/5y2ud5YIs9m5unHlYD\nAwM6efKkYrGY63P/97//VXV1tRYvXqwnnnhCFRUVrmf4zne+ox/96EeaNSu3y9txHNXX1ysajWrX\nrl2uz9/f36/CwkJ9/etf12c/+1lt3bpVIyMjrue41WuvvaZNmza5Pm9BQYGef/55feYzn1FxcbEW\nLFig+vp613NUVlbq6NGj+uCDDzQyMqIDBw5ocHBw2ud5YIs925unHjZXrlzRxo0btXPnTs2dO9f1\n+WfNmqVTp05pcHBQb731luLxuKvz/+Y3v9GnP/1p1dTU5PxsvaenRydPntShQ4f0s5/9TEePHnV1\n/rGxMZ04cULf/OY3deLECc2ZM0c/+MEPXM1wq9HRUf3617/WV77yFdfn/vvf/64f//jHGhgY0Pnz\n53XlyhXt3bvX9RyhUEjf/e53tXbtWq1bt041NTUzcgLywBZ7NjdPPWyuX7+uL3/5y/ra176mL33p\nSznNkp+fry9+8Ys6fvy4q/MeO3ZM+/fv19KlS/XUU0/pjTfe0JYtW1zN8LGioiJJUmFhoTZs2KBE\nIuHq/IFAQIFAQLW1tZKkjRs36sSJE65muNWhQ4f0uc99ToWFha7Pffz4cT322GNatGiR8vLy1NTU\npGPHjrmeQ7rxgYvjx4/rD3/4gxYsWKBly5ZN+xwPbLHfevPU6OioOjs71djYmOtYOWOMUUtLiyoq\nKvTtb387Jxn+/e9/a2hoSJJ07do1/e53v1NNTY2rGV566SUlk0n19/frtdde0xe+8AW9+uqrrmaQ\npJGREV2+fFmSdPXqVR0+fNj1T04tWbJEJSUl+utf/yrpxvXt5cuXu5rhVvv27dNTTz2Vk7lDoZB6\ne3t17do1GWN05MiRnFwmlKT33ntPknTu3Dn96le/mplLU9P+dqyLDh48aB599FFTWlpqXnrppZxk\naG5uNkVFReaTn/ykCQQCZs+ePTnJcfToUeM4jolEIqa6utpUV1ebQ4cOuZrh9OnTpqamxkQiEbNi\nxQrzwx/+0NX5/1c8Hs/Zp2L+8Y9/mEgkYiKRiFm+fHnO1uepU6dMNBo1VVVVZsOGDTn7VMyVK1fM\nokWLzPDwcE7mN8aYtrY2U1FRYSorK82WLVvM6OhoTnKsXr3aVFRUmEgkYt54440ZmYMblADAMg/s\npRgAwJ1R7ABgGYodACxDsQOAZSh2ALAMxQ4AlqHYAcAyFDsAWOb/AM8XDghkBPSFAAAAAElFTkSu\nQmCC\n", - "text": [ - "" - ] - }, - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "[ 0.2245871 0.06288015 0.06109133 0.0581008 0.09334062 0.2245871\n", - " 0.06288015 0.06109133 0.0581008 0.09334062]\n" - ] - } - ], - "prompt_number": 18 + "outputs": [], + "prompt_number": "" }, { "cell_type": "markdown", @@ -742,17 +544,8 @@ ], "language": "python", "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "display_data", - "png": "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\nrkJggg==\n", - "text": [ - "" - ] - } - ], - "prompt_number": 19 + "outputs": [], + "prompt_number": "" }, { "cell_type": "markdown", @@ -774,17 +567,8 @@ ], "language": "python", "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "display_data", - "png": "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\nPLDFns3FUw+r/v5+dXd3Kx6Puz73f//7X1VVVWnJkiV64oknVF5e7nqG73znO/rRj36kWbNyu7x9\nPp/q6uoUi8W0Z88e1+fv6+tTQUGBvv71r+uzn/2stm/fruHhYddz3O61117Tli1bXJ930aJFev75\n5/WZz3xGRUVFWrBggerq6lzPUVFRoc7OTn3wwQcaHh7W4cOHNTAwMO3zPLDFnu3FUw+bq1evavPm\nzdq9e7fmzp3r+vyzZs3SmTNnNDAwoLfeekuJRMLV+X/zm9/o05/+tKqrq3N+tn7ixAl1d3fr6NGj\n+tnPfqbOzk5X5x8dHdXp06f1zW9+U6dPn9acOXP0gx/8wNUMtxsZGdGvf/1rfeUrX3F97r///e/6\n8Y9/rP7+fl24cEFXr17V/v37Xc8RDof13e9+V+vWrdP69etVXV09IycgD2yxZ3Px1MPmxo0b+vKX\nv6yvfe1r+tKXvpTTLPn5+friF7+oU6dOuTrvyZMndejQIS1btkxPPfWU3njjDW3bts3VDB8rLCyU\nJBUUFGjjxo1KJpOuzh8MBhUMBlVTUyNJ2rx5s06fPu1qhtsdPXpUn/vc51RQUOD63KdOndJjjz2m\nxYsXKy8vT5s2bdLJkyddzyHdfMPFqVOn9Ic//EELFizQ8uXLp32OB7bYb794amRkRAcPHlRDQ0Ou\nY+WMMUZNTU0qLy/Xt7/97Zxk+Pe//62hoSFJ0vXr1/W73/1O1dXVrmZ46aWXlEql1NfXp9dee01f\n+MIX9Oqrr7qaQZKGh4d15coVSdK1a9d07Ngx1985tXTpUhUXF+uvf/2rpJvPb69YscLVDLc7cOCA\nnnrqqZzMHQ6H1dXVpevXr8sYo+PHj+fkaUJJeu+99yRJ58+f169+9auZeWpq2l+OddGRI0fMo48+\nakpKSsxLL72UkwyNjY2msLDQfPKTnzTBYNDs27cvJzk6OzuNz+cz0WjUVFVVmaqqKnP06FFXM/T0\n9Jjq6moTjUbNypUrzQ9/+ENX5/9fiUQiZ++K+cc//mGi0aiJRqNmxYoVOVufZ86cMbFYzFRWVpqN\nGzfm7F0xV69eNYsXLzaXL1/OyfzGGNPS0mLKy8tNRUWF2bZtmxkZGclJjjVr1pjy8nITjUbNG2+8\nMSNzcIESAFjmgX0qBgBwdxQ7AFiGYgcAy1DsAGAZih0ALEOxA4BlKHYAsAzFDgCW+T+71IQNg+h2\niAAAAABJRU5ErkJggg==\n", - "text": [ - "" - ] - } - ], - "prompt_number": 20 + "outputs": [], + "prompt_number": "" }, { "cell_type": "markdown", @@ -837,17 +621,8 @@ ], "language": "python", "metadata": {}, - "outputs": [ - { - "ename": "SyntaxError", - "evalue": "invalid syntax (, line 1)", - "output_type": "pyerr", - "traceback": [ - "\u001b[1;36m File \u001b[1;32m\"\"\u001b[1;36m, line \u001b[1;32m1\u001b[0m\n\u001b[1;33m Author notes:\u001b[0m\n\u001b[1;37m ^\u001b[0m\n\u001b[1;31mSyntaxError\u001b[0m\u001b[1;31m:\u001b[0m invalid syntax\n" - ] - } - ], - "prompt_number": 21 + "outputs": [], + "prompt_number": "" } ], "metadata": {}