{ "cells": [ { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "from scipy.optimize import curve_fit\n", "import statsmodels.api as sm\n", "from astropy.table import Table\n", "import os,errno\n", "import math \n" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "data = pd.read_excel('DATA2.xlsx')\n", "#data = Table.read('measurements.raw.LD.Flow.LD.Occupancy.germany.darmstadt.K41D21.fits', format = 'fits')\n", "#initial_params_Proposed = [6000, 1.5, 4]\n", "#initial_params_Propose = [6000, 1.5, 4, 5]\n", "#initial_params_Prop = [6000, 1.5, 4]\n", "#initial_params_Wang = [6000, 28.2, 0.0069, 0.0028, 0.044]\n", "#initial_params_Edie_Multi_Regime = [6000, 20, 0.05, 1.5, 0.25]\n", "#initial_params_Cheng = [6000, 0.05, 4]\n", "#initial_params_Gaddam = [6000, 1.5, 0.05, 0.6]\n", "#initial_params_Modified_Lee = [6000, 1.5, 10.3, 2.14, 4]\n", "#initial_params_Drake_Two_Regime = [6000, 1.5, 0.25, 5, -15]\n", "#initial_params_van_Aerde = [2000, 0.007, 0.05, 0.5]\n", "\n", "initial_params_Proposed = [100, 160, 4]\n", "#initial_params_Propose = [100, 160, 4,5]\n", "#initial_params_Prop = [100, 160, 4]\n", "initial_params_Wang = [104, 9, 17, 2.1, 0.07]\n", "#initial_params_Edie_Multi_Regime = [104, 65, 30, 175, 20]\n", "initial_params_Cheng = [105, 65, 4]\n", "initial_params_Gaddam = [105, 179, 65, 0.6]\n", "initial_params_Modified_Lee = [105, 179, 10.3, 2.14, 4]\n", "#initial_params_Drake_Two_Regime = [105, 80, 25, 5, -15]\n", "initial_params_van_Aerde = [1000, 0.007, 0.05, 0.5]\n", "initial_params_Kucharski_and_Drabicki = [107.24, 77.94, 8.46, 2.72]\n", "initial_params_MacNicholas = [100, 170, 0.5, 5]\n", "initial_params_Ghandehari_and_Ardekani = [160, 70, 20]\n", "initial_params_Bando = [100, 3, 2]\n", "initial_params_Boardman_and_Lave = [100, 0.3, 0.2]\n", "initial_params_Lee = [115.5, 151.5, 24.87, 2.1]\n", "initial_params_Kerner_and_Konhauser = [105, 40, 0.5, 0.2, 0.8]\n", "initial_params_Del_Castillo_and_Benites_1 = [105, 170, 18]\n", "initial_params_Del_Castillo_and_Benites_2 = [105, 170, 18]\n", "initial_params_Newell_and_Franklin = [100, 160, 2]\n", "initial_params_Papageorgiou = [105, 45, 10]\n", "initial_params_Drake = [105, 45]\n", "initial_params_Underwood = [105, 45]\n", "initial_params_Greenberg = [60, 170]\n", "initial_params_May_and_Keller = [105, 179, 10.3, 2.14]\n", "initial_params_Pipes = [105, 179, 10.3]\n", "initial_params_Drew = [105, 179, 2.14]\n", "initial_params_Greenshields = [105, 179]\n", "\n", "\n", "#initial_params_Yaks = [100, 160, 4] \n", "#data = data[data['OCCUPANCY']> 0] \n", "#data = data[data['FLOW']> 0]\n", "#data = data[data['ERROR_FLAG']<= 2]\n", "\n", "# Transform data into arrays\n", "k_data = np.array(data['DENSITY'])\n", "q_data = np.array(data['FLOW'])\n", "v_data = np.array(data['SPEED'])\n", "\n", "\n" ] }, { "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", " \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", " \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", " \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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
FLOWDENSITYFLOW.1SPEEDProposed modelg(k)Proposed model.1
0992.09.719537992.0102.06247103.8806650.246742103.880665
1986.09.398039986.0104.91551104.0473810.239823104.047381
2976.09.260186976.0105.39745104.1144530.236833104.114453
3860.08.268004860.0104.01543104.5241150.214899104.524115
4916.08.836977916.0103.65536104.3044560.227567104.304456
........................
44782940.09.171828940.0102.48775104.1560830.234909104.156083
447831088.010.7181391088.0101.51016103.2653980.267765103.265398
447841038.010.1999831038.0101.76487103.6036050.256945103.603605
447851128.010.9862181128.0102.67410103.0736740.273291103.073674
447861000.09.5621351000.0104.57915103.9641110.243364103.964111
\n", "

44787 rows × 7 columns

\n", "
" ], "text/plain": [ " FLOW DENSITY FLOW.1 SPEED Proposed model g(k) \\\n", "0 992.0 9.719537 992.0 102.06247 103.880665 0.246742 \n", "1 986.0 9.398039 986.0 104.91551 104.047381 0.239823 \n", "2 976.0 9.260186 976.0 105.39745 104.114453 0.236833 \n", "3 860.0 8.268004 860.0 104.01543 104.524115 0.214899 \n", "4 916.0 8.836977 916.0 103.65536 104.304456 0.227567 \n", "... ... ... ... ... ... ... \n", "44782 940.0 9.171828 940.0 102.48775 104.156083 0.234909 \n", "44783 1088.0 10.718139 1088.0 101.51016 103.265398 0.267765 \n", "44784 1038.0 10.199983 1038.0 101.76487 103.603605 0.256945 \n", "44785 1128.0 10.986218 1128.0 102.67410 103.073674 0.273291 \n", "44786 1000.0 9.562135 1000.0 104.57915 103.964111 0.243364 \n", "\n", " Proposed model.1 \n", "0 103.880665 \n", "1 104.047381 \n", "2 104.114453 \n", "3 104.524115 \n", "4 104.304456 \n", "... ... \n", "44782 104.156083 \n", "44783 103.265398 \n", "44784 103.603605 \n", "44785 103.073674 \n", "44786 103.964111 \n", "\n", "[44787 rows x 7 columns]" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Levenberg-Marquardt (LM) algorithm for optimization" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Model: Proposed_model, Loop 1, Attempt 1: Converged with parameters: [105.69645857 169.97432425 5.3209303 ], mse: 15218.73693307369\n", "Model: Proposed_model, Loop 1, Attempt 2: Converged with parameters: [105.69645857 169.97432425 5.3209303 ], mse: 15218.73693307369\n", "Model: Proposed_model, Loop 1, Attempt 3: Converged with parameters: [105.69645857 169.97432425 5.3209303 ], mse: 15218.73693307369\n", "Model: Proposed_model, Loop 1, Attempt 4: Converged with parameters: [105.69645857 169.97432425 5.3209303 ], mse: 15218.73693307369\n", "Model: Proposed_model, Loop 1, Attempt 5: Converged with parameters: [105.69645857 169.97432425 5.3209303 ], mse: 15218.73693307369\n", "Model: Proposed_model, Loop 1, Attempt 6: Converged with parameters: [105.69645857 169.97432425 5.3209303 ], mse: 15218.73693307369\n", "Model: Proposed_model, Loop 1, Attempt 7: Converged with parameters: [105.69645857 169.97432425 5.3209303 ], mse: 15218.73693307369\n", "Model: Proposed_model, Loop 1, Attempt 8: Converged with parameters: [105.69645857 169.97432425 5.3209303 ], mse: 15218.73693307369\n", "Model: Proposed_model, Loop 1, Attempt 9: Converged with parameters: [105.69645857 169.97432425 5.3209303 ], mse: 15218.73693307369\n", "Model: Proposed_model, Loop 1, Attempt 10: Converged with parameters: [105.69645857 169.97432425 5.3209303 ], mse: 15218.73693307369\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "C:\\Users\\Mafpeace\\anaconda3\\lib\\site-packages\\scipy\\optimize\\_minpack_py.py:881: OptimizeWarning: Covariance of the parameters could not be estimated\n", " warnings.warn('Covariance of the parameters could not be estimated',\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Model: Wang_five_parameter_logistic_model, Loop 1, Attempt 1: Converged with parameters: [1.03493449e+02 9.00000000e+00 1.38958152e+01 1.29130481e+00\n", " 3.87372090e-02], mse: 19023.38685568331\n", "Model: Wang_five_parameter_logistic_model, Loop 1, Attempt 2: Converged with parameters: [1.03493449e+02 9.00000000e+00 1.38958152e+01 1.29130481e+00\n", " 3.87372090e-02], mse: 19023.38685568331\n", "Model: Wang_five_parameter_logistic_model, Loop 1, Attempt 3: Converged with parameters: [1.03493449e+02 9.00000000e+00 1.38958152e+01 1.29130481e+00\n", " 3.87372090e-02], mse: 19023.38685568331\n", "Model: Wang_five_parameter_logistic_model, Loop 1, Attempt 4: Converged with parameters: [1.03493449e+02 9.00000000e+00 1.38958152e+01 1.29130481e+00\n", " 3.87372090e-02], mse: 19023.38685568331\n", "Model: Wang_five_parameter_logistic_model, Loop 1, Attempt 5: Converged with parameters: [1.03493449e+02 9.00000000e+00 1.38958152e+01 1.29130481e+00\n", " 3.87372090e-02], mse: 19023.38685568331\n", "Model: Wang_five_parameter_logistic_model, Loop 1, Attempt 6: Converged with parameters: [1.03493449e+02 9.00000000e+00 1.38958152e+01 1.29130481e+00\n", " 3.87372090e-02], mse: 19023.38685568331\n", "Model: Wang_five_parameter_logistic_model, Loop 1, Attempt 7: Converged with parameters: [1.03493449e+02 9.00000000e+00 1.38958152e+01 1.29130481e+00\n", " 3.87372090e-02], mse: 19023.38685568331\n", "Model: Wang_five_parameter_logistic_model, Loop 1, Attempt 8: Converged with parameters: [1.03493449e+02 9.00000000e+00 1.38958152e+01 1.29130481e+00\n", " 3.87372090e-02], mse: 19023.38685568331\n", "Model: Wang_five_parameter_logistic_model, Loop 1, Attempt 9: Converged with parameters: [1.03493449e+02 9.00000000e+00 1.38958152e+01 1.29130481e+00\n", " 3.87372090e-02], mse: 19023.38685568331\n", "Model: Wang_five_parameter_logistic_model, Loop 1, Attempt 10: Converged with parameters: [1.03493449e+02 9.00000000e+00 1.38958152e+01 1.29130481e+00\n", " 3.87372090e-02], mse: 19023.38685568331\n", "Model: Cheng_model, Loop 1, Attempt 1: Converged with parameters: [111.45428881 30.40473335 2.45038855], mse: 17324.1964389958\n", "Model: Cheng_model, Loop 1, Attempt 2: Converged with parameters: [111.45428881 30.40473335 2.45038855], mse: 17324.1964389958\n", "Model: Cheng_model, Loop 1, Attempt 3: Converged with parameters: [111.45428881 30.40473335 2.45038855], mse: 17324.1964389958\n", "Model: Cheng_model, Loop 1, Attempt 4: Converged with parameters: [111.45428881 30.40473335 2.45038855], mse: 17324.1964389958\n", "Model: Cheng_model, Loop 1, Attempt 5: Converged with parameters: [111.45428881 30.40473335 2.45038855], mse: 17324.1964389958\n", "Model: Cheng_model, Loop 1, Attempt 6: Converged with parameters: [111.45428881 30.40473335 2.45038855], mse: 17324.1964389958\n", "Model: Cheng_model, Loop 1, Attempt 7: Converged with parameters: [111.45428881 30.40473335 2.45038855], mse: 17324.1964389958\n", "Model: Cheng_model, Loop 1, Attempt 8: Converged with parameters: [111.45428881 30.40473335 2.45038855], mse: 17324.1964389958\n", "Model: Cheng_model, Loop 1, Attempt 9: Converged with parameters: [111.45428881 30.40473335 2.45038855], mse: 17324.1964389958\n", "Model: Cheng_model, Loop 1, Attempt 10: Converged with parameters: [111.45428881 30.40473335 2.45038855], mse: 17324.1964389958\n", "Model: Gaddam_model, Loop 1, Attempt 1: Converged with parameters: [1.38952904e+02 8.20268410e+02 3.77485900e+01 6.56139922e-02], mse: 22097.939020079433\n", "Model: Gaddam_model, Loop 1, Attempt 2: Converged with parameters: [1.38952904e+02 8.20268410e+02 3.77485900e+01 6.56139922e-02], mse: 22097.939020079433\n", "Model: Gaddam_model, Loop 1, Attempt 3: Converged with parameters: [1.38952904e+02 8.20268410e+02 3.77485900e+01 6.56139922e-02], mse: 22097.939020079433\n", "Model: Gaddam_model, Loop 1, Attempt 4: Converged with parameters: [1.38952904e+02 8.20268410e+02 3.77485900e+01 6.56139922e-02], mse: 22097.939020079433\n", "Model: Gaddam_model, Loop 1, Attempt 5: Converged with parameters: [1.38952904e+02 8.20268410e+02 3.77485900e+01 6.56139922e-02], mse: 22097.939020079433\n", "Model: Gaddam_model, Loop 1, Attempt 6: Converged with parameters: [1.38952904e+02 8.20268410e+02 3.77485900e+01 6.56139922e-02], mse: 22097.939020079433\n", "Model: Gaddam_model, Loop 1, Attempt 7: Converged with parameters: [1.38952904e+02 8.20268410e+02 3.77485900e+01 6.56139922e-02], mse: 22097.939020079433\n", "Model: Gaddam_model, Loop 1, Attempt 8: Converged with parameters: [1.38952904e+02 8.20268410e+02 3.77485900e+01 6.56139922e-02], mse: 22097.939020079433\n", "Model: Gaddam_model, Loop 1, Attempt 9: Converged with parameters: [1.38952904e+02 8.20268410e+02 3.77485900e+01 6.56139922e-02], mse: 22097.939020079433\n", "Model: Gaddam_model, Loop 1, Attempt 10: Converged with parameters: [1.38952904e+02 8.20268410e+02 3.77485900e+01 6.56139922e-02], mse: 22097.939020079433\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "C:\\Users\\Mafpeace\\AppData\\Local\\Temp\\ipykernel_3964\\1525249851.py:48: RuntimeWarning: invalid value encountered in power\n", " q_k = V_f * k * (1 - ((k / k_j)**a)) / (1 + (E * ((k / k_j))**theta))\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Model: Modified_Lee_model, Loop 1, Attempt 1: Converged with parameters: [115.59461875 151.59983648 24.87497604 2.10709597 131.82996274], mse: 17752.182079813756\n", "Model: Modified_Lee_model, Loop 1, Attempt 2: Converged with parameters: [115.59461875 151.59983648 24.87497604 2.10709597 131.82996274], mse: 17752.182079813756\n", "Model: Modified_Lee_model, Loop 1, Attempt 3: Converged with parameters: [115.59461875 151.59983648 24.87497604 2.10709597 131.82996274], mse: 17752.182079813756\n", "Model: Modified_Lee_model, Loop 1, Attempt 4: Converged with parameters: [115.59461875 151.59983648 24.87497604 2.10709597 131.82996274], mse: 17752.182079813756\n", "Model: Modified_Lee_model, Loop 1, Attempt 5: Converged with parameters: [115.59461875 151.59983648 24.87497604 2.10709597 131.82996274], mse: 17752.182079813756\n", "Model: Modified_Lee_model, Loop 1, Attempt 6: Converged with parameters: [115.59461875 151.59983648 24.87497604 2.10709597 131.82996274], mse: 17752.182079813756\n", "Model: Modified_Lee_model, Loop 1, Attempt 7: Converged with parameters: [115.59461875 151.59983648 24.87497604 2.10709597 131.82996274], mse: 17752.182079813756\n", "Model: Modified_Lee_model, Loop 1, Attempt 8: Converged with parameters: [115.59461875 151.59983648 24.87497604 2.10709597 131.82996274], mse: 17752.182079813756\n", "Model: Modified_Lee_model, Loop 1, Attempt 9: Converged with parameters: [115.59461875 151.59983648 24.87497604 2.10709597 131.82996274], mse: 17752.182079813756\n", "Model: Modified_Lee_model, Loop 1, Attempt 10: Converged with parameters: [115.59461875 151.59983648 24.87497604 2.10709597 131.82996274], mse: 17752.182079813756\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "C:\\Users\\Mafpeace\\AppData\\Local\\Temp\\ipykernel_3964\\1525249851.py:57: RuntimeWarning: invalid value encountered in sqrt\n", " q_k = alpha * (1 - (beta * k) -((gamma * k - 1)**2 + delta* k**2)**(1 / 2))\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Model: van_Aerde_model, Loop 1, Attempt 1: Converged with parameters: [ 1.09857876e+03 -4.42742483e-02 5.12491570e-02 1.81693921e-04], mse: 15578.49033716822\n", "Model: van_Aerde_model, Loop 1, Attempt 2: Converged with parameters: [ 1.09857876e+03 -4.42742483e-02 5.12491570e-02 1.81693921e-04], mse: 15578.49033716822\n", "Model: van_Aerde_model, Loop 1, Attempt 3: Converged with parameters: [ 1.09857876e+03 -4.42742483e-02 5.12491570e-02 1.81693921e-04], mse: 15578.49033716822\n", "Model: van_Aerde_model, Loop 1, Attempt 4: Converged with parameters: [ 1.09857876e+03 -4.42742483e-02 5.12491570e-02 1.81693921e-04], mse: 15578.49033716822\n", "Model: van_Aerde_model, Loop 1, Attempt 5: Converged with parameters: [ 1.09857876e+03 -4.42742483e-02 5.12491570e-02 1.81693921e-04], mse: 15578.49033716822\n", "Model: van_Aerde_model, Loop 1, Attempt 6: Converged with parameters: [ 1.09857876e+03 -4.42742483e-02 5.12491570e-02 1.81693921e-04], mse: 15578.49033716822\n", "Model: van_Aerde_model, Loop 1, Attempt 7: Converged with parameters: [ 1.09857876e+03 -4.42742483e-02 5.12491570e-02 1.81693921e-04], mse: 15578.49033716822\n", "Model: van_Aerde_model, Loop 1, Attempt 8: Converged with parameters: [ 1.09857876e+03 -4.42742483e-02 5.12491570e-02 1.81693921e-04], mse: 15578.49033716822\n", "Model: van_Aerde_model, Loop 1, Attempt 9: Converged with parameters: [ 1.09857876e+03 -4.42742483e-02 5.12491570e-02 1.81693921e-04], mse: 15578.49033716822\n", "Model: van_Aerde_model, Loop 1, Attempt 10: Converged with parameters: [ 1.09857876e+03 -4.42742483e-02 5.12491570e-02 1.81693921e-04], mse: 15578.49033716822\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "C:\\Users\\Mafpeace\\AppData\\Local\\Temp\\ipykernel_3964\\1525249851.py:61: RuntimeWarning: invalid value encountered in power\n", " q_k = (V_f * k) / (1 + a * (k / k_c )**b)\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Model: Kucharski_and_Drabicki_model, Loop 1, Attempt 1: Converged with parameters: [115.59468752 72.11364125 5.19805942 2.10709152], mse: 17752.182017866387\n", "Model: Kucharski_and_Drabicki_model, Loop 1, Attempt 2: Converged with parameters: [115.59468752 72.11364125 5.19805942 2.10709152], mse: 17752.182017866387\n", "Model: Kucharski_and_Drabicki_model, Loop 1, Attempt 3: Converged with parameters: [115.59468752 72.11364125 5.19805942 2.10709152], mse: 17752.182017866387\n", "Model: Kucharski_and_Drabicki_model, Loop 1, Attempt 4: Converged with parameters: [115.59468752 72.11364125 5.19805942 2.10709152], mse: 17752.182017866387\n", "Model: Kucharski_and_Drabicki_model, Loop 1, Attempt 5: Converged with parameters: [115.59468752 72.11364125 5.19805942 2.10709152], mse: 17752.182017866387\n", "Model: Kucharski_and_Drabicki_model, Loop 1, Attempt 6: Converged with parameters: [115.59468752 72.11364125 5.19805942 2.10709152], mse: 17752.182017866387\n", "Model: Kucharski_and_Drabicki_model, Loop 1, Attempt 7: Converged with parameters: [115.59468752 72.11364125 5.19805942 2.10709152], mse: 17752.182017866387\n", "Model: Kucharski_and_Drabicki_model, Loop 1, Attempt 8: Converged with parameters: [115.59468752 72.11364125 5.19805942 2.10709152], mse: 17752.182017866387\n", "Model: Kucharski_and_Drabicki_model, Loop 1, Attempt 9: Converged with parameters: [115.59468752 72.11364125 5.19805942 2.10709152], mse: 17752.182017866387\n", "Model: Kucharski_and_Drabicki_model, Loop 1, Attempt 10: Converged with parameters: [115.59468752 72.11364125 5.19805942 2.10709152], mse: 17752.182017866387\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "C:\\Users\\Mafpeace\\AppData\\Local\\Temp\\ipykernel_3964\\1525249851.py:65: RuntimeWarning: invalid value encountered in power\n", " q_k = V_f * k * ((1 - (k / k_j)**n) / (1 + c * (k / k_j )**n))\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Model: MacNicholas_model, Loop 1, Attempt 1: Failed to converge. Trying different initial parameters.\n", "Model: MacNicholas_model, Loop 1, Attempt 2: Failed to converge. Trying different initial parameters.\n", "Model: MacNicholas_model, Loop 1, Attempt 3: Failed to converge. Trying different initial parameters.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "C:\\Users\\Mafpeace\\AppData\\Local\\Temp\\ipykernel_3964\\1525249851.py:65: RuntimeWarning: overflow encountered in power\n", " q_k = V_f * k * ((1 - (k / k_j)**n) / (1 + c * (k / k_j )**n))\n", "C:\\Users\\Mafpeace\\AppData\\Local\\Temp\\ipykernel_3964\\1525249851.py:65: RuntimeWarning: overflow encountered in multiply\n", " q_k = V_f * k * ((1 - (k / k_j)**n) / (1 + c * (k / k_j )**n))\n", "C:\\Users\\Mafpeace\\AppData\\Local\\Temp\\ipykernel_3964\\1525249851.py:65: RuntimeWarning: invalid value encountered in divide\n", " q_k = V_f * k * ((1 - (k / k_j)**n) / (1 + c * (k / k_j )**n))\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Model: MacNicholas_model, Loop 1, Attempt 4: Failed to converge. Trying different initial parameters.\n", "Model: MacNicholas_model, Loop 1, Attempt 5: Failed to converge. Trying different initial parameters.\n", "Model: MacNicholas_model, Loop 1, Attempt 6: Failed to converge. Trying different initial parameters.\n", "Model: MacNicholas_model, Loop 1, Attempt 7: Failed to converge. Trying different initial parameters.\n", "Model: MacNicholas_model, Loop 1, Attempt 8: Failed to converge. Trying different initial parameters.\n", "Model: MacNicholas_model, Loop 1, Attempt 9: Failed to converge. Trying different initial parameters.\n", "Model: MacNicholas_model, Loop 1, Attempt 10: Failed to converge. Trying different initial parameters.\n", "Model: MacNicholas_model, Loop 2, Attempt 1: Failed to converge. Trying different initial parameters.\n", "Model: MacNicholas_model, Loop 2, Attempt 2: Failed to converge. Trying different initial parameters.\n", "Model: MacNicholas_model, Loop 2, Attempt 3: Failed to converge. Trying different initial parameters.\n", "Model: MacNicholas_model, Loop 2, Attempt 4: Failed to converge. Trying different initial parameters.\n", "Model: MacNicholas_model, Loop 2, Attempt 5: Failed to converge. Trying different initial parameters.\n", "Model: MacNicholas_model, Loop 2, Attempt 6: Failed to converge. Trying different initial parameters.\n", "Model: MacNicholas_model, Loop 2, Attempt 7: Failed to converge. Trying different initial parameters.\n", "Model: MacNicholas_model, Loop 2, Attempt 8: Failed to converge. Trying different initial parameters.\n", "Model: MacNicholas_model, Loop 2, Attempt 9: Failed to converge. Trying different initial parameters.\n", "Model: MacNicholas_model, Loop 2, Attempt 10: Failed to converge. Trying different initial parameters.\n", "Model: MacNicholas_model, Loop 3, Attempt 1: Failed to converge. Trying different initial parameters.\n", "Model: MacNicholas_model, Loop 3, Attempt 2: Failed to converge. Trying different initial parameters.\n", "Model: MacNicholas_model, Loop 3, Attempt 3: Failed to converge. Trying different initial parameters.\n", "Model: MacNicholas_model, Loop 3, Attempt 4: Failed to converge. Trying different initial parameters.\n", "Model: MacNicholas_model, Loop 3, Attempt 5: Failed to converge. Trying different initial parameters.\n", "Model: MacNicholas_model, Loop 3, Attempt 6: Failed to converge. Trying different initial parameters.\n", "Model: MacNicholas_model, Loop 3, Attempt 7: Failed to converge. Trying different initial parameters.\n", "Model: MacNicholas_model, Loop 3, Attempt 8: Failed to converge. Trying different initial parameters.\n", "Model: MacNicholas_model, Loop 3, Attempt 9: Failed to converge. Trying different initial parameters.\n", "Model: MacNicholas_model, Loop 3, Attempt 10: Converged with parameters: [ 1.49542203e+04 1.17445452e+02 -9.40515155e-01 1.81215071e-04], mse: 31451.742622426682\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "C:\\Users\\Mafpeace\\AppData\\Local\\Temp\\ipykernel_3964\\1525249851.py:69: RuntimeWarning: invalid value encountered in log\n", " q_k = c_1 * k * np.log((k_j + c_2) / (k + c_2))\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Model: Ghandehari_and_Ardekani_model, Loop 1, Attempt 1: Converged with parameters: [113.6685809 49.90817474 2.91922601], mse: 30644.84772746773\n", "Model: Ghandehari_and_Ardekani_model, Loop 1, Attempt 2: Converged with parameters: [113.6685809 49.90817474 2.91922601], mse: 30644.84772746773\n", "Model: Ghandehari_and_Ardekani_model, Loop 1, Attempt 3: Converged with parameters: [113.6685809 49.90817474 2.91922601], mse: 30644.84772746773\n", "Model: Ghandehari_and_Ardekani_model, Loop 1, Attempt 4: Converged with parameters: [113.6685809 49.90817474 2.91922601], mse: 30644.84772746773\n", "Model: Ghandehari_and_Ardekani_model, Loop 1, Attempt 5: Converged with parameters: [113.6685809 49.90817474 2.91922601], mse: 30644.84772746773\n", "Model: Ghandehari_and_Ardekani_model, Loop 1, Attempt 6: Converged with parameters: [113.6685809 49.90817474 2.91922601], mse: 30644.84772746773\n", "Model: Ghandehari_and_Ardekani_model, Loop 1, Attempt 7: Converged with parameters: [113.6685809 49.90817474 2.91922601], mse: 30644.84772746773\n", "Model: Ghandehari_and_Ardekani_model, Loop 1, Attempt 8: Converged with parameters: [113.6685809 49.90817474 2.91922601], mse: 30644.84772746773\n", "Model: Ghandehari_and_Ardekani_model, Loop 1, Attempt 9: Converged with parameters: [113.6685809 49.90817474 2.91922601], mse: 30644.84772746773\n", "Model: Ghandehari_and_Ardekani_model, Loop 1, Attempt 10: Converged with parameters: [113.6685809 49.90817474 2.91922601], mse: 30644.84772746773\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "C:\\Users\\Mafpeace\\AppData\\Local\\Temp\\ipykernel_3964\\1525249851.py:73: RuntimeWarning: divide by zero encountered in divide\n", " q_k = V_f * k * ((np.tanh(c_1 * k**(-1) - c_2) + np.tanh(c_2)) / (1 + np.tanh(c_2)))\n", "C:\\Users\\Mafpeace\\AppData\\Local\\Temp\\ipykernel_3964\\1525249851.py:73: RuntimeWarning: invalid value encountered in divide\n", " q_k = V_f * k * ((np.tanh(c_1 * k**(-1) - c_2) + np.tanh(c_2)) / (1 + np.tanh(c_2)))\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Model: Bando_model, Loop 1, Attempt 1: Converged with parameters: [103.78487003 38.88318908 0.99567125], mse: 15240.307094685995\n", "Model: Bando_model, Loop 1, Attempt 2: Converged with parameters: [103.78487003 38.88318908 0.99567125], mse: 15240.307094685995\n", "Model: Bando_model, Loop 1, Attempt 3: Converged with parameters: [103.78487003 38.88318908 0.99567125], mse: 15240.307094685995\n", "Model: Bando_model, Loop 1, Attempt 4: Converged with parameters: [103.78487003 38.88318908 0.99567125], mse: 15240.307094685995\n", "Model: Bando_model, Loop 1, Attempt 5: Converged with parameters: [103.78487003 38.88318908 0.99567125], mse: 15240.307094685995\n", "Model: Bando_model, Loop 1, Attempt 6: Converged with parameters: [103.78487003 38.88318908 0.99567125], mse: 15240.307094685995\n", "Model: Bando_model, Loop 1, Attempt 7: Converged with parameters: [103.78487003 38.88318908 0.99567125], mse: 15240.307094685995\n", "Model: Bando_model, Loop 1, Attempt 8: Converged with parameters: [103.78487003 38.88318908 0.99567125], mse: 15240.307094685995\n", "Model: Bando_model, Loop 1, Attempt 9: Converged with parameters: [103.78487003 38.88318908 0.99567125], mse: 15240.307094685995\n", "Model: Bando_model, Loop 1, Attempt 10: Converged with parameters: [103.78487003 38.88318908 0.99567125], mse: 15240.307094685995\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "C:\\Users\\Mafpeace\\AppData\\Local\\Temp\\ipykernel_3964\\1525249851.py:77: RuntimeWarning: overflow encountered in exp\n", " q_k = V_f * k * np.exp(-c_1 * k) * np.exp(-c_2 * k**2)\n", "C:\\Users\\Mafpeace\\AppData\\Local\\Temp\\ipykernel_3964\\1525249851.py:77: RuntimeWarning: invalid value encountered in multiply\n", " q_k = V_f * k * np.exp(-c_1 * k) * np.exp(-c_2 * k**2)\n", "C:\\Users\\Mafpeace\\AppData\\Local\\Temp\\ipykernel_3964\\1525249851.py:77: RuntimeWarning: overflow encountered in multiply\n", " q_k = V_f * k * np.exp(-c_1 * k) * np.exp(-c_2 * k**2)\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Model: Boardman_and_Lave_model, Loop 1, Attempt 1: Converged with parameters: [ 1.47563460e+02 2.94434916e-02 -2.32307000e-05], mse: 22142.956019420362\n", "Model: Boardman_and_Lave_model, Loop 1, Attempt 2: Converged with parameters: [ 1.47563460e+02 2.94434916e-02 -2.32307000e-05], mse: 22142.956019420362\n", "Model: Boardman_and_Lave_model, Loop 1, Attempt 3: Converged with parameters: [ 1.47563460e+02 2.94434916e-02 -2.32307000e-05], mse: 22142.956019420362\n", "Model: Boardman_and_Lave_model, Loop 1, Attempt 4: Converged with parameters: [ 1.47563460e+02 2.94434916e-02 -2.32307000e-05], mse: 22142.956019420362\n", "Model: Boardman_and_Lave_model, Loop 1, Attempt 5: Converged with parameters: [ 1.47563460e+02 2.94434916e-02 -2.32307000e-05], mse: 22142.956019420362\n", "Model: Boardman_and_Lave_model, Loop 1, Attempt 6: Converged with parameters: [ 1.47563460e+02 2.94434916e-02 -2.32307000e-05], mse: 22142.956019420362\n", "Model: Boardman_and_Lave_model, Loop 1, Attempt 7: Converged with parameters: [ 1.47563460e+02 2.94434916e-02 -2.32307000e-05], mse: 22142.956019420362\n", "Model: Boardman_and_Lave_model, Loop 1, Attempt 8: Converged with parameters: [ 1.47563460e+02 2.94434916e-02 -2.32307000e-05], mse: 22142.956019420362\n", "Model: Boardman_and_Lave_model, Loop 1, Attempt 9: Converged with parameters: [ 1.47563460e+02 2.94434916e-02 -2.32307000e-05], mse: 22142.956019420362\n", "Model: Boardman_and_Lave_model, Loop 1, Attempt 10: Converged with parameters: [ 1.47563460e+02 2.94434916e-02 -2.32307000e-05], mse: 22142.956019420362\n", "Model: Lee_model, Loop 1, Attempt 1: Failed to converge. Trying different initial parameters.\n", "Model: Lee_model, Loop 1, Attempt 2: Failed to converge. Trying different initial parameters.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "C:\\Users\\Mafpeace\\AppData\\Local\\Temp\\ipykernel_3964\\1525249851.py:81: RuntimeWarning: invalid value encountered in power\n", " q_k = V_f * k * (1 - ((k / k_j))) / (1 + (E * ((k / k_j))**theta))\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Model: Lee_model, Loop 1, Attempt 3: Failed to converge. Trying different initial parameters.\n", "Model: Lee_model, Loop 1, Attempt 4: Failed to converge. Trying different initial parameters.\n", "Model: Lee_model, Loop 1, Attempt 5: Failed to converge. Trying different initial parameters.\n", "Model: Lee_model, Loop 1, Attempt 6: Failed to converge. Trying different initial parameters.\n", "Model: Lee_model, Loop 1, Attempt 7: Failed to converge. Trying different initial parameters.\n", "Model: Lee_model, Loop 1, Attempt 8: Failed to converge. Trying different initial parameters.\n", "Model: Lee_model, Loop 1, Attempt 9: Failed to converge. Trying different initial parameters.\n", "Model: Lee_model, Loop 1, Attempt 10: Failed to converge. Trying different initial parameters.\n", "Model: Lee_model, Loop 2, Attempt 1: Failed to converge. Trying different initial parameters.\n", "Model: Lee_model, Loop 2, Attempt 2: Failed to converge. Trying different initial parameters.\n", "Model: Lee_model, Loop 2, Attempt 3: Failed to converge. Trying different initial parameters.\n", "Model: Lee_model, Loop 2, Attempt 4: Failed to converge. Trying different initial parameters.\n", "Model: Lee_model, Loop 2, Attempt 5: Failed to converge. Trying different initial parameters.\n", "Model: Lee_model, Loop 2, Attempt 6: Failed to converge. Trying different initial parameters.\n", "Model: Lee_model, Loop 2, Attempt 7: Failed to converge. Trying different initial parameters.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "C:\\Users\\Mafpeace\\AppData\\Local\\Temp\\ipykernel_3964\\1525249851.py:81: RuntimeWarning: overflow encountered in power\n", " q_k = V_f * k * (1 - ((k / k_j))) / (1 + (E * ((k / k_j))**theta))\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Model: Lee_model, Loop 2, Attempt 8: Converged with parameters: [ 1.17331429e+02 7.56990656e+01 -1.61409724e+06 2.71918350e+06], mse: 54727.55928081735\n", "Model: Lee_model, Loop 2, Attempt 9: Converged with parameters: [ 1.17331429e+02 7.56990656e+01 -1.61409724e+06 2.71918350e+06], mse: 54727.55928081735\n", "Model: Lee_model, Loop 2, Attempt 10: Converged with parameters: [ 1.17331429e+02 7.56990656e+01 -1.61409724e+06 2.71918350e+06], mse: 54727.55928081735\n", "Model: Kerner_and_Konhauser_model, Loop 1, Attempt 1: Converged with parameters: [-4.77901125e+02 1.10275430e+02 1.18427688e+00 -5.31570536e-02\n", " 2.70136320e+00], mse: 130537.8981752066\n", "Model: Kerner_and_Konhauser_model, Loop 1, Attempt 2: Converged with parameters: [-4.77901125e+02 1.10275430e+02 1.18427688e+00 -5.31570536e-02\n", " 2.70136320e+00], mse: 130537.8981752066\n", "Model: Kerner_and_Konhauser_model, Loop 1, Attempt 3: Converged with parameters: [-4.77901125e+02 1.10275430e+02 1.18427688e+00 -5.31570536e-02\n", " 2.70136320e+00], mse: 130537.8981752066\n", "Model: Kerner_and_Konhauser_model, Loop 1, Attempt 4: Converged with parameters: [-4.77901125e+02 1.10275430e+02 1.18427688e+00 -5.31570536e-02\n", " 2.70136320e+00], mse: 130537.8981752066\n", "Model: Kerner_and_Konhauser_model, Loop 1, Attempt 5: Converged with parameters: [-4.77901125e+02 1.10275430e+02 1.18427688e+00 -5.31570536e-02\n", " 2.70136320e+00], mse: 130537.8981752066\n", "Model: Kerner_and_Konhauser_model, Loop 1, Attempt 6: Converged with parameters: [-4.77901125e+02 1.10275430e+02 1.18427688e+00 -5.31570536e-02\n", " 2.70136320e+00], mse: 130537.8981752066\n", "Model: Kerner_and_Konhauser_model, Loop 1, Attempt 7: Converged with parameters: [-4.77901125e+02 1.10275430e+02 1.18427688e+00 -5.31570536e-02\n", " 2.70136320e+00], mse: 130537.8981752066\n", "Model: Kerner_and_Konhauser_model, Loop 1, Attempt 8: Converged with parameters: [-4.77901125e+02 1.10275430e+02 1.18427688e+00 -5.31570536e-02\n", " 2.70136320e+00], mse: 130537.8981752066\n", "Model: Kerner_and_Konhauser_model, Loop 1, Attempt 9: Converged with parameters: [-4.77901125e+02 1.10275430e+02 1.18427688e+00 -5.31570536e-02\n", " 2.70136320e+00], mse: 130537.8981752066\n", "Model: Kerner_and_Konhauser_model, Loop 1, Attempt 10: Converged with parameters: [-4.77901125e+02 1.10275430e+02 1.18427688e+00 -5.31570536e-02\n", " 2.70136320e+00], mse: 130537.8981752066\n", "Model: Del_Castillo_and_Benites_1_model, Loop 1, Attempt 1: Converged with parameters: [116.06440163 138.0488333 24.85073976], mse: 21052.09676029347\n", "Model: Del_Castillo_and_Benites_1_model, Loop 1, Attempt 2: Converged with parameters: [116.06440163 138.0488333 24.85073976], mse: 21052.09676029347\n", "Model: Del_Castillo_and_Benites_1_model, Loop 1, Attempt 3: Converged with parameters: [116.06440163 138.0488333 24.85073976], mse: 21052.09676029347\n", "Model: Del_Castillo_and_Benites_1_model, Loop 1, Attempt 4: Converged with parameters: [116.06440163 138.0488333 24.85073976], mse: 21052.09676029347\n", "Model: Del_Castillo_and_Benites_1_model, Loop 1, Attempt 5: Converged with parameters: [116.06440163 138.0488333 24.85073976], mse: 21052.09676029347\n", "Model: Del_Castillo_and_Benites_1_model, Loop 1, Attempt 6: Converged with parameters: [116.06440163 138.0488333 24.85073976], mse: 21052.09676029347\n", "Model: Del_Castillo_and_Benites_1_model, Loop 1, Attempt 7: Converged with parameters: [116.06440163 138.0488333 24.85073976], mse: 21052.09676029347\n", "Model: Del_Castillo_and_Benites_1_model, Loop 1, Attempt 8: Converged with parameters: [116.06440163 138.0488333 24.85073976], mse: 21052.09676029347\n", "Model: Del_Castillo_and_Benites_1_model, Loop 1, Attempt 9: Converged with parameters: [116.06440163 138.0488333 24.85073976], mse: 21052.09676029347\n", "Model: Del_Castillo_and_Benites_1_model, Loop 1, Attempt 10: Converged with parameters: [116.06440163 138.0488333 24.85073976], mse: 21052.09676029347\n", "Model: Del_Castillo_and_Benites_2_model, Loop 1, Attempt 1: Converged with parameters: [-64.30154122 158.96074897 -16.95631726], mse: 18403.846403043095\n", "Model: Del_Castillo_and_Benites_2_model, Loop 1, Attempt 2: Converged with parameters: [-64.30154122 158.96074897 -16.95631726], mse: 18403.846403043095\n", "Model: Del_Castillo_and_Benites_2_model, Loop 1, Attempt 3: Converged with parameters: [-64.30154122 158.96074897 -16.95631726], mse: 18403.846403043095\n", "Model: Del_Castillo_and_Benites_2_model, Loop 1, Attempt 4: Converged with parameters: [-64.30154122 158.96074897 -16.95631726], mse: 18403.846403043095\n", "Model: Del_Castillo_and_Benites_2_model, Loop 1, Attempt 5: Converged with parameters: [-64.30154122 158.96074897 -16.95631726], mse: 18403.846403043095\n", "Model: Del_Castillo_and_Benites_2_model, Loop 1, Attempt 6: Converged with parameters: [-64.30154122 158.96074897 -16.95631726], mse: 18403.846403043095\n", "Model: Del_Castillo_and_Benites_2_model, Loop 1, Attempt 7: Converged with parameters: [-64.30154122 158.96074897 -16.95631726], mse: 18403.846403043095\n", "Model: Del_Castillo_and_Benites_2_model, Loop 1, Attempt 8: Converged with parameters: [-64.30154122 158.96074897 -16.95631726], mse: 18403.846403043095\n", "Model: Del_Castillo_and_Benites_2_model, Loop 1, Attempt 9: Converged with parameters: [-64.30154122 158.96074897 -16.95631726], mse: 18403.846403043095\n", "Model: Del_Castillo_and_Benites_2_model, Loop 1, Attempt 10: Converged with parameters: [-64.30154122 158.96074897 -16.95631726], mse: 18403.846403043095\n", "Model: Newell_and_Franklin_model, Loop 1, Attempt 1: Converged with parameters: [-9.34413008e+07 4.53314048e+07 1.29094329e+03], mse: 130545.42903494502\n", "Model: Newell_and_Franklin_model, Loop 1, Attempt 2: Converged with parameters: [-9.34413008e+07 4.53314048e+07 1.29094329e+03], mse: 130545.42903494502\n", "Model: Newell_and_Franklin_model, Loop 1, Attempt 3: Converged with parameters: [-9.34413008e+07 4.53314048e+07 1.29094329e+03], mse: 130545.42903494502\n", "Model: Newell_and_Franklin_model, Loop 1, Attempt 4: Converged with parameters: [-9.34413008e+07 4.53314048e+07 1.29094329e+03], mse: 130545.42903494502\n", "Model: Newell_and_Franklin_model, Loop 1, Attempt 5: Converged with parameters: [-9.34413008e+07 4.53314048e+07 1.29094329e+03], mse: 130545.42903494502\n", "Model: Newell_and_Franklin_model, Loop 1, Attempt 6: Converged with parameters: [-9.34413008e+07 4.53314048e+07 1.29094329e+03], mse: 130545.42903494502\n", "Model: Newell_and_Franklin_model, Loop 1, Attempt 7: Converged with parameters: [-9.34413008e+07 4.53314048e+07 1.29094329e+03], mse: 130545.42903494502\n", "Model: Newell_and_Franklin_model, Loop 1, Attempt 8: Converged with parameters: [-9.34413008e+07 4.53314048e+07 1.29094329e+03], mse: 130545.42903494502\n", "Model: Newell_and_Franklin_model, Loop 1, Attempt 9: Converged with parameters: [-9.34413008e+07 4.53314048e+07 1.29094329e+03], mse: 130545.42903494502\n", "Model: Newell_and_Franklin_model, Loop 1, Attempt 10: Converged with parameters: [-9.34413008e+07 4.53314048e+07 1.29094329e+03], mse: 130545.42903494502\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "C:\\Users\\Mafpeace\\AppData\\Local\\Temp\\ipykernel_3964\\1525249851.py:101: RuntimeWarning: overflow encountered in exp\n", " q_k = V_f * k * np.exp((-1 / a) * (k / k_m)**a)\n", "C:\\Users\\Mafpeace\\AppData\\Local\\Temp\\ipykernel_3964\\1525249851.py:101: RuntimeWarning: overflow encountered in multiply\n", " q_k = V_f * k * np.exp((-1 / a) * (k / k_m)**a)\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Model: Papageorgiou_model, Loop 1, Attempt 1: Converged with parameters: [138.95094923 35.56321535 1.0656337 ], mse: 22097.939031446112\n", "Model: Papageorgiou_model, Loop 1, Attempt 2: Converged with parameters: [138.95094923 35.56321535 1.0656337 ], mse: 22097.939031446112\n", "Model: Papageorgiou_model, Loop 1, Attempt 3: Converged with parameters: [138.95094923 35.56321535 1.0656337 ], mse: 22097.939031446112\n", "Model: Papageorgiou_model, Loop 1, Attempt 4: Converged with parameters: [138.95094923 35.56321535 1.0656337 ], mse: 22097.939031446112\n", "Model: Papageorgiou_model, Loop 1, Attempt 5: Converged with parameters: [138.95094923 35.56321535 1.0656337 ], mse: 22097.939031446112\n", "Model: Papageorgiou_model, Loop 1, Attempt 6: Converged with parameters: [138.95094923 35.56321535 1.0656337 ], mse: 22097.939031446112\n", "Model: Papageorgiou_model, Loop 1, Attempt 7: Converged with parameters: [138.95094923 35.56321535 1.0656337 ], mse: 22097.939031446112\n", "Model: Papageorgiou_model, Loop 1, Attempt 8: Converged with parameters: [138.95094923 35.56321535 1.0656337 ], mse: 22097.939031446112\n", "Model: Papageorgiou_model, Loop 1, Attempt 9: Converged with parameters: [138.95094923 35.56321535 1.0656337 ], mse: 22097.939031446112\n", "Model: Papageorgiou_model, Loop 1, Attempt 10: Converged with parameters: [138.95094923 35.56321535 1.0656337 ], mse: 22097.939031446112\n", "Model: Drake_model, Loop 1, Attempt 1: Converged with parameters: [105.77365199 33.82021723], mse: 37640.491244871715\n", "Model: Drake_model, Loop 1, Attempt 2: Converged with parameters: [105.77365199 33.82021723], mse: 37640.491244871715\n", "Model: Drake_model, Loop 1, Attempt 3: Converged with parameters: [105.77365199 33.82021723], mse: 37640.491244871715\n", "Model: Drake_model, Loop 1, Attempt 4: Converged with parameters: [105.77365199 33.82021723], mse: 37640.491244871715\n", "Model: Drake_model, Loop 1, Attempt 5: Converged with parameters: [105.77365199 33.82021723], mse: 37640.491244871715\n", "Model: Drake_model, Loop 1, Attempt 6: Converged with parameters: [105.77365199 33.82021723], mse: 37640.491244871715\n", "Model: Drake_model, Loop 1, Attempt 7: Converged with parameters: [105.77365199 33.82021723], mse: 37640.491244871715\n", "Model: Drake_model, Loop 1, Attempt 8: Converged with parameters: [105.77365199 33.82021723], mse: 37640.491244871715\n", "Model: Drake_model, Loop 1, Attempt 9: Converged with parameters: [105.77365199 33.82021723], mse: 37640.491244871715\n", "Model: Drake_model, Loop 1, Attempt 10: Converged with parameters: [105.77365199 33.82021723], mse: 37640.491244871715\n", "Model: Underwood_model, Loop 1, Attempt 1: Converged with parameters: [5.47857553e+01 4.45117563e+09], mse: 549152.2196111254\n", "Model: Underwood_model, Loop 1, Attempt 2: Converged with parameters: [5.47857553e+01 4.45117563e+09], mse: 549152.2196111254\n", "Model: Underwood_model, Loop 1, Attempt 3: Converged with parameters: [5.47857553e+01 4.45117563e+09], mse: 549152.2196111254\n", "Model: Underwood_model, Loop 1, Attempt 4: Converged with parameters: [5.47857553e+01 4.45117563e+09], mse: 549152.2196111254\n", "Model: Underwood_model, Loop 1, Attempt 5: Converged with parameters: [5.47857553e+01 4.45117563e+09], mse: 549152.2196111254\n", "Model: Underwood_model, Loop 1, Attempt 6: Converged with parameters: [5.47857553e+01 4.45117563e+09], mse: 549152.2196111254\n", "Model: Underwood_model, Loop 1, Attempt 7: Converged with parameters: [5.47857553e+01 4.45117563e+09], mse: 549152.2196111254\n", "Model: Underwood_model, Loop 1, Attempt 8: Converged with parameters: [5.47857553e+01 4.45117563e+09], mse: 549152.2196111254\n", "Model: Underwood_model, Loop 1, Attempt 9: Converged with parameters: [5.47857553e+01 4.45117563e+09], mse: 549152.2196111254\n", "Model: Underwood_model, Loop 1, Attempt 10: Converged with parameters: [5.47857553e+01 4.45117563e+09], mse: 549152.2196111254\n", "Model: Greenberg_model, Loop 1, Attempt 1: Converged with parameters: [ 45.21026984 117.81252622], mse: 31455.904392407687\n", "Model: Greenberg_model, Loop 1, Attempt 2: Converged with parameters: [ 45.21026984 117.81252622], mse: 31455.904392407687\n", "Model: Greenberg_model, Loop 1, Attempt 3: Converged with parameters: [ 45.21026984 117.81252622], mse: 31455.904392407687\n", "Model: Greenberg_model, Loop 1, Attempt 4: Converged with parameters: [ 45.21026984 117.81252622], mse: 31455.904392407687\n", "Model: Greenberg_model, Loop 1, Attempt 5: Converged with parameters: [ 45.21026984 117.81252622], mse: 31455.904392407687\n", "Model: Greenberg_model, Loop 1, Attempt 6: Converged with parameters: [ 45.21026984 117.81252622], mse: 31455.904392407687\n", "Model: Greenberg_model, Loop 1, Attempt 7: Converged with parameters: [ 45.21026984 117.81252622], mse: 31455.904392407687\n", "Model: Greenberg_model, Loop 1, Attempt 8: Converged with parameters: [ 45.21026984 117.81252622], mse: 31455.904392407687\n", "Model: Greenberg_model, Loop 1, Attempt 9: Converged with parameters: [ 45.21026984 117.81252622], mse: 31455.904392407687\n", "Model: Greenberg_model, Loop 1, Attempt 10: Converged with parameters: [ 45.21026984 117.81252622], mse: 31455.904392407687\n", "Model: May_and_Keller_model, Loop 1, Attempt 1: Converged with parameters: [1.38953777e+02 7.78735753e+05 3.95801300e+04 1.06559100e+00], mse: 22098.099055875377\n", "Model: May_and_Keller_model, Loop 1, Attempt 2: Converged with parameters: [1.38953777e+02 7.78735753e+05 3.95801300e+04 1.06559100e+00], mse: 22098.099055875377\n", "Model: May_and_Keller_model, Loop 1, Attempt 3: Converged with parameters: [1.38953777e+02 7.78735753e+05 3.95801300e+04 1.06559100e+00], mse: 22098.099055875377\n", "Model: May_and_Keller_model, Loop 1, Attempt 4: Converged with parameters: [1.38953777e+02 7.78735753e+05 3.95801300e+04 1.06559100e+00], mse: 22098.099055875377\n", "Model: May_and_Keller_model, Loop 1, Attempt 5: Converged with parameters: [1.38953777e+02 7.78735753e+05 3.95801300e+04 1.06559100e+00], mse: 22098.099055875377\n", "Model: May_and_Keller_model, Loop 1, Attempt 6: Converged with parameters: [1.38953777e+02 7.78735753e+05 3.95801300e+04 1.06559100e+00], mse: 22098.099055875377\n", "Model: May_and_Keller_model, Loop 1, Attempt 7: Converged with parameters: [1.38953777e+02 7.78735753e+05 3.95801300e+04 1.06559100e+00], mse: 22098.099055875377\n", "Model: May_and_Keller_model, Loop 1, Attempt 8: Converged with parameters: [1.38953777e+02 7.78735753e+05 3.95801300e+04 1.06559100e+00], mse: 22098.099055875377\n", "Model: May_and_Keller_model, Loop 1, Attempt 9: Converged with parameters: [1.38953777e+02 7.78735753e+05 3.95801300e+04 1.06559100e+00], mse: 22098.099055875377\n", "Model: May_and_Keller_model, Loop 1, Attempt 10: Converged with parameters: [1.38953777e+02 7.78735753e+05 3.95801300e+04 1.06559100e+00], mse: 22098.099055875377\n", "Model: Pipes_model, Loop 1, Attempt 1: Converged with parameters: [1.44873306e+02 1.46193882e+06 4.06814066e+04], mse: 22219.804233395025\n", "Model: Pipes_model, Loop 1, Attempt 2: Converged with parameters: [1.44873306e+02 1.46193882e+06 4.06814066e+04], mse: 22219.804233395025\n", "Model: Pipes_model, Loop 1, Attempt 3: Converged with parameters: [1.44873306e+02 1.46193882e+06 4.06814066e+04], mse: 22219.804233395025\n", "Model: Pipes_model, Loop 1, Attempt 4: Converged with parameters: [1.44873306e+02 1.46193882e+06 4.06814066e+04], mse: 22219.804233395025\n", "Model: Pipes_model, Loop 1, Attempt 5: Converged with parameters: [1.44873306e+02 1.46193882e+06 4.06814066e+04], mse: 22219.804233395025\n", "Model: Pipes_model, Loop 1, Attempt 6: Converged with parameters: [1.44873306e+02 1.46193882e+06 4.06814066e+04], mse: 22219.804233395025\n", "Model: Pipes_model, Loop 1, Attempt 7: Converged with parameters: [1.44873306e+02 1.46193882e+06 4.06814066e+04], mse: 22219.804233395025\n", "Model: Pipes_model, Loop 1, Attempt 8: Converged with parameters: [1.44873306e+02 1.46193882e+06 4.06814066e+04], mse: 22219.804233395025\n", "Model: Pipes_model, Loop 1, Attempt 9: Converged with parameters: [1.44873306e+02 1.46193882e+06 4.06814066e+04], mse: 22219.804233395025\n", "Model: Pipes_model, Loop 1, Attempt 10: Converged with parameters: [1.44873306e+02 1.46193882e+06 4.06814066e+04], mse: 22219.804233395025\n", "Model: Drew_model, Loop 1, Attempt 1: Converged with parameters: [5.27225542e+03 1.17275034e+02 8.67159511e-03], mse: 31450.96985814792\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Model: Drew_model, Loop 1, Attempt 2: Converged with parameters: [5.27225542e+03 1.17275034e+02 8.67159511e-03], mse: 31450.96985814792\n", "Model: Drew_model, Loop 1, Attempt 3: Converged with parameters: [5.27225542e+03 1.17275034e+02 8.67159511e-03], mse: 31450.96985814792\n", "Model: Drew_model, Loop 1, Attempt 4: Converged with parameters: [5.27225542e+03 1.17275034e+02 8.67159511e-03], mse: 31450.96985814792\n", "Model: Drew_model, Loop 1, Attempt 5: Converged with parameters: [5.27225542e+03 1.17275034e+02 8.67159511e-03], mse: 31450.96985814792\n", "Model: Drew_model, Loop 1, Attempt 6: Converged with parameters: [5.27225542e+03 1.17275034e+02 8.67159511e-03], mse: 31450.96985814792\n", "Model: Drew_model, Loop 1, Attempt 7: Converged with parameters: [5.27225542e+03 1.17275034e+02 8.67159511e-03], mse: 31450.96985814792\n", "Model: Drew_model, Loop 1, Attempt 8: Converged with parameters: [5.27225542e+03 1.17275034e+02 8.67159511e-03], mse: 31450.96985814792\n", "Model: Drew_model, Loop 1, Attempt 9: Converged with parameters: [5.27225542e+03 1.17275034e+02 8.67159511e-03], mse: 31450.96985814792\n", "Model: Drew_model, Loop 1, Attempt 10: Converged with parameters: [5.27225542e+03 1.17275034e+02 8.67159511e-03], mse: 31450.96985814792\n", "Model: Greenshields_model, Loop 1, Attempt 1: Converged with parameters: [104.57766347 96.66755848], mse: 85520.48063998265\n", "Model: Greenshields_model, Loop 1, Attempt 2: Converged with parameters: [104.57766347 96.66755848], mse: 85520.48063998265\n", "Model: Greenshields_model, Loop 1, Attempt 3: Converged with parameters: [104.57766347 96.66755848], mse: 85520.48063998265\n", "Model: Greenshields_model, Loop 1, Attempt 4: Converged with parameters: [104.57766347 96.66755848], mse: 85520.48063998265\n", "Model: Greenshields_model, Loop 1, Attempt 5: Converged with parameters: [104.57766347 96.66755848], mse: 85520.48063998265\n", "Model: Greenshields_model, Loop 1, Attempt 6: Converged with parameters: [104.57766347 96.66755848], mse: 85520.48063998265\n", "Model: Greenshields_model, Loop 1, Attempt 7: Converged with parameters: [104.57766347 96.66755848], mse: 85520.48063998265\n", "Model: Greenshields_model, Loop 1, Attempt 8: Converged with parameters: [104.57766347 96.66755848], mse: 85520.48063998265\n", "Model: Greenshields_model, Loop 1, Attempt 9: Converged with parameters: [104.57766347 96.66755848], mse: 85520.48063998265\n", "Model: Greenshields_model, Loop 1, Attempt 10: Converged with parameters: [104.57766347 96.66755848], mse: 85520.48063998265\n", "RMSE for Wang Five Parameter Logistic Model: 137.9252944737959\n", "RMSE for Cheng Model: 131.6214132996444\n", "RMSE for Gaddam Model: 148.6537554859595\n", "RMSE for Modified Lee Model: 133.2373148926897\n", "RMSE for van Aerde Model: 124.81382270072582\n", "RMSE for Kucharski_and_Drabicki Model: 123.36424495401286\n", "RMSE for MacNicholas Model: 177.34639162505303\n", "RMSE for Ghandehari and Ardekani Model: 175.056698607816\n", "RMSE for Bando Model: 123.45163868773065\n", "RMSE for Boardman and Lave Model: 148.80509406408223\n", "RMSE for Lee Model: 233.93922133925588\n", "RMSE for Kerner and Konhauser Model: 361.3002880917847\n", "RMSE for Del Castillo and Benites 1 Model: 145.0934070186977\n", "RMSE for Del Castillo and Benites 2 Model: 135.6607769513469\n", "RMSE for Newell and Franklin Model: 361.3107098259682\n", "RMSE for Papageorgiou Model: 148.65375552419155\n", "RMSE for Drake Model: 194.01157502806814\n", "RMSE for Underwood Model: 741.0480548595518\n", "RMSE for Greenberg Model: 177.35812468676951\n", "RMSE for May_and_Keller Model: 148.65429376871487\n", "RMSE for Pipes Model: 149.06308809827812\n", "RMSE for Drew Model: 177.34421292545161\n", "RMSE for Greenshields Model: 292.438849402713\n" ] }, { "data": { "image/png": "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z+HDDz/EGWecgQ8//BDbtm3DJZdcgj/+8Y+N+1VVVeGiiy7C6NGj8be//Q3ffvstxowZgzZt2mD69OkAgClTpqCiogKvv/46unXrhjvvvBOrVq0KiPX//e9/j7Vr12LevHno0aMHXn/9dVxwwQX48ssv0atXL0f30TZCtKipqREAUlNTk+ihENK8KCsTKSgQURJZtYIC9blBfb1IRYVIaal6ra8P7KO+PrQP/+bxiBQWhh7nlHidzziPx2N9roKCpvOUlZnv6/Go5j+nhBBCSDNiz549snr1atmzZ4+IiCyX5YIE/lsuy7XGPWrUKBk0aFDj+48//lhycnJk2LBhIiIybdo0admypWzevLlxn3/+85/i9Xrlp59+avzs66+/FgDyySefNB7n9Xpl3bp1jfu88847kpGRIRs2bBARkR49esj9998fMJ6TTjpJxo4dKyIiN910k5xzzjnS0NAQMu6lS5dKZmam7N27N+Dzww47TJ5//nkRETnttNPkhhtuCNh+yimnyHHHHWc5H5WVlQJAPvvsMykuLpbf//73IiLy+9//Xm6++Wb57LPPBIBUVlaKiMidd94pRx55ZMAYn376aenQoYP4fD7ZuXOntGrVSubNm9e4fevWrdK2bVuZOHGiiIj88MMP4vF4pKqqKmAsAwYMkDvuuENERF5++WXJysqyHHfw8+ePrg6lKz4hJHkxrN7hMr7ruLsvXx7fWPR4nS9cgj2DPXuARYuU18PEiUy0RwghhKQZf//739GhQwe0adMGp512Gs4880w89dRTjdsPPvhg5OXlNb7/5ptvUFhYiMLCwsbPevfujU6dOuGbb75p/Oyggw5CQUFB4/vTTjsNDQ0N+O6771BbW4uff/4Zp59+esBYTj/99MY+Ro8ejc8//xxHHnkkJkyYgH/+85+N+61atQq7du1CTk4OOnTo0NgqKyvx448/No7ztNNOC+g/+H04rr32WixYsAAbN27EggULcM0114TsY5zD4/c96vTTT8euXbuwfv16/Pjjj9i3b1/AebOzs3HkkUc2vv/vf/8LEcERRxwRcC0ffPBB47XEA7riE0KSk0hC1OMBrr8e2LYtsru701h0p8TzfEaCveuvB7ZuDd2+bZuai+nT9RcbzNz+CSGEEJKU9O/fH88++yxatmyJHj16oGXLlgHb27dvH/BeRAKEbKTPDYxt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lVoKvb59tfSYfftqryXbhSAIgiAIQigIvbBv0qQJOnXqFCslJSUANGv9hAkTcPPNN2Pw4MHYd9998dRTT2HLli2YOnUqAGDDhg3497//jQceeAD9+vXDgQceiClTpmDRokWoqqpK589KL9EocPXVcW8kprmbfeJsHPwR0OkXF/vOS2pSYUkBJuQGuqW6sLDxZ0VFjbfzy6IdVuHrR/oyL6kBBUEQBEEQhJQQemH/7bffokuXLthll11w1lln4YcffgAALFmyBKtWrUL//v1j2zZv3hxHH3003n33XQDAggULsH379oRtunTpgn333Te2jRk1NTXYuHFjQska5s/XBuUxfEhzF4kAr74KbN0azhRgQm7x66/G78ULUb8s2tksfFVTCKbbO0EQBEEQBCHHCbWwP+yww/Cf//wHc+fOxWOPPYZVq1bhiCOOwLp167Bq1SoAQMeOHRO+07Fjx9hnq1atQrNmzdChQwfTbcy45557UFBQECtlZWU+/rI0s2xZ0hsnxf7nOs3dddcBxx2nuTl7tRAKglucClGvFu1sF76qKQTn+5k+QxAEQRAEQXBKqPPYn3higyW5V69eOPzww7Hbbrvhqaeewv/9n5aaLZK0RpZko/eSUdnmxhtvxIgRI2KvN27cmD3i/q234l50AHBY7NUrJ72CnX4BDvlIcV/5+cCIEcDYsX7WUBDc4USI+pGD3q/jRaPaNitXatH4e/dOz6RYcj0SPHssyNTUgIIgCIIgCFlCqIV9Mq1bt0avXr3w7bffYtCgQQA0q3znuLRUq1evjlnxO3XqhNraWqxfvz7Bar969WocccQRlsdq3rw5mjdv7v+PCAOxoHmAUZq7E2cDeQYGyEZcdhnw0EOalV4QwoCqwPRLiPpxvMpKzeofP0FQWqoF+EvlMhajeuyIaWJLpqYGFARBEARByBJC7YqfTE1NDb788kt07twZu+yyCzp16oTXXnst9nltbS3efPPNmGg/+OCD0bRp04RtVq5cicWLF9sK+6wlGgXWro17w0OauzPOEFEvhAtVgemXEPV6vLCszzerR0JfYUA2pAbMdcKWzUEQBEEQBFeEWthfd911ePPNN7FkyRJ88MEHGDJkCDZu3IgLLrgAkUgE5eXluPvuu/Hcc89h8eLFuPDCC9GqVSsMHToUAFBQUICLL74Y1157LV5//XUsXLgQ5557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6WK5XU4I+2bNmuHggw/Ga6+9htNOOy32/muvvYaBAwcafqd58+Zo3rx5wnvt27cPspqGtGvXTjqLHEOueW4h1zv3kGueW8j1zi3keucecs1zi3RdbytLvU5OCHsAGDFiBM477zwccsghOPzwwzF58mT89NNPuPzyy9NdNUEQBEEQBEEQBEFwTc4I+zPPPBPr1q3D7bffjpUrV2LffffFK6+8gm7duqW7aoIgCIIgCIIgCILgmpwR9gBwxRVX4Iorrkh3NZRo3rw5Ro8e3Wg5gJC9yDXPLeR65x5yzXMLud65hVzv3EOueW6RCdc7Qru4+YIgCIIgCIIgCIIghJa8dFdAEARBEARBEARBEAT3iLAXBEEQBEEQBEEQhAxGhL0gCIIgCIIgCIIgZDAi7AVBEARBEARBEAQhgxFhH1ImTZqEXXbZBS1atMDBBx+M+fPnp7tKgg/cc889+MMf/oC2bdtip512wqBBg/D1118nbEMSt912G7p06YKWLVuiT58++Pzzz9NUY8FP7rnnHkQiEZSXl8fek+udfaxYsQLnnnsuioqK0KpVKxxwwAFYsGBB7HO55tlDXV0dRo0ahV122QUtW7bErrvuittvvx319fWxbeR6ZzZvvfUWTjnlFHTp0gWRSATPP/98wucq17empgZXXXUViouL0bp1a5x66qlYvnx5Cn+FoIrV9d6+fTuuv/569OrVC61bt0aXLl1w/vnn4+eff07Yh1zvzMLuHo/nL3/5CyKRCCZMmJDwfliuuQj7EPLMM8+gvLwcN998MxYuXIjevXvjxBNPxE8//ZTuqgkeefPNN3HllVfi/fffx2uvvYa6ujr0798fmzdvjm0zduxYjBs3Dg8//DD+97//oVOnTjjuuOOwadOmNNZc8Mr//vc/TJ48Gfvtt1/C+3K9s4v169fjyCOPRNOmTTF79mx88cUXeOCBB9C+ffvYNnLNs4f77rsPjz76KB5++GF8+eWXGDt2LP7+97/joYceim0j1zuz2bx5M/bff388/PDDhp+rXN/y8nI899xzmD59Ot5++238/vvvGDBgAKLRaKp+hqCI1fXesmULPv74Y9xyyy34+OOPUVlZiW+++QannnpqwnZyvTMLu3tc5/nnn8cHH3yALl26NPosNNecQug49NBDefnllye8t9dee/GGG25IU42EoFi9ejUB8M033yRJ1tfXs1OnTrz33ntj22zbto0FBQV89NFH01VNwSObNm1ijx49+Nprr/Hoo4/m8OHDScr1zkauv/56HnXUUaafyzXPLk4++WT++c9/Tnhv8ODBPPfcc0nK9c42APC5556LvVa5vr/99hubNm3K6dOnx7ZZsWIF8/LyOGfOnJTVXXBO8vU24sMPPyQA/vjjjyTlemc6Ztd8+fLl7Nq1KxcvXsxu3bpx/Pjxsc/CdM3FYh8yamtrsWDBAvTv3z/h/f79++Pdd99NU62EoNiwYQMAoLCwEACwZMkSrFq1KuH6N2/eHEcffbRc/wzmyiuvxMknn4x+/folvC/XO/t44YUXcMghh+BPf/oTdtppJxx44IF47LHHYp/LNc8ujjrqKLz++uv45ptvAACffvop3n77bZx00kkA5HpnOyrXd8GCBdi+fXvCNl26dMG+++4rbSAL2LBhAyKRSMwrS6539lFfX4/zzjsPI0eORM+ePRt9HqZr3iSlRxNsWbt2LaLRKDp27JjwfseOHbFq1ao01UoIApIYMWIEjjrqKOy7774AELvGRtf/xx9/THkdBe9Mnz4dCxYswEcffdToM7ne2ccPP/yARx55BCNGjMBNN92EDz/8EFdffTWaN2+O888/X655lnH99ddjw4YN2GuvvZCfn49oNIq77roLZ599NgC5x7Mdleu7atUqNGvWDB06dGi0jYzrMptt27bhhhtuwNChQ9GuXTsAcr2zkfvuuw9NmjTB1Vdfbfh5mK65CPuQEolEEl6TbPSekNkMGzYMn332Gd5+++1Gn8n1zw6WLVuG4cOH49VXX0WLFi1Mt5PrnT3U19fjkEMOwd133w0AOPDAA/H555/jkUcewfnnnx/bTq55dvDMM89gypQpmDp1Knr27IlPPvkE5eXl6NKlCy644ILYdnK9sxs311faQGazfft2nHXWWaivr8ekSZNst5frnZksWLAAEydOxMcff+z4+qXjmosrfsgoLi5Gfn5+oxme1atXN5oRFjKXq666Ci+88AKqq6tRWloae79Tp04AINc/S1iwYAFWr16Ngw8+GE2aNEGTJk3w5ptv4sEHH0STJk1i11Sud/bQuXNn7LPPPgnv7b333rHgp3KPZxcjR47EDTfcgLPOOgu9evXCeeedh2uuuQb33HMPALne2Y7K9e3UqRNqa2uxfv16022EzGL79u0444wzsGTJErz22msxaz0g1zvbmD9/PlavXo2dd945No778ccfce2116J79+4AwnXNRdiHjGbNmuHggw/Ga6+9lvD+a6+9hiOOOCJNtRL8giSGDRuGyspKvPHGG9hll10SPt9ll13QqVOnhOtfW1uLN998U65/BnLsscdi0aJF+OSTT2LlkEMOwTnnnINPPvkEu+66q1zvLOPII49slMLym2++Qbdu3QDIPZ5tbNmyBXl5iUOp/Pz8WLo7ud7Zjcr1Pfjgg9G0adOEbVauXInFixdLG8hAdFH/7bffoqqqCkVFRQmfy/XOLs477zx89tlnCeO4Ll26YOTIkZg7dy6AcF1zccUPISNGjMB5552HQw45BIcffjgmT56Mn376CZdffnm6qyZ45Morr8TUqVMxa9YstG3bNjbLX1BQgJYtW8ZynN99993o0aMHevTogbvvvhutWrXC0KFD01x7wSlt27aNxU/Qad26NYqKimLvy/XOLq655hocccQRuPvuu3HGGWfgww8/xOTJkzF58mQAkHs8yzjllFNw1113Yeedd0bPnj2xcOFCjBs3Dn/+858ByPXOBn7//Xd89913sddLlizBJ598gsLCQuy8886217egoAAXX3wxrr32WhQVFaGwsBDXXXcdevXq1SigqpB+rK53ly5dMGTIEHz88cd46aWXEI1GY+O4wsJCNGvWTK53BmJ3jydP3jRt2hSdOnXCnnvuCSBk93hKY/ALyvzjH/9gt27d2KxZMx500EGxdGhCZgPAsDzxxBOxberr6zl69Gh26tSJzZs35x//+EcuWrQofZUWfCU+3R0p1zsbefHFF7nvvvuyefPm3GuvvTh58uSEz+WaZw8bN27k8OHDufPOO7NFixbcddddefPNN7Ompia2jVzvzKa6utrwuX3BBReQVLu+W7du5bBhw1hYWMiWLVtywIAB/Omnn9LwawQ7rK73kiVLTMdx1dXVsX3I9c4s7O7xZJLT3ZHhueYRkkzRHIIgCIIgCIIgCIIgCD4ja+wFQRAEQRAEQRAEIYMRYS8IgiAIgiAIgiAIGYwIe0EQBEEQBEEQBEHIYETYC4IgCIIgCIIgCEIGI8JeEARBEARBEARBEDIYEfaCIAiCIAiCIAiCkMGIsBcEQRAEQRAEQRCEDEaEvSAIgiDkOBdeeCEGDRoUyL5ra2ux++6745133vFt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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "from scipy.optimize import curve_fit\n", "\n", "# Proposed Model (Proposed)\n", "def Proposed_model(k, V_f, k_j, n):\n", " g_k = 1 - 1.5 * (k_j**n - k**(n-1) * k_j) / ((1.5**(1/n)) * k_j + k)**n\n", " q_k = V_f * k * (0.35 * (1 - g_k**(n-1)) + 0.65 * (1 - g_k**(n-1))**(2*n))\n", " return q_k\n", "\n", "# Proposed1 Model (Proposed1)\n", "#def Propose_model(k, V_f, k_j, n, m):\n", " #g_k = 1 - 1.2 * (k_j**n - k**(n-1) * k_j) / ((1.2**(1/n)) * k_j + k)**n\n", " #q_k = V_f * k * (0.35 * (1 - g_k**(n-1)) + 0.65 * (1 - g_k**(n-1))**(m))\n", " #return q_k\n", "\n", "# Proposed2 Model (Proposed2)\n", "#def Prop_model(k, V_f, k_j, n):\n", " # g_k = 1 - 1.2 * (k_j**n - k**(n-1) * k_j) / ((1.2**(1/n)) * k_j + k)**n\n", " #q_k = V_f * k * (1 - g_k**(n-1))\n", " #return q_k\n", "\n", "# Wang Five Parameter Logistic Model (Wang)\n", "def Wang_five_parameter_logistic_model(k, V_f, V_b, k_t, theta_1, theta_2):\n", " q_k = k * (V_b + (V_f - V_b)) / (1 + np.exp((k - k_t) / theta_1))**theta_2\n", " return q_k\n", "\n", "# Edie_Multi-Regime Model (Edie_Multi_Regime)\n", "#def Edie_Multi_Regime_model(k, V_f, V_c, k_c, k_j, k_b):\n", " #q_k = np.piecewise(k, [k <= k_b, k > k_b], [lambda k: V_f * k* np.exp(-k / k_c), lambda k: V_c * k * np.log(k_j / k)])\n", " #return q_k\n", "\n", "# Cheng Model (Cheng)\n", "def Cheng_model(k, V_f, k_c, m):\n", " q_k = V_f * k / (1 + (k / k_c)**m)**(2 / m)\n", " return q_k\n", "\n", "# Gaddam Model (Gaddam)\n", "def Gaddam_model(k, V_f, k_j, k_c, a):\n", " Numerator = V_f * k * (np.exp(-((k / k_c)**(1 + a))) - np.exp(-((k_j / k_c)**(1 + a))))\n", " Denominator = (1 - np.exp(-((k_j / k_c)**(1 + a))))\n", " q_k = Numerator / Denominator\n", " return q_k\n", "\n", "\n", "# Modified Lee Model (Modified Lee)\n", "def Modified_Lee_model(k, V_f, k_j, E, theta, a):\n", " q_k = V_f * k * (1 - ((k / k_j)**a)) / (1 + (E * ((k / k_j))**theta))\n", " return q_k\n", "\n", "# Drake Multi-Regime Model (Drake)\n", "#def Drake_Two_Regime_model(k, V_f, k_j, k_b, c, v_bw):\n", " #q_k = np.piecewise(k, [k <= k_b, k > k_b], [lambda k: k * (V_f - c * k), lambda k: k * (v_bw - k * (v_bw / k_j))])\n", " #return q_k\n", "# van aerde Model (van Aerde)\n", "def van_Aerde_model(k, alpha, beta, gamma, delta):\n", " q_k = alpha * (1 - (beta * k) -((gamma * k - 1)**2 + delta* k**2)**(1 / 2))\n", " return q_k\n", "\n", "def Kucharski_and_Drabicki_model(k, V_f, k_c, a, b):\n", " q_k = (V_f * k) / (1 + a * (k / k_c )**b)\n", " return q_k\n", "\n", "def MacNicholas_model(k, V_f, k_j, c, n):\n", " q_k = V_f * k * ((1 - (k / k_j)**n) / (1 + c * (k / k_j )**n))\n", " return q_k\n", "\n", "def Ghandehari_and_Ardekani_model(k, k_j, c_1, c_2):\n", " q_k = c_1 * k * np.log((k_j + c_2) / (k + c_2))\n", " return q_k\n", "\n", "def Bando_model(k, V_f, c_1, c_2):\n", " q_k = V_f * k * ((np.tanh(c_1 * k**(-1) - c_2) + np.tanh(c_2)) / (1 + np.tanh(c_2)))\n", " return q_k\n", "\n", "def Boardman_and_Lave_model(k, V_f, c_1, c_2):\n", " q_k = V_f * k * np.exp(-c_1 * k) * np.exp(-c_2 * k**2)\n", " return q_k\n", " \n", "def Lee_model(k, V_f, k_j, E, theta):\n", " q_k = V_f * k * (1 - ((k / k_j))) / (1 + (E * ((k / k_j))**theta))\n", " return q_k\n", "\n", "def Kerner_and_Konhauser_model(k, V_f, k_c, c_1, c_2, c_3 ):\n", " q_k = V_f * ((1 / (1 + np.exp((((k / k_c) -c_1 ) / c_2)))) -c_3)\n", " return q_k\n", " \n", "def Del_Castillo_and_Benites_1_model(k, V_f, k_j, C_j ):\n", " q_k = V_f * k * (1-np.exp((C_j / V_f) * (1 - (k_j / k))))\n", " return q_k\n", "\n", "def Del_Castillo_and_Benites_2_model(k, V_f, k_j, C_j ):\n", " q_k = V_f * k * (1 - np.exp(1-np.exp((C_j / V_f) * (1 - (k_j / k)))))\n", " return q_k\n", "\n", "def Newell_and_Franklin_model(k, V_f, k_j, λ):\n", " q_k = V_f * k * (1 - np.exp((-λ / V_f) * ((1 / k) - (k / k_j))))\n", " return q_k\n", "\n", "def Papageorgiou_model(k, V_f, k_m, a):\n", " q_k = V_f * k * np.exp((-1 / a) * (k / k_m)**a)\n", " return q_k\n", "def Drake_model(k, V_f, k_m):\n", " q_k = V_f * k * np.exp((-1 / 2) * (k / k_m)**2)\n", " return q_k\n", "\n", "def Underwood_model(k, V_f, k_m):\n", " q_k = V_f * k * np.exp(k / k_m)\n", " return q_k\n", "\n", "def Greenberg_model(k, V_m, k_j):\n", " q_k = V_m * k * np.log(k_j / k)\n", " return q_k\n", "\n", "def May_and_Keller_model(k, V_f, k_j, n, m):\n", " q_k = V_f * k * (1 - (k / k_j)**m)**n\n", " return q_k\n", "\n", "def Pipes_model(k, V_f, k_j, n):\n", " q_k = V_f * k * (1 - (k / k_j))**n\n", " return q_k\n", "\n", "def Drew_model(k, V_f, k_j, m):\n", " q_k = V_f * k * (1 - (k / k_j)**m)\n", " return q_k\n", "\n", "def Greenshields_model(k, V_f, k_j):\n", " q_k = V_f * k * (1 - (k / k_j))\n", " return q_k\n", " \n", "import numpy as np\n", "\n", "def calculate_AIC(model_func, k_data, q_data, params):\n", " residuals = model_func(k_data, *params) - q_data\n", " ssr = np.sum(residuals**2)\n", " mse = np.mean(ssr)\n", " num_params = len(params)\n", " n = len(k_data) # Number of data points\n", " AIC = 2 * num_params + 2 * np.log(mse)\n", " return AIC\n", "\n", "def calculate_BIC(model_func, k_data, q_data, params):\n", " residuals = model_func(k_data, *params) - q_data\n", " ssr = np.sum(residuals**2)\n", " mse = np.mean(ssr)\n", " num_params = len(params)\n", " n = len(k_data) # Number of data points\n", " BIC = num_params * np.log(n) + 2 * np.log(mse)\n", " return BIC\n", "\n", "#def calculate_AIC(model_func, k_data, q_data, params):\n", " #residuals = model_func(k_data, *params) - q_data\n", " #ssr = np.sum(residuals**2)\n", " #sme = np.mean(ssr)\n", " #return np.mean(residuals**2)\n", " #num_params = len(params)\n", " #n = len(k_data)\n", " #AIC = 2 * num_params - 2 * np.log(ssr) + 2 * num_params * (n/(n-num_params-1))\n", " #return AIC\n", "\n", "#def calculate_BIC(model_func, k_data, q_data, params):\n", " #residuals = model_func(k_data, *params) - q_data\n", " #ssr = np.sum(residuals**2)\n", " # mse = np.mean(ssr)\n", " #return np.mean(residuals**2)\n", " #num_params = len(params)\n", " #n = Len(k_data)\n", " #BIC = num_params * np.log(n) - 2 * np.log(ssr)\n", " #return BIC\n", "\n", "# Yaks Model (Yaks)\n", "#def Yaks_model(k, V_f, k_j, n):\n", " # g_k = 4 * k * k_j / (k_j +k)**2\n", " # V_k = V_f * (0.35 * (1 - g_k**(n-1)) + 0.65 * (1 - g_k**(n-1))**(2*n))\n", " # return V_k\n", "\n", "# Given data (use your actual data here)\n", "#data = pd.read_excel('DATA1.xlsx')\n", "\n", "# Initial parameter guesses (you may need to adjust these based on the data)\n", "#initial_params_Proposed = [6000, 1.5, 4]\n", "#initial_params_Propose = [6000, 1.5, 4, 5]\n", "#initial_params_Prop = [6000, 1.5, 4]\n", "#initial_params_Wang = [6000, 28.2, 0.0069, 0.0028, 0.044]\n", "#initial_params_Edie_Multi_Regime = [6000, 20, 0.05, 1.5, 0.25]\n", "#initial_params_Cheng = [6000, 0.05, 4]\n", "#initial_params_Gaddam = [6000, 1.5, 0.05, 0.6]\n", "#initial_params_Modified_Lee = [6000, 1.5, 10.3, 2.14, 4]\n", "#initial_params_Drake_Two_Regime = [6000, 1.5, 0.25, 5, -15]\n", "#initial_params_van_Aerde = [2000, -0.07, 0.05, 0.5]\n", "\n", "# Initial parameter guesses (you may need to adjust these based on the data)\n", "initial_params_Proposed = [100, 160, 4]\n", "#initial_params_Propose = [100, 160, 4, 5]\n", "#initial_params_Prop = [100, 160, 4]\n", "initial_params_Wang = [104, 9, 17, 2.1, 0.07]\n", "#initial_params_Edie_Multi_Regime = [104, 65, 30, 175, 20]\n", "initial_params_Cheng = [105, 65, 4]\n", "initial_params_Gaddam = [105, 179, 65, 0.6]\n", "initial_params_Modified_Lee = [105, 179, 10.3, 2.14, 4]\n", "#initial_params_Drake_Two_Regime = [105, 80, 25, 5, -15]\n", "initial_params_van_Aerde = [1000, 0.007, 0.05, 0.5]\n", "initial_params_Kucharski_and_Drabicki = [107.24, 77.94, 8.46, 2.72]\n", "initial_params_MacNicholas = [100, 170, 0.5, 5]\n", "initial_params_Ghandehari_and_Ardekani = [160, 70, 20]\n", "initial_params_Bando = [100, 3, 2]\n", "initial_params_Boardman_and_Lave = [100, 0.3, 0.2]\n", "initial_params_Lee = [115.5, 151.5, 24.87, 2.1]\n", "initial_params_Kerner_and_Konhauser = [105, 40, 0.5, 0.2, 0.8]\n", "initial_params_Del_Castillo_and_Benites_1 = [105, 170, 18]\n", "initial_params_Del_Castillo_and_Benites_2 = [105, 170, 18]\n", "initial_params_Newell_and_Franklin = [100, 160, 2]\n", "initial_params_Papageorgiou = [105, 45, 10]\n", "initial_params_Drake = [105, 45]\n", "initial_params_Underwood = [105, 45]\n", "initial_params_Greenberg = [60, 170]\n", "initial_params_May_and_Keller = [105, 179, 10.3, 2.14]\n", "initial_params_Pipes = [105, 179, 10.3]\n", "initial_params_Drew = [105, 179, 2.14]\n", "initial_params_Greenshields = [105, 179]\n", "\n", "\n", "# Function to calculate mse for a given model and parameters\n", "def calculate_mse(model_func, k_data, q_data, params):\n", " q_fit = model_func(k_data, *params)\n", " residuals = q_data - q_fit\n", " return np.mean(residuals**2)\n", "\n", "# Function to calculate RMSE and ARE for a given model and parameters\n", "def calculate_rmse_and_are(model_func, k_data, q_data, params):\n", " q_fit = model_func(k_data, *params)\n", " residuals = q_data - q_fit\n", " rmse = np.sqrt(np.mean(residuals**2))\n", " are = np.mean(np.abs(residuals) / np.abs(q_data))\n", " return rmse, are\n", "\n", "\n", "\n", "# Function to try fitting with different initial parameters and loop until it converges\n", "def fit_with_multiple_initial_params_loop(model_func, k_data, q_data, initial_params, max_attempts, max_loops):\n", " best_params = None\n", " best_mse = float('inf')\n", " loop_count = 0\n", "\n", " while loop_count < max_loops:\n", " for attempt in range(1, max_attempts + 1):\n", " try:\n", " params, _ = curve_fit(model_func, k_data, q_data, p0=initial_params)\n", " mse = calculate_mse(model_func, k_data, q_data, params)\n", "\n", " if mse < best_mse:\n", " best_params = params\n", " best_mse = mse\n", "\n", " print(f\"Model: {model_func.__name__}, Loop {loop_count + 1}, Attempt {attempt}: Converged with parameters: {params}, mse: {mse}\")\n", " except RuntimeError as e:\n", " print(f\"Model: {model_func.__name__}, Loop {loop_count + 1}, Attempt {attempt}: Failed to converge. Trying different initial parameters.\")\n", " initial_params = [param * np.random.uniform(0.5, 2.0) for param in initial_params]\n", "\n", " if best_params is not None:\n", " break # If the model has converged, exit the loop\n", " else:\n", " loop_count += 1\n", "\n", " if best_params is None:\n", " raise RuntimeError(\"Fitting failed after multiple attempts. Check data and model suitability.\")\n", "\n", " return best_params, best_mse\n", "\n", "# Optimize the Proposed model with loop until convergence\n", "params_Proposed, best_mse_Proposed = fit_with_multiple_initial_params_loop(Proposed_model, k_data, q_data, initial_params_Proposed, max_attempts=10, max_loops=5)\n", "#rmse_Proposed, are_Proposed = calculate_rmse_and_are(Proposed_model, k_data, q_data, params_Proposed)\n", "#AIC_Proposed = calculate_AIC(Proposed_model, k_data, q_data, params_Proposed)\n", "#BIC_Proposed = calculate_BIC(Proposed_model, k_data, q_data, params_Proposed)\n", " \n", "# Optimize the Proposed model with loop until convergence\n", "#params_Propose, best_mse_Propose = fit_with_multiple_initial_params_loop(Propose_model, k_data, q_data, initial_params_Propose, max_attempts=10, max_loops=5)\n", "#rmse_Propose, are_Propose = calculate_rmse_and_are(Propose_model, k_data, q_data, params_Propose)\n", "#AIC_Propose = calculate_AIC(Propose_model, k_data, q_data, params_Propose)\n", "#BIC_Propose = calculate_BIC(Propose_model, k_data, q_data, params_Propose)\n", " \n", "# Optimize the Proposed model with loop until convergence\n", "#params_Prop, best_mse_Prop = fit_with_multiple_initial_params_loop(Prop_model, k_data, q_data, initial_params_Prop, max_attempts=10, max_loops=5)\n", "#rmse_Prop, are_Prop = calculate_rmse_and_are(Prop_model, k_data, q_data, params_Prop)\n", "#AIC_Prop = calculate_AIC(Prop_model, k_data, q_data, params_Prop)\n", "#BIC_Prop = calculate_BIC(Prop_model, k_data, q_data, params_Prop)\n", "\n", "# Optimize the Wang Five Parameter Logistic Model (Wang) with loop until convergence\n", "params_Wang, best_mse_Wang = fit_with_multiple_initial_params_loop(Wang_five_parameter_logistic_model, k_data, q_data, initial_params_Wang, max_attempts=10, max_loops=5)\n", "rmse_Wang, are_Wang = calculate_rmse_and_are(Wang_five_parameter_logistic_model, k_data, q_data, params_Wang)\n", "#AIC_Wang = calculate_AIC(Wang_five_parameter_logistic_model, k_data, q_data, params_Wang)\n", "#BIC_Wang = calculate_BIC(Wang_five_parameter_logistic_model, k_data, q_data, params_Wang)\n", "\n", "# Optimize the Edie_Multi_Regime Model (Edie_Multi_Regime) with loop until convergence\n", "#params_Edie_Multi_Regime, best_mse_Edie_Multi_Regime = fit_with_multiple_initial_params_loop(Edie_Multi_Regime_model, k_data, q_data, initial_params_Edie_Multi_Regime, max_attempts=10, max_loops=5)\n", "#rmse_Edie_Multi_Regime, are_Edie_Multi_Regime = calculate_rmse_and_are(Edie_Multi_Regime_model, k_data, q_data, params_Edie_Multi_Regime)\n", "#AIC_Edie_Multi_Regime = calculate_AIC(Edie_Multi_Regime_model, k_data, q_data, params_Edie_Multi_Regime)\n", "#BIC_Edie_Multi_Regime = calculate_BIC(Edie_Multi_Regime_model, k_data, q_data, params_Edie_Multi_Regime)\n", "\n", "# Optimize the Cheng Model (Cheng) with loop until convergence\n", "params_Cheng, best_mse_Cheng = fit_with_multiple_initial_params_loop(Cheng_model, k_data, q_data, initial_params_Cheng, max_attempts=10, max_loops=5)\n", "rmse_Cheng, are_Cheng = calculate_rmse_and_are(Cheng_model, k_data, q_data, params_Cheng)\n", "#AIC_Cheng = calculate_AIC(Cheng_model, k_data, q_data, params_Cheng)\n", "#BIC_Cheng = calculate_BIC(Cheng_model, k_data, q_data, params_Cheng)\n", "\n", "# Optimize the Gaddam Model with loop until convergence\n", "params_Gaddam, best_mse_Gaddam = fit_with_multiple_initial_params_loop(Gaddam_model, k_data, q_data, initial_params_Gaddam, max_attempts=10, max_loops=5)\n", "rmse_Gaddam, are_Gaddam = calculate_rmse_and_are(Gaddam_model, k_data, q_data, params_Gaddam)\n", "#AIC_Gaddam = calculate_AIC(Gaddam_model, k_data, q_data, params_Gaddam)\n", "#BIC_Gaddam = calculate_BIC(Gaddam_model, k_data, q_data, params_Gaddam)\n", "\n", "# Optimize the Modified Lee Model with loop until convergence\n", "params_Modified_Lee, best_mse_Modified_Lee = fit_with_multiple_initial_params_loop(Modified_Lee_model, k_data, q_data, initial_params_Modified_Lee, max_attempts=10, max_loops=5)\n", "rmse_Modified_Lee, are_Modified_Lee = calculate_rmse_and_are(Modified_Lee_model, k_data, q_data, params_Modified_Lee)\n", "#AIC_Modified_Lee = calculate_AIC(Modified_Lee_model, k_data, q_data, params_Modified_Lee)\n", "#BIC_Modified_Lee = calculate_BIC(Modified_Lee_model, k_data, q_data, params_Modified_Lee)\n", "\n", "# Optimize the Drake_Two_Regime Model with loop until convergence\n", "#params_Drake_Two_Regime, best_mse_Drake_Two_Regime = fit_with_multiple_initial_params_loop(Drake_Two_Regime_model, k_data, q_data, initial_params_Drake_Two_Regime, max_attempts=10, max_loops=5)\n", "#rmse_Drake_Two_Regime, are_Drake_Two_Regime = calculate_rmse_and_are(Drake_Two_Regime_model, k_data, q_data, params_Drake_Two_Regime)\n", "#AIC_Drake_Two_Regime = calculate_AIC(Drake_Two_Regime_model, k_data, q_data, params_Drake_Two_Regime)\n", "#BIC_Drake_Two_Regime = calculate_BIC(Drake_Two_Regime_model, k_data, q_data, params_Drake_Two_Regime)\n", "\n", "# Optimize the van Aerde Model with loop until convergence\n", "params_van_Aerde, best_mse_van_Aerde = fit_with_multiple_initial_params_loop(van_Aerde_model, k_data, q_data, initial_params_van_Aerde, max_attempts=10, max_loops=5)\n", "rmse_van_Aerde, are_van_Aerde = calculate_rmse_and_are(van_Aerde_model, k_data, q_data, params_van_Aerde)\n", "#AIC_van_Aerde = calculate_AIC(van_Aerde_model, k_data, q_data, params_van_Aerde)\n", "#BIC_van_Aerde = calculate_BIC(van_Aerde_model, k_data, q_data, params_van_Aerde)\n", "\n", "# Optimize the Proposed model with loop until convergence\n", "params_Kucharski_and_Drabicki, best_mse_Kucharski_and_Drabicki = fit_with_multiple_initial_params_loop(Kucharski_and_Drabicki_model, k_data, q_data, initial_params_Kucharski_and_Drabicki, max_attempts=10, max_loops=5)\n", "rmse_Kucharski_and_Drabicki, are_Proposed = calculate_rmse_and_are(Proposed_model, k_data, q_data, params_Proposed)\n", "#AIC_Proposed = calculate_AIC(Proposed_model, k_data, q_data, params_Proposed)\n", "#BIC_Proposed = calculate_BIC(Proposed_model, k_data, q_data, params_Proposed)\n", "\n", "# Optimize the van Aerde Model with loop until convergence\n", "params_MacNicholas, best_mse_MacNicholas = fit_with_multiple_initial_params_loop(MacNicholas_model, k_data, q_data, initial_params_MacNicholas, max_attempts=10, max_loops=5)\n", "rmse_MacNicholas, are_MacNicholas = calculate_rmse_and_are(MacNicholas_model, k_data, q_data, params_MacNicholas)\n", "\n", "# Optimize the van Aerde Model with loop until convergence\n", "params_Ghandehari_and_Ardekani, best_mse_Ghandehari_and_Ardekani = fit_with_multiple_initial_params_loop(Ghandehari_and_Ardekani_model, k_data, q_data, initial_params_Ghandehari_and_Ardekani, max_attempts=10, max_loops=5)\n", "rmse_Ghandehari_and_Ardekani, are_Ghandehari_and_Ardekani = calculate_rmse_and_are(Ghandehari_and_Ardekani_model, k_data, q_data, params_Ghandehari_and_Ardekani)\n", "\n", "# Optimize the Bando Model with loop until convergence\n", "params_Bando, best_mse_Bando = fit_with_multiple_initial_params_loop(Bando_model, k_data, q_data, initial_params_Bando, max_attempts=10, max_loops=5)\n", "rmse_Bando, are_Bando = calculate_rmse_and_are(Bando_model, k_data, q_data, params_Bando)\n", "\n", "# Optimize the Boardman_and_Lave Model with loop until convergence\n", "params_Boardman_and_Lave, best_mse_Boardman_and_Lave = fit_with_multiple_initial_params_loop(Boardman_and_Lave_model, k_data, q_data, initial_params_Boardman_and_Lave, max_attempts=10, max_loops=5)\n", "rmse_Boardman_and_Lave, are_Boardman_and_Lave = calculate_rmse_and_are(Boardman_and_Lave_model, k_data, q_data, params_Boardman_and_Lave)\n", "\n", "# Optimize the Lee Model with loop until convergence\n", "params_Lee, best_mse_Lee = fit_with_multiple_initial_params_loop(Lee_model, k_data, q_data, initial_params_Lee, max_attempts=10, max_loops=5)\n", "rmse_Lee, are_Lee = calculate_rmse_and_are(Lee_model, k_data, q_data, params_Lee)\n", "\n", "# Optimize the Kerner_and_Konhauser Model with loop until convergence\n", "params_Kerner_and_Konhauser, best_mse_Kerner_and_Konhauser = fit_with_multiple_initial_params_loop(Kerner_and_Konhauser_model, k_data, q_data, initial_params_Kerner_and_Konhauser, max_attempts=10, max_loops=5)\n", "rmse_Kerner_and_Konhauser, are_Kerner_and_Konhauser = calculate_rmse_and_are(Kerner_and_Konhauser_model, k_data, q_data, params_Kerner_and_Konhauser)\n", "\n", "# Optimize the Del_Castillo_and_Benites_1 Model with loop until convergence\n", "params_Del_Castillo_and_Benites_1, best_mse_Del_Castillo_and_Benites_1 = fit_with_multiple_initial_params_loop(Del_Castillo_and_Benites_1_model, k_data, q_data, initial_params_Del_Castillo_and_Benites_1, max_attempts=10, max_loops=5)\n", "rmse_Del_Castillo_and_Benites_1, are_Del_Castillo_and_Benites_1 = calculate_rmse_and_are(Del_Castillo_and_Benites_1_model, k_data, q_data, params_Del_Castillo_and_Benites_1)\n", "\n", "# Optimize the Del_Castillo_and_Benites_2 Model with loop until convergence\n", "params_Del_Castillo_and_Benites_2, best_mse_Del_Castillo_and_Benites_2 = fit_with_multiple_initial_params_loop(Del_Castillo_and_Benites_2_model, k_data, q_data, initial_params_Del_Castillo_and_Benites_2, max_attempts=10, max_loops=5)\n", "rmse_Del_Castillo_and_Benites_2, are_Del_Castillo_and_Benites_2 = calculate_rmse_and_are(Del_Castillo_and_Benites_2_model, k_data, q_data, params_Del_Castillo_and_Benites_2)\n", "\n", "# Optimize the Newell_and_Franklin Model with loop until convergence\n", "params_Newell_and_Franklin, best_mse_Newell_and_Franklin = fit_with_multiple_initial_params_loop(Newell_and_Franklin_model, k_data, q_data, initial_params_Newell_and_Franklin, max_attempts=10, max_loops=5)\n", "rmse_Newell_and_Franklin, are_Newell_and_Franklin = calculate_rmse_and_are(Newell_and_Franklin_model, k_data, q_data, params_Newell_and_Franklin)\n", "\n", "# Optimize the Papageorgiou Model with loop until convergence\n", "params_Papageorgiou, best_mse_Papageorgiou = fit_with_multiple_initial_params_loop(Papageorgiou_model, k_data, q_data, initial_params_Papageorgiou, max_attempts=10, max_loops=5)\n", "rmse_Papageorgiou, are_Papageorgiou = calculate_rmse_and_are(Papageorgiou_model, k_data, q_data, params_Papageorgiou)\n", "\n", "# Optimize the Drake Model with loop until convergence\n", "params_Drake, best_mse_Drake = fit_with_multiple_initial_params_loop(Drake_model, k_data, q_data, initial_params_Drake, max_attempts=10, max_loops=5)\n", "rmse_Drake, are_Drake = calculate_rmse_and_are(Drake_model, k_data, q_data, params_Drake)\n", "\n", "# Optimize the Underwood Model with loop until convergence\n", "params_Underwood, best_mse_Underwood = fit_with_multiple_initial_params_loop(Underwood_model, k_data, q_data, initial_params_Underwood, max_attempts=10, max_loops=5)\n", "rmse_Underwood, are_Underwood = calculate_rmse_and_are(Underwood_model, k_data, q_data, params_Underwood)\n", "\n", "# Optimize the Greenberg Model with loop until convergence\n", "params_Greenberg, best_mse_Greenberg = fit_with_multiple_initial_params_loop(Greenberg_model, k_data, q_data, initial_params_Greenberg, max_attempts=10, max_loops=5)\n", "rmse_Greenberg, are_Greenberg = calculate_rmse_and_are(Greenberg_model, k_data, q_data, params_Greenberg)\n", "\n", "# Optimize the May_and_Keller Model with loop until convergence\n", "params_May_and_Keller, best_mse_May_and_Keller = fit_with_multiple_initial_params_loop(May_and_Keller_model, k_data, q_data, initial_params_May_and_Keller, max_attempts=10, max_loops=5)\n", "rmse_May_and_Keller, are_May_and_Keller = calculate_rmse_and_are(May_and_Keller_model, k_data, q_data, params_May_and_Keller)\n", "\n", "# Optimize the Pipes Model with loop until convergence\n", "params_Pipes, best_mse_Pipes = fit_with_multiple_initial_params_loop(Pipes_model, k_data, q_data, initial_params_Pipes, max_attempts=10, max_loops=5)\n", "rmse_Pipes, are_Pipes = calculate_rmse_and_are(Pipes_model, k_data, q_data, params_Pipes)\n", "\n", "# Optimize the Drew Model with loop until convergence\n", "params_Drew, best_mse_Drew = fit_with_multiple_initial_params_loop(Drew_model, k_data, q_data, initial_params_Drew, max_attempts=10, max_loops=5)\n", "rmse_Drew, are_Drew = calculate_rmse_and_are(Drew_model, k_data, q_data, params_Drew)\n", "\n", "# Optimize the Greenshields model with loop until convergence\n", "params_Greenshields, best_mse_Greenshields = fit_with_multiple_initial_params_loop(Greenshields_model, k_data, q_data, initial_params_Greenshields, max_attempts=10, max_loops=5)\n", "rmse_Greenshields, are_Greenshields = calculate_rmse_and_are(Greenshields_model, k_data, q_data, params_Greenshields)\n", "\n", "\n", "# Print the final optimized parameters\n", "#print(\"RMSE for Proposed Model:\", rmse_Proposed)\n", "#print(\"Initial parameters for Proposed Model:\", initial_params_Proposed)\n", "#print(\"AIC for Proposed Model:\", AIC_Proposed)\n", "#print(\"BIC for Proposed Model:\", BIC_Proposed)\n", "\n", "#print(\"Final optimized parameters for Proposed Model:\", params_Proposed)\n", "#print(\"Initial parameters for Proposed Model:\", initial_params_Proposed)\n", "#print(\"AIC for Proposed1 Model:\", AIC_Propose)\n", "#print(\"BIC for Proposed1 Model:\", BIC_Propose)\n", "\n", "#print(\"Final optimized parameters for Proposed Model:\", params_Proposed)\n", "#print(\"Initial parameters for Proposed Model:\", initial_params_Proposed)\n", "#print(\"AIC for Proposed2 Model:\", AIC_Prop)\n", "#print(\"BIC for Proposed Model2:\", BIC_Prop)\n", "\n", "print(\"RMSE for Wang Five Parameter Logistic Model:\", rmse_Wang)\n", "#print(\"Initial parameters for Wang Five Parameter Logistic Model:\", initial_params_Wang)\n", "#print(\"AIC for Wang Model:\", AIC_Wang)\n", "#print(\"BIC for Wang Model:\", BIC_Wang)\n", "\n", "#print(\"Final optimized parameters for Edie_Multi-Regime Model:\", params_Edie_Multi_Regime)\n", "#print(\"Initial parameters for Edie_Multi-Regime Model:\", initial_params_Edie_Multi_Regime)\n", "#print(\"AIC for Edie_Multi_Regime Model:\", AIC_Edie_Multi_Regime)\n", "#print(\"BIC for Edie_Multi_Regime Model:\", BIC_Edie_Multi_Regime)\n", "\n", "print(\"RMSE for Cheng Model:\", rmse_Cheng)\n", "#print(\"Initial parameters for Cheng Model:\", initial_params_Cheng)\n", "#print(\"AIC for Cheng Model:\", AIC_Cheng)\n", "#print(\"BIC for Cheng Model:\", BIC_Cheng)\n", "\n", "print(\"RMSE for Gaddam Model:\", rmse_Gaddam)\n", "#print(\"Initial parameters for Gaddam Model:\", initial_params_Gaddam)\n", "#print(\"AIC for Gaddam Model:\", AIC_Gaddam)\n", "#print(\"BIC for Gaddam Model:\", BIC_Gaddam)\n", "\n", "print(\"RMSE for Modified Lee Model:\", rmse_Modified_Lee)\n", "#print(\"Initial parameters for Modified Lee Model:\", initial_params_Modified_Lee)\n", "#print(\"AIC for Modified lee Model Model:\", AIC_Modified_Lee)\n", "#print(\"BIC for Modified lee Model Model:\", BIC_Modified_Lee)\n", "\n", "#print(\"Final optimized parameters for Drake_Two_Reime Model:\", params_Drake_Two_Regime)\n", "#print(\"Initial parameters for Drake_Two_Reime Model:\", initial_params_Drake_Two_Regime)\n", "#print(\"AIC for Drake_Two_Regime Model:\", AIC_Drake_Two_Regime)\n", "#print(\"BIC for Drake_Two_Regime Model:\", BIC_Drake_Two_Regime)\n", "\n", "print(\"RMSE for van Aerde Model:\", rmse_van_Aerde)\n", "#print(\"Initial parameters for van Aerde Model:\", initial_params_van_Aerde)\n", "#print(\"AIC for van_Aerde:\", AIC_van_Aerde)\n", "#print(\"BIC for van_Aerde:\", BIC_van_Aerde)\n", "\n", "print(\"RMSE for Kucharski_and_Drabicki Model:\", rmse_Kucharski_and_Drabicki)\n", "print(\"RMSE for MacNicholas Model:\", rmse_MacNicholas)\n", "print(\"RMSE for Ghandehari and Ardekani Model:\", rmse_Ghandehari_and_Ardekani)\n", "print(\"RMSE for Bando Model:\", rmse_Bando)\n", "print(\"RMSE for Boardman and Lave Model:\", rmse_Boardman_and_Lave)\n", "print(\"RMSE for Lee Model:\", rmse_Lee)\n", "print(\"RMSE for Kerner and Konhauser Model:\", rmse_Kerner_and_Konhauser)\n", "print(\"RMSE for Del Castillo and Benites 1 Model:\", rmse_Del_Castillo_and_Benites_1)\n", "print(\"RMSE for Del Castillo and Benites 2 Model:\", rmse_Del_Castillo_and_Benites_2)\n", "print(\"RMSE for Newell and Franklin Model:\", rmse_Newell_and_Franklin)\n", "print(\"RMSE for Papageorgiou Model:\", rmse_Papageorgiou)\n", "print(\"RMSE for Drake Model:\", rmse_Drake)\n", "print(\"RMSE for Underwood Model:\", rmse_Underwood)\n", "print(\"RMSE for Greenberg Model:\", rmse_Greenberg)\n", "print(\"RMSE for May_and_Keller Model:\", rmse_May_and_Keller)\n", "print(\"RMSE for Pipes Model:\", rmse_Pipes)\n", "print(\"RMSE for Drew Model:\", rmse_Drew)\n", "print(\"RMSE for Greenshields Model:\", rmse_Greenshields)\n", "\n", "\n", "#print(\"Final optimized parameters for Yaks Model:\", params_Yaks)\n", "#print(\"Initial parameters for Yaks Model:\", initial_params_Yaks)\n", "\n", "# Generate a range of density values for plotting\n", "k_plot = np.linspace(min(k_data), max(k_data), 200)\n", "\n", "# Calculate flows for each model using optimized parameters\n", "q_Proposed = Proposed_model(k_plot, *params_Proposed)\n", "#q_Propose = Propose_model(k_plot, *params_Propose)\n", "#q_Prop = Prop_model(k_plot, *params_Prop)\n", "q_Wang = Wang_five_parameter_logistic_model(k_plot, *params_Wang)\n", "#q_Edie_Multi_Regime = Edie_Multi_Regime_model(k_plot, *params_Edie_Multi_Regime)\n", "q_Cheng = Cheng_model(k_plot, *params_Cheng)\n", "q_Gaddam = Gaddam_model(k_plot, *params_Gaddam)\n", "q_Modified_Lee = Modified_Lee_model(k_plot, *params_Modified_Lee)\n", "#q_Drake_Two_Regime = Drake_Two_Regime_model(k_plot, *params_Drake_Two_Regime)\n", "q_van_Aerde = van_Aerde_model(k_plot, *params_van_Aerde)\n", "q_Kucharski_and_Drabicki = Kucharski_and_Drabicki_model(k_plot, *params_Kucharski_and_Drabicki)\n", "q_MacNicholas = MacNicholas_model(k_plot, *params_MacNicholas)\n", "q_Ghandehari_and_Ardekani = Ghandehari_and_Ardekani_model(k_plot, *params_Ghandehari_and_Ardekani)\n", "q_Bando = Bando_model(k_plot, *params_Bando)\n", "q_Boardman_and_Lave = Boardman_and_Lave_model(k_plot, *params_Boardman_and_Lave)\n", "q_Lee = Lee_model(k_plot, *params_Lee)\n", "q_Kerner_and_Konhauser = Kerner_and_Konhauser_model(k_plot, *params_Kerner_and_Konhauser)\n", "q_Del_Castillo_and_Benites_1 = Del_Castillo_and_Benites_1_model(k_plot, *params_Del_Castillo_and_Benites_1)\n", "q_Del_Castillo_and_Benites_2 = Del_Castillo_and_Benites_2_model(k_plot, *params_Del_Castillo_and_Benites_2)\n", "q_Newell_and_Franklin = Newell_and_Franklin_model(k_plot, *params_Newell_and_Franklin)\n", "q_Papageorgiou = Papageorgiou_model(k_plot, *params_Papageorgiou)\n", "q_Drake = Drake_model(k_plot, *params_Drake)\n", "q_Underwood = Underwood_model(k_plot, *params_Underwood)\n", "q_Greenberg = Greenberg_model(k_plot, *params_Greenberg)\n", "q_May_and_Keller = May_and_Keller_model(k_plot, *params_May_and_Keller)\n", "q_Pipes = Pipes_model(k_plot, *params_Pipes)\n", "q_Drew = Drew_model(k_plot, *params_Drew)\n", "q_Greenshields = Greenshields_model(k_plot, *params_Greenshields)\n", "#V_Yaks = Yaks_model(k_plot, *params_Yaks)\n", "\n", "# Get the minimum and maximum velocity values among all the models for setting y-axis limits\n", "min_flow = min(np.min(q_data), np.min(q_Proposed), np.min(q_Greenshields), np.min(q_Drew), np.min(q_Pipes), np.min(q_May_and_Keller), np.min(q_Greenberg), np.min(q_Underwood), np.min(q_Drake), np.min(q_Papageorgiou), np.min(q_Newell_and_Franklin), np.min(q_Del_Castillo_and_Benites_2), np.min(q_Del_Castillo_and_Benites_1), np.min(q_Kerner_and_Konhauser), np.min(q_Lee), np.min(q_Boardman_and_Lave), np.min(q_MacNicholas), np.min(q_Kucharski_and_Drabicki), np.min(q_Wang), np.min(q_Ghandehari_and_Ardekani), np.min(q_Cheng), np.min(q_Gaddam), np.min(q_Modified_Lee), np.min(q_Bando), np.min(q_van_Aerde))\n", "max_flow = max(np.max(q_data), np.max(q_Proposed), np.max(q_Greenshields), np.max(q_Drew), np.max(q_Pipes), np.max(q_May_and_Keller), np.max(q_Greenberg), np.max(q_Underwood), np.max(q_Drake), np.max(q_Papageorgiou), np.max(q_Newell_and_Franklin), np.max(q_Del_Castillo_and_Benites_2), np.max(q_Del_Castillo_and_Benites_1), np.max(q_Kerner_and_Konhauser), np.max(q_Lee), np.max(q_Boardman_and_Lave), np.max(q_MacNicholas), np.max(q_Kucharski_and_Drabicki), np.max(q_Wang), np.max(q_Ghandehari_and_Ardekani), np.max(q_Cheng), np.max(q_Gaddam), np.max(q_Modified_Lee), np.max(q_Bando), np.max(q_van_Aerde))\n", "#min_flow = min(np.min(q_data), np.min(q_Proposed), np.min(q_Propose), np.min(q_Prop), np.min(q_Wang), np.min(q_Edie_Multi_Regime), np.min(q_Cheng), np.min(q_Gaddam), np.min(q_Modified_Lee), np.min(q_Drake_Two_Regime))\n", "#max_flow = max(np.max(q_data), np.max(q_Proposed), np.max(q_Propose), np.max(q_Prop), np.max(q_Wang), np.max(q_Edie_Multi_Regime), np.max(q_Cheng), np.max(q_Gaddam), np.max(q_Modified_Lee), np.max(q_Drake_Two_Regime))\n", " \n", "\n", "# Plot the original data and curve fits \n", "plt.figure(figsize=(12, 8))\n", "plt.scatter(k_data, q_data, label='Data', color='Red') \n", "#plt.plot(k_plot, q_Proposed, label=f'Proposed Model (MSE: {best_mse_Proposed:.2f}, RMSE: {rmse_Proposed:.2f}, ARE: {are_Proposed:.2f}, AIC: {AIC_Proposed:.2f}, BIC: {BIC_Proposed:.2f})', color='Lime', linewidth=2.5)\n", "#plt.plot(k_plot, q_Propose, label=f'Proposed1 Model (MSE: {best_mse_Propose:.2f}, RMSE: {rmse_Propose:.2f}, ARE: {are_Propose:.2f}, AIC: {AIC_Propose:.2f}, BIC: {BIC_Propose:.2f})', color='purple', linewidth=2.5)\n", "#plt.plot(k_plot, q_Prop, label=f'Proposed2 Model (MSE: {best_mse_Prop:.2f}, RMSE: {rmse_Prop:.2f}, ARE: {are_Prop:.2f}, AIC: {AIC_Prop:.2f}, BIC: {BIC_Prop:.2f})', color='orange', linewidth=2.5)\n", "#plt.plot(k_plot, q_Wang, label=f'Wang 5PL Model (MSE: {best_mse_Wang:.2f}, RMSE: {rmse_Wang:.2f}, ARE: {are_Wang:.2f}, AIC: {AIC_Wang:.2f}, BIC: {BIC_Wang:.2f})', color='Blue', linewidth=2.5)\n", "#plt.plot(k_plot, q_Edie_Multi_Regime, label=f'Edie Model (MSE: {best_mse_Edie_Multi_Regime:.2f}, RMSE: {rmse_Edie_Multi_Regime:.2f}, ARE: {are_Edie_Multi_Regime:.2f}, AIC: {AIC_Edie_Multi_Regime:.2f}, BIC: {BIC_Edie_Multi_Regime:.2f})', color='Black', linewidth=2.5)\n", "#plt.plot(k_plot, q_Cheng, label=f'Cheng Model (MSE: {best_mse_Cheng:.2f}, RMSE: {rmse_Cheng:.2f} ARE: {are_Cheng:.2f}, AIC: {AIC_Cheng:.2f}, BIC: {BIC_Cheng:.2f})', color='Magenta', linewidth=2.5)\n", "#plt.plot(k_plot, q_Gaddam, label=f'Gaddam Model (MSE: {best_mse_Gaddam:.2f}, RMSE: {rmse_Gaddam:.2f} ARE: {are_Gaddam:.2f}, AIC: {AIC_Gaddam:.2f}, BIC: {BIC_Gaddam:.2f})', color='Indigo', linewidth=2.5)\n", "#plt.plot(k_plot, q_Modified_Lee, label=f'Modified Lee Model (MSE: {best_mse_Modified_Lee:.2f}, RMSE: {rmse_Modified_Lee:.2f} ARE: {are_Modified_Lee:.2f}, AIC: {AIC_Modified_Lee:.2f}, BIC: {BIC_Modified_Lee:.2f})', color='Green', linewidth=2.5)\n", "#plt.plot(k_plot, q_Drake_Two_Regime, label=f'Drake Model (MSE: {best_mse_Drake_Two_Regime:.2f}, RMSE: {rmse_Drake_Two_Regime:.2f} ARE: {are_Drake_Two_Regime:.2f}, AIC: {AIC_Drake_Two_Regime:.2f} BIC: {BIC_Drake_Two_Regime:.2f})', color='Violet', linewidth=2.5)\n", "#plt.plot(k_plot, q_van_Aerde, label=f'van Aerde Model (MSE: {best_mse_van_Aerde:.2f}, RMSE: {rmse_van_Aerde:.2f} ARE: {are_van_Aerde:.2f}, AIC: {AIC_van_Aerde:.2f} BIC: {BIC_van_Aerde:.2f})', color='cyan', linewidth=2.5)\n", "\n", "plt.plot(k_plot, q_Proposed, label=f'Proposed Model', color='Lime', linewidth=2.5)\n", "#plt.plot(k_plot, q_Wang, label=f'Wang 5PL Model', color='Blue', linewidth=2.5)\n", "#plt.plot(k_plot, q_Ghandehari_and_Ardekani, label=f'Ghandehari and Ardekani Model', color='Black', linewidth=2.5)\n", "plt.plot(k_plot, q_Cheng, label=f'Cheng Model', color='Magenta', linewidth=2.5)\n", "#plt.plot(k_plot, q_Gaddam, label=f'Gaddam Model', color='Indigo', linewidth=2.5)\n", "#plt.plot(k_plot, q_Modified_Lee, label=f'Modified Lee Model', color='Green', linewidth=2.5)\n", "#plt.plot(k_plot, q_Bando, label=f'Bando Model', color='Violet', linewidth=2.5)\n", "#plt.plot(k_plot, q_van_Aerde, label=f'van Aerde Model', color='cyan', linewidth=2.5)\n", "#plt.plot(k_plot, q_Kucharski_and_Drabicki, label=f'Kucharski and Drabicki Model', color='purple', linewidth=2.5)\n", "#plt.plot(k_plot, q_MacNicholas, label=f'MacNicholas Model', color='orange', linewidth=2.5)\n", "#plt.plot(k_plot, q_Boardman_and_Lave , label=f'Boardman and Lave Model', color='lime', linewidth=2.5)\n", "#plt.plot(k_plot, q_Lee, label=f'Lee Model', color='crimson', linewidth=2.5)\n", "#plt.plot(k_plot, q_Kerner_and_Konhauser, label=f'Kerner and Konhauser Model', color='maroon', linewidth=2.5)\n", "#plt.plot(k_plot, q_Del_Castillo_and_Benites_1, label=f'Del Castillo and Benites 1 Model', color='teal', linewidth=2.5)\n", "#plt.plot(k_plot, q_Del_Castillo_and_Benites_2, label=f'Del_Castillo and Benites 2 Model', color='aqua', linewidth=2.5)\n", "#plt.plot(k_plot, q_Newell_and_Franklin , label=f'Newell and Franklin Model', color='silver', linewidth=2.5)\n", "#plt.plot(k_plot, q_Papageorgiou, label=f'Papageorgiou Model', color='salmon', linewidth=2.5)\n", "#plt.plot(k_plot, q_Drake, label=f'Drake Model', color='white', linewidth=2.5)\n", "#plt.plot(k_plot, q_Underwood, label=f'Underwood Model', color='gold', linewidth=2.5)\n", "#plt.plot(k_plot, q_Greenberg, label=f'Greenberg Model', color='azure', linewidth=2.5)\n", "#plt.plot(k_plot, q_May_and_Keller, label=f'May_and_Keller Model', color='gray', linewidth=2.5)\n", "#plt.plot(k_plot, q_Pipes, label=f'Pipes Model', color='chocolate', linewidth=2.5)\n", "#plt.plot(k_plot, q_Drew, label=f'Drew Model', color='crimson', linewidth=2.5)\n", "#plt.plot(k_plot, q_Greenshields, label=f'Greenshields Model', color='brown', linewidth=2.5)\n", "\n", "\n", "plt.xlabel('Density (veh/Km)')\n", "plt.ylabel('Flow(Veh/hr)')\n", "plt.ylim(0, 3050 ) # Set the y-axis limits starting from 0 to slightly above the maximum velocity value\n", "plt.legend()\n", "#plt.title('Curve Fits for Different Single-Regime Models using LM and GA400 Data')\n", "plt.grid(False) # Remove grid lines from the plot\n", "plt.show()\n", "\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# ANN algorithm for optimization" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The ANN described below is a feedforward neural network. Feedforward neural networks are the most common type of neural networks and are also known as multi-layer perceptrons (MLPs).\n", "\n", "In a feedforward neural network, information flows in one direction, from the input layer through one or more hidden layers to the output layer. Each layer is fully connected to the next layer, and there are no cycles or feedback connections in the network. This means that the information moves forward and does not go backward.\n", "\n", "The architecture of the feedforward neural network described in the code consists of an input layer with the number of neurons equal to the length of the initial_params, two hidden layers with 64 and 32 neurons respectively, and an output layer with the number of neurons equal to the length of the initial_params. The activation function used in the hidden layers is the Rectified Linear Unit (ReLU), and there is no activation function applied to the output layer since it's a regression task.\n", "\n", "Overall, the neural network processes the input data and produces an output, making it a feedforward neural network." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "280/280 [==============================] - 1s 2ms/step\n", "280/280 [==============================] - 1s 3ms/step\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "C:\\Users\\Mafpeace\\anaconda3\\lib\\site-packages\\scipy\\optimize\\_minpack_py.py:881: OptimizeWarning: Covariance of the parameters could not be estimated\n", " warnings.warn('Covariance of the parameters could not be estimated',\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "280/280 [==============================] - 1s 3ms/step\n", "280/280 [==============================] - 1s 3ms/step\n", "280/280 [==============================] - 1s 3ms/step\n", "280/280 [==============================] - 1s 2ms/step\n", "280/280 [==============================] - 1s 2ms/step\n", "280/280 [==============================] - 1s 2ms/step\n", "280/280 [==============================] - 1s 2ms/step\n", "280/280 [==============================] - 1s 3ms/step\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "C:\\Users\\Mafpeace\\AppData\\Local\\Temp\\ipykernel_3964\\203198506.py:43: RuntimeWarning: invalid value encountered in power\n", " q_k = V_f * k * (1 - ((k / k_j)**a)) / (1 + (E * ((k / k_j))**theta))\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "280/280 [==============================] - 1s 3ms/step\n", "280/280 [==============================] - 1s 3ms/step\n", "280/280 [==============================] - 1s 4ms/step\n", "280/280 [==============================] - 1s 4ms/step\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "C:\\Users\\Mafpeace\\AppData\\Local\\Temp\\ipykernel_3964\\203198506.py:53: RuntimeWarning: invalid value encountered in sqrt\n", " q_k = alpha * (1 - (beta * k) -((gamma * k - 1)**2 + delta* k**2)**(1 / 2))\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "280/280 [==============================] - 1s 3ms/step\n", "280/280 [==============================] - 1s 2ms/step\n", "Final optimized parameters for Proposed Model: [105.76888949 176.91795971 5.31759089]\n", "Final optimized parameters for Wang Five Parameter Logistic Model: [1.03454509e+02 9.00000000e+00 1.38993981e+01 1.26764340e+00\n", " 3.79815222e-02]\n", "Final optimized parameters for Edie_Multi-Regime Model: [118.86578561 43.68994643 76.69645262 118.72728621 20. ]\n", "Final optimized parameters for Cheng Model: [111.56639329 30.43532861 2.44130396]\n", "Final optimized parameters for Gaddam Model: [1.39299328e+02 1.21457940e+03 3.76599927e+01 6.12562533e-02]\n", "Final optimized parameters for Modified Lee Model: [115.7140637 151.68596439 24.78094548 2.10228117 148.08870925]\n", "Final optimized parameters for Drake_Two_Reime Model: [120.15175499 115.11470987 25. 1.51553907 65.36848319]\n", "Final optimized parameters for van Aerde Model: [ 1.09535361e+03 -4.44039506e-02 5.13488052e-02 1.78012351e-04]\n" ] }, { "ename": "NameError", "evalue": "name 'q_Edie_Multi_Regime' is not defined", "output_type": "error", "traceback": [ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)", "\u001b[1;32m~\\AppData\\Local\\Temp\\ipykernel_3964\\203198506.py\u001b[0m in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[0;32m 199\u001b[0m \u001b[0mplt\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mplot\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mk_plot\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mq_Proposed\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mlabel\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34mf'Proposed Model (MSE: {mse_Proposed_ann:.2f}, RMSE: {rmse_Proposed_ann:.2f}, ARE: {are_Proposed_ann:.2f})'\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mcolor\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m'Lime'\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mlinewidth\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m2.5\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 200\u001b[0m \u001b[0mplt\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mplot\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mk_plot\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mq_Wang\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mlabel\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34mf'Wang 5PL Model (MSE: {mse_Wang_ann:.2f}, RMSE: {rmse_Wang_ann:.2f}, ARE: {are_Wang_ann:.2f})'\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mcolor\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m'Blue'\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mlinewidth\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m2.5\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 201\u001b[1;33m \u001b[0mplt\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mplot\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mk_plot\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mq_Edie_Multi_Regime\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mlabel\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34mf'Edie Model (MSE: {mse_Edie_Multi_Regime_ann:.2f}, RMSE: {rmse_Edie_Multi_Regime_ann:.2f}, ARE: {are_Edie_Multi_Regime_ann:.2f})'\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mcolor\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m'Black'\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mlinewidth\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m2.5\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 202\u001b[0m \u001b[0mplt\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mplot\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mk_plot\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mq_Cheng\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mlabel\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34mf'Cheng Model (MSE: {mse_Cheng_ann:.2f}, RMSE: {rmse_Cheng_ann:.2f} ARE: {are_Cheng_ann:.2f})'\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mcolor\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m'Magenta'\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mlinewidth\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m2.5\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 203\u001b[0m \u001b[0mplt\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mplot\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mk_plot\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mq_Gaddam\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mlabel\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34mf'Gaddam Model (MSE: {mse_Gaddam_ann:.2f}, RMSE: {rmse_Gaddam_ann:.2f} ARE: {are_Gaddam_ann:.2f})'\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mcolor\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m'Indigo'\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mlinewidth\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m2.5\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", "\u001b[1;31mNameError\u001b[0m: name 'q_Edie_Multi_Regime' is not defined" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0gAAAH5CAYAAAC77h4iAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAADicUlEQVR4nOydd3wUdfrHP5sl9CSQAoQkAiJW1PM8CygKiqgnikYUATnxLGdBjAUrirGBFTzLnXp3eHcYMJB4WFGDgR8K2D0L4oGCQugt9MBunt8fXybZMuU7bWd293n7el6R3dmZ78zOznw/87QAEREYhmEYhmEYhmEYZHg9AIZhGIZhGIZhGL/AAolhGIZhGIZhGOYALJAYhmEYhmEYhmEOwAKJYRiGYRiGYRjmACyQGIZhGIZhGIZhDsACiWEYhmEYhmEY5gAskBiGYRiGYRiGYQ7QwusBuEVjYyPWrFmDrKwsBAIBr4fDMAzDMAzDMIxHEBF27NiBrl27IiND30eUsgJpzZo1KCkp8XoYDMMwDMMwDMP4hFWrVqG4uFh3mZQVSFlZWQDEQcjOzvZ4NAzDMAzDMAzDeMX27dtRUlLSpBH0SFmBpITVZWdns0BiGIZhGIZhGEYq9YaLNDAMwzAMwzAMwxyABRLDMAzDMAzDMMwBWCAxDMMwDMMwDMMcgAUSwzAMwzAMwzDMAVggMQzDMAzDMAzDHIAFEsMwDMMwDMMwzAFYIDEMwzAMwzAMwxyABRLDMAzDMAzDMMwBWCAxDMMwDMMwDMMcgAUSwzAMwzAMwzDMAVggMQzDMAzDMAzDHIAFEsMwDMMwDMMwzAFYIDEMwzAMwzAMwxyghdcDYBiGcZRwGFiwAFi7FigsBPr1A4JBr0fFMAzDMEySwAKJYZjUoboauPlmYPXq5teKi4FnngFKS70bF8MwDMMwSQOH2DEMkxpUVwNDh0aLIwCoqxOvV1d7My6GYRiGYZIKFkgMwzhDOAzMmwdMny7+hsOJ3fbNNwNE8e8pr5WVJXZMDMMwDMMkJSyQGIaxT3U10L07MGAAMGKE+Nu9e+K8NgsWxHuOIiECVq0SyzEMwzAMw+jAAolhGHv4IbRt7Vpnl2MYhmEYJm1hgcQwjHX8EtpWWOjscgzDMAzDpC0skBiGsY5fQtv69RPV6gIB9fcDAaCkRCzHMAzDMAyjAwskhmGs45fQtmBQlPIG4kWS8u8pU7gfEsMwDMMwhrBAYhjGOn4KbSstBWbNAoqKol8vLhavcx8khmEYhmEkCBCpJQ8kP9u3b0dOTg7q6+uRnZ3t9XAYJjUJh0W1uro69TykQEAIlBUrEue9CYdFSN/atUKY9evHniOGYRiGSXPMaIMWCRoTwzCpiBLaNnSoEEORIsmr0LZgEOjfP3HbYxiGYRgmpeAQO4Zh7MGhbQzDMAzDpBDsQWIYxj6lpcCQIRzaxjAMwzBM0sMCiWEYZ+DQNgHnQDEMwzBMUsMCiWEYximqq0Xj3MjeUMXFIk+LQw0ZhmEYJingHCSGYRgnqK4WxSpiG+fW1YnXq6u9GRfDMAzDMKZggcQwDGOXcFh4jtRKnSuvlZWJ5RiGYRiG8TUskBiGYeyyYEG85ygSImDVKrEcwzAMwzC+hgUSwzCMXdaudXY5hmEYhmE8g4s0MEyqwtXUEkdhobPLMQzDMAzjGexBYphUpLoa6N4dGDAAGDFC/O3enQsFuEW/fqJaXSCg/n4gAJSUiOUYhmEYhvE1LJAYJtXgamqJJxgUpbyBeJGk/HvKFPbgMQzDMEwSYEog/eUvf8ExxxyD7OxsZGdno0+fPnj33Xeb3iciPPDAA+jatSvatGmD/v374/vvv49aR0NDA2666Sbk5+ejXbt2uOCCC7A6ZiK3detWjBo1Cjk5OcjJycGoUaOwbds263vJMOkCV1PzjtJSYNYsoKgo+vXiYvE690FiGIZhmKTAlEAqLi7GpEmT8Pnnn+Pzzz/HGWecgSFDhjSJoMcffxxPP/00nnvuOXz22Wfo0qULzjrrLOzYsaNpHWVlZXj99dcxY8YMfPTRR9i5cycGDx6McMSEbcSIEfj6668xZ84czJkzB19//TVGjRrl0C4zTApjpppaOAzMmwdMny7+2hVNTq8vGSktBVauBGprgYoK8XfFChZHDMMwDJNMkE06duxIf/vb36ixsZG6dOlCkyZNanpv7969lJOTQ3/961+JiGjbtm2UmZlJM2bMaFqmrq6OMjIyaM6cOUREtGTJEgJAixcvblpm0aJFBICWLl0qPa76+noCQPX19XZ3kWGSh4oKIiGD9K2sjKi4OPq14mKiqipr262qcnZ9DMMwDMMwDmJGG1jOQQqHw5gxYwZ27dqFPn36YMWKFVi3bh0GDRrUtEyrVq1w+umnY+HChQCAL774Avv3749apmvXrujdu3fTMosWLUJOTg5OOumkpmVOPvlk5OTkNC2jRkNDA7Zv3x5lDJNSyHhoZKukTZniXI4S5zwxDMMwDJNCmBZI3377Ldq3b49WrVrhuuuuw+uvv44jjzwS69atAwB07tw5avnOnTs3vbdu3Tq0bNkSHTt21F2mU6dOcdvt1KlT0zJqTJw4sSlnKScnByUlJWZ3jWH8i2xVOplqalqFAqzkKCUq54nD9xiGYRiGSRCmBdJhhx2Gr7/+GosXL8b111+PK664AkuWLGl6PxAzMSOiuNdiiV1GbXmj9dx9992or69vslWrVsnuEsP4GzMeGqNqakT64iIyR0kGMzlPVuGS5QzDMAzDJBDTAqlly5Y45JBD8Lvf/Q4TJ07Esccei2eeeQZdunQBgDgvz4YNG5q8Sl26dMG+ffuwdetW3WXWr18ft92NGzfGeaciadWqVVN1PcUYJumx4qHRq6ZWVia33bVrvVkOiPYWPfggh+8xDMMwDJNQbPdBIiI0NDSgR48e6NKlCz744IOm9/bt24f58+ejb9++AIDjjz8emZmZUcusXbsW3333XdMyffr0QX19PT799NOmZT755BPU19c3LcMwaYNVD41WNbUhQ+S2K5vL5PRysd6iCRO4ZDnDMAzDMAmlhZmF77nnHpx77rkoKSnBjh07MGPGDMybNw9z5sxBIBBAWVkZHn30UfTq1Qu9evXCo48+irZt22LEiBEAgJycHFx11VW47bbbkJeXh9zcXNx+++04+uijMXDgQADAEUccgXPOOQfXXHMNXnzxRQDAtddei8GDB+Owww5zePcZxufY8dAEg0D//tGvKTlKdXXqwiMQEO/36ye3XSfXp4QSqq1HjUhxGLufDMMwDMMwFjElkNavX49Ro0Zh7dq1yMnJwTHHHIM5c+bgrLPOAgDccccd2LNnD2644QZs3boVJ510Et5//31kZWU1rWPy5Mlo0aIFLr30UuzZswdnnnkmXnnlFQQjEsdfffVVjB07tqna3QUXXIDnnnvOif1lmOTCaQ+NkqM0dGhzTpKCkrM0ZYp2IQe31qcXSmiEmfA9hmEYhmEYAwJEVmYk/mf79u3IyclBfX095yMxyUs4LELOjDw0K1bIixpAeGtuvjk6fK+kRIgZK01N7a5v3jwRVmeF2lr2IDEMwzAMo4sZbWDKg8QwTIJx2uMDCNGVmwtMmgRs3AgUFIiCDv36mVtPJKWlIr9pwQLh0SksNLc+K14gs+GADMMwDMMwErBAYhi/o1Sli/XQFBeb9/ioeXqKi4UIsyqOFNRynmSRDRFUsCoOGYZhGIZhDOAQO4ZJFsJh6x4aQLsIgiI2Zs2yFl7nBEahhLHYCQdkGIZhGCbtMKMNWCAxTDqgCBCtkuFWc5mcRBFwgLpIKi8HevWyJg4ZhmEYhklrzGgD232QGIZJAqz2U0okSihhbm78e3l5QO/ewPDhIoyPxRHDMAzDMC7BAolh0gE7/ZQSzZYt6q8NHSq8TAzDMAzDMC7CAolh0gGn+ym5gV4vJOW1sjJg3z5RFnz6dPE3HE7gIBmGYRiGSXW4ih3DpAP9+okcI6N+Sl6WzJYNAywqAjZtan5dqcLHBRsYhmEYhnEA9iAxTDqg9FMCmqvWKfilZLZseF+kOAKE6OPwO4ZhGIZhHIIFEsOkC0oRhKKi6NeLioAHHgAaGpwPWQuH5cPhrIb3RYbfRa7fzLYZhmEYhmEOwGW+GSbdiOyntGwZ8NJLwguj4FTIml5TWrV1m+2FpEZtrahyZ3bbDMMwDMOkNNwHCSyQmDRCq4GsUWNZNxvHWl23US8kI6ZNA9q08W9DXIZhGIZhPIEFElggMWmClqdk+HARWqblQXGzcazddavtU0EBsHGj8bbz84Uw2rzZ2rYZhmEYhklJWCCBBRKTBmh5abSI9KDk5gIDBhh/RglZM8O8efbXHev96tsX6NnTXvid7LYZhmEYhkk5zGgDLtLAMMmIXs8gLSKLGUTmHOlhpXGsE01pg0EhYIYPF39btmyuwucEfmiIyzAMwzCML2GBxDDJiFHPIC2UXkIy4WqAtcpybjWlVarw5eebH5PetrnaHcMwDMMwEbBAYphkxK4HpKBA5OJoEQgAJSXWGscqTWlj+y05se7SUtGvySqx266uFvlSAwYAI0aIv927c08lhmEYhkljWCAxTDJitWeQQlGRCF/Tw2rjWLeb0sb2cZIldttKDlesJy6ZGs+y94thGIZhHIcFEsMkI0ZeGi0UD8rGjcCTT2ovd/vt9kphazWlLS62X2ZbxkOVlxfvIYvctl4Ol1bjWb/B3i+GYRiGcQWuYscwicKoL5FZzPYMUgRFZSVwyy3ulPiOxel9VtDa98hKfUOGaG/biUp7XuJmDyuGYRiGSUG4ih3D+A03nvZreWlKSoBx47Q9KPn5+gUelEIOCxZYH5tCbDU6p3oPyXio9LbtRKU9r0gF7xfDMAzD+JgWXg+AYVIeraf9Sq6Lnaf9paXanpKJE9Vfnz5dbt1+FAeR6O27EbI5XMuW2RujGxhVMIwUuH70fjEMwzCMz2GBxDBuYvS0PxAQT/uHDLHuXVE8JbKvu1WG2wu09jEStTA/JY/JqPHsAw8AvXv7K1wtmb1fDMMwDJMEcIgdw7iJmaf9icLNMtx+Qyu0cfZsUWlPJnfLb+FqqSRwGYZhGMaHsEBiGDfx49N+t8tw+wWjMt4AUF6uvw4vBKwR6SRwGYZhGMYDWCAxjJv49Wn/kCEifKxjx+jXnSjDnWjUegHJFjLo2VNuG34KV0sXgcswDMMwHsE5SAzjJka5LkpJ7UQ+7a+uFuIh0rOSmyteu/fe5JpYq+1LcTFwzTVyoY0bN8ptx2/hakoVP7V9nzIluQQuwzAMw/gM7oPEMG4j07PH6oTWqM9Q5PudOon/VwsrS8b+OXq9gGQva9OmAXfdZSxgnegJ5QZu9Zlyi2QbL8MwDJMymNEGLJAYJhGoeTpKSuw97TfyBM2eHf++Hn4XA5GEw6LYguy+aVFbC2zZ4p6AZZrR8vY98wwfX4ZhGMZ1WCCBBRLjQ5x8eq7lPVFo3x7YudPaumtr/d8/Z948UZHOKrFi0A0ByzSj5+0DWIQyDMMwrmNGG3AOEsMkCpmePTLoFSBQsCqOAH8VJNDCzBhjQ+7UChnYaTrL6JOIXmAMwzAM4yBcxY5hkg2j3kp2WbbMvXU7hWzRhPJyoKgo+jWtSn2KgB0+XPzlyboz+LEXGMMwDMPowB4khvE7saF5dXXubm/CBKB3b3+HPMlWB7z3XmHsGfIOP/YCYxiGYRgdWCAxjJ9Ry43Jz3d3m34PeVIE49ChIkxOJoTO7zlVqYxfe4ExDMMwjAYskBjGr2gltm/a5O52I0Oe/CYs1ARjRoYQTQpe9wLiUtbR+LEXGMMwDMPowDlIDOM3wmFg7lzR7NTLIpN+C3lSBGNsPosijsrKRAW+FSu8E0fV1aL8+IABwIgR4m/37uL1dCUYFKW8gWbvnoKat49hGIZhPIYFEsP4CWWCPXCg6M/jJUuWiHLakd4ZrzCq3BcIAFVV3nprtARcXZ14PZ1FUmmpKIwhWzCDYRiGYTyE+yAxjF8w6m2khmy/o7w8oKJCiId164S3RTZUzw/NPGX7HnnVw8mocW0yNeF1Ew4/ZBiGYTyC+yAxTLIh09tIDRlxFAgAL70EDBrU/FqbNkKMAcbbVDwgXj7p93slNDOlrP2W15VInOoFxjAMwzAuwiF2DJNowmHhEZk+vTmEzU5vo7w84Z1Qo6REXdhohTypoQiosjLvwu3sVkJTO+ZO4ncBxzAMwzCMNOxBYphEolaFrbi42Ztjhc2bgZoa8XS+rg7YuBEoKAC6dBHvb9ggij4o/6+ENpWWilLeCxYAzz0ncni0cNsDYhR6ZacSmtYxdzJskEtZMwzDMEzKwAKJYRKFVo5RXZ2o4mWHDRuA4cOjtzV6tLZXKlIg9OsHXHyx3Hbc8IDICBilEtrQoXJ9jyLXrXXMnQwb5FLWDMMwDJMycIgdwyQCvRwjJ+qkrF/fHD42c6Z6NbVIIiurLVggXzHPaQ+ImcpvZiuhyRxzp8IGuZQ1wzAMw6QMXMWOYRKBbBU2K2RkAI2Nzf8OBuUm/YpXY+JE4PLLjZfPyxNCzKlJvtXKb7KV0LyofKfmDSsp8bZxLcMwDMMwXMWOYXyHm8n5keIIkPeIKHlFGzfKLX/++UBlpXPlma1WfpOthOZF4YTIvC4uZc0wDMMwSQkLJIZJBH5Ozi8o0M+fAYQ355VXhAHOFDlwW8B4VTiBS1kzDMMwTFLDOUgMkwhkm7J6QVGRdv6MglaRg8gcIbO4LWCUwgla+xQIiPA3LpzAMAzDMEwELJAYxm3CYeCWW7wehTqKQDDTFwlwpsiB2wKGCycwDMMwDGMBFkgM4zZ2msC6TaRAKC0FfvpJhNzJEJkjZIVECBizle8YhmEYhkl7WCAxjNu4WaDBDmVl8QJh4UL5og0KdvYvEQKmtBRYuVJUq6uoEH9XrGBxxDAMwzCMKlykgWGcQqv8tNUcmtzc6P5EseW87TJkSPxrVsSO3SIHViu/yZb7BrhwAsMwDMMw0rBAYhgnUOt/o1R6GzLEuEqcGpWVYmK/dq3oP+RUHpPSX0gtt8eM2IldjxnBEotZAaN3vNkzxDAMwzCMDbhRLMPYpbpaVHSL/SkpeTSzZom/Q4eKv0Y/ObUGqdOnAyNGODfm8nKgV694IaM0bzUSc5H7VlrqrmCJFV7r1wOXXWY8JoZhGIZhmAOY0QYskBjGDoqg0CrCECl2Zs+OFxFqywPRk/xwGHj2Wfcq4cUKGUXwAdoiqaREFFBQxJGeQHztNVH4wYpnSU146aEmLhmGYRiGSXtYIIEFEpMg5s0DBgwwXq62VoSQRXpDli0DXn45evIfKTwA8wLBCmqiTG27BQXAyJEiZFAROUYCEWheTqGoCLj2WnUPViRawksG5XgzDMMwDMOABRIAFkhMgrjlFiFojKioAIYPj39dL2/HjkAwi5rnRSanSFYg6qEWiicjvPTQOt6pip38r2TYHsMwDMPYxIw24CINDKOH3kQwHAamTZNbj1bxA6U4gbKdykqxbN++woOTqOcXkT2NFM+LTOEEJ0qY19UJIRjpwbLbO8puZb1Y/CwIEl2wggtkMAzDMCkO90FiGC2qq4UXY8AAUSBhwADx7+pq8f6CBcCmTcbrKShQrxint52iIm+ay5oVPE4IEUUElpU1h+LZEV4lJfrH2yxG54GXKF7G2HNl9Wrg4ouBmTMTsz1F5PrhmDAMwzCMTdiDxDBqaIW3RXo7Ghrk1jVypHbY2saNwLBh8duREV5AfK8ku+gJHjUvSr9+1kqYxxLrwbIjvKZMcc67I3MeeOU1CYeNvYzDh4vwSaXohlvbIxLbKSsTOWp+8a4xDMMwjAXYg8QwsRhNBAExEVy6VG59SkNWNU/EZZfZExaVlaIgQVkZkJVlfT2AvudFy4sye7YIrQKaiz3YQfEcKcLLzDozMoAZM5wTLLLnQWQBikQiE4YYDgOXXOKMZ8doe5Eil2EYhmGSGFMCaeLEiTjhhBOQlZWFTp064cILL8SPP/4Ytczo0aMRCASi7OSTT45apqGhATfddBPy8/PRrl07XHDBBVgdc+PdunUrRo0ahZycHOTk5GDUqFHYtm2btb1kGDPITgQffNB4XcGgyCfSCk1qbLQ2xkBACJr+/YVNngy8/rq1dSloeV6MwqoA4UkpKop+34oXQfEcBYPmhVdjI3D77c6IgX37jKsHei0IzIQhOiHkZLfnRF4awzAMw3iIKYE0f/583HjjjVi8eDE++OADhEIhDBo0CLt27Ypa7pxzzsHatWub7J133ol6v6ysDK+//jpmzJiBjz76CDt37sTgwYMRjriBjxgxAl9//TXmzJmDOXPm4Ouvv8aoUaNs7CrDSOLkBE8JS3Oy4IIiGGIFTf/+5r0uAJCXB1RVqXteZL0oQ4YAK1cKb1ZFhfg7Y4b8GBTBF+nBKi01L7ycyIW54w6gbVvg+efllvdKEJgJQ3RCyMluz+kCGQzDMAyTaMgGGzZsIAA0f/78pteuuOIKGjJkiOZntm3bRpmZmTRjxoym1+rq6igjI4PmzJlDRERLliwhALR48eKmZRYtWkQAaOnSpVJjq6+vJwBUX19vcq+YtKe2lkhM/52x8ePtfb6gIPrfJSVEVVXqY6+qIgoEhBmtNy+PqLycqKFB7HNFhfgbCol1hUJEkyfLjbG2Vn0sMp9Vxqu1T6FQ9Ph27ybKz9dfX0lJ836YYdw489+P2r4nglCIqLhYfpwVFc5sT+vcsnPcGYZhGMZlzGgDW0Ua6uvrAQC5ublRr8+bNw+dOnVChw4dcPrpp+ORRx5Bp06dAABffPEF9u/fj0GDBjUt37VrV/Tu3RsLFy7E2WefjUWLFiEnJwcnnXRS0zInn3wycnJysHDhQhx22GFxY2loaEBDRNL89u3b7ewak844VXjAKZ55Bli/HvjpJ6BnT+CGG4CWLdWXLS0VeUk33CAKQCgUFIjcoe7dxf8XFYn9nD1brDO2ZPPw4cD06fKV9GK9KIrnSYbi4ujmuLHElhufN0+/iIVayXIZ9u0Dnn5afnmld5STFfPMoIQhXnyx3PJ2PTvK9oYOFfse+dvQ8moyDMMwTBJiuUgDEeHWW2/Fqaeeit69eze9fu655+LVV1/Fhx9+iKeeegqfffYZzjjjjCbxsm7dOrRs2RIdO3aMWl/nzp2xbt26pmUUQRVJp06dmpaJZeLEiU35Sjk5OSgpKbG6a0y6YyX/RYuSEvsTxlGjREPa554Tf3v21A4hq64Wy0SKo4wM8e9nnhHv3XWXqHw3e7Z2iegnnjBXZnzZsuh/P/KI3OcnTxbNac0UVnArF+aFF+TzdPwiCBRBrDcGtfBFO9tTC3ssLva2oh/DMAzDOIhlgTRmzBh88803mD59etTrw4YNw3nnnYfevXvj/PPPx7vvvov//e9/ePvtt3XXR0QIRExGAyoT09hlIrn77rtRX1/fZKtWrbKwVwxzAK2JoBkCAeGR+Nvf7I0ldtKulWcjWwiirk54Ha691jkP2csvN4+zuhqYMEHuc507mxcYbuXC/PST/LJ+EgSXXKKd7+WGkCstjc83MytyGYZhGMbHWBJIN910E9544w3U1taiuLhYd9nCwkJ069YNyw48Ye7SpQv27duHrVu3Ri23YcMGdO7cuWmZ9evXx61r48aNTcvE0qpVK2RnZ0cZw9hCmQjW1ACnnWb+8w88AHTsKASJk6iVmJbpiRP7+c2bnRvT6tUipM1MaB1gLezLqAS4VY9Jz55yy914o/8EwdChotBG7PXYLSGnhD0OHy7+clgdwzAMk0KYEkhEhDFjxqC6uhoffvghevToYfiZzZs3Y9WqVSg8MBE6/vjjkZmZiQ8++KBpmbVr1+K7775D3759AQB9+vRBfX09Pv3006ZlPvnkE9TX1zctwzAJYfZs0cj1//7P/Ge3bgUuvdT5MQHxJaZleuK4zdy5Ij9IdhxWw770QiDteExuuMH4M8Gg8Ar6URCwZ4dhGIZhHCFAJB9jc8MNN6CiogKzZ8+OKpSQk5ODNm3aYOfOnXjggQdw8cUXo7CwECtXrsQ999yDX3/9FT/88AOyDjSyvP766/HWW2/hlVdeQW5uLm6//XZs3rwZX3zxBYIHJh7nnnsu1qxZgxdffBEAcO2116Jbt2548803pca6fft25OTkoL6+nr1JjDWUkDU/FGrQoqKiuaDCiBFejwbIzRX5TTLMnAnk54tcocJCIZbMCI/q6vheRSUl+gUfjLjjDpF/pcW4ccDjj1tbN8MwDMMwnmFGG5gSSFr5P1OnTsXo0aOxZ88eXHjhhfjqq6+wbds2FBYWYsCAAXjooYeiiibs3bsX48aNQ0VFBfbs2YMzzzwTL7zwQtQyW7ZswdixY/HGG28AAC644AI899xz6NChg9RYWSAxtgiHgW7drIXHBQKiMIJswn+rVkBEBUZT1NaKEKd584ABA6ytwwuGDQM+/ji+et4zz5gTN0qfKasiS4077hBeosjvLxgEbr2VxRHDMAzDJCmuCaRkggUSI4XWBPvBB+ULDUQSW/7YLZQS0ytWiPGGw6KEt2xp8kAg2tuTyMtAbq4IP4zdpvIAxg/FD/btE1XtZEqrMwzDMAzje1gggQUSI4FaiJbSA0gvzEqPkhJRIW7KFEeGqIqWkFBCAgF9wRP5eUA9TO2yy+L7IGVni4p4O3faG3/79trriBV+srjhSWIYhmEYJmVggQQWSIwBbuQXZWeLfkMLF7ob7qaXZ6Mm+hQPk9bntcSF4kV57z2xT4lsvqyEDsqgJXTNhusBLLQYhmEYJkVhgQQWSIwOSjiaG1XfamvFpNpMuJsMBQWiqWpRkfGkPXaS37evEDhmJv2zZomwssiGs4lkzBjhiTMaq5bQtRKu56TQ8gIWdwzDMAyjCQsksEBidHCzoIFSVa66Wkzw7eJWXo7eZNqoklsi0RMoRkLXTLiek0LLC5Jd3DEMwzCMy5jRBi0SNCaG8Q9r17q37k6dhABT+hPZpbhYhMMNGSLWa8crpKA3mQ6H/SOOAOGFGzpUXaAY9X6K7BWlF66n12SXSIiksjLxHfjRI6Ml7pRjV1lpr5w6wzAMw6QZLJCY9GPZMnfWm5EB/OEPwJo1zqzv8suB0aNFxbdYT0lsXpGst0BvMn3xxSKPyg7FxcCePaI6npZzOjsb2LFD/L+RA1tPoMgKXaPlnBJaXmAk7gBRcMPKueIlHC7IMAzDeEiG1wNgmIQSDgN//rM7625sdE4cAcC0acDAgcAll8RP4GN7LCnegupq7fXJTKatFGKYPFmEFtbWAitXAi+9JF7X6JuG7dtFqe/cXLn1RwqUSDp1kvt8YaH++2aEVjgsPHnTp4u/sr2u3MJI3AHWzhUvqa4WDwQGDBDNjwcMEP/263gZhmGYlIMFEpNePPIIsHmz16NwHkXglJVpT9plJtNmCARERbybbhJ5V/37i6f8paUiJK6oSPuzW7aI76G8XBRkkCFSyFRXA1dcITe+fv30lzMSUArLltmfuDstsKyEi8qcK16heDhjz1O/izqGYRgmpWCBxKQP4bAILfILEyaI3BCniPW0xE7G6+qc25bCU0+J7UVO+MNh4R169FEgJ0d7rIEA8Le/ARdeKLctRcgok2i9/VG8V1OmGIdm9esnws60PF6BAJCXJ74vOxN3NzwjsuIuFi2vnJfIeDj9KOoYhmGYlIOr2DHpg5vV68wQWV0NEJPUuXOBhx92Zv0VFUCrVvGFGAoKnCvbnZcH/PGP8c1k8/LEXzNeupoakWulVRY99njJlGg3m2ej1WRXEU25udr7JFMtz60qeUolP6sl5ZWqi35A9vdppkcWwzAMwxzAjDZgDxKTPrhZvU6WWM9GMCgme0ce6dw2li1TD1PatMm5bWzeLKrdxW5j82bzIYwbNjR79mK9OLHHSzZM8JVXzAkOrbDA4mLggQf098nIG2PkGSECrrtONOY1SzCofexksOqBcgOnim4wDMMwjE1YIDHpg1vV68xQXBzvLQiHnZv05eeLIgl6YUp+o7BQX6BEHi/Z47Rhg/lxlJaKIhO1tc1FJ1asAHr1kvu81thkRN3GjWLfrYTbaR07vdBC2fysRCIr1vwk6hiGYZiUhMt8M+lBdbXIIfGKc84B7rwzvlyxWk8iO/TvLybLRuTleV+sQglNUybppaWilLdeeWe3J9GKR8/KurSWkxV1mzZp93wyQu3YbdwIDBsm3lcLG5TJz0okSi6YUailn0QdwzAMk5KwB4lJfZQQJy+5887mKm8KWhW77HD44XLLEYkKchUVIgdIr0iBG2hN0hWBElkVLxKZggpOe0bsbtOsWIssRGCm6l0wKMZQWChEUkGBaBJr5JXzC3rhgn4VdQzDMExKwkUamNTHy+IMWgn8SnK9U+JI2c7UqaJ3kuxnlImyVpECtygpEZNdK5N0o4IKdgoeaHmv7GzTSiGF2lpRCj3Wu6hXfELNG1lcDDz9tBBLydJ0VW0/7JwvDMMwDAOT2oBSlPr6egJA9fX1Xg+F8ZqKCiUV3hurqoofU22tuXUEAkR5ec3/H/teICC2EwoRFRfHL6O1zpIS8Rki8fni4sQck8pKe9+p2lhLStSPtdX1FRdHr8/ONquq5L4TxcrK1JeP/K5l1q+1vN8JhcRvpKJC/FXOUYZhGIaxiBltwB4kJvXx0oOUlwesXx//xH76dNELR4ZILwVg/HRdq6S0FpFlkyO9KMuWiQpuQLzXRPl35P/LIlMWWwY9j48ZzJTgtrPN6mpRrU6m1LpeSfbY42fkjXTqeDMMwzBMEmNGG7BAYlKfcBjo1s2dRqkyxPZtCYeBZ58FbrlF7vOxAkhmkl5dDVxzjQjTMkKvF45euBMQ/15enihXvWOH8Xb90M/GrrgwK5j27RM5QVol1wMBUYlQRkQpx4/7B7mPU2KcYRiG8Qwz2oCr2DGpz+zZwN693m2/qkr87ddPjEW2al1urkiyjy1WoFZpLZbSUiAnRy4faf164dFSm/gZVZZTe2/GDODyy42364d+NkYluCN7HMUec62cH70GtS1bAi++qJ/PNHJkswDVQzl+3D/IXax8zwzDMExSwwKJSW3Mhpu5wXPPCZMtra1MlF9+GTjzTOvb7d9fv2wyIIROpCdLbeKnJ8jU3outmqaFVnW3RD6tlxUNc+dGj2f2bPXzqq7OuFS30rdIbdI9ZQrw3XdyY1KOH/cPcg+t64fM98wwDMMkLRxix6QuTleKSxTt2gGXXCI8DS1b2luX2ep0divBAXJV24JB4WlSxhY53kQ+rbeSn1ZUJDySemK3oEDsg973pyYEZ88GLr5Yf/taOUhG/YM4B8kcnNvFMAyTUpjRBtwHiUldjMKn/MquXcArrwBt2wJ33NH8upmeOAqKtyLWq6M1oVMm2EovHivbjOxno0U4DFx6qRBEClp9oZSn9ZHLOoVRjyM16uqMPYEbN4pjrjfm2J5PgHy/rsh+QNw/yB3MhF8yDMMwKQULJCZ1Sfaci3AYeOIJIZKqq8XT7AEDRPW7AQPEv2VEQ2kpsHKlSNKvqAAmT9YXOsrE75FH7G3ztdeMJ+WRQuzmm9U9ILGizUn0xIVdNm0yJ+xkBf0DD8R707SEsF+bwiYDnNvFMAyTtrBAYlKXVMm5ePJJEXbllGfl44/llpswwd42CwrkhNi8ee48rZf1fmmJC6eQFXayE+1evdRfjxXCtbUi/IvFkTU4t4thGCZt4SINTOrSty+QkQE0Nno9Ento5fEQCa9HWZmoJqflrVHL67EzFpltAvIT/ksvFd+VDLLrNJvLFFutb8kS4OGH5balhyLsnn0W6NxZv+iEExNymQqHjBxK+KVRble/fokfG8MwDOMq7EFiUpeFC5NfHBlh5FnRyutxc5sKshP+LVuAt96SW1ZmnVZzmSJzguxUD1TjlluMwxSN8qECAdGDiifkiYFzuxiGYdIWFkhM6pJOuQFq+6qX1+P0NtXC2fr2FWF2TqAnDiK3PXcuMHas/VwmGbGSlyeauppFS6jxhNx/cG4XwzBMWsICiUlNwmFgzRqvR5E4Yj0r4bAI67LiOYotvW20TbUCEp07A127impuTkCkLg5itz1woBAgeuuR8X7JiJWXXhLbMttGQE+oaU3Ii4rkJ+RWKg8y2nBuF8MwTNrBOUhM6uFkzk0yEOtZsbv/110HLF6s38dIyb3QaqQp0xDXDGVl8RNSO02AZbyLRg1dS0uF+MjMNL/9SKGmljMUu09G+6j0VJo9G5g2TVTQixyvW32k0gXO7WIYhkkrWCAxqYWdSXOyEulZsbv/eXliIvjMM/qepG3bxLZuvTUxx3rIkOh/2w0flM2Pii3eEFtkYcECe2IwVqhpfX9r1ojX1bxIRoJYCenjkDCGYRiGkSJAlJozSTPdcpkUIRwW4Vbp4jnKyABmzAAuuUT824n9z8sD1q8XAuCOO0QfJi9RKoWtWBEdXjdvngirs7q+5ctFEQ810WOG6dNFaJ9VamubPRNG35/asZAVxFrHkWEYhmHSBDPagHOQmNRBttFmqjB9erM4ApzZ/82bxXr27QOmTrW3LrvoFSawWoCDCLjsMqBnT2sNcGOx2gNHreiE2V5QZrxoZvpIcQ4TwzAMk+awQGJSB73k/FRj3DjRPygSp6r2zZ4tvA2ReSxuUlIi9qe4OPp1vUphdppzPvGEc013jardqaEl/GS/P2U5K4LYaBtqBTcixSOLJ4ZhGCYN4BwkJnVwqmKa38nNBSZOjH/djmiIZMoUZ9ajR34+cPnlIr9HCW+bOFE71ycWRZg45TE00wA3EqXa3dCh4vOR3hzl33l50XlKkUUeIjHbKNaKINbbhla4niIeb79dCCPZ5rsM4weUAiZ2w2kZhkkr2IPEpA5O9dzxO1u2qIdKWfFmxGJ14mB2m5s3i4n1li3N24xs1Nq/v/5YZs8G9uyxNlYtzIShRaLXK6eqSuR0yZSINtso1owgNmoyqxeuRyTMSc8bwyQCI4+oE7BXlWFSEhZITOoQO0FNZdS8B3q9e2Qxe3MvLgZmzow/9nl5wrQw07Q1cmzz5gG33AJcfLHzpcQVrHhmlF45NTXA+PHCpk5t9kbJCD+zjWLNCmK9JrNW89esfI+Mf0mlyb7iEXVT1CdCgDEM4w2UotTX1xMAqq+v93ooTKIIhYgKCpTn3alttbXax6Gqiqi4ODHjqKpqPva1tUQVFeJvKERUU2NuX9TW4cU+6R1bPdTGWFzcfIzsrKekRH09VVVEgYAwrf3R+mwkFRXuHje97zad8PNxcOr89QOhkP71IhAQvws7x1/57amtOxBIzuPGMCmOGW2ABIzHE1ggpSkzZyZWqCTaAgFx46+p0Z9khUJEkye7N468POcm3RUV+pMzrYmIG8fW6qTJ6cmSmYm02rErKCAqK5OfhNfW2j9+FRXy40vWibcd/HwcUm2yL3s+W30YkggBxjCM47BAIhZIaUtDg/sTaa+tffvof+fmEpWXx9+MnfAKxFp2NtF77zk76S4v156cKftnZayx64z8t9p7VieCfpgs2fVMKPtgR4iqTTZTbeJtFT8fBz+cv05j5uGMFdwWYAzDuIIZbcA5SExq8cILXo/AfXbujP73li3AhAlAp07Agw825w906uTcNgMBYVOnAoMGyRVzkCk6UFwMvPyymE7Eory2ZYv58ZaXaxdNqKpSf0+rpLgRZvsXuYGZAhdan1fyn2IxynHSKgBhVPgBSI/cJb8fBz+cv05jtiKkWcyW5GcYJungMt9MarFsmdcj8A5FKCkUFYmS4FYERixapakB7TK6RiWwAeCaa6LHbBdFdN17rzCt8r5DhjhX+jeVJku5ufHFL3JzgT/+EXjySfFvte9RrQCEmYl3//7Nr6daWWarxyFRpNL5q6A8nKmrUxemynVCq6qjEW4LMIZhPIcFEpNaNDZ6PQL/sGaN+uTALOXlQmyoTVKrq8XTca3eOEoJbLVlpkwBGhrsj09BbbKuNeFUPC5O4OfJkqzY0OqBBAjBdPLJ+t+jmnC2MvE2Op+SEb8LED+fv1aReTijV9XRCLcFGMMwnsMhdkxqkZ3t9Qj8gxPiKBAA/vY39fdky+gqJbDVegE5OemyEyZnB7P9ixKFbAlivRAwILqBrtb3qIbZiXciyjJ7gexx8Mr77dfz1y56/cnsXifMluRnGCbpCBA5MYvyH9u3b0dOTg7q6+uRzZPm9KC6Ghg9Gtixw+uRpB61tfFhUN27a4cOKU9QV6zQnyQo69F6EivD4MHAbbd5G4qlTO4B9afViRZuWh4htfHMmyfEkxGx54ARRt9t5DkCOHM++RGj34pCcbEQoF7sn9/OXydxM2RTzeNZUqLtVWUYxlPMaAP2IDGpgXKDZ3HkDrHhP04ldjvR3Pa//9We9JhtfGm1UaabT6vNYrYogFshYGaesqdioQCFYFDk2hmxerV3++en89dp7BYw0UPPO84wTFLDOUhM8mMUIsTYJzZMSHayPHu2ttdBebK7Z4/w/P3nP8DWrebHppXgrpXPMnkykJ8f/0TZbv5LaamzxR+sYrYogJs5KEY5aMpx9Xuejl169ZJbzsv988v5m2w4mc/IMIxvYIHEJD9GE0JGnWBQTFyfeUbbU6KVbCw7WZ4yRXw2VmCoiRE7xE4stULMVq8GLrkk+rXiYvF0+ckn45dX8l9kn6L7YbJkVmwYJZwDQEGBeH/ePPOTZpmJtxeFAhJZLS9ZCiH44fxlGIbxAZyDxCQ///438Ic/eD2K1CQQUBcH4TDQuXN8SWg1Skqic0f0KqZZpbwcuP/+5rHJ5HzIkmz5L3PnAgMHGi8XmVOklYOihhtV5czkKznxHSS6Wl6i949hGIaJg3OQmPShuhq46SavR5GaBINAZaX9CeOqVcCzz4q8nrlzgbFjnQ+H/POfgVdfFR6OefOc9SgmU/5LdTVwxRX6y6hVJdPKQVHDjapyiawK5kW1PK56xjAMk1SwB4lJXtzwRDDRaFUuk6185gVONceNpaJChOL5FZnfg1FVMiXsrK4OuOEGYPt27fW44fFwuyqYU9UXrcJVzxiGYTzDjDbgHCQmOdm3D7juOhZHbqOVz1JXl9hxmMENcQR4nx+ih2yhkqIi4ckYMkSIXK38m9df1xZHQHyhB6dwu1CA2QIWTsOFEBiGYZICFkhM8lFdDfzpT8CmTV6PJPXp1En99Y0bEzsOL9EqVCFDogoByBYqeeUVoL4+3ouiFKqYPt1ceKIbVdfcLBTgh2p5XAiBYRjG97BAYpILDqtLLKWlwEsvAcOGRb9eUODNeNwmEFBvlKmWH2IkfhJZCEB2Qv/WW2L7atX9nnjC/Had9qq5LSiTpZocwzAM4ylcpIFJHrjfUeLZvh247DLgwgujX5dJ5k8WAgFh48bJN8qsrhZemAEDgBEjxN/u3ZsT/BNdCEB2Qv/qq879fvLyrHnVtDA6pk6glDTXakqsVsCCYRiGSTtYIDHJA/c78o7Zs4HzzhNV6ObOFRP9/Hz3t5uXB1RVCcvLs76e8eNFwYnKSjFBjkQRQY8/DqxcKZarqBB/V6xQF0d64mfmTG0hr7xWVqbde8oKMhP/ggJnQyPHjnXOu5MoQalXTU6Bq8kxDMOkPVzFjkkebrlFTF6Y9OCpp4TQUCar4XBzGe/GRuDFF+X6MAHRFegi1wOIfJD+/eUmxTJV0PLz5YSIVoVAq2j1MlKEwM03O/f7ycsD1q93Rkh4UVmuuhq49tr48ycvT4SUckU5hmGYlIP7IDGpRzgswoOY9GHVqugJcTAInHkm8NBDwCOPiImsLJEhaLNnA6NHAw8/LGzgQPlQLpkqaLJeGqcLAWj1MlI8ZEOGOLetl17yprKck6iJ6y1b3OuFxDAMwyQNLJCY5GDBgvSqnMYA//iHfhhaaakImdObqMfmlGiFcq1eDVx8sQiP08NJUeNGIYDSUu0wQaMwPBlKSkS4o5MelkRXllNyGdVwKwSSYRiGSSpYIDHJgZtldxl/sn17cxicFpdcAsyYof5ebAW6cFjkzehFFQ8fLrwtWsiKmoICfSFSUCDya+bNc34irpSRHj48OnRQJv9Gi7Iy7ZwsuyS6spwVj5USljl9ujvfGcMwDOMrWCAxyQGX3U1PjAQSIDxCVVXaxReUCf0jjxg3uA2HhejSCrHq29c4tCwYBJ57Tvy/lhDZuBG4/HK5Sm1OTs61wvBKSkQVv9hjqHiMJk+Wz9MyS6Iry5n1WLlVXY9FF8MwjG8xJZAmTpyIE044AVlZWejUqRMuvPBC/Pjjj1HLEBEeeOABdO3aFW3atEH//v3x/fffRy3T0NCAm266Cfn5+WjXrh0uuOACrI55ord161aMGjUKOTk5yMnJwahRo7Bt2zZre8kkP8okikkvZCeNeqFlgJjMTpggv12tEKuFC43HFA6LBrtqQkSNujoR3nfLLfETZTcm51rHSraKn9Poebb0+lBZxYzHyq3qeokoac4wDMNYh0xw9tln09SpU+m7776jr7/+ms477zw66KCDaOfOnU3LTJo0ibKysqiqqoq+/fZbGjZsGBUWFtL27dublrnuuuuoqKiIPvjgA/ryyy9pwIABdOyxx1IoFGpa5pxzzqHevXvTwoULaeHChdS7d28aPHiw9Fjr6+sJANXX15vZRcbPjBtHJAJg2NLFAgHxvdshFCIqLja/7dra+HVVVMh9dswY8fmGBvF32jSiggK5zxYXE1VVCQsE1I9JICDeTyWqquK/p5IS5/dTOR/Ujq1yfEtKxHend94oy0Xct6T3M52+V4ZhGJ9gRhvAzoY2bNhAAGj+/PlERNTY2EhdunShSZMmNS2zd+9eysnJob/+9a9ERLRt2zbKzMykGTNmNC1TV1dHGRkZNGfOHCIiWrJkCQGgxYsXNy2zaNEiAkBLly6VGhsLpBRDa1LBlh52221CaFRUiL9mJqW1tda2OX58/HbMrksRO2Y+p5zneXn6y1iZnPudUMj692wG5XoSe02JFCmy35makNbbPyOxXlAgBLWb+88wDJOGmNEGtnKQ6uvrAQC5ubkAgBUrVmDdunUYNGhQ0zKtWrXC6aefjoULFwIAvvjiC+zfvz9qma5du6J3795NyyxatAg5OTk46aSTmpY5+eSTkZOT07RMLA0NDdi+fXuUMSmCUnWKyOuRMF7x1FPWw5GM8o60ePjh6O2Ew8IOXO+ktz10qCgtLotynuv1eCJyp/S112gVmHAao5LopaXuVNeTaXZtJj+NYRiGcYUWVj9IRLj11ltx6qmnonfv3gCAdevWAQA6d+4ctWznzp3xyy+/NC3TsmVLdOzYMW4Z5fPr1q1Dp06d4rbZqVOnpmVimThxIsrLy63uDuNnZCYVTHqh5O2MHQv06CGqwhUViVy1yEl1dbXI7bGznaFDgdtvF8n0Zs9DIpFH41YPr+efFxP0wsL4fXeTcFj8Lr3YtlOUloreUFr74UZ1PbPVOJXzL7LYCGOPVDh3GYZxHcsCacyYMfjmm2/w0Ucfxb0XiEm0JaK412KJXUZteb313H333bj11lub/r19+3aUlJTobpNJErjENxOL4mX585+jX8/PF0/fhwwRT+KHDbPneVQ++8QT9taxcSOQkyNKlzvpCZ01q7kseVGROB5uT6Srq4VHN1Is5ucDL7wgKgAmE4rHSg2lMExdnfp3FgiI981U1zNbjVMR2GVl4pzmibw91M7d4mJRJIQFKMMwEVgKsbvpppvwxhtvoLa2FsURlcW6dOkCAHFeng0bNjR5lbp06YJ9+/Zh69atususX78+brsbN26M804ptGrVCtnZ2VHGpAjLlnk9AiZZ2LRJVDwbMMC+OJKlfXu55err3R2P4lUzCsmyU15aq6rbpk3ApZcCd9xhdtT+xY3qelaa9aZqOGWicasiIcMwKYkpgUREGDNmDKqrq/Hhhx+iR48eUe/36NEDXbp0wQcffND02r59+zB//nz07dsXAHD88ccjMzMzapm1a9fiu+++a1qmT58+qK+vx6efftq0zCeffIL6+vqmZZg0wWx5ZoZRSFTO2s6d7qxXVnjFcuWVwL596u9plZeeNctYNMnkAj7xhH6j3WRDJldJj1gxClhv1ptsnnQ/9XnSO3eV17RK+zMMk56Yqf5w/fXXU05ODs2bN4/Wrl3bZLt3725aZtKkSZSTk0PV1dX07bff0vDhw1XLfBcXF1NNTQ19+eWXdMYZZ6iW+T7mmGNo0aJFtGjRIjr66KO5zHe6YbU8Mxtboq19e+erLF56qfXP5ufHl4s2UwlSqb4XiWxVt4KC1Ku+ZqW6nlrZ8sgS7mavbWaq5XmN3r57gRsVCRmGSTpcK/MNQNWmTp3atExjYyNNmDCBunTpQq1ataLTTjuNvv3226j17Nmzh8aMGUO5ubnUpk0bGjx4MP36669Ry2zevJlGjhxJWVlZlJWVRSNHjqStW7dKj5UFUgpgtTwzG1sqWDBo7/ORPXXMPmxQhFRZWbMgkO0BBfBEU6bXkSK6lB5ZRn2ZkkV0+rHPk+y5W1GR+LExDJMwzGiDABGRV94rN9m+fTtycnJQX1/P+UjJyvTpIgyIYZKBQEBYY6PXIxEoRQRWrBD5KwMGWF9XcTFwzTXy4a7jxwNHHpmeVcLCYRG2qFXxMPJ7UY6Lkh8DiKl65LKACOfTq7jnF6zsu9Z6nNzXefPkzv/aWu2iHQzDJD1mtIGtPkgM4ypmKz4xjJcQ+UccAWI8SnK/3fyVujohjmQfNj38cHOOU5cuwMyZ9rafTBi1JYj8XhSMcp0A9dwxvxUWsLLvsWjlydnZV6PiGIEAUFJiriIhwzApDQskxr/06yf62zCm2I8W2IxcrEYRluEQfIve+BrHNtk3OBo/4WCsQ2fsRDs0wmSyOJNcKE/h7UAkJpEtLHSGsFPhbt8+USnuppvEX63iE37CaoPZ0lJg5UrhxaioEH9XrBDvJUP1tXAYmDtXblmtY+RWpTk3KhIyDJPScIgd428uuAB4802vR+ELCMAm5GMZemE5DsEv6IbVKEYdirAGXbEZediCXOxElul1t8UutMMuZGM7umAdilCHItShK9Y0/S3GanTDL2gBrvSUVNTWCpHiVI+iYcOA116z9tmZM4GLLpILn7rjDuDpp6MriwWDwK23Ao8/bm67iWwOajecK3KsnToBo0fbD1lzG7X+Qnqo7buV8Dyz36vaOEtKhDjiPkgMk/KY0QYskBj/sm8f0KqV16OQoq4rsORI4H+HCvulG7A9W9iOA3ql7W5h7XYBxauBbr8I67UMOPa/QPtdzevbh0x8jd/gKxyH/+JYfINj8B16ox4dPNk/hUzswyFYjiPwAw7HUhyOpTgCP+Aw/IgsuFTumrFOSQmwfDnQs6f85NWIigogMxO44QbRANcM2dlAVpbwCCioNeq84w795rzjxsmLpEQ3B1Um+kYNZtVEjVmhoWA1d8YJ4ah4fWSmEnr7blZYWv1eEymWGYbxFaa0gavlIjyEq9ilAAMGeF9JTMPWF4D+PRL0x7+BevwEsv3ftvZU/Px5dMS5T1DPzh9RS+zxehdNW08so8tQQU/hFvo/nEo70db7QaW7VVU5Xw1SqVAXChGVlxPl5tpbX2x1s4YG4wp+waBYzggvKqopx0VmX2XGKmNWqq85UYrbTHVEo2NuptKcHyvlMQzje7iKHdiDlPTMmuVcSJBD7G4DzB4C/HsU8P4gIGwhHaMJAvDlb4E3zwc+OAv45CTTKwygMSocrgAbkYstyMUW5KAebbEbrbEXbbAHLRBq+lwYQexCO+xE+7i/29ABa9AVa9AVdSiy5bHKQBhHYglOwGc4BR9jAGrRAytSP+MpIwPo2BHYvNnbcZSXA/ff71w1yNin/2Y8B2bW/eyzwC23GH9m8uTm5p5qHgGnKqqZwcgDpBXOZTRWI8x6kLS+u8iqeTLeNVmvD2Acyia7rpqa5Ag7ZBjGd5jRBnameAzjDuGwCN/xCWsKgaduA16+BtghobWztgOHLAc6bgWytwNZO4AAAbtaZ2D1z6fhl8+GYuPiCxBeWyI3gKztaHHEN+jV5hucueYHnLNsOQ7DMnTDL8iMED5usAttmwTTL+h2IKhO2DL0QgiZmp9tRBDf4Wh8h6MxFX8EAJTgVwxALfpjHgagFt3xi6vj94TGRiGOysuBXr2AJUtEVbdEUlQE3Huv+P9ly+yvLzaRPRwWQsCp52tEzdXNfvpJ7jM//aQfZpWbK19RzYnSzkaCsbxcfCdqk3aj6m9aKGLATPU1ve+OSKyzrEyUFTcSGLIFKcaPBx54QH99SqU5o9BEILHfK8MwaQkLJMZ/zJtnPrfBBX7uATx+BzD1SmCfRipUu53AqR8BA2qBkz4BDl8KdF6PJi8JAfgKx+FVjEQNLsMaFKmvSCEYAo77CuizSNhJnwA9ViAUAH6AsLd/Bq6cCox+BShxKK1Ei3bYjV5Yjl5YHvfefrTAzzgYP+AIfIfe+Awn4DOcgLXoqrm+VTgI/8IV+BeuAAB0w0oMRA3Ow9sYiJrUyWMKBIC//a25B1GiBdLevcDs2eL/ZXsX6VFcHP303+qE3oi1a0W+lAw7d6oLEqXi2c03y62nqkr8tZOLYiQYAwHg5ZeBU04BNmyIz32xUobdavU1M6W4jQSGbHXEM880HqNSaW7oULFvkccycl83bJDbpt3S9gzDpDeuB/x5BOcgJSlVVUQdOyYmP0PDdrQD3TkRlNmgni/UfjvoiqmgD84E7Wuhvo56ZNFf8Cf6Db403OSR+I5uxmR6E+fRVmTR578FTboDNGAuKLhfO28pIwS6sBpUezqo0cPjFWur0ZVexxC6Bw/TIMyhHGyV+mgmGmgg3qfJuJn+h0M83w9HrLZW5Gnk5SV2u0p+hpXtKnkc5eUi30PZh0hk80XMWnm5fA6SXu5TIEBUUGBu2zL5N6GQOB6xx8VKnldRUfP2amrMf76kxFqujZlcHyOUHCSt3KlAQIwz9vzRQy03KnJfZY+1kivHMAxzADPaAAkYjyewQEpC7CQpO2CNAL12Caj4V3VBcvR/Qf+6HLSzrfY6luJQ+hP+Qu2wQ3NTGQhRf3xIk3Ez/YQeumPamAd66WrQWe/pi6VjvgZNvUJbsHlpIWTQFziOnsStNBhvUDa2SX20F36k2/AELcJJvhKApqyszJ5AGjo08WPOyzOeeGsVIdCzjAzj37eSYD9unP5yp5wit838fPPXlPJy9Qm9XlEDO4Jx3DghloyOS3GxEFJaolUWpwWGct2OPc52CiZoCVHlPadFGcMwaQELJGKBlHSYqYbkgq0vAJ33prr4OGkR6I3B2l6aRoDm4TQajDd0N3MSFtGfMYbWoZOlMdYVgibeCer1o7ZQ6v6zEFQNmd4cRxnbjyB9huPpcdxOgzCHWmKv4cdK8AuV4Wn6GH0oDO9EtCWzIiaUJ+ZOV6CTNb1JrdUHGUaiB4ie3I4bF+9JCgaJbrtNvnJeWZn65N3IIr07evsc6W1z67twujKbF14fp3FDlDEMk/KwQCIWSEmHVxNBgN4fCOqyJl5slPwCmlWqL4w+wJl0ChZorr4A6+kOTHI0ZKwRoHmngS6eKcLs1P4r+QX0/PWgPa28OaZmbAfa0X9wAV2DF6kIqww/UoRVNBZT6CP0TQ7Pkuxk/sILicaPF14CZXLqxYMDvQmylfG0b988YZUVEor3oqGBaPJkojFjxN+GBnPXitpa9cm7rJWVie9D7/OKd0dPdNgxs6W3ZUi018cNZESZU2NK9L4xDOMKLJCIBVLS4VZOg47tawEa91i8uGi5F3TPw/qhdDU4Q1cYnYr/o9dwCTUg09V9WHmQ2IfsbepCqetq0DM3gXa3TuyxtWqNAH2FY+lh3EMnYrHhRw7GcrofD9Ay9PR87I5Z7IRYxvPiht14I9G0afZzbWpqzP/O9fJfZNeRlxctNGtrhdBy63iVl1vzVhnZU0+5MzF3wuvjhnAws069ZZ3o8+TkehiG8RwWSMQCKelIsAdpaw5o4PvxgqL3N6Bvj9L+3DfoTefgHdW3MxCiS/AaLcaJCd0XZX/K7wN12KIulArrROjd/mBix2XXfkEJPY0y6oOPDRfvg4/pL/gTbYa3RT5sW+RTfI9DT5vMSq6NmifKifwX2XWUlyf2OqM0MHXz+3J6Ym5H4LghHJwUNU40kuWGtAyTUrBAIhZISUdlZcIKNPzUA3T4kngRceOz2p6WtehMV+FlykAo7u0g9tOV+Dstx8EJGb+e1WeBHrkblLdRXSgd8b1+PpWf7VcU0xSM1fXcAUQtsZdKMYvewTkUQobn444yM+d4SYm16mZujt1Mro3aBNIo/wWI9vyoYWcdMp+1aoqoixQdTz7p/HcQeVy9Cv1yQzg4tU6jhwqyOVZOrcdNOPSPYUzBAolYICUVCaxe91FfUP6GaNGQVQ/6zwXqy+9HkJ7BTaqV1zIQotH4hy+EUaztaAd6/HZQwXp1oXTaPNAnJ3g/Tqv2K4ppIu6kI/Gd7qIHYSWV4z5aBYMqYX61iy/2fgyR1rGjXGU4vaf+VVXG2zGaDGvl0Mh83unrjVHOltMl3pXtzZzpTeiXG8LByXU6VaXP7+XEOfSPYUzDAolYICUNCQwhen8gqM2uaKHQbYV2SN0inKTZx2gw3qDvcURCxm3HdrURle+0cpQunQFafrD347RqjQB9jt/SzZhMnbBOc9EMhOg8vEn/wQW0HwY9dtjs2YQJ+uWojUSDkeBQnpgPGyZKh0d+NhgUOVtGOBUKJ+Pd8CKHzM1JshvCwcl1OtXnycl+UU7DoX8MYwkWSMQCKWlIUO7RO+eAWu2JFgcnLwSt6xS/7C60oZsxmQIIx63qN/iS5mJA4ic8Nm1jHujmyerNbzMbRKGH+izvx2nH9qEFvYXf0yV4jTLRoLloV6ymB3A/rUVnz8ecUlZSIsSA0VNt2d98TU10+FBlpZyokZ0ghkL2y3MbFTXwokkwIConOhluFSlMx4+XG8OYMfJhX06KkVT3ICVD6B/D+BQWSMQCKWlIQPW6NwaLynSR/11UpZ5v9H84lXpiWdxqcrCVnsWN/stpMWnLDxZeI7X/uqwRzWbDAe/Hadc2IJ+ewG10KJZqLpaJBhqOV+lj9EnKnCxfWEFBc6U7rTzC2Kfasr952fLoWp+NLJeuh6w3yUqzVjf7IxnZhAk2L84mj4+WyYR9OSlGrPZ5is3naWjwZ0Navwo3hkkCWCARC6SkwWUP0lu/j/eaXDpDlPiOXG4vWtKteFLVazQS/045b8MnJ4g8JLX/TlwMWnyi92N0whoBmo9+dDn+Ra2wR3PR3+Jz+gdG02609nzMSWeKUJB9qp3IipWyORnKuMrKtMdvNnQpFBI5W15+N2Vl9pL3nczX0huL081rzfZ50srnGTfOfw1p/Rz6xzA+hwUSsUBKGkIhonbtXJkcLDw5Pudo5L/jS10vxaF0HL6In1vhV3oXZ3s7wXHRGgGqvhDU/Wd1ofSHV0Brung/TqdsCzrQFIylXvhRc7FcbKJ78DCtQRfPx5s0pjxxl1m2pkaYHe+QGbMykXWiPxCRp82v48xK8r5b+aFaY3G6ea3s92iUz6MWNmrlfHAK9iAxjGVYIBELpKRBpqKVBVtyOCh3U/SE/4qpoFBG8zKNAP0dV1Jb7IxbxVV4mbYh2/uJTQJsTyvQw/eA2u6MF0ntt4MeGwfa29L7cTplYQRoDgbRYLyh6jEERKnw0fgH/RdHez5e35sSliSzbPv2iR+f1apqMuWT9ZZzI3w4GCQaNcraMTArMtwSeHpjcUqcynw/yvsyns+GBv+U03ba28YwaQQLJGKBlBSEQq5MmFZ3BZX8Ep9zFCmOdqM1XYGpcR/PxwZ6C79P/CTOB7aqCDRimro36ZD/JW//JD37CT3odjxOHbFZc7Gz8B7NwaCU23fb5lXYnFVz+om6UZllt47JPffY/75kkBV448eLggxOjcVqbx8rn0tWb4zT3jaGSRNYIBELpKTg/fcdnzxsbw86+r/Rk/t+84WXRFlmBbqphtQNxPscWgXQglNAx32hLpTOeQf0w2Hej9Fp24U29BKupiPwveZivfEN/ROjaB9aeD5ez02tYWlBgffj0jOncjL0qt9FHpdQiKjIhf5bslXktEx2sm9GPFgVg04JD6s9gcyIQD94jyJx2tvGMGkACyRigZQUWAkV0bFwAHRhdfSEvvc3oC0dmpd5HwMpF5uiPhrEfpqEOyiMxDSrTQYLZYBeujq+qS4I1GIf6NYnQduyvR+n0xZGgN7GuXQGajQX64YV9DyuT++CDhkZog9R5KTx+OO9H5eeqU3GzXodZCq6RXpH3AghrqmxlxskKxSNQrkAEQFQU2Nc8c3uWIy+E6s9gawIOz81Y7XqbWOYNIUFErFASgpOPNHRiUP5fdET+eJfRdiY8v4LuI6C2B/1sU5YR/NwmneTNp/b1hxQ2dNCFMX+12kd6G9/TI2y4Gr2FY6lUfgntcA+1UU6Yy1Nwh1UjyzPx+q5edHrR9a0wrnMeh3MVnRTBFlVlfrxad8+/vWgQRNjpXx5ZaX142HGayMr8PQqvunZ+PH2JvYNDfqeS6OwQhkRqGXl5SxIGCbJYIFELJB8TyhElJPj2CToPxdET95b7wZ9/lvxXggZdAueivvYyVhIq+BCCEwK2pLDQYPmqIfdHf8Z6OM+3o/RLVuNrnQnJlIW6lUXycFWuhcP0Qbkez7WlDYrIXx6ZZ3NeB2sVHSrqGh+wj92LFF2TNGXoiKiGTOIJk8WOTyTJ4t/y4iMvDxr+Zt5efL9oZT9lhG/ehXfZMyKV6aqiihf8jenJwq18nncGjfDMJ7BAolYIPkeBxsoLjlcVFuL/O/fI8V7O9GWLsB/4j52NV6ivWjp2BjSwRoBmn0+6ODl6kJp5L9FgQyvx+mWbUUOPYx7KB8bVBdpg100FlPoV7hQGjnd7ckniW6+2fzn8vLMix01r4OVUKzycvNiQfHEuFFeO3Y7MhN7s/tdXNxc8U3pKSUjPMwWFzDrzTMK5bPTDJeLIjBM0sACiVgg+RoH4/J3tQEd9W30RP3WJ8V7m5BLJ2FR9L0MYXoSt3JFMhu2tyVo4p2gdjviRVK7HaBH74ouipFqtgtt6BncRCX4RXWRTDTQH/E3+gk9PB9ryphWA1cZiw2FslK5zGzJbqvVORWhMHOm8PS41WhWVpBYKVVeXh59rTcjPAoKhMDSw4o3TyasMDKfx0whDC6rzTBJAwskYoHkS0Ihx5tE/ukv0RP0ge+LRrCr0ZWOxHdRi7fFTnodQ9yZcKSh1RWCLv+Xujfp4OUi7DGVhWgDMukfGE2HYqnqIkHspz/ib/Qzuns+1qS3LJt5XpEeE9lJf6TXwawnJTaczowpE+4JE9w9pjITe6vV6SKFlyI8ZEVHfr5zhRWsihcr++23UuAMw8RhRhtkgGESQXU10L07MHAgsGWLI6usKgVevK7534VrgIoRwM/hXjgFH2MJjmp6rwAb8H84DRditiPbZoCua4F//wFY2Af43WfR7/3cE7hwNnD2e8CSI7wZn9u0xH5ciVewBEeiEpfgOHwZ9X4YLfAPXIVD8T9cg5ewEt08GmkKsGOHvc+vXg0MHSquQ4WFcp/p1AmYNw+YPh0Ih4GiIrnPZWcD27dbHiqIgFWrgPJy6+sws50FC8T+Kfs6b574NwD06wfk5ppfd1lZ8zqCQaB/f+DII+U+u2lT83elxtq15sYyZYoYgxn69QOKi4FAQP4zZsfFMIy/SYBg8wT2IPkIs/HiErbyIFCHLc0ei0AYNHcA6DscSZ2wLmrxblhB/8Mh7j6NTXMLB0B/v1JUtov9L7gfNHYKaFOu9+N00xoBehdnU198pLpIC+yja/AircRBno81LU3xJsiUpG7fPr4AgGyxAjvhgF5YWZl2NT874dCxHpWaGvPflZrnR9a7U1BgLzfIatVChmF8C4fYEQsk32AlXtzA9gdBpyyInoTf8zDoWxxFBVgftfiR+I5Wo6v3k5A0sW3ZoNueUC8LnrMV9Ni41M5PIgih9B7OopOxUHWRTDTQn/AX+gUlno81La221lrlMmVZLaGkNOm0GpbmJzPaVxmLDFGsqrLWNFerd5WRwJXJZTK6bymFJowq5bmdg8S9jhjGMVggEQsk3+DCZGHSHdET7z4fg74MxoujE7GYNsOlJGc2XfvhMNA576jnJx20EvSvy1O3f5JijQDNwaC4QiGKZaKBrsMLXPUu0aZM3K1ULgsExGdqaoimTROluadNi5642umtk2gz6rtkxyL7QFk9FlrV57QErtlqeFrrjj0vtHLgnNie2bFwaXGGsQwLJGKB5BusVEHSse+PALXc2zzZzt4GmlN4VFzp5ZOxkLbBRqI0m21rBOjN80CHL1EXSsd9Aao5w/txJuI4vIuz6UQsVl2kFfbQLXgq+fooTZ5svuKXHyzSKxEKiWIIZifwseuIfcJvp7dOslukR8VuBIFR/6LYdStePKvo9ccC4j1qdrdndSxcWpxhLMECiVgg+QYHPUj7g6ATF0dPsidd3IO6YE3UoidjIdXDZtUrNke/t7/8ST0/CSQ8TUpT31S2RoDewTl0Aj5RXaQ9ttP9eCA5hH1kSFEiQ8ratHFu3ETWc2z0vFCR+Ttu9zOyY1ZLkRtZ5OTd6rkhG7bmZPiZTH8sxXvodriblV5dDMMYwgKJWCD5BgdzkB4bFz2xHvCvQuqBn6IW64OPWRz51La3B93/AKjtTnWhVDoL9O1R3o/TbWsE6G2cS7/Dp6qL5GITPYHbaDdaez5WTYt8el1Z6f14ZG3mzObrkp2WA5F5TLHvRT7hN1viOtktNvzLTgRBWZm6CHErJ8dKfyy38NNYGCaFYIFELJB8RXm57RvvksNBrfY0T6azfu5Ih7X4Jmqx3+JzFkdJYHWFoGteBGWE4kVSIAwaMQ30Yy/vx+m2NQJUjQvj+nUp1hWr6a+4lvahhedjbbKMDBGSFptv4/W4ZE0RNlbHHFsJz2g55Tg5HGqcEAsEREiZbKhgbENeIme8i0VFYt0VFeJvbLEHp3JyrPTHcgs/jYVhUggWSMQCyVfYLHsbDoD6fhQxjd7VhnoWRFcIOww/JF8OR5rbd0eCLqpS9yYF94Ou/DtoRTfvx+m2hZBB/8Qo6o6fVRfpiWX0KoZTGD7KZ1EmpWZKN/vBysrs5wWZqVSnPOFPxsp2ihesqsq4mt24cerX/kQUrNDLyTHjbfLCa6M1PvYgMYwrsEAiFki+IRQSJVdt3ABfvipi6hwOUOe+s6IWKcEvXAksie2z40Hnvq0ulFrsA10xVXgQvR6n29aATHoe18fl1Cl2NP5Lb+NcavTBWJusXTvvx2DG7JStVqyqSv4J/7RpzdfBZPK0BYMidJJIeMv0jptRPkwiClYEAuI+E1lRUM1TmJur7umK/I60xul03o9e/lqix8IwaQILJGKB5BtsPjndkA/quDliwlz2WNQiBVhPS3Go9xMKNtv2UV9Q/w/VhVIgLHKUPjve+3G6bTvRlibiTuqALaqLDMBc+gzHez7OtDRlYirrOVOalcp4YfxmSjii7AMusxXn3DSjY52Xp+5xMls+3Go+lEz+mpulzBkmTWGBRCyQfIPN2PvR/4iYJr94TdTbrbGbFuNE7ycSbI5ZI0Tp75MXqgslEOis90Af9oe/PCku2Fbk0D14mNpip+oil6GCfkIPz8dp2ZK5BHZNjVzoWDLvo9lwRKN8mEgx4ZeiFVoiSaZ8uNUeRWYq1LlRypxh0hgWSMQCyTe8957lm9f8fhHT4vfOIgT3Ry0yExd7f4Nlc8UaAXrvLG2PEgh00iLQ9GGgfS28H6+btg6d6EY8Sy2wL+7tTDRQGZ6mTbBYjY3NmlVU2GuAmkjLyLD2uXyTOZ1m8mH8kpOlFaZm5Bmy06PIbH6RW1X7GCYNYYFELJB8w+OPW7pxNWSCjvzuwFT4px6EDtHhRo9hnPc3V7aE2MKTQefP1hZKXVeDHroXtL7A+7G6af/DIXQJXlN9OwdbaRLu8Hdp8FQyZfJaVWVeSCTaKivFOM2UNDebN1pcbG7inojiDWa/S7Nj11qfUX6QbNEirlDHMI5jRhtkgGHcpLLS0seevxFYchSA3W2A0mpgW8em967GyxiHJxwaION3+iwG3hgCfHM0MOJVICMc/f6aIuC+h4GSVcDoqcCXx3kzTrfpheWoxDAswsnoh/+Leq8eHXAXHsOh+B9ewRUIgy/trhAIACUlQL9+4t+lpcCUKZ4OSZOCAqCsTPwdMsTctXjkSHPbuuYaIBiUXz4YBJ55xtw23GLtWnPLL1gArF6t/T4RsGqVWC6WcBiYNk1uO4WF5sbFMIyj8F2UcY/qauDzz01/bFMeUD4BAAG49iXgv79peu9ULMDzuBEBxwbJJAtHfwe8ejmwrBdw43NA+x3R7+9rBfxzNHD8l8CpC4BXrgB2tvNkqK5yMj7BfJyO2bgAh+OHqPdWowRX4hUch68wB2eDPBpjShI4cNWZMiVaDBQVeTIcXdq0ATZuFGMdMADo3h3YuhUoLm7eDzWCQWDmTCGozNCrV/S/w2Fg3jxg+nTxNxyO/0xpqRBtZoSVG5gVIrKCSm25BQuATZuMP1tQ0CzC0wWZc4ZhEkkCPFqewCF2HmOjrO0Nzx0InvrzmKi3umANrUEX70My2Hxh27JBk28GHbxcO/yu/XbQ1S+JML1ULOqwH0F6EddolgY/Ex/QFzjO83GmhGVkEN12m/q1LrZ5qd9MyY0ZN06/5LZS2tvs9TsyX6a8PD6cT6t4gZe5SFZLZdvpUSRbtKh9+/QqxGC14AXDmIRzkIgFkudYbCD57VGgjBAIi04itGhOSm+BffQR+no/0WDznYUyQG+eJ6rb6f13+BLQ47eD1nXyfsxO2060pQcxntpju+oil+NftAo+n8Qniw0bFj+pLi/3flxGpgiCykrjymiK0JFdp1JxTau8tlbxAptVTg2ttUZOnp1S2XZ6FJkRhOlSyttOwQuGMQkLJGKB5ClVVeIJmMmbWSMOTHK3ZRO6/xz19nO4wfsJBpvv7fsjQDc+C+qwRVsoBfeL8+xvfwRt7uj9mJ20dehEN+A51Yp3bbCL7kM57UCSNXf1o+XmRk/c3J7oO2k1NfqV0WR7FikT2JkzzYsphUR4kLKz4+9HdktlW+1RZKY4RTo0g7Vb8IJhTMICiVggeUZVleUb2Vu/B6ERhBHTot4agWkpGR7F5p7tbg2quAw08H19r1KLfaBz3wa98gcRsuf1uJ2yH9GLLsZM1bcLUUdTcQWF4YMKYsluykTYL2WrZSxW3MVev2Ury5WUiJA9s+GFkaFnoZD7VQAV0VJe7mypbKs9isyWh6+psT9Wv2InXJFhLMACiVggeYKNvKP9QREChX+OinrrYCynemR5P6lgS1pb0Q00YQLooJX6YqnlXlFO/OWrQHWF3o/bCfsYfehELFZ9+zh8QfNwmudjNGXKpNwP5aGV8YRCImwtGPR+PGasvDxaKJi5fpeXi3228j3Elq8ePNj+vnTsqC+03PJEWO1RZKbsup6gTXZkPa9c8pxxCBZIxALJE2w8RX35KhCW9SS0b86hCGI/LcaJ3k8k2FLCwgFQzRmga14E5W7SF0sg0PGfge5/APTp78RnvR6/5f1GgF7FcCrBL6qLXIQqWoaeno9T1+65J3oCOnNmfK+eWIGSKBF1xRVy28rL84+wUyw/XxxLs9fv4mLrhSkivQE2Ig6ivmfZHDA/eSLM5Ommai4Oe5CYBMMCiVggeYLFOPzdrUFdV2YQTl4Y9dYjuNv7CQRbStq+FqB3zwaN/gcoZ6uxWOq8FnTl30HTRiSvd2kX2tBDuJfaYUfc25looFvxJG1BB8/HqWqRYUZqoU05OUTTpzc/zb/ySnPrz8hwfx+MKsh5aePGJSaPKtKLYyPiIG7s06bJLTt+vLaXR80bZNVDJAPnI9kreMEwFmCBRCyQPMGiB+nx20F46paol/vjQwohAZMWtrS3vS1FFbxR/5TzLIFAh/0Auu4F0GuXgNYXeL8PZmwNutAf8TcKIBz3dh420rO4kfahhefjjDIlxMYof2PYMKKGBvnwpVgrLXVvH7QqyPnFJkxwfxuRYX1O5G0FAsIzZyaPSa18tJrozsuLr8rndOlps/lIqehJsVrwgmEswAKJWCB5QihE1KaNqRvc1hxQ9mc9Ca13N72cjW30K3w6iWBLaQtlgD7qC7rrUVDvb+TEEgh01LcidO/vV4pKeskQkvclfkP98aHq24djCb2F3/unOIpSeU1GXGRnW99ORoalCpzSNn682Jd77vH+mMZafn5i+jkVFIiwPq8q/8VOvM2IFDcm7WbykbzOxXHLo2a14AXDmMSMNggQESW6OW0i2L59O3JyclBfX4/s7Gyvh5MehMNAu3ZAQ4P0R+5+KIBJNR8C8/s3vfYirsW1eNn58TGMSX45CHj7POCtwcD804Hd7eQ+l7MNOPFT4OTFwo77CuiyDgi4OlrzEIA3cAFux5NYjl5x75+F9/EUbsPR+C7xg4skPx/o3x+YNcvbcThFTg5QX+/uNtq0AfbsMfeZiy8GqqrcGU8sw4YBr72WmG3FEggAxcXA8uVAz57A6tXmP7tiBRAMOjOeuXOBgQONl6utFb8DL6iuBm6+OfpYFRcDzzwDlJbaX384DCxYAKxdCxQWAv36OXd8GeYAZrQBCyTGOebNAwYMkF58TSHQ/c7rsL/sL02v9Q/MxYc00HcTSYbZlwl8dgJQOwD48AxgYV+gobX85zutB37zNXDsf8Xf33wNHPo/oEXYpQGbYB8y8QJuQDkmYBs6Rr2XgTCuxt/wIO5HZ2zwaISMaYYOtS4oMzKAxkZnx6NGx47A1q3ub0eLyZOBW26x9lknxUo4DHTvDtTVCf9JLG6IMjNUV4vzKXZsgQN36lmznBFJDOMyLJDAAskTzj8feOst6cVHlxfjn08sAXZmAQBaBXdhSfhoHIwVbo2QYRxjbytg8clCMH18CvDpicAOk5eaVnuBw34EjvgBOHypsCN+EMKpzV53xq3HZuSiHBPwAm5AGC2i3svCdtyHhzAWf0Yr7Ev84Bh5gkFg/HigvNza5wMBMRlu3x7YudPZsUXSti2we7d76zdizBjgueesfbaiAhg+3LmxVFcLD54WVVXeiBBFvGl52bwWbwxjAjPaoIXuuwwjy6xZpsTR6iLgX/99ukkcAcDE8L0sjpikoXUD0H++MAAIZwA/HCFEk2JLjgQoQ3sdDa2Bb44VFkmgEej2C9DzJ+Dgn4EeK6KtYKM74Xp52II/42bcgBcwDk/gLZzf9N4OZOMOPIGXcC2exq0YjLfY0+tXwmEhjnJzgS1bzH+eSEx8W7d2VyCZEUeKaHOSnj2tf7aw0Llx+JkFC/RDEImAVavEcl6E/3FoHuMS7EFi7BMOA507A5s3S39kyJgz8MZzc5v+fWjHxViy9RQEkYCwDoZJEPXZwFfHAf89Fvj6N8K+PwrY39LeetvtjBZM3VcCRXXNVrgWaOWAk6cGZ+JWPI1vcUzce4PwHibjFhyJH+xviHGeQEAIJBPXZd9SWiomwRs3OrM+xevx449AVpa4h5n9rJMeEz97aaZPB0aMMF7OaY+aDG7nRTEphyltYLYCxPz582nw4MFUWFhIAOj111+Pev+KK64giNzfJjvppJOiltm7dy+NGTOG8vLyqG3btnT++efTqlWropbZsmULXX755ZSdnU3Z2dl0+eWX09atW6XHyVXsEkQoRDR5sqkqQj8VtaDAkd82vxQI0+c4zrvqTWxsCbSGTNB/jwb9cxTo9sdBg98A9VwGygjJV82T+S9/A+jYr0Dnvg26+iXQhAmgl64GvTEYtPhE0IpuoF1tjMcbQgb9FddSPjbEvR3EfroZk/3bP4lNlO+2U9nPD5afTzR2rDPriqxEZ7bUuFulp/3cMNWvY9OqPsjlwRkdXK1i9+677+Ljjz/Gb3/7W1x88cV4/fXXceGFFza9P3r0aKxfvx5Tp05teq1ly5bIzc1t+vf111+PN998E6+88gry8vJw2223YcuWLfjiiy8QPPB05Nxzz8Xq1avx0ksvAQCuvfZadO/eHW+++abUONmDlADUnt5IcOrQsfh41jNN/z77oBcx59frnB4dwyQVe1sBy3oBSw9vthU9hK1zMZqn3U6g0wag83rxN/b/lX+3XJ+D5zffj+dxE0LIjFpHHjbhYYzHNXiZvcB2cTqULDbMrnVr4IQTgIMOAl591bntWKGoCNi+HdixQ385J49JSQkwZYrwMMh6R9Q+K4Ne+Ffke0uWAA8/bLw+L7w0fiwg4ZTHjcPz0g5XPUiRAOoepCFDhmh+Ztu2bZSZmUkzZsxoeq2uro4yMjJozpw5RES0ZMkSAkCLFy9uWmbRokUEgJYuXSo1NvYguYzZBncH7MvCAkLO1qaXgllbaD1MNPljY0tD290atORw0Nvngp69EXTrk6CLqkC/+RKUs9VZz5Pef4EwqMPHh1G7U99RHepBOV/Tk7/pT9/0Bq3tDNof9P7YselYMOjt9mMbsRpZhsXm4QUFRNOmxffukfWOjB9vvu+PWm+f/HzRLFjtPRnzqlGs35q5OuHVUvsOnG4EzPgOM9rAlSIN8+bNQ6dOndChQwecfvrpeOSRR9CpUycAwBdffIH9+/dj0KBBTct37doVvXv3xsKFC3H22Wdj0aJFyMnJwUknndS0zMknn4ycnBwsXLgQhx12WNw2Gxoa0BDRf2f79u1u7BoDiKcuN98sLikmGdHjUWBhh6Z/X33Qfej0/SYHB8cwqUebvcARS4WpsT0LqCsC1nQVfxWL/Pe6LkDY5hWfMoBtfX8EFvweeOdc4JbJwP+ar8e/1h+L27+uBS6eBbwxDuixErmbRVGJWOu0If61/E1Ay/0WB3f22cB779nbwXTDTO6NkyjV8czmR1ktPb5xI7B0qfBYRdKvn/A0GHlHHnjAnGdBqyz2pk3ApZeaHn7TOPr1M/9ZJygtFYWY1PJ9zHjUnGLtWnvLaX0/dXXN5fE5hyntcVwgnXvuubjkkkvQrVs3rFixAvfddx/OOOMMfPHFF2jVqhXWrVuHli1bomPH6F4bnTt3xrp16wAA69ataxJUkXTq1KlpmVgmTpyIcqslTRlzGFW10WBuwVFYuuiPTf9uc8g3ePb7vzo5MoZJS7J3ANk6AgoQVfY2HJGL9S22YEMnYEMnYH1nNP1/5L/Xdwb2tTLY6O/fBQbWAM/eBDx4P7A9p/m9qqGiu+7tT2LLXZOw5fBd+PFwuX3psNVYTHXaAHRdIwRVhjLHYXFknWAwsWLJi9LeDz8srKAAGDkSGDJECI5nnhGT4tgwPqXHz5Qp5sSRjQeIqkSOAxD9Br0ICSstFcfMDyFpshUE1ZbT+36IxPEuKxP7yuF2aY3jAmnYsGFN/9+7d2/87ne/Q7du3fD222+jVEeRExECgeaisZH/r7VMJHfffTduvfXWpn9v374dJSUlVnaBMUL26U0Mf+r0MLCxuebxffljkbncB10yGSYNCDYChd9vgczUggBsz44WThsLhG3o1Pz/Gwv2Y+Pwp7Hhsn8jXP4w8Ler0VTXvKE18Mh4YOqVwGN3AiMqItSMNts6Clt2qPE4W+wXFfu6rhFWVNf8/5HWYZs7ZdFThkR7khLRhFaLjRuF2JgypbnimZPeEYsPEDVRxgHE590kumJbMOhNKe9YZD1/ah43v5ctZ3yD632QCgsL0a1bNyxbtgwA0KVLF+zbtw9bt26N8iJt2LABffv2bVpm/fr1cevauHEjOnfurLqdVq1aoVUro0eejCNY6P/wbvbJ+On7C5v+ndX3Xdy1cL6Dg2IYxikCAHK2C+u13Hh5wkZs6/AnzCv+Kx7Y9gy+2RExMVlTBIyahpxHb0Snu2/GrjM+w8YC+6XOASCUCaw6SJgebXY3i6WSVaLHVKy13WN/PEySsXp1c0jVypXG3hGZpH6LDxBVKSgAli8XPQY5JKyZYNC6589ueB6TNrgukDZv3oxVq1ah8MCk+vjjj0dmZiY++OADXHogFnft2rX47rvv8PjjjwMA+vTpg/r6enz66ac48cQTAQCffPIJ6uvrm0QU4yHK0xvJp2QE4LrciUBEWti9be/hJ7oMkyIEAHTcBly07StciNNQiUsxDk9gFZqVS/0PfVD/h08xGlPxCO5Bu+x1Gl4p9dcaWlsf3562wE+HCNMif6O6cFKs41b2QqUsSkiVnsdAtueOkw1kN24UgsxuSFgqVmuzmhdlJzyPSStMl/neuXMnli8XjxSPO+44PP300xgwYAByc3ORm5uLBx54ABdffDEKCwuxcuVK3HPPPfj111/xww8/ICsrC4Ao8/3WW2/hlVdeQW5uLm6//XZs3rw5rsz3mjVr8OKLLwIQZb67devGZb79wqxZwCWXSC1a3WYQLt7TnB/Q/vczsG3OcAS5GjDDpCy70QZPYBwew53Yg7ZR77XHDozHwyjDFLSCcUdbArCzfbNwWt8ZWFsoilDE2sb49FVH6LAVOGQ50PMn8TfSOq9n8ZT01NZqCyStpH7FWxHpwbHQOF2X8ePlSoBrjT/Vm6maFX9+LFvOJAxXy3zX1tYSgDi74ooraPfu3TRo0CAqKCigzMxMOuigg+iKK66gX3/9NWode/bsoTFjxlBubi61adOGBg8eHLfM5s2baeTIkZSVlUVZWVk0cuRIbhTrF0yUKA0jQEWdP29+KbifHi09xNvSsmxsbAmzX1BCl6FC9e2eWEb/wQXU6OD2GjJBv5SAFp0EmlUK+vMY0F2Pgv7wCuiMGtAh/wO13Ots+fN2O0RT3tJZoDsmgf4xWmx/a473xz9lzWrJby2rqFC/34VC+ve7QICopCS6BPiECc6Na/x46+PnZqrq+K1sOZMwXG0UmyywB8kltJ6kaVCReTFG7p/V9O92I17ElpnXWS/lyzBMUrIAp+JmPIOv8Nu49wbiA0xBGY7CkoSMpTEgvFC/dNO2HQ7dNjqvA474ATh8abMd8QNQvFqqZgWTKLQ8MPPmAQMGmPu82Qa0aiiejKlTgYEDzW0fcK6ZqrKuVAvRU/OsmW0EzCQdZrQBCyRGHqMLbgwEoCTvK9Rt/o14ofUelA8/BPdPXePWCBmG8TFhZOAVjMY9eBQbEF1wJ4gQrsdfUI4JyMVWj0YoIADbOjSLpZXdgZ96AssPEbaihygQYYe2u4RQ6v0dcPS3zdZlXYLC9fLzgZYtxaQ3NacB8hQXiyINapN+WbFTUQEMHy7+X1ZUjR4NvPJK/OuRoXtDhlgLCZMdw+TJIiRQS/ikcoheKgo/RhdXQ+ySBQ6xcwHZ7tUH7I3AuVEvtb52Mu1q44PQDDY2Nk9tG7LpdjxOmWiIezsXm+g53ED7EfR8nFq2P78D/dQD9P5A0AvXgW59EnTBf0BHfmc/fC9vI+j0WtCYP4NevAa08GRQfZZL+zJsmHqoUarY6NFyy5WX27/v1dY2f0YJy9M6rpFheWoh6wUFRGVlYp3KMnrf08yZ8eOuqDB/vIqLo8PL/B6iFwqJY1RR0XysGEYHM9oACRiPJ7BAcgETF9xGgA7L+6j5pcwGum1skfc3TDY2Nt/Yj+hFg/GG6tu98Q3NxQDPx6hqrVppvhfKAC0/GPTmeaAnbgNd9TKo70egjpvtCaeDl4OGVoIeuRv0zjmgdZ0c2pdx46RzSi1bXl7iRVhBAdHYsXLLauUfEZkTO5GMG6e9vVhxoUz0y8qI8vOjl1VEi17ub6ywITL9QLNpXMrYrOReJRK146F2HBgmAhZIxALJFUxccOehX9RLwStfpI15Cbw5srGxJY29i7PpcCxRffsiVNFP6OH5GO1aI0Ab8kH/d6rwDJU9DRr4PqjzWuuiqbAOdN6boPEPgqouAq3oBvMFL0pKiHbvFoLCrf13smiBrA0eLL/s5Mn6E32zSf1anhfFxo3T3kbsspHbqKxUX5/aOIyEnZYpwqemRm75SM9ZovC7Z4vxLSyQiAWSK4RC0jfREzu82/zPjBCNvL9n4m+QbGxsSWP70IIm42bKwda4t1thD92Dh2kH2umvJzPT8/2wYhvyQR/2Bz1zE+jql0AnLRKV8az813EzaNAcIZreGCzpaXrySXf2LRgU4V+yldictKwsc8sXF4tQO61wLTWPRUlJ/GTcyPOifC5y/aEQUZFOhEUgINZptEzseo1C8/TMTvU8N/G7Z4vxNSyQiAWSa5SVGV4wP8dvo1+67FVafnCCb47JYGo3rfbtRV6A12NjY/PINiCfrsVfKYBw3NuFqKN/4XIKI4VyZjQm8uEA6KceoNnngx4cD7qoCtT9Z2ui6aCVIjzv8dtB804D7WgXs712BsLTqs2YIcTGhRd6f5zNWm6uEEyxQsYo58VKzlJ5uXPjjvXomGjLEWWyAinRHiQrx5dhDsACiVgguUIoRNSmjeGFaVD7mVEvDXzyaO9vdn60oiKie+8lOuaY+Cff2dnej4+NzUP7CsfSaZin+vbJWEif4ATPx2jbRo8mamgwFQq1uSNo7gDQk7eCRkwDHfE9KBA2J5gyQqDe3whv1T9Gg5YeaiE0T8+CQaLbbnM/tykRlpdnLmRLNldX8bxUVTk7XjWPTqSwmzxZbj01NdZyr9zG7PFlmAi4DxK4zLcrzJ1r2I9hGQ7BoYEfAcoQL5z/BhavH4KTPk3A+BiGSSkIwCwMxe14Er+iW9z7V+AVTMTdKMS6xA/OKSorgR9+ACZMsLyKXW2Bb44Bvvwt8MXxwKcnAkuObL4My5C3Cei7UNgpHwO/+xxos9fykFKLQECU3JYpa22mb1K/fqZaZ0ih1c9JQWnXIVM2fPZs0fcQiF42sgx5okt9W+lLxTAH4D5IYIHkChdfLHoi6HBN62fwt71jm/59zPN98d8bF7k9MoZhUpjdaIMncTsm4S7sQduo99pjB8bjYZRhClphn0cjtEEwKCatDrOjfbNYUmzVQfKfb7Ef+O2XQiz1XQj0WwB03uD4MJOHkpLoXkNKD526OmDjRqCgACgqAvr2BXr2lBMgCxbITfYB8RkiYM0a4/Ua9fJRGr4DxsLHbw1VzQg87mnExMB9kIhD7BwnFDJ0aW9DNrVsub35pZMW0etDfBAiwcbGlhL2K4ppOF5VfbsnltF/cIGzoWIpZmu6iJymex8SFfSy6s2F5h32A+jav4KmjQCtKnJoXEH/9ruKMyWvxajk9rhxclXvzPQqUkp9m6mmp4ds0Qnl/u+nfkNOHgcmreAcJGKB5Dj33Wd4AX88oyzqpU6TL6NQhg9uamxsfrbWrb0fQ5LZApxCx+EL1bfPwnv0HY70fIzJYKEM0NfHiGa3I/8N6vGTOcHU4yfQ6H+Apl4hCkqYEqdjxog8Fy9KgFu1igrjEt6KDRsmCj1EvhYrQGQLDkQ2sjUjbIzwm/Axg5PHgUkbOAcJHGLnKOEw0Lo1EAppL4IMFLZbho27DhYvdK3DUxd1x63Pa3+GYdKejh2BffuAXbu8HknSEUYGXsFo3INHsQGdo94LIoQb8AIewAPIxVaPRpicrO0CLOzbbF8cD+xvKffZ4lVA/3nAmXOFleil1pSXAy+/7Gz+jRkCATGtNkNNDTB6tPkx5+aKMLV7740O+zIKFwNEuNjKlfGfW7AAWLsWKCwUuUzpGE7Gx4ExCecggQWSo7z/PnD22bqLvI4hKMV/mv7d8r57sHHKRGTvcHlsDMOkNfXIxkO4D8/gZoSQGfVeHjbhIdyHa/AyWsD5PJ90YE9r4LMTgPmnC1vYF9jT1vhzAHDoj0IoDawRwil3K4Qwyc0FNm92c9jqKLkzQHxejR5KXsvUqYaFijQ/D6gXNTCTD+QELCqYNIZzkIhD7Bxl5EjDEIDfZn/Y/M/Wu+nah/K8D4dgY0tVCwRE+eHYEJ40tqU4lM7Dm6pvH43/0ofo7/kYTduwYeYbnkaeI8o6HDxPGjJBC08GTbwTdM478nlMgTDod5+C7pwEer80i3a3TuBxNOppVF5ufIyqqqT6AOqaVllsM01oI0PiGhrMhcipbae4mMPSmLSBc5CIBZKjdOige9H/CsdGv3TVS9wYlo3NTVMSkUMhonvu8X48PrJ3cA4dhh9U3y7FLPoZ3T0fo7R17Sr6pVn5bOQEOxRythlphO0Pgj47XvRlOn82KHubnGBqtQc0YC7okbtBi08U63HtOMok78+cqb+Oykqi/Hz7Y9FqYKqXD6R8f7EiLrbAhZ7Y0cqd4sIGTBrBAolYIDnGa68ZXvAva/ty1Ev9nzkq8RMJNrZ0sWBQVMlSkE30TiNrQCY9jTLKxra4t1thD92Lh2gH2nk+TsctK0t4OdS8CVVVwuvo8hj2B0GLTgI9fA+o/4eglvuDUoIpZytoaCXo71eCVnd1YWx6jU1DIf2mtoEAUUGBM+OYNs3cPbiyUt6LqCV2ZPbPi6avDJNgWCARCyRHCIWIcnJ0L8jbkE2ZmTubXzqjhuYO8MFEgY0t1U2ZCDc0JGTim4y2HgV0Lf5KAYTj3u6K1fRvjEy9suBqE2TZymsu2K4P36L36D26g+6g4+l4CjQGpATTMV+D7pwImncaaF+LiH0LBKyHHQLqHpxEPmSYPFn+HjxunLXvP1bsyO6flndLa36QrBXwmLTFjDYw0WebSTsWLADq63UXmdricuzf367p3wed9wIG1Lo9MMYSSqJxUZHXI2GcYMoU0WSya1egocHr0dgnNxdo397aZzMygHbt4l7uhI14EdfhCxyPfvi/qPfWoAijMA2n4GN8ht9Z265fKSsT1RHnzQNefRW47joxBbZLbi4wbJipj7RtbI1BGITH8Bg+x+fY2LgOs67NxXV/BXr9T/tz3xwLPHYX0H8+kLcZKK0CXh7XAave/ivwj39Y34e1a+Nfmz3b+vrMUlAgt9ysWcATT5hfPxGwapW4fyuo7bMasstVV4vqewMGACNGiL/duxs2kmeYpCIBgs0T2IPkAP/6l+7TpkaAijt80/xSlzX0wlUtPHlKmVQ2fryIJ0/kE93I0IuqKu+PARubYieeKPrhVFbaX9dR2uG9jQC9hkuoBL+oLjIa/6C16Oz98XDKsrO9HwMgPAyxRFyDfikRYXWXzgB12CKXv3QUHUW3zzuBas4A7W1pcjyxXhIz10MnjqmMlyYUsh/SF3ncnfQgcS4Tk8RwiB2xQHKEa6/VvZh+hL5RL7W67SHa2dYHN2S/mxKDXlWVuCpkeXnRN67KSqKMDO+PBRubEp6jlyPhoO1CGyrHfdQGu+Lebo/t9BjG0V609P64pIqpTbo1RMn+IOjjPqDxD4KO/0xOLLXfEaCLqkSz2g35OuNQCz0zc94VFBB17GjvWMjm+TgR8hd53JX91HooZ5SfpYTS1dToFw2JXQ+H4TE+gwUSsUByhEMO0b0An5v7r+Z/BsJ05X0HeX8zTgaLjEGvqUnMNmOf7Pk9sf+ee4Sn7a67DPPg2JLYlMmUB+fjLyihy1Ch+nZPLKPZOD/18pMSbQUF8ZPladOkvSPrOoH+dTlo+Kug3M3GuUuBMKjvR6BJd4CWHI7o70/Nu5HI886Md6Wiwt521MSO4vmJFUl6nh+1suAyVlvLJcUZX8ICiVgg2SYU0r0AbkIuZbTY0/zS79+iH3v54IacDBZZxcjoyZ7RjdDqTdPODTgRpjz99LuQ07M2bbwfg99txgzPz8f/w6l0HL5QfXsQ5tD3OML745SsVlYmvl+rE+0IC2WI6ngTJoBOXCzEkNF/PZeBbnkKVHs6aP+dt8Xf56ZNS8xxUOtppIfV655RmJtsvyVlWath4GVl7obhsWeKsQgLJGKBZJv339e9AD7Y9paol37zwGDvb8bJYjU10Rf3GTPM32xnzrQ24Rg/XmzTac9Vbq5zOQ9+EnLnnGP9s1dc4e3YnbD27cVft/Ll8vPFZMljIRxCBr2Mq6gA6+PeDmI/jcUU2oIO3n8fyWaKJ8GF82dDPmjaSNDwWa0op6GtoVjquDWDRoSH0wyaQdtomxiXE32N1GzCBHGNtTqBtxpyKiPEZMSF3ZBXPQ+h3ZLi7JlibMACiVgg2ebUUzUvcI0A5Xdc2vxS8a9UfV7Q+sU0nax9+/gY7thmf3oW+fQt8kY3fry5ceTmOp+D5EThiUBA5EfV1Ih9uvxyb7+vadOsN+ocM8bbsTthyvfpZhnxQMC64HfYtiGbbsMT1AL74t7OxSZ6FjfSPnAhGikrKREl6BPwve5rAfqwP6jsadDBy409Sy3CQTrzA9CzNzrccykYFOeyE5gVlpMnO+dJsfPAQva+YqakuNEx4QIRjCQskIgFki0MwuvmBk6LeinnlvsolOGDG7Jdy84mysz0fhyKxfb60Hs66IdQtIoKe09l8/JE3w8/9fSprbVeXe3GG70fvxMWCIhJrvJEfPJk57dRUuJMFTuHbCkOpd/jLdW3D8cSegu/dy8/yaN+RaZM73caOVn14LrUCND3R4Am3gnq87FcKN7JC0GP3w5afrDN7VdWOnsvNlPIZ9o0c2Fnep6kRHju1aobGo2Xm90yNmGBRCyQbDF7tu6F7Yyu/2z+Z0aI7rqhq7c3ayesbVui3bvdLY1rNmcoclJqdMOzk8vklClPBM3G9efmCu/TzJn2v0MnvysllNGOYDPjHfS7Kd9vQ4M7oUm1tSJ3we39KCggeuUVqd/K2ziXDsVS1bfPwnv0LbTLiifUFIGZiNLeGRniHAiFxO82dgIf+SDH7kTbAS/3+gLQP0aDLqwGtQ21NhRLx34FKr8P9O1RkBfBZnOMzCAbDh0b1qYXdmYUppYIYWvWg+RGs1sm7WCBRCyQbKHjRdmGbAq2bC6PGzjnLf3SqsliJ57ozpPxRN5EtKoUuW2xT+7M3FwLCoQIsRLzXlwsJmiKgHQynCcQsNbFPpVN8RC6FTKlPAFPxL6YyC1rQCZNxs3UAVvi3s5AiP6Ev9B62OxZY9eU35CSM+a2RVbi1PNE2P0+Z8xw5sHPgWvUntBOert2HP3pL6DCOmPP0qFLQXc9Cvr0dypi6cknE1MkwOrDL62wM5kwNTcfuFn19MiKbbOeqWSAi1I4BgskYoFkGYOL0KSca6NeOqXsosTckJPZ8vKIBlssYmH2Yu/mBFbLYm/CZm6uyk25vFx+e1lZYnm1m4RdL5QypttuS9xxTMSk1gmPz4QJ7opvJYfCB7lIarYJuTQWU1Tzk7JQT5NwB+1BK2/GV1wsJux21mHGUzpmjNz1SOZakJ2t74Wy29g6VigcEG3hgOi5dNsToO4/G4ulkl9AN08Gze8HChXkuj9JjZwUK9dHKyIpti+RbJiaXllwp74LMzjlQUo2scFFKRyFBRKxQLJEKETUSv8GX9R1cfM/C9bTe6f5KGfHb5adTfTee8KzYbUrupVwAeUGYLZwgxXTSko2480KBMw3zNW6yfohF8tv9tRToq+U3fW47ZlUyt/b8dw5GWapYUtxKA3GG6pv98BPVImh2qFZifLwyFikB9aoAWisRXqQjJDpv6M3aa2qsh/mOm5c9PUxRrQ1AvTlb0SD2iO+NxZLXerb0RgaQ/9H/0dhCssfCzPHLHZSnJcXfxxk7ytm2yYoy2uVBZd9oBUb8mk1FDEUEueo3n1CxjOVbGKDi1I4DgskYoFkCYOL59eBo6Je6nDlk+nXSDEvz9xEorbW2qTdiYTTROUlaYk4N71ZWsfH67LgfjSz4tMrUybGdkVE+/YJCTP9AGfS0fiv6tunYAF9it81v5CXJyaV773n/XEeOtReKFwwKB76qF1v9ERO7LVAyT00mtA68V3GTiYNHuAsORz0yN2g335uLJaKqIjKqIwW0kJqpEa9K7I+yvHTysOL9LYrx1g231OJRLASpqb2vcp6eouK7JU7V74ro23JCIZkExtclMIVWCARCyRLGFw8L+z2VNRLt44+0vubfaItL89cta1p08xP2p28YCciL0kvDDAUkvdkWZnIx4ozM6F6bP4x5UY/bJj3YzFhIWTQS7iaOmGd6iKXn/ozrapc2Byy5HX4YF6e+oTKzDUq0hsTeZ0xejKvVdRB6wm+k+GWapNJye9jRTfQ02WgUxYYV8Q7iA6i2+l2+ow+MyeWZM8Nq/meVj1Ieshea+0UTZAVyEaeqWQUG1yUwhVYIBELJEu8+abmj7ABmdQye0Pz9eTERbS+wKWbuN+ttpZo9Gi5ZSdPNu9BMhuGoDzhmzZNbE9Jdlcu9rLhGnaOhx6y+29F3ESKM5caUrK5aJEPAxoakvb7q0cW3YVHqRX2xL3dpg3R/ZcsoZ1o5/2xttsm4NJL470Jsk/mzT7BdyNcNvZaZTIceU0X0PPXg06bZyyWDqaD6S66i76ir6LFUqxHZuZM8+e9sh9GUQJaOUiyy+vhdtEEGYGcmys8VEbjTUaxkc5FKVyEBRKxQLJEbN+dCHupQ2nUS7+7+hrnb17JYhUV8qEN06bJhboVFMQLGxn0njxGPplVC5OQLR+rZbI3UzM3ZbNlnmMnCl6fG+lsVkqa5+U1n6N+rCJp0lagGw3DdNW3C1FHU3EFheGBCJR9wq53jerYUd1LpPegRflty1SYLCiIDt2TnSCOHy/flFlrMmkhNLeuEPTM53+gvtTXuBoeHUrjaTx99/7k+ONg5Xej9mBIL8cr9p5hZnkt3BYdTq4/GcVGMoq6JIAFErFAMs2tt+r+CA/tGdE0sc0umt0vAf02/Gpm8ooik12duClFIuMx0Vu3nXwds+M22v/KSvOFJayWFmdz3pTv0KwXMPIckp3kJoF9jD504uH1qm//Fp/TfPRL3HiU6oB2fqN2x/DUU3LLFRQ0nw+y4Zbl5fYnk1avHwfW9wv9Qk/Sk3Ri4wmGYumYr0GPjQP9WmzzO4314qkVUzDTB8lK5IKRqJb18KjhpKhJRrHhpLePaYIFErFAMkVDg+5FY3WgMyG4v+mlrCH/pHDA5g3TK7NbolR5GmpUUUe54RjFvNup6iPrMdG6iMreNCZMcGbcWvs/bpw1709k9TwuzuCtRealmKk6FnmTl/UgGVTa9IuFp1XQtGlExbk7VRcpxSxajoPdHUcwKIRr5HVDrZBCZIGA2JLwRl4iGTNTeEMpsy+7fHFxs4fK6mTSSkGb3FzV6/vP3UGT7pAr8HDaPNCL14A2dzT5ncbuv1ElQK19tlvuWjbH1UqlOCdFTbKKDTcerKY5LJCIBZIpDJ7uXX3YrVEvXXPpAHdv6m7bddeJcLbycvMTc9nJvNbFy6keDGafeKrdRMzcNJwatxPx92o3XfYgeWuRkwsruWBKo1+jcKOMjOQRwwd+c7venU8P4V5qhx1xi2SigcrwNG2Ci5UGlWuRViEFtWtaQQHR2LFCtDpRIt6sZWSYP9Z2J5Nm+y2Vl0d/VuWc/18v0MP3go5e11lXKGU2gIa8DqocCtrd2sL3G7t/iez141SVuVicFjXJKjacfLDKsEAiYoFkiiFDNC9sjQBlH/RN80sHraS1+cmZSB1lsU/dpk0zbqYpWz7YzsVL9sZmdpKoFYbg5U3Dbt5QbB8Vq72m2Jwx5Xy18p0q+XdGDZUVT5WdXklWTTZXRCMxvg5d6Ur8nQIIx30kB1vpcdzuTqPZQEB4gJK0AIb0+aNcz6xOJs0IpMhqgDIV0jp2pO+PAN37kHFT2qx60BVTQe8PBIUyJM+/yHPOi14/TvUpisXp+1Oyio1ka24bic/GzgKJWCCZoqRE86I2J/+4qJeOuOgh72+GTljsBdYJD0RenvV4ayJzNzYnPEh623X6ptHQIJ5Gjxkj/jY0OHPM7RR4SJSl+uRUMeUGaOWzRuI2ttknEdEDD3i/z2pmkBj/BY6j01Gr+tFuWEHTMMKbQg7JbPn5+gVpjDAr7CO/X5PnfCNAH/cB3fAcKH+DvljqsgZ087zf0Gev3iLXc7C83LteP27l+Th9f7J6fvhokp80+LAxLwskYoEkjUH+UZ/fTYl66ZWTe3l/M3TKIifXToXtWE3yNFsC10zMvGylObduAOPGxT/9DAaNvQVmj7sfw+zy8sT+u92Lyg+mnD9OrEs5Vuee2yyo1c5ZJyoXOul5bN9eKjG+EaD/4AI6rMUy1dUcj8/oQ/RX30Zs+JlT5foTZW3auLNeOwLAzLUjsvIika1zfl8L0NvngkZMA7XdqS+WjvgeNPFO0KoinXU67cExg5uV4rwUKD6c5CcFPm3MywKJWCBJ8/jjmheyPcikjNzm3ketjvs4eYsz6JmTk2urF38rTezsVrGzilZndbUbWKJCoSoq/FnqW7kZWC1E0aaNceinH6ygoPkccPLYGU3o7DZCvvFG+ZL9smZUTjvid7JvT4heuOZLzUaz5+FN+h5HRJ9LM2dG/9bslutPtN19tzvrtSMAzIgcN6IPAgHaUfUvmvb9PfT71b+hYGOGplAKhEFnvQeaNgK0s62FbblVqS0ZK8UZ4dNJvu/xcWNeFkjEAkmazp01T+L7j7sg6qWLBqVo76MxY8Qkw2wVI6cu/nZuLHoJsm7EVss2nS0uJpoxw1qPDzvH3e6E2arp9BAjQAiI3bubJ7ZmypkngwdqwgSxXzU1zns0jMpUq52TrVvLrVvJfXJyvGZu/AcmEtvRnu5DObXBrrjVZSBE1+BFWtP1eO3CL05cu9w2ZVLktqBz8xocuy/KwyE7xz+ytPkBNtAGeo6eoz7UR9er1H476Mq/g+adDgrnSxb6cKvXT7JWitPCx5N83+NjscwCiVggSWEQXld4UlXzP1vtof/l5Xh/k3XTtCZ2ygVfL5ckEU8vtW5skYUmJk+21nBWBjPVyexO1hRBMGGC+bARmapKXlh+vsgRqKgw1xS1pESUajbbYFLpQaL2WTNmVKLZTAlnq2YU0hLrwZSdhCu/k3btnB2vsl6jsKCYiUQdCukqvEwZCMWtsl27RpowgWjHDpV9Ntt/KtEWW1DF6HwsKRGeMivnrR0vvpXqi5HXRivXPaXAhAbLaTlNoAnUY2cnXbHUfUsHuq8ctKyn5JjdIFkrxanh40m+7/FxY14WSMQCSYqHH9Y8cb/rlEvIbGi+X/WZ7v1N1itTYs7duvgnw4XYzfA1tb42kXH+Vo67TFUlp8zqNsxMptQm3JWVxsclUjw/+aQ9IRAryLJtNIsOBMzl/pj9jclOwhXRMnq0s+fE0KFyeQsaE4lv0JvOxduqq+7ShejFP31B+4u6Rb+Rl5cYsapleudDrDdb72FL5Pccec7LPlSILL9tBrNlvgFRGCby81aukZLX9TCF6f/mPURXVbSlrHr9fKW+H4n+SltzYo5rIjweyVopLhYfT/J9j4/nNCyQiAWSFDrJshcOvD7qpYd/c453N14/WORk3emLfzKEJnhRACF2QmXluCci5G7YMPePhV6Z9tjjkpsrJolWn8BrmXIMy8qI3nvPXm6U4h00+xkrfU+01hV57syY4f53qCbyDH5XNTiDfoMvVd8+At/TmzivubqZlXPcTqPmSDMKq4xsVivzm9bKcywqMh5LcbH+OaLn2bNSCVOr/5BR2LbV63ooRLvmv0sVH4+hszefQBk6+Uqt9oCGvwqqORMUzkDiREoqVH3z8STf9/h4TsMCiVggGaITXtcIUOtjFza9lJG/lhqQoFwSv1ps3wunL/5+D01IdHNOtQuo1ePudshdcbH7OSB6N+FQSAiiRHjLlJ46dsSR4h20ek6ZmZDICGsrjW2dOq8lJhLh4oPon1PDmt0Y+uND+gzHN78QDOpPTAoKRPPX8eOb2xJE/rbM5MdFfqey+xx77sb+pvWqhsmGEmqdI0YVyaw8CNKb6CXgul5HdfQ4PU5H0VG6XqVuOwvoAXqAVtJK29tMC3w8yU8KfDqnYYFELJAMeeIJzQt+5W96Rr100klPJ2by4HerqVE/lk4JJj+HJnhVQtupp3OR35FZz4WMafUfsWtmKrl5/fsw+zuyek6ZDWnR+316Vfkw8ryWnEjs3k006drllI1tqqu8BK/Rj+gV/fnY9QHqBVWs9vUJBuU9qDK/ZaNzWdbDo3aOyFQks5uLpLVPCbiuN1IjfU6f01gaS/mN+dpV8ChAZ9FZNJ2m0x7a4+gYUg6fTvKTBh/OaVggEQskQ046SfNi/9vBE6JeeqPwuMRPIPxo48fHH0eneyT4NTQhFPKm34rd+O7Y49nQYDwhNqpIp3VulJUR5eQ4fwy0Qnhk98cvZtZ7omVWc0zU8Er4x57XshOJigraiDwaiynUAvviVhvEfvoT/kJ1V9+vXm1S63uJzfuR/V7MfHd6v2XZnEHZvLdYwWKmIpmVsFyZfRs/Ptpr5yIN1ED/of/QBXQBBSmoKZY6UkcaQ2PoS/rS1fG4itv3TB9O8pMKn81pWCARCyRDYpsNHrCdrUGBHs3NC9se9L1cB+90sFiBlE49EswKJKc8GnY8SGo3NtnCAHYKEDhpkaGddvbHD6b2m7CaI+bUbyvRoaOKqZ3XsfkrNTXxk4oIQbcMPWkoKlVX36ZViO66I0xb31zQvD69/J1Y8epG7p6ZsDc9y842H/ZkNp/E7JishvTFfu8uTCDX0lp6nB6nw+gw3RC84+g4epaepc202dHtu0qimrhqfUc+m/wzxrBAIhZIuug077x/0MlRL11y7F3eTCASYWZv/pEhdonskSB7EbZ6sTYKQaqtNZ+XoFdRS7ZsenGx+iRRBrthZ15WA4u12trkC6OLtWBQPVGfSFyPzPTLcvK3legmq7Ihk1qTPhXvzic4gQZgrurmOnYUvcB3z5kvf67pjcOqKY2E1fbV7Hlt9NtUmxzLCuHIqnQyXi01r2hk6XWjB2iJmuCTCMH7mD6mq+gqak/tNYVSS2pJw2gY1VANhSlsb6NuCgivH1Am8LtjnIMFErFA0qShQdN7RAAVXfBc1Es/tDoosROIRFhenvneMJFP8okSV+FG9iJs9WKt9zkrE6QxY4zzcWTKpivLWbn5eJVX4pZNm5Ya+6OWw2dH+DmRnyYrkOwUpVBMZuI2c6bxZ1V+N40AvYdBdBy+UP14Ue4uehlX0X6jYjuxoWKhkLWiDbEWKTwi1+3Gea12fM2EUsp6OWO/TzPXS6XYiUcT/B20g6bSVDqVTtX1KvWknjSJJtE6Wmd+I24KCK+buHotzhjLsEAiFkia6PSS+PGgTELupqaXCg+tdf7m5QdTxI6ZRouS/UvizE4OjexF2OrFWu9zVo+tUtpWb5nIMrxaZaq1bnoyNx87eSWBgL+8R4DoX+T0OmfMEMUqzORbtW5tb5u5ufGhRXYmyEa/LZmn17K/444d7R9zo7yFykp9T1psnoxKXkR4ZhVNn07Us2ej6ioOxxKqwkXaYdNqotOJPC231qt3jGLPBdlzTe3zRnkoTnt4E1gh7Uf6ke6iu6iQCjWFUgtqQUNpKL1P78t5ldwWEF6W4PZanDG2YIFELJA0OftszR/2ZcPOj3rproOvcv4G5hdTu3BWVcXH6Ws98XL7Ai17ETZK0ndiwmDmhi77RD7yuMRWmJOdJGphNa9EuaH7Jf9IsXvucX6dkSFbSiPZROQzRU6O7Ia3KXk6asnvsk+v3SzSUFwsHrzIhBdVVcmvV/ntaAnAqipqKOpBz+N66oy1qqs4EYvpQ/SP/l70SnFbLWOvt14387/Urrta3jnZz+vlobjl4bVz/zAZ2raf9tNb9BZdRBfpFnboQT3oUXqU1tJa7W07ISD09sHLJq7cHympYYFELJBUCYU0nwKHA6C25zYn/AZa7qEtyHHvBua1aV04IyeMkyeLv2o3GLd7JMhehGW7y8derJ2cGEY+FbRz47IySbRz7GLDpkpK5PusdOiQuHPVaohTSQnRbbcZf2dOnw9G50pJiZis2unblJurXjQkL0/kNMk+vbYz+Tf6zszkAJqZYOtN+mKe3O9AO3oY92iWBj8b79KXOM74qb5ROGzs/2sd70jczP9SO0ZmznEzE2s3fztWJvgOhLatoTX0KD1KPaiHrlfpYrqY3qP3or1KTggIp/pVuSFSvBRnjG1YIBELJFV0LiqzT80htNrT9NLRh1a6d9F32qxMtOxcnCOXc6tHguxFeMwYcxdrRQDKfk7GIkNNrN64nJwkyorXhob4J5Syx/3mm/WrgjlpMmGLkTZ+vFwJ8EgR71U1t0Sb2nev5MwlomKbGmYn2Frr1vkNbUQe3YqnqCX2qq7yslN+peXLY9Yl08BV+e1bKYVsViCZ+X7UjpGZc9zM95doT5geDoe2hSlM79P7NJSGUgtqoSmWulN3eoQeoTW0xr6AcKJflZthbuxBSmpYIBELJFVeeUXzx3zSH6+Kemlqh/Pdu+g7bRMmyHtSALnO57I3GLd6JLjhQXKyKhUg8lfKy9Ubb7pVhlf25mNVvMqOo7zc/b5QsTknsp9TJh5mbuRe9QMyMp2CMrYs1nuYl+fM92llYmZmgq23bonv8BeU0JVn11FGRnyOUosWRNddR7T6pbf1q+gZVbyUDesyKywUz6PVibHsOd6hgxDQsiQyl0oPl3Nj1tE6mkgT6WA6WFMoBSlIF23oR++eDQplGOyjVhij3X5VbhdK8FKcMbZhgUQskFS54ALVH/S2bFBGv9qmlzKzNlIDMp2/6LtpSlU6o6eMehdOqzcYN0qZyoT+FBc3ewmMLtYzZzofRqR1PK3cuJyaJMaOw6x4lTnuRjlKSpVEK+XRYy1yrLLhf8rEw8yTXLdCzexaopoTK/tdXi7Caq1UrbM6MbNTYS0SE9/3d98RDRmi/nYr7KFb8BStR4H9fXNivxWPqFGPJqMxmvFSmwlJc/q34/Z5ZNOzEaYwfUAf0CV0ia5XqdsK0EP3gtZ0Udk/uyJWr19V7DXejfuzV+KMsQ0LJGKBpIpGxaqJl5VEvXT2wc85c6FPpEWKAL0blVJiWg2/uc6NmjXKlMsOBMyXNNfLK1Bb1krVp1icmiTGYuXmaHTcjSyySp/M08a8PPUw0dhz1ayAtzLZcDrUzKrl5soLQqfMbKGRWLPqOZaZYAeD4vqmh4Xr18cfE/Xrp75YO+yge/AwbUEH9fPLLnaexFv13MtWmzM70TXK0Ro61P3zyIPcmHW0jh6jx6gn9dTOVdoHGjYdNL8fqDEA/eNqZR/0rvFulhp3K3qEcRUWSMQCKY4ZMzQvNgf96a6ol+YHT07sxMQpkwkjc8KLkcjky6oq7afokfuid7E2GwISmVcgW9nMTNUnNWQniVrNRp3GbjhibMNNPQFrpqiAmSeXViagTodhxm5PdlmlQbAb4zAyM14/2Sp1MuebnjiVOe8tCo7GRqK33yY6rtd21Y/lYCs9hHtpO9pr/9ad3m8ZgWLVMyB7jpsVhE5cgydPTkxhH4cbt4YpTHNpLl1Kl1ImZWqKpaOWtqDnv7qG6kljXubkQ8pE9CpysxEu4woskIgFUhShEFHLlqoXmiWHgnDE9803w/xl2j0y/G6KcGlo0J/Y282DKS+3/32YEQ56xQAi90VrvWYKPsSOZ9o0c8feznEw8gAaPUF3GjslsGOPh9bkScmpMHOumnlyaWUCqux3WZmzv8+SEjHRNwqbU/qUeZUXJSuQ7F4H1L4ru0+kbQiO8LQKmoVSOhLfqe5uPjbQU7iFdr/ymgM7GzPmRD+JD4WsVwA1Wq9eKXA381ZkHzJF/tspb0oE62k9PU6P0yF0iKZQak/t6Xq6nr6hb8ztg+xx4l5FjAYskIgFUhQ6ISNXjDku6qU/dZrgzaTECVNuZFZj22Vjye08fTLr8nfiiZqddbgVdqh1HMaN81/YgpWJuqxHzU7VP1mRbWcCqufBlLWysuYxhkLyAsmrvCilaqBR/p8bkysnnkhb/b4PnIshZNC/MZJ6Ypnqrhfm7aXnnzdXx8AQL57Eyz4AcCpiIBF5K2bDZF3MmVEq4F1IF1IGZWiKpX7Uj6bTdGqgBv19MDNWv4XLM77BVYE0f/58Gjx4MBUWFhIAev3116Peb2xspAkTJlBhYSG1bt2aTj/9dPruu++iltm7dy+NGTOG8vLyqG3btnT++efTqlWropbZsmULXX755ZSdnU3Z2dl0+eWX09atW6XHyQIpgttvV7047A+C2l3zVNTLy9AzsZMRLcvMJHrvPc28qTgrKDDvMYmc7CgXXZlqYVafPhnFv6t5SJwI+7PzVM6NJ59GoQ9KgQO/hC2YOZ/MHo9EhXXamYCGQsJbEpsnpfRZ0mvsCwjBozRxNRtqlOi8KK8rZDmFle875re+Dy3oJVxNxfhV9VB17040dSrR/v0ejNUuoZB8IQ6nQwrdfgCktg27zbdt8iv9SuNpPHWmzppCqRN1onvpXvqFfrF/nPwYLs/4AlcF0jvvvEP33nsvVVVVkZpAmjRpEmVlZVFVVRV9++23NGzYMCosLKTt27c3LXPddddRUVERffDBB/Tll1/SgAED6Nhjj6VQxA/0nHPOod69e9PChQtp4cKF1Lt3bxo8eLD0OFkgHSAU0qy69cbZQULn5k7r3TsvTMwkRMaUkrLt28stX1bWvM9mn/jHTnrMVguT/R6M4t7VcmycehJmZ8Ln5GQxGUMfzJ5PEybIT/b8/qQzcvJaU9OcG2TWAwaI791M2J7y4MLNvKhYGzeued/TMQlb5be+B63oGYylzliresgOPbS5EKKl7bmVRK+H7Hkb+eDNKRIhCCO34UYooUUaqIFm0Aw6jU7TFEoZlEFDaAi9F3qHwrVzrR0nv19XGc9IWIhdrEBqbGykLl260KRJk5pe27t3L+Xk5NBf//pXIiLatm0bZWZm0owZM5qWqauro4yMDJozZw4RES1ZsoQA0OLFi5uWWbRoEQGgpUuXSo2NBRIZTixOv3NQ1EuPt70+MZMQmUkRkbnJ11NPiZC58eOJ3n/ffBPPyIm5G0+frFZpc9KDYzfUyupnE3mz9qrkusz5bGXdgYB4P1aYJAKZyasZwWP2+EUKcLfyomIt9rcUmYc2ebL46wevppto/NZ3vvofmjSJqGNH9UN3xBFE06ebODSJSKLXQvYaH/ngzQi/Juz71JvyLX1LN9AN1J7aa4qlQ+gQeoqeos202dzKE5HzxSQlngmkn376iQDQl19+GbXcBRdcQH/4wx+IiGju3LkEgLZs2RK1zDHHHEP3338/ERH9/e9/p5ycnLjt5eTk0D/+8Q/Vsezdu5fq6+ubbNWqVdIHISUxCOfalg3KGPHP5utFcB9tRIJ6jmhZQYEIq1NuMLIFAtSsdWtrn5s8Wb7Mr5lJvJ0+P057cOyEWlkpmW3l6b+Vm7XbJV2thHrZ9dAB8Tk7iXjCLjN5lQlHtWuxRUgS4UmK/V175eXwEp3f+rZtwkmqFf185JGiaGo4bLD+RPaci/2c09d4P58jTnpTXBCB9VRPz9PzdBQdpSmU2lAbuoauiS/qoEdlpfVrMpOyeCaQPv74YwJAdXV1Uctdc801NGjQICIievXVV6lly5Zx6zrrrLPo2muvJSKiRx55hHr16hW3TK9evejRRx9VHcuECRMIQJylpUCSmEg8/4c2hPbNZV1/1/kN9yceZs1s5TCnrKhITEqdfPpkNkxLZpLm93Af2Z4jVm/WMttyOgHa6gTdKKlfbd0y5d3dQGbyWlxs3ktrx2prE1fVLlKcmz2v9CaQfvUwEFka26ZNRHfcQdS2rfphPOoootde0xBKVibtVkWI1uf0rvHK9VX2IZBXnjAZnPKmuCwCG6mR5tN8GkbDdBvQ9qf+VE3VFCKT19PI79Xr74TxDM8F0po1a6KWu/rqq+nss88mIm2BNHDgQPrTn/5EREIgHXrooXHLHHLIITRx4kTVsbAHKQKJm88R910a9dK/gpclbrIja4muXqW2XaeStM0+/VbzoPh5ghWL1af9VsRnIvOalO/ATK8cxSZM0P/+YvN9vMrV8qq8ttHvIVF9kZRJudnzSm8C6WcPg82xrV8vUrf0hFJlZYxQMhv2ZVWE6H1O7f+11mlUvtuL36kZ7EYhJFgErqW19BA9RMVUrCmUulE3epwejw+/s1IMiUkb0jLELpa0zkEyuPms6AbCBf9peqlFyx20Exp3t3S1QEA8YXTSa2MmJCnZk0etTLKt3my9SMh1YrJeUBBdAtvrfXJy35y2RHiQYiezZr4DmYm4U+e7kzg48V2/XhRMbdNGfXd79xZz03CYzB1bO+F4Rg9p8vLiPaFKfzJFEJWXawvIZCoGoCaECwqMmxB7KAL3036qoirqT/3lwu+SRbAynuF5kYbHHnus6bWGhgbVIg2vvdbcbG7NmjWqRRo++eSTpmUWL15MXKRBEoOL9j23dCRkNjS9dHbev92deLhhstXt7FpNjbNem5kzPS+5mhCsTLKtik8vkpCdnqzHPrH3MrHaTSGiPHiQzedSy0EyChWqrDTvvVQTBLLfwbRp1kMvvfy9uzSZXLdOVH/XEkpHH000qzJE4aISubAvqyJE9nMPPBB9jZc5f5TzJdG9lOwyc2Z86LqRt9AnIvC/9F+6mq6m1tRaUywN2HIcvT4EFMrwdqyMf3FVIO3YsYO++uor+uqrrwgAPf300/TVV1/RL7/8QkSizHdOTg5VV1fTt99+S8OHD1ct811cXEw1NTX05Zdf0hlnnKFa5vuYY46hRYsW0aJFi+joo4/mMt+yhEKaGbSNAHUqvybq5bdxjrWbezqY1RubXjhcOiSPmul3Y1d8enED1/oO7Vjkd+/lpES2sl5Rkbkw2NgCD7KT0Mjfg2yokPL7GzxYzrOjJs5lv4PRo+1/915M2Fw+x9auJbr1Vu16Ocd020qzcDGFkaH/XcoK1TFjoq8jZh7SRPbBkz2nAwH5PFk/TMitegt9VgVvE22ix+gxOogO0g6/WwF6/HbQ5o7ejpXxH64KpNraWlIrhnDFFVcQUXOj2C5dulCrVq3otNNOo2+//TZqHXv27KExY8ZQbm4utWnThgYPHky//vpr1DKbN2+mkSNHUlZWFmVlZdHIkSO5UawZTjxR9cKw+EQQTq9teqlt2w20Dy3s3+ATbYGAcYNKrc8VFxM9+aR7NzaZmP5kLLpghkSWWU10SVe3qqlZ8Za45XmQESJmq+/Fnt+VlfrNOrV+D7K/HZmQVq0QRyJ75d3NmhcTtgRNfNeuJbrlFm2hdGSLpfQqhlNIEUqx36VZj6bZ8Ddlmw0N1n7X+fne/U5lseMt9IkHKRYl/O50Ol07/G4X6JoXQd/09nasjH9IWIidn0lrgRQKaV6w//BgcdRLo7Kedf/mb+cG46RFTu7cmoCaeUrn96ILdsfnZHlyP23L7VwY5eadqH3S+p5lhIjeMnrnj5F4KS/XP9+Mzk1ZEStTXTAR16YU9CDFsmaN0KNaQqlXl3r6xx0/0L49Gt+lGc9OIGA+1FK2R1uslZUl7tpjFTvftdcPayRoCr9r1Am/mwv6zxBQqJvBb55JaVggUZoLpDlzVC9kDZmgNhNuj3r5Y/Rx/+avZ3l5orqXbE6C2s1JrRxyVpbxE2ynJ6CplCDqVNWtRHrKErUtt4sYxJaZdnOfjL5nGZFsVkiHQtolzCOvC3Z+J2ZErJEAKC9377v2Qw5Sgie+a9YQjR2rLZS6dSP6y1+I9uyJ+JDZPmTK2GfOlP8uxoyx9h0qRTr8HBFg11uYyAdQNthEm2jSt5dTyS9aMgnUc0cX+jP9mXbQDq+Hy3gACyRKc4F01FGqF7//XADCsV81vZTf/mdqdOvGb9by8ownTVo3p1BIFFMYP15YTU1zmJLRxM3JG5tPQxFM43RJ10R6yhKxrUR5kNzeJ6/6t8g26aypsb4NMyLWKITMKUHsx8mllYmvQ+fj2rWiPHi7duqHq2tX4dTZtStirGbvEbW18gLXrAcpVkD6OSLAiXuT30VgBPurK6nq6jw6vVZbKOVQDo2jcfQr/Wq8QiZlYIFEaSyQQiHNi9/AyUdGvXRby4fdnehZmTyUl4sbzIQJiav25tSNzWfJrJbw0gvm5wlGJDIhP1bz4xLlTfDye5btITV+vPVtyIowo0khkTOCuKzMv5NLMxNfF/o5bdokvursbPVDV1BANGkS0fatIfPNiSsqxDms9znlXFdykGSrKzotbt28/jnlLUyWazRR01i/fmciXbXm99SqsZWqUApSkIbRMFpMi70eMZMAWCBRGgskjYnB5o6gjDsfjnr5exxh/8bvpEWGRRjdpLx+8qpGKniQvNoHPzfSVMMoh6ayMnoiMXOmsSBJ5Dnt5bnqtECKnbRVVspPpI1ykJT12y3KoUwmEz25lN2mrLfdRY/j1q1EDz1ElJurfgg7Zu2jctxHW9DB3HGPHLuRp0w2lM9pcZuI61+ShMm5xQbaQA/Sg9SZOmt6lfpQH6qkStpP+70eLuMSLJAojQXSuHGqF/QXrgWh+89NL/XI+sreDd9NMyqdGgz6sxt2EiSzGuKFF8yrUC87GAkkvdCksrL46m2J9ia48T3LTsZlvTsPPGC8TZly4Wa/J63tWFm/l795q5Nute8xgR7HHTuInniCqHNn9U1loZ7uwqO0Dp30j33seMxUP1Q7bkp0Q22t8DY5JXYTef1LojA5t9hLe2kqTaVj6BjtMuHUjZ6kJ2kbbfN6uIzDsECiNBZIGv2Pev+1T9RLkwK3W59UmLWMDOfX6VcvTLI/pUu0ZyEZC1s4MWavQ1Wc+p71RJ/WZFymSINier8XOxXm8vLM/xYrK82FTnr5m7c66dYTB3bPF5Pn/O7dRH/+s/ZPrRX20PV4nn5CD/UFxo2zPgajCoxJKDyl9i2NaKRGmktzaTAN1hRK7ak93Uw300/0k/yK+fj6GhZIlKYCqaFB9SK7rCcINz7b/FIgTL/CZsiI1+bnPJ5kfkqXaC9YMoYlJuOYY3Hiezby3uhNxmU8MnpjsBP29tRT1s9fM1XRvPrNW51064kqu9dlGyFke/cSvfQSUY8ejaqbzECIhuNV+hrHxI/b6ePvR+HpJ5JUHCylpXQ9XU9tqI2qUMqgDLqILqL/o/+jRmrUXlGyhYqnISyQKE0F0qOPql5c772vBSF/Q9NLx7evtTaxSIQlU2dyPZL0RkFEifWCeVnYwup3lArFOIjsfc+y3hs9kWNncmincILd70XrAcjMmf74zVsR8E7kWWl9Vw6FkO3bR/TPmz6jw7FEc/Pn4m2aj36iOqvTD3NkjlFBAdG0afH9xNwSnn4iBcTBZtpME2kiFVGRplfpd/Q7mk7T4/OUkjFUPA1hgURpKpC6d4/7cTYC1Pnv50S9/FdcY/9G6IZFNvdL5jyeVCBRXrBkLAqRCh4kBSvfs5XJtNqxsCM07ZTeduJ7aWgQZaHHjBF/Gxrsr9PLapp2K/VpXZddCCELz6yi1/OuohOxWHO1ffAxzcb5FEbAud+h2WNUXGxcnCWR56ybpJg42Ef76FV6lX5Hv9PNU5pCU0Q/pWQMFU9TWCBRmgqkjh3jfpgLTgFh5L+bXgpmNNBmxC/nuUXmBCR7Hk+qkAgvmBeFLezezGUEQjLdDM1+z1Ym02oix47QtDIGp84lLXFtxoMUe8zVJtJWn75bOa5mBKeZ67JbDxNCIWq8dzzV4nQ6G+9qrvZIfEevXLeI9u0zfxjjMCvKrebHuX39c5oUFgeN1EgLaAFdRBdRgAKqQqkDdaC7V46gNV1cOM8Zx2GBRGkqkNq2jftB/nFKW0K7HU0vndX6P/Yv2k5abq4ItVGLh0/WPB7GHIkUxE7dzDWqRTaZWoJ4qmDFe6M2MbAjjs16sZw6l8wUhtASOLKV96yO2cpxlRUy5eXmrstuhqNGjPlL/IaGYTplIKS6+pISoilTiHbuNL8Z08fIqiXrA8FU8qjr8BP9RGNpLLWjdqpCqeVe0B//Bvr+CIfPc8ZRWCBRGgqk3bvjfowNmaB2L14W9fIMXOruRV7Wxowx/5TV6SdQyZwnlGokU0hfqnmQiMz9FsxMFI0Epx1xbCRSnT6XnBBlZivvWX36bva4mhFVbpwrVibPKmNejoPpOrxArbBHdTO5uaK91rp15jcn1SDaqpkVnn4iVXIyJdlMm+lRepS6UBfN8Lvz3gTVni5SHGyf54yjsECiNBRIKt313hgMwuA3ml5q1WI77UIb5y/uVmzyZG8nkCmQUJpyJEKwOnEzT7UnpmZ/C2YmijJPwN3Kg1JLmLeD3bA+O4UQZM4ltYa5Zo6rjKgy+xt1O4RWY8xr0YXuwkTKbrtPdbOtWhFddRXR9987sz3LZlV4+olUux5Kspf20t/p73QEHaFd0OFT0IxLQftbIPkemqUoLJAozQSSxqTvwhfzCC2abxDDMv/pzEXdKfNKkKRYQiljAidu5qn0xNRO2WKjiaKZJ+Bu5UE5OSmzWxjCzcp7TuRFaa1H+R61tlFZqb8Nt0Nodca8bRvRpEnaTWcBot//nujDD4kadao3G25PxpI1hM6IVGiQboMwhekteov6bzhKUyh1/xn0zNd/FAUdGE9hgURpJJBCIdVGrNvbgzKf+VPUy3MwyPoN2g3z4gaRwgmljARO3MxT5Ymp3d+C2kSxoEA0jXX7CbgXItWuwHGr8p7TD3zUxKrd3Cu3Q2gNBPaePUQvvkh02GHawz7uOKJXXyW5gg7K9qZNE+e80fXErDcv2eDCSkRE9Nncx2jY7DaUEVIXSh2pI91D99AaWuP1UNMWFkiURgJpzhzVC/M/R4HQb37TSzmt1tF+mOgCnyhLtCBJlcktYx27N/NUeWLqVD6WF2FBXvyO7eSgWPUgGZ1LiXjg41RBDB+EkIXDRG+8QXT66drDLy4mevJJom3bJFcqez3xwf67ChdWEoRC9POiChq79GxqF2qtXtCBWtIf6Y/0A/3g9WjTDhZIlEYC6ZhjVK/y/f55UNRL1wef8V4M+UGQpFJ4FGMduzfzVHhimsy/Ba9EqtkcFLUcJLNFGvTOpUQIRS9LqrvIZ58RXXYZUVDjuWFWFtGttxL98ovEyhIlDvwusvw+vgSzmTbTI/QIdabOqkIpQAG6iC6ixbTY66GmDSyQKE0EUlWV6pV9XSdQ4NE7ol5ehJO8F0F+mISxB4lRsHsz9/MTU5l9s/tb8Hoy5JVItVOm24zACgaNy8UnQuR63ZTXZVauJLrlFqL27bW/huHDiT75xGBFbv8euLBQ0iJT0KE/9ad36V1qJNlkOMYKLJAoDQRSKERUVKR6RX/mJhCO/m/TS4Wtl8eXm/SbJepGKvPkubiYqKaGn4IxxngtEtSQnUjZ8cL4ZbJmR6RqfXcy36mdinFO9kHyqwfJCWGWYLZuJXr8cc3bKgFEffoQzZghmafkJFxYKCVQCjqcRqdpCqVj6ViqoAraT/u9Hm5KwgKJ0kAg6dy0ek/rHfXSPXjQewGkNwlIdCiG3pNngCgvz/uJH8NYwexEyooXxm+TNSsiVUvgjRtnXfiZGUdskr/V62MiQg3t5l45SQIeSDQ0EP3730THHqu9W0VFRI8+SrRpk+Obj4cLC6UkC2khDaEhmkKpB/Wg5+l52k27vR5qSsECidJAIGmEPfzvEBDuejTq5SU43HshpHVh9+rpl9oEKVYY+WGcjDP40dPjNFYnUma8MMk0WdP6zq00a3Xr9++EBygRoYZ2cq+cIsFey8ZGEUhwzjnau9m6NdHVVxN9+60rQxBwWHhK8z19T6NpNLWgFqpCqYAK6GF6mLbQFq+HmhKwQKI0EEjvvad6kbz/vgCh24qmlw5v80XiBE9JifoTWL3XvRQdkROomhpzE790mHCnCn4JB3MbOxMp2fPZq+pxTnmIZs603sNGa8Jv51rgVA5RIvLhnAwNtLJtD72WP/xAdMMNRO3aae/2GWcQzZ7twq0gmYupMNL8Sr/SLXQLtaN2qkKpPbWn2+g2Wk2rvR5qUsMCidJAID3+eNwFshGg4ldPiXr5CdyaGHE0erSxePCzqDAz8UuXCXcqoFHIpMlS6TvzU8K+U5M1K781vcm03etcrPCzey1wUnAm4voauw01wem0MPOR13LrVlECvHt37eEcfDDR5MlEjk092IOUVmymzfQgPUj5lK8qlDIpk0uE24AFEqWBQOrZM+4C+dnxIFz/fPN9A2Faja6JEUjJPNkMhYjGj5fbx7Iyf+VfMNqEQtphk4rl5flLqNvBTwn7TkzWrHgNzPbsMWuRws8Jr0Yq9NRyW5j5UCCEQkTV1fr9lNq3J7rpJqIff9RZicxxS4VzhDHNLtpFz9Kz1J2665YI/4SMyisykbBAohQXSJWVqhfKm55oQcjb2PTSya3nJk4cAf6+SOvlI5iZUOXna7/HNyp/UVMj953W1Hg9UmfwQ8K+U78Bq14DOxXXzEzCnfRqpEJPLTfxeYjZV18RXXklUatW2kM76yyi118n2q8UJjPreeRzJG3ZT/vpVXqVjqajNQs6DKSB9CF9yCXCJWCBRCkskEIh1Ul6KAPU4V+/j3r5ZVyVWIEUOYHwE3oVq8wkHetVm/L7MUhHZL2C48d7PVLn8DJh38ltWPEamPEEm7VYweO0V8PPPbW8xoceJDU2bCB66CGiwkLtIZaUED08/Dtah87q55je74fPkbSmkRrpHXpHt0R4H+pDb9FbLJR0MKMNMsAkFwsWAJs2xb384RnAtndHNv27RUYDLkZVIkcmWLs28dvUo7oaGDoUWL06+vXVq4EnnhC3GSMCAfF35Ej95RRkj0E4DMybB0yfLv6Gw3KfYxgtSkuBWbOArl2jXy8qEq+Xljq3jaKi6NeLi53bhuxvSFmuuhro3h14+GH7245F+f1PmQIEg9HbNUJ2udJSYOVKoLYWqKgQf1escOZYJjv9+olzS/keYgkEgJISsZyHFBQA48eLr/HVV4ETT4xfZtUqYPz0o1CCXzECr+Jj9EXTHUi5F5WVqd8L+BxJawII4Fyci/mYj4VYiCEYErfMIizCYAzGcTgOlahEGDynsAMLpGRD44b7ysXtgNnNP5izWryDjtiWoEFFUFiY+G1qEQ4DN98sJ4L0UCZ+Q+IvSKrIHANlQjdgADBihPjbvbt4nXGG/v2dXS6Z0JpMOoXbkzXZ60hhofZDEDWUyfRtt8mPRU34mRmfLMGgOBeHDxd/FTGW7gSDwDPPiP+PPa/VxKvHtGwpLumffAJ89hlw5ZVA69bRy+xHS0zHCJyKj/EbfI2XcA12op24V61aJR6EqsHnCAOgD/rgP/gPvsW3GImRyIiZyv8X/8UwDMOROBJTMRX7sd+jkSY5CfBoeULKhti9/36ca353a1Drl0dEvVyJoe6EmsiGoPgBJ/IRxo+PrsLnRP6F3xptpirpVqSBKHXOLdnfWkODfA6hcgwqK40/U1AgmrhqJc9z4rxzyBYrSOIQs02bRPW7np23a55y2dhGYzGFfsBhXLKbMcVyWk7X0rXUklqqht4dRAfRs/QsN50lzkEiohQWSB07xl1ZK4eC8Pu3ml5q3aKedqN14gWS325Ussm9eqZW1tdO/oWPStamBW6W+fZb2fpUO7dkfmtmHoIok2mnclrczMXy27nlFmaLFST5cQnPraV3cTYNxhsUQFjz1DvjuC00cybRvn1ej5hJJlbTaiqjMmpDbVSFUmfqTI/RY1RPKTYvNgELJEpRgbRtm+rV9JxX8gnB/U0vjWgxNbHiKC/Pf+KIyJ4HSW8yaedJZpIkHKcUVVVERUXykzDZdfqtF1YqnltGvzXZhyCRnmAnq6K54dXw47nlBqni7TRDhOdxBbrRnZhIedioeQp27kx0111Ey5d7PXAmmdhAG+heupeyKVtVKHWgDnQ/3U+baJPXQ004LJAoRQXSKafEXUE3dwRlPHN91MvvY2BiBZJfyyQbhcFE3pDN3qCtPsn0ecnalMXJJ89+ndil6rml991ZEYVOC8l0OLecJtW8nWaI8TzuQSv6Fy6nk7FQ93QcOFBEhzY0eL0DTLKwjbbRo/QoFVCBqlBqR+3oNrqN1tAar4eaMFggUYoKpA4d4q6aL14DwikLml7q0HIt7UfQGeFz++3JH2dvFAYzblz8jbqgQDSETZOmh9L4Mbwl0WMKheK9UX75TSTzuWUVK7lAieoXZfa8TCfRkI7naiQanscvnphLf/wjUdu22oekoIDojjuIli3zeieYZGEX7aIpNIWKqEhVKLWklnQdXUc/089eD9V1WCBRCgqkUEj1anni9G5RL90UmGxfGOXkiEdVRKnRoM4oDEaZzJSVxfc6cjq0JVmTu/0Y9uPFmMrLnZvYOS3ukvXcsouVa5Sb1zWr52U6iYZU9XaaQef3v20b0fPPEx1zjP7hOeMMohkziPbu9WwvmCRiL+2ll+ll6kk9VYVSkII0ikbRElri9VBdgwUSpaBAUrl5/loMwqN3Rb38CU6wL5CmTYvedhJXD2rCaDKayNCWZBOdfgz78WJMRgUfzEzs3BJ3yXZuOYWVa5Rb+UNWz8t0Eg3pJAatEgpR44e19MmDc+iq36+htm0bNQ9Tfr4I+PjxR68HzSQD+2k/VdD/t3fn8VFV5//AP5OVPQUChCxGpCoKCAjKZkTWakGgcSkoiEvrChIQRGsV0J+AKIIV0UqrYhWw0KDQb1HCYgSRLUQBpYIathiMUEiCLElmnt8fJzPJZPZk7jIzn/frNS+4S+6cuWeW+9xzznOWSifp5DZQsohFbpfbZY/sMbqoQccAScIwQHr0UZdvxTlTIOi4t/r6qsEBsdU3OPL0o2TG7lXBYkTXllAJOs3Y7ceIMvl6zkAu7Op6Ea1nOuT6fN6N+q6oa7e2YJW1vu/LSAoaIrW1019uPsMlyR3k9ft3S9eu3t8e/fqJLFkicuaMxmUM52uCCGEVq3wkH8m1cq3bQAkCyZRMyZd8o4saNAyQJMwCpMpKkZgYl2/CS//Z2WnV05hR/+AoOjryRoEadWESCj8wZrxoM6JMgaaT9lSXdb2I1jMdsqfn+uc/fR/TjF0x9VLf92WkBQ1GtXaa/XvXxw0U28p/yc6dIn/8o0jjxp7fZk2bivzhDyJbt4rYbBqUMVI/52HIJjZZL+ulv/T3GCgNl+GyU3YaXdR6Y4AkYRYgrV/v8u23tyMEj89xWv1fXFb/AEnvi10ziKSuLYEy47kxokyBzKnl7SKhLhfRRnT/9KeMtS+IzNgVU0/BeF9Oner578LxHOrdkm72C/sAb6CUlor89a8i3bt7f8tdfrnICy+I/BiMZGWR/jkPc1tki/xGfuMxULpJbpIv5Auji1lngcQGUSDz27jRZdV7oy3AstGO5Y4NduFyHAjO8xUVBec4oaJt2+DuF07MeG6MKJO/x5o5E8jM9Lzd38+WfT+rFZg4UV2C1GZfl5Wl9qsvb8/lTmEhcOutQHa2vuU0q/q+L7OzgZde8vx3U6Z4f2+FosxM4NAhYNMmYOlS9W9BgfPrtFqBTz8Fli1T/9b1PZSdrd6vx445r6/5Pjba5s2u5atJBDh6VO0HoGlT4P77gV271OOhh4CEBNc/+/ZbYNo0IC0NuPlmYNUqoLy8DuXj5zzs9UVffIyPsQ3bMBRDXbavxVr0Rm8MwRBswRYDSqgjHQI2Q4RVC1Lv3k53aqwWSJvlGU43b15GVt1bjLzdvY4Ekda1JRBmPDdGlMmfObVSU30/Z6AtSHp2J6zLxMr2c+2mlTvivlvq8770Z4xbJH4HBavFx4xjKd0JQivk2bNq86BB3r+uEhNFJk0S2RPIOHwzdrkmTe2SXTJCRnhsUeov/WWTbBKbBLsfpzbYghROrFbgiy+cVn3RG/hp0x2OZQts+D0+qP9zWSzqFlNGRv2PFUqio4FXXlH/t1ict9mXFyxQ+0UaM54bI8rk6zktFrXd13NmZACpqa7HqHmsmp/BQFuc6qMuxxBRd7Q//VS75wgV9Xlf+mo5AJxaDiJCMFt8AmyZMUwQWscbNgRGjwZyclRj3MyZwMUXu+534gQwfz5w1VXANdcAixYBJ0/6eF49v4/IFLqjOz7Eh8hHPm7BLS7bN2ET+qM/+qEf1mM9BGJAKbXBAMnsnnvOZdV7t8UCK25zLPeN34hkBOELSQS45Rb1IxFpTeSZmcDKlUBKivP61FS1Pty6tgTCjOfGiDKNGAHMmAE0b1735wz0IlrP7oT1OYbN5t9+rVvX/TlCQV3fl7zwdBbsrlyhcn4DvYHiQ3o68MwzwPffAxs2AGPGAA0auO63axfwyCPqK+B3v1Ox54ULbg5oxi7XpIuu6IqVWIm92ItRGAULnN+jm7EZgzEYfdAHa7E2PAIlHVq0DBEWXewqK13ayCuiIQnvDnNqzf477gm8a0xUlPNydHT9uzGEA7NnODKSGc+NXmVy19WnRQs1cWxdntPfwen+dNtKTVVd3Op7DvzpRujpMW+ef/utX1+3soWaQN+X7LrkLNjnI5TOr8bZ/U6fFnnjDZGePb2fiubNRR58UOTzz2tkwTNjl2syxDfyjYyRMRIlUW673vWQHrJaVpuu6x2z2EmYBEh//rPLF9C6QRD8fpljVUzUeTmFhMAvaCwWdXGXleV5OzPSEGmXtSmQeY08XTABIi1bBu/mhqfn8vY9kpamJpf2Z/9IzATpD154Ogt2pspQO786Zffbt0/kscdEWrf2fprbtxeZMUPku+8kciejJrcOyAG5W+6WaIl2Gyh1la6SLdliFavRRRURBkgiEgYBUmWla6sOIGMWNhE0/MWxamjcysCDI/ujZUuRlBTfFz9m+dEIRWZsdSHvatbZ+vXmGNzt7oKpdmAUrAsVd8/l63lC6Q69WfHCs5oW76dQO786/nZUVIj85z8io0eLNGjg/ZT36SPy+v275WRyJ80DOAod38v38gf5g8RIjNtAqbN0lg/kA6kUY6+BGCBJGARIbrJCnY+DNHx9jNPqlcise4Dk74MXNXVj9jk3QoWeQaa/wYERnxE9A7fa53zFCu93tEPtDr1Z6T0vkFlp9X7i+fWppETkrbdE+vf33pAcF2eTzIxiWTUpV85/8ik/2yQiIofkkDwkD0mcxLkESTESI4fkkKHlY4AkYRAgPfmkyzfSqhEQ3Pgfx6qGsaflHOK1D5DYLSZwnEwvOPQMMgOZJNXoz4gRLTa+AtVQu0NvVmx1VrR6P/H8+u3wYZFZs0SuuML710xCgsg994isW6dao4iOylGZIBMkXuIdAdK9cq/RxQooNrCIiBiVIEJLpaWlSEhIQElJCZo1a2Z0cQLXpQuwZ4/TqhF/bYXVD/8IWGMAAGNi3sI/Ku/TviybNgE33KD984QLq1XlVfWUVtZiUZmKCgoiJ3W41aqyIxYVqQxHGRm+X7s9zW/tryh7hqdgZqvzVWe+BPoZqcv5qGnZMuCOO3zvt3Spyvmrl+xslX2s5nlMS1OZ+SI5EyTVjdHvp/p+TsOECLB7N/CPf6ivlJ9/9rxv69bA7berr53evT0n5KPIUIQivIgX8Tf8DfnIR3u0N7Q8gcQGDJDMyGoFYmKcVp1pDLR49hFUPLbQsW49BmIgNmpXDj0u5MPxB+jTT4H+/X3vFymBp7uLnNRUle7a00WO3kGmv3UWjHLU5XzUZub3WDh+puuC58G9QM+LUecxGJ/TMFRRAaxbp4Kljz4Czp/3vG96OjBqlAqWrrqKwVIkO4MzaIImRhcjsNhA49Ysw4R0F7tbb3Vpw35/NAS9P3esat6gUCoR5V83G38eRnSLCdcxOsHOwBTK6trVUO8uZP7WWX0/I8HqehkJY35CuStUuH631VeonBd2kfZLSYnIkiUiN97oNqeU0+OKK0SefVbk4EGjS02RjGOQJIQDpAsX3H679H+zndOqCdF+zjvi6wIvLc33AGwthPMPUKRk9PJ1AWu/iPf1/nN34at3kOlvndXnM1Kf8+FOOI/5CZULaXfC+butPkLlvAT7cxohiotFFi0Sycjw/dXZo4eaOu3wYaNLTZGGAZKEcIA0f77Lt8nJ5pComX9yWr0T3esfHNX8UdLzbm24/wBFwt19fy5g6xMo6h1k6jEhq1api8MtK1eoXEi7E+7fbXUVSuclUm5waejIEZEXXxS5+mrfp7FnT5GXXhI5dMjoUlMkCCQ2iNK6vx8F6PvvXVatzARsy+90LKc0+hbdkVe/50lNdR7kHh2txiqMHq3+1bKP9+bN3gfDiwBHj6r9QlF0tOqnDrh2urYvL1gQuuMR7MkTatdhYaFan52tlouK/Dueu/0yMtR71FOndYtFDdbOyPC/3N74U2evvAIMHFj3z0h9zocnmZnAoUNqrNHSperfgoLQHSNhtapxHyKu2+zrsrLUfmYU7t9tdRVK50WLz2mESUsDpkwB8vKAb78FZswALr/c/b7bt6t9L74Y6NkTeOkl9ZVGZDQGSGbT3jXDx+JruwD7r3Qs33t+Keo01nHmTHNcREXCD1BmpgpAU1Kc19cOTENNIBewbdv6d0x3+xkRZGpdZ/U5H97oeXNDa6F0Ie1OJHy31UUonRetPqcR6rLLgOnTgf37VSa8qVNVAOXOjh1qe7t2wDXXAHPnAj/8oG95iexifO9CuoqPd1osSgJ2HbjTad1Y29LAjztzJvDMM/UpWfBEyg9QZiYwYkR4ZbIK5ALW3gpUWOg+oLJngPPUCmQPWNxlkqqd5jdYma60rLP6no9IEEoX0u5EyndboELpvPBzqgmLBejWTT3mzFHB0IoV6iv+yBHX/XftUo9p04CrrwZuu0093NxDJtIE03ybiZv03vMnWDA5+whQmAoA6NB0B/aX9QzsuKmpqs3aLBfm9hTOvn6AImmeID34CiL8CTICnX/H3h0PcK7rQOYy8lWuUErHG4zzEc7MnL7cH/xucy/Uzgs/p7oRAXbuVMHSihXA4cPe9+/WTZ36kSOBjh2ZOpwCwzTfEqJJGqZPdxnBeMVr/ZxWzcejgSdkmDrV6FfmKpwzcJmRr6QK/mYNq8sAZi0TCYTigP5wTKwQLOGQ4ITfbe6F2nnh51R3NpvIjh3qkuXii33/zPz612rfrVtFrFajS0+hIJDYgC1IZmG1As2aAWfPOlb90A5oP+ivwOL7AQAWixU/SgqS8FNgx7ZYzHnHy+hZ0iOF/W5o7Y+6/dbblClqZKyn7TXfO3W9E6zFZI96TyYbTJxE1LNwuHvP7zb3Qu288HNqGBE1ZsnesuRrLFJSkuod/bvfqUbouDh9ykmhJZDYgAGSWbjpWvLs1DhMX3wcON0cANCz6TpsK/tN4MfmhWLk8hVEAOp8e8oK5u69Y5YL2FDvjkWehdqFtDv8bnOP54UCJALk56tAadUqlRnPm4QEYOhQ1Q3vppuAJk10KSaFAAZICMEA6f33gTFjnFalvzIcRyZ+5Fh+C3fjHiyp+3PwQjHy+BtE+FL7vWOGC9hAx0NRaOGFNBG5sX+/CpRWrVKJHLyJjwcGD1YtS8OGAa1b61NGMqdAYoOgp/meMWMGLBaL0yMpKcmxXUQwY8YMJCcno2HDhrjhhhvw9ddfOx3jwoULmDBhAhITE9G4cWMMHz4cx7zdAQ8HtRL/7+sIHNlSnb0uOuY8MrGqfs9h1sxPpJ1g1Xnt45hh/p1gZsayWlUwuWyZ+tes8+xEknBKX05EQXPFFcCf/qSSOxw5Arz6KjBggPuviAsXgH//G7jvPtUNr3dvYNYsYO9e973Eiew0mQepY8eOKCoqcjz27t3r2DZ37ly8/PLLWLhwIXbu3ImkpCQMHjwYZWVljn2ysrKwatUqLF++HFu2bMGZM2cwbNgwWMP5omXmTKfFJSObAmtudiwPbLgGCSit33OYIYUq6StYde5prqKaF7CAvkFGsCaTzc5W3RD791ctUv37q2X7hLdERGRKaWnA+PHAhg1AcTGwZInqWtewoeu+IsC2bcBTTwFXXaXmWxo/HvjkExVIETkJdoaI6dOnS5cuXdxus9lskpSUJHPmzHGsO3/+vCQkJMgbb7whIiKnT5+W2NhYWb58uWOfwsJCiYqKko8//tjvcoRUFruzZ51Ss9gAafXiWKdsLdkYGXj2ulDK/ETa8JUVDBCJiqp/1jB/s+AFW30zY4ViFjwiIvLql19EsrNFxo4Vad7c92VSkyYimZkib78t8tNPRpeetBJIbKBJC9LBgweRnJyMdu3aYdSoUfihKv1IQUEBjh8/jiFDhjj2jY+PR79+/bB161YAQF5eHioqKpz2SU5ORqdOnRz7uHPhwgWUlpY6PULGsGFOizuvAX7Oqe5e1yD+NH6L/9Tt2Pa76wsWsItKJIqOVvMBeetLYLOp7bVbYvx979iTNtTuBltYqNZr2RJjn0w2JcV5fWqq+2QRNbvSbdgAPPqo+3NjX5eVxe52REQhplEjNe7o3XeBn35SvcAnTwYuvdT9/mfOqJ+qe+5hVzxSgh4g9ezZE++++y4++eQTLF68GMePH0efPn1w8uRJHD9+HADQpk0bp79p06aNY9vx48cRFxeH5s2be9zHndmzZyMhIcHxSEtLC/Ir04jVCmzc6LTqb8NaA+sHOZaHx65EPMrrdnxPF4oUOUaMAFq29LzdYlHb/Q0yarJaVbKGugQZwRr34+94qNpd6QYNUkGcJyLA0aMqUQAREYWk2FjVC3zePODAAeC//wVefBHo18/9vb/aXfHS04EHHgA+/BCoMRqEwlxMsA940003Of7fuXNn9O7dG+3bt8eSJUvQq1cvAICl1p1qEXFZV5uvfZ588klMnjzZsVxaWhoaQVKt4MgaBXxg+T1gq/7UPnjmff+O1auXGssUHa064zLzEwHqAv/kSc/bRdT29evVeyWQrGGbN3tPIV4zyPCVBa9VK+DOO1VAF+j71j4eyhNPc0H5g8lN9MPMdUSkscsvV48pU4D//Q/4+GNgzRpg7VqgpMR1/6NHgTffVI/YWOC661T68BtvBDp18jwMlkJb0AOk2ho3bozOnTvj4MGDGDlyJADVStS2xqDv4uJiR6tSUlISysvLcerUKadWpOLiYvTp08fj88THxyM+Pl6bF6GlZ55xWvzseqD0/6pTFyc0LsT1v3zm+zhTpwJz5wa7dBQO/L3ALy4OPB22v8euuZ+nYOXnn1V3vgULVOvVK68Ep+XTWyuXP5jcRB/uguZgvg+IiGpp0UJ1KLjjDqCiAvj8cxUsrVkDHDzoun9FheqksGkT8Pjj6ivqxhtVwDRoEBAKs8qQfzQZg1TThQsXsH//frRt2xbt2rVDUlIScnJyHNvLy8uRm5vrCH66d++O2NhYp32Kioqwb98+rwFSSLJaVTtuDX8d0B7Y3suxPFqWIRo278d56y0GR+RZMNNh1/fY/gYrx44Fb/ySr1YuT/zNgkf1Z+Q4NiIiuO+KN2+eCnzi4tz/zbFjwN/+Btxyi+qpfsMNwAsvAHv2cOxSqAt6gDRlyhTk5uaioKAA27dvx6233orS0lKMGzcOFosFWVlZmDVrFlatWoV9+/bh7rvvRqNGjXBH1YSPCQkJuO+++/DYY49hw4YNyM/Px5gxY9C5c2cMGjTIx7OHmFp368tjgdVnndf98exS38dx1yZMZBesdNjBOHagwUowkiTUpYsck5vopz7j2IiINHL55SqxQ06O6oW+ejXw8MMqPbg7lZVAbi7wxBNAly5qWO+4ccB77wFehtCTSQW9i92xY8cwevRonDhxAq1atUKvXr2wbds2pKenAwAef/xxnDt3Dg8//DBOnTqFnj17Yt26dWjatKnjGPPnz0dMTAxuv/12nDt3DgMHDsQ777yD6HC6UFm5ElixwmnVukHAuVXV2euSEvajW0m+72O1ahXs0lE4sWeyu/VWdeFf80K0voFAoMcOJFjxNH4pUHVpGUtNVeVm1y7t1XUcGxGRTpo0AW6+WT1EVAvT2rXqkZvrfh6loiKVRe/dd9Vy587AkCHA4MHqnmGjRvq+BgqMRSQ8GwFLS0uRkJCAkpISNDNbp1CrVV20/fyz0+rfPtcNa5/e7Vh+ssHTmHX+//k+3qZNvHAg39yN8UhLC04g4O+xP/1UZZELxNKlgY+NqslqVdnrCgvdt1JYLOpW3zvvMLmJEZYtUwMAfKnv+4CISAO//KJ+2uwBU9XMNl7FxwN9+1YHTF27AlGaD3qhQGIDBkhGcHOReLYhkHDfS6hc+Jhj3Xdoj/bw8UmLjgbOnvXcQZaoJi2zhPlzbF/BijvBuAFgH+MCuG/lYip84/gbNPNGEBGZnAjw3XcqUMrJUV9vZ874/rvERGDgQBUwDRoEXHSR5kWNSAyQYPIAyc0d0+W3RmH01iPAj2ouml+32IaD/+vt3/FqXzgwVW5kM3v9ewpWarNYVFe3goLglF/LFjSqO39a+IL5PiAi0kl5ObB9O7BunQqYdu5Uc7P70r49MGCAunfUv7+avJbqL5DYQPM03+RG69Yuq17r1A9YWT1R5wNlfs59BLimUGaq3MilZf0HK/DKzFQtNrXLWZMWSRIyM9UcS2YOHiORlmPkiIgMFBenfmYyMoDnngNOnVLTX+bkqIen7njff68eixer5SuvVIHSgAFqgltvc79TcLAFyQg5OaodtUpJM6BF5mLY3vkDAMBisaJIktEGxf4db+ZMNZ+Sp/ll2I0oMmhZ/1oEXvaA66OPVJqfEyeqt5mxZcfsLXOhji18RBRhvv++OljasMG/pMQWi8qSZ29huv56zr/kL3axg8kDpJEj1UVhlcVj4nH/muNAya8AAF1bfYL8n2/0/3ipqepT1r699zvy7KYSvuzdlLSofz0Cb7MHH2yZ1YfZ3wdERBqprAR27VKjJjZuVJPWnjvn+++io4EePaqDpb59GTB5wgAJJg6QrFYgxrlnY9enR+Kr51Y5lv8WfRfus/4jsOPOnw9MmuR7Pw50Dk9aDXTXMvAKFd4CRBHVgnvppbygJyKioLlwQY1f2rhR/XR/8QVQUeH776KigG7dVLB0/fXqZ4ld8hSOQTKzDRucFotbAV99XT33UXTsOdxW8WHgx/3+e//2q8ukmWR+/tZroPUf6XPU+DOJ6fTp1evYqkREREEQH18d5MyYoRIWb92qAqaNG1Vrk7v5s202IC9PPebPV+s6dao+1vXX1216wEjDAElvb73ltPju8GbAe8Mcy9c1X41mxWWBH7d9e//246ciPPlbr4HWv1aBV6jwFSDWVlioWps43o+IiIKoUSOVAnzQILVcWqp+ouwB01dfeU4Mu2+feixapJYvvdQ5YEpPr+41Twq72OktPl7lfaxy2ZPjcHD2O47lbMsI/E5W+388exen775TQRJT5UYmrVIlR/ocNf5OYloTP2tERKSz06fVuKXPPgNycz23MLmTkgL06aPGL/XpoyaujY3VsrTG4BgkmDRAWrECuP12x+KRNCD98nXA+sEAgPhG/0Pp2STEwY9OpnYWS/Xdak6GGdm0qP9In6PG3wDRnXANGomIyPTOnAG2basOmLZvV+Oa/NGwIXDttdUBU+/eQIsW2pZXD4HEBlE6lYmsVuCBB5xWLR6aBGwc4Fj+TZOVgQVHLVo4X/Ta55dJSXHeLzWVwVEk0KL+7XPUAO7b30WAW25R7fz+3qoKJRkZ6vzVpe9BuHY7JCIi02vSRHXHe/ZZFSCdPq2CpeeeAwYPBho39vy3586pv5k1Cxg2TCV5uPJK4I9/BN5+GzhwwPs87+GALUh6cXMnOvWxiSict8CxvAn9cAM+8/+Y69cDAwe6rmeq3MimRf27S3MdHe0cFIVrggJPLXO+sAWJiIhMqqIC2L1bdcuzP376yf+/T0xUrUv2rnk9egANGmhX3mBgFzuYMEBasgS4+27H4reXAR0StgM7rwUANE04itMl6YiCH9UR7t2ayJxqTuy6YIHr9nDuyukuQPSEn08iIgoxIupna+tWFSxt3Qrs3ev/fcHYWDV2qVcvoGdP9e8ll5gr+QMDJJgwQOrSBdizx7E4YfyvsXDhQcfy3Ylz8faJab6PE84XoWR+Rs+LZGTraM3nPnhQ5V0FON6PiIjCUkmJGrtkD5i2bVNjm/yVmOgcMA0YoOZpMgoDJJgsQKo1OawAaDX+GZxcONOxbje6ohu+8n2sli2BN9/kxRcZw8isdu5acYzs1ueuPGlpqnWNn08iIgozlZUqXbg9YPr8c+DwYf/+tmVL4OefjW1R4kSxZrNundNifhfg5CfVk8O2SvwaXU/4ERwBwMmTwSwZUWCMmhfJPg6o9v0cI+cdyswERozgeD8iIooIMTGqG13XrsAjj6h1hYUqWNq+XbUw5eUB58+7/m2vXubqbucLAyQ9THPuOrfg+u7Aq5c5lsfYlsLv94zFAmRlqQszXogRoG+3M60mpPXGalUtNe4au+3rHnxQpd1JSdE3SImOZiIGIiKKWCkpwG23qQegkj/s2aOCpW3bVOB08KAKkEIJu9hprVb3OpsFSLj3ZZz5+yTHuh/QDu1wKLDjMkMWAfp3OzNiXqRA5yIK12x6REREIejECfVvYqKx5eA8SGaydq3T4ubeUTjzf6Mcy+lttwYeHAGcY4Wqu53VTphg73aWnR385/Q2L5J9ecGC4LbgBPpe1/L1ExERUUASE40PjgLFAElrTz3ltDjv6v7A8eruR388+37djhvMLkwUevzpdpaVpc3krXpPSBzoe13r109ERERhjV3stFbjLntlNND0tr/j/PJ71YqoSvxkS0Zr/BzY8TjHChmZTc5Or7FPvrr1ecOuqERERAR2sTOP8nKnxY/7xeP8f25xLHdMyfEeHOnVhUlvVqu6wF+2TP1b+y6/r+1kXDY5I3jr1udLOLx+IiIi0hUDJC3Nm+e82GEoUJrgWH7klJfudTNn6teFSU/Z2ao1oH9/4I471L8XX1w9XsTXdlKMyCZXk9715Klbny/sikpEREQBYhc7LbVoAZw6BQA4Hw80HbISlWtUC1JU/FmcvtAGTeFmSuK0NNWFDgivOVY8zWVjbxWYMgV46SXP20M9OAwmI7LJ2fmqRy3ryd6tr7AQmDRJpcbR+/UTERFRyAkkNmCApJVa6b3f+20Cxq7/CSiPBwD0Sl+GLw7f4f5v//Wv8AsE7Bf0tTOu1RQd7bk7HS94XdkDFcA5SNAyUPFVj3rWkxGvn4iIiEISxyCZwZo1TouvXJTpCI4AYNJPS93/3YoV4XlRt3mz9+AI8D7WSAQ4elQdhxS9s8kBvutRz3oy4vUTERFR2IvxvQvVyT33OP5b1gTY/d87HctxTU5i5JlPXP/mrruq74iHm2ANluege2eZmcCIEfp1xTRbcgi9Xz8RERGFPQZIWrBagdOnHYtLBrWF7aPqlMw3JK5A3JkK179bvFiHwhkkWIPlOejeVXS0fqmsjU4O4Y6er5+IiIjCHrvYaaFW96JFLUcBUn2qp/7oJnvdlClAXJzWJTNORobq+uQtTXN0tOftFotKXpGRoU35yD++6pH1RERERCGOAZIWCgsd/z3ZAtifX52MoVGLIxhQ/rnz/tdcA7z4ol6lM4a3uWwsFvWYPNnzdiD0538KB77qEWA9ERERUUhjgKSFn6snf31t4GXA7h6O5aEJSxGFWokDJ03Sq2TG8jWofu5cDroPBUyOQERERGGMY5C00KqV47+5Pzqn8p52xE32umCO17DPE2PWAeu+BtVz0H1oYD0RERFRmGKApIUad9anfv4FGkZ/hI/lJrRJ+BbdT+113jc1NXjjNbKzgYkTndMwp6aqLlFmuqvva1A9B92HBtYTERERhSFOFKsFN5NpnkQLHEUauuIr532DNSmsfdLM2tXJSTOJiIiIKMJxolij2Qey1xjE3hL/cw6OmjQJXnBktaqWI3exrn1dVpb3iViJiIiIiIgBkmbsA9lTU53XN20KTJ+u5kkKVovO5s3O3epqEwGOHnVJP05ERERERM44BklLeg1kLyoK7n5ERERERBGKAZLW9BjI7m8WvGBmyyMiIiIiCkPsYhcOMjJUV77aE3faWSxAWlrwsuUREREREYUpBkjhwJ4UAnANkuzLCxZwjhoiIiIiIh8YIIULe1KIGnMwAVAtS0zxTURERETkF45BCid6JYUgIiIiIgpTDJDCjR5JIYiIiIiIwhS72BEREREREVVhgERERERERFSFARIREREREVEVBkhERERERERVGCARERERERFVYYBERERERERUhQESERERERFRFQZIREREREREVRggERERERERVWGAREREREREVIUBEhERERERURUGSERERERERFUYIBEREREREVWJMboAWhERAEBpaanBJSEiIiIiIiPZYwJ7jOBN2AZIZWVlAIC0tDSDS0JERERERGZQVlaGhIQEr/tYxJ8wKgTZbDb8+OOPaNq0KSwWS9CPX1pairS0NBw9ehTNmjUL+vGpflg/5sW6MTfWj7mxfsyLdWNurB9z06N+RARlZWVITk5GVJT3UUZh24IUFRWF1NRUzZ+nWbNm/KCZGOvHvFg35sb6MTfWj3mxbsyN9WNuWtePr5YjOyZpICIiIiIiqsIAiYiIiIiIqAoDpDqKj4/H9OnTER8fb3RRyA3W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JDs7W/bu3SujR4+Wtm3bSmlpqYElj0w1s9iJsG6MtGPHDomJiZHnn39eDh48KO+//740atRI3nvvPcc+rB/jjBs3TlJSUuTf//63FBQUSHZ2tiQmJsrjjz/u2If1o5+ysjLJz8+X/Px8ASAvv/yy5OfnOzKh+VMXDz74oKSmpsr69etl9+7dMmDAAOnSpYtUVlYa9bLCgre6qaiokOHDh0tqaqp8+eWXTtcJFy5ccByDdaMdX5+d2mpnsRMxrn4YINXBa6+9Junp6RIXFydXX321I6006QuA28fbb7/t2Mdms8n06dMlKSlJ4uPj5frrr5e9e/caV+gIVjtAYt0Ya82aNdKpUyeJj4+XDh06yJtvvum0nfVjnNLSUpk4caJcdNFF0qBBA7nkkkvkqaeecrqoY/3oZ9OmTW5/a8aNGyci/tXFuXPnZPz48dKiRQtp2LChDBs2TI4cOWLAqwkv3uqmoKDA43XCpk2bHMdg3WjH12enNncBklH1YxER0baNioiIiIiIKDRwDBIREREREVEVBkhERERERERVGCARERERERFVYYBERERERERUhQESERERERFRFQZIREREREREVRggERERERERVWGAREREREREVIUBEhERERERURUGSERERERERFUYIBEREREREVX5/zskUuJmvd1oAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import numpy as np\n", "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "import tensorflow as tf\n", "from sklearn.model_selection import train_test_split\n", "from scipy.optimize import curve_fit\n", "\n", "# Set random seed for reproducibility\n", "np.random.seed(42)\n", "tf.random.set_seed(42)\n", "\n", "# Proposed Model (Proposed)\n", "def Proposed_model(k, V_f, k_j, n):\n", " g_k = 1 - 1.2 * (k_j**n - k**(n-1) * k_j) / ((1.2**(1/n)) * k_j + k)**n\n", " q_k = V_f * k * (0.35 * (1 - g_k**(n-1)) + 0.65 * (1 - g_k**(n-1))**(2*n))\n", " return q_k\n", "\n", "# Wang Five Parameter Logistic Model (Wang)\n", "def Wang_five_parameter_logistic_model(k, V_f, V_b, k_t, theta_1, theta_2):\n", " q_k = k * (V_b + (V_f - V_b)) / (1 + np.exp((k - k_t) / theta_1))**theta_2\n", " return q_k\n", "\n", "# Edie_Multi-Regime Model (Edie_Multi_Regime)\n", "def Edie_Multi_Regime_model(k, V_f, V_c, k_c, k_j, k_b):\n", " q_k = np.piecewise(k, [k <= k_b, k > k_b], [lambda k: V_f * k* np.exp(-k / k_c), lambda k: V_c * k * np.log(k_j / k)])\n", " return q_k\n", "\n", "# Cheng Model (Cheng)\n", "def Cheng_model(k, V_f, k_c, m):\n", " q_k = V_f * k / (1 + (k / k_c)**m)**(2 / m)\n", " return q_k\n", "\n", "# Gaddam Model (Gaddam)\n", "def Gaddam_model(k, V_f, k_j, k_c, a):\n", " Numerator = V_f * k * (np.exp(-((k / k_c)**(1 + a))) - np.exp(-((k_j / k_c)**(1 + a))))\n", " Denominator = (1 - np.exp(-((k_j / k_c)**(1 + a))))\n", " q_k = Numerator / Denominator\n", " return q_k\n", "\n", "\n", "# Modified Lee Model (Modified Lee)\n", "def Modified_Lee_model(k, V_f, k_j, E, theta, a):\n", " q_k = V_f * k * (1 - ((k / k_j)**a)) / (1 + (E * ((k / k_j))**theta))\n", " return q_k\n", "\n", "# Drake Multi-Regime Model (Drake)\n", "def Drake_Two_Regime_model(k, V_f, k_j, k_b, c, v_bw):\n", " q_k = np.piecewise(k, [k <= k_b, k > k_b], [lambda k: k * (V_f - c * k), lambda k: k * (v_bw - k * (v_bw / k_j))])\n", " return q_k\n", "\n", "# van aerde Model (van Aerde)\n", "def van_Aerde_model(k, alpha, beta, gamma, delta):\n", " q_k = alpha * (1 - (beta * k) -((gamma * k - 1)**2 + delta* k**2)**(1 / 2))\n", " return q_k\n", "\n", "# Load data (replace with your actual data)\n", "#data = pd.read_excel('Data.xlsx')\n", "\n", "# # Transform data into arrays\n", "# k_data = np.array(data['DENSITY'])\n", "# V_data = np.array(data['SPEED'])\n", "\n", "# Set random seed for reproducibility\n", "np.random.seed(42)\n", "tf.random.set_seed(42)\n", "\n", "# Build the Neural Network Model\n", "def build_ann_model(input_shape):\n", " model = tf.keras.Sequential([\n", " tf.keras.layers.Input(shape=input_shape),\n", " tf.keras.layers.Dense(64, activation='relu'),\n", " tf.keras.layers.Dense(32, activation='relu'),\n", " tf.keras.layers.Dense(1)\n", " ])\n", " model.compile(optimizer='adam', loss='mean_squared_error')\n", " return model\n", "\n", "# Split the data into train and test sets\n", "k_train, k_test, q_train, q_test = train_test_split(k_data, q_data, test_size=0.2, random_state=42)\n", "\n", "# Build and train the ANN model\n", "input_shape = (1,) # Assuming k_data is 1-dimensional\n", "ann_model = build_ann_model(input_shape)\n", "ann_model.fit(k_train, q_train, epochs=50, batch_size=16, verbose=0)\n", "\n", "# Function to calculate mse for a given model and parameters\n", "def calculate_mse_ann(model, k_data, q_data):\n", " q_fit = model.predict(k_data)\n", " residuals = q_data - q_fit.flatten()\n", " return np.mean(residuals**2)\n", "\n", "# Function to calculate RMSE and ARE for a given model and parameters\n", "def calculate_rmse_and_are_ann(model, k_data, q_data):\n", " q_fit = model.predict(k_data)\n", " residuals = q_data - q_fit.flatten()\n", " rmse = np.sqrt(np.mean(residuals**2))\n", " are = np.mean(np.abs(residuals) / np.abs(q_data))\n", " return rmse, are\n", "\n", "#initial_params_Proposed = [100, 160, 4]\n", "#initial_params_Wang = [104, 9, 17, 2.1, 0.07]\n", "#initial_params_Edie_Multi_Regime = [104, 65, 30, 175, 20]\n", "#initial_params_Cheng = [105, 65, 4]\n", "#initial_params_Gaddam = [105, 179, 65, 0.6]\n", "#initial_params_Modified_Lee = [105, 179, 10.3, 2.14, 4]\n", "#initial_params_Drake_Two_Regime = [105, 80, 25, 5, -15]\n", "#initial_params_van_Aerde = [1000, 0.007, 0.05, 0.5]\n", "\n", "# Optimize the Proposed model with ANN predictions\n", "params_Proposed, _ = curve_fit(Proposed_model, k_train, q_train, p0=[100, 160, 4])\n", "q_Proposed_ann = Proposed_model(k_test, *params_Proposed) # Corrected line\n", "mse_Proposed_ann = calculate_mse_ann(ann_model, k_test, q_Proposed_ann) # Corrected line\n", "rmse_Proposed_ann, are_Proposed_ann = calculate_rmse_and_are_ann(ann_model, k_test, q_Proposed_ann) # Corrected line\n", "\n", "# Optimize the Wang model with ANN predictions\n", "params_Wang, _ = curve_fit(Wang_five_parameter_logistic_model, k_train, q_train, p0=[104, 9, 17, 2.1, 0.07])\n", "q_Wang_ann = Wang_five_parameter_logistic_model(k_test, *params_Wang) # Corrected line\n", "mse_Wang_ann = calculate_mse_ann(ann_model, k_test, q_Wang_ann) # Corrected line\n", "rmse_Wang_ann, are_Wang_ann = calculate_rmse_and_are_ann(ann_model, k_test, q_Wang_ann) # Corrected line\n", "\n", "# Optimize the Edie_Multi_Regime model with ANN predictions\n", "params_Edie_Multi_Regime, _ = curve_fit(Edie_Multi_Regime_model, k_train, q_train, p0=[104, 65, 30, 175, 20])\n", "q_Edie_Multi_Regime_ann = Edie_Multi_Regime_model(k_test, *params_Edie_Multi_Regime) # Corrected line\n", "mse_Edie_Multi_Regime_ann = calculate_mse_ann(ann_model, k_test, q_Edie_Multi_Regime_ann) # Corrected line\n", "rmse_Edie_Multi_Regime_ann, are_Edie_Multi_Regime_ann = calculate_rmse_and_are_ann(ann_model, k_test, q_Edie_Multi_Regime_ann) # Corrected line\n", "\n", "# Optimize the Cheng model with ANN predictions\n", "params_Cheng, _ = curve_fit(Cheng_model, k_train, q_train, p0=[105, 65, 4])\n", "q_Cheng_ann = Cheng_model(k_test, *params_Cheng) # Corrected line\n", "mse_Cheng_ann = calculate_mse_ann(ann_model, k_test, q_Cheng_ann) # Corrected line\n", "rmse_Cheng_ann, are_Cheng_ann = calculate_rmse_and_are_ann(ann_model, k_test, q_Cheng_ann) # Corrected line\n", "\n", "# Optimize the Gaddam model with ANN predictions\n", "params_Gaddam, _ = curve_fit(Gaddam_model, k_train, q_train, p0=[105, 179, 65, 0.6])\n", "q_Gaddam_ann = Gaddam_model(k_test, *params_Gaddam) # Corrected line\n", "mse_Gaddam_ann = calculate_mse_ann(ann_model, k_test, q_Gaddam_ann) # Corrected line\n", "rmse_Gaddam_ann, are_Gaddam_ann = calculate_rmse_and_are_ann(ann_model, k_test, q_Gaddam_ann) # Corrected line\n", "\n", "# Optimize the Modified Lee model with ANN predictions\n", "params_Modified_Lee, _ = curve_fit(Modified_Lee_model, k_train, q_train, p0=[105, 179, 10.3, 2.14, 4])\n", "q_Modified_Lee_ann = Modified_Lee_model(k_test, *params_Modified_Lee) # Corrected line\n", "mse_Modified_Lee_ann = calculate_mse_ann(ann_model, k_test, q_Modified_Lee_ann) # Corrected line\n", "rmse_Modified_Lee_ann, are_Modified_Lee_ann = calculate_rmse_and_are_ann(ann_model, k_test, q_Modified_Lee_ann) # Corrected line\n", "\n", "# Optimize the Drake_Two_Regime model with ANN predictions\n", "params_Drake_Two_Regime, _ = curve_fit(Drake_Two_Regime_model, k_train, q_train, p0=[105, 80, 25, 5, -15])\n", "q_Drake_Two_Regime_ann = Drake_Two_Regime_model(k_test, *params_Drake_Two_Regime) # Corrected line\n", "mse_Drake_Two_Regime_ann = calculate_mse_ann(ann_model, k_test, q_Drake_Two_Regime_ann) # Corrected line\n", "rmse_Drake_Two_Regime_ann, are_Drake_Two_Regime_ann = calculate_rmse_and_are_ann(ann_model, k_test, q_Drake_Two_Regime_ann) # Corrected line\n", "\n", "# Optimize the van Aerde model with ANN predictions\n", "params_van_Aerde, _ = curve_fit(van_Aerde_model, k_train, q_train, p0=[1000, 0.007, 0.05, 0.5])\n", "q_van_Aerde_ann = van_Aerde_model(k_test, *params_van_Aerde) # Corrected line\n", "mse_van_Aerde_ann = calculate_mse_ann(ann_model, k_test, q_van_Aerde_ann) # Corrected line\n", "rmse_van_Aerde_ann, are_van_Aerde_ann = calculate_rmse_and_are_ann(ann_model, k_test, q_van_Aerde_ann) # Corrected line\n", "\n", "\n", "# Print the final optimized parameters\n", "print(\"Final optimized parameters for Proposed Model:\", params_Proposed)\n", "#print(\"Initial parameters for Proposed Model:\", initial_params_Proposed)\n", "\n", "print(\"Final optimized parameters for Wang Five Parameter Logistic Model:\", params_Wang)\n", "#print(\"Initial parameters for Wang Five Parameter Logistic Model:\", initial_params_Wang)\n", "\n", "print(\"Final optimized parameters for Edie_Multi-Regime Model:\", params_Edie_Multi_Regime)\n", "#print(\"Initial parameters for Edie_Multi-Regime Model:\", initial_params_Edie_Multi_Regime)\n", "\n", "print(\"Final optimized parameters for Cheng Model:\", params_Cheng)\n", "#print(\"Initial parameters for Cheng Model:\", initial_params_Cheng)\n", "\n", "print(\"Final optimized parameters for Gaddam Model:\", params_Gaddam)\n", "#print(\"Initial parameters for Gaddam Model:\", initial_params_Gaddam)\n", "\n", "print(\"Final optimized parameters for Modified Lee Model:\", params_Modified_Lee)\n", "#print(\"Initial parameters for Modified Lee Model:\", initial_params_Modified_Lee)\n", "\n", "print(\"Final optimized parameters for Drake_Two_Reime Model:\", params_Drake_Two_Regime)\n", "#print(\"Initial parameters for Drake_Two_Reime Model:\", initial_params_Drake_Two_Regime)\n", "\n", "print(\"Final optimized parameters for van Aerde Model:\", params_van_Aerde)\n", "#print(\"Initial parameters for van Aerde Model:\", initial_params_van_Aerde)\n", "\n", "# Generate a range of density values for plotting\n", "k_plot = np.linspace(min(k_data), max(k_data), 200)\n", "\n", "# Calculate Flows for each model using ANN model\n", "q_Proposed_pred = Proposed_model(k_plot, *params_Proposed)\n", "q_Wang_pred = Wang_five_parameter_logistic_model(k_plot, *params_Wang)\n", "q_Edie_pred = Edie_Multi_Regime_model(k_plot, *params_Edie_Multi_Regime)\n", "q_Cheng_pred = Cheng_model(k_plot, *params_Cheng)\n", "q_Gaddam_pred = Gaddam_model(k_plot, *params_Gaddam)\n", "q_Modified_Lee_pred = Modified_Lee_model(k_plot, *params_Modified_Lee)\n", "q_Drake_pred = Drake_Two_Regime_model(k_plot, *params_Drake_Two_Regime)\n", "q_van_Aerde_pred = van_Aerde_model(k_plot, *params_van_Aerde)\n", "\n", "# Plot the original data and curve fits\n", "plt.figure(figsize=(10, 6))\n", "plt.scatter(k_data, q_data, label='Data', color='Red')\n", "plt.plot(k_plot, q_Proposed, label=f'Proposed Model (MSE: {mse_Proposed_ann:.2f}, RMSE: {rmse_Proposed_ann:.2f}, ARE: {are_Proposed_ann:.2f})', color='Lime', linewidth=2.5)\n", "plt.plot(k_plot, q_Wang, label=f'Wang 5PL Model (MSE: {mse_Wang_ann:.2f}, RMSE: {rmse_Wang_ann:.2f}, ARE: {are_Wang_ann:.2f})', color='Blue', linewidth=2.5)\n", "plt.plot(k_plot, q_Edie_Multi_Regime, label=f'Edie Model (MSE: {mse_Edie_Multi_Regime_ann:.2f}, RMSE: {rmse_Edie_Multi_Regime_ann:.2f}, ARE: {are_Edie_Multi_Regime_ann:.2f})', color='Black', linewidth=2.5)\n", "plt.plot(k_plot, q_Cheng, label=f'Cheng Model (MSE: {mse_Cheng_ann:.2f}, RMSE: {rmse_Cheng_ann:.2f} ARE: {are_Cheng_ann:.2f})', color='Magenta', linewidth=2.5)\n", "plt.plot(k_plot, q_Gaddam, label=f'Gaddam Model (MSE: {mse_Gaddam_ann:.2f}, RMSE: {rmse_Gaddam_ann:.2f} ARE: {are_Gaddam_ann:.2f})', color='Indigo', linewidth=2.5)\n", "plt.plot(k_plot, q_Modified_Lee, label=f'Modified Lee Model (MSE: {mse_Modified_Lee_ann:.2f}, RMSE: {rmse_Modified_Lee_ann:.2f} ARE: {are_Modified_Lee_ann:.2f})', color='Green', linewidth=2.5)\n", "plt.plot(k_plot, q_Drake_Two_Regime, label=f'Drake Model (MSE: {mse_Drake_Two_Regime_ann:.2f}, RMSE: {rmse_Drake_Two_Regime_ann:.2f} ARE: {are_Drake_Two_Regime_ann:.2f})', color='Violet', linewidth=2.5)\n", "plt.plot(k_plot, q_van_Aerde, label=f'van Aerde Model (MSE: {best_mse_van_Aerde:.2f}, RMSE: {rmse_van_Aerde:.2f} ARE: {are_van_Aerde:.2f})', color='cyan', linewidth=2.5)\n", "\n", "plt.xlabel('Occupancy')\n", "plt.ylabel('Speed(Km/hr)')\n", "plt.ylim(0, max_flow + 10) # Set the y-axis limits starting from 0 to slightly above the maximum velocity value\n", "plt.legend()\n", "plt.title('Curve Fits for Different Models using ANN and Germany/Essen/Esss037 Data')\n", "plt.grid(False) # Remove grid lines from the plot\n", "plt.show()\n", "\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Least_squares L2 algorithm for optimization" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "from scipy.optimize import least_squares\n", "\n", "# Proposed Model (Proposed)\n", "def Proposed_model(k, V_f, k_j, n):\n", " g_k = 1 - 1.2 * (k_j**n - k**(n-1) * k_j) / ((1.2**(1/n)) * k_j + k)**n\n", " q_k = V_f * k * (0.35 * (1 - g_k**(n-1)) + 0.65 * (1 - g_k**(n-1))**(2*n))\n", " return q_k\n", "\n", "# Wang Five Parameter Logistic Model (Wang)\n", "def Wang_five_parameter_logistic_model(k, V_f, V_b, k_t, theta_1, theta_2):\n", " q_k = k * (V_b + (V_f - V_b)) / (1 + np.exp((k - k_t) / theta_1))**theta_2\n", " return q_k\n", "\n", "# Edie_Multi-Regime Model (Edie_Multi_Regime)\n", "def Edie_Multi_Regime_model(k, V_f, V_c, k_c, k_j, k_b):\n", " q_k = np.piecewise(k, [k <= k_b, k > k_b], [lambda k: V_f * k* np.exp(-k / k_c), lambda k: V_c * k * np.log(k_j / k)])\n", " return q_k\n", "\n", "# Cheng Model (Cheng)\n", "def Cheng_model(k, V_f, k_c, m):\n", " q_k = V_f * k / (1 + (k / k_c)**m)**(2 / m)\n", " return q_k\n", "\n", "# Gaddam Model (Gaddam)\n", "def Gaddam_model(k, V_f, k_j, k_c, a):\n", " Numerator = V_f * k * (np.exp(-((k / k_c)**(1 + a))) - np.exp(-((k_j / k_c)**(1 + a))))\n", " Denominator = (1 - np.exp(-((k_j / k_c)**(1 + a))))\n", " q_k = Numerator / Denominator\n", " return q_k\n", "\n", "\n", "# Modified Lee Model (Modified Lee)\n", "def Modified_Lee_model(k, V_f, k_j, E, theta, a):\n", " q_k = V_f * k * (1 - ((k / k_j)**a)) / (1 + (E * ((k / k_j))**theta))\n", " return q_k\n", "\n", "# Drake Multi-Regime Model (Drake)\n", "def Drake_Two_Regime_model(k, V_f, k_j, k_b, c, v_bw):\n", " q_k = np.piecewise(k, [k <= k_b, k > k_b], [lambda k: k * (V_f - c * k), lambda k: k * (v_bw - k * (v_bw / k_j))])\n", " return q_k\n", "\n", "# van aerde Model (van Aerde)\n", "def van_Aerde_model(k, alpha, beta, gamma, delta):\n", " q_k = alpha * (1 - (beta * k) -((gamma * k - 1)**2 + delta* k**2)**(1 / 2))\n", " return q_k\n", "\n", "# Given data (use your actual data here)\n", "#data = pd.read_excel('DATA1.xlsx')\n", "\n", "# Initial parameter guesses (you may need to adjust these based on the data)\n", "\n", "initial_params_Proposed = [4000, 1.5, 4]\n", "initial_params_Wang = [4000, 28.2, 0.0069, 0.0028, 0.044]\n", "initial_params_Edie_Multi_Regime = [4000, 20, 0.05, 1.5, 0.25]\n", "initial_params_Cheng = [4000, 0.05, 4]\n", "initial_params_Gaddam = [4000, 1.5, 0.05, 0.6]\n", "initial_params_Modified_Lee = [4000, 1.5, 10.3, 2.14, 4]\n", "initial_params_Drake_Two_Regime = [4000, 1.5, 0.25, 5, -15]\n", "initial_params_van_Aerde = [500, -45, -13, 223]\n", "\n", "# # Transform data into arrays\n", "# k_data = np.array(data['DENSITY'])\n", "# V_data = np.array(data['SPEED'])\n", "\n", "# # Initial parameter guesses (you may need to adjust these based on the data)\n", "# initial_params_Proposed = [105, 179, 5]\n", "# initial_params_Wang = [9, 104, 17, 2.1, 0.07]\n", "# initial_params_Edie_Multi_Regime = [104, 65, 30, 175, 20]\n", "# initial_params_Cheng = [105, 65, 4]\n", "# initial_params_Gaddam = [105, 179, 65, 0.6]\n", "# initial_params_Modified_Lee = [105, 179, 10.3, 2.14, 4]\n", "# initial_params_Drake_Two-Regime = [105, 179, 25, 5, 15]\n", "\n", "\n", "# Function to calculate mse for a given model and parameters\n", "def calculate_mse(model_func, k_data, q_data, params):\n", " q_fit = model_func(k_data, *params)\n", " residuals = q_data - q_fit\n", " return np.mean(residuals**2)\n", "\n", "# Function to calculate RMSE and ARE for a given model and parameters\n", "def calculate_rmse_and_are(model_func, k_data, q_data, params):\n", " q_fit = model_func(k_data, *params)\n", " residuals = q_data - q_fit\n", " rmse = np.sqrt(np.mean(residuals**2))\n", " are = np.mean(np.abs(residuals) / np.abs(q_data))\n", " return rmse, are\n", "\n", "\n", "# Function to define the objective function including regularization term\n", "def objective_function(params, model_func, k_data, q_data, regularization):\n", " q_fit = model_func(k_data, *params)\n", " residuals = q_data - q_fit\n", " regularization_term = regularization * np.sum(params**2) # L2 regularization term\n", " return np.concatenate((residuals, [regularization_term]))\n", "\n", "\n", "# Function to try fitting with different initial parameters and loop until it converges\n", "def fit_with_multiple_initial_params_loop(model_func, k_data, q_data, initial_params, max_attempts, max_loops, regularization):\n", " best_params = None\n", " best_mse = float('inf')\n", " loop_count = 0\n", "\n", " while loop_count < max_loops:\n", " for attempt in range(1, max_attempts + 1):\n", " try:\n", " result = least_squares(objective_function, initial_params, args=(model_func, k_data, q_data, regularization), method='trf')\n", " params = result.x\n", " mse = calculate_mse(model_func, k_data, q_data, params)\n", "\n", " if mse < best_mse:\n", " best_params = params\n", " best_mse = mse\n", "\n", " print(f\"Model: {model_func.__name__}, Loop {loop_count + 1}, Attempt {attempt}: Converged with parameters: {params}, MSE: {mse}\")\n", " except RuntimeError as e:\n", " print(f\"Model: {model_func.__name__}, Loop {loop_count + 1}, Attempt {attempt}: Failed to converge. Trying different initial parameters.\")\n", " initial_params = [param * np.random.uniform(0.5, 2.0) for param in initial_params]\n", "\n", " if best_params is not None:\n", " break # If the model has converged, exit the loop\n", " else:\n", " loop_count += 1\n", "\n", " if best_params is None:\n", " raise RuntimeError(\"Fitting failed after multiple attempts. Check data and model suitability.\")\n", "\n", " return best_params, best_mse\n", "\n", "# Optimize the Proposed model with loop until convergence\n", "params_Proposed, best_mse_Proposed = fit_with_multiple_initial_params_loop(Proposed_model, k_data, q_data, initial_params_Proposed, max_attempts=10, max_loops=5, regularization=0.01)\n", "rmse_Proposed, are_Proposed = calculate_rmse_and_are(Proposed_model, k_data, q_data, params_Proposed)\n", "\n", "# Optimize the Wang Five Parameter Logistic Model (Wang) with loop until convergence\n", "params_Wang, best_mse_Wang = fit_with_multiple_initial_params_loop(Wang_five_parameter_logistic_model, k_data, q_data, initial_params_Wang, max_attempts=10, max_loops=5, regularization=0.01)\n", "rmse_Wang, are_Wang = calculate_rmse_and_are(Wang_five_parameter_logistic_model, k_data, q_data, params_Wang)\n", "\n", "# Optimize the Multiple Regime Model (Edie) with loop until convergence\n", "params_Edie, best_mse_Edie = fit_with_multiple_initial_params_loop(Edie_Multi_Regime_model, k_data, q_data, initial_params_Edie_Multi_Regime, max_attempts=10, max_loops=5, regularization=0.01)\n", "rmse_Edie, are_Edie = calculate_rmse_and_are(Edie_Multi_Regime_model, k_data, q_data, params_Edie)\n", "\n", "# Optimize the Cheng Model with loop until convergence\n", "params_Cheng, best_mse_Cheng = fit_with_multiple_initial_params_loop(Cheng_model, k_data, q_data, initial_params_Cheng, max_attempts=10, max_loops=5, regularization=0.01)\n", "rmse_Cheng, are_Cheng = calculate_rmse_and_are(Cheng_model, k_data, q_data, params_Cheng)\n", "\n", "# Optimize the Gaddam Model with loop until convergence\n", "params_Gaddam, best_mse_Gaddam = fit_with_multiple_initial_params_loop(Gaddam_model, k_data, q_data, initial_params_Gaddam, max_attempts=10, max_loops=5, regularization=0.01)\n", "rmse_Gaddam, are_Gaddam = calculate_rmse_and_are(Gaddam_model, k_data, q_data, params_Gaddam)\n", "\n", "# Optimize the Modified_Lee Model with loop until convergence\n", "params_Modified_Lee, best_mse_Modified_Lee = fit_with_multiple_initial_params_loop(Modified_Lee_model, k_data, q_data, initial_params_Modified_Lee, max_attempts=10, max_loops=5, regularization=0.01)\n", "rmse_Modified_Lee, are_Modified_Lee = calculate_rmse_and_are(Modified_Lee_model, k_data, q_data, params_Modified_Lee)\n", "\n", "# Optimize the Drake Model with loop until convergence\n", "params_Drake, best_mse_Drake = fit_with_multiple_initial_params_loop(Drake_Two_Regime_model, k_data, q_data, initial_params_Drake_Two_Regime, max_attempts=10, max_loops=5, regularization=0.01)\n", "rmse_Drake, are_Drake = calculate_rmse_and_are(Drake_Two_Regime_model, k_data, q_data, params_Drake)\n", "\n", "# Optimize the van Aerde Model with loop until convergence\n", "params_van_Aerde, best_mse_van_Aerde = fit_with_multiple_initial_params_loop(van_Aerde_model, k_data, q_data, initial_params_van_Aerde, max_attempts=10, max_loops=5, regularization=0.01)\n", "rmse_van_Aerde, are_van_Aerde = calculate_rmse_and_are(van_Aerde_model, k_data, q_data, params_van_Aerde)\n", "\n", "# Print the final optimized parameters\n", "print(\"Final optimized parameters for Proposed Model:\", params_Proposed)\n", "print(\"Initial parameters for Proposed Model:\", initial_params_Proposed)\n", "\n", "print(\"Final optimized parameters for Wang Five Parameter Logistic Model:\", params_Wang)\n", "print(\"Initial parameters for Wang Five Parameter Logistic Model:\", initial_params_Wang)\n", "\n", "print(\"Final optimized parameters for Edie_Multi-Regime Model:\", params_Edie_Multi_Regime)\n", "print(\"Initial parameters for Edie_Multi-Regime Model:\", initial_params_Edie_Multi_Regime)\n", "\n", "print(\"Final optimized parameters for Cheng Model:\", params_Cheng)\n", "print(\"Initial parameters for Cheng Model:\", initial_params_Cheng)\n", "\n", "print(\"Final optimized parameters for Gaddam Model:\", params_Gaddam)\n", "print(\"Initial parameters for Gaddam Model:\", initial_params_Gaddam)\n", "\n", "print(\"Final optimized parameters for Modified Lee Model:\", params_Modified_Lee)\n", "print(\"Initial parameters for Modified Lee Model:\", initial_params_Modified_Lee)\n", "\n", "print(\"Final optimized parameters for Drake_Two_Reime Model:\", params_Drake_Two_Regime)\n", "print(\"Initial parameters for Drake_Two_Reime Model:\", initial_params_Drake_Two_Regime)\n", "\n", "print(\"Final optimized parameters for van Aerde Model:\", params_van_Aerde)\n", "print(\"Initial parameters for van Aerde Model:\", initial_params_van_Aerde)\n", "\n", "# Generate a range of density values for plotting\n", "k_plot = np.linspace(min(k_data), max(k_data), 200)\n", "\n", "# Calculate flows for each model using optimized parameters\n", "q_Proposed = Proposed_model(k_plot, *params_Proposed)\n", "q_Wang = Wang_five_parameter_logistic_model(k_plot, *params_Wang)\n", "q_Edie_Multi_Regime = Edie_Multi_Regime_model(k_plot, *params_Edie_Multi_Regime)\n", "q_Cheng = Cheng_model(k_plot, *params_Cheng)\n", "q_Gaddam = Gaddam_model(k_plot, *params_Gaddam)\n", "q_Modified_Lee = Modified_Lee_model(k_plot, *params_Modified_Lee)\n", "q_Drake_Two_Regime = Drake_Two_Regime_model(k_plot, *params_Drake_Two_Regime)\n", "q_van_Aerde_pred = van_Aerde_model(k_plot, *params_van_Aerde)\n", "\n", "\n", "# Get the minimum and maximum velocity values among all the models for setting y-axis limits\n", "min_flow = min(np.min(q_data), np.min(q_Proposed), np.min(q_Wang), np.min(q_Edie_Multi_Regime), np.min(q_Cheng), np.min(q_Gaddam), np.min(q_Modified_Lee), np.min(q_Drake_Two_Regime), np.min(q_van_Aerde))\n", "max_flow = max(np.max(q_data), np.max(q_Proposed), np.max(q_Wang), np.max(q_Edie_Multi_Regime), np.max(q_Cheng), np.max(q_Gaddam), np.max(q_Modified_Lee), np.max(q_Drake_Two_Regime), np.max(q_van_Aerde))\n", "\n", "# Plot the original data and curve fits\n", "plt.figure(figsize=(10, 6))\n", "plt.scatter(k_data, q_data, label='Data', color='Red')\n", "plt.plot(k_plot, q_Proposed, label=f'Proposed Model (MSE: {best_mse_Proposed:.2f}, RMSE: {rmse_Proposed:.2f}, ARE: {are_Proposed:.2f})', color='Lime', linewidth=2.5)\n", "plt.plot(k_plot, q_Wang, label=f'Wang 5PL Model (MSE: {best_mse_Wang:.2f}, RMSE: {rmse_Wang:.2f}, ARE: {are_Wang:.2f})', color='Blue', linewidth=2.5)\n", "plt.plot(k_plot, q_Edie_Multi_Regime, label=f'Edie Model (MSE: {best_mse_Edie_Multi_Regime:.2f}, RMSE: {rmse_Edie_Multi_Regime:.2f}, ARE: {are_Edie_Multi_Regime:.2f})', color='Black', linewidth=2.5)\n", "plt.plot(k_plot, q_Cheng, label=f'Cheng Model (MSE: {best_mse_Cheng:.2f}, RMSE: {rmse_Cheng:.2f} ARE: {are_Cheng:.2f})', color='Magenta', linewidth=2.5)\n", "plt.plot(k_plot, q_Gaddam, label=f'Gaddam Model (MSE: {best_mse_Gaddam:.2f}, RMSE: {rmse_Gaddam:.2f} ARE: {are_Gaddam:.2f})', color='Indigo', linewidth=2.5)\n", "plt.plot(k_plot, q_Modified_Lee, label=f'Modified Lee Model (MSE: {best_mse_Modified_Lee:.2f}, RMSE: {rmse_Modified_Lee:.2f} ARE: {are_Modified_Lee:.2f})', color='Green', linewidth=2.5)\n", "plt.plot(k_plot, q_Drake_Two_Regime, label=f'Drake Model (MSE: {best_mse_Drake_Two_Regime:.2f}, RMSE: {rmse_Drake_Two_Regime:.2f} ARE: {are_Drake_Two_Regime:.2f})', color='Violet', linewidth=2.5)\n", "plt.plot(k_plot, q_van_Aerde, label=f'van Aerde Model (MSE: {best_mse_van_Aerde:.2f}, RMSE: {rmse_van_Aerde:.2f} ARE: {are_van_Aerde:.2f})', color='cyan', linewidth=2.5)\n", "\n", "plt.xlabel('Occupancy')\n", "plt.ylabel('Speed(Km/hr)')\n", "plt.ylim(0, max_flow + 10) # Set the y-axis limits starting from 0 to slightly above the maximum velocity value\n", "plt.legend()\n", "plt.title('Curve Fits for Different Models using L2 and Germany/Essen/Esss037 Data')\n", "plt.grid(False) # Remove grid lines from the plot\n", "plt.show()\n", "\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ " Bayesian regularization lmfit" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "from lmfit import Model\n", "from scipy.optimize import curve_fit\n", "\n", "# Transform data into arrays\n", "#k_data = np.array(data['DENSITY'])\n", "#q_data = np.array(data['FLOW'])\n", "\n", "# Proposed Model (Proposed)\n", "def Proposed_model(k, V_f, k_j, n):\n", " g_k = 1 - 1.2 * (k_j**n - k**(n-1) * k_j) / ((1.2**(1/n)) * k_j + k)**n\n", " q_k = V_f * k * (0.35 * (1 - g_k**(n-1)) + 0.65 * (1 - g_k**(n-1))**(2*n))\n", " return q_k\n", "\n", "# Wang Five Parameter Logistic Model (Wang)\n", "def Wang_five_parameter_logistic_model(k, V_f, V_b, k_t, theta_1, theta_2):\n", " q_k = k * (V_b + (V_f - V_b)) / (1 + np.exp((k - k_t) / theta_1))**theta_2\n", " return q_k\n", "\n", "# Edie_Multi-Regime Model (Edie_Multi_Regime)\n", "def Edie_Multi_Regime_model(k, V_f, V_c, k_c, k_j, k_b):\n", " q_k = np.piecewise(k, [k <= k_b, k > k_b], [lambda k: V_f * k* np.exp(-k / k_c), lambda k: V_c * k * np.log(k_j / k)])\n", " return q_k\n", "\n", "# Cheng Model (Cheng)\n", "def Cheng_model(k, V_f, k_c, m):\n", " q_k = V_f * k / (1 + (k / k_c)**m)**(2 / m)\n", " return q_k\n", "\n", "# Gaddam Model (Gaddam)\n", "def Gaddam_model(k, V_f, k_j, k_c, a):\n", " Numerator = V_f * k * (np.exp(-((k / k_c)**(1 + a))) - np.exp(-((k_j / k_c)**(1 + a))))\n", " Denominator = (1 - np.exp(-((k_j / k_c)**(1 + a))))\n", " q_k = Numerator / Denominator\n", " return q_k\n", "\n", "\n", "# Modified Lee Model (Modified Lee)\n", "def Modified_Lee_model(k, V_f, k_j, E, theta, a):\n", " q_k = V_f * k * (1 - ((k / k_j)**a)) / (1 + (E * ((k / k_j))**theta))\n", " return q_k\n", "\n", "# Drake Multi-Regime Model (Drake)\n", "def Drake_Two_Regime_model(k, V_f, k_j, k_b, c, v_bw):\n", " q_k = np.piecewise(k, [k <= k_b, k > k_b], [lambda k: k * (V_f - c * k), lambda k: k * (v_bw - k * (v_bw / k_j))])\n", " return q_k\n", "\n", "# van aerde Model (van Aerde)\n", "def van_Aerde_model(k, alpha, beta, gamma, delta):\n", " q_k = alpha * (1 - (beta * k) -((gamma * k - 1)**2 + delta* k**2)**(1 / 2))\n", " return q_k\n", "\n", "\n", "# Function to calculate SSR for a given model and parameters\n", "def calculate_ssr(model_func, k_data, q_data, params):\n", " q_fit = model_func(k_data, *params)\n", " residuals = V_data - V_fit\n", " return np.sum(residuals**2)\n", "\n", "# Function to calculate RMSE and ARE for a given model and parameters\n", "def calculate_rmse_and_are(model_func, k_data, V_data, params):\n", " q_fit = model_func(k_data, *params)\n", " residuals = q_data - q_fit\n", " rmse = np.sqrt(np.mean(residuals**2))\n", " are = np.mean(np.abs(residuals) / np.abs(q_data))\n", " return rmse, are\n", "\n", "# Initial parameter guesses (you may need to adjust these based on the data)\n", "initial_params_Proposed = [4000, 1.5, 4]\n", "initial_params_Wang = [4000, 28.2, 0.0069, 0.0028, 0.044]\n", "initial_params_Edie = [4000, 20, 0.05, 1.5, 0.25]\n", "initial_params_Cheng = [4000, 0.05, 4]\n", "initial_params_Gaddam = [4000, 1.5, 0.05, 0.6]\n", "initial_params_Modified_Lee = [4000, 1.5, 10.3, 2.14, 4]\n", "initial_params_Drake = [4000, 1.5, 0.25, 5, -15]\n", "initial_params_van_Aerde = [-500, -45, -13, -223]\n", "\n", "# Set random seed for reproducibility\n", "np.random.seed(42)\n", "\n", "\n", "# Define the models for lmfit\n", "lm_Proposed_model = Model(Proposed_model)\n", "lm_Wang_model = Model(Wang_five_parameter_logistic_model)\n", "lm_Edie_model = Model(Edie_Multi_Regime_model)\n", "lm_Cheng_model = Model(Cheng_model)\n", "lm_Gaddam_model = Model(Gaddam_model)\n", "lm_Modified_Lee_model = Model(Modified_Lee_model)\n", "lm_Drake_model = Model(Drake_Two_Regime_model)\n", "lm_van_Aerde_model = Model(van_Aerde_model)\n", "\n", "# Set boundaries for the parameters\n", "lm_Proposed_model.set_param_hint('V_f', min=10)\n", "lm_Proposed_model.set_param_hint('k_j', min=0.5)\n", "lm_Proposed_model.set_param_hint('n', min=1.5)\n", "\n", "lm_Gaddam_model.set_param_hint('V_f', min=0)\n", "lm_Gaddam_model.set_param_hint('k_j', min=0)\n", "lm_Gaddam_model.set_param_hint('k_c', min=0)\n", "lm_Gaddam_model.set_param_hint('a', min=0)\n", "\n", "lm_Modified_Lee_model.set_param_hint('V_f', min=0) \n", "lm_Modified_Lee_model.set_param_hint('k_j', min=0)\n", "lm_Modified_Lee_model.set_param_hint('E', min=0)\n", "lm_Modified_Lee_model.set_param_hint('theta', min=0)\n", "lm_Modified_Lee_model.set_param_hint('a', min=0)\n", "\n", "lm_van_Aerde_model.set_param_hint('alpha', min=0) \n", "lm_van_Aerde_model.set_param_hint('gamma', min=0)\n", "lm_van_Aerde_model.set_param_hint('delta', min=0)\n", "\n", "lm_Cheng_model.set_param_hint('V_f', min=0)\n", "lm_Cheng_model.set_param_hint('k_c', min=0)\n", "lm_Cheng_model.set_param_hint('m', min=0)\n", "\n", "\n", "\n", "# Perform the curve fitting using Bayesian regularization\n", "lm_Proposed_result = lm_Proposed_model.fit(q_data, k=k_data, V_f=initial_params_Proposed[0], k_j=initial_params_Proposed[1], n=initial_params_Proposed[2])\n", "lm_Wang_result = lm_Wang_model.fit(q_data, k=k_data, V_f=initial_params_Wang[0], V_b=initial_params_Wang[1], k_t=initial_params_Wang[2], theta_1=initial_params_Wang[3], theta_2=initial_params_Wang[4])\n", "lm_Edie_result = lm_Edie_model.fit(q_data, k=k_data, V_f=initial_params_Edie[0], V_c=initial_params_Edie[1], k_c=initial_params_Edie[2], k_j=initial_params_Edie[3], k_b=initial_params_Edie[4])\n", "lm_Cheng_result = lm_Cheng_model.fit(q_data, k=k_data, V_f=initial_params_Cheng[0], k_c=initial_params_Cheng[1], m=initial_params_Cheng[2])\n", "lm_Gaddam_result = lm_Gaddam_model.fit(q_data, k=k_data, V_f=initial_params_Gaddam[0], k_j=initial_params_Gaddam[1], k_c=initial_params_Gaddam[2], a=initial_params_Gaddam[3]) #nan_policy='omit'\n", "lm_Modified_Lee_result = lm_Modified_Lee_model.fit(q_data, k=k_data, V_f=initial_params_Modified_Lee[0], k_j=initial_params_Modified_Lee[1], E=initial_params_Modified_Lee[2], theta=initial_params_Modified_Lee[3], a=initial_params_Modified_Lee[4])\n", "lm_Drake_result = lm_Drake_model.fit(q_data, k=k_data, V_f=initial_params_Drake[0], k_j=initial_params_Drake[1], k_b=initial_params_Drake[2], c=initial_params_Drake[3], v_bw=initial_params_Drake[4])\n", "lm_van_Aerde_result = lm_van_Aerde_model.fit(q_data, k=k_data, alpha=initial_params_van_Aerde[0], gamma=initial_params_van_Aerde[1], beta=initial_params_van_Aerde[2], delta=initial_params_van_Aerde[3]) #nan_policy='omit'\n", "\n", "# Get the optimized parameters\n", "params_Proposed_lmfit = [lm_Proposed_result.best_values['V_f'], lm_Proposed_result.best_values['k_j'], lm_Proposed_result.best_values['n']]\n", "params_Wang_lmfit = [lm_Wang_result.best_values['V_f'], lm_Wang_result.best_values['V_b'], lm_Wang_result.best_values['k_t'], lm_Wang_result.best_values['theta_1'], lm_Wang_result.best_values['theta_2']]\n", "params_Edie_lmfit = [lm_Edie_result.best_values['V_f'], lm_Edie_result.best_values['V_c'], lm_Edie_result.best_values['k_c'], lm_Edie_result.best_values['k_j'], lm_Edie_result.best_values['k_b']]\n", "params_Cheng_lmfit = [lm_Cheng_result.best_values['V_f'], lm_Cheng_result.best_values['k_c'], lm_Cheng_result.best_values['m']]\n", "params_Gaddam_lmfit = [lm_Gaddam_result.best_values['V_f'], lm_Gaddam_result.best_values['k_j'], lm_Gaddam_result.best_values['k_c'], lm_Gaddam_result.best_values['a']]\n", "params_Modified_Lee_lmfit = [lm_Modified_Lee_result.best_values['V_f'], lm_Modified_Lee_result.best_values['k_j'], lm_Modified_Lee_result.best_values['E'], lm_Modified_Lee_result.best_values['theta'], lm_Modified_Lee_result.best_values['a']]\n", "params_Drake_lmfit = [lm_Drake_result.best_values['V_f'], lm_Drake_result.best_values['k_j'], lm_Drake_result.best_values['k_b'], lm_Drake_result.best_values['c'], lm_Drake_result.best_values['v_bw']]\n", "params_van_Aerde_lmfit = [lm_van_Aerde_result.best_values['alpha'], lm_van_Aerde_result.best_values['gamma'], lm_van_Aerde_result.best_values['beta'], lm_van_Aerde_result.best_values['delta']]\n", "\n", "# Calculate MSE, RMSE, and ARE\n", "mse_Proposed_lmfit = calculate_mse(Proposed_model, k_data, q_data, params_Proposed_lmfit)\n", "rmse_Proposed_lmfit, are_Proposed_lmfit = calculate_rmse_and_are(Proposed_model, k_data, q_data, params_Proposed_lmfit)\n", "\n", "mse_Wang_lmfit = calculate_mse(Wang_five_parameter_logistic_model, k_data, q_data, params_Wang_lmfit)\n", "rmse_Wang_lmfit, are_Wang_lmfit = calculate_rmse_and_are(Wang_five_parameter_logistic_model, k_data, q_data, params_Wang_lmfit)\n", "\n", "mse_Edie_lmfit = calculate_mse(Edie_Multi_Regime_model, k_data, q_data, params_Edie_lmfit)\n", "rmse_Edie_lmfit, are_Edie_lmfit = calculate_rmse_and_are(Edie_Multi_Regime_model, k_data, q_data, params_Edie_lmfit)\n", "\n", "mse_Cheng_lmfit = calculate_mse(Cheng_model, k_data, q_data, params_Cheng_lmfit)\n", "rmse_Cheng_lmfit, are_Cheng_lmfit = calculate_rmse_and_are(Cheng_model, k_data, q_data, params_Cheng_lmfit)\n", "\n", "mse_Gaddam_lmfit = calculate_mse(Gaddam_model, k_data, q_data, params_Gaddam_lmfit)\n", "rmse_Gaddam_lmfit, are_Gaddam_lmfit = calculate_rmse_and_are(Gaddam_model, k_data, q_data, params_Gaddam_lmfit)\n", "\n", "mse_Modified_Lee_lmfit = calculate_mse(Modified_Lee_model, k_data, q_data, params_Modified_Lee_lmfit)\n", "rmse_Modified_Lee_lmfit, are_Modified_Lee_lmfit = calculate_rmse_and_are(Modified_Lee_model, k_data, q_data, params_Modified_Lee_lmfit)\n", "\n", "mse_Drake_lmfit = calculate_mse(Drake_Two_Regime_model, k_data, q_data, params_Drake_lmfit)\n", "rmse_Drake_lmfit, are_Drake_lmfit = calculate_rmse_and_are(Drake_Two_Regime_model, k_data, q_data, params_Drake_lmfit)\n", "\n", "mse_van_Aerde_lmfit = calculate_mse(van_Aerde_model, k_data, q_data, params_van_Aerde_lmfit)\n", "rmse_van_Aerde_lmfit, are_van_Aerde_lmfit = calculate_rmse_and_are(van_Aerde_model, k_data, q_data, params_van_Aerde_lmfit)\n", "\n", "# Generate a range of density values for plotting\n", "k_plot = np.linspace(min(k_data), max(k_data), 200)\n", "\n", "# Calculate flows for each model using optimized parameters\n", "q_Proposed_lmfit = Proposed_model(k_plot, *params_Proposed_lmfit)\n", "q_Wang_lmfit = Wang_five_parameter_logistic_model(k_plot, *params_Wang_lmfit)\n", "q_Edie_lmfit = Edie_Multi_Regime_model(k_plot, *params_Edie_lmfit)\n", "q_Cheng_lmfit = Cheng_model(k_plot, *params_Cheng_lmfit)\n", "q_Gaddam_lmfit = Gaddam_model(k_plot, *params_Gaddam_lmfit)\n", "q_Modified_Lee_lmfit = Modified_Lee_model(k_plot, *params_Modified_Lee_lmfit)\n", "q_Drake_lmfit = Drake_Two_Regime_model(k_plot, *params_Drake_lmfit)\n", "q_van_Aerde_lmfit = van_Aerde_model(k_plot, *params_van_Aerde_lmfit)\n", "\n", "# Print the final optimized parameters\n", "print(\"Final optimized parameters for Proposed Model:\", params_Proposed)\n", "print(\"Initial parameters for Proposed Model:\", initial_params_Proposed)\n", "\n", "print(\"Final optimized parameters for Wang Five Parameter Logistic Model:\", params_Wang)\n", "print(\"Initial parameters for Wang Five Parameter Logistic Model:\", initial_params_Wang)\n", "\n", "print(\"Final optimized parameters for Edie_Multi-Regime Model:\", params_Edie_Multi_Regime)\n", "print(\"Initial parameters for Edie_Multi-Regime Model:\", initial_params_Edie_Multi_Regime)\n", "\n", "print(\"Final optimized parameters for Cheng Model:\", params_Cheng)\n", "print(\"Initial parameters for Cheng Model:\", initial_params_Cheng)\n", "\n", "print(\"Final optimized parameters for Gaddam Model:\", params_Gaddam)\n", "print(\"Initial parameters for Gaddam Model:\", initial_params_Gaddam)\n", "\n", "print(\"Final optimized parameters for Modified Lee Model:\", params_Modified_Lee)\n", "print(\"Initial parameters for Modified Lee Model:\", initial_params_Modified_Lee)\n", "\n", "print(\"Final optimized parameters for Drake_Two_Reime Model:\", params_Drake_Two_Regime)\n", "print(\"Initial parameters for Drake_Two_Reime Model:\", initial_params_Drake_Two_Regime)\n", "\n", "print(\"Final optimized parameters for van Aerde Model:\", params_van_Aerde)\n", "print(\"Initial parameters for van Aerde Model:\", initial_params_van_Aerde)\n", "\n", "# Plot the original data and curve fits\n", "plt.figure(figsize=(10, 6))\n", "plt.scatter(k_data, q_data, label='Data', color='Red')\n", "plt.plot(k_plot, q_Proposed_lmfit, label=f'Proposed Model (MSE: {mse_Proposed_lmfit:.2f}, RMSE: {rmse_Proposed_lmfit:.2f}, ARE: {are_Proposed_lmfit:.2f})', color='lime', linewidth=2.5)\n", "plt.plot(k_plot, q_Wang_lmfit, label=f'Wang 5PL Model (MSE: {mse_Wang_lmfit:.2f}, RMSE: {rmse_Wang_lmfit:.2f}, ARE: {are_Wang_lmfit:.2f})', color='Blue', linewidth=2.5)\n", "plt.plot(k_plot, q_Edie_lmfit, label=f'Edie Model (MSE: {mse_Edie_lmfit:.2f}, RMSE: {rmse_Edie_lmfit:.2f}, ARE: {are_Edie_lmfit:.2f})', color='Black', linewidth=2.5)\n", "plt.plot(k_plot, q_Cheng_lmfit, label=f'Cheng Model (MSE: {mse_Cheng_lmfit:.2f}, RMSE: {rmse_Cheng_lmfit:.2f} ARE: {are_Cheng_lmfit:.2f})', color='Magenta', linewidth=2.5)\n", "plt.plot(k_plot, q_Gaddam_lmfit, label=f'Gaddam Model (MSE: {mse_Gaddam_lmfit:.2f}, RMSE: {rmse_Gaddam_lmfit:.2f} ARE: {are_Gaddam_lmfit:.2f})', color='Indigo', linewidth=2.5)\n", "plt.plot(k_plot, q_Modified_Lee_lmfit, label=f'Modified Lee Model (MSE: {mse_Modified_Lee_lmfit:.2f}, RMSE: {rmse_Modified_Lee_lmfit:.2f} ARE: {are_Modified_Lee_lmfit:.2f})', color='Green', linewidth=2.5)\n", "plt.plot(k_plot, q_Drake_lmfit, label=f'Drake Model (MSE: {mse_Drake_lmfit:.2f}, RMSE: {rmse_Drake_lmfit:.2f} ARE: {are_Drake_lmfit:.2f})', color='Violet', linewidth=2.5)\n", "plt.plot(k_plot, q_van_Aerde, label=f'van Aerde Model (MSE: {best_mse_van_Aerde:.2f}, RMSE: {rmse_van_Aerde:.2f} ARE: {are_van_Aerde:.2f})', color='cyan', linewidth=2.5)\n", "\n", "plt.xlabel('Occupancy')\n", "plt.ylabel('Speed(Km/hr)')\n", "plt.ylim(0, max_flow + 10) # Set the y-axis limits starting from 0 to slightly above the maximum velocity value\n", "plt.legend()\n", "plt.title('Curve Fits for Different Models using BR (lmfit) and Germany/Essen/Esss037 Data')\n", "plt.grid(False) # Remove grid lines from the plot\n", "plt.show()\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# BAYESIAN REGULARISATION EMCEE\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import numpy as np \n", "import matplotlib.pyplot as plt\n", "import lmfit\n", "import emcee\n", "\n", "# Transform data into arrays\n", "#k_data = np.array(data['DENSITY'])\n", "#q_data = np.array(data['FLOW'])\n", "\n", "\n", "# Set random seed \n", "np.random.seed(42)\n", "tf.random.set_seed(42)\n", "# Proposed Model (Proposed)\n", "def Proposed_model(k, V_f, k_j, n):\n", " g_k = 1 - 1.2 * (k_j**n - k**(n-1) * k_j) / ((1.2**(1/n)) * k_j + k)**n\n", " q_k = V_f * k * (0.35 * (1 - g_k**(n-1)) + 0.65 * (1 - g_k**(n-1))**(2*n))\n", " return q_k\n", "\n", "# Wang Five Parameter Logistic Model (Wang)\n", "def Wang_five_parameter_logistic_model(k, V_f, V_b, k_t, theta_1, theta_2):\n", " q_k = k * (V_b + (V_f - V_b)) / (1 + np.exp((k - k_t) / theta_1))**theta_2\n", " return q_k\n", "\n", "# Edie_Multi-Regime Model (Edie_Multi_Regime)\n", "def Edie_Multi_Regime_model(k, V_f, V_c, k_c, k_j, k_b):\n", " q_k = np.piecewise(k, [k <= k_b, k > k_b], [lambda k: V_f * k* np.exp(-k / k_c), lambda k: V_c * k * np.log(k_j / k)])\n", " return q_k\n", "\n", "# Cheng Model (Cheng)\n", "def Cheng_model(k, V_f, k_c, m):\n", " q_k = V_f * k / (1 + (k / k_c)**m)**(2 / m)\n", " return q_k\n", "\n", "# Gaddam Model (Gaddam)\n", "def Gaddam_model(k, V_f, k_j, k_c, a):\n", " Numerator = V_f * k * (np.exp(-((k / k_c)**(1 + a))) - np.exp(-((k_j / k_c)**(1 + a))))\n", " Denominator = (1 - np.exp(-((k_j / k_c)**(1 + a))))\n", " q_k = Numerator / Denominator\n", " return q_k\n", "\n", "\n", "# Modified Lee Model (Modified Lee)\n", "def Modified_Lee_model(k, V_f, k_j, E, theta, a):\n", " q_k = V_f * k * (1 - ((k / k_j)**a)) / (1 + (E * ((k / k_j))**theta))\n", " return q_k\n", "\n", "# Drake Multi-Regime Model (Drake)\n", "def Drake_Two_Regime_model(k, V_f, k_j, k_b, c, v_bw):\n", " q_k = np.piecewise(k, [k <= k_b, k > k_b], [lambda k: k * (V_f - c * k), lambda k: k * (v_bw - k * (v_bw / k_j))])\n", " return q_k\n", "\n", "# van aerde Model (van Aerde)\n", "def van_Aerde_model(k, alpha, beta, gamma, delta):\n", " q_k = alpha * (1 - (beta * k) -((gamma * k - 1)**2 + delta* k**2)**(1 / 2))\n", " return q_k\n", "\n", "# Initial parameter guesses (you may need to adjust these based on the data)\n", "initial_params_Proposed = [4000, 1.5, 4]\n", "initial_params_Wang = [4000, 28.2, 0.0069, 0.0028, 0.044]\n", "initial_params_Edie_Multi_Regime = [4000, 20, 0.05, 1.5, 0.25]\n", "initial_params_Cheng = [4000, 0.05, 4]\n", "initial_params_Gaddam = [4000, 1.5, 0.05, 0.6]\n", "initial_params_Modified_Lee = [4000, 1.5, 10.3, 2.14, 4]\n", "initial_params_Drake_Two_Regime = [4000, 1.5, 0.25, 5, -15]\n", "initial_params_van_Aerde = [-500, -45, -13, -223]\n", "\n", "# Define the ln probability function\n", "def lnprob_internal(params, k, q, model_func):\n", " pred = model_func(k, *params)\n", " residuals = q - pred\n", " log_like = -0.5 * np.nansum(residuals**2)\n", " return log_like\n", "\n", "# Bayesian fitting function\n", "def bayesian_fit(model_func, k, q, init_params, nsteps=1000):\n", " nwalkers, ndim = 20, len(init_params)\n", " pos = [init_params + 1e-4 * np.random.randn(ndim) for _ in range(nwalkers)]\n", "\n", " def lnprob(params):\n", " return lnprob_internal(params, k, q, model_func)\n", "\n", " sampler = emcee.EnsembleSampler(nwalkers, ndim, lnprob)\n", " sampler.run_mcmc(pos, nsteps, progress=True)\n", "\n", " flat_samples = sampler.get_chain(discard=100, thin=15, flat=True)\n", " map_params = np.median(flat_samples, axis=0)\n", " return map_params\n", "\n", "\n", "# Function to calculate MSE for a given model and parameters\n", "def calculate_mse(model_func, k_data, q_data, params):\n", " q_fit = model_func(k_data, *params)\n", " residuals = q_data - q_fit\n", " return np.mean(residuals**2)\n", "\n", "# Function to calculate RMSE and ARE for a given model and parameters\n", "def calculate_rmse_and_are(model_func, k_data, q_data, params):\n", " q_fit = model_func(k_data, *params)\n", " residuals = q_data - q_fit\n", " rmse = np.sqrt(np.mean(residuals**2))\n", " are = np.mean(np.abs(residuals) / np.abs(q_data))\n", " return rmse, are\n", "\n", "# Define k, V, and model functions for each model\n", "k = k_data\n", "q = q_data\n", "\n", "#Fit models with Bayesian Regularization emcee\n", "\n", "proposed_params = bayesian_fit(Proposed_model, k_data, q_data, initial_params_Proposed )\n", "wang_params_bayesian = bayesian_fit(Wang_five_parameter_logistic_model, k_data, q_data, initial_params_Wang)\n", "edie_params = bayesian_fit(Edie_Multi_Regime_model, k_data, q_data, initial_params_Edie_Multi_Regime)\n", "cheng_params = bayesian_fit(Cheng_model, k_data, q_data, initial_params_Cheng) # Replace with appropriate initial values\n", "gaddam_params = bayesian_fit(Gaddam_model, k_data, q_data, initial_params_Gaddam)\n", "modified_lee_params = bayesian_fit(Modified_Lee_model, k_data, q_data, initial_params_Modified_Lee)\n", "drake_two_regime_params = bayesian_fit(Drake_Two_Regime_model, k_data, q_data, initial_params_Drake_Two_Regime)\n", "van_Aerde_params = bayesian_fit(van_Aerde_model, k_data, q_data, initial_params_van_Aerde)\n", "\n", "# Generate a range of density values for plotting\n", "k_plot = np.linspace(min(k_data), max(k_data), 200)\n", "\n", "# Calculate velocities for each model using optimized parameters\n", "q_proposed_bayesian = Proposed_model(k_plot, *proposed_params)\n", "q_wang_bayesian = Wang_five_parameter_logistic_model(k_plot, *wang_params_bayesian)\n", "q_edie_bayesian = Edie_Multi_Regime_model(k_plot, *edie_params)\n", "q_cheng_bayesian = Cheng_model(k_plot, *cheng_params)\n", "q_gaddam_bayesian = Gaddam_model(k_plot, *gaddam_params)\n", "q_modified_lee_bayesian = Modified_Lee_model(k_plot, *modified_lee_params)\n", "q_Drake_bayesian = Drake_Two_Regime_model(k_plot, *drake_two_regime_params)\n", "q_van_Aerde_bayesian = van_Aerde_model(k_plot, *van_Aerde_params)\n", "\n", "\n", "# Calculate SSR, RMSE, and ARE for each model using Bayesian Regularization (emcee) results\n", "mse_proposed_bayesian = calculate_mse(Proposed_model, k_data, q_data, proposed_params)\n", "rmse_proposed_bayesian, are_proposed_bayesian = calculate_rmse_and_are(Proposed_model, k_data, q_data, proposed_params)\n", "\n", "mse_wang_bayesian = calculate_mse(Wang_five_parameter_logistic_model, k_data, q_data, wang_params_bayesian)\n", "rmse_wang_bayesian, are_wang_bayesian = calculate_rmse_and_are(Wang_five_parameter_logistic_model, k_data, q_data, wang_params_bayesian)\n", "\n", "mse_edie_bayesian = calculate_mse(Edie_Multi_Regime_model, k_data, q_data, edie_params)\n", "rmse_edie_bayesian, are_edie_bayesian = calculate_rmse_and_are(Edie_Multi_Regime_model, k_data, q_data, edie_params)\n", "\n", "mse_cheng_bayesian = calculate_mse(Cheng_model, k_data, q_data, cheng_params)\n", "rmse_cheng_bayesian, are_cheng_bayesian = calculate_rmse_and_are(Cheng_model, k_data, q_data, cheng_params)\n", "\n", "mse_gaddam_bayesian = calculate_mse(Gaddam_model, k_data, q_data, gaddam_params)\n", "rmse_gaddam_bayesian, are_gaddam_bayesian = calculate_rmse_and_are(Gaddam_model, k_data, q_data, gaddam_params)\n", "\n", "mse_modified_lee_bayesian = calculate_mse(Modified_Lee_model, k_data, q_data, modified_lee_params)\n", "rmse_modified_lee_bayesian, are_modified_lee_bayesian = calculate_rmse_and_are(Modified_Lee_model, k_data, q_data, modified_lee_params)\n", "\n", "mse_drake_two_regime_bayesian = calculate_mse(Drake_Two_Regime_model, k_data, q_data, drake_two_regime_params)\n", "rmse_drake_two_regime_bayesian, are_drake_two_regime_bayesian = calculate_rmse_and_are(Drake_Two_Regime_model, k_data, q_data, drake_two_regime_params)\n", "\n", "mse_van_Aerde_bayesian = calculate_mse(van_Aerde_model, k_data, q_data, van_Aerde_params)\n", "rmse_van_Aerde_bayesian, are_van_Aerde_bayesian = calculate_rmse_and_are(van_Aerde_model, k_data, q_data, van_Aerde_params)\n", "\n", "# Print the final optimized parameters\n", "print(\"Final optimized parameters for Proposed Model:\", params_Proposed)\n", "print(\"Initial parameters for Proposed Model:\", initial_params_Proposed)\n", "\n", "print(\"Final optimized parameters for Wang Five Parameter Logistic Model:\", params_Wang)\n", "print(\"Initial parameters for Wang Five Parameter Logistic Model:\", initial_params_Wang)\n", "\n", "print(\"Final optimized parameters for Edie_Multi-Regime Model:\", params_Edie_Multi_Regime)\n", "print(\"Initial parameters for Edie_Multi-Regime Model:\", initial_params_Edie_Multi_Regime)\n", "\n", "print(\"Final optimized parameters for Cheng Model:\", params_Cheng)\n", "print(\"Initial parameters for Cheng Model:\", initial_params_Cheng)\n", "\n", "print(\"Final optimized parameters for Gaddam Model:\", params_Gaddam)\n", "print(\"Initial parameters for Gaddam Model:\", initial_params_Gaddam)\n", "\n", "print(\"Final optimized parameters for Modified Lee Model:\", params_Modified_Lee)\n", "print(\"Initial parameters for Modified Lee Model:\", initial_params_Modified_Lee)\n", "\n", "print(\"Final optimized parameters for Drake_Two_Reime Model:\", params_Drake_Two_Regime)\n", "print(\"Initial parameters for Drake_Two_Reime Model:\", initial_params_Drake_Two_Regime)\n", "\n", "print(\"Final optimized parameters for van Aerde Model:\", params_van_Aerde)\n", "print(\"Initial parameters for van Aerde Model:\", initial_params_van_Aerde)\n", "\n", "\n", "# Plot fits\n", "k_plot = np.linspace(min(k_data), max(k_data), 200)\n", "\n", "# Plot fits for each model using Bayesian Regularization (emcee) results\n", "plt.figure(figsize=(10, 6))\n", "plt.scatter(k_data, q_data, color='Red')\n", "plt.plot(k_plot, q_proposed_bayesian, label=f'Proposed Model (MSE: {mse_proposed_bayesian:.2f}, RMSE: {rmse_proposed_bayesian:.2f}, ARE: {are_proposed_bayesian:.2f})', color='Lime', linewidth=2.5)\n", "plt.plot(k_plot, q_wang_bayesian, label=f'Wang 5PL Model (MSE: {mse_wang_bayesian:.2f}, RMSE: {rmse_wang_bayesian:.2f}, ARE: {are_wang_bayesian:.2f})', color='Blue', linewidth=2.5)\n", "plt.plot(k_plot, q_edie_bayesian, label=f'Edie Model (MSE: {mse_edie_bayesian:.2f}, RMSE: {rmse_edie_bayesian:.2f}, ARE: {are_edie_bayesian:.2f})', color='Black', linewidth=2.5)\n", "plt.plot(k_plot, q_cheng_bayesian, label=f'Cheng Model (MSE: {mse_cheng_bayesian:.2f}, RMSE: {rmse_cheng_bayesian:.2f}, ARE: {are_cheng_bayesian:.2f})', color='Magenta', linewidth=2.5)\n", "plt.plot(k_plot, q_gaddam_bayesian, label=f'Gaddam Model (MSE: {mse_gaddam_bayesian:.2f}, RMSE: {rmse_gaddam_bayesian:.2f}, ARE: {are_gaddam_bayesian:.2f})', color='Indigo', linewidth=2.5)\n", "plt.plot(k_plot, q_modified_lee_bayesian, label=f'Modified Lee Model (MSE: {mse_modified_lee_bayesian:.2f}, RMSE: {rmse_modified_lee_bayesian:.2f}, ARE: {are_modified_lee_bayesian:.2f})', color='Green', linewidth=2.5)\n", "plt.plot(k_plot, q_Drake_bayesian, label=f'Drake Model (MSE: {mse_drake_two_regime_bayesian:.2f}, RMSE: {rmse_drake_two_regime_bayesian:.2f}, ARE: {are_drake_two_regime_bayesian:.2f})', color='Violet', linewidth=2.5)\n", "plt.plot(k_plot, q_van_Aerde, label=f'van Aerde Model (MSE: {best_mse_van_Aerde:.2f}, RMSE: {rmse_van_Aerde:.2f} ARE: {are_van_Aerde:.2f})', color='cyan', linewidth=2.5)\n", "\n", "plt.xlabel('Occupancy')\n", "plt.ylabel('Speed(Km/hr)')\n", "plt.ylim(0, max_flow + 10) # Set the y-axis limits starting from 0 to slightly above the maximum velocity value\n", "plt.legend()\n", "plt.title('Curve Fits for Different Models using BR (emcee) and Germany/Essen/Esss037 Data')\n", "plt.grid(False) # Remove grid lines from the plot\n", "plt.show()\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# " ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.9.13" } }, "nbformat": 4, "nbformat_minor": 2 }