See More

{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Modeling and Simulation in Python\n", "\n", "Milestone: Queueing theory\n", "\n", "Copyright 2017 Allen Downey\n", "\n", "License: [Creative Commons Attribution 4.0 International](https://creativecommons.org/licenses/by/4.0)\n" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# If you want the figures to appear in the notebook, \n", "# and you want to interact with them, use\n", "# %matplotlib notebook\n", "\n", "# If you want the figures to appear in the notebook, \n", "# and you don't want to interact with them, use\n", "# %matplotlib inline\n", "\n", "# If you want the figures to appear in separate windows, use\n", "# %matplotlib qt5\n", "\n", "# To switch from one to another, you have to select Kernel->Restart\n", "\n", "%matplotlib inline\n", "\n", "from modsim import *" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### One queue or two?\n", "\n", "This notebook presents a solution to an exercise from *Modeling and Simulation in Python*. It uses features from the first four chapters to answer a question related to queueing theory, which is the study of systems that involve waiting in lines, also known as \"queues\".\n", "\n", "Suppose you are designing the checkout area for a new store. There is room for two checkout counters and a waiting area for customers. You can make two lines, one for each counter, or one line that serves both counters.\n", "\n", "In theory, you might expect a single line to be better, but it has some practical drawbacks: in order to maintain a single line, you would have to install rope barriers, and customers might be put off by what seems to be a longer line, even if it moves faster.\n", "\n", "So you'd like to check whether the single line is really better and by how much. Simulation can help answer this question.\n", "\n", "As we did in the bikeshare model, we'll assume that a customer is equally likely to arrive during any timestep. I'll denote this probability using the Greek letter lambda, $\\lambda$, or the variable name `lam`. Since it's a new store, we don't know what the value of $\\lambda$ will be, so we'll have to consider a range of possibilities. \n", "\n", "Based on data from other stores, you know that it takes 5 minutes for a customer to check out, on average. But checkout times are highly variable: most customers take less than 5 minutes, but some take substantially more. A simple way to model this variability is to assume that when a customer is checking out, they have the same probability of finishing up during each time step. I'll denote this probability using the Greek letter mu, $\\mu$, or the variable name `mu`.\n", "\n", "If we choose $\\mu=1/5$, the average number of time steps for each checkout will be 5 minutes, which is consistent with the data." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Solution**\n", "\n", "I'll start by defining a `System` object to contain the system parameters." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "def make_system(lam, mu):\n", " return System(lam=lam, mu=mu,\n", " x=0, duration=8*60)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As an example, I'll set the arrival rate to one customer per 8 minutes." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/html": [ "

\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
value
lam0.125
mu0.200
x0.000
duration480.000
\n", "
" ], "text/plain": [ "lam 0.125\n", "mu 0.200\n", "x 0.000\n", "duration 480.000\n", "dtype: float64" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "interarrival_time = 8\n", "service_time = 5\n", "\n", "lam = 1 / interarrival_time\n", "mu = 1 / service_time\n", "\n", "system = make_system(lam, mu)\n", "system" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here's a update function that simulates a single time step. During each time step, a customer can finish checking out (but only if there is a customer in the system), and a new customer can arrive." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def update_func1(system):\n", " \"\"\"Simulate one time step.\n", " \n", " system: System object\n", " \"\"\"\n", " # if there's a customer in service, check if they're done\n", " if system.x > 0:\n", " if flip(system.mu):\n", " system.x -= 1\n", " \n", " # check for an arrival\n", " if flip(system.lam):\n", " system.x += 1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we can run the simulation. `run_simulation` creates a `TimeSeries` that maps from each time step to the total number of customers in the store, including the one checking out.\n", "\n", "After the simulation, we compute `L`, which is the average number of customers in the system, and `W`, which is the average time customers spend in the store. `L` and `W` are related by Little's Law:\n", "\n", "$L = \\lambda W$\n", "\n", "Where $\\lambda$ is the arrival rate." ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def run_simulation(system, update_func):\n", " \"\"\"Simulate a queueing system.\n", " \n", " system: System object\n", " update_func: function object\n", " \"\"\"\n", " \n", " results = TimeSeries()\n", " \n", " for t in linrange(0, system.duration-1):\n", " update_func(system)\n", " results[t] = system.x\n", " \n", " system.results = results\n", " system.L = results.mean()\n", " system.W = system.L / system.lam" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here are the results with the parameters we chose." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2.8020833333333335 22.4166666667\n" ] }, { "data": { "image/png": "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\n3IQQQoiL+P82lkDcd8cXAgAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "run_simulation(system, update_func1)\n", "print(system.L, system.W)\n", "plot(system.results)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Since we don't know the actual value of $\\lambda$, we can sweep through a range of possibilities, from 10% to 80% of the completion rate.\n", "\n", "If customers arrive faster than the completion rate, the queue grows without bound. In that case the metrics `L` and `W` just depend on how long the store is open." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.2\n" ] }, { "data": { "text/plain": [ "array([ 0.02 , 0.0214, 0.0228, 0.0242, 0.0256, 0.027 , 0.0284,\n", " 0.0298, 0.0312, 0.0326, 0.034 , 0.0354, 0.0368, 0.0382,\n", " 0.0396, 0.041 , 0.0424, 0.0438, 0.0452, 0.0466, 0.048 ,\n", " 0.0494, 0.0508, 0.0522, 0.0536, 0.055 , 0.0564, 0.0578,\n", " 0.0592, 0.0606, 0.062 , 0.0634, 0.0648, 0.0662, 0.0676,\n", " 0.069 , 0.0704, 0.0718, 0.0732, 0.0746, 0.076 , 0.0774,\n", " 0.0788, 0.0802, 0.0816, 0.083 , 0.0844, 0.0858, 0.0872,\n", " 0.0886, 0.09 , 0.0914, 0.0928, 0.0942, 0.0956, 0.097 ,\n", " 0.0984, 0.0998, 0.1012, 0.1026, 0.104 , 0.1054, 0.1068,\n", " 0.1082, 0.1096, 0.111 , 0.1124, 0.1138, 0.1152, 0.1166,\n", " 0.118 , 0.1194, 0.1208, 0.1222, 0.1236, 0.125 , 0.1264,\n", " 0.1278, 0.1292, 0.1306, 0.132 , 0.1334, 0.1348, 0.1362,\n", " 0.1376, 0.139 , 0.1404, 0.1418, 0.1432, 0.1446, 0.146 ,\n", " 0.1474, 0.1488, 0.1502, 0.1516, 0.153 , 0.1544, 0.1558,\n", " 0.1572, 0.1586, 0.16 ])" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mu = 1 / service_time\n", "num_vals = 101\n", "lam_array = linspace(0.1*mu, 0.8*mu, num_vals)\n", "print(mu)\n", "lam_array" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The model I chose for this system is a common model in queueing theory, in part because many of its properties can be derived analytically. In particular, we expect the average time in the store to be:\n", "\n", "$W = 1 / (\\mu - \\lambda)$\n", "\n", "The following function plots the theoretical value of $W$ as a function of $\\lambda$." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nSUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "def plot_W(lam_array, mu):\n", " \"\"\"Plot the theoretical mean wait time.\n", " \n", " lam_array: array of values for `lam`\n", " mu: probability of finishing a checkout\n", " \"\"\"\n", " W = 1 / (mu - lam_array)\n", " plot(lam_array, W, 'g-')\n", " \n", "plot_W(lam_array, mu)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now let's run the simulation with a range of values for $\\lambda$ and plot the observed value of `W` versus `lam`:" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "def sweep_lam(lam_array, mu, update_func):\n", " \"\"\"Run simulations with a range of values for `lam`\n", " \n", " Plots wait time, W, versus lam, and\n", " prints the average of W across runs.\n", " \n", " lam_array: array of values for `lam`\n", " mu: probability of finishing a checkout\n", " update_func: passed along to run_simulation\n", " \"\"\"\n", " total = 0\n", " for lam in lam_array:\n", " system = make_system(lam, mu)\n", " run_simulation(system, update_func)\n", " total += system.W\n", " plot(lam, system.W)\n", " \n", " W_avg = total / len(lam_array)\n", " print('Average of averages = ', W_avg, 'minutes')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If we imagine that this range of values represents arrival rates on different days, we can use the average value of `W`, for a range of values of `lam`, to compare different queueing strategies.\n", "\n", "Here are the results for a single queue with a single checkout counter." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Average of averages = 9.13684748662 minutes\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAfcAAAFhCAYAAABtSuN5AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xd8FHX+P/DXppLeK0mAAAmBEAkh9F4CQQGxAFIEARH4\nYUGlqNxxB4qiJ57wtaBgVEC5Q4ggVQ7PU5QSQggCoSckpJNGep3fH+su2c0mmc32zev5eOQRdmbL\nexIyr/mUmZEIgiCAiIiIzIaFoQsgIiIi7WK4ExERmRmGOxERkZlhuBMREZkZhjsREZGZsTJ0AdpQ\nVVWFS5cuwcvLC5aWloYuh4iISKfq6+uRn5+P8PBwdOjQocl6swj3S5cuYdasWYYug4iISK927dqF\nfv36NVluFuHu5eUFQLqRvr6+Bq6GiIhIt3JycjBr1ix5/ikzi3CXdcX7+voiICDAwNUQERHpR3ND\n0XoP99GjRyM3NxcWFopz+Q4cOIAuXbrg4MGD2L59O9LS0uDl5YXY2Fi88MILHEsnIiISySAt9/Xr\n1+Oxxx5rsvzs2bNYvXo13nvvPYwZMwapqalYvHgxrK2tsWzZMgNUSkREZHqM6lS4nTt3Yvjw4YiN\njYWNjQ1CQ0Mxb9487NixAw0NDYYuj4iIyCQYJNyPHDmCiRMnIioqCo899hj+85//AAAuXLiAiIgI\nhedGRESguLgYaWlpBqiUiIjI9Og93ENCQhAcHIydO3fif//7H8aNG4dly5bhwoULKCwshIuLi8Lz\n3dzcAACFhYX6LpWIiMgk6X3M/dNPP1V4vGTJEvz444/497//re9SiIiIzJJRjLkHBQUhNzcXnp6e\nKC4uVlhXVFQEAM2ey0dERESK9Npyz8jIwBdffIHly5fD2dlZvvz27duIjo6Gs7MzkpOTFV6TmJgI\nLy8vBAUF6bNUIiIiURISgCNHgOxswM8PiI0FoqMNW5New93T0xMnTpzA/fv3sWbNGtja2uKLL75A\namoqPvzwQ9y/fx+zZ8/G4cOHMXbsWFy7dg1xcXGYP38+JBKJPkslIiJqVUICsG3bg8eZmQ8eGzLg\n9dotb2dnh7i4OJSXlyM2NhaDBg3Cb7/9hp07dyI4OBh9+vTBpk2b8PHHH6Nv3754/vnnMWfOHMyf\nP1+fZRIREYly5Ijq5UeP6rcOZXqfUNe1a9cmk+oai4mJQUxMjB4rIiIiapvsbNXLs7L0W4cyo5hQ\nR0REZIr8/FQv9/fXbx3KGO5ERERtFBurevmECfqtQ5lZ3BWOiIjIEGST5o4elXbF+/tLg71dzZYn\nIiIyN9HRhg9zZeyWJyIiMjMMdyIiIjPDcCciIjIzDHciIiIzw3AnIiIyMwx3IiIiM8NwJyIiMjMM\ndyIiIjPDcCciIjIzDHciIiIzw3AnIiIyMwx3IiIiM8NwJyIiMjMMdyIiIjPDcCciIjIzDHciIiIz\nw3AnIiIyMwx3IiIiM8NwJyIiMjMMdyIiIjPDcCciIjIzDHciIiIzw3AnIiIyMwx3IiIiM8NwJyIi\nMjMMdyIiIjPDcCciIjIzDHciIiIzw3AnIiIyMwx3IiIiM8NwJyIiMjMMdyIiIjPDcCciIjIzDHci\nIiIzw3AnIiIyMwx3IiIiM8NwJyIiMjMMdyIiIjPDcCciIjIzDHciIiIzw3AnIiIyMwx3IiIiM8Nw\nJyIiMjMGDffExESEhYVhy5Yt8mUHDx7E1KlTERkZiZiYGHzwwQeor683YJVERESmxcpQH1xVVYXX\nX38dDg4O8mVnz57F6tWr8d5772HMmDFITU3F4sWLYW1tjWXLlhmqVCIiIpNisJb7pk2b0KVLF4SF\nhcmX7dy5E8OHD0dsbCxsbGwQGhqKefPmYceOHWhoaDBUqURERCbFIOF+7tw57N+/H3//+98Vll+4\ncAEREREKyyIiIlBcXIy0tDQ9VkhERGS6RHfLZ2Zm4urVqygtLVW5/tFHHxX1PpWVlXj99dexatUq\n+Pj4KKwrLCyEi4uLwjI3Nzf5uuDgYLHlEhERtVuiwv3rr7/Gxo0bm53YJpFIRIf7pk2b0LlzZzz2\n2GPiqyQiIiLRRIX7tm3bMHfuXCxatAiurq5t/jBZd/wPP/ygcr2npyeKi4sVlhUVFQEAvLy82vy5\nRERE7YmocC8vL8dTTz2lUbADwN69e1FRUYHJkyfLl5WVleHixYv46aefEBkZieTkZIXXJCYmwsvL\nC0FBQRp9NhERUXshKtyHDRuGs2fPIjAwUKMPW716NV588UWFZS+++CL69OmDhQsXIjMzE7Nnz8bh\nw4cxduxYXLt2DXFxcZg/fz4kEolGn01ERNReiAr39evXY9myZUhOTkaPHj1gb2/f5DlixtxdXFya\nTJizsbGBo6MjvLy84OXlhU2bNmHz5s1YuXIlPD09MWfOHMyfP1/k5hAREZGocP/2229x5swZnDlz\n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\n/wFd09eXLv/JkwAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_W(lam_array, mu)\n", "\n", "sweep_lam(lam_array, mu, update_func1)\n", "\n", "decorate(xlabel='Arrival rate (per minute)',\n", " ylabel='Average time in system')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The results on any simulated day are highly variable, but looks like the theoretical result is plausible. The simulated results tend to be lower, partly because they include a cold start at the beginning of each day.\n", "\n", "Now let's try the other two queueing strategies:\n", "\n", "1. One queue with two checkout counters.\n", "2. Two queues, one for each counter.\n", "\n", "The following figure shows the three scenarios:\n", "\n", "![](figs/queue.png)\n", "\n", "Here's the update function for a single queue with two servers." ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def update_func2(system):\n", " \"\"\"Simulate a single queue with two servers.\n", " \n", " system: System object\n", " \"\"\"\n", " # if both servers are busy, check whether the\n", " # second is complete\n", " if system.x > 1 and flip(system.mu):\n", " system.x -= 1\n", " \n", " # check whether the first is complete\n", " if system.x > 0 and flip(system.mu):\n", " system.x -= 1\n", " \n", " # check for an arrival\n", " if flip(system.lam):\n", " system.x += 1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here are the results for a single run." ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.69375 5.55\n" ] }, { "data": { "image/png": "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\nw6hNNDSk0qzl+HGex1deSfWhzk7+v/jo2bnTOG1CEerzZpc2wdq1vIz0bV2UzcmTPK/aujpxgquw\n9nZ+7tQpHk70+08+4W3ECLEy09nZ8/l7R0e6SherJ/o0dXWlpwcwL5uWFuNy6ejg7UJb5w0NXHWL\nfiLu1drKj332Gf+7ZQu/bs8eYNcu3t62bTNPhz5Nn3zCy6y7m+fBrN+JtnnkCFfiJ07w46KuxefY\nMX5Mn5fPPuPxy4wh7e08Xm0ddHXxtOzcyfukvh8Iurt5mLVr+UqIvm2Keu/q4vdpa3M3PvqN7dK6\nKrLsHgz5SFMT/ys6otZAi2cjJ07wyunVKzUoWT1ry8ri8YkldXEc4AOGX/kQDVE/uGv/GqVXGKEv\nvzSPV0t3d2rwc5o20QHNys0JYtA8eZIv6R45kjpuFNbsnDaMyLtogiL8gQN80HGaZpE2MVCIstEa\nMXFOTAbFdWblaFT2XV3pRkqbNtH2RJ7s6qipibdRozZj1CaamnjZa8nL4/k6caLn4C0MlL7scnP5\nfY3S1tTEy13kQ3+tXXs9cIDf16j+tfEJ4wukJh75+amwoo23taWMv5N2K+pA/C/Skp1t3je16RHX\nmpWN1uDp76uvc+2YoEVMCnM1I3xbW+pxoRa7Pt7UxI2XNh9WY6PIZ3Z2qvz15SIMo1le3I4f2kmM\n/loxTuvHf+21AA9z4EB6H9OeF/fo7ubL7G7GR79RqsgrKirQ2tqadqylpQUA0L9/f5W3ckVVFf+b\nm5u+RSE7m1dIbi5/7lFZCfTtyw2zeB6in39kZ/NnNLm5/FNc3PN+DvwCpfNRXNxzm4VIp/ajRRzL\nzQUGDjSPV09JifO86NMmO28TW8UKC7kBKS7mg29Ojnm+rO6Xk5NeX1oqK/mzRydpFuezs1PxDBqU\nalsCcU5/L7NyrKriadAi2phw3snKSuVf+9xWtFurOqqq4mWpz6NZm6iqSjd2ZWXp9zJyc8nNTS87\n0aeKi43TJtpKSUnqmacWu/ZaWdmzH2vzlZ2dMqza+tDXCZDq9/n5PfuVNj2iPkR70t5PHBP1pU+P\nUdsBzMumV69Uuej7eU5Oep2L9qN3DhX30t6vuLhnWzNLhz5N2jah3bFjNdZo769vfyIOs7y4HT+0\n/bygID3fOTk87wUFxnGL64qLeVvQtk2zPpOf72589BulhnzChAnYsmVL2rGPPvoI+fn5qK2tVXkr\nVwgnj5KS9EFHVHZpKXeGWbCA/y0p4ceNGqn4m5vLnUq+8Y3UeTFjmzHDv3xUV/ccOI0Gfj3Z2Tyf\nt9xiHq+eIUOc56W+njdqfdrcoO0oI0fyYzU1xnGKgdEq3yK+sjJep6Wl/LiYYS9YwA2FiN8q3WJQ\nzc3l8Yh6Fm1LUFLCz4l7CczKUZSblvx8nmYxEIq86Q1ESYl9HdXX85UNEY++fPRtor7e2FiXlnIH\np2uv7XmurCx9oBdprKkxTlt9faqficFSj1V7XbAgvU2IfInyycvj30VdAfxeuqd+YCzV7/v2TV2n\nJyeHnxMffV5LS/ngn5ubnh9tvoSxKC1NHTcrm5oa43IRTp7aOtf2Oy1FRSnnTMGQIT0nnmbp0Kep\nX7/U99xc636Xnc3Lum/f1Fiq72Mivfq8DBjgrD9q0fbz3r35R3ttQQEvUzF26j3URb+uqUm3AUbt\nISsrVf9uxke/yVm5cuVKJwEbGxvx6quvYsGCBSj7ei1569atWLBgAaZNm4ZevXph6NCh+OUvf4nC\nwkKcc845+OKLL7By5UpcccUVmD59umX8R48exbp169LiV0V1NfcCFcuVovHl5/NOMG0acPfdwJVX\ncgNy7Bhw6BBfOiko4J1CdGIxc6up4Z7uN9+c8iwuLQV+/GPggguUJj8tHwMHAuvX82dUjKWU0je+\nwfMjvKxLSnhnE2F69wYeftjYC7i6mn/+8z/5EmNODjB0KPDoo869MqureSf84AOeNjHAiU4pBrKi\notSgp1U64lxpKVBeDlx1FTcaVVWp55kiLyK8Pt85Oby+RLwFBbx+r7kGmDOHe9h2dPCyWLGC13dp\nKfDHP/J7CLWjT3OvXikVWF7ODaOo5+pq7uW8cyePu7yct6U//znVJlasACZPNi+38nLg//2/VNnX\n1HCv3x07+PJoQQGvj+JivsQpFMbVVwP//b9b11F1NW/Hn37K8yjUqlmbqK7mS5x/+QtPT+/evAzP\nPpvX76238vISzyJLSoBHHuH3OHyYHysr457Cq1YZp626OtXPWlt5esSqi0hbebl5ex0/Hnj33dRO\nhoICXidCiRUVAcOHpwbj0lK+u2Hw4FRbyskBamuBBx7g7aCpCdi3jy+valfdiop4/VdXAxdeyMtB\nLG9nZ/N6uOwynt9Dh1JlolW+Qun168fTc8EFfNwwK5sxY/iS7cGDqaV40d4vvJC3PXFtdTU3mKL9\nANyAT5jAvbDFroDSUuCnP+Xl8Ic/pI79z/9p38erq/kjDtEm8vKAs85K9TsxgdHW3aOP8u/isY4Y\nN0U9FxRwr/of/Sg9Lzk5fEeD6I/a/mw2fmj7+a238nLat4+ntbAQmDiR533AAN5PRdxiHOndG5g6\nlbdXrQ1obU3Vc2Ehv3dBAY9/+nTez716rauye7bPyK+44grs378f7GsZM2PGDGRlZWHWrFm45ppr\nsGfPHnR8/WBw8ODBeOaZZ/DYY4/hZz/7GcrKynD11Vfjhz/8oXQCVTFgAP9omTIFmDcv/VhdHf8c\nOADcf3/6ueuuA664omfckyalnlFNmqQuzUZMmMDTrWfcON4BAN4h7r+fd6RFi/ixrCzzrTxG8Q4Y\n4L6RnndeKo6KCuChh5xd9/vfA//+7+nHli7lW/wAPthoefZZPhgBfDD+r//i/59/Pt9eZMTx4ylH\ntJKSVN7Gjk2leeRIfl8z7rzTuJ5ravi9BfPm8W00Ars2MW5cetmPGgV873vcQQng5fDTn/L/77kn\nNWD//d8bPxLR841vpOKfMSPdQcdI8Z51Vir8LbfwbVdaB7hRo1Lb/vLyeLvato0rFAB47LGe6leP\n6GdaOjuBJUv4/zk51u313HOBESP4/z//OR9oH32UO0kC6f1Bi3YM+M53UmnQ5nn+fOCSS6zT//TT\nfDsjANx2W8pwAMCsWdwgiK1Ueu67L9W2jairA15+OfX9pZeAt9/m/19/fc9y0/Y7wcUX80nHoUPp\n8VZUpLdVp318xIj0e2j73eTJvM3fdRf/LtrEn/7E68WMu+/mkxYto0en7mPVn61YsIBvI/ztb/l3\nUc/Nzam4p08Hvvtd4+u1bVNbz4Lhw4Hly92ny09sDfkbb7xheX7Hjh1p3+vq6vDSSy95S1VA2D0T\n1WP2khLh5AKklKFfmHlzap2jzH6ZTeuko0fvACLjNaqNw+7tVVqMwlrVjTa8Ub7trjFzRnLyNjIn\n9awvOzdvmBLfVb51Sp9HbT6M2oT+3trzTt74Jvtoxc2LUIzKR3tfo90bVnG4efOaPoxZfVmNF26w\nK5cg3gBo5EwnEI999GHdtntAfgzRY5cep23U7dgUFhn7rnXA+cAvMKtAvcH0E7P49R3L6H+rtBlt\nI3GLTEcxC2tVN2YDttOJmdkAbpdmp2Vp5hXrJrzZgObEqOpxa5j197bKt9ZD3Ci9bnDTj4zKx2yC\n5yQOtxMRo0myPj1Oxgsn2JWL02Ne0Menn0AbpdFtuwfkxxA9dulx2kbdjk1hEcEkBYdKRS7w25C7\nUeT6/60G/qQrcrPB0K0iN7pOTxwUuVUcbgy/zCtIzdDfy2kZx02Ruy0flYpcdnySUeR29yJFro6M\nNuR+KHK/381LilxOkZsNhrKK3M2kKO6KXIvRS1j08XgZgGVWPeKmyN2WTxwUuVF4Jy9Z0kOKXI4I\nJik43CpyJx0zCopcxpC7NT52cbhp7G7KWn/OqQGJsiI3Knu/FLkT1esmvNEgqWoAdjpZklXkfhly\no/SYXesEuzp3Y8hl68ZqxU60EasycRKn/pgqRe6ljbodm8IiIwy5WYNyq8idLJVFQZHLLK27NT52\ncbhp7G7KWn8uCYrcqOzNBh2vily/tG63LKsfoM1eAaxKSTmZqJgZTreKPC7ObnZ1Hrazm9EKhL5M\nnMSpP6Z6QiizakRL6xFCZnZKitx92sJQ5El4Rm6nyM0mZkEocr0jk9lSvCol5WSi4mSSE+Wl9TAV\nuWw/t1paN5q4JFmR09J6SJgNCH4ocr8NOSlyOUVuVkdR8FqPuiK3Sqs4FqQidzLJIUVuHJesIZdR\n5DLObqTI5cgIQx6kIvd7aZ0Uubwi9+oA49ekiBR5evqs7qVPHylyd4pcdsIuo8hlnN1IkcsRwSSp\nJ8hn5GEpcq/OUaoNuZ9e6zKKXH9epnP7NSkyCu/EWPllyGUUuR/Obk6Wh83auhMDJbsyow8TpCKP\n8tK6W2c3ux0TqtsRObvFHLNOnVRFLrNdSfXSup/7yGUUuf68zHKbX2VpFN7JxMyvpXX9gGe3ZK2P\nQ9XSuln+zOrMrSLXxuNWCVo9D/bTa93r0rpsP3eytG71uMEIu0mk6pUdWlqPOZmgyM2UaVwVuRVh\nKXK/ytJOkZsZqyAUub7NGw3ObiZTdqhS5G6X1lUqciPDZnatE+KoyJ1MEPxU5LS0nkD8fkYu44Ak\ni1tnN6cDvwpFruoZud7YWIWXNeQif27SLKvIVTq7eX1GLqPI7fLtpg7scPuMPG6KXKZ8nPgoODlm\ndL1KZzcvjzaMjqlW5DJxkyKPEH57rUd5+5nTzqVCkavyWnejjGWX1kX+3KRZVpGrdHbz6rUedUXu\n1ms9bopcpnzsysSL17pKZzcvEymjY6oVuUzcpMgjBCly62uNzoW5tC6rjL0qcpnrjXBblrLbz1Qo\ncjtV5ESRqxp89dc7WR4mRR7O0rpRnbstfydtTxavfV1AijxCyDi7GRGFZ+ROnFhkFLnRkpvbvKhy\ndnOjjGWd1Yxm6TLXGxHU9jMVityJYQ5yad2ts5vZJCeqXusy5SOryO3aldm1RlhdZ7QCoUKRq1pa\nl+nrRvGoSJdfRDBJ6pFxdjN6ThsFr3UnxlWFInd6L7PwQSlyJ8eN4pWZpfv1mCLKitzJPvIwnd3M\nJjlO8EuRW+0jlykfWUVu50Rpdq0RVuGiqMi99nWjeFSkyy8y2pC7WUoFoqHIncQvo1LcPGczQ9ZR\nxYsid3OdUT3JOru5UeR2dWY34JoZK5lB2InCthrwjAbooBW5k0mOE7TxuB3k9W0hqKV1L4rcaEuY\nrLObFllnN7u2R4rcORFMknpkl9adGpgo7CPXIjPwq1Dkss9KVSlyr/vI/XpGbldnRopc1fKxPpwT\nRa4Pb2dI/PJad+LsZrb65ARtPG4Heas90346u7lR5E4el8k6u2lRqchV+VvQM/IEIrO0DjhfWg9L\nkTtJT1iK3E1jd6vIZZfW7RS5m4ldWIrc69K6jCK3G6D98lp3q8jd3psUuRpFbmfIzfLsdjXIDeS1\nnkBUKfIoLK1r85KTYxwmCorcyz5yN8razXVBObv5qci9Ort5VeR+O7uRIre/l56wFbmds5vZOOWk\n7clip8idxk2KPEL4rcjDcnZzMrGQXQ42O+Y0bVFU5H45u9kNjlFW5G4djvx2dnMy8SRFno4br3VZ\nZzcvityNISdFLkcEk6SeJClybfxmHUTGy1nF0nrYilxmaV2FIteXq3752ashV6nI3S6th6nIvWw/\nc4JZHUbZa93phNtIkXtZWveiyM3yHPT2MxlFrmoy5jcZYcjNGqFb5RcFRe5laT3pilzG2U2FIteX\nq96Q++XsJjMIu11ad2L4w1Tkfiytu1XkZvWlalnWrg97UeQyk0E9UVfkMo6tRvGoSJdfZIQhN2uE\nbpVf1JzdoqzI3TR2t4pcpbObrNd6kIrczFgFpci1+L39zIsij8rSeqYqcreG3G7M8dKW/FTktLQe\nEqoUuRMnqyg7uwWpyMPYR+5mYibTuc3qOUhF7nUfuVdFbhQ+aYrcq7NbpipyFc5usmOIHlLkCSRI\nRR5lZze3ityL17oXRe6Xs5tRPckq8ig4u4XxjNzu98iD9lonRe5ckXtxdvNDkTuZRMpCijyBZJoi\nlzHkTr1hrZCdTatydgtLkdstrduVo5sBzasil/FaD/IZuZOJipnRjYqzm2qvdbs6NztmNME0Wv1x\ngta5UswAACAASURBVFtF7mSFw+1jHTfY9XUvXuukyENCVpE7VYphKXKVS+thKvKgtp/5pcjtltbt\nytGNJ7hXRa5fWnf7nNJvr3UnExUzI+F24A/D2c2rIneztB4VRa6fDFrF6YciN+rrtI88hsgqcqcG\nhhR5zzj8VORO6sHufNQVuZnKDVqRu91+lgRF7ufSeqYocn2bMGoXcVXktLQeEqoUuZNn0lHwWk+6\nIndSD3bnVXqtJ12RuzHkSVDkUXN2I0XuHlLkCSRIRe730nqQijwor3VVzm5uFLUoR1lFbuXslmRF\n7ve71pOuyGXKR5UiN3KAczpeWbU1WUUelNc6KfKEYNYIk6rIZZyjnM70nabNzaCqytlNRlG7SbNZ\nPdsZcrs2YWfIZSZmZvE7UdhhPiN3kj+zOvPitR4XRe51aV1WkVuNBbKK3G4VUJUiV+21Too8JMwa\noVvlFxdFLrNdSYUil1m6MgobpCJ3k2ZZZze7NuHGOMq0NaulddVe6yqX1s3yZ1Znbu9ttqriVZGL\nc34ocq9L62EoctmldS/K16tjq1UayJCHhKwi15+PmiJ3kh5S5MbnZRS5rLObV0VuZqyCUOT6sg7S\n2S0sRe7WkOuNpkhHpihyo4mLCmc3LwaTltYTiOwzcqeKXMYBSRa3zm6Z9IzczXUyz8idKnIjJWSF\nm+Vtr8/IZRS5l+1qbnH7jNwPRe52ad2NIvfD2c3LM3KVzm5m7cSNIlf1jNxrX7cKF0VFnuskUHt7\nOx599FG89957OHLkCM4++2zcfffd+OY3v9kj7Msvv4zly5cjPz8/7Xh9fT0ee+wxNal2iazXulNF\nHuXtZ06XYu2WudymzU1jV+W1LrN9zE2ao7D9TGbSaDWoul3e9FuRu/Vaj7IiD8rZzenSupEiV7m0\nrkKRq5oUeu3rVuGiqMgdGfJVq1bhT3/6E371q19h0KBBeOWVV7Bo0SK8+uqrGDFiRI/w1dXVePfd\nd5UnVhZS5D2v1aNi+5kqRe7WCdHuuNF5PxW5n9vPVCtyJ8ubZgO0XVplSJIiF/97XS6OgiJ34uxm\n9YzcCFLk6rDNzpEjR/Dv//7vuOuuu3DWWWehoKAAc+fOxciRI/HCCy8EkUbPqHJ2I0XuPG1JVORm\nk6IkK3J9mQTp7OZWkbu9t1+K3GqVIBMVuVl5+qnIjdp4Rivy7du3o6OjA7W1tWnHx40bhy1bthhe\nc+LECSxZsgQff/wxcnNzMWXKFCxduhTl5eVqUu0SVc5upMidp81PZze/FLmbCURYityrs5tbRZ6d\nbd++w9xHrr2f23v7pcitVgmSqMidLK0b4cQ/QxajNi4Td2IUeXNzMwD0MMJ9+vTB4cOHe4Tv06cP\nRo4ciXnz5uH999/H008/jU2bNuG+++5TlGT3qFpaj5rXutsXwvityGWXxVQpchlFLbu0bqXI3Q6W\nbp5Te11ad6LIvXi5B6HIrZax3WBWh24Vud3Sutl1TnGzgqIN50SRB+XsZoSTSaQsdorcadyJUeRW\nZBnkcurUqZg6deqZ76NHj8a9996LxYsXo6mpCVVVVV5uKYUqZzezBimzt1cWJ0vrMgO/Cq912QFd\nlSJ3U58ye0tlFbldm5BV5DJL63Ze60ZGPCxF7mRpXYUi19/HSdvVtwWnafK6tO5m5cxoQhmWs5vT\nOP1wdiNFDqBfv34AgNbW1rTjLS0tqKiocHSTYcOGAQAOHDjgNn1KIEXOseq0dkrLbdoyWZH7uY9c\ntSK3Wj0wKk+/nd2cTIpVK3KZdht1RQ4YTyhlltaNJgBaZJ3dSJGrwzZJY8eORX5+PjZv3px2/OOP\nP8akSZN6hH/++efxu9/9Lu3Yrl27AABDhw71klZpZJ3dZJ6RR8HZjRS5/XUqnd2SpMiNysOufQf9\nilazAdntvWVWZYzuG1VFbjShlFHkduNAFBW5V38YQWIUea9evfDd734XTz75JPbs2YP29nb86le/\nwr59+zB37lxs3boVM2bMwP79+wEAHR0dWLVqFT744AN0dnbik08+wRNPPIFrr70Wffv29T1DRsg6\nuzk1MEEurTuZsZIit79OZkuKWT0nVZEb7Yf2+0dTvChyt/cmRe6sDdmNA1FU5HY7VJKmyB09I1+x\nYgUee+wx3HTTTThx4gRGjx6N1atXo7q6Gnv37sWePXvQ0dEBALjlllvQ2dmJBx98EE1NTSgrK8Ps\n2bOxZMkSXzNiRZIUuZel9aQrchlFHcT2M6+GXKUit3N2s1Pkfm8/c6vIVSyte1XkVl7rKhS5G+dE\nLU4UudOldSfpi6oiN5qwOY3bKFwUFbkjQ56fn48f//jH+PGPf9zj3OTJk7Fjx460YwsXLsTChQvV\npFABqhR53J3d3HqtuzXksltH3Cpylc5ubtIclrObzHZCLXoj49TZzag8/XZ2c+u1rtrZTWaAt9pH\nrkKR2/Vhp4o8rKV1szw72TEhi1fHVqN4rI6FTQSTpB5Vijzuzm5WaVOxtC6zdAW4V+Qqnd3cpDkK\nilxm0milyI22KOnvG5YiN8ufn4rcabuNoyIPa2ndLM92Y45qZzevj1CsjoVNRhhyWa91p8g8t5SF\nFLkaRS6z3GZWz2E5u/mtyGUMeZiKXKY/Wz3ftoIUeYooKnL9tYypU+RkyENCdh+5004o89xSFi/O\nbqTIU/8bLbe5aQ9RcHbzW5EblUcU3rVuNiDLTCL0Azwp8p7EUZHrr7eqIyvi4uwWwSSpJ9MUeVjO\nbrKzabeqJWqK3E7l2A2Ebpx+vCpyO2c3O0Vul1avg5yT/Dn1EHdCd7d3Re6317rd+OLEKVCEC0qR\nO1G/fipyo/Qk2dktIwy5rCJ3SpiK3G7G6FTBudmf6iSOMJbWvSpymev1/wPq37VutnysYh+5E0Vu\ntmRqdMzrIOdkUux0z7YTZJdc9WViZiRUK3LVS+sqvNbt2kkYXuv6+6pYeXF7bZBEMEnqSaoi16sr\n7XGj/90q8qD2ketx64To9J52ilzmev3/gPpfPzMzDFFR5GH+aIpqRS4zwFsZnzAVuZOldSd93C6M\nyFOU9pHr70uKPAGYNXQ/FHmQXutmilxm4FehyMNeWndznczSulk9B+m1rnpp3eqZqdM6DHofuVP1\n6wQVzm5W+VdhyFU9Iw9LkUdhaV3lM3Iy5CEhu/3MKWHtI8/Ksl/6cboUq0KRq3xWaoUKRS7j7BaF\nfeRend3svNbtltaNCPrNbmZ1JqvIvS65WuVfxdK6Kq/1sBR5FJzdrHYWOI1DVbr8IIJJUg8p8p7X\n6glTkbu9LylyZ/EahZNR5G4MOSly83Bu4je7hhS5c0iRJwxS5D2v1aPCaz0oRW5Wb6TIe2JkxEmR\np8cl026dOnZFSZHrHb6srtVfZ4WsIvd7BwQp8oRBirzntXpU7CNXNZuWdXYjRW4dt5HCpmfkcnl2\n6tgVJUWud/iyulZ/nRWyitxuFdDPtkTObjHEb691p6pXBVbLpAIzleLWa93L0noYityNIRb15CbN\nZvVsp3LsytFuEiUzMbOKxyoOo/KwK1eVW4ac9CWzOpMZdFUsuVqpSBWGXIub5XGjdijzQhgZRa5i\nH7lKr3XZyaZRGsiQh4Tf+8jD2n6md1wSmA38bveRe3F287Oxq9x+5ibNYW0/87KP3M4wW01CZBS5\nyuVQJwbKTpHbpUfFkquVkVC1j9xqQu7G2c3ptW7CyO4jdzOBlcHtUr8RdkIpKkQwSeqRVeROjTIp\n8p7hvTT2IJzd/FTkql8IE3VFHvQrWt0ocrs6VaHIrYyEKkVu1Y/dOLsFpchVOLuRIndORhjyIJ3d\n4qrIVW8/S6Iid/qMXI+MItfipyK3UmhOvda1qFRRbhW5jCGXVeROJ5MqFLn+OhmHNRHOD0Vu107c\nPCMPQpF7bc+kyENC1tlNplPHVZGr3n7mpbG7Maiy18kocqde63q8Gno/FbmVQnOqyLWoVFFuFbnM\n0rqsInc6mQxTkevxS5GLPLudYIelyN3ES4o8Qvitkt16EnvBiSE3Uyl+K3KVHqdWRN1rXY/X8zIT\nM6MwRsrJyih49bCWwclExSyNZn3BKk2yXutOJ5OqDLnTLYNW+OW1rlKRqxxD3DrfGUGKPEIYNRi7\nDu6GsPaRmy2tm6kUvxU57SM3xut5mUclRmGMlJPVMm1UFblZnalwdlOtyFUtrVuVixdFrmIfuUpF\nrnIMIUWeMIwajJPKkHF2I0Xe875ucaNQtZAit45bVpFH7Rk5KfL0c06NXyYrcnpGngCMGozKykiC\nIlfhtR6Us5tfilzmGbv+fyNUKnK3/hh2ijxqzm5OJipmhkvGkKvYfqa/n1U4vxV5To55HPpJi1Fc\nZtc5SZvbfmknHlS2JVLkCUBWkcvMzuOqyFXsI4+Ts5uRIpfxetf/b4RKRe7W2c1OYTtxdnODyn3k\nTpzdzB47aI+5UeQy28/097MK57citzLk+kmLUVxm11lh5ERpdN5JvCqd3UiRJwy/FXmYhtxuxug0\nbXFS5GbxyxjyILafeT3vRZG7XVqPmyJ3srRuhf65cRwUudXyuFtF7tVrXSsmkqjIZdpUGGSEIZdV\n5E4Jc2ndbsboNG1RUuROkHFsMiqLILafeT3vRZG7dXYLe/uZW0XuxNnNbmk9borcymHNrSL3uo/c\nbkVEH8Yu3qgpcplxJgwimCT1kCLvea1VvE7CG0GK3Ji4K3I3RFGR2y2tx+GFMFFV5HY+CvowVvEa\npc8LKhS5XbxRISMMeZCK3G9D7pciV2HIVXqc2mGkdOzuaVRPbtJsVs9hObupUOSqvdZVqignXut2\nhsStIvf6GMFOgYepyP1wdrObSFkdt2t7fi2tu61jVXXoJxlhyINU5EG/2U2VIlextB7UPnKj+N06\nL8rsIzer57Cc3VQoctX7yFUOvk72kdst7bp9Ru7VozmIfeSyitwPZze7RxtWx63SosJYmi2tu60D\nu1WWKBDBJKknqYrcbNYa1tJ62IrcDr8UuV052Rlc2aV1t8uiRoY5aorcSf7M6izJitxqghPm9jO/\nFLkKY2lWZm7rQEY0BE1GGPKkKnK3+8j9dnYLU5E7uZ9fityroZZ1dnPrqCTS73SZVqYOvQ5yTvLn\n5s1uSVHkUd1+plKRq/axIUWeMEiRc0iRp/5XpchV7MMlRd7znvq0aHGryK3SlDRFbpXXTFbkXn5q\nlxR5RPDbkLsdXL2gb+x2g4nTSYbdVhC3afO7sXt9Ri5jyO2uN8Mvr3W393byjNyrIVf5jNytIZdV\n5HEz5FHyWvdiyPVxqx4/VC2tk7NbRPB7aT2sfeRmzm5mnrxuvdajvLQus9xlVE9u0mx3vRl+7SN3\ne28nXutend2C2EduVmeyz8jjtrQepX3kXpbWAfPdHyrGD1VL66rq0E8imCT1kCLvea0eUuSkyM3C\nu4EUubvvMvdKkiI32/2hWpF7WVonRR4RSJH3vFYPKXJS5GbhSZEbQ4qcFHlUiGCS1EOKvOe1ekiR\nkyI3C++GKCpyu2e0pMitIUVu/T0KODLk7e3tWLlyJaZNm4aJEyfixhtvxPr1603Dr1+/HnPnzsWk\nSZMwdepU3H///Whvb1eWaLcEaciDfiGMmQrRhjG61ipeJ+Ht4ghakbs15HpvZSdxGNWzCkPu5s1u\nbndI2G0/c+I57KYuVRpys3Ixa2dmhtWNIVetyKNmyGW2nzk15GZl59TZTfX2s0wy5GAOWLZsGZs5\ncybbvXs3O3nyJHv++efZ2LFj2a5du3qE3bNnDxs7dixbt24da2trY1988QWbPXs2W7ZsmeU9Ghsb\nWU1NDWtsbHSSJEs2bGDs9tsZGz2asYoKxgoLGcvP55/CQsbKyxmbOJGHs2LpUh5u9Gjr8K++ytg5\n5zDWuzdjxcX8b0kJYwUF/J4FBYyVlhofMwtrdrygIJWHBQsYu/nm9HuXlzP2/e+n0vryy6nzJSX2\n8Yp7l5aap9ksvdq03XqrfflqufbaVFnPnm1/7cKFjA0bxvNcWMhYZSVja9ZYX/Pcc+llUVLCWG4u\nz0dFhf31ZvWcm8s/BQWMFRWlykZ8Cgqs61m0S23Z6+tZlMd//EcqDUVF9u0nP5+xnBwe19ixPJ5X\nXjFvryIvpaWMXXYZD79mTSq8UTvRpvW669zVu56XXrJvr9r7XX99+v0uvZSxfv34+eJinueLLko/\nNnAgbztWeXbClVfyePPzGcvL49dffHH69Q89xPNTUcE/Ttq2EUuW8DSL/Jv1u/HjU3nLy0tvl6Ku\ntG2zsNB+/NGWz8CB/Jwoy5qaVH5efLFnOykv53meMSPVv4cNS7V7kS5tX8rPd9af7fjRj3h69P1g\nzBh3dXDllYxVVfG8VFUx9uyz3tKlRZXdszXkra2tbMyYMeytt95KOz5r1iz20EMP9Qj/05/+lM2c\nOTPt2FtvvcXOPfdcdvjwYdP7qMrQhg3cKIhBPidHzLn5JyuLNxbRwMwqdMMGxr75Td4QxOf223uG\n37CBsSuu4I0xN5fHr72fHx+Rh8pKxsrKeGfQds5hw3je1qxh7DvfSaUtOzu4tA0d6nzQ2rAhvZwv\nu8y4rLXhhw7taSyHDzfv/Bs2MDZtmnE9ZWXxQc/u+iDrOSuL15e2LNesYay+Xi4NWVm8nM4/n7HJ\nk+3jyMrifeSyy/g12jakv0ab1kGD5I3Vhg2MffvbztqraGfa+61Zw6/VtovcXD4GCAMh8mwUt8iz\nk/SvWcONj0in+JSVpa7fsIGxujoep/gMH+6+fDZsYOyss+zrKyeHt2NRR0b1pLKPi3532WW8PPR1\nJ9pERQUvl+HD+UTAru2KtmrVH52U2fjxfGzUloWI2+mEbc0aPlnT1uE553ifZAhU2T3bhaTt27ej\no6MDtbW1acfHjRuHLVu29Ai/efNmjBs3rkfYzs5ObN++3eP6gT0NDUBjI3DwIHDqlPmz39OnebjX\nXzePxwh9+IYGoKkJ6Ozk8QYFY8DRo8DJk0BHR/q5Eyd43tauBb78MpW2oNLHGNDWZl2+WpyWtTZ8\nc3PP48ePA+vWmV9z4IB5WXR3218fVj1r63P/fvk0dHcDn34K7NnjLI62NmDnTuCLL5yFd1vvehoa\nnLdXcb69PXW/tWv5tVq6u/myqohL/DVbtnea/rVr+RiiT+PJk6nrGxqAw4fTz2dluS+fhgbg0CH7\n8hd5dfJIwisirqws3kb0Y4023PHjfIw6fpyPWU7S0dVl3R/tEGOEGBu19+zu5ml2Ugdr1xofl02X\nX+TaBWj+esQsLy9PO96nTx8c1rfSr8P37t27R1gAhuFV09TEBz6zwUA79ztxgg+MZvFUVaU6Yv/+\n/K8+fFNTasIQlLEU9xGdtrs73cO4s5Pnra0tFSbotIk0mJWvlqYmoF+/VFlXVvK/VnWjfeYFpPL9\n5Zfm13R0GD8bF9/trg+ynhnjeRL1LOpT1LfbNIiwp07xtmIXB2M8jP6e2riM0trd7bze9TQ1cePo\nNH/6+x04YBxG/9cuz07SL+5lNCHUXq9vpzk57stHtHe7tFt9V4k2HVlZvI2ISbK+f4n2W1DAzzud\npAHW/dGOpqae7VYbd1ubszo4cIDXmahH4YMgmy6/sDXkVmS5fOrvNrwMVVVASQlQXMxndPpGI7Zs\nFRXxcIMGmcfT1QWMHMln2UOH8uP68FVVQGmp+f38ICsLyM3lH9FRRAMTx0tKgF69+AzYTdpEFcnm\nQZs2q/LVUlXFy7iwkKdVzAOt6qasDDh2LGVExD0HDjS/plcvXu8nTvR0rHFyvd/1rC174aSVk+Ot\nPgXZ2Tyu/HweV1aWdRzZ2TxscXEqPSdOpP4X6NMq4ndS73pEHTnNX24ukJeXul9lJR/AT57k57Oy\nUhNZkX8rRS7y7CT9lZUpBSriyspKTw9jfILa1cUnkQUF7vqFvlw6OszLRIxrIs8CP8YicS/RZ4qL\neXkcPZrqX+K+ov0WFgLl5XyyLoSW2cqBk/5oR1UVF19ffZW+YinaaXGxszqorOSTS5GnkhJ+XDZd\nfmG7tN6vXz8AQGtra9rxlpYWVFRU9AhfUVFhGBYA+gtZ6yP19cCQIdwYFBbyStNuu8nJ4cfLyni4\nGTPM48nKAqqruTHPy+PH9eGN7ucn2gGzd2/eOfr144NEQQE/V1rK07RggfO0iXjFu6nF/7JpE2kw\nK18t9fX8mpEjeQcUWNXNOefwawoK+N/sbH7PW24xv2bIEF5e2rIQac7Lc3a9k7LUtjknGJW9+GjL\n0k196uPPzuZ5/MY3gJoa6zhE+N69edhRo9LLzUlandS7HjdlnJvb834LFvB+LfpCfn7qU1iYOi7K\nQj82iDw7Sf+CBdy4ij4nyqS8PHV9fT0XAKWlQJ8+3HgA7stHtHdxLyMvalH+eXn8r0iTNqzbdqm/\nh7a+CwtT/a6mJtU29e1EjFOlpUBtLTBuXOo6q7zY9Uc76uuBYcOAvn1T99H2g5oaZ3WwYAFva2Ks\nFXZANl1+kbNy5cqVVgHKy8uxZs0ajBs3DmefffaZ4z/72c/wzW9+ExdffHFa+D179uAPf/gDbrrp\npjPH3nvvPbz77rtYsWIFCgoKDO9z9OhRrFu3DgsWLEBZWZl0hoThPXYMaG3ls6i8PN64CgtTs+Fp\n04C77wbq6szjGTiQz+iOH+ffb7ihZ3ij++Xn88rXKqqiIn5cf6y42Dis1XGRh+nTgVtv5d+bm/m9\n+/dP5e3KK52nrbiYd5z+/fksVNxfzPKd5MNN+cqUtTb8mDHA3r3cFwIARowAli7lHc9puxCqoriY\nd2y314uyFIqjrIx39oKC9DYnPmblXljYs+zFYKktS7f1KY6LgWjqVODRR4HvfMc6joICft8rrwR+\n9KP08N3dPH67tDqpdzdlrM9fr1497zd+PDeYn33G4ygqAi69FLjuOqClhR8rKQEmTADOO48vr54+\nzePW5tlJ+sW9du/m8WZn8zasvV7kp7mZfwoKgIsucl8+or3v38/be2encb+rrgYuvJBP1trauBLN\nz5dvl/o2UV3NDXFBAY+7qAi45BJg1aqebbO7O9Umpk8H5s9PpbWyMuWnlJ3N4xP3c9ofnbaltraU\nv5SYqE2dytPspA7Gj+dtbfdursqrqoAlS+TTpUeV3YMTj7gHHniAXXXVVWz37t2sra2NrV69mo0f\nP57t3buXbdmyhV1xxRVs3759Z7zwzjvvPPYv//IvrL29ne3atYvV19ezBx98MBDvPYIgCIKIA4F5\nrQPAihUrcOGFF+Kmm27C5MmT8eabb2L16tWorq5Ge3s79uzZg46vH0QMHjwYzzzzDF577TXU1dVh\n/vz5mDJlCpYtWyY/2yAIgiAIwpAsxoLcTGPO3r17cfnll+Odd97B4MGDw04OQRAEQfiKKruXEe9a\nJwiCIIikQoacIAiCIGIMGXKCIAiCiDFkyAmCIAgixpAhJwiCIIgYQ4acIAiCIGKMp3etq6Tr6xcE\nfxm1t9ETBEEQhA8Ie9el/3Udl0TGkB/8+l2bN998c8gpIQiCIIjgOHjwIIYNGyZ9fWReCHPy5Els\n27YN/fv3R47fvzxCEARBECHT1dWFgwcPYuzYsSgsLJSOJzKGnCAIgiAI95CzG0EQBEHEGDLkBEEQ\nBBFjyJATBEEQRIwhQ04QBEEQMYYMOUEQBEHEmEQa8vb2dqxcuRLTpk3DxIkTceONN2L9+vVhJyvS\nNDY2Yv78+Rg1ahT27t2bdu73v/89Zs+ejQkTJmD69On4+7//+7QXGDQ2NmLRokW4+OKLcdFFF2HR\nokVobGwMOguR4vDhw1i+fDkuueQSnH/++bjhhhvw4YcfnjlPZeqeTz/9FIsWLcLkyZNRW1uL2bNn\n4+233z5znspUno8++gijR4/Gk08+eeYYlad7pk2bhjFjxqC2tjbts2fPHgA+lilLIMuWLWMzZ85k\nu3fvZidPnmTPP/88Gzt2LNu1a1fYSYskb775JrvooovY0qVLWU1NDWtsbDxz7g9/+AMbM2YM+4//\n+A926tQp9sknn7DLLruMPfnkk4wxxk6fPs2uuOIKdt9997HDhw+zI0eOsGXLlrHp06ez06dPh5Wl\n0LnhhhvYwoUL2VdffcVOnjzJHn/8cTZ+/Hj25ZdfUplK0NbWxi644AL20EMPsWPHjrFTp06xp556\nio0ePZp9+umnVKYeaG9vZ9OnT2cTJ05k//iP/8gYo34vy9SpU9lvf/tbw3N+lmniDHlraysbM2YM\ne+utt9KOz5o1iz300EMhpSravPjii2z37t1s/fr1PQz5XXfdxe6888608GvWrGEXXHAB6+rqYu++\n+y4755xzWHNz85nzLS0tbPTo0T3qIFM4evQoW758Ofvss8/OHDty5Airqalhb775JpWpBIcPH2Yv\nvvgia2trO3Ps6NGjrKamhr322mtUph546KGH2B133MHmzZt3xpBTecphZcj9LNPELa1v374dHR0d\nqK2tTTs+btw4bNmyJaRURZs5c+bgrLPOMjy3efNmjBs3Lu3YuHHj0Nrais8//xybN2/G0KFD0adP\nnzPny8vLMWTIkIwt7169euHhhx/GyJEjzxwTy2MDBw6kMpWgb9++mDNnDoqKigAALS0teOqppzBw\n4EBcdNFFVKaS/PGPf8Srr76KBx98MO04lac8DQ0NuPLKKzFx4kRcd911Zx7/+FmmkXnXuiqam5sB\n8ALQ0qdPHxw+fDiMJMWa5uZm9O7dO+2YaGjNzc1oaWnpcV6EofLmHD9+HMuXL8fll1+O2tpaKlOP\njB079sxk/dlnn0WfPn2oTCVob2/HihUr8KMf/QiVlZVp56g85aipqcGwYcPw6KOPIj8/H//6r/+K\nv/7rv8YLL7zga5kmzpBbkZWVFXYSMgoqb2Dfvn1YtGgRKioq8Pjjj3uOj8oU2LZtG5qbm/Hcc8/h\npptuwgsvvOApvkwt0yeeeALDhw/HddddpzTeTC1PAPjlL3+Z9v3OO+/Em2++iRdffNFTvHZlD73L\nRAAAAxNJREFUmril9X79+gEAWltb0463tLSgoqIijCTFmoqKCsOyBID+/fujX79+Pc6LMJle3lu3\nbsWcOXMwceJEPP300yguLgZAZaqCvn374q677kJlZSVeeOEFKlOXiCX1n/zkJ4bnqTzVMXToUBw4\ncMDXMk2cIR87dizy8/OxefPmtOMff/wxJk2aFFKq4suECRN6PJ/56KOP0L9/fwwdOhQTJkxAY2Nj\n2tLPoUOH8MUXX2R0ee/cuRO33XYbbr/9dqxcuRJ5eXlnzlGZuuedd97BtGnTcOrUqbTjp0+fRk5O\nDpWpS37729+ira0NM2fOxOTJkzF58mR8/PHHWL169ZntUVSe7mhsbMSDDz6Io0ePph3fvXs3hg0b\n5m+ZevfTix4PPPAAu+qqq9ju3btZW1sbW716NRs/fjzbu3dv2EmLNEZe65s2bWJjxoxhr732Gjt1\n6hTbunUru/jii9nq1asZY4x1dnayq6++mv3gBz9gzc3N7PDhw+yee+5hM2fOZJ2dnWFlJVQ6OzvZ\n7Nmz2d/93d8Znqcydc/hw4fZhRdeyFasWMFaWlrYyZMn2Zo1a9jo0aPZpk2bqExd0traypqamtI+\nN9xwA3v44YfZV199ReUpQVtbG5syZQr7H//jf7Dm5mZ24sQJ9uSTT7IxY8awXbt2+VqmiTTkp06d\nYj/5yU/YhRdeyGpra9kNN9zA/vjHP4adrMgyffp0NnbsWDZmzBhWU1PDxowZw8aOHcv+5m/+hjHG\n2BtvvMGuuuoqNmbMGHbppZeyf/qnf2Ld3d1nrt+/fz9btGgRGz9+PJswYQJbsmQJ+/LLL8PKTuhs\n3LgxrRy1HypTeXbu3Mm+//3vs/Hjx7Pzzz+fXX/99eydd945c57K1Bva7WeMUXnK8Nlnn7E77riD\nTZ48mY0bN47NnTuXbdq06cx5v8qUfo+cIAiCIGJM4p6REwRBEEQmQYacIAiCIGIMGXKCIAiCiDFk\nyAmCIAgixpAhJwiCIIgYQ4acIAiCIGIMGXKCIAiCiDFkyAmCIAgixpAhJwiCIIgY8/8B+Ur5HyrX\n3oMAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "system = make_system(lam, mu)\n", "run_simulation(system, update_func2)\n", "print(system.L, system.W)\n", "plot(system.results)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Since we have two counters now, we can consider a wider range of values for $\\lambda$" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": true }, "outputs": [], "source": [ "lam_array = linspace(0.1*mu, 1.6*mu, num_vals)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here's what the results look like. With two counters, the average time in the store is lower, even for higher values of $\\lambda$" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Average of averages = 6.24218332174 minutes\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAfcAAAFhCAYAAABtSuN5AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xl8DffeB/BPQixBgiRIKLVUkKBBLLXV7qgIWqolQq1x\nQ6W1U+61VC2llVstRSh5uLeR2BNSLm08lthipyqIhMhFVAixzPNHnpwmJyfJnJyZc2bmfN6vl1dk\nZjL5zi9z5vvbZsZOEAQBREREpBn21g6AiIiIpMXkTkREpDFM7kRERBrD5E5ERKQxTO5EREQaU9La\nAUjh2bNnOH/+PNzc3FCiRAlrh0NERCSrV69eIS0tDd7e3ihTpky+9ZpI7ufPn8fgwYOtHQYREZFF\nhYeHo0WLFvmWayK5u7m5Acg+yGrVqlk5GiIiInndvXsXgwcP1uc/Q5pI7jld8dWqVUONGjWsHA0R\nEZFlFDQUzQl1REREGsPkTkREpDFM7kRERBrD5E5ERKQxTO5EREQaw+RORESkMUzuREREGqOJ+9yJ\niIisJT4eiI4G7twB3N0BnQ7w9bVuTEzuRERExRQfD6xZ89f3ycl/fW/NBM9ueSIiomKKjja+PCbG\nsnEYYnInIiIqpjt3jC9PSbFsHIaY3ImIiIrJ3d34cg8Py8ZhiMmdiIiomHQ648t79rRsHIY4oY6I\niKiYcibNxcRkd8V7eGQnds6WJyIiUjFfX+snc0PsliciItIYJnciIiKNYXInIiLSGCZ3IiIijWFy\nJyIi0hgmdyIiIo1hciciItIYJnciIiKNYXInIiLSGCZ3IiIijWFyJyIi0hgmdyIiIo1hciciItIY\nJnciIiKNYXInIiLSGCZ3IiIijWFyJyIi0hgmdyIiIo1hciciItIYJnciIiKNYXInIiLSGCZ3IiIi\njWFyJyIi0hgmdyIiIo1hciciItIYJnciIiKNYXInIiLSGCZ3IiIijWFyJyIi0hgmdyIiIo1hcici\nItIYJnciIiKNYXInIiLSGCZ3IiIijWFyJyIi0hiLJ/f79+9j+vTpaNeuHZo1a4aBAwfiyJEj+vW7\ndu1Cv3794OPjg+7du2P58uV49eqVpcMkIiJSLYsn93HjxuHevXuIiorCkSNH0KpVK4wbNw6pqak4\nfvw4pk2bhtGjR+PYsWMIDQ3Fjh078P3331s6TCIiItWyaHJ//Pgx6tatixkzZsDNzQ2lS5fGqFGj\n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\nSUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sweep_lam(lam_array, mu, update_func2)\n", "\n", "decorate(xlabel='Arrival rate (per minute)',\n", " ylabel='Average time in system')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Finally, here's the update function for the scenario with two separate queues." ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def update_func3(system):\n", " \"\"\"Simulate two queues with one server each.\n", " \n", " system: System object\n", " \"\"\"\n", " # if the first servers is busy, check it it's done\n", " if system.q1 > 0 and flip(system.mu):\n", " system.q1 -= 1\n", " \n", " # if the second queue is busy, check if it's done\n", " if system.q2 > 0 and flip(system.mu):\n", " system.q2 -= 1\n", " \n", " # check for an arrival\n", " if flip(system.lam):\n", " # join whichever queue is shorter\n", " if system.q1 < system.q2:\n", " system.q1 += 1\n", " else:\n", " system.q2 += 1\n", " \n", " system.x = system.q1 + system.q2" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Since we added `q1` and `q2` as system variables, we need a new version of `make_system`" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def make_system(lam, mu):\n", " return System(lam=lam, mu=mu,\n", " x=0, duration=8*60,\n", " q1=0, q2=0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here are the results for a single run" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.6625 5.3\n" ] }, { "data": { "image/png": "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\nGKWlrp+2XTEWf75pVQfFlsp1x4/zz2b3zypddTnstnE1Rn3GSdpKGtrvtbbyc4qjU6OewJnVW2sz\ns7opfVcvNsRu3y8qivcFvXFEKdP587xe2hhh9Tm9end2clvl5MSPtbfzcmqdlMiYcuGC+b3U3ke1\nzczaoDYdJa2OjriN1eW3e8/M6qIul14Z9MjIiJcvL09sTPAKqYq8tLQULS0tCcdO/XV6WFZWJjMr\n3ykvjwemqSNBlWCSggLAKh6wspI/l1NQnkFmZfEOrk03L4//307a2nwKC+NpKyjPd+ykVVnJy6TU\nWe+d8JmZ/JpYjKdbWJicTq9evM7qgBulnsr3FbTlUsqgzTcjA8jNTbSlck15Of9///78+X1+PreB\n0fa4jAx+XrGx9h4pOL0HSvlzcxOPMZaYl7p+6vaVlcW/qzxTVuqgV349W5aXx+1utj1QeSuf+hrt\nW/K0NrKLUZ/Rph2LGaetxFGoYYzf1/Jy3ke055XnwnptVslXqbdZ+1NTWZmYV2Ymt292tv2+DwBV\nVbxd5uQk9031WKLcPy3KuZwc/Xrn5yc6cqWM6mPqNmiXykqejt1+pHzHThvUpqO0CaX9A4n3yu49\nM6tLfn5i+1CPdUp/U7ch5XN2Np+Q5eSIjQleIdWRjx07Fjt37kw4tnXrVuTk5KC6ulpmVr4zf76+\nU8nK4o11wABg2jTzNGpr4x0a4GkVF8eDm9RpK+kC9tLW5jN0KE9TTWYmP24nrdpaHkCjnWCoy650\nrsJC4CtfSTyvzGrnzYs7LPV3lc6qdv7actXW8qAkvQnElVfyQVHL/Pn83wEDeEcD9Ac9dTny8+M2\nrq1N7pyMOb8HSvlLS5OPq/Pq3Ttx8qaQmxu3vzIQa+ug3ANlIlhYGLf7/Pm8Hkb3T/397Oy4YzOy\nU0GBcxvMn5/crp2mfffdiW1HYehQnn5ZWfL5ggL+p9RLm5+RzczqVlsLVFQk51VYaL/vA/F2qXdf\nlD4xYACvW9++yeko50pLk8uSn8/ton66WVHB81NEgTodp2NKaal+W1XqoR0Hlb5k1gb1UNrElVfG\nxzB1XXv2tHfPzOrSv3/yeK60l4wM3t+Uczk58XJkZ8fHLJExwSuyVq5cudLOhQ0NDfjVr36F+fPn\no7i4GACwa9cuzJ8/H1OmTEFRUREGDhyIn/zkJ8jLy8Pw4cNx6NAhrFy5EjfddBOmTp1qmv6ZM2ew\n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\nY1lZ/Pzw4Yzddlu8P8Zi/PioUcb1vuGG+P3Pzzeuh1I2pT327cvYunVi90rL22/zvj54MC9LYWHy\nWNGzJ287eu3q+usZGzs2Xg/lr1cv3tfUdb/3Xv3xys7YqO6L06YlprtwofE4qO6j3/wm/55SZ+04\n95//GW8TPXoktp877uDXLV3Kr7HbBu20q7lz5Y21TpHl9ywdeUtLCxs5ciR79913E47PmDGDPf74\n40nX//CHP2S33XZbwrF3332XXXXVVaypqckwH1kV2ryZsdtv5w0rP5939Pj8zt1fRgZv0P3780Gg\nXz/+OSNDLJ3Bg+MDwubNjH3uc7yRKn/33ee+gW3ezNgXvsAbr9OyKuWsrLTnaDZvZuzGG/Xzysjg\n9yI7Oz4Y2S1LLMYHqj59eAePxRjLzEws46BBzpzhunWMFReL3T+RP6W8Rjbu10/MmW/ezCc5aptr\n7S5in82buWM0StdpG6qqiue/eTN3BnbbpLrtZGUl21LJQ3HsmZnxv5wc3le19V63TqxuGRm8HOq+\nK8rmzYzNm8fvjWj/zMvjdc7KSqxHLMZYeXmizQcNct/e9dIdPNg8XXUbvOEGxm6+OXmcW7cuuU0o\nf0r/uOEGxq68ko8BMvqskvaAAe4m0m6Q5fcsFyT37NmDzs5OVFdXJxwfPXo0du7cmXT9jh07MHr0\n6KRru7q6sGfPHpfrB9bU1QENDcCJE0BHh7uACD0YA1pbgfp6oKmJfxZN59w5YMMG/rmuTv+6t94S\nS1+hrg747DOgqyvehJ2UkTGgrY3b1KosdXXAsWPGeV28CHR3A52dzsrR3c1tdf58/Lvq7zPGz9kp\no8L69c7L4QarpdLWVmflV6irA44cidtcSVObh1P71NUBhw+bp2sXbf3q6oCjRxPTtkJpO0bLzhcv\nAhcu6L9ZrL4+ud7r14vX7eLFxL4ritLnz593Zgs1yhin1FtJo7sbaG9PtHlzs/v23t2dOB7U1dkb\nB5U2WF/P26uW9euBxkb9e6KMQfX1fCzr7HRXB225RPtemIhZXdDc3AwA6NWrV8LxkpISNDU16V7f\ns2fPpGsB6F4vm8bGxI4hc6BW0uvu5je/u1ssD+U7XV3c8SnlrqoCzpzhnysq+L9Hj7ors9I5tNGu\nTsp68SK3qVVZGht5J9PLS+t4MzPtl0cpA5A8YKltaaeMCsePJ34/SJzYWEtjIx+w1VpDm7aIfRob\n+eBplK5dlO9q66c4XTtpa9uO0XnlX+0zz9bW5HqL3n/lWnXfFaWxEcjNTeyfImXJyNC/71qbyxgT\nle+r07UaB9VtsKuLTz4UlHt1/Hh8QqJOS91+WlvdjWVG5eruFut7YcLSkZuR4TBKwOn1IlRWAgUF\nQH4+nzXLHKgzMoBYDMjOBnJy4o3SaR5KOrFY3GFXVvIGdfnlfJAbMIAf79fPXZkrK4GePYEePXhj\ndbpCEYvxuhYUWJelshIoKtLPSxuMpDQFO+XJzOQ2V/6vDBzqMsZi9sqoUF5uvnqgLqPb9qM30Kpx\nYmMtlZW8refnA2fPJtdF3dacpG+Vrl3UfUbJnzFnfVRpOxkZ+g5POa915BkZPBgsPz+53uXliQrQ\nbt30+q4olZVcnVZVAX/5i7EzN2o/6gAwPZvk5ibavLg4rspF23RmZnK6RUX6K2Xqsig2y8kBCguB\nyy7jq6aVlfya8nIuYtRtQkE95l68yPOSsZom2jfCiOXSep8+fQAALS0tCcdPnTqF0tLSpOtLS0t1\nrwWAsrIy4YLapbaWO8GePYG8PP0oaRGUQUFpiEOH8r/cXH7c7hxFm87dd8fLnZEB9O/PnbniuKZN\nc1duxR69ejm3h7rjDRhgXRajvNR1zsmJn1cGZzMyMvi1PXvyv96942lrbWmnjArz5/MBSO/+Kekq\ne5PdbE9RnEx2Nk9Tm5dTG2tRbF5cnGgXdT1E0jdL1y5G+Tvpo+o0srP5/crJ0a+j+n4q9y87m/dT\nbb3nz3deNyWv7OzEvitKbS3/98orgT594mVRO2h1O9Te28xMXuecnMR2rPQZrc2HD3c+Xmnr7zRd\nvXFzwACgpIT/v6iIXzd/fnKb0Pvu8OF8DBCtg1G5RPpemMhauXLlSrMLevXqhXXr1mH06NG44oor\nLh3/8Y9/jM9//vO47rrrEq4/cOAAfve73+Guu+66dOyDDz7A+++/jxUrViA3N1c3nzNnzmDDhg2Y\nP38+iouLhStUVQUMGcJVREsLn7Xl5PABU7l5sRhXjfn5+seVgUJ7rTJrmzIF+N73gFtv5csxJ07w\nmb2ddGMxfn7oUGDpUt6AlXJXVPBnQOfO8c+zZwM1NcKmMLSH4kCt6lxUFK/vgw9al8UoL6XOw4YB\n99wDDBoUP5+dzTuu8qe1m9LJpk7l3y0oSPyu+p7YKaPCmDF8MNm/n9tbURr5+fHBqqyMK4WCAv4d\nxpy3n9xcbpcvfAHo25fnpW4rTm1sx+Zqm4raxyxd0T6j5O+0jxYU8O9ccw1wxRWJcRaxGB/8p0wB\n/uZv+LnPPuP/FhUBkycDq1cn19vo/hvVQ1Fuen1XFKXPnz8fn3Qo+Sj9pqCA95eRI3l9L1yIq+1+\n/YAZM3jfOH2a1yMjg5dxwIBkm48cqT9emdVZry/aTVfpS9pxc9Kk5HHu5pv125v2u1/6El9iP3Ei\nbgun9TBrm34jy+/BTkTcY489xm655Ra2f/9+1traytauXcvGjBnDDh8+zHbu3MluuukmduTIkUtR\neFdffTX793//d9bW1sb27dvHamtr2apVq3yJ3iMIgiCIKOBb1DoArFixAtdccw3uuusuTJw4Ee+8\n8w7Wrl2LqqoqtLW14cCBA+j8ayhh//798cILL+DNN99ETU0N5s2bh0mTJmHZsmXisw2CIAiCIHTJ\nYCzomF3O4cOHceONN+K9995D//79gy4OQRAEQXiKLL+XAm+ZJQiCIIj0hRw5QRAEQUQYcuQEQRAE\nEWHIkRMEQRBEhCFHThAEQRARhhw5QRAEQUQYV+9al0l3dzcA4JjbXyIgCIIgiAig+DvF/4kSGkd+\n4sQJAMDXvva1gEtCEARBEP5x4sQJDBo0SPj7oXkhTHt7O3bv3o2ysjJkyfqlE4IgCIIIKd3d3Thx\n4gRGjRqFvLw84XRC48gJgiAIgnAOBbsRBEEQRIQhR04QBEEQEYYcOUEQBEFEGHLkBEEQBBFhyJET\nBEEQRIRJSUfe1taGlStXYsqUKRg/fjzuvPNObNq0KehihZqGhgbMmzcPw4YNw+HDhxPO/eY3v8HM\nmTMxduxYTJ06Ff/4j/+Y8AKDhoYGLFy4ENdddx2uvfZaLFy4EA0NDX5XIVQ0NTVh+fLluP766zFu\n3DjMnj0bH3/88aXzZFPnfPrpp1i4cCEmTpyI6upqzJw5E7/97W8vnSebirN161aMGDECa9asuXSM\n7OmcKVOmYOTIkaiurk74O3DgAAAPbcpSkGXLlrHbbruN7d+/n7W3t7NXXnmFjRo1iu3bty/oooWS\nd955h1177bVs6dKlbOjQoayhoeHSud/97nds5MiR7D//8z9ZR0cH27t3L7vhhhvYmjVrGGOMXbhw\ngd10001syZIlrKmpiZ0+fZotW7aMTZ06lV24cCGoKgXO7Nmz2YIFC9hnn33G2tvb2dNPP83GjBnD\njh07RjYVoLW1lX3uc59jjz/+ODt79izr6Ohgzz33HBsxYgT79NNPyaYuaGtrY1OnTmXjx49n//Iv\n/8IYo34vyuTJk9lrr72me85Lm6acI29paWEjR45k7777bsLxGTNmsMcffzygUoWbX/ziF2z//v1s\n06ZNSY78gQceYPfff3/C9evWrWOf+9znWHd3N3v//ffZ8OHDWXNz86Xzp06dYiNGjEi6B+nCmTNn\n2PLly9mf//znS8dOnz7Nhg4dyt555x2yqQBNTU3sF7/4BWttbb107MyZM2zo0KHszTffJJu64PHH\nH2ff+ta32Ny5cy85crKnGGaO3EubptzS+p49e9DZ2Ynq6uqE46NHj8bOnTsDKlW4mTVrFi677DLd\nczt27MDo0aMTjo0ePRotLS04ePAgduzYgYEDB6KkpOTS+V69emHAgAFpa++ioiI88cQTGDJkyKVj\nyvJYRUUF2VSA3r17Y9asWejRowcA4NSpU3juuedQUVGBa6+9lmwqyO9//3v86le/wqpVqxKOkz3F\nqaurw80334zx48fjy1/+8qXHP17aNDTvWpdFc3MzAG4ANSUlJWhqagqiSJGmubkZPXv2TDimNLTm\n5macOnUq6bxyDdmbc+7cOSxfvhw33ngjqquryaYuGTVq1KXJ+ksvvYSSkhKyqQBtbW1YsWIFvve9\n76G8vDzhHNlTjKFDh2LQoEH40Y9+hJycHPz0pz/Ft7/9bWzcuNFTm6acIzcjIyMj6CKkFWRv4MiR\nI1i4cCFKS0vx9NNPu06PbArs3r0bzc3NePnll3HXXXdh48aNrtJLV5s+88wzGDx4ML785S9LTTdd\n7QkAP/nJTxI+33///XjnnXfwi1/8wlW6VjZNuaX1Pn36AABaWloSjp86dQqlpaVBFCnSlJaW6toS\nAMrKytCnT5+k88o16W7vXbt2YdasWRg/fjyef/555OfnAyCbyqB379544IEHUF5ejo0bN5JNHaIs\nqf/gBz/QPU/2lMfAgQNx/PhxT22aco581KhRyMnJwY4dOxKOb9u2DRMmTAioVNFl7NixSc9ntm7d\nirKyMgwcOBBjx45FQ0NDwtLPyZMncejQobS2d319Pe69917cd999WLlyJbKzsy+dI5s657333sOU\nKVPQ0dGRcPzChQvIysoimzrktddeQ2trK2677TZMnDgREydOxLZt27B27dpL26PIns5oaGjAqlWr\ncObMmYTj+/fvx6BBg7y1qfs4vfDx2GOPsVtuuYXt37+ftba2srVr17IxY8aww4cPB120UKMXtb59\n+3Y2cuRI9uabb7KOjg62a9cudt1117G1a9cyxhjr6upit956K/vbv/1b1tzczJqamthDDz3Ebrvt\nNtbV1RVUVQKlq6uLzZw5k/3DP/yD7nmyqXOamprYNddcw1asWMFOnTrF2tvb2bp169iIESPY9u3b\nyaYOaWlpYY2NjQl/s2fPZk888QT77LPPyJ4CtLa2skmTJrHvfOc7rLm5mZ0/f56tWbOGjRw5ku3b\nt89Tm6akI+/o6GA/+MEP2DXXXMOqq6vZ7Nmz2e9///ugixVapk6dykaNGsVGjhzJhg4dykaOHMlG\njRrFvv/97zPGGHv77bfZLbfcwkaOHMm++MUvsn/9139lFy9evPT9o0ePsoULF7IxY8awsWPHssWL\nF7Njx44FVZ3A2bJlS4Id1X9kU3Hq6+vZN77xDTZmzBg2btw4dscdd7D33nvv0nmyqTvU288YI3uK\n8Oc//5l961vfYhMnTmSjR49mc+bMYdu3b7903iub0u+REwRBEESESbln5ARBEASRTpAjJwiCIIgI\nQ46cIAiCICIMOXKCIAiCiDDkyAmCIAgiwpAjJwiCIIgIQ46cIAiCICIMOXKCIAiCiDDkyAmCIAgi\nwvx/PRixFqooYjUAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "system = make_system(lam, mu)\n", "run_simulation(system, update_func3)\n", "print(system.L, system.W)\n", "plot(system.results)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And here are the results for a range of values of `lam`" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Average of averages = 6.47666023543 minutes\n" ] }, { "data": { "image/png": "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\nZOb/AE8y8IeLuUYTAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sweep_lam(lam_array, mu, update_func3)\n", "\n", "decorate(xlabel='Arrival rate (per minute)',\n", " ylabel='Average time in system')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "With two queues, the average of averages is slightly higher, most of the time. But the difference is small.\n", "\n", "The two configurations are equally good as long as both servers are busy; the only time two lines is worse is if one queue is empty and the other contains more than one customer. In real life, if we allow customers to change lanes, that disadvantage can be eliminated.\n", "\n", "From a theoretical point of view, one line is better. From a practical point of view, the difference is small and can be mitigated. So the best choice depends on practical considerations.\n", "\n", "On the other hand, you can do substantially better with an express line for customers with short service times. But that's a topic for another notebook." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.1" } }, "nbformat": 4, "nbformat_minor": 2 }