{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# parPE example: steadystate model - model simulation, optimization, analysis\n", "\n", "This notebooks demonstrates basic use of parPE for parameter estimation.\n", "\n", "## Prerequisites\n", "\n", "This notebook requires:\n", "\n", "* a successful *parPE* with CMake options `BUILD_EXAMPLES=ON` (default).\n", "* an installation of the *parPE* Python package (`${PARPE_SOURCE_DIR}/python/`)\n", " in the Python environment in which this notebook is run (ideally the `build/venv/` virtual environment)\n", "\n", "This notebook assumes that this file is used from its default location and that *parPE* was built inside `${PARPE_SOURCE_DIR}/build/`. If this is not the case, adapt `parpe_source_root` and `parpe_build_root` in the following block correspondingly." ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [], "source": [ "import amici\n", "import os\n", "import sys\n", "import numpy as np\n", "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "import h5py\n", "from importlib import reload\n", "import parpe\n", "\n", "# set paths\n", "parpe_source_root = os.path.abspath('../../../')\n", "parpe_build_root = os.path.join(parpe_source_root, 'build')\n", "\n", "model_source_dir = f'{parpe_build_root}/examples/parpeamici/steadystate/steadystate_scaled-prefix/src/steadystate_scaled/model_steadystate_scaled'\n", "example_binary_dir = f'{parpe_build_root}/examples/parpeamici/steadystate/'\n", "example_data_dir = f'{parpe_build_root}/examples/parpeamici/steadystate/steadystate_scaled-prefix/src/steadystate_scaled'\n", "optimization_options_py = f'{parpe_source_root}/misc/optimizationOptions.py'\n", "\n", "# MPI launcher and options\n", "mpiexec = \"mpiexec -n 4 --allow-run-as-root --oversubscribe\"" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "-- Found Git: /usr/bin/git (found version \"2.25.1\") \r\n", "-- Building version parPE-v0.4.3-37-g5bf1-dirty\r\n", "[ 0%] Built target get_version\r\n", "[ 10%] Built target parpecommon\r\n", "[ 21%] Built target parpeoptimization\r\n", "[ 25%] Built target parpeloadbalancer\r\n", "[ 37%] Built target parpeamici\r\n", "[ 39%] Built target parpe\r\n", "[ 45%] Built target unittests_common\r\n", "[ 50%] Built target unittests_loadbalancer\r\n", "[ 58%] Built target unittests_optimization\r\n", "\u001B[34m\u001B[1mSetting up virtual environment...\u001B[0m\r\n", "[ 58%] Built target setup_venv\r\n", "[ 59%] \u001B[34m\u001B[1mCreating test data using hierarchicalOptimizationTest.py\u001B[0m\r\n", "...\r\n", "----------------------------------------------------------------------\r\n", "Ran 3 tests in 0.000s\r\n", "\r\n", "OK\r\n", "[ 59%] Built target prepare_test_hierarchical_optimization\r\n", "[ 67%] Built target unittests_amici\r\n", "[ 69%] Built target example_loadbalancer\r\n", "[ 81%] Built target steadystate_scaled\r\n", "[ 84%] Built target example_steadystate\r\n", "[ 88%] Built target example_steadystate_multi\r\n", "[ 92%] Built target example_steadystate_multi_simulator\r\n", "[100%] Built target test_steadystate\r\n" ] } ], "source": [ "# rebuild example\n", "!cd {parpe_build_root} && make" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u001B[36mRunning tests...\u001B[0m\r\n", "Test project /home/dweindl/src/parPE_2/build\r\n", " Start 1: testingMisc.testTenToMinusInf\r\n", " 1/80 Test #1: testingMisc.testTenToMinusInf .................................................. Passed 0.00 sec\r\n", " Start 2: testingMisc.testWithinTolerance\r\n", " 2/80 Test #2: testingMisc.testWithinTolerance ................................................ Passed 0.00 sec\r\n", " Start 3: testingMisc.testCheckEqualArray\r\n", " 3/80 Test #3: testingMisc.testCheckEqualArray ................................................ Passed 0.00 sec\r\n", " Start 4: testingMisc.testRandInt\r\n", " 4/80 Test #4: testingMisc.testRandInt ........................................................ Passed 0.01 sec\r\n", " Start 5: commonMisc.testBacktrace\r\n", " 5/80 Test #5: commonMisc.testBacktrace ....................................................... Passed 0.00 sec\r\n", " Start 6: commonMisc.testFilexists\r\n", " 6/80 Test #6: commonMisc.testFilexists ....................................................... Passed 0.00 sec\r\n", " Start 7: commonMisc.testCreateDirectoryIfNotExists\r\n", " 7/80 Test #7: commonMisc.testCreateDirectoryIfNotExists ...................................... Passed 0.00 sec\r\n", " Start 8: commonMisc.testRecursiveMkpath\r\n", " 8/80 Test #8: commonMisc.testRecursiveMkpath ................................................. Passed 0.00 sec\r\n", " Start 9: commonMisc.testRandDouble\r\n", " 9/80 Test #9: commonMisc.testRandDouble ...................................................... Passed 0.01 sec\r\n", " Start 10: commonMisc.testFillArrayRandomDoubleSameInterval\r\n", "10/80 Test #10: commonMisc.testFillArrayRandomDoubleSameInterval ............................... Passed 0.00 sec\r\n", " Start 11: commonMisc.testFillArrayRandomDoubleIndividualInterval\r\n", "11/80 Test #11: commonMisc.testFillArrayRandomDoubleIndividualInterval ......................... Passed 0.01 sec\r\n", " Start 12: commonMisc.testMpi\r\n", "12/80 Test #12: commonMisc.testMpi ............................................................. Passed 0.30 sec\r\n", " Start 13: commonMisc.runInParallelAndWaitForFinish\r\n", "13/80 Test #13: commonMisc.runInParallelAndWaitForFinish ....................................... Passed 0.01 sec\r\n", " Start 14: commonMisc.strFormatCurrentLocaltime\r\n", "14/80 Test #14: commonMisc.strFormatCurrentLocaltime ........................................... Passed 0.00 sec\r\n", " Start 15: logging.printDebugInfoAndWait\r\n", "15/80 Test #15: logging.printDebugInfoAndWait .................................................. Passed 0.01 sec\r\n", " Start 16: logging.misc\r\n", "16/80 Test #16: logging.misc ................................................................... Passed 0.00 sec\r\n", " Start 17: logging.printMPIInfo\r\n", "17/80 Test #17: logging.printMPIInfo ........................................................... Passed 0.00 sec\r\n", " Start 18: logging.logProcessStats\r\n", "18/80 Test #18: logging.logProcessStats ........................................................ Passed 0.01 sec\r\n", " Start 19: costFunction.mseZero\r\n", "19/80 Test #19: costFunction.mseZero ........................................................... Passed 0.01 sec\r\n", " Start 20: costFunction.mseNonzero\r\n", "20/80 Test #20: costFunction.mseNonzero ........................................................ Passed 0.01 sec\r\n", " Start 21: costFunction.linearModel\r\n", "21/80 Test #21: costFunction.linearModel ....................................................... Passed 0.00 sec\r\n", " Start 22: costFunction.linearModel2\r\n", "22/80 Test #22: costFunction.linearModel2 ...................................................... Passed 0.01 sec\r\n", " Start 23: costFunction.linearModel3\r\n", "23/80 Test #23: costFunction.linearModel3 ...................................................... Passed 0.01 sec\r\n", " Start 24: hdf5Misc.testOpenExistingFileNoOverwrite\r\n", "24/80 Test #24: hdf5Misc.testOpenExistingFileNoOverwrite ....................................... Passed 0.01 sec\r\n", " Start 25: hdf5Misc.testOpenExistingFileOverwrite\r\n", "25/80 Test #25: hdf5Misc.testOpenExistingFileOverwrite ......................................... Passed 0.01 sec\r\n", " Start 26: hdf5Misc.testMutexGetLock\r\n", "26/80 Test #26: hdf5Misc.testMutexGetLock ...................................................... Passed 0.01 sec\r\n", " Start 27: hdf5Misc.testErrorStackWalker\r\n", "27/80 Test #27: hdf5Misc.testErrorStackWalker .................................................. Passed 0.01 sec\r\n", " Start 28: hdf5Misc.testCreateGroup\r\n", "28/80 Test #28: hdf5Misc.testCreateGroup ....................................................... Passed 0.01 sec\r\n", " Start 29: hdf5Misc.testCreateExistingGroup\r\n", "29/80 Test #29: hdf5Misc.testCreateExistingGroup ............................................... Passed 0.01 sec\r\n", " Start 30: hdf5Misc.testEnsureGroupExists\r\n", "30/80 Test #30: hdf5Misc.testEnsureGroupExists ................................................. Passed 0.01 sec\r\n", " Start 31: hdf5Misc.testStringAttribute\r\n", "31/80 Test #31: hdf5Misc.testStringAttribute ................................................... Passed 0.01 sec\r\n", " Start 32: hdf5Misc.testDatasetDimensions\r\n", "32/80 Test #32: hdf5Misc.testDatasetDimensions ................................................. Passed 0.01 sec\r\n", " Start 33: unittests_loadbalancer\r\n", "33/80 Test #33: unittests_loadbalancer ......................................................... Passed 0.00 sec\r\n", " Start 34: multiStartOptimization.testMultiStartOptimization\r\n", "34/80 Test #34: multiStartOptimization.testMultiStartOptimization .............................. Passed 2.20 sec\r\n", " Start 35: minibatchOptimization.getBatches\r\n", "35/80 Test #35: minibatchOptimization.getBatches ............................................... Passed 0.01 sec\r\n", " Start 36: minibatchOptimization.updateParameters\r\n", "36/80 Test #36: minibatchOptimization.updateParameters ......................................... Passed 0.01 sec\r\n", " Start 37: minibatchOptimizationLinearModel.testCostWithTrueParametersIsZeroIndivdually\r\n", "37/80 Test #37: minibatchOptimizationLinearModel.testCostWithTrueParametersIsZeroIndivdually ... Passed 0.01 sec\r\n", " Start 38: minibatchOptimizationLinearModel.testCostWithTrueParametersIsZeroFull\r\n", "38/80 Test #38: minibatchOptimizationLinearModel.testCostWithTrueParametersIsZeroFull .......... Passed 0.01 sec\r\n", " Start 39: minibatchOptimizationLinearModel.testMinibatchSucceedFromOptimum\r\n", "39/80 Test #39: minibatchOptimizationLinearModel.testMinibatchSucceedFromOptimum ............... Passed 0.01 sec\r\n", " Start 40: minibatchOptimizationLinearModel.linearModelCheckCostGradient\r\n", "40/80 Test #40: minibatchOptimizationLinearModel.linearModelCheckCostGradient .................. Passed 0.01 sec\r\n", " Start 41: minibatchOptimizationLinearModel.linearModelTestBatchOptimizerSucceeds\r\n", "41/80 Test #41: minibatchOptimizationLinearModel.linearModelTestBatchOptimizerSucceeds ......... Passed 0.05 sec\r\n", " Start 42: minibatchOptimizationLinearModel.linearModel\r\n", "42/80 Test #42: minibatchOptimizationLinearModel.linearModel ................................... Passed 0.02 sec\r\n", " Start 43: optimizationResultWriter.testResultWriter\r\n", "43/80 Test #43: optimizationResultWriter.testResultWriter ...................................... Passed 0.02 sec\r\n", " Start 44: optimizationOptions.setGetOptionStr\r\n", "44/80 Test #44: optimizationOptions.setGetOptionStr ............................................ Passed 0.01 sec\r\n", " Start 45: optimizationOptions.setGetOptionInt\r\n", "45/80 Test #45: optimizationOptions.setGetOptionInt ............................................ Passed 0.01 sec\r\n", " Start 46: optimizationOptions.setGetOptionDouble\r\n", "46/80 Test #46: optimizationOptions.setGetOptionDouble ......................................... Passed 0.01 sec\r\n", " Start 47: optimizationOptions.getNonExistingOption\r\n", "47/80 Test #47: optimizationOptions.getNonExistingOption ....................................... Passed 0.01 sec\r\n", " Start 48: optimizationOptions.setIpOptOptions\r\n", "48/80 Test #48: optimizationOptions.setIpOptOptions ............................................ Passed 0.01 sec\r\n", " Start 49: optimizationOptions.setCeresOptions\r\n", "49/80 Test #49: optimizationOptions.setCeresOptions ............................................ Passed 0.01 sec\r\n", " Start 50: optimizationOptions.fromHDF5\r\n", "50/80 Test #50: optimizationOptions.fromHDF5 ................................................... Passed 0.02 sec\r\n", " Start 51: optimizationProblem.quadraticTestFunction\r\n", "51/80 Test #51: optimizationProblem.quadraticTestFunction ...................................... Passed 0.01 sec\r\n", " Start 52: optimizationProblem.gradientChecker\r\n", "52/80 Test #52: optimizationProblem.gradientChecker ............................................ Passed 0.01 sec\r\n", " Start 53: optimizationProblem.linearModel\r\n", "53/80 Test #53: optimizationProblem.linearModel ................................................ Passed 0.01 sec\r\n", " Start 54: optimizationProblem.linearModelToGradientFun\r\n", "54/80 Test #54: optimizationProblem.linearModelToGradientFun ................................... Passed 0.01 sec\r\n", " Start 55: optimizationProblem.linearModelToGradientFunOptimization\r\n", "55/80 Test #55: optimizationProblem.linearModelToGradientFunOptimization ....................... Passed 0.03 sec\r\n", " Start 56: localOptimizationIpopt.testOptimizationResult\r\n", "56/80 Test #56: localOptimizationIpopt.testOptimizationResult .................................. Passed 0.04 sec\r\n", " Start 57: localOptimizationIpopt.testReporterCalled\r\n", "57/80 Test #57: localOptimizationIpopt.testReporterCalled ...................................... Passed 0.02 sec\r\n", " Start 58: localOptimizationCeres.testOptimization\r\n", "58/80 Test #58: localOptimizationCeres.testOptimization ........................................ Passed 0.01 sec\r\n", " Start 59: localOptimizationCeres.testReporterCalled\r\n", "59/80 Test #59: localOptimizationCeres.testReporterCalled ...................................... Passed 0.01 sec\r\n", " Start 60: simulationWorkerAmici.testSerializeResultPackageMessage\r\n", "60/80 Test #60: simulationWorkerAmici.testSerializeResultPackageMessage ........................ Passed 0.01 sec\r\n", " Start 61: simulationResultWriter.testResultWriter\r\n", "61/80 Test #61: simulationResultWriter.testResultWriter ........................................ Passed 0.02 sec\r\n", " Start 62: simulationResultWriter.testResultWriterNewExistingFile\r\n", "62/80 Test #62: simulationResultWriter.testResultWriterNewExistingFile ......................... Passed 0.02 sec\r\n", " Start 63: hierarchicalOptimization1.reader\r\n", "63/80 Test #63: hierarchicalOptimization1.reader ............................................... Passed 0.01 sec\r\n", " Start 64: hierarchicalOptimization1.spliceParameters\r\n", "64/80 Test #64: hierarchicalOptimization1.spliceParameters ..................................... Passed 0.02 sec\r\n", " Start 65: hierarchicalOptimization1.spliceParametersNothingToDo\r\n", "65/80 Test #65: hierarchicalOptimization1.spliceParametersNothingToDo .......................... Passed 0.01 sec\r\n", " Start 66: hierarchicalOptimization1.fillFilteredParams\r\n", "66/80 Test #66: hierarchicalOptimization1.fillFilteredParams ................................... Passed 0.01 sec\r\n", " Start 67: hierarchicalOptimization1.likelihoodOfMatchingData\r\n", "67/80 Test #67: hierarchicalOptimization1.likelihoodOfMatchingData ............................. Passed 0.01 sec\r\n", " Start 68: hierarchicalOptimization.hierarchicalOptimization\r\n", "68/80 Test #68: hierarchicalOptimization.hierarchicalOptimization .............................. Passed 0.02 sec\r\n", " Start 69: hierarchicalOptimization.testNoAnalyticalParameters\r\n", "69/80 Test #69: hierarchicalOptimization.testNoAnalyticalParameters ............................ Passed 0.01 sec\r\n", " Start 70: hierarchicalOptimization.testComputeAnalyticalScalings\r\n", "70/80 Test #70: hierarchicalOptimization.testComputeAnalyticalScalings ......................... Passed 0.02 sec\r\n", " Start 71: hierarchicalOptimization.testComputeAnalyticalOffsets\r\n", "71/80 Test #71: hierarchicalOptimization.testComputeAnalyticalOffsets .......................... Passed 0.01 sec\r\n", " Start 72: hierarchicalOptimization.applyOptimalScaling\r\n", "72/80 Test #72: hierarchicalOptimization.applyOptimalScaling ................................... Passed 0.01 sec\r\n", " Start 73: hierarchicalOptimization.applyOptimalOffset\r\n", "73/80 Test #73: hierarchicalOptimization.applyOptimalOffset .................................... Passed 0.01 sec\r\n", " Start 74: hierarchicalOptimization.testScaling\r\n", "74/80 Test #74: hierarchicalOptimization.testScaling ........................................... Passed 0.01 sec\r\n", " Start 75: hierarchicalOptimization.testWrappedFunIsCalledWithGradient\r\n", "75/80 Test #75: hierarchicalOptimization.testWrappedFunIsCalledWithGradient .................... Passed 0.01 sec\r\n", " Start 76: hierarchicalOptimization.problemWrapper\r\n", "76/80 Test #76: hierarchicalOptimization.problemWrapper ........................................ Passed 0.01 sec\r\n", " Start 77: example_loadbalancer\r\n", "77/80 Test #77: example_loadbalancer ........................................................... Passed 0.35 sec\r\n", " Start 78: parpe_python_package_tests\r\n", "78/80 Test #78: parpe_python_package_tests ..................................................... Passed 2.78 sec\r\n", " Start 79: pytest_steadystate_example\r\n", "79/80 Test #79: pytest_steadystate_example ..................................................... Passed 8.22 sec\r\n", " Start 80: test_steadystate\r\n", "80/80 Test #80: test_steadystate ............................................................... Passed 0.02 sec\r\n", "\r\n", "\u001B[0;32m100% tests passed\u001B[0;0m, 0 tests failed\u001B[0;0m out of 80\r\n", "\r\n", "Total Test time (real) = 14.70 sec\r\n" ] } ], "source": [ "# run make test to generated all output files required below\n", "!cd {parpe_build_root} && make test" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Model and data\n", "\n", "This parameter estimation is specified as set of [PEtab](https://github.com/PEtab-dev/PEtab) files which are generated automatically during the build process (see `${PARPE_SOURCE_ROOT}/examples/parpeamici/steadystate`). They consist of an SBML model and set of tabular files describing model parameters, model inputs and measurements (training data). The model is automatically converted to C++ code and compiled and linked with parPE during the CMake-based build. The data has been converted to a HDF5 parPE input file.\n", "\n", "The model is loosely based on an [AMICI](https://github.com/AMICI-dev/AMICI/) example. It describes the dynamics of three species. The model has six outputs with respective measurements. The measurements are based on model simulations to which artificial noise has been added. Data was simulated to represent four different experimental conditions, each with different model inputs. Some outputs represent model states directly, others are offsetted or scaled. For all outputs additive normally distributed noise is assumed, the standard deviation is known for some measurements and is to be estimated for others.\n", "\n", "Here we use `libsbml` to show the reactions and species described by the model:" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Species: ['x1', 'x2', 'x3']\n", "\n", "Reactions:\n", " r1: 2 x1 -> x2\t\t[p1 * x1^2]\n", " r2: x1 + x2 -> x3\t\t[p2 * x1 * x2]\n", " r3: x2 -> 2 x1\t\t[p3 * x2]\n", " r4: x3 -> x1 + x2\t\t[p4 * x3]\n", " r5: x3 -> \t\t[k0 * x3]\n", " r6: -> x1\t\t[p5]\n" ] } ], "source": [ "import libsbml\n", "sbml_file = f'{example_data_dir}/model_steadystate_scaled.sbml'\n", "sbml_reader = libsbml.SBMLReader()\n", "sbml_doc = sbml_reader.readSBML(sbml_file)\n", "sbml_model = sbml_doc.getModel()\n", "dir(sbml_doc)\n", "\n", "print('Species: ', [s.getId() for s in sbml_model.getListOfSpecies()])\n", "\n", "print('\\nReactions:')\n", "for reaction in sbml_model.getListOfReactions():\n", " reactants = ' + '.join(['%s %s'%(int(r.getStoichiometry()) if r.getStoichiometry() > 1 else '', r.getSpecies()) for r in reaction.getListOfReactants()])\n", " products = ' + '.join(['%s %s'%(int(r.getStoichiometry()) if r.getStoichiometry() > 1 else '', r.getSpecies()) for r in reaction.getListOfProducts()])\n", " reversible = '<' if reaction.getReversible() else ''\n", " print('%3s: %10s %1s->%10s\\t\\t[%s]' % (reaction.getId(),\n", " reactants,\n", " reversible,\n", " products,\n", " libsbml.formulaToL3String(reaction.getKineticLaw().getMath())))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Test simulation\n", "\n", "Performing an exemplary model simulation and plotting state and output trajectories:" ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "scrolled": true }, "outputs": [], "source": [ "# load model\n", "model_module = amici.import_model_module(\"model_steadystate_scaled\", model_source_dir)\n", "\n", "model = model_module.getModel()\n", "model.setTimepoints(amici.DoubleVector(np.logspace(-5, 1, 20)))\n", "solver = model.getSolver()\n", "rdata = amici.runAmiciSimulation(model, solver)\n", "\n", "default_parameters = np.array(model.getParameters())\n", "\n", "# Default model parameters: print(default_parameters)\n", "# Result fields reported by AMICI: list(rdata.keys())" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "text/plain": "
", "image/png": "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\n" }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "text/plain": "
", "image/png": "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\n" }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "from amici.plotting import plotStateTrajectories\n", "from amici.plotting import plotObservableTrajectories\n", "\n", "plotStateTrajectories(rdata)\n", "plotObservableTrajectories(rdata)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Standard optimization Ipopt\n", "\n", "In this section, model parameters are estimated. parPE supports different optimization algorithms, available algorithms depend on the build configuration. In this section we will use Ipopt, which worked the best in our experience (https://academic.oup.com/bioinformatics/article/36/2/594/5538985).\n", "\n", "Based on the parPE template files, a executable for parameter estimation has been built. By default, these executables are named `estimate_${MODEL_NAME}`. These files require a HDF5 file containing training data and optimization options. All those files have been generated automatically for this example.\n", "\n", "This part of the example requires a parPE build with `PARPE_ENABLE_IPOPT=ON`." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Set parameter estimation options\n", "\n", "Parameter estimation settings specified inside an HDF5 file. Those can be changed from any programming language with HDF5 bindings, with hdfview (https://www.hdfgroup.org/downloads/hdfview/), or with a helper script included in parPE, as demonstrated here:" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " hierarchicalOptimization 0\r\n", " numStarts 1\r\n", " optimizer 0\r\n", " retryOptimization 1\r\n", " ceres/max_num_iterations 100\r\n", " fmincon/GradObj b'on'\r\n", " fmincon/MaxFunEvals 10000000.0\r\n", " fmincon/MaxIter 100\r\n", " fmincon/TolFun 0\r\n", " fmincon/TolX 1e-08\r\n", " fmincon/algorithm b'interior-point'\r\n", " fmincon/display b'iter'\r\n", " ipopt/acceptable_iter 1\r\n", " ipopt/acceptable_obj_change_tol 1e-12\r\n", " ipopt/acceptable_tol 1e+20\r\n", " ipopt/hessian_approximation b'limited-memory'\r\n", " ipopt/limited_memory_update_type b'bfgs'\r\n", " ipopt/max_iter 30\r\n", " ipopt/tol 1e-09\r\n", " ipopt/watchdog_shortened_iter_trigger 0\r\n", " toms611/mxfcal 100000000.0\r\n" ] } ], "source": [ "# enable derivative checker\n", "input_file = f'{example_data_dir}/example_data.h5'\n", "\n", "#!{optimization_options_py} {input_file} -s ipopt/derivative_test first-order\n", "#!{optimization_options_py} {input_file} -s ipopt/derivative_test_print_all yes\n", "\n", "# Use Ipopt\n", "!{optimization_options_py} {input_file} -s optimizer 0\n", "\n", "# Perform one optimizer runs from different starting points\n", "!{optimization_options_py} {input_file} -s numStarts 1\n", "\n", "# Run for 20 iterations\n", "!{optimization_options_py} {input_file} -s ipopt/max_iter 30\n", "\n", "# Disable hierarchical optimization (see below)\n", "!{optimization_options_py} {input_file} -s hierarchicalOptimization 0\n", "\n", "# Print settings\n", "!{optimization_options_py} {input_file}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Gradient check\n", "\n", "Before starting the optimization, we can shortly compare the objective function gradients computed by AMICI/parPE with finite differences:" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u001B[32m[2020-06-24 17:41:30] [INF] [-1:140407870474176/] 0 g: -3.07804e+14 fd_c: -3.07834e+14 Δ/ff: 1.820688e-04 f: 1.61202e+14\u001B[0m\r\n", "\u001B[32m[2020-06-24 17:41:30] [INF] [-1:140407870474176/] 1 g: -2.22547e+13 fd_c: -2.23559e+13 Δ/ff: 6.276508e-04 f: 1.61205e+14\u001B[0m\r\n", "\u001B[32m[2020-06-24 17:41:30] [INF] [-1:140407870474176/] 2 g: 2.23191e+13 fd_c: 2.23727e+13 Δ/ff: -3.327962e-04 f: 1.61205e+14\u001B[0m\r\n", "\u001B[32m[2020-06-24 17:41:30] [INF] [-1:140407870474176/] 3 g: 1.44004e+13 fd_c: 1.43986e+13 Δ/ff: 1.096761e-05 f: 1.61205e+14\u001B[0m\r\n", "\u001B[32m[2020-06-24 17:41:30] [INF] [-1:140407870474176/] 4 g: 3.92648e+14 fd_c: 3.92711e+14 Δ/ff: -3.915439e-04 f: 1.61209e+14\u001B[0m\r\n", "\u001B[32m[2020-06-24 17:41:30] [INF] [-1:140407870474176/] 5 g: 7.22972e+14 fd_c: 7.22972e+14 Δ/ff: -1.633158e-09 f: 1.61212e+14\u001B[0m\r\n", "\u001B[32m[2020-06-24 17:41:30] [INF] [-1:140407870474176/] 6 g: 1.48764e+07 fd_c: 1.48766e+07 Δ/ff: -8.200509e-13 f: 1.61205e+14\u001B[0m\r\n", "\u001B[32m[2020-06-24 17:41:30] [INF] [-1:140407870474176/] 7 g: -4.32827e+10 fd_c: -4.32827e+10 Δ/ff: -9.508153e-12 f: 1.61205e+14\u001B[0m\r\n", "\u001B[32m[2020-06-24 17:41:30] [INF] [-1:140407870474176/] 8 g: 1.82786e+08 fd_c: 1.82784e+08 Δ/ff: 7.928618e-12 f: 1.61205e+14\u001B[0m\r\n", "\u001B[32m[2020-06-24 17:41:30] [INF] [-1:140407870474176/] Walltime on master: 0.357358s, CPU time of all processes: 1.190509s\u001B[0m\r\n", "\n", "\u001B[32m[2020-06-24 17:41:31] [INF] [-1:140118083160000/] 0 g: -6.21971e+09 fd_c: -6.21836e+09 Δ/ff: -7.588395e-08 f: 1.77565e+13\u001B[0m\r\n", "\u001B[32m[2020-06-24 17:41:31] [INF] [-1:140118083160000/] 1 g: -1.01378e+10 fd_c: -1.01431e+10 Δ/ff: 3.019935e-07 f: 1.77565e+13\u001B[0m\r\n", "\u001B[32m[2020-06-24 17:41:31] [INF] [-1:140118083160000/] 2 g: 1.01916e+10 fd_c: 1.01875e+10 Δ/ff: 2.299636e-07 f: 1.77565e+13\u001B[0m\r\n", "\u001B[32m[2020-06-24 17:41:31] [INF] [-1:140118083160000/] 3 g: 1.01496e+10 fd_c: 1.01498e+10 Δ/ff: -1.220489e-08 f: 1.77565e+13\u001B[0m\r\n", "\u001B[32m[2020-06-24 17:41:31] [INF] [-1:140118083160000/] 4 g: 7.63243e+08 fd_c: 7.61412e+08 Δ/ff: 1.030921e-07 f: 1.77565e+13\u001B[0m\r\n", "\u001B[32m[2020-06-24 17:41:31] [INF] [-1:140118083160000/] 5 g: 3.5914e+10 fd_c: 3.5914e+10 Δ/ff: -1.675128e-12 f: 1.77565e+13\u001B[0m\r\n", "\u001B[32m[2020-06-24 17:41:31] [INF] [-1:140118083160000/] 6 g: 8.66367e+07 fd_c: 8.66367e+07 Δ/ff: -1.943272e-12 f: 1.77565e+13\u001B[0m\r\n", "\u001B[32m[2020-06-24 17:41:31] [INF] [-1:140118083160000/] 7 g: 121.481 fd_c: 195.312 Δ/ff: -4.158002e-12 f: 1.77565e+13\u001B[0m\r\n", "\u001B[32m[2020-06-24 17:41:31] [INF] [-1:140118083160000/] 8 g: 3.66721e+08 fd_c: 3.66721e+08 Δ/ff: -2.067021e-11 f: 1.77565e+13\u001B[0m\r\n", "\u001B[32m[2020-06-24 17:41:31] [INF] [-1:140118083160000/] Walltime on master: 0.420946s, CPU time of all processes: 1.274342s\u001B[0m\r\n", "\n", "\u001B[32m[2020-06-24 17:41:32] [INF] [-1:140466688518080/] 0 g: 3.0421e+07 fd_c: 3.04203e+07 Δ/ff: 4.257906e-11 f: 1.62622e+13\u001B[0m\r\n", "\u001B[32m[2020-06-24 17:41:32] [INF] [-1:140466688518080/] 1 g: -766.774 fd_c: 195.312 Δ/ff: -5.916097e-11 f: 1.62622e+13\u001B[0m\r\n", "\u001B[32m[2020-06-24 17:41:32] [INF] [-1:140466688518080/] 2 g: -9.463e+06 fd_c: -9.46338e+06 Δ/ff: 2.347750e-11 f: 1.62622e+13\u001B[0m\r\n", "\u001B[32m[2020-06-24 17:41:32] [INF] [-1:140466688518080/] 3 g: 4.0764e+07 fd_c: 4.07931e+07 Δ/ff: -1.786592e-09 f: 1.62622e+13\u001B[0m\r\n", "\u001B[32m[2020-06-24 17:41:32] [INF] [-1:140466688518080/] 4 g: 5.7084e+07 fd_c: 5.7084e+07 Δ/ff: -1.569356e-12 f: 1.62622e+13\u001B[0m\r\n", "\u001B[32m[2020-06-24 17:41:32] [INF] [-1:140466688518080/] 5 g: -1.73506 fd_c: 0 Δ/ff: -1.066930e-13 f: 1.62622e+13\u001B[0m\r\n", "\u001B[32m[2020-06-24 17:41:32] [INF] [-1:140466688518080/] 6 g: 3.40035e+08 fd_c: 3.40035e+08 Δ/ff: -7.920917e-12 f: 1.62622e+13\u001B[0m\r\n", "\u001B[32m[2020-06-24 17:41:32] [INF] [-1:140466688518080/] 7 g: -2.35915e+06 fd_c: -2.35918e+06 Δ/ff: 1.758269e-12 f: 1.62622e+13\u001B[0m\r\n", "\u001B[32m[2020-06-24 17:41:32] [INF] [-1:140466688518080/] 8 g: 1.20306e+08 fd_c: 1.20307e+08 Δ/ff: -7.991474e-12 f: 1.62622e+13\u001B[0m\r\n", "\u001B[32m[2020-06-24 17:41:32] [INF] [-1:140466688518080/] Walltime on master: 0.363544s, CPU time of all processes: 1.217862s\u001B[0m\r\n", "\n" ] } ], "source": [ "# use three random starting points:\n", "for i in range(3):\n", " !PARPE_NO_DEBUG=1 {example_binary_dir}/example_steadystate_multi -t gradient_check -o deletemegc/ {input_file}\n", " print()\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Optimize\n", "\n", "Now we can run the actual optimization." ] }, { "cell_type": "code", "execution_count": 34, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u001B[32m[2020-06-24 17:41:33] [INF] [-1:140425994618816/] Reading random initial theta 0 from /optimizationOptions/randomStarts\u001B[0m\r\n", "\r\n", "List of user-set options:\r\n", "\r\n", " Name Value used\r\n", " acceptable_iter = 1 yes\r\n", " acceptable_obj_change_tol = 1e-12 yes\r\n", " acceptable_tol = 1e+20 yes\r\n", " hessian_approximation = limited-memory yes\r\n", " limited_memory_update_type = bfgs yes\r\n", " max_iter = 30 yes\r\n", " print_level = 5 yes\r\n", " print_user_options = yes yes\r\n", " tol = 1e-09 yes\r\n", " watchdog_shortened_iter_trigger = 0 yes\r\n", "\r\n", "******************************************************************************\r\n", "This program contains Ipopt, a library for large-scale nonlinear optimization.\r\n", " Ipopt is released as open source code under the Eclipse Public License (EPL).\r\n", " For more information visit http://projects.coin-or.org/Ipopt\r\n", "******************************************************************************\r\n", "\r\n", "This is Ipopt version 3.12.12, running with linear solver ma27.\r\n", "\r\n", "Number of nonzeros in equality constraint Jacobian...: 0\r\n", "Number of nonzeros in inequality constraint Jacobian.: 0\r\n", "Number of nonzeros in Lagrangian Hessian.............: 0\r\n", "\r\n", "Total number of variables............................: 9\r\n", " variables with only lower bounds: 0\r\n", " variables with lower and upper bounds: 9\r\n", " variables with only upper bounds: 0\r\n", "Total number of equality constraints.................: 0\r\n", "Total number of inequality constraints...............: 0\r\n", " inequality constraints with only lower bounds: 0\r\n", " inequality constraints with lower and upper bounds: 0\r\n", " inequality constraints with only upper bounds: 0\r\n", "\r\n", "\u001B[32m[2020-06-24 17:41:33] [INF] [-1:140425699804928/] [o0i0] iter: 0 cost: 532.303 time_iter: wall: 0.137419s cpu: 0.127829s time_optim: wall: 0.137419s cpu: 0.127829s\u001B[0m\r\n", "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\r\n", " 0 5.3230269e+02 0.00e+00 1.00e+02 0.0 0.00e+00 - 0.00e+00 0.00e+00 0\r\n", "\u001B[32m[2020-06-24 17:41:33] [INF] [-1:140425699804928/] [o0i1] iter: 1 cost: 820.034 time_iter: wall: 0.090377s cpu: 0.0783326s time_optim: wall: 0.227797s cpu: 0.206162s\u001B[0m\r\n", " 1 8.2003355e+02 0.00e+00 4.00e+01 2.0 5.98e+01 - 9.91e-01 2.66e-02f 2\r\n", "\u001B[32m[2020-06-24 17:41:33] [INF] [-1:140425699804928/] [o0i2] iter: 2 cost: 776.643 time_iter: wall: 0.117079s cpu: 0.106627s time_optim: wall: 0.344876s cpu: 0.312788s\u001B[0m\r\n", " 2 7.7664256e+02 0.00e+00 5.20e+01 2.2 5.80e-01 - 1.00e+00 1.00e+00f 1\r\n", "\u001B[32m[2020-06-24 17:41:33] [INF] [-1:140425699804928/] [o0i3] iter: 3 cost: -166.319 time_iter: wall: 0.0932628s cpu: 0.0802567s time_optim: wall: 0.438139s cpu: 0.393045s\u001B[0m\r\n", " 3 -1.6631926e+02 0.00e+00 4.12e+01 1.5 2.34e+00 - 1.00e+00 2.50e-01f 3\r\n", "\u001B[32m[2020-06-24 17:41:33] [INF] [-1:140425699804928/] [o0i4] iter: 4 cost: -267.208 time_iter: wall: 0.0768777s cpu: 0.0693811s time_optim: wall: 0.515016s cpu: 0.462426s\u001B[0m\r\n", " 4 -2.6720761e+02 0.00e+00 3.92e+00 0.2 1.85e-01 - 9.91e-01 1.00e+00f 1\r\n", "\u001B[32m[2020-06-24 17:41:33] [INF] [-1:140425699804928/] [o0i5] iter: 5 cost: -325.047 time_iter: wall: 0.0737827s cpu: 0.0664222s time_optim: wall: 0.588799s cpu: 0.528848s\u001B[0m\r\n", " 5 -3.2504664e+02 0.00e+00 4.86e+00 -1.2 1.59e-01 - 9.84e-01 1.00e+00f 1\r\n", "\u001B[32m[2020-06-24 17:41:33] [INF] [-1:140425699804928/] [o0i6] iter: 6 cost: -336.398 time_iter: wall: 0.0699238s cpu: 0.0622717s time_optim: wall: 0.658723s cpu: 0.59112s\u001B[0m\r\n", " 6 -3.3639830e+02 0.00e+00 1.12e+01 -1.9 8.74e-01 - 1.00e+00 1.00e+00f 1\r\n", "\u001B[32m[2020-06-24 17:41:34] [INF] [-1:140425699804928/] [o0i7] iter: 7 cost: -389.279 time_iter: wall: 0.0860524s cpu: 0.0719065s time_optim: wall: 0.744776s cpu: 0.663026s\u001B[0m\r\n", " 7 -3.8927856e+02 0.00e+00 6.91e+00 -1.8 7.08e-01 - 1.00e+00 2.50e-01f 3\r\n", "\u001B[32m[2020-06-24 17:41:34] [INF] [-1:140425699804928/] [o0i8] iter: 8 cost: -417.125 time_iter: wall: 0.0824051s cpu: 0.0701718s time_optim: wall: 0.827181s cpu: 0.733198s\u001B[0m\r\n", " 8 -4.1712507e+02 0.00e+00 2.72e+00 -2.7 5.18e-01 - 1.00e+00 5.00e-01f 2\r\n", "\u001B[32m[2020-06-24 17:41:34] [INF] [-1:140425699804928/] [o0i9] iter: 9 cost: -425.124 time_iter: wall: 0.0837048s cpu: 0.0707955s time_optim: wall: 0.910886s cpu: 0.803994s\u001B[0m\r\n", " 9 -4.2512435e+02 0.00e+00 2.77e+00 -4.1 1.14e-01 - 1.00e+00 5.00e-01f 2\r\n", "\u001B[32m[2020-06-24 17:41:34] [INF] [-1:140425699804928/] [o0i10] iter: 10 cost: -431.91 time_iter: wall: 0.0717744s cpu: 0.0638436s time_optim: wall: 0.982661s cpu: 0.867837s\u001B[0m\r\n", "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\r\n", " 10 -4.3191005e+02 0.00e+00 9.02e-01 -5.5 4.63e-02 - 1.00e+00 1.00e+00f 1\r\n", "\u001B[32m[2020-06-24 17:41:34] [INF] [-1:140425699804928/] [o0i11] iter: 11 cost: -432.548 time_iter: wall: 0.0821081s cpu: 0.0695296s time_optim: wall: 1.06477s cpu: 0.937367s\u001B[0m\r\n", " 11 -4.3254817e+02 0.00e+00 7.07e-01 -7.2 3.94e-02 - 1.00e+00 5.00e-01f 2\r\n", "\u001B[32m[2020-06-24 17:41:34] [INF] [-1:140425699804928/] [o0i12] iter: 12 cost: -433.253 time_iter: wall: 0.0700837s cpu: 0.0621244s time_optim: wall: 1.13485s cpu: 0.999491s\u001B[0m\r\n", " 12 -4.3325317e+02 0.00e+00 5.07e-01 -8.8 3.00e-02 - 1.00e+00 1.00e+00f 1\r\n", "\u001B[32m[2020-06-24 17:41:34] [INF] [-1:140425699804928/] [o0i13] iter: 13 cost: -434.385 time_iter: wall: 0.0719023s cpu: 0.0637952s time_optim: wall: 1.20676s cpu: 1.06329s\u001B[0m\r\n", " 13 -4.3438479e+02 0.00e+00 6.25e-01 -10.3 4.40e-02 - 1.00e+00 1.00e+00f 1\r\n", "\u001B[32m[2020-06-24 17:41:34] [INF] [-1:140425699804928/] [o0i14] iter: 14 cost: -438.759 time_iter: wall: 0.0663257s cpu: 0.0583022s time_optim: wall: 1.27308s cpu: 1.12159s\u001B[0m\r\n", " 14 -4.3875867e+02 0.00e+00 3.98e+00 -11.0 5.21e-01 - 1.00e+00 1.00e+00f 1\r\n", "\u001B[32m[2020-06-24 17:41:34] [INF] [-1:140425699804928/] [o0i15] iter: 15 cost: -440.48 time_iter: wall: 0.09416s cpu: 0.0771593s time_optim: wall: 1.36724s cpu: 1.19875s\u001B[0m\r\n", " 15 -4.4047967e+02 0.00e+00 4.39e+00 -11.0 2.61e+00 - 1.00e+00 6.22e-02f 5\r\n", "\u001B[32m[2020-06-24 17:41:34] [INF] [-1:140425699804928/] [o0i16] iter: 16 cost: -442.029 time_iter: wall: 0.0896711s cpu: 0.0733529s time_optim: wall: 1.45691s cpu: 1.2721s\u001B[0m\r\n", " 16 -4.4202943e+02 0.00e+00 2.94e+00 -11.0 4.38e-01 - 1.00e+00 1.25e-01f 4\r\n", "\u001B[32m[2020-06-24 17:41:34] [INF] [-1:140425699804928/] [o0i17] iter: 17 cost: -443.967 time_iter: wall: 0.0669892s cpu: 0.0584416s time_optim: wall: 1.5239s cpu: 1.33054s\u001B[0m\r\n", " 17 -4.4396683e+02 0.00e+00 1.78e+00 -11.0 1.93e-01 - 1.00e+00 1.00e+00f 1\r\n", "\u001B[32m[2020-06-24 17:41:34] [INF] [-1:140425699804928/] [o0i18] iter: 18 cost: -446.323 time_iter: wall: 0.0676223s cpu: 0.0592318s time_optim: wall: 1.59153s cpu: 1.38977s\u001B[0m\r\n", " 18 -4.4632309e+02 0.00e+00 1.06e+00 -11.0 9.67e-02 - 1.00e+00 1.00e+00f 1\r\n", "\u001B[32m[2020-06-24 17:41:34] [INF] [-1:140425699804928/] [o0i19] iter: 19 cost: -446.807 time_iter: wall: 0.0673716s cpu: 0.0595199s time_optim: wall: 1.6589s cpu: 1.44929s\u001B[0m\r\n", " 19 -4.4680666e+02 0.00e+00 7.12e-01 -11.0 1.64e-01 - 1.00e+00 1.00e+00f 1\r\n", "\u001B[32m[2020-06-24 17:41:35] [INF] [-1:140425699804928/] [o0i20] iter: 20 cost: -446.911 time_iter: wall: 0.098772s cpu: 0.0806446s time_optim: wall: 1.75767s cpu: 1.52994s\u001B[0m\r\n", "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\r\n", " 20 -4.4691082e+02 0.00e+00 5.78e-01 -11.0 5.12e-01 - 1.00e+00 3.12e-02f 6\r\n", "\u001B[32m[2020-06-24 17:41:35] [INF] [-1:140425699804928/] [o0i21] iter: 21 cost: -447.227 time_iter: wall: 0.066089s cpu: 0.0577964s time_optim: wall: 1.82376s cpu: 1.58774s\u001B[0m\r\n", " 21 -4.4722745e+02 0.00e+00 4.61e-02 -11.0 6.51e-02 - 1.00e+00 1.00e+00f 1\r\n", "\u001B[32m[2020-06-24 17:41:35] [INF] [-1:140425699804928/] [o0i22] iter: 22 cost: -447.228 time_iter: wall: 0.0922707s cpu: 0.0758644s time_optim: wall: 1.91603s cpu: 1.6636s\u001B[0m\r\n", " 22 -4.4722816e+02 0.00e+00 4.07e-02 -11.0 3.33e-02 - 1.00e+00 1.25e-01f 4\r\n", "\u001B[32m[2020-06-24 17:41:35] [INF] [-1:140425699804928/] [o0i23] iter: 23 cost: -447.228 time_iter: wall: 0.0955807s cpu: 0.0783362s time_optim: wall: 2.01161s cpu: 1.74194s\u001B[0m\r\n", " 23 -4.4722838e+02 0.00e+00 5.88e-02 -11.0 3.66e-02 - 1.00e+00 6.25e-02f 5\r\n", "\u001B[32m[2020-06-24 17:41:35] [INF] [-1:140425699804928/] [o0i24] iter: 24 cost: -447.23 time_iter: wall: 0.0814274s cpu: 0.0682416s time_optim: wall: 2.09304s cpu: 1.81018s\u001B[0m\r\n", " 24 -4.4723019e+02 0.00e+00 2.31e-02 -11.0 3.32e-03 - 1.00e+00 5.00e-01f 2\r\n", "\u001B[32m[2020-06-24 17:41:35] [INF] [-1:140425699804928/] [o0i25] iter: 25 cost: -447.231 time_iter: wall: 0.0737931s cpu: 0.0615733s time_optim: wall: 2.16683s cpu: 1.87175s\u001B[0m\r\n", " 25 -4.4723112e+02 0.00e+00 1.71e-02 -11.0 6.07e-03 - 1.00e+00 5.00e-01f 2\r\n", "\u001B[32m[2020-06-24 17:41:35] [INF] [-1:140425699804928/] [o0i26] iter: 26 cost: -447.231 time_iter: wall: 0.0784649s cpu: 0.0655171s time_optim: wall: 2.2453s cpu: 1.93727s\u001B[0m\r\n", " 26 -4.4723130e+02 0.00e+00 1.31e-02 -11.0 2.84e-03 - 1.00e+00 2.50e-01f 3\r\n", "\u001B[32m[2020-06-24 17:41:35] [INF] [-1:140425699804928/] [o0i27] iter: 27 cost: -447.232 time_iter: wall: 0.0659078s cpu: 0.0578224s time_optim: wall: 2.3112s cpu: 1.99509s\u001B[0m\r\n", " 27 -4.4723151e+02 0.00e+00 1.05e-02 -11.0 1.01e-03 - 1.00e+00 1.00e+00f 1\r\n", "\u001B[32m[2020-06-24 17:41:35] [INF] [-1:140425699804928/] [o0i28] iter: 28 cost: -447.232 time_iter: wall: 0.0834543s cpu: 0.0689585s time_optim: wall: 2.39466s cpu: 2.06405s\u001B[0m\r\n", " 28 -4.4723162e+02 0.00e+00 1.13e-02 -11.0 2.20e-03 - 1.00e+00 2.50e-01f 3\r\n", "\u001B[32m[2020-06-24 17:41:35] [INF] [-1:140425699804928/] [o0i29] iter: 29 cost: -447.232 time_iter: wall: 0.0683976s cpu: 0.0602698s time_optim: wall: 2.46306s cpu: 2.12432s\u001B[0m\r\n", " 29 -4.4723185e+02 0.00e+00 5.13e-03 -11.0 1.09e-03 - 1.00e+00 1.00e+00f 1\r\n", "\u001B[32m[2020-06-24 17:41:35] [INF] [-1:140425699804928/] [o0i30] iter: 30 cost: -447.232 time_iter: wall: 0.0851599s cpu: 0.0702836s time_optim: wall: 2.54822s cpu: 2.1946s\u001B[0m\r\n", "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\r\n", " 30 -4.4723198e+02 0.00e+00 1.25e-02 -11.0 1.23e-02 - 1.00e+00 2.50e-01f 3\r\n", "\r\n", "Number of Iterations....: 30\r\n", "\r\n", " (scaled) (unscaled)\r\n", "Objective...............: -1.0027481219080936e+01 -4.4723198109367854e+02\r\n", "Dual infeasibility......: 1.2481077281248806e-02 5.5666391157677142e-01\r\n", "Constraint violation....: 0.0000000000000000e+00 0.0000000000000000e+00\r\n", "Complementarity.........: 1.0053736651784596e-11 4.4840298993687491e-10\r\n", "Overall NLP error.......: 1.2481077281248806e-02 5.5666391157677142e-01\r\n", "\r\n", "\r\n", "Number of objective function evaluations = 130\r\n", "Number of objective gradient evaluations = 31\r\n", "Number of equality constraint evaluations = 0\r\n", "Number of inequality constraint evaluations = 0\r\n", "Number of equality constraint Jacobian evaluations = 0\r\n", "Number of inequality constraint Jacobian evaluations = 0\r\n", "Number of Lagrangian Hessian evaluations = 0\r\n", "Total CPU secs in IPOPT (w/o function evaluations) = 0.556\r\n", "Total CPU secs in NLP function evaluations = 2.283\r\n", "\r\n", "EXIT: Maximum Number of Iterations Exceeded.\r\n", "\u001B[32m[2020-06-24 17:41:35] [INF] [-1:140425699804928/] [o0i31] Optimizer status 1, final llh: -4.472320e+02, time: wall: 2.548704 cpu: 2.194602.\u001B[0m\r\n", "\u001B[32m[2020-06-24 17:41:37] [INF] [-1:140425994618816/] Walltime on master: 4.008655s, CPU time of all processes: 3.462642s\u001B[0m\r\n" ] } ], "source": [ "# !(cd {parpe_build_root} && exec make -j12) # rebuild\n", "!rm -rf deleteme # delete old result files\n", "\n", "# optimize (using a single process)\n", "!PARPE_NO_DEBUG=1 {example_binary_dir}/example_steadystate_multi -o deleteme/ {example_data_dir}/example_data.h5\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Analyze results\n", "\n", "A good start for checking the results is a look at optimizer trajectories. This can be easily done using the *parPE* Python package:" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "data": { "text/plain": "
", "image/png": "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\n" }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "filename = 'deleteme/_rank00000.h5'\n", "trajectories_ipopt = parpe.getCostTrajectories(filename)\n", "#print(repr(trajectories))\n", "parpe.plotting.plotCostTrajectory(trajectories_ipopt, log=False);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Since this example uses artificial data based on model simulations with known parameters, we can compare them to the optimization results:" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "# __Exp____ __Act______ __Err______ __RelErr___ __ID_______\n", "0: 1.00000 0.30485 -0.69515 -0.69515 p1\n", "1: 0.50000 0.31305 -0.18695 -0.37391 p2\n", "2: 0.40000 0.16030 -0.23970 -0.59925 p3\n", "3: 2.00000 1.81174 -0.18826 -0.09413 p4\n", "4: 0.10000 0.05128 -0.04872 -0.48718 p5\n", "5: 2.00000 0.16231 -1.83769 -0.91885 scaling_x1_common\n", "6: 3.00000 2.99955 -0.00045 -0.00015 offset_x2_batch_0\n", "7: 0.20000 0.13729 -0.06271 -0.31357 x1withsigma_sigma\n", "8: 4.00000 4.00132 0.00132 0.00033 offset_x2_batch_1\n", "\n", "Status: 1\n", "Cost: -447.231981 (expected: -0.000000)\n" ] } ], "source": [ "parpe.compare_optimization_results_to_true_parameters('deleteme/_rank00000.h5')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The parameters don't match that greatly. This is not completely unexpected due to the artificial noise introduced. To get a closer look at the optimization result, we can compare the training data to the model output with the optimized parameters.\n", "\n", "The model outputs are by default not saved during optimization, because this can lead to much I/O overhead and large files. However, there is an executable to quickly rerun simulation with the optimal parameters:" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Running --at-optimum for \r\n", "\tconditions from deleteme/_rank00000.h5:/inputData and \r\n", "\tparameters from deleteme/_rank00000.h5:/inputData\r\n", "\t> sim.h5:/\r\n", "Running for start 0\r\n", "Starting simulation. Number of conditions: 4\r\n" ] } ], "source": [ "# Simulate with optimal parameters, save results\n", "!rm -f sim.h5 # remove files from previous run\n", "!{example_binary_dir}/example_steadystate_multi_simulator deleteme/_rank00000.h5 /inputData deleteme/_rank00000.h5 /inputData sim.h5 / --at-optimum --nompi --nocompute-inner" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [], "source": [ "# Load simulated outputs\n", "(measured, simulated, timepoints, llh) = parpe.readSimulationsFromFile('sim.h5')\n", "start_idx = '0'" ] }, { "cell_type": "code", "execution_count": 39, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": "" }, "execution_count": 39, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": "
", "image/png": "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\n" }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Plot correlation of measurements (training data) and model simulation with optimized parameters\n", "parpe.plotting.plotCorrelation(measured[start_idx], simulated[start_idx])" ] }, { "cell_type": "code", "execution_count": 40, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": "
", "image/png": "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\n" }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "text/plain": "
", "image/png": "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\n" }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "text/plain": "
", "image/png": "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\n" }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "text/plain": "
", "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXwAAAEZCAYAAACU3p4jAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+j8jraAAAgAElEQVR4nOzdeXxU1fn48c+ZLfseQtj3sAiIlGBQURRFFDesdUEUbN1arPqD8kVbatFSrGJd2qLWKm6gRVARRFFEVAREZQcTICyRkEAI2ZfZz++PO5kkJCFDyALJ83698krOnXPvPTOZee655945j9JaI4QQovUztXQDhBBCNA8J+EII0UZIwBdCiDZCAr4QQrQREvCFEKKNkIAvhBBthAR8IU5CKTVZKfVtlXKJUqrnServUkqNapbGCXGKJOCLs5JSaoJS6kdfAM5WSn2qlLqoqfertQ7XWu/3teENpdTsEx4/R2v9VWPvVyn1tFLqkFKqSCmVoZT6Y2PvQ7R+EvDFWUcpNRV4HpgDtAe6Ai8C17dku5rYa0A/rXUkcAFwu1LqxhZukzjLSMAXZxWlVBTwBDBFa/2B1rpUa+3SWi/XWk/31QlSSj2vlMry/TyvlAryPTZKKZWplJqmlMrxnR3cVWX7cUqpZb6e9PdArxP2r5VSvZVS9wK3A//nO8tY7nv8oFLq8tNtx4m01ru11qVVFnmB3o3wkoo2RAK+ONuMAIKBD09S509ACjAEOBcYDsys8ngiEAV0An4DzFNKxfgemwfYgQ7Ar30/NWitXwEWAk/7hnmubeR21KCUekQpVQJkAmHAO3XVFaI2EvDF2SYOyNVau09S53bgCa11jtb6GPA4cEeVx12+x11a60+AEqCvUsoM/BJ4zHfmsBN48zTa2qB21LUxrfXfgQhgKPA2UHgabRNtkAR8cbY5DsQrpSwnqdMRyKhSzvAt82/jhANGGRAOtAMswKET1m2ohrajTtqwBSjHOIAIETAJ+OJsswFwADecpE4W0K1KuatvWX2OAW6gywnr1qW+qWYb2o5AWDjh+oIQ9ZGAL84qWutC4DGM8e4blFKhSimrUuoqpdTTvmrvAjOVUu2UUvG++gsC2LYH+ACY5dvuAGDSSVY5CtR5T35D23EipZRJKXWfUipGGYYDU4DVp7ot0bZJwBdnHa31P4CpGBdAj2EMwTwALPVVmQ38CGwHdgCbfcsC8QDGsMoR4A3g9ZPUfQ0YoJQqUEotreXx02nHicYD+4BijIPGv3w/QgRMSQIUIYRoG6SHL4QQbYQEfCGEaCMk4AshRBshAV8IIdqIk315pcXFx8fr7t27t3QzhBDirLFp06ZcrXW72h47owN+9+7d+fHHH1u6GUIIcdZQStX57XAZ0hFCiDZCAr4QQrQREvCFEKKNOKPH8IUQbZvL5SIzMxO73d7STTnjBAcH07lzZ6xWa8DrSMAXQpyxMjMziYiIoHv37iilWro5ZwytNcePHyczM5MePXoEvJ4E/CayZ+MRNny0j5I8B+GxQYy4vhdJ5ye2dLOEOKvY7XYJ9rVQShEXF8exY8dOab02F/CbIxDv2XiENQvTcDu9AJTkOVizMA1Agr4Qp0iCfe0a8rq0qYDfXIF4w0f7/Puo4HZ6+WbRHnqc1w6rzUzR8XKKcu106B2F2WzCXurC5fAQHh2EMim01o3+RpezDiHatjZ1l05dgXjDR/tOe9t52aV8s2gPZUVOSvIctdZxlLnx+Pa/b9MxPnpuCx6XUd619jBv/XE9Ho9R/mHFQV6asgbtNaav3rLqZ959YqN/W7vWHmblf3b4y3t/PMqGpZXP49BPefy0rjK50o+fHODLt1P9bSvJc/DlgjT2bDxy2s9dCHF2aFM9/LoCcdXlJ+sFa63xejVms4n8I6V8tXA3KTf0okOvKBxlblLXZ9P7FwmExwbVuq+w6CCCQo2XvE9yexK6R2CxmQHoNjCekAgbZotxDO7QO4rzxnRFmZRvXRvtukT4t+VyeCgvcfnLOQeLOLAtlxE3GFnv9vxwhMy0fAZcaKRQ3bQyA4+7eu4Dj8s42CWdn8iahWmUFzm5+reDAeMAo72aoVcaGfoydh3HZFZ06RdrvGb5Diw2E8Fhgd8hIIRoWW0q4NcViMNjgwBY8eI2ft6Vh9djBMaKXjBAp34xvPv4RkaM78U5IzsRHGbF4/bidnkAaN8jknueuxiTSTHi+l7Vho4ALDYTF4zv5Q/g4TFBhMcE+R+P7xxOfOfK/NVd+sX6gytAUnIiScmVwy9DLu/KkMsr061eeFMfLrypj798yYS+1fZ/4plNhYrXI6pdCCFVgnfOwSI87sp1fvj4ALZgs79Nn7y0ndBIG9c8cC4Ay17YQnRCKBff1heA9e+nE5UQwjkjOwGw94ejRMQFk9gzCoCi3HKCQi0EhcoBQ7QtF1xwAevXr2+RfbepgD/i+l6sWZCG21U9EI+43ugVZ6bl+4N9hYpe8J3DLyBpeCIxiWEAhETYuGnGMH89k6lyvL3ijKAlx8stVjMWq9lfru9gN3RMt2rLr7xnYLXyVfcPqvbaDLu6OxZr5Yhgu64RhEVXHsCOHCisVn/te3voOaSdP+C/9+QPJA1r7z9ALHhsA/1GdGDYVd0B+OL1n+hxbjy9hiagtWbX2iwSe0YS3zkCrTUFR8sIiwrCFtJ0b2G55iGaQksFe2iFY/h7Nh7hzT+uY979X/LmH9dVG6NOOj+RSyf28we58NggLr29n/9DfLJesFKKi29NomOf6IDakXR+IpPmXMiUly9j0pwLWzxQjLi+FxZb9X931YNdfcKigoiIDfaXew5pR9dz4iq3P743gy/t4i/f+IdfcNHNlWcct/xpOMOvrcz3fcmtfUlKqRwq69Q3huiEUAC8Hi9HDxZRkm8coNwuL1+/s5ufd+UB4LR7eGfWRv81CnuJi/nT15K2Idtf/uy/Ozm8Jx8AR7mbHV9lUpBT5tueh7ysUlwOT53Pt+ICf9VrHmsWyjWPtmjnzp1ccMEF/vLmzZsZPXp0veuVlpYybtw4zj33XAYOHMiiRYsACA83zuQPHjxIv379mDx5MklJSdx+++188cUXXHjhhfTp04fvv/++0Z9Lq+rh79l4hC/e+gnt+xyX5Dn44q2fAOg5tB3L/7mNX1zVjUlzLqx1/fp6wWezlj7rqNr7B+MaRgWlFJfe3s9fNplN3P54ir9ssZiY/NSF/jMKs0Ux5jfnEFcxBKaMA1BkvHFAcjrcHD9cgqPMDUBJnp1v/reHK+8ZSHRCKPnZZbw35weuun8QPYe0IyejiOX/2saVd59D536x5GWV1jgThMoL/J37x5KbWUxijyhsIRZcDg/OcjchEVZM5lbXhzpjvPv9z/ycV9ao2+waG8ptw7uetM6AAQPYv38/Ho8Hs9nM1KlTefbZZ+vd9sqVK+nYsSMrVqwAoLCwsEad9PR0Fi9ezPz580lOTuadd97h22+/ZdmyZcyZM4elS5c27InVoVW9O795b7c/2FfQHvhyYSol+Q6cdvdJP5Cn2ws+051pZx2BUiZFWFSQf7zfYjXTJ7k9sR2M4bXgMCujbu9Hxz4xAETGhTBhVgo9hxhTgsd0COOupy+i2yDjjCQiLpgxd59DQrdIAGwhFnoPTfAflJx2d41gX6Ekz0H2vgKW/3MbRceNr/sf3J7LG4+soyCnHDAumL82bS1FuUb5wLZjfPiPzZQXOwE4vDufb/63B6fdOCAdO1TMrrWH/ddMivPsHNlf6L9Dy+X04LS70br6cKNoHiaTiXPOOYddu3bx/vvv061bN4YOHUppaSmTJk3innvuYeHChTXWGzRoEKtWrWLGjBmsXbuWqKioGnV69OjBoEGD/PsYPXo0SikGDRrEwYMHG/25tKoevqO09lN0j1OTc6CIm/+YfNL1W7oXLJqGyaQIjbT5y8FhVvoMqzzDiE4I5ZIJff3lxJ5RJz3b65QUw43Tf0FUQggA7bpFcMmEvv4DRmRcCH2GJdS4vmAyG9d58o+Wsef7I6Rcbwxx/bzrON8t3U9f3xBX2oZsvl9+gN++eCkK2Lwyg02fHuS3L14KGLfY7t541H8WtPPrTA7vLeDKu43rLvs255B/tMx/PSQrvQB7ict/ACzKLcfr0US3N4bQPB4vJpM647/gVF9PvCmlpKSwbt06XnzxRVauXAnABx98wE033cS1117LLbfcwu23315tnaSkJDZv3swnn3zCzJkzGT16NI899li1OkFBlWe+JpPJXzaZTLjd7kZ/Hq0q4J/Mqtd/YsNH++oN4EnnJ0qAF3XeaTXi+l4Eh1np0KuytxadEOq//gDGAaPi4jRAj3Pb0ePcygREAy/uxMCLO/nLgy/rQt/zO/hvye17fiLtu0f6bwToOiCW4DCrPyBHJYTSqW+Mf32n3YO9yi26mWn5/PzTcX/A3/XNYY4cKPIH/PUf7CMvq4QJs4wDxmev7KTouJ1bZw4HYM3bqbgcHsb4DiDff3wAtPZfg/lpXRYWq4mk4Ym+/eVhCTKT2KPyDiyLzVztIHu2S0lJYfLkyUyZMoVOnYz/XWZmJoMGDQLAbDbXWCcrK4vY2FgmTpxIdHQ0r776arO2uTatKuAHh1mwl9Z9VJQpDkSgmvNsz2ozY7VVBozI+BAi40P85Q69o+nQu/JmgT7D2lc7Qxl6ZTf/9yWAamcrABf9qg9Oe+XZ73ljuuIsq/yc9Eluj7O8shwRF4LbWVm/Ymiqwq5vDhMcbvMH/G+XpBMRG8y43xnf4fh43nZiO4Qy9l4jGL4z6zsSe0Zx2Z39jcf/vY3EnpEMu9qY9OubRXto3z2Svr7XdvuaTOI7h/mH6JzlbkwW5b/rzOP2okyq2p1xTa1fv34EBQUxY8YM/7LOnTuTmZnJkCFD8HprDgHu2LGD6dOnYzKZsFqtvPTSS83W3rqoM3lccNiwYfpUUhx+9NxmMncX1FsvPDaozgu3QoiT01rj9Wj/GUnB0TKUCaLaGWc5B7bnEhRi9gfszZ9lEBEX7D9IrXp9FwldIzl3tHFX1//++j09zo3n/OuMM4iXf/8Vg0Z15sJf9iY1NZW40E6ERtoIjwlGa82xn4sJiwoiLDoI7dXkHi4hLCqI0EgbXq+mMKeMkAgbwWFWvF5Nab6DoDALtmALXq/GUerCGmzctqy9GpfTg8VqwmQ2obVGa1Cq+lw1DzzwAMnJyUyaNMm/rLS0lAceeIDg4GAuuuiiGkM6DWEvcVFS4MDr8WIymwiPDiI4vO7vqqSmptK/f/9qy5RSm7TWw2qr36p6+IEEe6j7G7dCiPoppTBbKoNhxbWACj0Gx1crVz37ALjirnOqlW/98/Bq5V/PvahasI1JDMVkqryZIiI22P8NdTCuyfi/E3JCB1Z7NfYyF5Yg43GvR1OcZyciLhiL1YzH46XgaBmR8SEEh5nwuLzkZZf6ylbSUvdw7bXXcNGFFzJp0iTcTg8lBQ7CooMICwvjv6+8ir3ERUi4MXzlcXtxOTzYgs2YzCa8Hq//4FgxR1bFa3gie4mL4jy7v47X46U4z7gx4GRB/1S0qoAfqNZwm6UQrZUtuHpYsgZVlpVShERUXhtQJlXt+yEms8n/5UgAs8VUbUoSs0UR1ync/413k9lEVEKo/4ChzIrwmCD/3Xq9e/di03fbCPFdj9DaOGjgO6543ZqyIidBoRbMmHA7PRTllhOTGIbJbFxfKcotJ6ZDGFabGUeZm6LccmI7hmGxmnGUGT366IRQSgocNe7E0lpTUuCQgN9Qrek2SyHEqTnx7MRkUgRVuZvKbDYRGlnZIbRYzdWup1iDzP7bgcG4pTehW6Q/UFuDLcR2DMPsu/3bGmSsXzH8ZbaaCI0K8l9/UEphsZpQyujR16au5Q3RpgK+3GYphGgKFUM0JpPCZKocbjJbTP5gDzUv0NtCLP7bdyuGgE7UmF/mazMBf8rLl7V0E4QQok7h0UHVxvDBOJCERzfeEHSbCfhCCHEmqxinP5W7dE6VBHwhhDhDBIdbGzXAn6hVzaUjhBCibhLwhRCijWhVQzqteXpjIUT9lm45zNzPdpNVUE7H6BCmX9mXG87rVP+KbUSr6uG39umNhRB1W7rlMI9+sIPDBeVo4HBBOY9+sIOlWw6f1nYbmgAl0AQnCxYsYPjw4QwZMoT77rsPj8dTZ/KU09WqAn7S+YlcenvdGa2EEGe3W/6zgcU/HgLA5fFyy3828OGWTACeXplGuav6FOnlLg9PfLwLgLxSJ7f8ZwNf/HQUgJxie0D7rJoABWDq1KnMnTs3oHXT09OZNm0aaWlppKWl+ROcPPPMM8yZM4fU1FQWLVrEunXr2Lp1K2azmYULF/qTp2zbto2dO3cyduzYgPZXn1Y1pAMyvbEQbVV2Ye0BPK/UVevyQFVNgLJ3795qCVB+97vfYbPZGDVqVK2Tp1UkOAFqTXCyevVqNm3aRHKykaujvLychIQEJkyYwLRp05gxYwbXXHMNI0eOPK3nUKHVBXwhROu16L4R/r+tZlO1csfoEA4XlNdYp1O0MTVCbJitWv2EiOAadevSkAQoUH+CE601kyZN4sknn6yxbn3JUxqiVQ3pCCHarulX9iXEWj0RSYjVzPQr+9axRuBSUlKYOXMm48ePr5YApUsXY4rn2hKgBGL06NEsWbKEnJwcAPLy8sjIyCArK4vQ0FAmTpzI9OnT2bx582k/B2iBHr5Sygz8CBzWWl/T3PsXQrROFXfjNMVdOg1JgBKIAQMGMHv2bMaMGYPX68VqtTJv3jwKCwubJHlKsydAUUpNBYYBkfUF/FNNgCKEaF1qS/DREporAcqpOqMToCilOgPjgL8BU5tz30IIcar27dvHuHHjuNCXAKWqsLAwXn/99RZqWcM095DO88D/ARF1VVBK3QvcC9C1a8tlqRdCiF69epGWltbSzWg0zXbRVil1DZCjtd50snpa61e01sO01sPatWvXTK0TQojWrznv0rkQuE4pdRD4H3CZUmpBM+5fCCHatGYL+FrrR7XWnbXW3YFbgS+11hOba/9CCNHWyX34QgjRRrTIN2211l8BX7XEvoUQoq2SHr4QQrQREvCFEKKNkIAvhBBthAR8IYRoRlWTqTQ3CfhCCNGM1q9f32L7loAvhBAn0dAUh3WlKQwPDwcCT4HYmCQBihDi7LDpDcg/2LjbjOkOv5h80ipVUxyazWamTp3Ks88+W++mK9IUrlixAoDCwsIaddLT01m8eDHz588nOTnZnwJx2bJlzJkzh6VLlzbkWdVJevhCCHESVVMcvv/++/4Uh/v37+c3v/kNN910U63rDRo0iFWrVjFjxgzWrl1LVFRUjToVKRAr9nFiCsTGJj18IcTZoZ6eeFOqLcVhz549ee211+oM+ElJSfWmKawvBWJjk4AvhBD1SElJYfLkyUyZMsWf4rA+WVlZxMbGMnHiRKKjo3n11VebuJX1k4AvhBD1qC3FYX127NjRJGkKT0ezpzg8FZLiUIi27UxOcXj8+HH+9Kc/sWrVKu6++24effTRZm/XGZ3iUAghziYnS3EYFxfHyy+/3EItaxgJ+EIIUQdJcSiEEOKsJAFfCCHaCAn4QgjRRkjAF0KINkICvhBCtBES8IUQoo2QgC+EEG2EBHwhROux/T14biDMijZ+b3+vpVt0RpGAL4RoHba/B8sfhMJDgDZ+L3/wtIN+QxOgBJrgZMGCBQwfPpwhQ4Zw33334fF46kyecrok4Ashzh6vj4MtC42/PS6jvM0XDL94HFzl1eu7ymHlI8bfpceN+rs/NcrFRwPaZdUEKABTp05l7ty5Aa2bnp7OtGnTSEtLIy0tzZ/g5JlnnmHOnDmkpqayaNEi1q1bx9atWzGbzSxcuNCfPGXbtm3s3LmTsWPHBrS/+kjAF0K0DkWHa19edvy0NtvQBChQf4KT1atXs2nTJpKTkxkyZAirV69m//79ASVPaQiZS0cIcfa4a0Xl32Zr9XJUZ99wzgmiuhi/w+Kq149oH/BuG5IABepPcKK1ZtKkSTz55JM11q0veUpDSA9fCNE6jH4MrCHVl1lDjOWnKSUlhZkzZzJ+/PiAE6AEYvTo0SxZsoScnBwA8vLyyMjIICsri9DQUCZOnMj06dPZvHlzo+xPevhCiNZh8M3G79VPQGGm0eMf/Vjl8tPQkAQogRgwYACzZ89mzJgxeL1erFYr8+bNo7CwsEmSp0gCFCHEGUsSoJycJEARQohGIglQhBCijZAEKEIIIc5KEvCFEKKNaLaAr5QKVkp9r5TappTapZR6vLn2LYQQonnH8B3AZVrrEqWUFfhWKfWp1vq7ZmyDEEK0Wc0W8LVx/2eJr2j1/Zy594QKIUQr06xj+Eops1JqK5ADrNJab2zO/QshRFvWrAFfa+3RWg8BOgPDlVIDT6yjlLpXKfWjUurHY8eONWfzhBCiVWuRu3S01gXAGqDGnJ9a61e01sO01sPatWvX/I0TQohWqjnv0mmnlIr2/R0CXAG0nm80CCFEAKomU2luzXmXTgfgTaWUGeNA857W+uNm3L8QQrS49evXt9i+m62Hr7XerrU+T2s9WGs9UGv9RHPtWwghGqqhKQ7rSlMYHh4OBJ4CsTHJXDpCiLPCkj1LyCzObNRtdo7ozE1JdScwgeopDs1mM1OnTuXZZ5+td9sVaQpXrDCSrhQWFtaok56ezuLFi5k/fz7Jycn+FIjLli1jzpw5LF26tGFPrA6n3MNXSoX5hmWEEKLVqyvF4dKlS7nnnnu45ZZb+Pzzz2usF0iawvpSIDa2env4SikTcCtwO5CM8Y3ZIKVULrAC+I/WOr3RWyaEEFXU1xNvSrWlOLzhhhu44YYbyM/P5w9/+ANjxoyptk5SUlK9aQrrS4HY2AIZ0lkDfAE8CuzUWnsBlFKxwKXAU0qpD7XWCxq9dUIIcQZISUlh8uTJTJkypUaKw9mzZzNlypQa62RlZREbG8vEiROJjo7m1Vdfba7m1imQgH+51tp14kKtdR7wPvC+b24cIYRolWpLcai15pFHHuGqq65i6NChNdbZsWNHk6QpPB31pjhUSk09YZEGcoFvtdYHmqphICkOhWjrzuQUh//85z958803SU5OZsiQIdx///3N3q6mSHEYUcuy7sCflFKztNb/O+VWCiHEWeBkKQ4ffPBBHnzwwRZqWcPUG/C11rXOW+8bw/8CkIAvhGiVJMWhj28MXzViW4QQQjShBgd8pdSlQH4jtkUIIUQTCuQ+/B3UTFQSC2QBk2quIYQQ4kwUyEXba04oa+C41rq0CdojhBCiiQRy0TajtuVKqYuA27TWNb9xIIQQ4oxzSpOnKaXOAyYAvwIOAB80RaOEEEI0vkDG8JOA23w/ucAijC9sXdrEbRNCCNGIAunhpwFrgWsqJklTSv2/Jm2VEEI0wIr9K3hh8wscKT1CYlgiDw19iHE9x7V0s84YgdyWeSOQDaxRSv1XKTUauf9eCHGGWbF/BbPWzyK7NBuNJrs0m1nrZ7Fi/4rT2m5DE6AEmuBkwYIFDB8+nCFDhnDffffh8XjqTJ5yuuoN+FrrpVrrW4F+GDNnPgwkKKVeUkqNOfnaQgjReO5aeRdL042kIC6vi7tW3sXyfcsBeH7T89g99mr17R47T33/FAD59nzuWnkXXx36CoDc8tyA9lk1AQrA1KlTmTt3bkDrpqenM23aNNLS0khLS/MnOHnmmWeYM2cOqampLFq0iHXr1rF161bMZjMLFy70J0/Ztm0bO3fuZOzYsQHtrz4Bf/FKa12qtX5Ha30t0BnYAsyoZzUhhGgWR8uO1ro833F63w9taAIUqD/ByerVq9m0aZN/ArbVq1ezf//+gJKnNEQgF22VPmFKTa11PvCK76fWOkII0dheH/u6/2+ryVqtnBiWSHZpdo11OoR1ACAmOKZa/fiQ+ID325AEKFB/ghOtNZMmTeLJJ5+ssW59yVMaIpAe/hql1O+VUl2rLlRK2ZRSlyml3kS+cSuEaGEPDX2IYHNwtWXB5mAeGvrQaW87JSWFmTNnMn78+IAToARi9OjRLFmyhJycHADy8vLIyMggKyuL0NBQJk6cyPTp09m8efNpPwcI7C6dscCvgXeVUj2AAiAYMAOfA89rrbc0SmuEEKKBKu7GaYq7dBqSACUQAwYMYPbs2YwZMwav14vVamXevHkUFhY2SfKUehOgVKtsZLaKB8q11gWN0oKTkAQoQrRtkgDl5JoiAYqfL9VhzUEyIYRohdpcAhQhhGirJAGKEEKIs9IpB3ylVJhSytwUjRFCCNF06g34SimTUmqCUmqFUioHY26dbKXUT0qpuUqp3k3fTCGEEKcroPvwgV7Ao0Ci1rqL1joBuAj4DnhKKTWxCdsohBCiEQRy0fZyrbVLKdVda+2tWOhLYv4+8L7vdk0hhBBnsEAmT3P5/qyR7EQplXJCHSGEEGeoQMbwb1ZK/R2IUEr1V0pVXeeVpmuaEEKIxhTIkM46jKkU7gaeBfoqpQqALKC8CdsmhBCiEQWSxPww8JZSap/Weh2AUioO6I5xx44QQogAXXDBBaxfv75F9h3IkI4CqAj2vr+Pa603aa1Lq9apZztdlFJrfLdz7lJKnf4UdkIIcZZpqWAPzTs9shuYprUeAKQAU5RSA069yUII0XwamuKwrjSF4eHhQOApEBtTQ6dHDsE4WAQ8PbLWOhvfxGta62KlVCrQCfipgW0XQrQh+e+9h+tQZqNu09qlMzE333zSOlVTHJrNZqZOncqzzz5b77Yr0hSuWGHk1C0sLKxRJz09ncWLFzN//nySk5P9KRCXLVvGnDlzWLp0acOeWB0CGcO3Ay8CLzbW9MhKqe7AecDGWh67F7gXoGvXric+LIQQzapqisO9e/f6UxympqbywgsvkJuby+jRo/ntb39bbb1BgwYxbdo0ZsyYwTXXXMPIkSNrbLsiBSJQawrExnbK0yMrpX4LWJRSW4GtWus9p7INpVQ4xhe2HtZaF9WyD3/qxGHDhknaRCEEQL098aZUW4rD/v378/LLL+P1ernzzjtrBPykpKR60xTWlwKxsZ3y9Mha68eUUu2BIcB4pVRvrfU9gazrO0N4H1iota7xRS4hhDgTpd99KWcAACAASURBVKSkMHnyZKZMmVItxeGyZct46aWXuOOOO2qsk5WVRWxsLBMnTiQ6OppXX321OZtcq4ADvlJqFfAHrfU2rfVR4DPfT6DrK+A1IFVrXf8AmBBCnCFqS3EIcN1113Hdddcxbtw4JkyYUO2xHTt2NEmawtMRcIpDpdRQ4B/AQeCPvouwge9IqYuAtcAOoGJOnj9qrT+pax1JcShE23Ympzj86quv+OCDD3A4HAwePLjBicxPR5OlONRabwYuVUr9EliplPoAeFprHdC3bbXW3wL13q8vhBBnipOlOBw1ahSjRo1qmYY10CmN4fuGZXYDLwGzgXuUUo9qrd9uisYJIURLarMpDpVS64DDwHMY989PBkYBw5VSMomaEEKc4U6lh38v8JOuOej/e9+XqIQQQpzBTmUMf9dJHh7XCG0RQgjRhE45iXlttNb7G2M7Qgghmk6jBHwhhBBnPgn4QgjRRkjAF0KINkICvhCi1Shcvpy9l40mtf8A9l42msLly1u6SWcUCfhCiFahcPlysv/8GO6sLNAad1YW2X9+7LSDfkMToASa4GTBggUMHz6cIUOGcN999+HxeOpMnnK6JOALIc4aGXfcScEHHwKgXS4y7riTwmXLAMh59jm03V6tvrbbOTrnSQDc+flk3HEnxV+uMcrHjgW0z6oJUACmTp3K3LlzA1o3PT2dadOmkZaWRlpamj/ByTPPPMOcOXNITU1l0aJFrFu3jq1bt2I2m1m4cKE/ecq2bdvYuXMnY8eODWh/9Tnl6ZGFEOJM5D5ypNblnvz809puQxOgQP0JTlavXs2mTZtITk4GoLy8nISEBCZMmFBv8pSGkIAvhDhrdHv7Lf/fymqtVrZ06GAM55zA0rGj8Tsmpnr9du0C3m9DEqBA/QlOtNZMmjSJJ598ssa69SVPaQgZ0hFCtAoJ/+9hVHBwtWUqOJiE//fwaW87JSWFmTNnMn78+BoJUMaNG8fVV1/doO2OHj2aJUuWkJOTA0BeXh4ZGRlkZWURGhrKxIkTmT59Ops3bz7t5wDSwxdCtBJR114LQM5zz+POzsbSoQMJ/+9h//LT0ZAEKIEYMGAAs2fPZsyYMXi9XqxWK/PmzaOwsLBJkqcEnAClJUgCFCHaNkmAcnJNlgBFCCHamjadAEUIIdqSNpsARQghxNlNAr4QQrQREvCFEKKNkIAvhBBthAR8IYRoIyTgCyFEGyEBXwgh2ggJ+EII0UZIwBdCiGZUNZlKc5OAL4QQzWj9+vUttm8J+EIIcRINTXFYV5rC8PBwIPAUiI1J5tIRQpwVdq09TFGuvf6KpyAyPphzRnY6aZ2qKQ7NZjNTp07l2WefrXfbFWkKV6xYAUBhYWGNOunp6SxevJj58+eTnJzsT4G4bNky5syZw9KlSxv2xOogPXwhhDiJqikO33//fX+KQzB68cOGDePjjz+usd6gQYNYtWoVM2bMYO3atURFRdWoU5ECsWIfJ6ZAbGzSwxdCnBXq64k3pdpSHAI89dRT3HzzzbWuk5SUVG+awvpSIDY2CfhCCFGPlJQUJk+ezJQpU/wpDletWsWAAQOw22sfZsrKyiI2NpaJEycSHR3Nq6++2pxNrlWzBXyl1HzgGiBHaz2wufYrhBCnq7YUh1999RWlpaX89NNPhISEcPXVV2MyVY6S79ixo0nSFJ6OZktxqJS6GCgB3go04EuKQyHatjM5xWGFN954g/j4eK655ppmb9eppjhstou2WutvgLzm2p8QQpyuffv20a9fP8rLy2sN9gCTJ09ukWDfEGfcGL5S6l7gXoCuXbu2cGvEyXg8HuO32432ePF6vWjtxe02lntdHrT24PF4jbLbbdRxV6znQWsvXq3RHo32uPFqL9oL2utBa+2vg1fj9Wq8HqOsvV601miPUU97jfW8XrevXLFMo7WnyjKN9npAa2O/2ov2tU97vP5tA5X7OOEsWGtvva9NjTPn+leptZL21nIGHsBJeUPaTC1n+wGNAJxYp6Hb4cQ2a7pdcSn5WdkBrHtqAh3ZiAkOYf3qLwHIO5zV6O2o0qBqRWUyEdOxQ6Pv5owL+FrrV4BXwBjSaeHmNDq304WjvByn3Y6j3I6r3I7TbsdZ7sBld+B2OnE5HXjsDlwOJ26XA4/Didftxu104XE58bpceD1uPC4X2u3G6/Hg9biNv91uI1h6PUYw9Pj+1l4j0Hk1Gl3lDaZ9nzOjrKv8jdag/AvR1epXqSdEE+k86gJcZaUt3YzTp061+imuEKAzLuCf7YqO57Nz9ddkbttKSWYGbnuJ0WPUXl+vojGDpEIpBcqEUiYwGb+VyWQsM5lRJhMmWxAmkxksFky+Zcb7Sfn+VsYbTBk9Cyr+VsrYLkBFPWW8EZXJjPLXN34bj/nqVJR921BKocwKMIHJ2LbJZK7ch6rYhglMylffKJsqtmMyo0zK+FEKpSrKJv8yk8l4S5ssFfs0G2Wz2dhWRdlibNtsqXjcgrFrY/8miwVTRdtNNUc+Tab6P5DKZD5hpZp1TLVsu8Z2VM06ylz/eqYT1qtlM7Xsy1xjmenEfQXw3M21PC8VyGt2QiMPZGQQ36NnPSsFsEgFsu+mCbJnEgn4p+nYoSx2ffk1R3btoCQ7E3dZEUZQV1hDIwlL7IrJajMCjsWC2WrFZLZgsloxW21YbFZMFgvmIBsWaxDWIBtmmxVrUBCWoGCswUHYQoKwBQdjDQrGFhJMUGgwQSEhWGzWln76QjQpZVI1DziiwZrztsx3gVFAvFIqE/iL1vq15tp/Y8lMSyf1m2/JSd1F2dHDeBzG6aZSJqzhMcQN+AWdhwzhnMtGEhkT3cKtFUKISs0W8LXWtzXXvhqLx+PhwNZd7F23ntw9aZTnZuN1GV+yUCYztsh44vufS7dhv6D/yBGEhIe1cIuFEKJurW5I557P7uG7I9/5yymJKfz3yv+e0jYO7kjj6xf/jeP4UbweJwAms5WgmPbE9OxDz5Tz6TdimAypCCHOKq0q4J8Y7AG+O/Id93x2T8BBP+fnTFbNmYXX7SS0fRfi+vQj6aIL6THkHMzmmhe0hBDibNGqAv6Jwb6+5ScqLSxi+cw/4XU5SP7NFIZedXljNk8I0cT2bDzCho/2UZLnIDw2iBHX9yLp/MSWbtYZo81c/l6xf8VJH3c7XSz5w//hKi2k7zW/kmAvxFlmz8YjrFmYRkmeA4CSPAdrFqaxZ+OR09puQxOgBJrgZMGCBQwfPpwhQ4Zw33334fF46kyecrraTMB/YfMLdT7m8Xh475E/UZ6XTUTvfuz5YRX/uPVaXplyF6lr1zRjK5vY9vfguYEwK9r4vf29lm7RGS117RpemXJX63wvnKU+/MdmUtcb37z1eLx8+I/N7PYF9A1L9+F2Vv9GsdvpZe3ivQCUlzj58B+bObA9F4DSQkdA+6yaAAVg6tSpzJ07N6B109PTmTZtGmlpaaSlpfkTnDzzzDPMmTOH1NRUFi1axLp169i6dStms5mFCxf6k6ds27aNnTt3Mnbs2ID2V582E/CPlNZ9lF/+5D8oytiNLbETuZmpFOceA60pzj3G5y8/3zo+6Nvfg+UPQuEhQBu/lz8oQb8OqWvX8Pkr/67+Xnjl363jvdBKleTXHsDtJa7T2m5DE6BA/QlOVq9ezaZNm0hOTmbIkCGsXr2a/fv3B5Q8pUHPpVG2chZIDKt9HG/VK29wZMs6QhO64HYe988DU8Ht9rBm/r/ZvnplreufkcryoLjKAe7b52HlI+Aqr17PVQ6rn4Bv5kL66srlP38HhYebp60trDgvl9KCfH95x5efk5m6k7X/ewu3s3oAcTsdfP7Kv9m9YS0AXq+HlS89z75Nxqm5x+3iyzf+w887twHgcjr49n9vk7Un1Sjb7Wxcupicg/sBcJaXseWzjzmeeQgAR1kZu75eTWHOEX9578b1FOfl+ssHt2+hrKjQv3723t3YS0v82889lIHLNz+7y+mgKDcHt8vlb5+9pASvr6eqvV7f3ERnzxQZ46cNpf8FxhwzZrOJ8dOG0tc3Rh8eG1TrOhXLQ8JtjJ82lB6D4wEIi6q9fm0qEqDMmjWLOXPm+JefLAEK1J/gRGvNpEmT2Lp1q/Hz4w9MuWsSkWbF5x99SN/evZk5cyZPPPFEwG09mTYT8B8a+lCNZRuXrmDf5x9hi4jjV3OforiopNZ1y8vsbP74Q3/5q7dfY/X8l/1le2lJjQ9Nkw4HZG2FnzdWlj+fCWsq34S8dgV8WjlvN1sWQNnx2rdVmAlrn4MD3xhlrxdevwp+nO8re+BvHWCdb0jM44L/3Q67PzXKbif88Boc2+173A35GTUPLk3I6608SGen7+bIvr3+8vcfLWHnmlX+8uK//omvF8z3lxc88jDr31voL3+z8HXS1q+l+HhurftyOx2UFhQARsDM2LHVH6A9bjc/ff0luYcyjLoOB99/tJgj+9IBcJSV8u27b5K913ityouL+XL+y2TvTQOgtCCPlS8+R9Yeo1yUm8OyZ+eQ7SsXHMni/b/92V8/91AG78ycxhHf9o7s28Obf5hCdvoeAA6n7uK/U37NUd/rcXDbFub95lb/AWfvDxt4bsL15P58EIC09d/w/MTx5GUZB/u0dV/z4t0TKMrNASB13de8+vvf+A+Qqeu+5q3pD2AvKfGX3/3zdP8BJ23d17w/5zE8buOAs3vDWpY/+6T/s7Lnu2/5/D//9L+2e79fX+1/s2/TRhxV5tFxlJVSWlhQpVxGeXGRv5x8VRfM1uohzWw1MeL6XgC4HHac9sr3pdvpwOWoPKi7XS7/wbHi/+nxZZ1KSUlh5syZ3HDD9f4EKJ9//hn9+/cnISGBhho9ejRLliwhJyeH8uIiMvbu4WBGBkeOHsVmtTJu9KU8OGUKmzdvbvA+qmpVd+nUSWuj19pznH/RT+s2snXha5htIdzw5N8JCQ8jwuKg2B1cY/UIi4NbwpfAnl9C0hgoL0QfSzd60RGJLJk9k/DYOG6Y/mcAvn57PltWfoTHd7ZQMTQE0H/kpbW3z1EEwb7Ttr2roOgw/GKyUV7+EBRlwe2LjfKqP4PLDnf7AllpLtiqfOnrsj9DaGxlecpGeOFc33DOCaI6w8M7wFslndodSyHSl07O64bkuyFxsFF2lkL+QSj3ffDKcmHFVLjmeWjXF4qz4IXBcN2/YegdRvBfcCNc+aTx2hVlw7rnYeid0P4cYzuZP0DHoRAWR3lhPs7yMqISjf0f2PIjjrJS+l14CQDr3luAy25n1J13A7Do8UcwW6zc9Ke/ArD6tZcJjYzkxkcfByD9+w3EdOjIwEuvACCuS1ci21V+QC+76z4i4tr5y5P/8SJBoWHs3/y9MZxzgoj4dgy96loAzBYr9734hv8xW3AID7xeeXEtJCKSqe8u85fDYmJ58O33jXmNgIj4eH77ygKsISHGvyKhPb954b+E+k7foxM7cMdT//S3N6ZjJ255/CniOnUBILZjF258ZBYJPXsbz61zV655eAbxXbr6n+uY+x8kOrGD//FRd95DRJzRw43r1JULb55IWHSMb3udGXrVdQSHhwMQ2S6BpJSLsAYZn4mwqBg69h2A2Wp8/yQoJJSo9on+qQ9MJjMWm80/147b5cJeWuKfH6esqJDczJ/9c9YUHD3CoZ92+F+fnAP7SFv/DZdM/DUAGTu2Et57gP9xe2kJjrIywqKMb7DbS4pw2u2EREQC0DHJSvJV8ez8tpCSPAehURYGj4r136VTkpeH1+MmrrPx+hTl5qK11/96Fh076n8djPZlo0wmYjt0ol+/flgtFu6bPNnfnk+XL8dud7AvI4OQkBCGDzqHoJAQohKM/eVlHcbrqfxcOUpLqx2gPG4XXTskMnv2bMaMGYPTbsdisfDkrL9QVFzMX596GpNJYbVa+e9rlQfC09FsCVAa4lQToAx+c7AxE2Qtgr2aWT3GM27UX8lMS+eTv/wR0Fw162906Z8EwPZHUlh9IBZvlRMfi/Iwpscx+l89AQbfAlGdYNdSWDwJfrse2p/DjneeIWj3hyQ9tAAd051nb7221jZERIZx738XseHFP9M1+Bidfv0yWmuOzL+XqNwNhM7YaVT88LdGj3vqLqO84UWjhz7aOKBwdBeYbRDfJ+DXxj+GX7XnbQ2Ba/8Jg+s+Ja2X1wOlx8AaCsGRYC/Eu+sjTN0vhLhe5O/+kcLPn6P7DQ9Dl2T2fLKAnJUvcNHvn4Q+l7P25TlkbfyEW2Y+Ab0uY/nsaRzbvYVf//UJ6H4RH82eTv6BVCb//R/Qri+rX3wKV84+xv7hbxDeju2ffoDJWczAcbeBxUbOwf1YbDb/h7ahUteu4fOXn682xGexmBlz/8O1H7SbSMVUzX7eijlLdbVytXUqplk+8bGKWU9rTGfsrb78ZNMb1zEVcr3brKOtRtUTl2v/8gPHj9MvKan6/nwHDOO10f5J6rweY9prk29CPI/bDRrMVgtoI8BqrbFYbQC4nU40GqvNGGZxOowzE5tv2MVRbkcpsAUF8+DDD3Pu4EFMnDABW7BxgLaXlmAymXh3yRLi4+K4bORITGYzQaGhAJQVFWG2WAgKMcqlhQVYrFaCQo3OWXFBHlZbEMG+cm5WZq2vD0Bir9o/66eaAKVV9fDrCvYAdpPihf0fMnbkLFbOfhztcXPh76f7gz2AresQvAcOEWZ2UOqxEWFxMLJDFv1vm1U9KJ5zA/Q4AEFGz2LQiPPBvA3CKnqKxuRpJyouKsHldLD+6y2YuhfTSWtc9nLe+Tybiy8eRzJgLynhtY/zuWTCMwzEeFOt2VTOoNHj6Qw47eXsS8+lU9/+RGK8yV0OO7aQ0JPP9jf4ZlJ37mftp19R7DQTYfMw8qpR9K8n2Dvt5RTnHiM6IRHQ5Ozfx6HUHQwedQUK2LNxPakb1jLuvgfBU8D3ny5j29dfMHnW+ZCbxveffknaj2VMvMSKN3cz+3Zl8LO9L73zwtHr16M9wYR0GsahfXY4+CUd2ncnTrs4sCUbvfNTkjp2A89R9n7+Pd6gNDqbLHjLcvhp8XK0LQLT8YPoQ5vYlu0Gayjegkz0sb0c6Hw+2mRDl+ajS46ho3uglRntLMPrtKNtUWiUbz590FqhUXi9RkzRjhISw7pytPgwLq8Tq8lGQlhXMlbsIuPzA9VeoxrvOn0Ky3Xrn6HxdHS4ZiDFOUX1Vzwl1a/N2HGe8GjlsM6Bgwe4ZfIEzh82nJuvuwVniQdnSdWhXy+/vOpGADwO8KCrTOdsxuusWrbicoOr3Df/FkG4y6GkvHI+rtryFpgtjRem20wPH0BpzesF1/HD2l30HH0tY353d/UKq/5C0eZlRNqcxkXLqM4w+rFT7gG/cvvldQwN2bl34RfG/PVeLxarFbfLxc87thLTsRMxiR2xl5Tw7aK36TdiJJ0HDKToWA6LHn+USybeRVLKReQeyuDNP0xh3O+n03PwEI7u3cN7Tz/OpTfdTucevTmemcnG1Z8w8LwRRETGUZyXx6GMvSht5sCB7dXGu5Uyk9guCZfHQWJ8f0zmIAoKD5Ods5MeXS7GYgnheN4+juZuo3e3cVgsweQV7CXn+Hb6dL8GszmIgqKDFBQdoGvHkZhMFkrLcii3Hycuph9KKZyuEjweF8FB0Y0y/axSGqW8vumRFUq7UV4HJlsImEyYPGUoRxEqIsGYXrk8H1VyBJXYz5iOuSQLVfgzqtsIY1rlwgOo/AOoPqMxmU2o/INQkoXJVYpyl6Lwoqq+pyxBkNAfEnxDDUWZ4CxDtfN1HIoOg9uOijeGWSg8DB4nxBpT/KriLOOsKNqX3Kc4yzjCRHUyeq5F2UZfIaKD0WUoPgImM4QnGB3bkqOgLBAWZ9QrOQZmK4QYwzKUHQeTBRXiGx4sLwCzBYIijP07CsFkA5vR61TOYuNs0eJ7v7rKwGQBq+9io9tulE0WYwptr9tojzJRcejy/1/9/9/q/+fqMx6f8Jiq/seJ75GC2Bj69upF7VS1X42ijvdowLuotWJgaztK8iktKa8WwRSayOgIQuJqT4bSpnv4FmXBpeu+BUsBezZ8SYgpnksm317tMUdZKUFXPE7kqEeMoY7TMLJbMZ/vt+LWlVMxWJSHkd2K0W4PnvJSXCWllJWX4i63E+6F8j37KNr+Ex6Hky5RHSncksrxDTtwOz0M7nMxOd/uJevLPTidHnp3v4I9y9PY98l+3G47CXGDyPg+l+wtduyOQsqL3WTsKiA4SFHuOEJG5nYslqBqwR5Aaw+5+fvRWtO73wAiI8MILojCRQKd+kQQEhpOQmkSHQpi6dglAYvVhtcbgyYZW3CIMeWzqQsm8yXGHPImE8rcxzc/vQll9s0nbzYbwdQ3F78ym41g7PvbZDIbwdpiMZZV/DabjXUsZmOee9/c96elPN8Iqu19AfvQD3D4R0iZaJQ3vwV7dqHTVqBstQ2XgHJvQt+WZgSnD++Hg+vgNt9Y9JJfQ/Y2uGWTUV40EY7vg1s2GOWFNxtB++avjfJbNxjXRX7lux7z+tVGhLzJd5vfq5eDJQJ+6btp4OWRENkRbvRdK5iXYgztjX/bKP9zKHQ8D27wTUT73EDocTFc/6JRfiYJ+l4F1/ouwv+9mzFUefXTRvlvHWHYXXDl34zyE3FwwYNw+V+MA9Pj0TDqURj1CLgdMDvBuGZ08R/AUQxP94TLH4cRvzPuFnt+MIx5Aob9GoqPwksXGNs+91bjhoHXxhjlc8ZD3oHK6z19x0JuOiX7f8ZmwxgudNmh4CBEdoagcGN4suCQcbC0hYGzzDjgRnUyhhidZVCcbVyPsgYbr3PJUaNsCfKVjxmvp8VmlEtzjbLZCo4SKM+DiI7GQdNRAvYCiOhgHPQcJeAohPDEKuViiGhv/A8dJeAsgfD2xoHEUWIcUMN915CcpUbZNzJgLd6P2QYlLhsebcKsvIRbnYS4XUDjZL9qVQH/ZMEeoNsRC8fdISS2O0JQaGVQz/vseRYs/IarHvgDfYZfcJIt1E17vTgLCyg9fJjwAbcxsHANqfkah8eLzWyhfUQ3Mrzj2P/YWwFtz2LRWKz4fhTWIDOhESYsNguWoBgsQTYswVaswUFYggdjCQnGEhKCJTQEa+gELKGhmENCUSYTHreL52+/sdb9uNxOpv1veYOe85nsUF4ZXq3pFmeMj366I5vQIAuXJLWDkBieWplGx+gQ7khJhi7J3PbKdwzpGs2MsXfC0Ds5/JdedFY179Q5SjsSp6Ux4LHPuPOCbjx63b9Ae7lk7hruSOnG3df9G6/HxW3/2cCtw7sw/vp5OJ0u/rh4G9cM7sCoG17E7nDwny/2cknfdgy54UXsThcrNmUytFsMPa6fh8PtYduBPHq2CyP++nm4vJBbWE5MqI3g6+cZwajCdf+q3kG59gUjOFa45vnqF/CvfsYIaP7yXIjpUVkeOwfaVekxjvkbdBxSWR79F+g6wvhbmY3g3833mTFZYcSUyvpmm3Fxvl0/o2yxwYDrIbqbrxwMvS41AmhFudMvKs9WzFZjmxWJZJRvH1V74cqXsMfvhIxsXjeVY2le4yBVMarh9RgBt2IYxeMyArS/7AS7L6CDsW5ZnhHAMWOMxxzzlQFXKZQcMQK6wthWcbYvwCvjYFDxOBgHj5JjlUPBXjchZggxV7mBAqB6P+20tKqAX59hu0PwKs1b55RxU8XCsjxs3/+L/t0uoFPfASzdcpi5n+0mq6CcjtEhTL+yLzec18m/DVdxEaVZWZQezaH0WAGlx4spLXRSWqxxuyveeFGo8DEMDDlMiM7DagNL+x5YEhJPCNRBJwTqsGqBurGYLVYi4uNrv+vEd8dGS3O4PZQ7PUSHGhfUfsoqosjuIqVnHAAfbT1MUbmLO0Z0B+CplWmUOz3Muu4cAO6c/z0KePPXwwGY8s5mYkJt/vK/vkynY3SwEfCBLT/nU+qo/GD1aR9Ox+jKwPm062b+bn2VUFU5vlumbTzp+hUvKMX9l/TivK7RYLaitWZYt1g6RYeALRS324vGuMOV4Cicys2GfduN+n27UaodPPfFF0SHWhnSpTsFhXamLV7NnPGD6HF+D3Lyyrj5P2uYe9NgfjWsLz8fK2H0k1/ywq1DuH7IYHYfKWbcHz/h3xOGMnZgMmlHirh/7hrm3DiIC3qNZM/RYv762kb+78p+DOpzOek5Jbz2wXbuGdmTngOu4+fjZXz8VTo3nteZxME3k11Yzg/bsrikTzuifjGZvFInGT/n079DJMEp91Pu9FBS7CA2zIZ55NTKf5rZYvT0K1iD4fJZleWgcOMAUiEkBq55trIcFg/Xz6ssR3aAX75aWY7pBmFllXegWYIhrsrwjjUEKobOwBimiq9ygdcWZtw55m9PhDEcVyE4EoIr7wIiJNr4qRAaW/1gGRZn/PjL7apct8MI/OHtKw8o4e0rgz0YPf/wqvUTIazKLZ0mK3hr6bSabTWXNVCrCvjRQdEUOApqfSyuQBFTFEx2XBkHI0z0eGRFZUD//RquCGvH0p15PPrBDrxOB711EZ2Ol/HDuz8RtCaMKBSlxV6cjurjcSGhXsIiLHTqHUJYfBRhCbGEdehASPtETI14seV0jbz1Tj59+V9od2UAUxYbI2+9s1G2f7zEQU6xg/4djN7l1kMF7D5SxC3Jxlj1R1sPsykjnyeuHwjAs6v2sGFfLovvN3qHM5ZsZ/PPBXzzf8YdMPO+Sic1u4gvp40C4JMd2WTml/sDvsPlxVHlDpor+idU6/nNGNuPIEvlQfONu5IJtlUOsf3v3hHV2l/RrgqbIq/gkSL4P8t7dFTHydJxPO2+mU2Rxu2dD11eedeEUop/3Hyuv2yzmHjvvsrthwdZWPfIZf5yXHgQ++Zc7b+DJT7cxjfTLyUq1OorB7HgN+fTO8G4PTI+LIi/3ziIIV2MYBQdauW+S3rSs50RCIMtZs7tEk1UiLG+y+OlxOH27eDAGgAAIABJREFUX886XuLgi9Qc//9ib04xT6/czUW940mMCmbboQIefHcLnz40kqhQK9+m5/Lgu1v4YurF9E6I4NOd2Ux9bxtfTx9Ft7gw3vvhEI8t28lXf7iUxKhglm45zLw16bx33whiwmys3JnNez9m8u8J5xFqs/DV7hy+TMth5rgB2CwmfjiYx9afC/jNRT0wmRSp2UVkHC9j7ECjJ52ZX0ZhuYtzOhrXITy+PMyWRuwENalq1zROOBupekHDZAaqzMAb2dG4dbrqhVtlqjwDagRnTkRqBI8kjuLPBz/EVcuFlxGpRu/tuwHl2NwhKO3hvIJv+eY/K1ED+9E7JoLsLVlMcyksuuoR1ULOoTKiu4SR0CWU8PgIwtrFEtahPaGJHTEH17w4eybaHZ7E6vhLGHZsAxGeEorN4fwYP4LuoX3oDxwptJOaXcSIXnEEW81sPVTAFz8d5YHLehNsNfPpjmze/i6D+ZOTCbaa+e83+3nm893sevxKLGYTb6w/yL/XpLN/ztUopfhs1xFeXbufm4d1QSnF/mOlfLe/8stfHaKC6Z0Q4S+PH9qZC3pVnm1MuyIJl6dyDP3F23+BuUpO1MeurdIzA/+BoMKFvaufuSREntr/afqVfXn0AyfLnBf5l4VYzTz5/9s77/CoqvTxf86dmUwmhXQSEgIBgYSmCARQQBEsIGAXccWComvBRVDAgtjwZ1kL7lq+umIvrAq6oiyKKCtFEEGRUDSAoaT3PvWe3x93cmcmTKiBYHI/z8PDvLece87kznvOec973veC9IPcdfhobdHaYzYpdIoL8z0nxMSw7r76R4VZmDioky4ntgtl5gUZupwWH84LE0/X5d7JUXx6+1BdHtw1jg0P+IIBjsxoz47HRmPx+s8P757ANzPOpmOM9hsZ0iWWNydn6jOe01Kjeezi3sRFaAu53RMjuO6MNCJCzXr9uidGEOLtYOtdHoqrHVouYmBnUQ2fb85j7jjtb/b978W89N1OpgzXTEmf/ZLLW2ty+G3eGADeWJ3Dxz/tY8sjFwDau1lZ76JXsjaYyC2vp8bhJj1Je3/yK+uxu1S6xGsdYFG1HZdbkuJtT2mtA48qaR+pvQOV9U6kRJ9NNsz0wq1ae+wuD0KAtcG9U1URiMPKY3xMhMVS6/QQUleAWbpxCzNOWxLh/rOMY6RVeenw/5L5oCqa3fmphNrN1Id62NbVSVVEOOf/aMJus7GtWzJpdhuDqkNxuj38UbKRsMgM0jpksKe6mmpFpVwoFAsruYqNPSKSWmHljyfHsm53KVm5lUwa0plQy8kVG19KSWW9C1uICavZxP7yOr7eWsj405JJiLQycN5ySmqcB9yX2M7K+vvP5aOf9jHrk19ZNescUmPD+GD9XuZ8toUf7htFYrtQlmzO4+21OSy4IZMom4W1O0v43+/FTD+vB6EWE78XVrO7uJbzeiViUgSVdS6cHpX4iJA/bXLoQ5n3DI4Ot0el3uUhMlSbkRRXOyirdeoKPLuwmv0V9ZyT3p7t27eT2qU7To+H2HCtw6moc+JwqyR6O/HiagdOt4eUGK3TzK+sx+lW9fWbvaV1uFSVUxK0GdPu4hpUiT6D2lWsuVk2nN9ZVIMioKtXzi6sxmJSSPN2KDuLarCaFVJjtefllNQSalFIitI6mP3ldYRaTMR7O8iCKjs2s0KUt4MprXFgtZiI8HYwVfUuQswK9S4PueX1qH46WRGClBgbMWHBzTpt2ktne3EYxfmdsXm9Y8LsZgZuD0G1piCVeuqjupBe52S3zc7bkUWYzWWMjytlq13lr4/cwLCnvyO3wn5AuSnekc7K34p5f/0eJg/VRiaf/ryfoioHfz37QLex5lAWqipRpcRsUqiyu/huRxH9O8WQGhvG7uIaHv1iG9NGdef0TjGs213G1f9axwdTBnNmt3j2ltbx6Bfb6NmhHQmRVkqDKHuAoirNJ3lkRns+vf1MEiK1l/SqzFSuHpSqK+vxpyUz/jTfYt+Z3eI5028U3SMxkh6JvhF7g3niz8wlp6cYCv44YDYpRPolJk+ItOrvHUD3xEi6+71L2kzCp6qiGyk//3sBOkQFetn5z54A0uLCA9y3O8bYAjZHJEWFBiwDx0da9dkKQDubOcC8ZDYJTH6y060GnK+oc6KGWojyVqOg0k5MeIiu8PeU1REfEUJlnStA2QOoUlJYaW9S4R8prUrhrypKC3CFBECqWOr3EBnanoSOHzA/3oxdUTC7BW6zZEec5G8lSxDKM8y8IIP7Fm+h3uWzDdssJmZ6p/H3jsng1rO76qaFVdkl7Cqq0RX+P1Zk0y7UTHRYSEA5uRX13LdYc9trUCAuj8qPf5TRMcZG57hwKutdPLpkGxf3S+asHgnsL69jxN9X8sRlfblyYCplNU6mLfyFZ688jdTYMEyKoLTGSb1Te0a39hHMHddLf7kHpMXw84Pn6Xbd5GgbuRUHxrdpmLbHR1j1EQkQYD4xMGhNKEqgbb3BdNNAgyJuoLGybTANNdAxJrBDaZgZNJCR1C5ATu8Qqe1p8NItIRyTolBcHTzap9Nz4Gaso6VVKfxqd/Dodx4EaSNG8ZS6ng75EQz4LYZwuwmXSfJDn1Je7lDDgOItXHJ6X4CDjsz9RxfPTegXsHC4aW85seEhrN9dFtBpgGbXnPHRL+wvr2PqyO6oUnLN6+u55/weTB3ZHatZYe2uEgZ31ex18RFWbjmrqz7NTYmx8c2Ms3QF3TkunCV3+uzLCZFWbhzmc6+zmk0BL7Jmk266MzMwMDgxnDVsGGvXrtVlW4imhkNMSlDlHmJqvsXqVqXwBRLZxK62M668BNs/XuTMrDjMqvYFhngEQ7fEsUbCq7++Sr/2/biy15VccvrIoGUEw1+pvjV5EKoqOeX+pUGvVSWke3t7q9nER389gzTviDzUYuKH+3xZdEItJmaN9i3MWUxKwCLnkdLQaRk2aQODlsVf2fuTGBUa1IafGNV8jiF/Ej+nw6MpZQ+wZ9Bgzt0YrSv7BsyqwqDsWMadMo6skizmrZvH6tzVRx0jXFFEgD+3PynRNs7rlajLg7rEHrH3yLFwyekprLl3JH88OZY19440lL2BwWFwtCkOm0pTGOGNRto4BeLUmyeT/fNabrh0NOOHD2DHrz8fdMH2aGhVI/xQkxu758DFQrNHi4jlbMIvPrTexOi00fRv35+FOxaycMdC1uatpXt0dxLDE0kKS6J9WHsiQiKC3t8Yw3xiYND8/LpiGZWFx5aftjFRiUmcOurg6QP9UxyaTCZmzJjBc889d9B7AD1N4Zdfavm0KysrD7hm586dfPzxx7zxxhtkZmayZPHHbPzxBz7//HPefO0FJlzYvJFZW5XCPzDMqn4GgFCXG3vIgR1Cu3jf7rc7T7+T9QXrWbFnBSv3rcQjfUo7zBKmK//E8EQSw7R/cbY4zIrvqzTMJy2PlNpmHVWqSClRUfXPDceDnVOlikQGHPdFufS9X00F6WuYGTZ53v94E69rwzX+s8zDKe9Qs9JD1Tng2U1X7rDLa446C4+gzlUHgMPjxBVsJ+rRIsHhdlLrrG10+MA6ZfTMYMMvG9i1cxfJqcn06NOD/y7/L4898hg9e/bkiglXMPzs4QH3dE3vytd3f830e6Yz+sLRnDnsTKqd1QBUO6upcdbQOa0zaelp1Lpr6dGzB2eefSY1rhq6pnclJyen+drqpVUpfIcM7groNml29vT8MrakJqD6u1SFWBk+8TqK64q5/PPLyUzMJKs0i4LaApLCk5jcezKnJpxKQV0BRXVFFNYWsrV0K+vy1+llKEIh3hZPYlii3hmc2iWJr+8eTLjFl5hESolHeoIqGRW/z37/DqacPNITcM1Bywqi1PyfEezegOP+z0Giqr4ygaB1BPCoHlQ0pRmszUiOqH6Nvw+J7zv1/x4OFjX1cCmsLeSPqj9weBxYTVa6tOtCYnjioW80aDaujr2aknotplHikH4cj2+/1N5ENjg/+gzow4r/reDdBe/yzqJ3KLOXUe2qJsQWQlVdFeHx4ZTZywLuiesUx5KVS/h2+bc8NPchhp49lGmzpyGRlNvLqXRUYg4xU27XMoi5pRuXcFFuL6fGXYPb7Q5WlWOiVSn8Q5FS4U3FlhyPM8RMZFw8wydeR8/h5+BRPQxMHMj3ud/j8GjuUfm1+Ty38TkePvNhxvplywKoc9VRWFeodQLe/wtqC9hWui1gVmASJl2JtjRHqsAEAgQoKChCQQiBIhQUFO24UDAJrTNVhPcaRMBn/R6/c0IIFBTMwoxQxAHH/Z/VZHk0cY0QB8h6mQerj1+ZAsG6/HX8kPcDTlXbv+DwONhduZuRnUYyLEXzjmpqQ5m/y12wZSX/8wGfg5QnghXQ+BoRvLxDPaPJssXBzx+qzv7XHOq7OFR5ZXvKmsxHfTjfzVHTqOhRw0cx5cYp3Hb7bfTvoSUwv+T8S7hs9GUUFhZyz9338O577wbck5eXR9f2Xel1Uy+6JHbhjQVvkByRjECQHJGMM9yJRbGQHKHtb7GZbcSoNtrn11OXW4V0OnFXVGCOjqa5aFUKXx7kFaixWtjcqT3pueVssp3Bm+/PDThvUkxsLd2qK/sG7B47L2x64QCFH2YJo0tUF7pEdQk4rkqV0vpSrQOoK6DGWdOkMvNXWvq/Rsf8lVdQJRas3CBlfbv3W5756Rm9fQ6Pg5yqHK7OuJoxXcccoPAayjsSPKoHp+okRAnBpJhweBxUOaqIDo3GolioddVSWFdIx4iOhJhCKLeXs696H+mx6VhNVgprC9lVsYsBSQOwmqzsq9rH1rKtjEwdSYgphOzybDYXb+biUy7GYrKwpXgLGws3MqnXJMyKmQ0FG1iXv447+t2BIhS+3/89P+T9wOxBWn7fZX8sY13+Oh4+82EAFmcvZn3+ep466ykA3tn6DpuKNjH/nPncv/p+Xdk34FSdvLX1LW7rd5teXoWjgokZEwH4uehnnB4ngzsMBiCvJg9FKLrCklL+aXcdtxRVShUhzRg87Gjp06sPVquV++69z2e+9RoKEuIScDldAWZdgO1btzNz5kwURcFisfDKK6/o15gVc8BnAFxu1PJyZENeXSlx5eZp1zST0m9VCv9gOMwmnIqZtzIu5Pe+w4JeU1AbfEGooLaAjYUb6ZfQD5Ny8JAKilBICEsgISyB3vQ+5nofK6pU8age3sh6I2hn9vj6x+kY2ZFBHQaRU5nD7FWzuXvA3QzqMIjfyn5jxsoZPHzmw2QmZfJr8a9MXTGVZ0c8S2ZSJuvz13PrN7ey4PwF9E/sz9q8tdy+4nbev/B9Tk04ldW5q7nru7v4ePzHZMRmsCp3FTP/N5PPLv6MU6JPYXXuau5ffT9LL11KartU1uatZe7auXx9+dd0iOjA2ry1zFs/j+8mfEe8LV5Tzhue4rzO5xFlimJD4Qae3/g8V2VchVkxs6lwE69veZ1bT7sVRSjsKNvBkt1LdIW/v2Y/Gws36u2vcFSQX5uvyw3mIWj6Xahz1+mfv8r5ij3Ve3SF/69f/0WpvZR/j9O8MR5e+zC17lrev1BLkj7l6ymYhInXzn8NgAdWP0C4JZz7B98PwD82/YPY0Fgm9dJi8y/OXkxcaBxnp2r5fDcUbCDaGk33GC1wW2FtIeGW8MN2JjA4el544QWeeOIJwsN9JtrFixfz1VdfUVFRwR133KF36FJKpNPJ+aNGccGvvyJVFbW6GuHNXVxdUYGrqIhOiYlkZWWhOp24Cwt5be5cpNeM0zklhZ8+/RSkiruwsNkUfqtyyxQHMZusPyUZh9mMJcTdpLdMU1PHeFs8Nyy7gQ93fNgs9TxeuFU3a3LXkF2eDUC5vZwzPjiDT7I/aVKBOVWnruQsJgvxtnh9RBVmCaNPfB8iLJpCibHGcH7a+cSFaiFik8OTuaH3DbQP00K8pkWlMX3AdBLDNDNRRmwGDw55UD9/WvxpPH3W0ySEaYvkg5IG8fKol4mzaeUN7zicd8e8S6xN23x2QdoFfHrRp0RZtaiJl3a/lOVXLCcyRNuPMKnnJNb/ZT2hJs219ZZTb2HzdZuxKBZdXj1xtd7WKX2nsORSX+z/G/vcyDtjfPkJru99Pf8c+U+g6XehQ7gvcuHz5zzPR+M+0uUHhzzIU8Of0uWbT72ZO067Q5dHdxnN+Wnn63K0NZpoq++HvK1sGzsrdurygi0L+PKPL3V5zuo5vLX1LV2++sureeanZ3R5zKIxzN84X5f/uvyv/HuHL6n64+seZ+W+lbq8cMdCtpVuA7SBwU8FP1FUVwR4YzM5Kpt3kbSF8Terqg4HqsvXNk9VFWq9bye6q7gYT00Nu3btIiMjg9qSEiZdcolWjqriyN7JRSNG8Oqrr7Lwgw8YkpCAp9S7FuDx4MjOxuP1ypEeD859+1C9qRGlquIuKkK1+8K4qPV2XdkfUG9X8/0NWlXwtGcnjG0yRVkDilAYfcf0oImov9z9JQ+vfRi7x/eHCDWF8uCQB7FZbAxMHEhMaAw/5v/Ikt1LmDFgBjGhMYffoGZASolTdWI1abuKH1/3OD1ie3BljytRpcrg9wdzZfqVzMqchZSSZ396lnM6ncN9q+4LGM020CG8A19f8fUJbcOfgabehWDrOccLh8eBR/UQZtE25+0o24HNbKNzOy2ByBe7vyApLImBSVqcrOc3Pk+f+D6c11kL4Xzr8lsZ2WkkE9InoEqVkR+NZFKvSUzpOwWXx0X/9/rzt9P/xs2n3kydq47BHwxmxoAZTO4zmUpHJcMWDmN25mwm9ZpEaX0pE76YwPQB0xnXdRyl9aU8sOYBru91PWckn0GZvYw3s95kXNdxpMemU+mo5Pv935OZlElSeBJ1rjr2Vu8lNTKVcEs4HtXjDXnsMzL4m7xchYVIl4td1dX07NkTT63mSWPyjrDd5eUghD7ydRUUIMxmzPFafCfnnj0IqxVLktZx23//HSUsnJCOmqecfccOlMh2hKRo9nP79u2YoqKwJGty/bZtmGNisXTw3p+djTkmBnN8PFJKXPv2YYqKwhQVhZQSd1ERSkQEpvBwpKriqapCsdlQrFZtxO9waJnczGa942ls3rP/9ltQ5S4sFkLTgw9S23TwtMNBlSqrFr4TVOE3/JBf2PSC7qUzrf+0A37gOVU5bCjYoHvg5Nbk0t7WHoup+QOG/Vr8K3XuOoZ0GAJoo7qUiBSeHfEsAL+X/67XQxEKb41+i46RHQHthbon8x4ApvWfFlSBTes/rdnr3Bo43HfheGI1WQPCpWfEZgScH9d1XIA8fcD0APn/zvs//bMiFFZetVKXzYqZlRNW6gMHi8nC6+e/rr87FsXCrMxZDEgcAGjOB0M7nKnP3hylJZj3F+HK0BRU6ZaNbPviXU698VTSY9PZv+wzVi1/mohZL5IUnsSuBf/kqzVvM/iJVxnecThbH57Jpl+W0fPVNxncYTBZN00id+9WUhe+T6+4XmTPmEphRS7xT78KgLOgAI/0YO3aBYtiwV1WiipAtIvEpJhQHQ6kx43J22kIiwXht+/GHBuLsPh+n5bkZITZJ4d06YIw+b7s0IyMgCREod0D8x+EdOoUIFsSfc4PQlECTDBCCIRfGPWm1nHMiYmazb5RPHxzYvP5JrU5hQ9QXVzE9p69MHfoQPvpdxE1frx+bmzXsYf8UU9In8Bl3S/DrGi99YyVM4i0RPL6Bb5sPSsXPIrltY+IrvRQEWXCdcsERtw0N2h59e56bGbNvvfB9g/YW72XewdpmYRe+uUlyu3lfDReMx1c3O1i2oX4gjG9PebtgLJ6xwdfNzgZFNifjcN5F04m/EeOnpoa3EVFhHTqhDCbce7fj33rNiJHnoOwWLBv3oy6Zg3ht9wCgP3b/5Hy5ZckP6sNJByf/IehCxfR9T/XAuB8+U2ueW8p6ZseA0B5exF3fraf9BvOAiBi6VpmLw+nxyPa7CLqx9+48ddYUjtoGceiSh2M8qSTGqeNRiMSO5JyyqmkRqYCYBo5lL0768nwDl5q/zKGJds+YLK3ba72UeTXFZKmqqCAPSWO3Jo8uksPJkzUJbYjryaPHmoiFpOF6thQCmoL6KFGY1bM1ESaKasvpbMagUkxURcqqHaWkyStKELBblKpd9cSa45FCIFTdeF2uwn3ZtsKNiNpbszR0dS76hAl5Zg8Eo9JIOOjsTWjl84JteELIUYLIX4TQuwUQtx76DuOD6EuN0iJOy+P/AfnUrnEZ9etXLKE7JGj2N6zF9kjRwWc88f/Dz+131Su661ljnKrbp55/CKi539IbKUHBYit9BA9/0NWLniUPVV7WLrbF2vnqR+fYsyiMbqcX5vP7ordunzvoHt1uzLA1RlXH7USGrZV5aWXPfz7STcvvexh2Nbmi8LXGjncd+FIaFDKqsOBMycHtU5bBHaXl1P9zTeaqQJw7t1Lyf/9H67CQgDqs7aSO+NunPtzAahZvYbdF12Mc98+va47evfBlaudr1q6lN0XjsVdovmw13z/PbnTpuGpqgKg7pdfKPnni77nl5Tg2PEb0ql5Jint2hHSqRPSo63vhA0aROzkBvULURddRIfHHtPl+JtvpvM7vsFHysOPkL7yf/rss9MDczn9g0+Jt2kml653zOC85xfqLok9r7mNmx9apJurMsfeyHMzv9F/Z+0i4+nevqe+vhQREknX6K76+TBLGCkRKbpTRagplNjQWBRvhikFBZNi0kfXTo+Tame17tdX7awOWOcqd5Szp3qPLhfVF+lrY6At6u8s9623lNSXsL96vy5X2CsorvOlFK1x1lDlqNJlu9uO3e2bbXtUDxX2CvYpFexJgN1Jgj0JsE+paDKL39FwwhS+EMIEvASMAXoBVwsheh38riPDchhhRBVVJT3ft0FC2u0UPqkttJUvWkT+A3Nw5+X5OoQ5D1L+0ccAuIuLqVi0CFeRtrDl2LWLwnmPM5iunNXxLOp++onsq67kjE+zsTYyxVldEPbyvym68lqeWTKLWlcttWvXcsErP3Nj8mV4VA91GzdyzTI7r5yhjbLqs7bSbtFKEkxR+vOqli3T7XyuggLqvV4AAJ7qatwlJUF9/iuXLCH/wbmBbWvU2bU00u0OWLhSHQ5Up8810lNTG7Cw5qmsRK317ZJ0l5bi8S6MgWYHblBwAM79+/FU+H48jj/+0BWslBJHdjbuMu3dqPjPf8if82Dg9/XAHErfekt7dnU1Ja++hn2btujpLi4md+Ys6jZqXkDOPXvYfell1KxeA4B92za29z2Vmu9W6vKu0WOo27hJq0t2Nvun3onjt9+0+/fto3j+C7i8Cl2tqaZ+axZqrdY+JTwMS6dUPWWetVs34m65GSVMs/eHDx5M8jPPYIrUFrjbjR5Nl/98hqmdNjuMveYaMrK2YIrS3q2YiRM55b9LUbymh6ixY+n4z3/oZo6IYUNJuHOq/t3Z+vah3egLdNmSnIy1my+/rLBYmjUvMxDgKmxWzNjMNl2hW01WokOjdTnMEkZSeJIut7O2o3O7zrocZ4sjPTZdLy8hLCFAjg2N1TsfgKiQqICFfJvZpjsPAAds9qt111Ll9L17ZfYyiuqLdLmwrpDcmlxd3le9j7zavAN+u1JKimqLaC5O5Ah/ELBTSrlbSukEFgIXN+cDDrW70uL20Hdfsb4Bq4GG1fXi+S/oIxy9TIeD4vma54Nz717yH5iDc6fWs7tLSqn84gs83uTgwmwmLCKamMDidSJqVWLTevDG+PewmW2odXW0q3Dyl55/waSYcObkULlkia706jZsoOjpp3UFX73iW3Lvmq6PuioWLyZnwlV60uTSN94g+6yz9Ze26Nln+S1Tm1IXPT8faQ9M7iLtdvLvf0CXC5/+Ozl/uUaXCx6bR841k3Q5b84c9ky6Vpdz75nJnutv0OX9d97JHr9R4N4pN7P3xpt0OWfSJPZOuVmX/7jscvb99VaffOll5E732aH/uPgS8u+9zydfdBEFDz+iy7vHjafwySd98oVjKX7ueZ885kJKXno5QC5d8EaAXP7ue5rgcrF7/EVUeDv34ufnIx2BbqzS6aTk5VcAUOvrKX7+eeo3b9bOqSr1v/yC2/suidBQLElJKKGajdyckEDcDTcQkqrZyEPS0kh++imsPTTbcGiv3nRZvAhbXy1Ed/jgwWT8upmwgdraW/iQIXT76it98S7s9NNJffFFfREytGdP2t91F+ZYzcMppHNnosaNRfEucppjYwlNT9ft2I1t3G0dRSgBs/YQU0jALvkwS1iAg0aUNSpg02JCWIJungJIiUjhlGhfYqTkiGQ6R/o6kPZh7QM8vmJCY5rcnNmcnlIn8i+eAuzzk/cDgxtfJIS4BbgFoJPfwsjh4DYd3Ed+TLkTd8WB2tjsXZn3eKe/jfF4R4GhffrQbcU3mBI0t8LwwYNIX+8LsWDr14/Ob77JmsF9iK30HFBOeZSJoa/67PyR555L5Lm+XKPRl19O9OWX63LstZOIvvJKlHBt1BZ95RVEjDgbYdWUSNTYsYT26qWPwiLPOQdLom8UEjZwIMKiTYHd+Qd66ECgy1dIWmfw+EbY1h499BEjgK1PXywdfC9p2MCBeKp9o5jwoUMDlGTkuYERBaPGjQ9YOIueMEFvG0DMpEn6iBMg9sbJutcFQNxtt+peFwAJd03TvSoA2s+aRUhnv9yvDz6ItUuaLneY9xghfqPQ5L//XVe4mM2kPP8c1h49AHB7TSmNUau1WCjm+HjSN/+CCNG+X0tiIt2W+7ydLImJpL7i62zMCQm0v3uGT46JIeqii3TZFBGOqZdvwmso49ZFY9t/w5pdA1HWKAprC4Mq9wY34+bghLllCiGuAEZLKad45WuBwVLKqU3dc6RumfOvGIenCZ0fGZ/AVaMvI//BuQEjXREaSofHHiVq/HiyR47SpvCNMCcn0/3bFYddj5ULHiV6/ocBZh2HBSruurq318dxAAAJvElEQVTJhdvjTXO1ra1gfF8nB8HcDlsrFY4K8moCzTpCaGEY/Pdr+HOkbpkn0qSTC6T6yR29x5qNuEtuhGBmfJOJ4ROvI2r8eDo89qg2ohcCc3KyruwB2k+/K8B9CrQOof30u46oHiNumkvFXVdTFmVCBcqiTC2q7KH52tZWML6vPyfbV33Ha3dM5tmJ43ntjslsX/VdS1fpsIm2RpMckayP6Bvi7DSl7I+GE6nwNwDdhRBdhBAhwETg8+Z8wLWTLqP9xTdiV6xItEiuii2cC2+7S/e7jxo/nu7frqDn9m10/3ZFgEvmoTqEI2HETXMZuj6L3ju2M3R9Vosqe2jetrUFjO/rz8f2Vd/x9WsvUl1SDFJSXVLM16+9eMxK/2gToDROcHLNNdfwzTffMHToULp3786PP/4IwHvvvcegQYPo168fs/82m1OiTiHNlsb0a6dz9qCzA5KnHCsndKetEOJCYD7adpI3pJSPH+z6IzXpGBgYtC4amyz+/ci99D77XPqMOBeP280nj8+h78gL6DX8HF67/QaqSw9ch7NFtuP21z+grqqSJc8/wcBxl3LKgMHUVpQTHn3onfKqqpKcnExubi4mk4kRI0bw3HPP0b9//4Pel5OTQ7du3fj555/p3bs3mZmZnHbaaSxYsEBLcPLmmzzxxBPMmjWLxYsXY7FYuP322xkyZAjh4eEsW7aMf/3rX4CWPCXKb32rqe8HTh6TDlLKpVLKHlLKUw6l7A0MDAyOhOrS4HHt6/0cC44GRVHo3bs3W7duZdGiRXTu3Jn+/fuzcuVKhg8fzq233srKlSuD3tulSxf69u2rlzFq1CiEEPTt25ecnBxWrFjBxo0byczMpF+/fqxYsYLdu3fTt29fli9fzuzZs1m1alVQZX80GK4ABgYGfxquesjnhmsymwPkyPh4zZzTiEhvRruwdlEB1x/O6L6BIUOGsGbNGl5++WWWLVsGaAuqERER2O12OnbsGPQ+q9ejDrSOo0FWFAW3242Ukuuvv54nnnjigHs3bdrE0qVLmTNnDqNGjWLu3GM3C7eqaJkGBgZtl+ETr8McYg041pDR7lgZMmQIc+bM4dJLLyUlRdv7MHz4cP773//y1FNP8dBDDx1VuaNGjeKTTz6hyLuZs6ysjD179pCXl0dYWBiTJk1i5syZbNq06ZjbAMYI38DAoJXQ4JixauE7VJeWBGS0O1YyMjKwWq3Mnj1bP6Z4dxLHxMTgaLRJ73Dp1asX8+bN4/zzz0dVVSwWCy+99BKVlZUHJE9pDlpVeGQDA4PWxcnihz916lQyMzO5/vrr9WP+CVBuu+02RowYccLrdaSLtie1whdCFAN7DnlhcOKB4FtnWy9Gm1s/baq9y5cv75uQkIDJZGr+jN6Hwd69e8Xtt98e2q9fP8+8efOch76jefB4PObDaXNBQYH5vPPO29LocGcpZUKw609qk05TlT4chBA/NdXLtVaMNrd+2lp7N2/enGMymRL69OmzvSWe36dPH3Jyck74c7OysnoeTps9Hk/8kbwPxqKtgYGBQRvBUPgGBgYGbYTWrPBfa+kKtABGm1s/ba29alxc3IHO9a2c+Pj4Q7ZZVVVB8OhhTdJqFb6Usq39MIw2twHaWnuBLEVR3F7l1mZISko66MK8qqqiuLg4Csg6knJP6kVbAwODto3b7Z5SUFDwekFBQR9a8QD1KFCBLLfbPeVIbjqp3TINDAwMDJqPVtdjniyJ0k8UQohUIcR3QohtQoitQohpLV2nE4UQwiSE+FkI8UVL1+VEIISIFkJ8IoTYIYTYLoQ4o6XrdLwRQkz3vtdZQogPhRChh77rz4UQ4g0hRJEQIsvvWKwQYrkQItv7/+EH/jkIrUrhn4hE6SchbuBuKWUvYAhwRxtocwPTgBbxz24hXgCWSSkzgNNo5W0XQqQAfwMGSin7oIVVn9iytTouvAWMbnTsXmCFlLI7sMIrHzOtSuFzAhKln2xIKfOllJu8n6vRlEBKy9bq+COE6AiMBV4/1LWtASFEFHAWsABASumUUla0bK1OCGbAJoQwA2HAgXkn/+RIKb8Hyhodvhh42/v5beCS5nhWa1P4wRKlt3rl14AQIg04HVjfsjU5IcwHZnGEbml/YroAxcCbXjPW60KI8Jau1PFESpkLPAPsBfKBSinl1we/q9WQKKXM934uABKbo9DWpvDbLEKICGARcJeU8tgyPpzkCCHGAUVSyo0tXZcTiBnoD7wipTwdqKWZpvknK1679cVonV0yEC6EmNSytTrxSM2zplm8a1qbwj/uidJPRoQQFjRl/76UcnFL1+cEMBS4SAiRg2a2GymEeK9lq3Tc2Q/sl1I2zN4+QesAWjPnAn9IKYullC5gMXDmIe5pLRQKIToAeP8vao5CW5vCP+6J0k82hBACza67XUr5XEvX50QgpbxPStlRSpmG9jf+VkrZqkd+UsoCYJ8QIt17aBSwrQWrdCLYCwwRQoR53/NRtPKFaj8+BxpiMV8P/Kc5Cm1VG6+klG4hxFTgK3yJ0re2cLWON0OBa4EtQohfvMful1IubcE6GRwf7gTe9w5mdgOTW7g+xxUp5XohxCfAJjRvtJ9phaElhBAfAiOAeCHEfuAh4EngIyHETWgh4ic0y7OMjVcGBgYGbYPWZtIxMDAwMGgCQ+EbGBgYtBEMhW9gYGDQRjAUvoGBgUEbwVD4BgYGBm0EQ+EbGBgYtBEMhW9gYGDQRjAUvoFBI4QQHYUQVzVxziaE+J83FHew8yFCiO+90R0NDE4qDIVvYHAgo2g6Ts2NwGIppSfYSW9Y7hVA0A7DwKAlMRS+gYEfQohhwHPAFUKIX4QQXRtdcg3euCZCiHAhxJdCiM3ejEwNSv4z73UGBicVxrTTwMAPKeVqIcQG4B4pZZb/OW8Mm65SyhzvodFAnpRyrPd8lPd4FpB5gqpsYHDYGCN8A4MDSQd2BDkeD/hnmdoCnCeEeEoIMVxKWQngNfc4hRCRx7+qBgaHj6HwDQz8EELEo2VWcgc5XQ/oSbSllL+j2fq3APOEEHP9rrUC9uNZVwODI8Uw6RgYBJJGE3lTpZTlQgiTECJUSmkXQiQDZVLK94QQFcAUACFEHFDiTdphYHDSYIzwDQwC2YEWlzxLCBEsu9LXwDDv577Aj948BA8B87zHzwG+PO41NTA4Qox4+AYGR4AQoj8wXUp57UGuWQzc6zX5GBicNBgjfAODI0BKuQn47mAbr4DPDGVvcDJijPANDAwM2gjGCN/AwMCgjWAofAMDA4M2gqHwDQwMDNoIhsI3MDAwaCMYCt/AwMCgjWAofAMDA4M2wv8HGvCQ9T6e9NkAAAAASUVORK5CYII=\n" }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Plot measurement trajectories (training data) and compare to model simulation with optimized parameters\n", "parpe.plotting.plotTrajectoryFits(measured[start_idx], simulated[start_idx], timepoints[start_idx])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Changing optimizers - Ceres\n", "\n", "Once parPE has been built with support for different optimizers, selecting a different optimizer is quite easy.\n", "\n", "(This part of the example requires a parPE build with `PARPE_ENABLE_CERES=ON`)" ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u001B[32m[2020-06-24 17:41:41] [INF] [0:139880673687488/dweindl-ThinkPad-L480] Running with 4 MPI processes.\u001B[0m\r\n", "\u001B[32m[2020-06-24 17:41:41] [INF] [0:139880673687488/dweindl-ThinkPad-L480] Reading random initial theta 0 from /optimizationOptions/randomStarts\u001B[0m\r\n", "callbacks.cc:105 0: f: 5.323027e+02 d: 0.00e+00 g: 4.46e+03 h: 0.00e+00 s: 0.00e+00 e: 0 it: 4.13e-02 tt: 4.13e-02\r\n", "\u001B[32m[2020-06-24 17:41:41] [INF] [0:139880252290816/dweindl-ThinkPad-L480] [o0i0] iter: 0 cost: 532.303 time_iter: wall: 0.0415566s cpu: 0.0809107s time_optim: wall: 0.0415569s cpu: 0.0809107s\u001B[0m\r\n", "callbacks.cc:105 1: f:-3.344605e+02 d: 8.67e+02 g: 1.67e+02 h: 1.13e+00 s: 2.24e-04 e: 1 it: 3.72e-02 tt: 7.95e-02\r\n", "\u001B[32m[2020-06-24 17:41:41] [INF] [0:139880252290816/dweindl-ThinkPad-L480] [o0i1] iter: 1 cost: -334.461 time_iter: wall: 0.0382083s cpu: 0.0764133s time_optim: wall: 0.0797655s cpu: 0.157324s\u001B[0m\r\n", "callbacks.cc:105 2: f:-3.788412e+02 d: 4.44e+01 g: 3.85e+02 h: 3.29e-01 s: 1.28e-03 e: 5 it: 1.56e-01 tt: 2.36e-01\r\n", "\u001B[32m[2020-06-24 17:41:41] [INF] [0:139880252290816/dweindl-ThinkPad-L480] [o0i2] iter: 2 cost: -378.841 time_iter: wall: 0.156987s cpu: 0.293226s time_optim: wall: 0.236753s cpu: 0.45055s\u001B[0m\r\n", "callbacks.cc:105 3: f:-4.183630e+02 d: 3.95e+01 g: 2.30e+02 h: 3.95e-01 s: 4.06e-04 e: 1 it: 3.77e-02 tt: 2.75e-01\r\n", "\u001B[32m[2020-06-24 17:41:42] [INF] [0:139880252290816/dweindl-ThinkPad-L480] [o0i3] iter: 3 cost: -418.363 time_iter: wall: 0.0381825s cpu: 0.0691572s time_optim: wall: 0.274936s cpu: 0.519708s\u001B[0m\r\n", "callbacks.cc:105 4: f:-4.189047e+02 d: 5.42e-01 g: 2.85e+02 h: 4.76e-02 s: 5.58e-04 e: 2 it: 8.96e-02 tt: 3.65e-01\r\n", "\u001B[32m[2020-06-24 17:41:42] [INF] [0:139880252290816/dweindl-ThinkPad-L480] [o0i4] iter: 4 cost: -418.905 time_iter: wall: 0.0901106s cpu: 0.161033s time_optim: wall: 0.365047s cpu: 0.68074s\u001B[0m\r\n", "callbacks.cc:105 5: f:-4.197841e+02 d: 8.79e-01 g: 2.78e+02 h: 2.46e-02 s: 3.88e-04 e: 1 it: 3.98e-02 tt: 4.05e-01\r\n", "\u001B[32m[2020-06-24 17:41:42] [INF] [0:139880252290816/dweindl-ThinkPad-L480] [o0i5] iter: 5 cost: -419.784 time_iter: wall: 0.0402574s cpu: 0.0745627s time_optim: wall: 0.405304s cpu: 0.755303s\u001B[0m\r\n", "callbacks.cc:105 6: f:-4.207404e+02 d: 9.56e-01 g: 2.96e+02 h: 6.32e-02 s: 1.52e-03 e: 1 it: 3.93e-02 tt: 4.45e-01\r\n", "\u001B[32m[2020-06-24 17:41:42] [INF] [0:139880252290816/dweindl-ThinkPad-L480] [o0i6] iter: 6 cost: -420.74 time_iter: wall: 0.0398202s cpu: 0.0781893s time_optim: wall: 0.445125s cpu: 0.833492s\u001B[0m\r\n", "callbacks.cc:105 7: f:-4.223504e+02 d: 1.61e+00 g: 2.93e+02 h: 8.02e-02 s: 1.09e-03 e: 1 it: 3.71e-02 tt: 4.82e-01\r\n", "\u001B[32m[2020-06-24 17:41:42] [INF] [0:139880252290816/dweindl-ThinkPad-L480] [o0i7] iter: 7 cost: -422.35 time_iter: wall: 0.0375706s cpu: 0.0742174s time_optim: wall: 0.482696s cpu: 0.907709s\u001B[0m\r\n", "callbacks.cc:105 8: f:-4.252214e+02 d: 2.87e+00 g: 2.84e+02 h: 1.55e-01 s: 2.42e-03 e: 1 it: 3.77e-02 tt: 5.21e-01\r\n", "\u001B[32m[2020-06-24 17:41:42] [INF] [0:139880252290816/dweindl-ThinkPad-L480] [o0i8] iter: 8 cost: -425.221 time_iter: wall: 0.0381947s cpu: 0.0754364s time_optim: wall: 0.520891s cpu: 0.983146s\u001B[0m\r\n", "callbacks.cc:105 9: f:-4.291242e+02 d: 3.90e+00 g: 2.72e+02 h: 4.47e-01 s: 5.38e-02 e: 1 it: 3.75e-02 tt: 5.59e-01\r\n", "\u001B[32m[2020-06-24 17:41:42] [INF] [0:139880252290816/dweindl-ThinkPad-L480] [o0i9] iter: 9 cost: -429.124 time_iter: wall: 0.0379482s cpu: 0.0749299s time_optim: wall: 0.558839s cpu: 1.05808s\u001B[0m\r\n", "callbacks.cc:105 10: f:-4.358720e+02 d: 6.75e+00 g: 2.09e+02 h: 5.84e-02 s: 1.20e-01 e: 1 it: 3.65e-02 tt: 5.96e-01\r\n", "\u001B[32m[2020-06-24 17:41:42] [INF] [0:139880252290816/dweindl-ThinkPad-L480] [o0i10] iter: 10 cost: -435.872 time_iter: wall: 0.036973s cpu: 0.0729143s time_optim: wall: 0.595813s cpu: 1.13099s\u001B[0m\r\n", "callbacks.cc:105 11: f:-4.441651e+02 d: 8.29e+00 g: 3.97e+01 h: 2.26e-01 s: 7.51e-01 e: 1 it: 3.93e-02 tt: 6.35e-01\r\n", "\u001B[32m[2020-06-24 17:41:42] [INF] [0:139880252290816/dweindl-ThinkPad-L480] [o0i11] iter: 11 cost: -444.165 time_iter: wall: 0.0397685s cpu: 0.0773617s time_optim: wall: 0.635581s cpu: 1.20835s\u001B[0m\r\n", "\u001B[32m[2020-06-24 17:41:42] [INF] [0:139880252290816/dweindl-ThinkPad-L480] [o0i12] iter: 12 cost: -445.062 time_iter: wall: 0.0374097s cpu: 0.0724785s time_optim: wall: 0.672991s cpu: 1.28083s\u001B[0m\r\n", "callbacks.cc:105 12: f:-4.450617e+02 d: 8.97e-01 g: 1.17e+01 h: 6.36e-02 s: 1.00e+00 e: 1 it: 3.65e-02 tt: 6.73e-01\r\n", "callbacks.cc:105 13: f:-4.451359e+02 d: 7.42e-02 g: 1.17e+01 h: 5.40e-02 s: 1.00e+00 e: 1 it: 4.10e-02 tt: 7.14e-01\r\n", "\u001B[32m[2020-06-24 17:41:42] [INF] [0:139880252290816/dweindl-ThinkPad-L480] [o0i13] iter: 13 cost: -445.136 time_iter: wall: 0.0415508s cpu: 0.0775626s time_optim: wall: 0.714542s cpu: 1.35839s\u001B[0m\r\n", "callbacks.cc:105 14: f:-4.452398e+02 d: 1.04e-01 g: 1.16e+01 h: 5.48e-02 s: 1.00e+00 e: 1 it: 3.74e-02 tt: 7.52e-01\r\n", "\u001B[32m[2020-06-24 17:41:42] [INF] [0:139880252290816/dweindl-ThinkPad-L480] [o0i14] iter: 14 cost: -445.24 time_iter: wall: 0.0379656s cpu: 0.0741554s time_optim: wall: 0.752508s cpu: 1.43255s\u001B[0m\r\n", "callbacks.cc:105 15: f:-4.454254e+02 d: 1.86e-01 g: 1.15e+01 h: 8.01e-02 s: 6.39e-01 e: 1 it: 4.32e-02 tt: 7.96e-01\r\n", "\u001B[32m[2020-06-24 17:41:42] [INF] [0:139880252290816/dweindl-ThinkPad-L480] [o0i15] iter: 15 cost: -445.425 time_iter: wall: 0.0437119s cpu: 0.0795556s time_optim: wall: 0.79622s cpu: 1.5121s\u001B[0m\r\n", "callbacks.cc:105 16: f:-4.457760e+02 d: 3.51e-01 g: 1.08e+01 h: 1.41e-01 s: 2.84e-01 e: 1 it: 3.65e-02 tt: 8.33e-01\r\n", "\u001B[32m[2020-06-24 17:41:42] [INF] [0:139880252290816/dweindl-ThinkPad-L480] [o0i16] iter: 16 cost: -445.776 time_iter: wall: 0.036956s cpu: 0.0727817s time_optim: wall: 0.833176s cpu: 1.58489s\u001B[0m\r\n", "callbacks.cc:105 17: f:-4.460990e+02 d: 3.23e-01 g: 1.73e+01 h: 2.69e-01 s: 1.62e-01 e: 1 it: 3.91e-02 tt: 8.72e-01\r\n", "\u001B[32m[2020-06-24 17:41:42] [INF] [0:139880252290816/dweindl-ThinkPad-L480] [o0i17] iter: 17 cost: -446.099 time_iter: wall: 0.0395317s cpu: 0.0750284s time_optim: wall: 0.872708s cpu: 1.65991s\u001B[0m\r\n", "callbacks.cc:105 18: f:-4.465246e+02 d: 4.26e-01 g: 9.07e+00 h: 6.18e-02 s: 8.06e-01 e: 1 it: 3.75e-02 tt: 9.10e-01\r\n", "\u001B[32m[2020-06-24 17:41:42] [INF] [0:139880252290816/dweindl-ThinkPad-L480] [o0i18] iter: 18 cost: -446.525 time_iter: wall: 0.0380117s cpu: 0.0768193s time_optim: wall: 0.91072s cpu: 1.73673s\u001B[0m\r\n", "callbacks.cc:105 19: f:-4.469159e+02 d: 3.91e-01 g: 8.47e+00 h: 1.57e-01 s: 1.00e+00 e: 1 it: 3.74e-02 tt: 9.48e-01\r\n", "\u001B[32m[2020-06-24 17:41:42] [INF] [0:139880252290816/dweindl-ThinkPad-L480] [o0i19] iter: 19 cost: -446.916 time_iter: wall: 0.0378456s cpu: 0.0734315s time_optim: wall: 0.948566s cpu: 1.81016s\u001B[0m\r\n", "callbacks.cc:105 20: f:-4.470190e+02 d: 1.03e-01 g: 7.25e+00 h: 3.44e-02 s: 1.00e+00 e: 1 it: 3.77e-02 tt: 9.86e-01\r\n", "\u001B[32m[2020-06-24 17:41:42] [INF] [0:139880252290816/dweindl-ThinkPad-L480] [o0i20] iter: 20 cost: -447.019 time_iter: wall: 0.0381489s cpu: 0.0755738s time_optim: wall: 0.986715s cpu: 1.88574s\u001B[0m\r\n", "callbacks.cc:105 21: f:-4.470725e+02 d: 5.35e-02 g: 3.81e+00 h: 4.45e-02 s: 1.00e+00 e: 1 it: 3.64e-02 tt: 1.02e+00\r\n", "\u001B[32m[2020-06-24 17:41:42] [INF] [0:139880252290816/dweindl-ThinkPad-L480] [o0i21] iter: 21 cost: -447.072 time_iter: wall: 0.0368396s cpu: 0.0732056s time_optim: wall: 1.02356s cpu: 1.95894s\u001B[0m\r\n", "callbacks.cc:105 22: f:-4.471107e+02 d: 3.82e-02 g: 5.08e+00 h: 7.65e-02 s: 4.64e-02 e: 1 it: 3.71e-02 tt: 1.06e+00\r\n", "\u001B[32m[2020-06-24 17:41:42] [INF] [0:139880252290816/dweindl-ThinkPad-L480] [o0i22] iter: 22 cost: -447.111 time_iter: wall: 0.0375187s cpu: 0.0742591s time_optim: wall: 1.06107s cpu: 2.0332s\u001B[0m\r\n", "callbacks.cc:105 23: f:-4.471110e+02 d: 3.08e-04 g: 4.69e+00 h: 6.83e-04 s: 1.81e-03 e: 2 it: 7.50e-02 tt: 1.14e+00\r\n", "\u001B[32m[2020-06-24 17:41:42] [INF] [0:139880252290816/dweindl-ThinkPad-L480] [o0i23] iter: 23 cost: -447.111 time_iter: wall: 0.0754316s cpu: 0.152713s time_optim: wall: 1.13651s cpu: 2.18592s\u001B[0m\r\n", "callbacks.cc:105 24: f:-4.471154e+02 d: 4.41e-03 g: 6.50e+00 h: 5.26e-03 s: 9.69e-03 e: 2 it: 7.74e-02 tt: 1.21e+00\r\n", "\u001B[32m[2020-06-24 17:41:42] [INF] [0:139880252290816/dweindl-ThinkPad-L480] [o0i24] iter: 24 cost: -447.115 time_iter: wall: 0.0778265s cpu: 0.153936s time_optim: wall: 1.21433s cpu: 2.33985s\u001B[0m\r\n", "callbacks.cc:105 25: f:-4.471214e+02 d: 5.97e-03 g: 6.20e+00 h: 8.19e-03 s: 5.28e-04 e: 1 it: 3.64e-02 tt: 1.25e+00\r\n", "\u001B[32m[2020-06-24 17:41:43] [INF] [0:139880252290816/dweindl-ThinkPad-L480] [o0i25] iter: 25 cost: -447.121 time_iter: wall: 0.0368165s cpu: 0.0730412s time_optim: wall: 1.25115s cpu: 2.41289s\u001B[0m\r\n", "callbacks.cc:105 26: f:-4.471818e+02 d: 6.04e-02 g: 6.25e+00 h: 9.16e-02 s: 4.15e-03 e: 2 it: 7.55e-02 tt: 1.33e+00\r\n", "\u001B[32m[2020-06-24 17:41:43] [INF] [0:139880252290816/dweindl-ThinkPad-L480] [o0i26] iter: 26 cost: -447.182 time_iter: wall: 0.0760229s cpu: 0.14886s time_optim: wall: 1.32717s cpu: 2.56175s\u001B[0m\r\n", "callbacks.cc:105 27: f:-4.471928e+02 d: 1.10e-02 g: 6.28e+00 h: 1.63e-02 s: 1.47e-03 e: 2 it: 7.39e-02 tt: 1.40e+00\r\n", "\u001B[32m[2020-06-24 17:41:43] [INF] [0:139880252290816/dweindl-ThinkPad-L480] [o0i27] iter: 27 cost: -447.193 time_iter: wall: 0.0743093s cpu: 0.149165s time_optim: wall: 1.40148s cpu: 2.71092s\u001B[0m\r\n", "callbacks.cc:105 28: f:-4.471946e+02 d: 1.84e-03 g: 5.48e+00 h: 7.66e-03 s: 2.21e-02 e: 2 it: 7.66e-02 tt: 1.48e+00\r\n", "\u001B[32m[2020-06-24 17:41:43] [INF] [0:139880252290816/dweindl-ThinkPad-L480] [o0i28] iter: 28 cost: -447.195 time_iter: wall: 0.076984s cpu: 0.15148s time_optim: wall: 1.47847s cpu: 2.8624s\u001B[0m\r\n", "callbacks.cc:105 29: f:-4.472208e+02 d: 2.61e-02 g: 2.36e+00 h: 1.22e-02 s: 2.82e-01 e: 2 it: 7.30e-02 tt: 1.55e+00\r\n", "\u001B[32m[2020-06-24 17:41:43] [INF] [0:139880252290816/dweindl-ThinkPad-L480] [o0i29] iter: 29 cost: -447.221 time_iter: wall: 0.0734252s cpu: 0.146759s time_optim: wall: 1.55189s cpu: 3.00916s\u001B[0m\r\n", "callbacks.cc:105 30: f:-4.472269e+02 d: 6.11e-03 g: 2.56e+00 h: 3.82e-02 s: 1.00e+00 e: 1 it: 3.69e-02 tt: 1.59e+00\r\n", "\u001B[32m[2020-06-24 17:41:43] [INF] [0:139880252290816/dweindl-ThinkPad-L480] [o0i30] iter: 30 cost: -447.227 time_iter: wall: 0.037355s cpu: 0.0741047s time_optim: wall: 1.58925s cpu: 3.08326s\u001B[0m\r\n", "callbacks.cc:105 31: f:-4.472342e+02 d: 7.31e-03 g: 1.12e+00 h: 1.67e-02 s: 7.05e-01 e: 1 it: 3.68e-02 tt: 1.63e+00\r\n", "\u001B[32m[2020-06-24 17:41:43] [INF] [0:139880252290816/dweindl-ThinkPad-L480] [o0i31] iter: 31 cost: -447.234 time_iter: wall: 0.0372581s cpu: 0.0736081s time_optim: wall: 1.62651s cpu: 3.15687s\u001B[0m\r\n", "callbacks.cc:105 32: f:-4.472355e+02 d: 1.29e-03 g: 1.60e-01 h: 6.13e-03 s: 1.00e+00 e: 1 it: 3.84e-02 tt: 1.67e+00\r\n", "\u001B[32m[2020-06-24 17:41:43] [INF] [0:139880252290816/dweindl-ThinkPad-L480] [o0i32] iter: 32 cost: -447.235 time_iter: wall: 0.0388177s cpu: 0.0753357s time_optim: wall: 1.66532s cpu: 3.23221s\u001B[0m\r\n", "callbacks.cc:105 33: f:-4.472360e+02 d: 4.63e-04 g: 1.61e-01 h: 1.32e-02 s: 1.00e+00 e: 1 it: 3.70e-02 tt: 1.70e+00\r\n", "\u001B[32m[2020-06-24 17:41:43] [INF] [0:139880252290816/dweindl-ThinkPad-L480] [o0i33] iter: 33 cost: -447.236 time_iter: wall: 0.0374512s cpu: 0.0755949s time_optim: wall: 1.70277s cpu: 3.3078s\u001B[0m\r\n", "callbacks.cc:105 34: f:-4.472361e+02 d: 1.07e-04 g: 1.54e-02 h: 6.50e-03 s: 1.00e+00 e: 1 it: 3.63e-02 tt: 1.74e+00\r\n", "\u001B[32m[2020-06-24 17:41:43] [INF] [0:139880252290816/dweindl-ThinkPad-L480] [o0i34] iter: 34 cost: -447.236 time_iter: wall: 0.036703s cpu: 0.0725629s time_optim: wall: 1.73948s cpu: 3.38036s\u001B[0m\r\n", "callbacks.cc:105 35: f:-4.472361e+02 d: 1.71e-06 g: 4.67e-03 h: 8.97e-04 s: 1.00e+00 e: 1 it: 3.81e-02 tt: 1.78e+00\r\n", "\u001B[32m[2020-06-24 17:41:43] [INF] [0:139880252290816/dweindl-ThinkPad-L480] [o0i35] iter: 35 cost: -447.236 time_iter: wall: 0.0385312s cpu: 0.076953s time_optim: wall: 1.77801s cpu: 3.45732s\u001B[0m\r\n", "line_search.cc:758 Line search failed: Wolfe zoom bracket width: 4.68275e-06 too small with descent_direction_max_norm: 8.19905e-05.\r\n", "line_search_minimizer.cc:413 Terminating: Parameter tolerance reached. Relative step_norm: 0.000000e+00 <= 1.000000e-08.\r\n", "\u001B[32m[2020-06-24 17:41:43] [INF] [0:139880252290816/dweindl-ThinkPad-L480] [o0i36] Optimizer status 0, final llh: -4.472361e+02, time: wall: 1.970559 cpu: 3.852414.\u001B[0m\r\n", "\u001B[32m[2020-06-24 17:41:44] [INF] [0:139880673687488/dweindl-ThinkPad-L480] Walltime on master: 3.286791s, CPU time of all processes: 13.255544s\u001B[0m\r\n", "\u001B[32m[2020-06-24 17:41:44] [INF] [0:139880673687488/dweindl-ThinkPad-L480] Sent termination signal to workers.\u001B[0m\r\n" ] } ], "source": [ "# copy input file from above example\n", "example_data_ceres = f'{example_data_dir}/example_data_ceres.h5'\n", "!cp {example_data_dir}/example_data.h5 {example_data_ceres}\n", "\n", "# Change optimizer to CERES\n", "# NOTE: For this moment, optimizers are inconveniently selected based on numeric values, 0 is Ipopt, 1 is Ceres.\n", "!{optimization_options_py} {example_data_ceres} -s optimizer 1\n", "\n", "# Run optimization\n", "!PARPE_NO_DEBUG=1 {mpiexec} {example_binary_dir}/example_steadystate_multi -o deletemeceres/ {example_data_ceres} --mpi" ] }, { "cell_type": "code", "execution_count": 42, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": "
", "image/png": "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zjvvcPrpp/O+972PAw88kOOPP55XXul/Dwfr7qlumLu4kfJMivfVVxW0f+3WNg0lDRHpmLtzyimncM4553DnnXcC8MILL7B06VLe//73d3msu5NK9U0ZQCWNbpizZA177VpLpsDbZ7eVNFQ9JSIde+KJJ8hms1x44YVb102cOJHDDz+ca665hsmTJ7PvvvtyxRXRs9BvvPEGe+65J2effTYTJkxg0aJF7e63bt06TjjhBCZOnMiECRO46667eh2rShoFcnfmLmnkpIkjCj6mWtVTIsny+0vhnZfiPecu+8BxV3e6y5w5czjwwAN3WP/www+zYMECZs6cibtz0kkn8dRTTzFmzBgWLFjAbbfdxpQpUzrcb/ny5YwYMYLf/e53AKxZ0/vet5U0CrTo3Q2s3djMhJGFtWcAZNMpKrNpGjeopCEi3ffwww/z8MMPs//++wPRg3wLFixgzJgxjB07lilTpnS63+GHH85XvvIVLrnkEk488UQOP/zwXsekpFGgbY3ghd05laOuREQSpIsSQbHsvffeW3uqzefuXHbZZVxwwQXbrX/jjTeoqqrqcj+A5557joceeohvfvObHHXUUVs7NOwptWkUaO6SNWRSxvt3runWcbWVWdZuUklDRDp25JFHsmnTJm688cat61588UVqa2u55ZZbtnYVsnjxYpYtW7bD8cccc0y7+y1ZsoRBgwZx1lln8bWvfY3nnnuu17GqpFGgOYsb2WPnGiqy6W4dp5KGiHTFzLj33nv54he/yPe+9z0qKioYN24c1113HXV1dRxyyCFANB74r3/9a9Lp7b+Hjj76aObPn7/DfgsXLuRrX/saqVSKbDbLDTfc0PtYSzSOUZ+YNGmSz5o1q9fncXcmX/UoU/fcie9/emK3jj37lpms2bCF+y86tNdxiEj85s+fz1577VXqMEqmvfdvZrPdvd3BxVU9VYBlazexomkzE7rZngG5koaqp0RkYFDSKMDW7tC7cedUTq2qp0RkAFHSKMDcJY2YwV679qSkkdUttyL93ECupu9MT963kkYB5ixew/jhVVSXd/++gZryDJuaW9nc3FqEyESktyoqKli5cuV7LnG4OytXrqSioqJbx+nuqQLMXdLIAWOH9OjY/K5EhlWXxxmWiMRg1KhRNDQ0sHz58lKH0ucqKioYNWpUt45R0ujCqnWbWbx6A2cfMrZH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\n" }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "ceres_optimization_result_filename = 'deletemeceres/_rank00000.h5'\n", "trajectories_ceres = parpe.getCostTrajectories(ceres_optimization_result_filename)\n", "#print(repr(trajectories))\n", "ax = parpe.plotting.plotCostTrajectory(trajectories_ipopt, log=False);\n", "parpe.plotting.plotCostTrajectory(trajectories_ceres, log=False, ax=ax);\n", "ax.autoscale(True)\n", "ax.legend(['Ipopt', 'Ceres'])\n", "ax.set_title('Convergence Ipopt vs. Ceres');" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "# __Exp____ __Act______ __Err______ __RelErr___ __ID_______\n", "0: 1.00000 0.30548 -0.69452 -0.69452 p1\n", "1: 0.50000 0.30052 -0.19948 -0.39895 p2\n", "2: 0.40000 0.16337 -0.23663 -0.59158 p3\n", "3: 2.00000 1.81043 -0.18957 -0.09478 p4\n", "4: 0.10000 0.04597 -0.05403 -0.54034 p5\n", "5: 2.00000 0.16233 -1.83767 -0.91883 scaling_x1_common\n", "6: 3.00000 2.99965 -0.00035 -0.00012 offset_x2_batch_0\n", "7: 0.20000 0.13703 -0.06297 -0.31484 x1withsigma_sigma\n", "8: 4.00000 4.00120 0.00120 0.00030 offset_x2_batch_1\n", "\n", "Status: 0\n", "Cost: -447.236062 (expected: -0.000000)\n" ] } ], "source": [ "parpe.compare_optimization_results_to_true_parameters(ceres_optimization_result_filename)" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.5" }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": true, "sideBar": true, "skip_h1_title": false, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": false, "toc_position": { "height": "calc(100% - 180px)", "left": "10px", "top": "150px", "width": "335px" }, "toc_section_display": true, "toc_window_display": true } }, "nbformat": 4, "nbformat_minor": 2 }