{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Multiobjective evolutionary optimization\n", "This example shows how to run the optimization algorithms contained in the `evoalgos` package. It optimises four typical SWIM parameters to the (reversed) NSE and absolute bias at the Blankenstein station." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "nbsphinx": "hidden" }, "outputs": [], "source": [ "# hidden cell: code to setup\n", "import swimpy, os, shutil\n", "%matplotlib inline\n", "\n", "test_path = os.path.join(os.path.dirname(swimpy.__file__), '../tests')\n", "project_path = os.path.join(test_path, 'project')\n", "os.chdir(project_path)\n", "\n", "if not os.path.exists('swimpy'):\n", " raise RuntimeError('Make sure the project is setup.')\n", "\n", "shutil.copy(os.path.join(test_path, 'test_settings.py'), os.path.join('swimpy', 'settings.py'))\n", "with open(os.path.join(project_path, 'swimpy', 'settings.py'), 'a') as f:\n", " f.write(\"from swimpy.optimization import SMSEMOA\\n\")\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## *Prerequisites*" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The objective functions used here (NSE and pbias) rely on observed discharge, i.e. make sure the `stations` are [properly setup](../modules/utils.rst#swimpy.utils.StationsUnconfigured) in the `swimpy/settings.py` file." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Test objective values:\n", "station_daily_discharge.pbias_abs.BLANKENSTEIN=21.27476978\n", "station_daily_discharge.rNSE.BLANKENSTEIN=0.86287377\n", "SMSEMOA running on problem SMSEMOA\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/Users/wortmann/Desktop/source/swimpy/swimpy/utils.py:352: UserWarning: Using multiprocessing on 4 CPUs.\n", " warnings.warn(msg)\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Generation 1 completed in 0:00:12.692437, mean generation time 0:00:14.765706, max_generations in ~0:01:13.828530 hh:mm:ss\n", "Objectives (median, min):\n", "station_daily_discharge.pbias_abs.BLANKENSTEIN: 10.396697 0.006593\n", "station_daily_discharge.rNSE.BLANKENSTEIN: 0.810816 0.666419\n", "Generation 2 completed in 0:00:15.680891, mean generation time 0:00:15.070767, max_generations in ~0:01:00.283068 hh:mm:ss\n", "Objectives (median, min):\n", "station_daily_discharge.pbias_abs.BLANKENSTEIN: 6.541831 0.006593\n", "station_daily_discharge.rNSE.BLANKENSTEIN: 0.721878 0.666419\n", "Generation 3 completed in 0:00:15.384044, mean generation time 0:00:15.149086, max_generations in ~0:00:45.447258 hh:mm:ss\n", "Objectives (median, min):\n", "station_daily_discharge.pbias_abs.BLANKENSTEIN: 4.470950 0.006593\n", "station_daily_discharge.rNSE.BLANKENSTEIN: 0.728671 0.666419\n", "Generation 4 completed in 0:00:17.024623, mean generation time 0:00:15.524194, max_generations in ~0:00:31.048388 hh:mm:ss\n", "Objectives (median, min):\n", "station_daily_discharge.pbias_abs.BLANKENSTEIN: 0.492244 0.006593\n", "station_daily_discharge.rNSE.BLANKENSTEIN: 0.806311 0.655795\n", "Generation 5 completed in 0:00:15.915452, mean generation time 0:00:15.589403, max_generations in ~0:00:15.589403 hh:mm:ss\n", "Objectives (median, min):\n", "station_daily_discharge.pbias_abs.BLANKENSTEIN: 5.810257 0.006593\n", "station_daily_discharge.rNSE.BLANKENSTEIN: 0.709059 0.653288\n", "Resource exhausted: generations\n", "Algorithm terminated\n", "Elapsed time: 0:01:36.147286 hh:mm:ss\n" ] } ], "source": [ "import swimpy\n", "\n", "objectives = ['station_daily_discharge.rNSE.BLANKENSTEIN',\n", " 'station_daily_discharge.pbias_abs.BLANKENSTEIN']\n", "\n", "# low, high ranges\n", "parameters = {'smrate': (0.2, 0.7),\n", " 'sccor': (0.1, 10),\n", " 'ecal': (0.7, 1.3),\n", " 'roc2': (0.5, 10)}\n", "\n", "# load the project instance\n", "p = swimpy.Project()\n", "\n", "# adjust runtime and make sure subcatch is switched off\n", "p.config_parameters(nbyr=2)\n", "p.basin_parameters(subcatch=0)\n", "\n", "run = p.SMSEMOA(parameters, objectives, population_size=10, max_generations=10)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Visualising the results" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAagAAAEYCAYAAAAJeGK1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJztnXl8ZEd1tp+3W619RprdM+MZjz02BJtgFgMhwIcTApjFbB8BEwKYfMQJCSGEPUCwIRsJWc0SYgjYhNVhi9kCBGxwCJttNu+exTOeXZoZ7bv6fH9UXemq1d1qzUjqbuk8v1+r+96qW3XubfV961SdWyUzw3Ecx3FqjUy1DXAcx3GcYrhAOY7jODWJC5TjOI5Tk7hAOY7jODWJC5TjOI5Tk7hAOY7jODWJC1SVkfRWSR9e4jpN0rkV5NsuaUBSNm7fJOmVi2WLpA9K+rPTKOtySf+zcNYtHZLul/QbJdKeKOmepbYp1n2VpI9Xo27HcYE6Deb745V0saQD6X1m9ldmtqA3/YXCzPabWbuZTS5Rfb9vZn++FHXVE2Z2s5k9uNp2nA6xcTMSGzy9kr4r6ZdT6XP+lmIZJyU1Fey/NjZ0HpPad64kKzj2lanti2NZl8VtkzQY7Uteb0rZZpJemDq+Ie7bEbfPlPQ5Sd3x/G6PDaYnpsobjMek69hecG2S15dSdh4oOI8RSdtS+35D0v0Vfxl1hAuU4xRBUkO1bViGvNrM2oG1wE3Av1d6YBSCJwIGPLtIlhPAX1RY1lOBLwKvMLNPp5IujA2y5PW3BeW/M+lNKMK/Aw8AZwHrgJcCR2Pjoj2e9wUxb2eqjv1x36sL6r60zCkMAqfc01BPuEBViKQ3SzooqV/SPZKeCbwVeFFs8fws5nuFpLtivj2Sfi/ubwO+BmxJtZK2FLYcJT1b0h2SemJr6SGptPslvUHSz2Mr7TOSmiuw/Y2SDks6JOl3CtKeKeknkvokPSDpqlTajtjiayg4plHSiYIW8EZJQ5I2nIYt10r6i/h5vaQvx+twQtLNkjIxbZukz0vqknRc0vsKyvm72DreK+npqf1Fv5uYdrGkA/F7PgJ8NO5/U8reV2pml2RTrGu/pKMKXZQtJc77Kkmfjd9Zv6TbJF1YkO3Rku6Mtn80+W6LtKLfIml3LOdOSc9LpZ0r6Tvx/6Nb0mfKfR/xmH+O332fpFslPbEgS3Mpu4v8Lp48V33RI/80cP5ceVO8DPgBcC3w8iLp1wEPk/SkcoVIehZwPfBbZvbFedT/X8AY8Nsl0h8NXGtmg2Y2YWY/MbOvzaP8+XA18GJJOxep/JrBBaoCJD0YeDXwaDNbBTwNuBv4K+AzscWT/GiPAc8CVgOvAP5R0iPNbBB4OnAo1Uo6VFDPg4BPAa8FNgBfBb4kqTGV7YXAJcDZwMOAy+ew/RLgDcBTgPOAwnGOQcKPvxN4JvAqSc8tV6aZjRFuMOkf64uBb5lZ12nYkub1wAHCddhEaAyYQgv2y8A+YAewNdqS8FjgHmA98LfAv0lSTCv63aSOPYPQuj8LuCLa+7po57nAxQU2vht4EPDwmL4VeEeZc3oO8B+xjk8CX5SUS6W/hPC/tTOW+/YS5ewmeBMdwDuBj0vaHNP+HPgGsAY4E3hvGXsSfhzPIbHrPwoaPkXtLvG7uH+uyuL/80sIglMpLwM+EV9Pk7SpIH2I8Hv8yzJlXErwdF5gZl+dR90QPLc/A64s+M4SfgC8X9JlkrbPs+z5chD4EOG7X9a4QFXGJNAEnC8pZ2b3m9nuYhnN7CtmttsC3yHcLApbpKV4EfAVM/ummY0Dfwe0AL+aynO1mR0ysxPAlwg3lnK8EPiomd0eRfKqAntvMrNfmFnezH5OEMiyrdDIdYRWXHLzfylzd9mUtaWAcWAzcJaZjceuEgMeA2wB3hhbqyNmlg6M2GdmH4qt9OtiGZviuc713eSBK81s1MyGU/beYWZDaXvjeV8B/ImZnTCzfsIN8rIy53SrmX02frf/ADQDv5JKf5+ZPRC/278kiP4szOw/4v9A3sw+A9wXr0ty3c4CthS5NkUxs4+b2fHY8v97wv96esyrlN0V/y4iV0vqAfoJwlbRDVbSE+I5XW9mtxIE+reKZP1XYHvaay7g1wjX6nsl0m+LHnvyelo60cxuALqAYmPGvwncTBCxvZJ+KunRc51biqsL6p5rLPavgUslXTBHvrrGBaoCzGwXwau5Cjgm6dOSthTLK+npkn4Qu6V6gGcQWvOVsIXgGST15gn92ltTeY6kPg8B7RWU+UBqe186UdJjJd0Yu8t6gd+vxF4z+2Gs/2JJv0TwIG44HVsKeA+wC/hG7I57S9y/jSBCEyWOm7o+UVQgXqMKvpsuMxspY2/68wagFbg1uakQuoHKdXFOHR+/2wOxjmLl7ytIm0LSy+INMKn3oanzeBMg4EcKXcW/U6yMgvLeELs+e2N5Hcy8LkXtns/vIvIaM+skNLqeBXxW0sPmso/QpfcNM+uO25+kSDefmY0SPMhSN/c/A0YJHmBTkfRHmlln6vX1InneDryNINLpuk+a2VvM7AJCg+insR4VKaMYrymou+wYU+ypeB/wrgrLr0tcoCrEzD5pZklLzoC/ie9TxH/6zxE8n03xx/hVwg2DwvxFOBTLT8oT4YZ88DRMPxzLSCjsfvgkQVi2mVkH8MGUvXNxHaGb76XAZwtu7qdiyxRm1m9mrzezcwiD4q+L4xsPEFrJ8wpiqOC7gdnfz2FCN1lC2vZuYBi4IHVT6bAwGF6KdORVJpZ9qFg64drM6AKOx51F6N55NbAunsftyXmY2REz+10z2wL8HvABlXmkII43vYngLa6J5fUy87qUtLvE76Is0fO7mdAAeWq5vApjei8EniTpiML44J8AFxYZw4MwdtgJPL9I2iChUdJB6MYs1lU3l+3fjHb/QZk83YT/sy2EbtHF4j0Er/BRi1hHVXGBqgBJD5b06/EmN0K4MeWBo8CO+KMFaCR0eXQBE7GrIf0DPAqsk9RRoqrrgWdKenL88bye0OL739Mw/3rgcknnS2oFrixIXwWcMLMRhTDdYl0npfg48DyCSH1sAWyZQtKzFAb8RbhhThKu+Y8IwvFuSW2SmiU9voK65/puStn7CkkPifZOtWqjJ/EhwjjWxmjz1sJuoQIeJen5UVxfS/hu0+Mwf6gQrryW0EovFuDQRhCCrljnKwgeFHH7NyUlonoy5s2XsWkVMBHLa5D0DsIY3Zx2l/ldzImkxxGCJO5I7c7E7zN5NQHPJXz35xO6sx8OPITQnfaywnKjZ30l8OZi9cau2EsIvRKfVOmovHK8jSDq6fP5G0kPVQg/XwW8CthlZsdPofyKMLMe4O8LbVlOuEBVRhNhQLyb0IW0EfhTwsAxwHFJt8V//tcQbmwnCTf7qW4vM7ubMMazJ3bPzOgOMbN7CDf798a6LgUutRCUcEpYiCT6J+DbhJbftwuy/AHwLkn9hAH+6+dR9gPAbYSb4M0LYEua84D/BgaA7wMfMLMb49jSpYQuxf2E7qYXVVB32e+mjL1XAzdGexMxGY3vb072S+qL9j4YZjzknPYS/zPaepLgdT4/juskfJIwLraHMM4yK2zazO4k3JS+T2jw/DIzx1QeDfxQ0kA8vz82sz1lTvPrhK7JewndiiPM7GosZ3ep3wWSXiLpjoJy3hevyQBhvPLtNjPS7cUEkUteuwldeR+18EzekeRF6N56SQlP+lOERkxR4o39KYRAlI+lGpg/08xnkf6pxPHfIzSU0rQCXwB6CN/fWRQPhy/F+wrqvrXC4/6ZIODLEpkvWOicBpI+QohMLBVxtmxQCPm/HWgqMwZW6tirgHPNrFSYsuM4BbgH5ZwyCg9PPh/4t+pasnhIep7C805rCOMrX5qvODmOc2q4QC0DFObzGyjyWqwHBVEIg70deI+Z7a2mLYvM7xGen9pN6Ep5VXXNmT+aOd3OjFe1bXOccngXn+M4jlOTuAflOI7j1CRVmxBz/fr1tmPHjmpV7ziO41SJW2+9tdvMys7bCVUUqB07dnDLLbdUq3rHcRynSkgqN4vMFN7F5ziO49QkLlCO4zhOTVLXApXPG+OTFc2s4jiO49QZdS1QQ+OT3Hmoj66+EfJ5D5d3HMdZTtS1QAFM5PM8cHKY+471MzTmD/g7juMsF+peoDISna05JvLGPUf6OdwzzKR7U47jOHVP3QtUQksuy6rmBo72jXDX4T76R8bnPshxHMepWZaNQEHwpla35GjIiHuP9rP/+KAHUTiO49QpVXtQdzFpbMiQy+boGR6nZ2icbWtb6GxtpPLVlx3HcZxqs6w8qDSSaG9qoDmXYW/3EHu6BxkZX7brejmO4yw7lq1AJTRkM3S25hgem+Cuw30c9ZB0x3GcumDZC1RCa2MD7U0NHOoZ5p6j/QyOeki64zhOLbNiBAogmxEdLTnMQkj6wZNDTHgQheM4Tk2yogQqoTmXpaOlga7+Ue4+3E+fh6Q7juPUHCtSoCAEUaxuydGQFfcdHeD+7gHGJtybchzHqRVWrEAlNDZkWNOao39kgjsP9XJiYBQzD6JwHMepNiteoBLamhpoa2pg3/Ehdh8b8JB0x3GcKuMClSKbER2tOUYn8iEkvXfE5/VzHMepEi5QRWhpDPP6He4d5p4jfQx4SLrjOM6S4wJVgmRePwH3HunjgRMeku44jrOULMu5+BaSplyWxoYMJwbH6BkaY9vaVjpbG6ttluM4zrLHPagKkMSq5gYaGzLs7hpgT9cAoxMeROE4jrOYuEDNg1w2w5rWRgZGJ7jrUB/d/R6S7jiOs1i4QJ0C7TEkff+JIe471s/wmHtTjuM4C40L1CmSzYSl5scnjbuP9PlS847jOAvMvARK0jZJN0q6U9Idkv447l8r6ZuS7ovvaxbH3NojvdT83Ud8qXnHcZyFYr4e1ATwejM7H/gV4A8lnQ+8BfiWmZ0HfCturxiSkPSsfKl5x3GchWJeAmVmh83stvi5H7gL2Ao8B7guZrsOeO5CGlkvNDZk6GwJS83fdaiPk4MeROE4jnOqnPIYlKQdwCOAHwKbzOxwTDoCbCpxzBWSbpF0S1dX16lWXdOkl5rf0z3oS807juOcIqckUJLagc8BrzWzvnSaBZehqNtgZteY2UVmdtGGDRtOpeq6oSGGpA+NhqXmu3ypecdxnHkxb4GSlCOI0yfM7PNx91FJm2P6ZuDYwplY37Q1haXmD5wMS80Pjfm8fo7jOJUw3yg+Af8G3GVm/5BKugF4efz8cuA/F8a85UEyS7qZcffhfg75UvOO4zhzMt+5+B4PvBT4haSfxn1vBd4NXC/p/wH7gBcunInLh+ZclqaGDMf6RzkxOM729a2sbs5V2yzHcZyaZF4CZWb/A6hE8pNP35zlT7LU/NhEnvuODrCuLceWzlYaG/yZacdxnDR+V6wS6aXm7zrc50vNO47jFOACVWXamhpobcxyvy817ziOMwMXqBogmdcvvdS8h6Q7jrPScYGqIZKl5g/1DnO3LzXvOM4KxwWqxshIdKSWmj/gIemO46xQfMn3GiVZar57YIyTg2NsX9tKhy817zjOCsI9qBpGEqvjUvO7fKl5x3FWGC5QdYAvNe84zkrEBaqO8KXmHcdZSbhA1Rkzlpo/7EvNO46zfHGBqlNacllWtfhS847jLF9coOoYX2recZzljIeZLwMaGzLksjlODo3TMzTO9nWt4VkqlZrX13Ecp/ZxD2qZIIlVzWGp+d1dA77UvOM4dY8L1DLDl5p3HGe54AK1TEkvNX/fMV9q3nGc+sMFahmTLDU/mTfuORKWmveQdMdx6gUPklgBzFhqPgZR+FLzjuPUOu5BrRCSpeYbMuK+owPc3z3A2ISHpDuOU7u4QK0wkqXm++JS8ycHfV4/x3FqExeoFUp7XGp+b7cvNe84Tm0yb4GS9BFJxyTdntq3VtI3Jd0X39csrJnOYpDM6zcyMRmWmveQdMdxaohT8aCuBS4p2PcW4Ftmdh7wrbi9qAyPTfKKj/6I99+4i0/8cB833n2Mu4/00Ts87l1W86S1MYSkH+oJS80P+lLzjuPUAPOO4jOz70raUbD7OcDF8fN1wE3Am0/DrjnpGxlnfNK4dd9J/vuuYzPS2pqybO5oYUtnM1vi++aOFjZ3NLNpdTPZjE8BVEg2E5aaHx2f5J4j/Wxc3cQZfq0WFZ+KyqkGZkbeIG9G3gyb+hzeLT+dNpE3JvPGRD5PPg8T+Tzr2ppY07Y0q3svVJj5JjM7HD8fATYVyyTpCuAKgO3bt59ehaub+fgrH8t9R/tpbMhwpHeEQz3DHOod4XB839s1yPd3H2d8ctqjyigcu6WzhS0dzWzuCJ+T97amlR15n15q/lj/qA9SLhJG+F/MKEMmEz43ZDIo9Z7NiIxENiOygmzcL4lM+h3F/WECYRHf5SK4HMjnbUpAjNKCMpnPMxlFZNJsSlAm80yl5S1P0sFkgun/DmFmKHmPCcn/UfI+OpGnOZetO4GawsxMUtE+NjO7BrgG4KKLLlqwfriWXJaz17dx9vq2WWl5M7r7RzmcErBDPcMc7h3hu/d10zs8c5mK1c0NMwRrS0czm+P7+lVNZFbADz5Zat5ZXMwMA8zC5+Qh6rGJibjfYlq8EcXjFI8hEaCpjZjHYh6iCGYyUwKXSQlfEEbRkBGK7xmFlzLMELrk/z69nXEBLEpaUBIPxZgtKBOTQUgmYv7JfPKaFpTJfH7qe6eEoITSZ39f6fdcNkNjA4jMaX1n+SUePlmou9BRSZvN7LCkzcCxOY9YIjISG1c3s3F1Mxdu65yVPjA6UdT7uudoP9+9r3vGzAu5rKa8r7SAbels4YyOZlpy2aU8NafOUfR2Un8WnKQ7B5JWNkxM5qeFMd44EzFMWQfJrVHxJpgSvrS1QewUxS9DNgpfNqMpjzAbBS2bzUx7fZliHl9Im+EhLrIIFhOUqe4vKCooU2KSEpZ8FBRS18iSy1dEUJJzKyYsiaBktLLvKQslUDcALwfeHd//c4HKXXTamxo4d2M7525sn5U2mTeO9Y9wqGeEw73DHOoZ4VDvMId7RrjjUC+DozNDs9e05oqK1+aOZta2NXpr01lypNA9CJBdJBGc8hLMMIyJSTDLkyflBTItljO8AGxqO7mZJ0KZ7FeZrtDEC8xGkUw8RQMmiwlKMp5iMDlpUx7BtOhOC0jYmi0oxYSlMZtBLigLzrwFStKnCAER6yUdAK4kCNP1kv4fsA944UIaWS2yGcXgihZgZuS8mdE/MjElWNPvI/z8QC/fuusY6QZpU0OGzR3NU8Eb6SCOMzqaaWzw0R6nPslIi+4FztUVmjegoCu0UFAyJNuxW7NhuuvSqU1OJYrvxSWSnnyattQVydRBq1ty/NIZq2elj03kOdo3wuHe2d7XTx44ycj49DRDAta3N7E5ClZ4n/a+fPFBZyWzFF2hTm3iI+GLRGNDhm1rW9m2tnVWmplxcmicw73DU8EbyfuP953g+B1jM/K3NmZnRBumva9Nq5toyLr35TjO8sMFqgpIYm1bI2vbGrlgS8es9JHxSY70jRR0HQ6z//gQP9gzO2x+46rmae8rGf+K2+0ejec4Tp3id68apDmXZce6NnasKx42f3xgbKrbMP3+vV3d9BSEza9qbpgSrhldiJ0tbGhv8gdxHcepWVyg6oyMxIZVTWxY1cTDzpydPjQ2EbsLZ4rXrq4B/mdXNxOpsPmGTBI2Pzt4Y3NHM62N/u/hOE718DvQMqO1sYGdG9rZuaF42HzXwGgY8yroPrz7SD/9IxMFZWVZ1dzA6uYcq5sbWN2SY1VzjtUtDaxqztHR3FCwnaO9ucG9MsdxFgQXqBVENiPOWN3MGaubochMU/0j41Pe16GeYU4OjdE3MkH/yDh9w+Mc7R+lb3icgdEJ8jb7+IT2poYgbC1R2JpzM7dbcinhCwLX1tTgIb+O48zABcqZYlVz8JAetGlV2Xx5MwZHJ+gbmaBveJz+kQn6RsbpGw7v/VP7x+kdmeBgzzB9wxMMlJklPaMgbImIBc8sCFlHFLjEW1ud8traGrMegu84i8TYRJ59xwfZ3TXIrq4B7jvaz8set4PfvGh2dPJi4ALlzJuMNCVmWztbKj5uMm8MJGKWCFlKzBKB6xuZ4OTQGPuOD9E/Ms7gWOnFFDMiClbKK2sp4rXN2M7RnDu9OckcZ7nROzTO7q4BdnUNsLtrkN3HBth3YmjqwejmhgxnrW9jcgnn43OBcpaMbEZ0tOboaM3N67iJyTz9o9PeWm/Ka0u8tb643dU/yu6uAfpGxmc8DF1ILhtEdnWhZ5by3mZ3RzbQ5PMtOnXOZN442DPMnihEu44NsLtrgO6B6ecv17c3snNDO4/buY6dG9rYuaGdLZ0tjE5M0tm6NDOZgwuUUwc0ZDOsaW1kzTx/GGMT+eCZpbogk/G0vgKBO9wzwt0j/fQNj894zqyQpobMDE9tVRxHm+WttcwMLsn5w9ROFRgem2RP9wC7jg2yJ3pHe7sGGZkIjbdsRpy1tpVHbF/Dzg1tnBsDrObbiFwsXKCcZUtjQ4Z17U2sa2+a13Gj45MpUSs9xtY3MsH+E0NT2xNlIkeac5kZQSFrWhvZ0tnM1s6W+GB1C2tafUor59QwM7oHxqa8oV1dA+zpGuTgyeGpuQnDxNhtPONhm6MQtXHWuraangfUBcpxCmjKZdmQy7JhVeXCZmaMjOfpHRmnP4pX/8g4vYnXNjKze/L2Q73ceM+xGdGQLbnsLNFKtjeskLXInLkZn8yz//jQrPGivtRjIls6mzl3QztPecgmdm4MXXQbVzXVXQPIBcpxFgBJtDRmaWnMhjD+ChifzHOkd4SDPcNTof2HeofZ2z3I9wumtMplNT0HY2cLWzpa2LpmejZ870JcnvQNJ4ELsYvu2AD7jg9NeeuNDRnOWd/GE8/bwLlRiM5e37ZsVgZfHmfhOHVILlt6QuH0Q9WHooAdjJ9/+kDPjACQZD7GrYl4xdfWzrAatC+kWfvkzTjUMzwjaGH3sUG6Bkan8qxra2TnhjYec/Zadm5o59wN7Wxd07KsH4x3gXKcGiT9UPUjt89ei+zk0DiHeoanROtg9MC+c2/XjK4eCDe2dHdhEK+wvaq5NgbDVxIj45Ps7U6EKLzv7R5keDw8TpERbF/byoXbOjhnQzvnbmhj58b2eQcJLQdcoBynzkjPhv/QrbNnw+8fGZ/qMjyY8r5u2XeSr99xdEbe1c0NbE4J1tap7kMP2jhdzIzjgyFwYU/KMzqQClxoa8yyc2M7lzz0jCkh2lHjgQtLiQuU4ywzVjXnePAZOR58xuwZQUbGJzncO8LBk1G8eoc5dHKYuw73cVNB0EZzLjM93tXZzNY14fOWNT4TfiETk3n2nxia8oj2xHGj3tTqAps7mjlnQxu//ksbQxfdxnY2ra6/wIWlxAXKcVYQzbksZ69v4+z1s5dyGZ8Mq0AfLBjz2n9iiB/unR20ccbq5hndhcnY1+ZlHrQxMDIxHUF3LEwBtO/44NT1yWXFOevbefzOdezcGMK5z9nQTvsyCVxYSvyKOY4DhKCNM9e0cuaa4kEb3TFoIxnvSoI3fn6gd2r8BMIYyoZVTUXD5bfUUdBG3ozDvSPs7hpgTxSi3V0DHO2bDlxY05pj54Z2LnrkmWHGhY3tbFvT6t7lAuEC5TjOnGTj2mGbVjfziIKZ8M2MnuFxDp4siDjsHea7RYI21rY1sqUj1WXYOR0yv7qlOkEbo+OT7D0+yK5jgzGCboA93YMMjU0HLmxb08oFWzp49oVtnLsxzLiwtm3lBS4sJS5QjuOcFpKmpqIqFrQxMDIRxroKgjZu3XeSrw/MDNpIVoBOugzTwRtr2xoXZLzmxGBqxoUYwPDAyaGp8bfWxiw7N7TxlPM3hRkXNrZx9ro2n4exCiyoQEm6BPhnIAt82MzevZDlO45Tf7Q3N/Cg5lVFl3FJgjYOpcLlD/aEBTS/c2/XzKCNhhC0sblIuPzGVc2zutUm88b+E0NTD7ju7gre0cmh6cCFTaub2LmhnSc9aAPnbAxz0Z3R0eyzdtQICyZQkrLA+4GnAAeAH0u6wczuXKg6HMdZXpQL2piYzHO0bzT1rFfwvg6cGOZHe0/MCNpoyIgzOoLX1dGSY9/xQfZ2zwxc2LGujceevY6dUYjO2dDmz4HVOAvpQT0G2GVmewAkfRp4DuAC5TjOvGnIZti6JjyTVUjejO7+UQ7FkPlDvdMCtrdrkO1rW3jeI7ZOhXNvW9NCwzKOLFyuLKRAbQUeSG0fAB67gOUXZTJvDI2VXqnVcZzlSeg6bOdBm9rnzDs2mWdssvT6YE5ljE4s7TVc0iAJSVcAVwBs3759jtxz05jNsLmjmaVb39FxHGdl07GEkZYLKVAHgW2p7TPjvinM7BrgGoCLLrrotHWlsSHD1iLPbDiO4zj1z0J2yv4YOE/S2ZIagcuAGxawfMdxHGcFsWAelJlNSHo18HVCmPlHzOyOhSrfcRzHWVnIrDojOJK6gH0LUNR2YP8ClLMU1JOt4PYuJvVkK9SXvfVkK6xMe88ysw1zZaqaQC0UkroqOdFaoJ5sBbd3MaknW6G+7K0nW8HtLcdyeDCgp9oGzIN6shXc3sWknmyF+rK3nmwFt7cky0GgeqttwDyoJ1vB7V1M6slWqC9768lWcHtLshwE6ppqGzAP6slWcHsXk3qyFerL3nqyFdzektT9GJTjOI6zPFkOHpTjOI6zDHGBchzHcWoSFyjHcRynJnGBchzHcWoSFyjHcRynJnGBchzHcWoSFyjHcRynJnGBchzHcWoSFyjHcRynJnGBqmMkvVXSh5e4TpN0bgX5tksakJSN2zdJeuVi2SLpg5L+7DTKulzS/yycdY7jnC4uUFVC0lWSPj6P/BdLOpDeZ2Z/ZWYLetNfKMxsv5m1m9nkEtX3+2b250tRVy0Q/39M0gtT+xrivh1x+0xJn5PULalX0u2SLo9pO2LegYLXi0rUd7+k4ZjnpKSvSNqWSr9W0l+UsVeS9ki6s0jaTZJGCsr7DUn3F9T/G6nty6IdT5rrXKJtJukxqePPlWSp7QskfUPSCUk9km45jYT+AAAdvElEQVSV9AxJL0mVNywpn66jyLVJXu+LaTMaPjHvMUltqX2vlHRTqWu3knGBcpwFRtKCrVQ9R/kngHcmXmoR/h14ADgLWAe8FDhakKczNiSS12fKVH2pmbUDm2M5752H2f8H2AicI+nRRdIHgYo8YEkvB94PPNPMvpNKKncuJ4CSAgp8CfgmcEa08zVAn5l9IikPeDpwKF1H6vhLC+p+dZm6ssAfV3KuKx0XqCVA0pslHZTUL+keSc8E3gq8KLa2fhbzvULSXTHfHkm/F/e3AV8DtqRaaFsKvTBJz5Z0R2wB3iTpIam0+yW9QdLPY2v6M5KaK7D9jZIOSzok6XcK0p4p6SeS+iQ9IOmqVFrSqm0oOKYxtlJ/ObVvo6QhSWUXQZvDlqkWvKT1kr4cr8MJSTdLysS0bZI+L6lL0vGkpZsq5+9iy3yvpKen9hf9bmLaxZIOxO/5CPDRuP9NKXtfqZldkk2xrv2Sjip0UbaUOO+rJH1W0scl9QGXx6T/AsaA3y5xyR4NXGtmg2Y2YWY/MbOvlbvGlWBmI8BngfPncdjLgf8Evho/F3I18GJJO8sVEq/73wNPM7P/nUf91wEPk/SkImWuB84GPmRmY/H1PTNbrC7f9wBvkNS5SOUvG1ygFhlJDwZeDTzazFYBTwPuBv4K+ExsbV0Ysx8DngWsBl4B/KOkR5rZILNbb4cK6nkQ8CngtcAGwo3gS5IaU9leCFxC+DE+jOkbXSnbLwHeADwFOA/4jYIsg8DLgE7gmcCrJD23XJlmNgZ8mpk31RcD3zKzrtOwJc3rgQOE67CJ0Biw6Gl8GdgH7AC2RlsSHgvcA6wH/hb4N0mKaUW/m9SxZwBrCd7KFdHe10U7zwUuLrDx3cCDgIfH9K3AO8qc03MIotAJfCLuM4LXcaWkXJFjfgC8X6E7bHuZsueFpFbgRbH8SvO/gGD3J4DLCv4vAQ4CHwLeWaaoVwHvAp5sZrfM0+whwm/uL4ukHQd2AR+X9FxJm+ZZ9ny5BbiJ8P/slMEFavGZBJqA8yXlzOx+M9tdLKOZfcXMdlvgO8A3gCdWWM+LgK+Y2TfNbBz4O6AF+NVUnqvN7JCZnSB0aTx8jjJfCHzUzG6PInlVgb03mdkvzCxvZj8nCOSsFmoRriO0lpOb/0sJ3VGnbEsB44RuqLPMbNzMbrawrsxjgC3AG6NXMVLQSt5nZh+K42bXxTI2xXOd67vJA1ea2aiZDafsvcPMhtL2xvO+AvgTMzthZv2Em+dlZc7p+2b2xXith5OdZnYD0AUUG4v8TeBmgojtlfTTIt1r3dHTTF4PmV3MFF+U1ENYsO4pBE+gEp4PjBKu2VeAHKFBU8hfA5dKuqBEOU8hiOIvSqTPdS7/CmxPe8YA8X/j14D7Cd7ZYUnflXTe3Kc2xRcL6v7dOfK/A/ijuXoNVjouUIuMme0ieDVXAcckfVrSlmJ5JT1d0g9it1QP8AxCa74SthA8g6TePGH8YWsqz5HU5yEg3YdeqswHUtv70omSHivpxthd1gv8fiX2mtkPY/0XS/olggdxw+nYUsB7CC3ib8TuuLfE/dsIIjRR4rip6xNFBeI1quC76YpdX6XsTX/eALQCtyY3NEJ3Xbmb1QNl0t4OvA2Y0WVrZifN7C1mdgFBaH9KuJEqlW29mXWmXneVqee5ZtYZ63k18B1JZ5TJn/By4PrYzTgCfI4i3XzRg34fwUsqxqsIXueHC86honMxs1Hgz+OrsO4DZvZqM9tJ8IIHgY9VcG4Jzy2o+0PlMpvZ7QRv/i3l8q10XKCWADP7pJk9gfCPb8DfxPcpJDURfrh/B2yKN4KvAskPca6VJQ/F8pPyRLghHzwN0w/HMhIKu4k+SRCWbWbWAXwwZe9cXEfo5nsp8NmCm/up2DKFmfWb2evN7Bzg2cDrJD2ZcJPfrnkGMVTw3cDs7+cwcGZqO217NzAMXJC6oXUUDLrPOq2SCWbfJAjyH5TJ0x3t30LoijxlzGzSzD5P6B14Qrm8ks4Efh34bUlH4hjdC4BnxLGfQt5D8GYeVSTtKPBkguf6gVM0/6OEbtLnl8pgZg8QgjAeeop1VMqVwO8ysxHppHCBWmQkPVjSr8eb3AjhxpQn/Nh2JIP3QCOhK7ALmIjdEE9NFXUUWCepo0RV1wPPlPTkOB7xekK3ynwGkouVebmk8+M4wpUF6auAE2Y2ohDC+1vzKPvjwPMIIlVJS3UuW6aQ9CyFMGIRuqMmCdf8RwTheLekNknNkh5fQd1zfTel7H2FpIdEe6ci1KJ3+yHCONbGaPNWSU+rwJZSvA14U3qHpL+R9FCF8PNVBA9kl5kdP416kpDx5wBrgLSXko3XNHk1Ehog9wIPJnQpP5zgBR0gjD3OwMx6CN1sbypMi+mHCCJ1iaR/nK/t0Xu+Enhz6nzWSHpn/J/JROH8HSocYztVYu/KZwgRg04RXKAWnybCgHg3oQtpI/CnwH/E9OOSbovjEK8h3NhOEm72U91eZnY3YYxnT+wWmtFNaGb3EG727411XUoIfR07VcMtRHz9E/BtQgv92wVZ/gB4l6R+Qp/69fMo+wHgNoJncPMC2JLmPOC/gQHg+8AHzOzGOLZ0KaFLcT/hJln0uZ+Cust+N2XsvRq4Mdqb3OxG4/ubk/0KkXn/TbiJpx9yrjiwwcy+RxDgNK3AF4AeYA/Bw352QZ4ezXx+53XRhrdKKoz4+5LCsz99hGCDl5vZHan0txAaYMnr24SuvA+Y2ZH0i+BtF4vmA/hnQqOi1LnuJ3hlL5D013OdSxE+RWioJIwRgmb+O57b7YTv6fJSNhThSwV1f6HC494FtM2Za4WiMD7oOEuPpI8QIhPfXm1bFps4YH870FRmDMxxnBQuUE5VUJjt4KfAI8xsb3WtWRwkPY8wVtVKGHPLm1nZMHzHcabxLr4VTuzKKZwiZqBI985C1vnnBG/iPWlxqoYti8zvEZ6f2k3osnpVdc1xnPrCPSjHcRynJnEPynEcx6lJFnVSy3KsX7/eduzYUa3qHcdxnCpx6623dpvZnLNoVE2gduzYwS23zHc6LcdxHKfekVRuJpgpvIvPcRzHqUlcoBzHcZyapL4FKj8JY0Nz53Mcx3HqjvoWqPEhOHoH9B2GfL7a1jiO4zgLSH0LFAAGvQeg+z6YGJ07u+M4jlMX1L9AKQMta2BiGI7cDkMnq22R4ziOswDUv0AlNLZDrhW674UT+2DS5+N0HMepZ5aPQAFkc9CyFoa6oetOGBustkWO4zjOKbK8BApAguYOIANH74T+I+DzDTqO49QdVZtJYtFpaIZMDnr2w2gfdO6AhsZqW+U4juNUyPLzoNJksqHLb3QwBFAMewCF4zhOvbC8BSqhaRXkWqDr3uBR5UuuJu04juPUCCtDoGA6gGLgGBy702egcBzHqXFWjkBBDKDoBCPMQNF/zAMoHMdxapSVJVAJuRZoWg09e+H4bpgYq7ZFjuM4TgErU6AgBlCsg7GB4E2N9FbbIsdxHCfFyhWohMZ2aGiCrnug54AHUDiO49QILlAA2UZoXgMDR+DY3TA+XG2LHMdxVjwuUAlTART50OU30O0BFI7jOFXEBaqQXEvo9juxG07sgcnxalvkOI6zInGBKkamAVrXwUhf8KZG+6ttkeM4zorDBaocTavC+NTRu6D3oK/a6ziOs4S4QM1FthFaOqH/EHTfA+Mj1bbIcRxnReACVQnKhCi/iXE4ejsMnai2RY7jOMseF6j50NgaAiiO74Lje33VXsdxnEXEBWq+ZBrCpLMjJ2MAxUC1LXIcx1mWuECdKk2rg1gduxP6DnsAheM4zgKzfFfUXQoamsIyHr0HQkj62h1hn+M4jnPazOlBSfqIpGOSbi+RfrGkXkk/ja93LLyZNYwy0LIGJobDqr1Dvmqv4zjOQlCJB3Ut8D7gY2Xy3Gxmz1oQi+qVxvYw60T3vdC+CTrOhKw7qI7jOKfKnB6UmX0X8LjqSkhW7R06Dl13wthgtS1yHMepWxYqSOJxkn4m6WuSLiiVSdIVkm6RdEtXV9cCVV1jSNDcAWTg6J3Qf8QnnXUcxzkFFkKgbgPOMrMLgfcCXyyV0cyuMbOLzOyiDRs2LEDVNUxDc1y1dz8cv89X7XUcx5knpy1QZtZnZgPx81eBnKT1p23ZciCTDV1+o4MhgGLYAygcx3Eq5bQFStIZkhQ/PyaWefx0y11WNK0Ky3h03Rs8Kl+113EcZ07mDDOT9CngYmC9pAPAlUAOwMw+CLwAeJWkCWAYuMzMB11mkQRQDByDkV5YuzNMneQ4juMUZU6BMrMXz5H+PkIYujMXyaq948NhmqTOs6B9Q9jvOI7jzMCnOqoGuZYYQLEXju/2AArHcZwiuEBVi0wWWtbB2EDwpkZ6q22R4zhOTeECVW0a28P8fV33QM8BD6BwHMeJuEDVAtnGsCDiwBE4dncYo3Icx1nhuEDVCkkAheXDqr0D3T4DheM4KxoXqFoj1wKNq+DEbjixJ0xA6ziOswJxgapFMg3Qui6sMXX0Dhjtr7ZFjuM4S44LVC3TtCqMTx29C3oP+qq9juOsKFygap1sI7R0Qv8h6L4HxkeqbZHjOM6S4AJVDygTovwmxkMAxZAvz+U4zvLHBaqeaGwNz00d3wXH98LkRLUtchzHWTRcoOqNTEOYdHbkZAygGKi2RY7jOIuCC1S90rQ6iNWxO6HvsAdQOI6z7JhzNnOnhmloCst49B4IIelrd4R9juM4ywD3oOodZaBlDUwMh1V7h3zVXsdxlgcuUMuFxnbItUL3vXDifg+gcByn7nGBWk4kq/YOHYeuO2FssNoWOY7jnDIuUMsNCZo7gAwcvRP6j/iks47j1CUeJLFcaWiGTA569sNoX1he3gMoHMepI9yDWs5ksqHLb3QQjtwBwx5A4ThO/eACtRJoWhWW8ei6F07u91V7HcepC1ygVgpJAMXgsfBw79hQtS1yHMcpiwvUSmJq1V7CNEn9xzyAwnGcmsUFaiWSawlTJfXsheO7YWKs2hY5juPMwgVqpZLJQss6GBsI3tRIb7UtchzHmcGcAiXpI5KOSbq9RLokXS1pl6SfS3rkwpvpLBqN7SH8vOse6DngARSO49QMlXhQ1wKXlEl/OnBefF0B/Mvpm+UsKdnGsCDiwBE4djeMD1fbIsdxnLkFysy+C5RbwvU5wMcs8AOgU9LmhTLQWSKmAijyoctvoNsDKBzHqSoLMZPEVuCB1PaBuO9wYUZJVxC8LLZv374AVTsLTq4lhKSf2A1D3ZBtCuNVmQyQCWtQZTJhFnUJUHhXpsjndJ74Warq6TmOUz8s6VRHZnYNcA3ARRdd5M3zWiXTAK3rYGIEJseDV4UFj8osfs5Pi41Z/GxAIkClPhMEj0wUumwUr0zYn2xPpWWLCGIx4SsmkC6IjlPPLIRAHQS2pbbPjPuceqeheeHLnBK4KHIQAzMmYCIlgIWCSNKeKSJ8UwJJkc+ZlMBlU0IYtzPZUEYmmxLO7LS4VeoZouhlOo6zUCyEQN0AvFrSp4HHAr1mNqt7z3GA1I0dILv49aU9vmRMbXKCoh5hkt/ywb5Swle8IsJBmtklOsMDjN2jKHaVZlNimfIE0y9UkO4eobNymFOgJH0KuBhYL+kAcCWQAzCzDwJfBZ4B7AKGgFcslrGOM2/Sns5SMOUZpsRvcmKmAJIv7h3OEsGCrtEpj7BhWtgy2bjdkPIKGyAbf9ozBK+EALrn59QocwqUmb14jnQD/nDBLHKcekYKIrFYJAKYiODkRJgJpFD4Ei8wLXKJBzklgkm3qQq6PRumxwMTLy/TML09q7uzlAi6t+ecHr4elOPUE1MCuMAimIheIm4TEykvLz9TGOf08goCYjLZ2L2ZiGCqe3NK/Ip4eCUF0IVvpeAC5ThOShQWkMLxv6mxv5GUF8i0N5gcU3E3ZyrQJfHw0mnO4tDYDk3tS1KVC5TjOIvDYo3/zejmpKCbMxXw4iw8E6OweosLlOM4TlEWq5vTmZulCjaKuB/sOI7j1CT1K1DmrrzjOM5ypn67+Aa74e8fFAbsmjuheRU0dUDz6tT76tR7x8ztbK7aZ+A4TqVMjoe1y8YGYHQAxvrDe/pz8j4xMv2bb+6Als74uTO8WjrDfcOjAWue+hWobAM87o/g5N4wcDfaFxbd690PI30w2s/0cx5FyLVC06qUcHUUbCdCVyB8uRb/x3ac+WAWlnAZGwi/y+Q9/XlKeAaK7O8PojMXjW1xfbPmcMxIL1iJ9c2UnRawYiLW3AktyXbH9H0h4+NeS0n9ClTLGnjSG8NCe82ds9MtH1tYvUGwRnrjjyLZ7guilgjbyb3hfaQP8uOl681kZwpWImozPLUiwte0KoS/Ok69MR/vpfA9EZ1SQpGQyYXfSGN7/L20Q9uG8N64auZ7Ol/ynmudLR6Wh7FBGO6BkeTVG17Dyee4v+cBGLk9fM5PlDBS4Tc9Q8zS4lbgpSX3AO+tOWWW7x1TmSAazauhYx7HmYXW2mhKxEZ6C7b7poVuqAtO7AnbY4Ply25sL+GppcStmPAtxqStzsqglPdS9L2EB1PJApaJ95KIRttGWHNOETFpnylCiehkmxa+Z0KZ6cbhjPmsy2AG40MpEUsLW89McRs4Ct33hO3J0dJlNrYX8dAKvba0uHWERUSdZSxQp4oUuvFyLdC+aX7HJi3NksLWm3rvh/4j0+nlWpjZptmeWiJuidDN6JaM+xvbljws1Flg8hPlPZPR/gXwXhqigKQ8lCnvpYTHMiUyJbyXekWKYtsWnveplPHh4iKWFrjhHhg6ERq0I71BCEuRay3hpZURuFzL6Z9/jeECtZBkc6HrsWXN/I6barWlPLNCTy293XcIRu8O+8q1bpUJN53mUp5aGc/tdLolii2pUTijeNE1pgqPsziMmC+RJ70vH/Om6ymVv8jErYlNJcsqsHnOsuewYXJs4byXXNtMMWndEL2XIt1jS+W9rDSSRu2qMyo/ZnIMhnvLe2lJWt+BsG9soHR5DU0zBWwuL625MwhhDX/3LlC1QLrVxub5HTs5VjCelvLUCrdH+qD3wHT+skEkLWFcoNi6TFZwA0+EJD1ljVMZU95LunusQu+lsT38zywX72WlkW2E9g3hVSmT49O9MHONrXUfDdvlfuuZhgKPrJzAdYaGa7Ex/0XCBareyTZC2/rwmg9TQSRFPLXkBzA5EZc4ihN3zlilVjOnsklaYbNWsy2RHwpmxS5VfiZOxZbOS/HjZhxfYFNJW9LnUFhPCZsrKXvGcQU2oxCF2rTKvRdnfmRzYbXr1nWVH5OfnP5NJ+I1w3NLCVzS/VguAvLit8HFb1qY85kDF6iVyqkGkTiOU19ksvMfeigVATnQBVsesXi2FuAC5TiO48ykVATk2OD8x9hPg/oXqMmJ+FCu49QhM7r3Crv6VCJfBcfPyn86x1dgh+MsAvUtUNkmWHPWdJSV49Qdqfkk8+m5JVP/01NBKsn+dFo6IrHgmBl5bGb+pKypCEUrGEev0K5yazcV2z/jmAryF62n2P5SdVRK+uQrOLbYPaeiOovdq+ZZ32I2EoreS1P1TY67B1UxDY2wep5Rb47jLBxWQhRLiWXJ/adyTMHxM0R8HpxyA/cUj5t3fUtVT4Us4cQB9S1QjuNUF3n3n7N4+DQDjuM4Tk3iAuU4juPUJLIqBRhI6gL2LUBR24H9C1DOUlBPtoLbu5jUk61QX/bWk62wMu09y8zmnEKjagK1UEjqquREa4F6shXc3sWknmyF+rK3nmwFt7ccy6GLr6faBsyDerIV3N7FpJ5shfqyt55sBbe3JMtBoHqrbcA8qCdbwe1dTOrJVqgve+vJVnB7S7IcBOqaahswD+rJVnB7F5N6shXqy956shXc3pLU/RiU4ziOszxZDh6U4ziOswxxgXIcx3FqkpoQKEkfkXRM0u0l0iXpakm7JP1c0iOX2saULXPZerGkXkk/ja93LLWNBfZsk3SjpDsl3SHpj4vkqYnrW6GtNXN9JTVL+pGkn0V731kkT5Okz8Rr+0NJO5be0ilbKrH3ckldqev7ymrYmrInK+knkr5cJK1mrm3KpnL21tq1vV/SL6IttxRJr/59wcyq/gL+D/BI4PYS6c8AvkaYVvdXgB/WsK0XA1+u9jVN2bMZeGT8vAq4Fzi/Fq9vhbbWzPWN16s9fs4BPwR+pSDPHwAfjJ8vAz5T4/ZeDryv2tc2Zc/rgE8W+85r6dpWaG+tXdv7gfVl0qt+X6gJD8rMvgucKJPlOcDHLPADoFNSVaYxr8DWmsLMDpvZbfFzP3AXsLUgW01c3wptrRni9RqIm7n4Kow6eg5wXfz8WeDJUnVmVa3Q3ppB0pnAM4EPl8hSM9cWKrK33qj6faEmBKoCtgIPpLYPUMM3LuBxsRvla5IuqLYxCbEL5BGElnOamru+ZWyFGrq+sUvnp8Ax4JtmVvLamtkE4RmSdUtr5TQV2Avwf2OXzmclbSuSvlT8E/AmZixONYOaurbMbS/UzrWF0Dj5hqRbJV1RJL3q94V6Eah64jbCPFMXAu8FvlhlewCQ1A58DnitmfVV255yzGFrTV1fM5s0s4cDZwKPkfTQatozFxXY+yVgh5k9DPgm0x7KkiLpWcAxM7u1GvXPlwrtrYlrm+IJZvZI4OnAH0r6P1W2Zxb1IlAHgXRr48y4r+Yws76kG8XMvgrkJK2vpk2ScoQb/ifM7PNFstTM9Z3L1lq8vtGWHuBG4JKCpKlrK6kB6ACOL611syllr5kdN7PRuPlh4FFLbVvk8cCzJd0PfBr4dUkfL8hTS9d2Tntr6Nom9hyM78eALwCPKchS9ftCvQjUDcDLYlTJrwC9Zna42kYVQ9IZST+4pMcQrnHVbkjRln8D7jKzfyiRrSaubyW21tL1lbRBUmf83AI8Bbi7INsNwMvj5xcA37Y4Ar3UVGJvwRjDswnjgEuOmf2pmZ1pZjsIARDfNrPfLshWM9e2Entr5dpGW9okrUo+A08FCiOTq35fqIkVdSV9ihCdtV7SAeBKwgAuZvZB4KuEiJJdwBDwiupYWpGtLwBeJWkCGAYuq9aPJvJ44KXAL+LYA8BbCVPm19r1rcTWWrq+m4HrJGUJQnm9mX1Z0ruAW8zsBoLg/rukXYTgmsuqZCtUZu9rJD0bmCDYe3nVrC1CDV/botTwtd0EfCG29RqAT5rZf0n6faid+4JPdeQ4juPUJPXSxec4juOsMFygHMdxnJrEBcpxHMepSVygHMdxnJrEBcpxHMepSVygHKcGkfRaSa2p7a8mzzA5zkrBw8wdpwrEh41lZkXnbYszElxkZt1Lapjj1BDuQTlOCkl/JukeSf8j6VOS3iBpp6T/ipNq3izpl2Lea+N6Of8raY+kF6TKeaOkH8eJQd8Z9+2IZX+M8NT+Nkn/IukWpdZnkvQaYAtwo6Qb4777kymdJL1O0u3x9dpU2XdJ+lAs6xtxtgjHqVtcoBwnIunRwP8FLiRMoHlRTLoG+CMzexTwBuADqcM2A08AngW8O5bzVOA8wtxmDwcelZqI8zzgA2Z2gZntA95mZhcBDwOeJOlhZnY1cAj4NTP7tQIbH0V4ov+xhDV6flfSI1Jlv9/MLgB64rk4Tt1SE1MdOU6N8HjgP81sBBiR9CWgGfhV4D80vdRQU+qYL8ZuujslbYr7nhpfP4nb7QTx2A/si2vrJLxQYamDBoLYnQ/8vIyNTwC+YGaDAJI+DzyRMG/aXjNLpoi6Fdgxj3N3nJrDBcpxypMBeuISFcUYTX1W6v2vzexf0xkV1rgaTG2fTfDIHm1mJyVdSxDEUyVtyyTgXXxOXeNdfI4zzfeASyU1K6xJ9SzCJJl7Jf0mhOAGSRfOUc7Xgd+JZSBpq6SNRfKtJghWb/S+np5K6ycse1/IzcBzJbXGWaifF/c5zrLDPSjHiZjZjyXdQOhiOwr8grBK60uAf5H0dsLM9Z8GflamnG9Iegjw/dgtOAD8NsGrSef7maSfEJa8eIAgkAnXAP8l6VB6HMrMboue1o/irg+b2U+id+Y4ywoPM3ecFJLazWwgPoP0XeAKM7ut2nY5zkrEPSjHmck1ks4njAVd5+LkONXDPSjHcRynJvEgCcdxHKcmcYFyHMdxahIXKMdxHKcmcYFyHMdxahIXKMdxHKcm+f8FniCB9v+paQAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from matplotlib import pyplot as plt\n", "\n", "# development of objective functions with generations\n", "_ = run.optimization_populations.plot_generation_objectives()" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# the Pareto front with the 'best tradeoff' marked\n", "run.optimization_populations.plot_objective_scatter(best=True)\n", "title = plt.title('Pareto front and best tradeoff')" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# parameter distribution\n", "_ = run.optimization_populations.plot_parameter_distribution()" ] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.14" } }, "nbformat": 4, "nbformat_minor": 2 }