From 9f878c1016ce3e03cc8709d00c56aa0d2d85a53a Mon Sep 17 00:00:00 2001 From: Janos Gabler Date: Wed, 10 Jul 2024 15:37:01 +0200 Subject: [PATCH 01/15] Cleanup (#500) --- .envs/testenv-linux.yml | 3 - .envs/testenv-others.yml | 3 - .envs/testenv-pandas.yml | 3 - CHANGES.md | 18 +- README.md | 4 +- docs/source/algorithms.md | 130 +------ docs/source/development/styleguide.md | 3 +- .../optimization/internal_optimizers.md | 1 - .../first_optimization_with_estimagic.ipynb | 2 +- .../how_to_calculate_first_derivatives.ipynb | 2 +- .../how_to_plot_derivatives.ipynb | 178 --------- .../how_to_do_bootstrap_inference.ipynb | 2 - ...to_benchmark_optimization_algorithms.ipynb | 2 +- .../optimization/how_to_use_logging.ipynb | 4 +- .../optimization/how_to_use_the_dashboard.md | 115 ------ .../how_to_guides/optimization/index.md | 1 - docs/source/index.md | 4 +- docs/source/reference_guides/index.md | 8 - environment.yml | 3 - pyproject.toml | 12 - setup.cfg | 6 - src/estimagic/__init__.py | 2 - src/estimagic/algorithms.py | 2 - src/estimagic/cli.py | 93 ----- src/estimagic/config.py | 30 -- src/estimagic/dashboard/__init__.py | 0 src/estimagic/dashboard/callbacks.py | 183 --------- src/estimagic/dashboard/colors.py | 39 -- src/estimagic/dashboard/dashboard_app.py | 299 -------------- src/estimagic/dashboard/index.html | 15 - src/estimagic/dashboard/plot_functions.py | 147 ------- src/estimagic/dashboard/run_dashboard.py | 107 ----- src/estimagic/dashboard/styles.css | 6 - src/estimagic/estimation/estimate_ml.py | 3 +- src/estimagic/estimation/estimate_msm.py | 4 +- src/estimagic/logging/read_from_database.py | 2 +- src/estimagic/logging/read_log.py | 4 +- src/estimagic/optimization/nag_optimizers.py | 2 - src/estimagic/optimization/optimize.py | 8 +- .../optimization/scipy_optimizers.py | 2 - .../optimization/simopt_optimizers.py | 365 ------------------ src/estimagic/parameters/parameter_groups.py | 123 ------ .../visualization/derivative_plot.py | 239 ------------ tests/dashboard/test_callbacks.py | 44 --- tests/dashboard/test_colors.py | 14 - tests/dashboard/test_dashboard_app.py | 197 ---------- tests/dashboard/test_run_dashboard.py | 36 -- tests/optimization/test_many_algorithms.py | 2 +- tests/parameters/test_parameter_groups.py | 121 ------ tests/visualization/test_derivative_plot.py | 104 ----- 50 files changed, 38 insertions(+), 2659 deletions(-) delete mode 100644 docs/source/how_to_guides/differentiation/how_to_plot_derivatives.ipynb delete mode 100644 docs/source/how_to_guides/optimization/how_to_use_the_dashboard.md delete mode 100644 src/estimagic/cli.py delete mode 100644 src/estimagic/dashboard/__init__.py delete mode 100644 src/estimagic/dashboard/callbacks.py delete mode 100644 src/estimagic/dashboard/colors.py delete mode 100644 src/estimagic/dashboard/dashboard_app.py delete mode 100644 src/estimagic/dashboard/index.html delete mode 100644 src/estimagic/dashboard/plot_functions.py delete mode 100644 src/estimagic/dashboard/run_dashboard.py delete mode 100644 src/estimagic/dashboard/styles.css delete mode 100644 src/estimagic/optimization/simopt_optimizers.py delete mode 100644 src/estimagic/parameters/parameter_groups.py delete mode 100644 src/estimagic/visualization/derivative_plot.py delete mode 100644 tests/dashboard/test_callbacks.py delete mode 100644 tests/dashboard/test_colors.py delete mode 100644 tests/dashboard/test_dashboard_app.py delete mode 100644 tests/dashboard/test_run_dashboard.py delete mode 100644 tests/parameters/test_parameter_groups.py delete mode 100644 tests/visualization/test_derivative_plot.py diff --git a/.envs/testenv-linux.yml b/.envs/testenv-linux.yml index 89d6e431e..79c4c0f2f 100644 --- a/.envs/testenv-linux.yml +++ b/.envs/testenv-linux.yml @@ -12,8 +12,6 @@ dependencies: - pytest-cov # tests - pytest-xdist # dev, tests - statsmodels # dev, tests - - bokeh<=2.4.3 # run, tests - - click # run, tests - cloudpickle # run, tests - joblib # run, tests - numpy<2.0 # run, tests @@ -30,7 +28,6 @@ dependencies: - Py-BOBYQA # dev, tests - fides==0.7.4 # dev, tests - kaleido # dev, tests - - simoptlib==1.0.1 # dev, tests - pandas-stubs # dev, tests - types-cffi # dev, tests - types-openpyxl # dev, tests diff --git a/.envs/testenv-others.yml b/.envs/testenv-others.yml index d26a91708..78254d69c 100644 --- a/.envs/testenv-others.yml +++ b/.envs/testenv-others.yml @@ -11,8 +11,6 @@ dependencies: - pytest-cov # tests - pytest-xdist # dev, tests - statsmodels # dev, tests - - bokeh<=2.4.3 # run, tests - - click # run, tests - cloudpickle # run, tests - joblib # run, tests - numpy<2.0 # run, tests @@ -29,7 +27,6 @@ dependencies: - Py-BOBYQA # dev, tests - fides==0.7.4 # dev, tests - kaleido # dev, tests - - simoptlib==1.0.1 # dev, tests - pandas-stubs # dev, tests - types-cffi # dev, tests - types-openpyxl # dev, tests diff --git a/.envs/testenv-pandas.yml b/.envs/testenv-pandas.yml index fac6094ac..fa1a7b642 100644 --- a/.envs/testenv-pandas.yml +++ b/.envs/testenv-pandas.yml @@ -11,8 +11,6 @@ dependencies: - pytest-cov # tests - pytest-xdist # dev, tests - statsmodels # dev, tests - - bokeh<=2.4.3 # run, tests - - click # run, tests - cloudpickle # run, tests - joblib # run, tests - numpy<2.0 # run, tests @@ -28,7 +26,6 @@ dependencies: - Py-BOBYQA # dev, tests - fides==0.7.4 # dev, tests - kaleido # dev, tests - - simoptlib==1.0.1 # dev, tests - types-cffi # dev, tests - types-openpyxl # dev, tests - -e ../ diff --git a/CHANGES.md b/CHANGES.md index 1c6d797ba..86ff24dfd 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -5,7 +5,23 @@ chronological order. We follow [semantic versioning](https://semver.org/) and al releases are available on [Anaconda.org](https://anaconda.org/OpenSourceEconomics/estimagic). Following the [scientific python guidelines](https://scientific-python.org/specs/spec-0000/) -we drop the official support for Python 3.8. +we drop the official support for Python 3.9. + + +## 0.5.0 + +This is a major release with several breaking changes and deprecations. On a high level, +the major changes are: + +- Implement EP-02: Static typing +- Implement EP-03: Alignment with SciPy +- Rename the package from `estimagic` to `optimagic` (while keeping the `estimagic` + namespace for the estimation capabilities). + +### Breaking changes + +- {gh}`500` removes the dashboard, the support for simopt optimizers and the + `derivative_plot` ({ghuser}`janosg`) ## 0.4.6 diff --git a/README.md b/README.md index 7ee02556c..6e9f2fd51 100644 --- a/README.md +++ b/README.md @@ -28,8 +28,8 @@ provides functionality to perform statistical inference on estimated parameters. - The complete history of parameters and function evaluations can be saved in a database for maximum reproducibility. - Painless and efficient multistart optimization. -- The progress of the optimization is displayed in real time via an interactive - dashboard. +- The progress of the optimization can be displayed in `criterion_plot` and + `params_plot` while the optimization is still running. ### Estimation and Inference diff --git a/docs/source/algorithms.md b/docs/source/algorithms.md index 939aa1890..0efd84fcb 100644 --- a/docs/source/algorithms.md +++ b/docs/source/algorithms.md @@ -2076,7 +2076,7 @@ To use ipopt, you need to have - `num_linear_variables`: since estimagic may reparametrize your problem and this changes the parameter problem, we do not support this option. - derivative checks - - print options. Use estimagic's dashboard to monitor your optimization. + - print options. - **convergence.relative_criterion_tolerance** (float): The algorithm @@ -3894,134 +3894,6 @@ addition to estimagic when using an NLOPT algorithm. To install nlopt run 10 * (number of parameters + 1). ``` -## The SimOpt Optimizers (simopt) - -estimagic supports the following [SimOpt](https://github.com/simopt-admin/simopt) -algorithms. Please add the -[appropriate citations](https://github.com/simopt-admin/simopt) in addition to estimagic -when using a SimOpt algorithm. To install simopt run `pip install simoptlib==1.0.1`. - -```{eval-rst} -.. dropdown:: simopt_adam - - .. code-block:: - - "simopt_adam" - - Minimize a scalar function using the ADAM algorithm from SimOpt. - - - **stopping_max_iterations** (int): If the maximum number of iterations is reached, - the optimization stops, but we do not count this as convergence. - - **crn_across_solns** (bool): Use CRN across solutions? Default True. - - **r** (int): Number of replications taken at each solution. Default 1. - - **beta_1** (float): Exponential decay of the rate for the first moment estimates. - Default 0.9. - - **beta_2** (float): Exponential decay rate for the second-moment estimates. - Default 0.999. - - **alpha** (float): Step size. Default 1.0. - - **epsilon** (float): A small value to prevent zero-division. Default 10e-8. - - **sensitivity** (float): Shrinking scale for variable bounds. Default 10e-7. -``` - -```{eval-rst} -.. dropdown:: simopt_astrodf - - .. code-block:: - - "simopt_astrodf" - - Minimize a scalar function using the ASTRODF algorithm from SimOpt. - - - **stopping_max_iterations** (int): If the maximum number of iterations is reached, - the optimization stops, but we do not count this as convergence. - - **bounds_padding** (float): Subtract (add) this value of the bounds which will be - used by ASTRODF internally. Default 1e-8. - - **crn_across_solns** (bool): Use CRN across solutions? Default True. - - **delta_max** (float): Maximum value of the trust-region radius. Default 50.0 - - **eta_1** (float): Threshhold for a successful iteration. Default 0.1. - - **eta_2** (float): Threshhold for a very successful iteration. Default 0.5. - - **gamma_1** (float): Very successful step trust-region radius increase. Default - 2.0. - - **gamma_2** (float): Unsuccessful step trust-region radius decrease. Default 0.5. - - **w** (float): Trust-region radius rate of shrinkage in contracation loop. Default - 0.85. - - **mu** (int): Trust-region radius ratio upper bound in contraction loop. Default - 1000. - - **beta** (int): Trust-region radius ratio lower bound in contraction loop. Default - 10. - - **lambda_min** (int): Minimum sample size value. Default 8. - - **simple_solve** (bool): Solve subproblem with Cauchy point (rough approximate)? - Default False. - - **criticality_select** (bool): Skip contraction loop if not near critical - region? Default True. - - **criticality_threshold** (float): Threshold on gradient norm indicating - near-critical region. Default 0.1. - - .. note:: - To get more accurate results in the case of bounds we revert the subtraction of - a large value from the bounds that is done internally in simopt. - Since the algorithm is numerically instable in the case of binding bounds - without this substraction, we subtract a (small) value defined by - ``bounds_padding``. See the ASTRODF `source code - `_ for details. - -``` - -```{eval-rst} -.. dropdown:: simopt_spsa - - .. code-block:: - - "simopt_spsa" - - Minimize a scalar function using the SPSA algorithm from SimOpt. - - - **stopping_max_iterations** (int): If the maximum number of iterations is reached, - the optimization stops, but we do not count this as convergence. - - **crn_across_solns** (bool): Use CRN across solutions? Default True. - - **alpha** (float): Non-negative coefficient in the SPSA gain sequecence ak. - Default 0.602. - - **gamma** (float): Non-negative coefficient in the SPSA gain sequence ck. Default - 0.101. - - **step** (float): Initial desired magnitude of change in the theta elements. - Default 0.5. - - **gavg** (int): Averaged SP gradients used per iteration. Default 1. - - **n_reps** (int): Number of replications takes at each solution. Default 2. - - **n_loss** (int): Number of loss function evaluations used in this gain - calculation. Default 2. - - **eval_pct** (float): Percentage of the expected number of loss evaluations per - run. Default 2/3. - - **iter_pct** (float): Percentage of the maximum expected number of iterations. - Default 0.1. -``` - -```{eval-rst} -.. dropdown:: simopt_strong - - .. code-block:: - - "simopt_strong" - - Minimize a scalar function using the STRONG algorithm from SimOpt. - - - **stopping_max_iterations** (int): If the maximum number of iterations is reached, - the optimization stops, but we do not count this as convergence. - - **crn_across_solns** (bool): Use CRN across solutions? Default True. - - **n0** (int): Initial sample size Default 10. - - **n_r** (int): Number of replications taken at each solution. Default 1. - - **sensitivity** (float): Shrinking scale for VarBds. Default 10e-7. - - **delta_threshold** (float): Maximum value of the radius. Default 1.2. - - **delta_T** (float): Initial size of trust region. Default 2.0. - - **eta_0** (float): Constant for accepting. Default 0.01. - - **eta_1** (float): Constant for more confident accepting. Default 0.3. - - **gamma_1** (float): Constant for shrinking the trust region. Default 0.9. - - **gamma_2** (float): Constant for expanding the trust region. Default 1.11. - - **lambda** (int): Magnifying factor for n_r inside the finite difference function. - Default 2. - - **lambda_2** (float): Magnifying factor for n_r in stage I and stage II. Default - 1.01. -``` - ## References ```{eval-rst} diff --git a/docs/source/development/styleguide.md b/docs/source/development/styleguide.md index 398b1f79a..a7054487e 100644 --- a/docs/source/development/styleguide.md +++ b/docs/source/development/styleguide.md @@ -45,13 +45,12 @@ Your contribution should fulfill the criteria provided below. are in doubt. Example: ```python - def ordered_logit(formula, data, dashboard=False): + def ordered_logit(formula, data): """Estimate an ordered probit model with maximum likelihood. Args: formula (str): A patsy formula. data (str): A pandas DataFrame. - dashboard (bool): Switch on the dashboard. Returns: res: optimization result. diff --git a/docs/source/explanations/optimization/internal_optimizers.md b/docs/source/explanations/optimization/internal_optimizers.md index eb72ecb4a..8c7a6c158 100644 --- a/docs/source/explanations/optimization/internal_optimizers.md +++ b/docs/source/explanations/optimization/internal_optimizers.md @@ -11,7 +11,6 @@ The advantages of using the algorithm with estimagic over using it directly are: - estimagic turns an unconstrained optimizer into constrained ones. - You can use logging. -- You get a real time dashboard to monitor your optimization. - You get great error handling for exceptions in the criterion function or gradient. - You get a parallelized and customizable numerical gradient if the user did not provide a closed form gradient. diff --git a/docs/source/getting_started/first_optimization_with_estimagic.ipynb b/docs/source/getting_started/first_optimization_with_estimagic.ipynb index 4e2f95677..a4435f91d 100644 --- a/docs/source/getting_started/first_optimization_with_estimagic.ipynb +++ b/docs/source/getting_started/first_optimization_with_estimagic.ipynb @@ -640,7 +640,7 @@ "source": [ "For more information on what you can do with the log file and LogReader object, check out [the logging tutorial](../how_to_guides/optimization/how_to_use_logging.ipynb)\n", "\n", - "The persistent log file is always instantly synchronized when the optimizer tries a new parameter vector. This is very handy if an optimization has to be aborted and you want to extract the current status. It is also used by the [estimagic dashboard](../how_to_guides/optimization/how_to_use_the_dashboard.md). " + "The persistent log file is always instantly synchronized when the optimizer tries a new parameter vector. This is very handy if an optimization has to be aborted and you want to extract the current status. It can be displayed in `criterion_plot` and `params_plot`, even while the optimization is running. " ] }, { diff --git a/docs/source/how_to_guides/differentiation/how_to_calculate_first_derivatives.ipynb b/docs/source/how_to_guides/differentiation/how_to_calculate_first_derivatives.ipynb index 4ad3442b1..6398fb02c 100644 --- a/docs/source/how_to_guides/differentiation/how_to_calculate_first_derivatives.ipynb +++ b/docs/source/how_to_guides/differentiation/how_to_calculate_first_derivatives.ipynb @@ -217,7 +217,7 @@ "> For an explaination of the argument ``n_steps`` and the Richardson method, please see the API Reference and the Richardson Extrapolation explanation in the documentation.\n", "\n", "\n", - "The objects returned when ``return_info`` is ``True`` are rarely of any use directly and can be safely ignored. However, they are necessary data when using the plotting function ``derivative_plot`` as explained below. For better understanding, we print each of these additional objects once:" + "The objects returned when ``return_info`` is ``True`` are rarely of any use directly and can be safely ignored. " ] }, { diff --git a/docs/source/how_to_guides/differentiation/how_to_plot_derivatives.ipynb b/docs/source/how_to_guides/differentiation/how_to_plot_derivatives.ipynb deleted file mode 100644 index 7e245ffef..000000000 --- a/docs/source/how_to_guides/differentiation/how_to_plot_derivatives.ipynb +++ /dev/null @@ -1,178 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "8430a5c1", - "metadata": {}, - "source": [ - "# How to plot derivatives\n", - "\n", - "In this guide, we show you how to plot numerical derivatives that were calculated using estimagic's `first_derivative` function." - ] - }, - { - "cell_type": "markdown", - "id": "9d8927f1", - "metadata": {}, - "source": [ - "## Why plot your derivatives?\n", - "\n", - "In estimagic, derivatives are mainly used to help in optimization. When an optimization process is stuck, it may be helpful in the debugging procedure to examine the derivative more closely." - ] - }, - { - "cell_type": "markdown", - "id": "d155660a", - "metadata": {}, - "source": [ - "## Univariate functions\n", - "\n", - "The function ``derivative_plot`` works on the dictionary returned by ``first_derivative``. Note that this **requires** ``return_func_value`` and ``return_info`` to be set to True, **and** ``n_steps`` to be larger than 1." - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "1c033ff9", - "metadata": {}, - "outputs": [], - "source": [ - "import estimagic as em\n", - "import numpy as np" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "b8df45e8", - "metadata": {}, - "outputs": [], - "source": [ - "def sphere(params):\n", - " return params @ params" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "d3578f81", - "metadata": {}, - "outputs": [], - "source": [ - "fd = em.first_derivative(\n", - " func=sphere, params=np.zeros(1), n_steps=4, return_func_value=True, return_info=True\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "0c4f9327", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAyAAAAH0CAYAAADFQEl4AAAgAElEQVR4XuydB3RVxfbGv/TeK71KCUqRLgJKEVApFkSlyFNRrFjf3woKKKjv2VBRUcTefWChKR0EQSlSBJJQQksgvXf+a0+4IQkpt99z7v1mrSxI7pk9e377BM539uwZt7Nnz54FGwmQAAmQAAmQAAmQAAmQAAnYgYAbBYgdKHMIEiABEiABEiABEiABEiABRYAChDcCCZAACZAACZAACZAACZCA3QhQgNgNNQciARIgARIgARIgARIgARKgAOE9QAIkQAIkQAIkQAIkQAIkYDcCFCB2Q82BSIAESIAESIAESIAESIAEKEB4D5AACZAACZAACZAACZAACdiNAAWI3VBzIBIgARIgARIgARIgARIgAQoQ3gMkQAIkQAIkQAIkQAIkQAJ2I0ABYjfUHIgESIAESIAESIAESIAESIAChPcACZAACZAACZAACZAACZCA3QhQgNgNNQciARIwh8DgwYMxYcIE/Otf/1Ldr7/+ekyaNAljxowxx5zD+zz11FNIT0/Hu+++q3xZuXIlXnvtNSxduhRubm429S8+Ph7Tp0/Hnj174O/vj48++ghxcXFWGfP48eO49tprsWjRInTt2lXZXLZsGd58800kJSWhUaNGuOeee3DDDTeYNF59NnJycjB06FA899xzGD58uEl2eTEJkAAJkIDjCFCAOI49RyYBEjCCQE0BIg+bI0aMQO/evY3orb1LagqQnTt34uuvv8acOXNs7uxNN92EkJAQPPnkk5CHdxEfXl5eVhn3jjvuQHh4OF555RVlb/PmzZg8eTIeeeQR9O/fH3///Tdmz56N//73vxg2bJhRYxpj49tvv8Wrr76KVatWKVHFRgIkQAIkoH0CFCDajxE9JAGXJlBTgOgdRk0BYs/5XHLJJXj55ZeVgLNmS0hIUDaXLFlSmVER8REVFVUpSGS8119/XWV8JNtjTDPGRnFxMfr164fHHnsM48aNM8YsryEBEiABEnAwAQoQBweAw5MACZwnIJmA999/H6dOnUKLFi3w6KOP4j//+Y96sDQswRo4cCDuvPNOTJw4UXWU7//v//4Pq1evVm/By8vLcdlll+GFF17AL7/8opYEpaSkoFWrVnjiiSfUw2pDbdeuXWrMDz/8sPJ6edAdOXKkepv/zDPPNGRC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NF2nLTmDRLb/lSVYsrSNjQRIgARIQB8EKED0ESd6SQIkQAIkQAIkQAIkQAJOQYACxCnCyEmQAAmQAAmQAAmQAAmQgD4IUIDoI070kgRIgARIgARIgARIgAScggAFiFOEkZMgARIgARIgARIgARIgAX0QoADRWJwuuugiyPaUbCRAAiRAAiRAAiRAAiTgjAQoQDQWVQoQjQWE7pAACZAACZAACZAACViVAAWIVXFabowCxHKGtEACJEACJEACJEACJKBdAhQgGosNBYjGAkJ3SIAESIAESIAESIAErEqAAsSqOC03RgFiOUNaIAESIAESIAESIAES0C4BChCNxYYCRGMBoTskQAIkQAIkQAIkQAJWJUABYlWclhujALGcIS2QAAmQAAmQAAmQAAlolwAFiMZiQwGisYDQHRIgARIgARIgARIgAasSoACxKk7LjVGAWM6QFkiABEiABEiABEiABLRLQFcCJC8vD48++qii+e6779ZK9c8//8SECRPg7e1d+fmmTZsQFBSE8vJyvPDCC/j555/h5eWFe+65B+PHj7c4OmvWrMEjjzyCzz//HHFxcZX28vPz8corr+C3336Du7s7nnnmGQwdOrTe8ShALA4HDZAACZAACZAACZCA0xB47733UFRUhAcffNBp5qQbAXLq1ClMnToV3bp1Q3Jycp0CZMWKFdi8eTOee+65C4L07bff4qeffsL7778PEQc333wzXn31VVx88cVmB/TDDz/E6tWrlT0RN1UFiPjbsWNH3HvvvUrwGNMoQIyhxGtIgARIgARIgAScicCyZcvUy1xfX9/Kacn3EydOtPo0N2zYgB49esDPz0/ZfuCBBzB58mR0797damONGDEC8uzq5uambAYEBGDjxo1m2beGACkuLlbPxwMHDlQ+7N27F6+//joWLFhglk+WdtKNAMnNzcWBAwcgAD/++OM6BcgXX3yB9PR03H///RewueOOO9QN1r9/f/XZokWL1M3x5JNPQrIrM2bMwI4dO9QNOX36dPTq1atBvlu2bMGll16K2267Dc8++2ylANm/fz+efvppfP/99w3aqHoBBYhJuHgxCZAACZAACZCAnQhkZmZiyZIlOHLkCLp27YrRo0dbbWQRIL/88gveeustq9mszdDZs2cxduxY9TI6PDxcXbJr1y60adMGgYGBVhtbBMgbb7yBdu3aWWzT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ADFdyOgwCZAACZAACZAACZAACZiXAAWIeWNHz0mABEiABEiABEiABEjAdAQoQEwXMjpMAiRAAiRAAiRAAiRAAuYlQAFi3tjRcxIgARIgARIgARIgARIwHQEKENOFjA6TAAmQAAmQAAmQAAmQgHkJUICYN3b0nARIgARIgARIgARIgARMR4ACxHQho8MkQAIkQAIkQAIkQAIkYF4CFCDmjR09JwESIAESIAESIAESIAHTEaAAMV3I6DAJkAAJkAAJkAAJkAAJmJcABYh5Y0fPSYAEXBB49NFHUVlZiQcffFAbTjr6pA0cOkICJEACJBAyBChAQibUHCgJmIfAxRdfjKuuugpXXnnlCU4fOXIE5557Lj799FP079/f5YB0vNn31Kc//vGPuP766zF48GA11jVr1uDJJ5/Ef/7zH8OD2bovwzugQRIgARIgARI4RoAChJcCCZCAdgReeOEFfP7553j33XdP8O3ll1/GRx99hAULFnTos6c3+x0aNOAAT3yqra3FxIkT8corrzQLEBFgy5cvP0mY+epaW335apPnkwAJkAAJkEB7BChAeG2QAAloRyAnJwfnn3++utnu1atXs3//93//h5/97Ge45pprUFhYiEceeQTr1q1DaWkphg8frn4fMGCAOr7lzf7Bgwfxgx/8ANu2bUNERESzvUGDBmHp0qXo16+f+psInueff17ZHjVqFP70pz8hPT39JD4VFRU477zz8P777+Puu+9GZmamykoMGzYMGzZswJ///Gfs3r1b2ZXXRUi09kl+37JlC/72t7+pnw6HQ2V3xG+73Y5LL71U+ZuQkACbzYaHH35Y+f7YY4+pDJD4VlZWhr/+9a/N/sk4pa8vv/wSXbt2dWs89fX1bfZ14YUX4ttvv1X+yPiSkpIwffp0/Pa3v0V4ePhJTP7+97/jq6++wjvvvIOwsDAIo6lTp2LGjBnqJxsJkAAJkAAJOAlQgPBaIAES0JKATME655xzcMsttyj/5Ib+hz/8IVavXo2UlBTU1dXhww8/VMfExsbioYceQm5uLl566SWvBIjctMtN/dNPP62Ew7x589TNtGRcoqKiTmAkN9djxoxBRkaGmiI1cuRIdcMvgkButkUInXXWWeoG/te//jXmz58PETutMyD79+/Hvn37lJ3q6mr86le/gkw/k5/SRowYgf/+97/NGRARZE4B8t13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" - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "fig = em.derivative_plot(fd)\n", - "\n", - "fig = fig.update_layout(width=800, height=500)\n", - "fig.show(renderer=\"png\")" - ] - }, - { - "cell_type": "markdown", - "id": "37abbcc5", - "metadata": {}, - "source": [ - "### Description:\n", - "\n", - "The figure visualizes the function evaluations, the best estimate of the derivative, as well as forward, central and, backward derivative estimates. Forward and backward estimates come with bands that are calculated by applying the standard (forward/backward) formula on the smallest and largest possible steps. **These bands are not confidence intervals**, they shall merely give a rough overview as to where the true derivative may lie." - ] - }, - { - "cell_type": "markdown", - "id": "b6a0ba22", - "metadata": {}, - "source": [ - "## Multivariate functions" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "101c6d0f", - "metadata": {}, - "outputs": [], - "source": [ - "def multivariate(params):\n", - " y1 = params[0] ** 3 + params[1]\n", - " y2 = params[2] ** 2 - params[0]\n", - " return np.array([y1, y2])" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "ed0102c6", - "metadata": {}, - "outputs": [], - "source": [ - "fd = em.first_derivative(\n", - " func=multivariate,\n", - " params=np.zeros(3),\n", - " n_steps=4,\n", - " return_func_value=True,\n", - " return_info=True,\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "b9d37dd0", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA+gAAAPoCAYAAABNo9TkAAAgAElEQVR4XuydB3hUxfrG3930QhJCFxBQBBUEpAiIFKmK8sdGEURRQUAR7BVQERD0WgFRQKQrzUuVJr2D0kT6pSM9hJKe7P6fbza7bEKy2WzO7p7dvHNvnrB7pp3fnDjznu+b+Qxms9kMJhIgARIgARIgARIgARIgARIgARIgAa8SMFCge5U/GycBEiABEiABEiABEiABEiABEiABRYACnQ8CCZAACZAACZAACZAACZAACZAACeiAAAW6DgaBXSABEiABEiABEiABEiABEiABEiABCnQ+AyRAAiRAAiRAAiRAAiRAAiRAAiSgAwIU6DoYBHaBBEiABEiABEiABEiABEiABEiABCjQ+QyQAAmQAAmQAAmQAAmQAAmQAAmQgA4IUKDrYBDYBRIgARIgARIgARIgARIgARIgARKgQOczQAIkQAIkQAIkQAIkQAIkQAIkQAI6IECBroNBYBdIgARIgARIgARIgARIgARIgARIgAKdzwAJkAAJkAAJkAAJkAAJkAAJkAAJ6IAABboOBoFd0BeBFi1a4JlnnsHzzz+vOvbEE0/g2WefxWOPPaavjjrZmw8++ABxcXH44YcfVIlly5bh66+/xu+//w6DweBkLa5lO3ToEAYNGoQ9e/YgPDwcP//8M+6++27XKstW6tSpU3j00UcxceJE1KpVS11dvHgxvvvuO5w4cQJlypRBnz598OSTT+arPUd1XLt2Da1atcLHH3+Mhx56KF/1MjMJkID/EeB8od2Y+uJ8IXe/c+dOvPzyy5Bn4dNPP7UB4Xyh3bPBmkigsBGgQC9sI877zZNA9gWXiLGHH34Y9evXz7OsHjNkF+iymJgxYwY+++wzt3e3Y8eOiI6Oxvvvvw9ZrIg4DwoK0qTdF198EbGxsfjiiy9UfZs2bUL37t3xxhtvoHHjxti9ezeGDBmCL7/8Em3atHGqTWfqmDVrFr766iusWLFCvXRgIgESKLwEOF9oN/a+Nl/Inc+ePVuJ8uLFi+P+++/PItDlOucL7Z4P1kQChYkABXphGm3eq1MEsi+4nCqk40zZBbonu3rPPffg888/Vy84tEyHDx9Wdc6bN89mkRdxXqJECZtgl/a++eYb5TEg3gLOJGfqSE1NRaNGjfDWW2+hU6dOzlTLPCRAAn5KgPOFdgPra/PFqlWr8Oabb2LUqFFKqEdERNwk0DlfaPd8sCYSKEwEKNAL02jzXm8iIJbksWPH4syZM6hQoYKabP/zn/8o4WV1cW/atCl69OiBbt26qfLy+d1338XKlSuVFdVkMqk350OHDsWiRYuUy/W5c+dQqVIlvPfee0rM5ZV27dql2vzpp59s+WVib9eunbIGDxgwIK8q1PW//voLw4YNw/79+1G0aFF06dIFZ8+exfnz520u7nPmzMHw4cOxbds2VUY+z5w5U1mfv/32W5t7+CuvvIJ69eqp+xLLcmhoKFq2bKn6EhYW5rA/4iY+YsQInD592pbvtddeg9SpRZK6161bh4ULF6rqMjIyUKNGDWXZtreW7927F+3bt8fatWuVy7ujlJ86xKti3759yhOBiQRIoHAQ4HzB+cL+SZc5Q+a4W2+9Fa+++ipiYmJuEuiSn/NF4fjvA++SBLQkQIGuJU3W5VMERFzLHuX+/fsr4SkTrbhLi6Dt16+fQ4F+9epVDBw4UO1Dlvzibi2TdeXKlTF48GDl7vb9999j2rRpWL16NYoUKZInGxGX8+fPV9ZecZ2WFwVLlixRIlTEcV7pwoULag9c8+bNVX9SUlIwbtw4/Pnnn0poW/eg5yTQ5V5q166txHipUqUwfvx4jBw5EuXKlVMvLR588EHFR15aiBuiLEYcJXm5kJaWpuoUF3MpHxwcfJN7u7zkEOGeUxIGmzdvzvGa7CsXQf7RRx+p67IfXdoQVlWrVrWVSUxMRM2aNdVLk7xelOSnDmnn7bffxo4dO5wam7zGjtdJgAT0TYDzxY0Xupwvbn5W+/btq16K2+9Bt+bifKHvv232jgT0SIACXY+jwj55hECHDh3Um28RkNZ04MABdfCYuIU7sqBXq1ZNCXBrkoPJRNCKVbd06dLq6+TkZIjL3tSpU53avy6iVg6kEzEtfZMfKXvvvfc6xUMEvQh8cbsLCAhQZaROsfiLSHUk0MXSv2DBAtx5552qXHp6OqpXr676IxZ5a5IXGLKHXV48OJNELIv7nxysllMSAS0vFnJKcoCdjE9OSfiLVUIYSRJr9v/93/+plyFly5bNUkT6IIfitW3b1mGX81PHkSNHlKX+t99+U2PMRAIk4N8EOF/cEOicL25+1h0JdM4X/v3fBt4dCbiDAAW6O6iyTp8gICJPxKe4QNunOnXqQCZbRwL9qaeeymJFnjJlinIPF2u1fRIrrxzG9sgjjzjFRFyyZSEoe6lFUL7zzjtOlZNML7zwgno5YC+o5Xs5XVbc8B0JdHkhIQLVaDTa2pMXBWIplxPsrUks63LozdKlS53qV14C3alKsmW6fv26emkh9yMeA94Q6JcvX8Z9992ntiQ0adLEldtgGRIgAR8iwPnihkDnfJE/gc75wof+0NlVEtAJAQp0nQwEu+FZAuKiLkJ8woQJao+3fRJXaRGljgS6/Z50KSsCXcTrmjVrbhLoIpjFKu9skr3u4totdd1yyy3OFlP71cVaLoeX2SexdsTHxzsU6PZ70q1lRaBLWfswZXKPsl9dDl5zJuUl0F1xcb948SIaNmyoQrY98MADqhv//vuvuvfcXNxzGufs/c9PHVbvCPEOcPaEeGd4MQ8JkID+CHC+yHpmCeeL/Al0zhf6+5tmj0hA7wQo0PU+QuyfWwiYzWblwi2HjWUXz2KdzWsPursE+vLly/H6669DrDUSQmzMmDFO378c8la+fPmb9sD17t1b1eHIgu6tBZcrLu7iti98xGPB6rYuHgLixi9u/jkdEif7R3Nzl7cCzk8dcu6AvNiRFzMNGjRweoyYkQRIwPcIcL7Qh0DX03yR/Sl25OLO+cL3/ubZYxLwNgEKdG+PANv3GoHHHntMheiydwm3hu/Kaw+6OwR6XFycCh0mglp+y48cgib9lCSHrslPbrG3xZVehKiIfNm/bS0jh8aJoNWjQHd18MW9vGfPnurHmoSbxFyXly7WJCJ+7ty5al++JDk4T1JISEiOTTtThxTcvn27OnVfPAnktH4mEiAB/ybA+eKGi7u3Xui6+oS5a76w748jgc75wtWRYzkSKLwEKNAL79gX+juX09LfeOMNdRp3s2bN1GnsIu7+97//KTdxT7u4y35vCYf2yy+/qL3gEtJH+iP9lL3lYh2eNGmSCqUmJ6JnTxIqTk6jl8PSxEVfxLy4dotgF2uvPwn0l156SR2EZ+9hIIfXde3aVY2p7AuX0HVykNygQYPUyfOSZH+/hIibPHlyjs+/M3VIQXH1l/B8W7Zssb0MKfR/UARAAn5MgPOF7wp0d80Xzgp0zhd+/B8G3hoJuIkABbqbwLJa3yAgp6TLQV8izuX07169eilBK3ucPSnQ5QT1999/X52kbm+Rfe6555QQFaEtodMk3Nro0aNzhSt718W6cfDgQURFRakD8MRVXsKB+ZNAl1Pk5YXFxo0bs8Rklz3tcir/0aNHVbg4cfsXhpLEhV22L0jYOPuD77LDdFSHNa+8CJC46tIHJhIggcJBgPOFJQ66r1nQ3TlfWJ98RxZ0zheF478PvEsS0JIABbqWNFkXCbiRQP369dX+8tatW7uxFd+oOiEhQR0Q9+GHH0JO1HcmHTp0SHkXSCg8iVPvahLxL2Mgh+U5GwLP1bZYjgRIgARcIcD54gY1zheuPEEsQwIk4E0CFOjepM+2Cw0BsfS+8sorOd5vREQE1q9f75DFiRMn0LlzZ6xduxaBgYFe5yYHtckCMLckFgvZ3+/ONHHiROXyv2TJklz3lNu3L+HhhJ/Eqy9IkgMEMzIyHHoyFKR+liUBEijcBDhfaD/+nC+0Z8oaSYAE3EeAAt19bFkzCdgISJgVCQ+WU5L95vkJp6YHrHKq8enTp3PtSsmSJXPcJ69l36UP1jjkVapU0bLqXOuSGOwS3k1cFmXrABMJkAAJaE2A84XWRAHOF9ozZY0kQALuI0CB7j62rJkESIAESIAESIAESIAESIAESIAEnCZAge40KmYkARIgARIgARIgARIgARIgARIgAfcRoEB3H1vWTAIkQAIkQAIkQAIkQAIkQAIkQAJOE6BAdxoVM5IACZAACZAACZAACZAACZAACZCA+whQoLuPrUs133HHHZBwUEwkQAIkQAIk4IgA5ws+HyRAAiRAAiTgfwQo0HU2plxw6WxA2B0SIAES0CkBzhc6HRh2iwRIgARIgAQKQIACvQDw3FGUCy53UGWdJEACJOB/BDhf+N+Y8o5IgARIgARIgAJdZ88AF1w6GxB2hwRIgAR0SoDzhU4Hht0iARIgARIggQIQoEAvADx3FOWCyx1UWScJkAAJ+B8Bzhf+N6a8IxIgARIgARKgQNfZM8AFl84GhN0hARIgAZ0S4Hyh04Fht0iABEiABEigAAQo0AsAzx1FueByB1XWSQIkQAL+R4Dzhf+NKe+IBEiABEiABCjQdfYMcMGlswFhd0iABEhApwQ4X+h0YNgtEiABEiABEigAAQr0AsBzR1EuuNxBlXWSAAmQgP8R4Hzhf2PKOyIBEiABEiABCnSdPQNccOlsQNgdEiABEtApAc4XOh0YdosESIAESMBjBH788UekpKSgX79+HmvT3Q1RoLubcD7r54Irn8CYnQRIgAQKKQHOF4V04HnbJEAChY7A4sWL8cYbbyA0NNR27/K5W7dumrNYt24d6tati7CwMFX3q6++iu7du6NOnTqatfXwww/jzJkzMBgMqs6IiAisX7/epfq1EOipqanYtGkTmjZtqvrwzz//4JtvvsG4ceNc6lNBC1GgF5SgxuW54NIYKKsjARJwO4Fjx47h8ccfx86dO1VbFStWxH//+1/UqlXL7W0X5ga0mi9k3GT8ZBwltWnTBj/88IMaRyYSIAESIAHnCMTHx2PevHnqv6Uy/7Vv3965gk7kEoG+aNEijBo1yoncrmcxm83o0KEDxo4di9jYWFXRrl27cPvttyMyMtL1irOVFIH+7bffokqVKgWuUwuBvnr1asjPxx9/rPqTlJSEAwcOeG0dQ4Fe4MdC2wq0WnBp2yvWRgIkQAK5E3jsscfUosQ+NWvWDKtWrSI2NxLQar548MEH1cJE0hPt26HpYx8gImEvnunZFSHBIW68A1ZNAiRAAv5BQMR5pUqVIL+tSct5MDeB/sUXX6Bo0aLo0aOHavb48ePo3bs3JL+kJk2a4Pnnn1fW6YsXL6J27dr46KOP1LXr169j8ODB2LhxIzIyMvDhhx/i77//xuTJk1G5cmVER0dj6tSpeOGFF9CrVy/Ur1/fVmbbtm0wGo3o3LkzevbsqeoToXz16lXVB+GQmJiITz75BPfcc89Ng5yTQJf+yfcbNmxAcHCwKvPTTz/hxIkTqh7p65o1a5CWlqaE85dffomgoCDVrtXFPS8eOdVx5MgR5SVw5coVlClTBi+++CLKly8PqWvatGmqH7Ke+c9//qPuv0KFChgyZAhuvfXWPBm7+nRToLtKzk3ltFpwual7rJYESIAEbiIgiwOZjB/s8gI2L5yDpKtXVB55E8/kPgJazRdWF8NbqlRFRFgUatd5CPUat0MR83XUvisMdRs0cN9NsGYSIAES8AMCYnkVEZk9ibAToV7Q5KpAr1atGvr374+XXnpJiXCxjr/33nu47777lCAPCQnBBx98AJPJBHHzFiv5Aw88gPnz59ss6PYCXfKKcH/nnXeQkJCgxLu8ABBhLUJZBP2CBQsQExODFStW4Oeff1bfZU+5WdDFlf65556DvDiWJP2VturVq4ft27ejRo0a6vuuXbsqt3tru84K9NzqmDlzJvbu3WuzoItnmVWgnzx5El26dFFiXUT5kiVLMHLkSHWf8pLCEWNXx50C3VVybiqn1YLLTd1jtSRAAiRwE4Fqderi8T6DERoUgcG92iAtJYUC3QPPiVbzhVWgd+7QGb/O+lX1vMId96DT8wNR6pZKuMV4Bg+2rotSpcp44K7YBAmQAAn4HoHcBLoIVBGSBU057UEXS7eIRUcWdBGPsqfc6q4+aNAgZdEW4Xvvvfcq7ykR3PbJkUCXMmLFjoqKUkWWLl2qtrTJtigR6LKv3OomLhZx2T4l7eck0O33oDdq1Ei578+ePRtbt27F559/jrNnz6Jjx46qPes8Za1HrOdy3/KCID8WdPt+2NfhSKBPmDAB//77LwYMGGAr/sgjjygBf/fddyuBnhtjV8edAt1Vcm4qp9WCy03dY7UkQAIkkIXA5LU7cP5YGs5eO45LF09j2mfvKYEub8AnTpxIWm4koNV8IYvH3bt24NlXv8faVfOw+LcxSE68DmNAAJq26YrW7XsiIsiIqiWuoGXbNspiwEQCJEACJHCDgF4s6LL/vU+fPjYXdxGPe/bssQlc6afs+5ataWJFl2vZU24CXepq0KBBljJiaRbPARHpIpSTk5OVxV5SXFwc2rZti82bN+co0HPag37t2jW0atUKa9euVRbrc+fOKYu/7AkfPXq0alvmIHGjf/rpp5VrvyOBbs/DUR2OBPqwYcNQvHhx5YVgTfJiQA7oE0t/bozF6u5qokB3lZybymm14HJT91gtCZAACSgC246exOqNp2EMMSM6JhCnT51C/JUr2L1gKu6pXl29QRcXNyb3EdBqvpDtCZ999hmqVLgTV8Or4crVOMyf/jV2bFmmOh9drCSe6vYe7q7VGEVNcWhQrzTuqm5xM2QiARIgARKA2uYlB2vKPmZrkhPBred7FJRRbi7uX331lXJLt4pHceEW13XrHnQRj3IiuTVZBbqIx5o1ayrLr9Uabs3TuHFjda6M1epudXEXQS97v0U8W63u2S3o9uHOXBHo0gd5wSDi+/vvv8fAgQOVAB4+fLja0y4eAIGBgWrOKlGixE0C3REPR3XMmjVLcbJa/+1d3OUkd3lR4MiCnhtjV8edAt1Vcm4qp9WCy03dY7UkQAIkgO8WbEbKNaBIsUCEhgRkIfJ0o+oICQoiJQ8QcMd8cfjgfmzYcByXjMVwaO82zJw0FHHnTqu7EYH+ZLd3ERNbEhWCz6BVuyaIKsKXMB4YajZBAiTgAwREpM+dO9d2irtYqbVKuQn0OXPmKBfw7777TjUlAlYOcHNGoL/99tvKTfzdd99Ve9DlgLdixYqhXbt26iA5CbUmKfsedHkh8P7779v2oIvHnLh8Zz9N3VWB/vvvvyvX/YMHD6rfkqSvMufJiwgRy/KCIScLuiMejupYvny52is/adIk1Z69QJdD6mTP+5QpU9RLGHkpISHY5FR96x50CnStnnSd1uOOBZdOb5XdIgES8DECs7fuwYl9yTBEp6NoTM6ne1Oge25Q3TVfmGHGqiXLse9sOBLSjVixaCJWLpqE9LRUBIeEoXX7HmjSpgsijKmoXj4dTVo099xNsyUSIAESKIQEchPocrDbm2++qfZIiyW8ZcuWyjVcRK4kRxZ0eaEgQlwEvSSxvIvQFlE8dOhQZSVfuHDhTae4i5VZYoZLTHbZIy6iWfaI51egy+Fr1i1T4eHhNld4cZMXV3p5MdCvXz/VNwl59vrrryM9PR3lypVDw4YNVZvZXdwd8XBUh5ST0+jFJf6VV15R2wDsT3GXA+9kX7y4yctBcXKKuzUUqSPGrj6qtKC7Ss5N5dy14HJTd1ktCZBAISBw8NxFzFt9SE2GxUs6DrtFge65B8Ld80Vc3AWs+H0TTmaUwcXzpzHr56E4vO9PdYMly1ZEp+4DUfGOGihuPo+mTe9EhUq3ee7m2RIJkAAJkAAJ+CkBCnSdDay7F1w6u112hwRIQOcEfli6DdcumBAWa0BkeN6u6xTonhtQT80Xu7b/hW27LuOqMUbtS5/7y5e4Hh+nXtjUe6AdHu30KqIiiqBSxHm0ad+asdM99wiwJRIgARIgAT8kQIGus0H11IJLZ7fN7pAACeiMwNK/D+LvnfEwRpgQG+vYam7fdQp0zw2kJ+eLtPQ0LF+4DIfjY3E9OQWL54zBhhWzYTabEF4kGu069GPsdM8NPVsiARIgARLwYwIU6DobXE8uuHR26+wOCZCADghcvHYdk5btgSkNiCkeiKDArIfA5dVFCvS8CGl33RvzxelTJ7BmxW6cRWmcOrYfMyYOwb/HDqibktjpHbsPQOmytzF2unbDzJpIgARIgAQKGQEKdJ0NuDcWXDpDwO6QAAl4icCktTtw4VgagouaEVUk2KVe+IJAl0NgevXqhc6dO+P555/P8T7lRFs5JEcOyAkKClJhX+QUV0lyMq2cBrt7924VhkZipNapU8clXtZCP/zwAyTMi6TbbrtNhZSR03QdJW/OF5vWr8PuQyZcQxg2rpzN2OkFGn0WJgESIAESIIEbBCjQdfY0eHPBpTMU7A4JkICHCGw5cgJrN/2rYpoXKx5aoFb1LtA3b96MTz75RIVruffee3MV6CKWFyxYgLFjx6rYqyLmJb5q9erV8dZbb6Fs2bLo37+/EunyW8KuyIm2rqQdO3aok3R//fVXyEm2Er5FTte1xmPNrU5vzxeJiQlYtmAFjiaVZux0VwaeZUiABEiABEggBwIU6Dp7LLy94NIZDnaHBEjAjQTESjxq0dZcY5q70rTeBfqhQ4dQpEgRJYYlhExuFvQXX3wR3bt3R+PGjRWGiRMn4syZMyperMSG3bBhA8LCwtQ1sa536NABzZs3V3FhRWyL6JbrEpP2vvvuc4hy9erVmDlzJr7//nuVT8LpSEiX//znPw7L6WW+YOx0V/5SWIYESIAESIAEciZAga6zJ0MvCy6dYWF3SIAENCYwa8senNifhIDoDMTkEtPclSb1LtCt9yTW8KJFi+Yq0Fu0aIHJkycrS7mktWvXqs8S+1Ss6SKqrUlipcbExKgYqiLOIyMjlQv84cOHlcgX63pERESuOCX+ardu3XD//fejRo0aGDVqFEaMGIHKlSv7hECXTjJ2uit/LSxDAiRAAiRAAjcToEDX2VNBga6zAWF3SMDPCOw/ewELVh+GwZh3THNXbt1fBHqjRo0wf/582z7wrVu3Ktdz2W/eu3dvLFmyxIZn5MiREG8EcXWvXbs2Vq1apazzkmTfet++fbF//3789ttvNyGdNm0aoqKisHz5cmVtl3rat2+Pd955B4GBgbb8Y8aMuamsvGQQjwA9pZtjpw/D4X3bVBcZO11PI8W+kAAJkAAJ6JUABbrORoYCXWcDwu6QgB8RGLN0G65fyEB4rBERTsQ0d+XW/UWgt2zZEj/99BMqVKigMIjL+fTp05VAf/LJJ7F+/XobHvmuePHieOaZZ1CzZk1UqlTJdk1c3gcOHIiHHnooV5zr1q3Dd999p9qTfexyOF1aWppqy5pyEvfibq83gW7tL2Onu/LXwzIkQAIkQAIkAFCg6+wpoEDX2YCwOyTgBwRUTPMd8TBG5i+muSu37i8CXU5579Spk9pXLmncuHE4d+4cPvzwQ9SrVw8rV65Ulm9JPXr0UHlbtWqlLOgi3uWwN2fTgAED1IF1Ivwlict7gwYNsH37dodV6H2+YOx0Z58A5iMBEiABEiCBGwQo0HX2NOh9waUzXOwOCZCAAwLnrl7H1OV/w5RmQNESQQgMMLqdly8L9PHjx6NWrVrqELh58+Zhzpw5tlPcO3bsiM8++0yJ8w8++EBZzF977TV1iru4vP/xxx9q77nsQQ8JCVF70CU824kTJ1C6dGkEB+cetk4s5//88w8+//xz5dYu7vM///wzZsyY4dMC3dp5xk53+58dGyABEiABEvAjAhToOhtMCnSdDQi7QwI+SmDSmh24cCINwTGuxzR35dZ9WaC/9NJLENd2EeOSRDCLSDcYDJBT3eUQOElXr15Ve8T/+usvZUWXcGjW097FpV1imMshcmIJF3f3CRMmOLSoSz45fG7jxo0ICAhAqVKlMHjwYFSsWNEvBLr1Juxjp/+5fiEWzPoOideuwBgQgKZtuqJ1+56ICDKiaokraNm2DYxG979QcuUZZxkSIAESIAEScCcBCnR30nWhbgp0F6CxCAmQgI3A5v+dwLrNEtMcKFY8xONkfEWgexyMGxr0xfnCPnb69YSrWDhjJLatXwCz2YzoYiXxVLf3cHetxihqikODeqVxV/UabiDHKkmABEiABEhAvwQo0HU2Nr644NIZQnaHBAolgfSMDIxe9CdSr5sRVSwQISEBXuFAge457L48X9jHTj92aDdmTPwU508fU/BEoD/Z7V3ExJZEheAzaNWuCaKKxHgOLFsiARIgARIgAS8SoED3IvycmvblBZfOULI7JFBoCMzc/DdOHkjWPKa5KwAp0F2h5loZX58v7GOnJ5oCsXbpdCybNx6pKUkIDglD6/Y90KRNF0QYU1G9fDqatLAc2MdEAiRAAiRAAv5MgAJdZ6Pr6wsuneFkd0jArwnsO3MeC9ccgcEIFC/peXf2nOBSoHvukfOX+cI+dnr8pfOYM2UE9u5cp0Aydrrnnie2RAIkQAIkoA8CFOj6GAdbL/xlwaUzrOwOCfgdgTFLtuH6RRPCYw1ui2nuCjQKdFeouVbG3+YL+9jpItBnTxmOK5fOq0P66j3QDo92ehVREUVQKeI82rRvjZBgfbyUcm30WIoESIAESIAEciZAga6zJ8PfFlw6w8vukIDPE1i86yD+2eWZmOauwKJAd4Waa2X8cb6wj52emJqBZfPGYc3SaTBlZCC8SDTadeiHeo3boYj5OmrfFYa6DRq4Bo+lSIAESIAESECnBCjQdTYw/rjg0hlidocEfJLAuavXMHXZHpjSDYgtEYQAD8Q0dwUUBbor1Fwr48/zhX3s9LOnj2DmxKlDHJ4AACAASURBVCE4fuhvBerWO+5Bp+4DULrsbbjFeAYPtq6LUqXKuAaRpUiABEiABEhAZwQo0HU2IP684NIZanaHBHyGwM+rtuPSqXQEFzUjKjJY1/2mQPfc8BSG+cIaO/26IRzb1i1g7HTPPV5siQRIQEcEFi9ejDfffBMREREwGo2IjY3FCy+8gA4dOrjcy2XLlqF169Y5ln/44Ydx5swZtcVIkrS7fv36XNtKTU3Fpk2b0LRpU5Vn8uTJSEpKQq9evVzuX/aC2dvQrGIdVkSBrrNBKQwLLp0hZ3dIQLcENh0+jvVbzngtprkrYCjQXaHmWpnCMl8wdrprzwdLkQAJ+A8BEeiLFi3CqFGj1E3t3bsXzz77LGbOnInbbrst3zd69epVdOvWDfPmzctVoH/77beoUqWKU3WvXr0a8vPxxx+r/KdPn0ZGRgZuvfVWp8o7kyl7G86U8dU8FOg6G7nCsuDSGXZ2hwR0RSAtIwPfW2OaFw9ESLB3Ypq7AoUC3RVqrpUpbPOFo9jpd9V6AE91e4+x0117lFiKBEhA5wSyC3Tp7jPPPIOePXsqq3VCQgI++ugj7NixA2FhYRg0aBDuu+8+pKenq++3bNkCsUDffffdEOH94osvqrwyj9SvXx/vv/9+FgJiQc9JoJ89exbvvPOOsq6npKSgc+fOaNGiBV599VVcuXIFZcqUUXX/+++/6nq/fv2wc+dOjBkzBiVKlMDx48dx8eJF1d6SJUtw5MgR1fcBAwaofkgaPHgw1qxZg7S0NNSqVQtffvmlype9jXbt2qmXAl988QWSk5NVeXlBEBysb09DZx41CnRnKHkwT2FbcHkQLZsiAZ8gMGPT3zh1MBkBMRmIifa9U6op0D33mBXG+YKx0z33fLElEijMBBYsWIC//vrL4whEdNapU+emdrML9H/++UeJ3zlz5iAmJkaJ8MjISLz99ts4fPgwunfvjqVLl2Lz5s2YO3cuRo4cqeo8efIkypcvr4Ry7969IfXmlHIT6MOGDVPlxfougj8uLg6lS5dWlnyx6lst6D/++GMWgd6xY0cI06pVq6o2pe/Tpk1TLxH+/PNPfPbZZ+peJG3fvh01atRQ/+7atau6F+lP9jbkJYHUO2PGDPViQF4cVK5cWVO3eo8/AJkNUqB7i3wu7RbGBZfOhoDdIQGvENj77zksWnsEhgCgeIlQr/RBi0Yp0LWg6FwdhXm+kNjpq5ZswvHUMoiPY+x0554Y5iIBEnCWgOydHjt2rLPZNcsnwvall17KUaC/9dZbKFKkiLIWy95wEbUPPfSQylu7dm2sWrUK0dHRNmHbt29fFCtWTAnxIUOG4P7777fV64xAt9+D3qhRI+Ve/+uvv2LhwoX45JNPcPvtt9vqy0ugf/DBB/j9999V/hMnTqBTp05qz7ok2avepEkTbNu27ab7Fut50aJF1X777G38/PPPylL/4YcfqnLiJfDNN9/gl19+0Ww8vFURBbq3yFOg64w8u0MC3iPw/ZJtSLiUgfBYIyLCgrzXEQ1apkDXAKKTVRRmgW5FtG/PbmzedhaXjbFg7HQnHxxmIwESyJOA3i3oInJFgPfv3x8NGzZEzZo1UalSJdt9idv4wIEDlYAXT4DRo0fj3LlzeO+999C4cWOXLejSwG+//Ybx48cry7lY7itUqJCnBf3zzz/H9OnTVf9OnTqlBLccUidJXOEbNGigXO5FrEtf9+zZow7DkxcJTz/9NHr06HFTG8OHD8d///tf20sJ2fMu3gRWS3yeg6zjDD4l0OVhkxMMJf3www85YjWZTBg6dKh6uxMUFIQ+ffoo9whJjq65MkayN0L2VMyePVsdhCAHKYjrh7hZ2Kd169apB3Hjxo1q/4WjxAWXKyPBMiTgmwR+33UQe3Uc09wVqhTorlBzrQznCws3mdv/+H0pDlyIRkKaibHTXXucWIoESEDHBHLag/7dd99BDnuT/dtiQZdT1sPDw3O9CxG9sj9cXN+lnHgJ5NfF3b7yWbNmKdEtIln+LW73ubm4yz5xcWmX5Eigi+hOTExUe+gDAwOVl4BoJxHo2dsQC/qFCxeUa7u/JZ8R6OJmIS4a9957L+SAgtwEugyevPUStxQZYDm84KuvvkL16tXVwOZ2zZWBjY+PVw+mnKIo+z5kf8ehQ4cgfzDWdP36dXVd3FEmTZpEge4KaJYhAT8jcObKVUxfvhemDCC2uH5jmruCnQLdFWqulaFAz8rt3LkzWLXsT/xrKgPGTnftmWIpEiABfRLILtDloDUR26IxnnzySWXJDgkJUXvQxUApFnaxcF+6dAmhoaHKTVwMnY888oiygAcEBKB58+ZYu3atCqGWPeW2B132t8vJ7HIQ2/79+5XhVE6XX758OaZOnaq0jqTse9CdFejSf5nbxM1fLP5dunSxWdCztyHu7WJdF2u+lBFL/Pnz59UeeV9PPiPQRegeOHBAHUggg5+bQJeHVQ4TEPcNSRMnTlQnDcppgY6u5Xb6YX4GWA5HkLc4Yr23JmlX9nzIC4MJEyZQoOcHKPOSgB8SsMQ0T0NIUaCIzmOau4KfAt0Vaq6VoUDPmdufmzdj+74kXDNEMna6a48WS5EACeiMgAh06x50s9msBPLjjz+O119/Xe1HFx0j1mc51Vy0kri7i+4QES1u7XKauwh38eiV/d+SxO18/vz56hR48T62TyLQ5UA5cTOXJJZ5OXBOrOAivqUu2Q8vbvRyqJ20KSfKHzt2DK+88gouX76c5ZA4ZwW6aD25J+lvuXLllPu+3J9Y0LO3IQfEbdiwASNGjFDCXJjISe8FiQ2vl2H3GYFuBSYDMWXKlFwFuhz1P3nyZJQtW1YVkTdD8lnerji6ltvphzm9Vcpt8OShFfcOcXOXJCECxGovhyrIgy79oIu7Xh599oMEPEtgw6Hj2LjlLIyhZhQr7nunsztLiwLdWVIFz0eBnjvDlNQULJ23DEcTSuJqwjUsnDES29YvgCxso4uVVCHZ7q7VGEVNcWhQrzTuqm45MZiJBEiABEiABLxNwO8EupwyKG+D5NRCSVu3blUn+okruqNruZ1+KG+exBUkexIxHhUVZfta3O4l5IBY7OXlwLVr19Ted/kcGxubo0CXt1jZk+xXFzd5JhIgAf8gkCJnVfz+F9ISgahivhXT3JURoEB3hZprZSjQ8+Z2/OgRrFmzHxcNJXHs0G7MmPgpzp8+pgoydnre/JiDBEiABEjA8wT8TqC3bNkSP/30kzpRUNKKFSuUOJfvcrsme8cdnX6Y17CIG8dzzz2n9n1YXevfffddNGvWTAlzSTlZ0GV/SPYkVn4K9LyI8zoJ+AaBXzf9jdM+HNPcFcoU6K5Qc60MBbrz3NauWIk9JwORYArG2qXTsWzeeKSmJCE4JAyt2/dAkzZdEGFMRfXy6WjSornzFTMnCZAACZAACWhMwO8EupxIKHsr5OADSePGjVOHDMgJh46uOXP6YU7sxVL+/PPPq/3tVjEu+apVq6b2QliT7A0Rd3mJG/h///d/uQ4jF1waP+GsjgS8QOCff8/h9zVHYQg0+3RMc1fQUaC7Qs21Mpwv8sft6rV4LF+wlrHT84eNuUmABEiABDxMwC8Euuwvr1WrFurWrYt58+ap+HfWU9zlAAE5or9evXoOr+V2+qG9yM4+NiK65dACcW1v27atw6HjHnQPP9lsjgS8ROD7xduQEOcfMc1dQUiB7go118pQoLvGjbHTXePGUiRAAiRAAp4h4BcCXY7iF/d1EeOS5FRCEely6p9YtuVUQWvK7Vpupx86iif466+/qtMLrSccWtuYMWOGemFgnyjQPfNAsxUS8BaB33cdwN5dVxAQaULRWP89BC4vvhToeRHS7joFuussGTvddXYsSQIkQAIk4F4CPifQ3YvD+7VzweX9MWAPSCA/BP6Nv4Lpf+wFMgwo6mcxzfPDwZqXAt0Vaq6V4XzhGjf7UjfFTv95CI4f/ltlufWO6ujUfSBKl70NJU0nYQ64gsZNmqFixYoFb5g1kAAJkAAJkEAuBCjQdfZocMGlswFhd0jAAYEJq/5C3Kl0v41p7srgU6C7Qs21MpwvXOOWUylnY6cnnlqNO2tUQ/v27bVrnDWRAAmQAAmQgB0BCnSdPQ5ccOlsQNgdEsiBwPpDx7BpyzkEhJkRW6zwurPn9HBQoHvuT4bzhbasnY2dHp1+CffXL8PY6driZ20kQAIkQAKZBCjQdfYocMGlswFhd0jAjkByWhp+KEQxzV0ZfAp0V6i5VobzhWvc8irF2Ol5EeJ1EiABbxCYNGkS5EeiQsmh2NnPwPJGn+zb/N///oe+ffti8eLF3u6Kz7dPga6zIeSCS2cDwu6QQCaBXzbuxr+HUhAYk4HoaFrNc3swKNA99yfD+cK9rBk73b18WTsJkIDzBK5fv44WLVpgxYoVkAOs9SbO5U4o0J0fz7xyUqDnRcjD17ng8jBwNkcCeRD4+9RZLFl3rFDGNHfl4aBAd4Waa2U4X7jGLT+lhn02BMUiyyKhSHXEx53HnCkjsHfnOlVFybIV1SFyFe+ogeLm82ja9E5UqHRbfqpnXhIgARJwisChQ4fw1ltvKcu5XhMFunYjQ4GuHUtNauKCSxOMrIQENCEwevFWJMaZEBEbgPCwQE3q9PdK9C7QR48eje+//x4BAQFqKKpWrYpZs2bdNCwShmvo0KFYuHAhgoKC0KdPH3Tt2lXli4uLw9tvv43du3cjNjYWw4YNQ506dQo0tBMnTlSui2lpaXjkkUfwzjvv2PqYW8WcLwqE3OnCq1evxp5dOxBe5G7EBxRTAn32lOG4cum8Cuda74F2eLTTq4iKKIJKEefRpn1rhATTy8ZpwMxIAjokMPXQVqw7e9jjPXvmjvvQuHTlLO2KOP/oo4/w999/4/bbb4eEl5bwzT/++CNmz56N9PR0NGzYEAMGDFDu7zt37sQvv/yCMmXKYMqUKSoM9V9//YWZM2eqekeOHIkFCxZg2bJl6vPUqVOV9VvakPrGjx+P5ORkFC9eHF9//TXKly+v2oqMjMS6deuwZcsWFc761ltvxWeffYY//vgDMTExePzxxyGhpuniXvDHhgK94Aw1rYELLk1xsjIScInAwh0HsP/vKwgokoGiRUNdqqOwFtK7QB88eDDq1aunFjeOkoh2WcCMHTsWiYmJ6Ny5M7766itUr15dWTHKli2L/v37K5Euv5cuXYrQUNeeFVnsiMiXhVRISAh69+6NJk2a4Pnnn3fYR84Xnv0rY+x0z/JmayTgTQJ6EujCYe/evfjggw8wd+5chUUs6SK4x40bh7CwMAwZMgQZGRn4+OOPlUDv2bMnnn32WfVyWf7b1aBBA2zatEnNMR06dEBSUpJ6WS0iW+awtm3bok2bNti/f78S9tHR0fj888/V/Cd1ikCXF8kjRoxQ85MkeQmwaNEiTJgwQbncv/baa0roU6AX/MmlQC84Q01r4IJLU5ysjATyReDU5SuY8cdemExAbPFgBAQY81WemQG9C3RZiDzzzDNKpDtKL774Irp3747GjRurbLIwOXPmDN59913UrVsXGzZsUIsiSbIAkgVP8+bNkZCQoKwQO3bsUNcHDRqE++67z2FbsuARC0WXLl1UPlmIvf/++3m6MnK+8M5fnLOx028xnsGDreuiVKky3ukoWyUBEnCZgN4Feq9evfDUU0+hVatW6h7j4+Px4IMPqrlHBPqrr76KtWvXKi8fSd26dVPfVa5cWQl3KSceYPL9Aw88oF5IFy1aNAuv9evXqxfHIs7l58CBA+pFtTX16NEDnTp1svVh48aN+PTTTynQXX7qbhSkQNcAopZVcMGlJU3WRQLOE/hp5V+4fJoxzZ0nlnNOvQt0sSocOXJEuQSWLl0ar7/+urIsZE9yGM/kyZOVpVySLHTks1gpxJoubs/W9MUXXyj3PqlbxLm4AYoL/OHDh5XIF+u6uB3mlsSqX61aNTz55JMqy5UrV9CsWTO10HKUOF8U9GktWHlnY6dXLXEFLdu20eWhTgUjwNIk4L8E9C7Q27dvD5k7atasaRsEmUe2bduGgwcPKuv39OnTbddGjRqFwMBAlCpVSl1v2bIlxowZo14iv/zyy2o7lyRxUZc5S5KI/mLFiikrvQh0cXuXl9zW9Nhjj+GTTz6x9UHqleu0oBf874ICveAMNa2BCy5NcbIyEsiTwLqDx7B5K2Oa5wnKyQx6F+iywJD957JQ2bp1K/r166dcBsWlzz41atQI8+fPV4sTSZL3m2++Ua7o4oK+ZMkSW3bZzycuhLIwqV27NlatWqXcAyXJvnUJOyNug7/99ttNFKdNmwaxOsgeQFkESRKLurS9fft2W36reLevQNzrZW8ik/cIOBs7vagpDg3qlWbsdO8NFVsmgXwR0LtAz269zm5BlxfHMr9Ykwh3mWPkBHjx1pJzU+RFsHiAiVv6wIED1dz17bffKqt5kSJFsHLlSuXGbhXoKSkpas60JumD1CXeY9Z5Ul5SU6Dn61HLMTMFesEZaloDBbqmOFkZCeRKIDElFWMXb0daEhBdLBDBwZZDw5gKRkDvAj373YkFXRYpYo2wT2Jd+Omnn1ChQgX1tYS2EWuECHQRy+L6Z03ynRymI67zYs2oVKmS7Zq4vMvC56GHHnIIVqwbIvplH7u4DP7888/4/fffbWXEqp49ias9BXrBnletSjN2ulYkWQ8JkEBOBHLag/7rr7+qA91EdMuhpqmpqcqqLi7u2QW6XJM95sHBwWrfuLyklj3jMofIb3F5lwPiZB4SQS5i/M0331R15ibQ5QWAzI0//PCD8hASzzF5GU2BXvBnmAK94Aw1rYECXVOcrIwEciTAmObuezB8TaCLNeDRRx9F69ats0CR/X0ilK2WAVmgnDt3Dh9++KHavy6WhaioKFXG3pIhFnQR77JgcjXJ6bhiHRfXQUeJ84WrhN1XjrHT3ceWNZNAYSaQXaALCznkTSzc4hVWv3599TJYtljlJNAlv+w9l+1Y3333nUIp3mMiqsW6Lt/LC2Xx+Dp69ChKlCiB5557Tp2FkptAl6gj8oJaTnEXi7vsZxfru/3L5cI8ZgW5dwr0gtBzQ1kuuNwAlVWSQCaBXafOYNm64zAEAsVLMAySOx4MvQt0EdZyAq3VxV0sBHI4jixOxBJRq1YtdQicLEpEKFtPcZcwNRJORsS5nKQrFnOxOoiQFpd3WaDIwkjc++SUXFn0SHi2EydOqL3uYrVwJsnCSsrKgqhixYoU6M5A01meq9fisXzBWhxPLXNz7PRyFdHpOcZO19mQsTskQAIkoCsCFOi6Gg6AAl1nA8Lu+A2B0b9vReJlxjR394DqXaDLYTgSD1YEsxwAJ6elWw/Zkdiy4touYlySHLIjIl1OwZVT3eUQOElXr15VccqlHrGiSwga62nvYoEYPny4OkROXAPF3V1C0ORlUZfyZrNZneYudd977715DhXnizwReTXDvj27sXnbWVw2xjJ2uldHgo2TAAmQgG8RoEDX2XhxwaWzAWF3fJ7Awh37cWD3NRijJKY5rebuHlC9C3R3378n6+d84UnarrXF2OmucWMpEiABEijMBCjQdTb6XHDpbEDYHZ8lcPJyPGb8sQ9mkwHFigfByJjmHhlLCnSPYFaNcL7wHOuCtsTY6QUlyPIkQAIkUHgIUKDrbKy54NLZgLA7Pklg/Io/cfnfDIQWBYpEOrf31ydvVIedpkD33KBwvvAca61aYux0rUiyHhIgARLwXwIU6DobWy64dDYg7I5PEVh74Ci2bDuPgHAzYmPpzu6NwaNA9xx1zheeY61lS4ydriVN1kUCJEAC/keAAl1nY8oFl84GhN3xCQIJmTHN0xnT3OvjRYHuuSHgfOE51u5oyXHs9EZ4qtv7iIktiQrBZ9CqXRNEFYlxRzdYJwmQAAmQgM4IUKDrbEC44NLZgLA7uicwfcMunDmcisCiGYiOotXc2wNGge65EeB84TnW7myJsdPdSZd1kwAJkIDvEaBA19mYccGlswFhd3RLYNfJM1i2/jiMgUAxxjTXzThRoHtuKDhfeI61u1tyGDu9bEV06s7Y6e4eA9ZPAiRAAnohQIGul5HI7AcXXDobEHZHlwRG/74FiZfNiIgNQHhYoC77WFg7RYHuuZHnfOE51p5qydnY6bHph3Di3DG88kpfxMTQ9d1T48N2SIAESMATBCjQPUE5H21wwZUPWMxa6AjM27EfhxnTXNfjToHuueHhfOE51p5sydnY6ZHma9i1eQaGjRhBke7JAWJbJEACJOBmAhTobgac3+q54MovMeYvDASOX4rHrJX7AJMBsSWDYDQYC8Nt++Q9UqB7btg4X3iOtTdacjZ2eknTSbRq2wClSpXxRjfZJgmQAAmQgMYEKNA1BlrQ6rjgKihBlvc3AuP++AvxZ9IZ09xHBpYC3XMDxfnCc6y92RJjp3uTPtsmARIgAc8ToED3PHOHLXLBpbMBYXe8RmDNgaPYKjHNw0yILRbqtX6w4fwRoEDPH6+C5OZ8URB6vlVWYqf/95e5OGeuiKsJ17BwxkhsW78AZrMZ0cVK4qlu7+HuWo1R1BSHBvVK467qNXzrBtlbEiABEiABGwEKdJ09DFxw6WxA2B2PE7iWnIzxi3ciPRmILhaI4OAAj/eBDbpOgALddXb5Lcn5Ir/EfD9/zx7Po2H9xxEffAuOHdqNGRM/xfnTx9SN3VWLsdN9f4R5ByRAAiQAUKDr7CnggktnA8LueJTAtPW7cOZICoJiTIxp7lHy2jVGga4dy7xq4nyRFyH/vL569WrEX7iAfxNKIcEUjLVLp2PZvPFITUlCcEgYWrfvgSZtuiDCmIrq5dPRpEVz/wTBuyIBEiABPyVAga6zgeWCS2cDwu54hMCOE//ij/UnYAgyo3gJurN7BLqbGqFAdxPYHKrlfOE51npsibHT9Tgq7BMJkAAJFJwABXrBGWpaAxdcmuJkZT5AYNSiLUiKNyMyNgBhjGnuAyPmuIsU6J4bQs4XnmOt55acjZ1eKeI82rRvjZDgED3fDvtGAiRAAoWeAAW6zh4BLrh0NiDsjtsIzNu+D4f/vg5jVAaKFuWC0W2gPVwxBbrngHO+8BxrvbfkbOz0IubrqH1XGOo2aKD3W2L/SIAESKDQEqBA19nQc8GlswFhdzQncPRiHOasPACzGShWMpgxzTUn7N0KKdA9x5/zhedY+0pLzsZOv8V4Bg+2rsvY6b4ysOwnCeiMQLVq1fDPP//orFf+0x0KdJ2NJRdcOhsQdkdTAuP++BPxZzMsMc0jgjWt2xOVnT17FleuXFFNRUdHo3Tp0p5o1qfaoED33HBxvvAca19rydnY6UHXdiAVGXj22WcRExPja7fJ/pIACbhI4MiRIxDPm8qVK7tUAwW6S9icLkSB7jQqz2TkgssznNmKZwms3n8E27ZdQEC478Y0P37sGI4dP54FXMUKFVChYkXPwtR5axTonhsgzheeY+2LLUns9KXzluFoQkmHsdOj0y9i39+L8Z9vvvXF22SfSYAEXCAwYsQI1KhRAw8//LALpQEKdJewOV2IAt1pVJ7JyAWXZzizFc8QuJKUjJ+W7ERGChBdPBDBgb4b03zLli1ITk7OAi4wMBCNGjXyDEwvtpJhMiHNZEJGhgkZJjPks+W3GWazGabM39LFt/7vfoQEBXmxt4Wnac4XhWesC3Knx48ewZo1+3HRUNJh7PRygafQsu0DiI0tUZDmWJYE/IKAafkkmP9e6/F7MbZ8FoYaTW9qV+baH3/8ETNnzkRCQgLatWuHAQMG4NixY/jggw9w7tw5lC1bFiK8y5Qpg507d2LMmDHq35Ln4sWLeOGFF/DEE09gwYIFGDx4MIoUKYKoqCh8/fXXWLZsGSIjI7Fu3TrIemfOnDm4evUqPv30U1y+fBlGoxGDBg1CkyZNVN8o0N37aFCgu5dvvmvngivfyFhApwSmrduFM0dTEBxjRlSU77mzZ8e6Zs2aHEk3bXrzRKrHIRExnW7KQLoS2jdEtskqsE1myL/lbACYYfttMBucvx0D8PYTDSnQnSdWoJycLwqEr9AVXrtiJfacDHQYOz3cmI67SifiwYdawYB8/O0XOpq8YX8noDeBPn/+fEydOhXjx49XwlpEs2xLefTRR/Huu+9C1iKzZs3C4sWLMWHCBCXQO3TooL6rVasWLl26hDZt2mDjxo0IDg7Gm2++iZYtW9os6CL+J06cqAS+VYSL6BfDRIUKFSBroOHDh6v6KdDd//RToLufcb5a4IIrX7iYWYcErDHNjUFmFPOjmOa7du1CfHx8FuLytrlOnToeGwWPiOwC3k3f/6uHmPCwAtbC4s4Q4HzhDCXmsScgsdPn/roYF4MqIz7uPOZMGYG9O9epLCXKVkTn7gNR8Y4aKGa6hEaNKqBylTsJkAQKJQG9CfTevXsr63fr1q1t47F371689957EPEuKT09Xbmty3pFDnB7//33bYJarotAHzduHG699dYcBfqBAwfw1Vdf5TjeaWlpqFevnhL+FOju/5OgQHc/43y1wAVXvnAxs84I2GKaFwtAWGigznpXsO5cv35dTXoyAUoS93Zx8crvwUo3RHamFVvcxjOt2OIqbnUXL5Alu2C3WqDSz7asjluLxxaoDhZ2jgDnC+c4MVdWAvKi8Y3XXkWjxl1xJbC4EuizpwzHlUvnYTAYUO+Bdni006uIjIhCpbCzaN2uBcLDI4iRBAoVAb0J9Mcffxwff/wxatasaRuHVatWoX///lkOrJWDbBcuXIjTp0/j888/x/Tp0235Zb/5qFGjcPvtt+co0MVaLvVZ0+bNmzF58mTb9r4///wTu3fvpkD3wF8CBboHIOenCS648kOLefVC4L9/7cORPf4f01zEuQh18QIPCQsDDEaLy3jmnmx7gW0R2gVwF9fL4Gb2IyUpEanJSeonJSUJqZmf1yH4hQAAIABJREFUU+Q7+Zx57euvBqP6LTzd3hPDx/nCE5T9tw1xWb105jxOJ5VFQpoJy+aNw5ql02DKyEB4kWi069AP9Rq3Q6Q5ETXuMKLhA439FwbvjASyEdCbQO/Zsyc6duyIVq1a2XoqFvSBAweq/eLZk1i6v/jiC0ybNi1Hgf7WW2+hRYsWWVzcU1JS0K9fP5VfXuSJC7zseb/tttvUvveGDRtSoHvoL4UC3UOgnW2GCy5nSTGfHggcuRCH31YdUHuWY0uGwGjwnT2Lst86PcOkBLZVZIuoFgu31YrtiyJbDpKxCeakTDGtxLOdwM4U0/bfSZmUpBv5lAjPzJeWkqwOg3MmnTpzBmUZfs4ZVAXOw/miwAhZAYCbY6cPxfHDFivZrVWqo9NzA1G67G0ojbNo2qIGypa7ldxIgAQ8TGD27NlKiIuLumyvk7CvJUqUQPv27fHKK68ooS3z9NGjR5WgzkugDxkyBEWLFlVlJckedHuBfvLkSTz11FMQK314eDjGjh2L0aNHK09CSTwkzr0PAAW6e/nmu3YuuPKNjAW8RGDsH3/iytkMhBUFIr0U09w5kS0HnsmpZ3YHn8nhR87pTbfTTU5MyGKBVhZqOzFts1rnJLAzLdn2VmwR0+5IwSEhCA0JRUio5XdoWBhCQkIQEhqK0NBQhMh3oaGYPOZbFCvH0HPuGIPsdXK+8ATlwtOGM7HTw4MDUDkmDq0ebY2gQEZrKDxPB+/U2wQkZvm3336LuXPnKpdzEeZyevuJEyeU6/v+/ftVXHPZZ/7JJ5/kKdAlDvrLL7+MjIwMVa+c3m4v0OV+P/vsMyxatAjFihVT1vtff/1VnQBPge7+p8EvBHpcXBzefvtt5XYRGxuLYcOG5Xhwkzy4Q4cOVXszgoKC0KdPH3Tt2lVRdraO/AyJvOn65ptvkJqaqlxS5A8mIMBxmCkuuPJDmHm9QWDVvv/hzz8vIiDChNjY0AJ3QYlssWKrEF4Wa/bNluwbIlsJa/XjWWu9iHzl5m1nWc5dTNtZoq3W6sxy9nW4Q0zLHlIR00o4K0Ft+R0qwjo0TAnsm66FWQR2VrFtzS/XQtTeVGdSl1YPIKRUOWeyeiWPs/+t53zhleFho14m4DB2evFSeLLrO6h2bxNEmeJRr2ZR1KztuUMyvYyGzZMACZCAxwj4hUCXfRQS+08ONhCRLr+XLl2qrDn2SUINyJsfcdNITExE586d1WmF1atXh7N15DYycvJh1apVbZfFxeTZZ59Vb5tKliypDmOQMAcSg9BRokD32LPPhvJJID4xCROW7soxpnl2ka1iZGdkWFzFMwW3bMhWhmz1I2LPYNmj7YZQPjYxnWl1VhZmu73Stv3UeYhtm2U6KRFpqSn5JJZ3douYDkWwskCLeL4hkuW/X1ZhLeI5LDQ403KtnZhW7EV4G41qP738GGz/tvve7rotr/pOyhuzlH/6gXt0HWbN2f/Wc77I+/llDv8l4Ch2+u131UXH5z9E8ZJlUT7gDFq0bcjY6f77KPDOSIAEvEDA5wW6WDnq1q2LDRs2IEwObQKUZVxi/zVv3jwL0hdffBHdu3dH48aWg04k3t+ZM2dU/EBHdcjBCB999BF27Nih2hg0aBDuu+++LHW3a9fO5vYhF+QlwNWrV5Xwl7Rv3z4V7kBcUyjQvfCkF4ImZb/RvHnz1J3KyeL2J3HmefvpqUhJSsDV69dx9do1XL+eiMTEFCSnpCI5JR17Ew0wJ0YhLTgRRkMGzEpcGyy/M3/ybCOXDPI3bHHjtuyR1rOYDlJW5nAEh4apHyWoM4W11eVbuXsrcR2CMPkJs/xbfRaRbXURDw1Vlm5nLdMWMS1iOPO3vZjORSznJaaVwNY4Pd2oum4FOucLjQeb1fk9gdxipwcGBaP5I8+hxSPdERFoYux0v38SeIMkQAKeJODzAl0OSRBL+OrVq23c5NRCEShy4qF9ktMKJVyAWNslrV27Vn2WgxIc1SHiXA5kEDf6w4cPK5EvFvqIiBthR7ILdNkXIqJfYhZKkn0d8vnvv/+mQPfkE+4jbclpuseOHUPFihXRtGlTx71OSwHkJzXZ8jstGbv+3IpPBw5AVJFIxBYvgejoWNxa6TbUuLcOUtNMSE4DUjPkx4hUkxHp5iCkmIOQZghCCkKQagxGuuHm/YTJQckIMAUgw2iCySgWcRHTmUI6m7u3TVhnF9qZluvcrNbusUwblVU6OCQMwWHhCMkU1Oqz9d+hYZku3zf2T1vEs7h2i8Va3MKDLSJbfRcMo9kEI0zqlUT2lLnNHYBYlsUD32KRNhsDYLZamuWa0Wj7bFafLYJbXnSIYLb9lvL23ylPA7Ol5czmbf+2647KYfm/JWX7t63flupuTvb5VXlrJru7Vt9ZK5CXNTfy9Hy0JqIzX5bq7c+P84XeRoT98QUCEjt9+YK1OJ5a5qbY6bGlyqLjcx/ijrvrMXa6Lwwm+0gCJOATBHxeoIuo6d27N5YsWWIDPnLkSCUkslsQGzVqhPnz56vDDiRt3bpV7RGXPeuO6qhdu7Y6xTA6OlqVk33rffv2VSEIvv76a/WdxBu0Cn/57qefflLhCdq2bWvrl7ivHzx40GYxk3iC2dPTTz+NQ4cO+cTDw07mRcAMpKXeENKZgtqclgyIu3Tm55FffYGrly4iMiQQkSFBKFemNBre3wRJ6elITDUjNQ1INouwDkCyORCJBhHUIUg2BiPJEIIU9TkIKYZgZBgCLRLOALWfOyXpOlJTrVbpRCTbDhpLtITKShGxnZx5KFmixXpt7/adZMlnPbQsXe5H42Qw3BDTIWHhFlGtRHSmsFYWautnO+t1Zj6xaCurtnIVD0do5veiPg1KKQuPG4fC3bAZ21uPrdezW5QNMNhErF3JbPvfpZ1M6WzRxDcKZXrwZ17N0mRmxdbvbNcs46e0uVRmd91m8La/ZlB3afNWV3nUdYPFaz3zuuV7g8UrXf5ptJRTn63fZ+Y1qpcGBsu7A+t1qU+83lVeu2uqHgOkjPzv4Zp3ICiPszY0foScro7zhdOomJEEbiKwb89ubN52FpeNsVlip0vGe+u3xv91eR3RUbGMnc5nhwRIgAQKSMDnBfq5c+fw5JNPYv369TYUIriLFy+Ol156KQseEcwinCtUqKC+X7FiBaZPn64Eem51PPPMM6hZsyYqVapkq0tc3iXu4EMPPWT7LrsF/cMPP1Tl5NRDSRI7uUGDBtizZ4+tjLi8Z08SRsEbAj1d9gubgQyz9YAuE2RfsYg8sY5lmM2Zny0hqEyQ3ybL9/I58/qNa/IdVB5redtv2ZcMyzWVR+1Nzgxtpeq12AnV/mWVz3Jd5cncw2xS/bSUVW2IKJJymfdgObHbsufZWp8lJrV1H/QNS6R1X7TlmqUBVdaUOTq27zMtmNZDyuyNi9kPLLN9tqgrJRVv2m99QzTKPm2xMFtCWyUiVYXHuiGYlUDO/Cz/lmvWz1m+V/ksgjxdrOsaJ4uYtrp3ZxPSdpZpi/u3RUwHqX/f+C3fZ/kuJMRimTabEAD5yUCAslRnINCcgUCkq98B8mNKR5DRjCAjEGgEggIAY0AgjEbZOx0IY2AADAEBCJDvAoJgDJLPQQgIDIIh0PLbKD/B8jsExuBgGI0BSnQGiMCU3wajEpsiTgOkXliuSRsBIkyN8tkotm+77+QTk94JcL7Q+wixf3onIPPtH78vxYEL0TfFTg8Nj8TDT/TB/c2fQhEkMXa63geT/SMBEtAtAZ8X6CKk6tWrh5UrVyIqKkqB7tGjBzp16qROTrdPvXr1Ut9b96ZLLEFZsImYdlSHWNDlBYDEAcwtZRfoEyZMUHVbRbgcXiftWMMT5FaP1ofEXUlKxrhZlnim1mTIw/qnBKW9BVC+UDrTzkZ4s6Exq79sTltbc/zuho+tskIqDWy+sTVWWT4teZRT7U11KIdgu7Yz1bMyQmZX0tmuWRR7poXVDINdnGdrnTdqz+wbLJbppKQkJKckK+uzhLtIUT8WYZySYvmc4wnfVgEu+STmdKa12h2WaRGe9u7cVsu0slKLmLZz97ZaqMOCIxAYHoLIgGiEhkRY9lmHWCzUSmQH53xquwEmhJhSEGJORYgpGaFIRbApBUZTMowZqTBkJCI8JAAxEaEIDTYiJNiIsJAghIcGI1IOc5R6g0KA4BAgyPLZEBSCrTt34z/fjkRSugkJ6SYM+uhjNGvWTLf/QWXH9E2A84W+x4e98x0C2WOnz/p5KI5lxk6/pWIVdOo+EOUq3snY6b4zpOwpCZCAjgj4vEAXlrLfWyzmr732mjrFXdzV//jjD7VvfPz48er0dNn/LQdoSegz6ynuYt2WGH8izh3VIXvQJcyQ7EGX8GwSc7B06dIIDg62DWV2gX7q1Cl06dIFv/zyi+0U9ypVqijXeEdJa4GelJqGqWt3KQuhTaBnGvsyHWPzcUiVi0+umKKVGTvTxG39t+07++vKLJ6Z16ROAFfl1O8b3zvbk4wMExKTkpGYnILk1FQkJ6ciSUR1SgqS5DurwE6x/NsirkVoW35bY1BbTwAXK3dGepqzzTudzxgQkKNgvtlabXH1viG2rULbIrpte62VmA5xun2D2YjAjAAYDCmITjMj2JyGQINYq9MRbDQhMNCMkEADQoMClLgODQlGeHgQIsPCEVkkAkXCw2GwiuygEOzafxDtH3scx48fV3147rnn1KGMTCTgbQKcL7w9AmzfnwjkFjtdvK0atXgKDz/ZB5GhIYyd7k+DznshARJwOwG/EOhyWvo777yDv/76S1nRP/74Y9tJ7eLmLq7tVlfzzz//XIl0cWWVU92tB8k5qkNc2ocPH64OopOY5uLuLhZyRxZ1GTmJtz5ixAgl/OTgL3Gltxf1OY2u1gI9JT0Dv6zPakF3+FRlEdN2YjlXMX1DdJuVAM8mxm1+4nk/yxKWSyzTIo6TlUiWU8RFKKcgKUW+uyGulbBOScnMa81vsWhb9kxbLNj+KKbzImk9V1186i37jTN/Kzdtcd02wBBgVG7asqXcdD0QxcsHoXuz2m4IeJZXb3mdBDxLgPOFZ3mzNf8n4Ch2emRMLB57+k21R52x0/3/WeAdkgAJaEPALwS6Nij0UYvmAv3aFfyycoudBdsioC17re3EtAjwHI90zplLenq6zbU7q5gW4Wxx8ba6flst08nKYp1ptbbPk2m1zkhP13wQlGU6053b5tpt/WzdM515MJm99dl+D7XNTTzTJTw/lmmXb0jEtRSWrQbWg7oy90hLnGrLnmjL3uhA9dmIwACj+rczKT3DhMsXUxEQZEDXltVRKirSmWLMQwIkoCMCWs8XOro1dsUHCTiOnV4HHZ8fwNjpPjiu7DIJkIDnCVCge565wxa1XnClxJ3HpHlLLYI5u3C2fU5Rrt3Jal+1xSqdPf8NkW2xaGdkaC+m5WCvLHum7Q4ay76X2n4fdVZhbRdSKzQMEqvVa0mF2soU2uo0bctp2ZaoWpmHjmWKbCWw8ymyXb2vy5dTkHHNiBq1i6J19TtcrYblSIAEvExA6/nCy7fD5v2EAGOn+8lA8jZIgAS8RoAC3Wvoc25Y6wXX8YP7ULHq3Zrfpd+J6dwIGczq4DpbGKvMsFU3RLblRG+xZNtEdqbQ1hx6AStMSExD4mUTokoGolerugWsjcVJgAS8TUDr+cLb98P2/YcAY6f7z1jyTkiABDxPgALd88wdtqj1gmv30eOoXeWOLIeH2U7vDrsRZ9reQm0Nj5Wr1Vos04FBOiPnoDsqmpmdq3imBVvFdM7Bkm0V2kEBzrmL+wKIixeSARPwaNPKuLN0CV/oMvtIAiSQBwGt5wsCJwGtCTB2utZEWR8JkEBhIECBrrNR1nrBtefMecxds19nd+lCd1wU2bIvO3tkNtk/L6eLS2x6STExMShbtiwCAwNd6Ji+i1y5koL0+ABUqhaOJ+pW03dn2TsSIIF8EdB6vshX48xMAk4ScDp2ujkJF0+uRmRMDPr37+9k7cxGAiRAAv5HgAJdZ2Oq9YLrxKV4TF6ej1Pc3ckjU2SriG9ZDj6zWrJv7Mu2HXyW6S6eUwh1V7t6YP9+nD13LkvxcmXL4vbKlV2tUnflUlIycDUuHaFFDHilbT0YnTw8Tnc3wg6RAAnkSkDr+YKoScCdBJyNnV405TgCQq/h2We7u7M7rJsESIAEdEuAAl1nQ6P1gis+KQWj5m3R7i6zW7Iz92Tb3MXlEDTrnmx1qricMh6gThjXUmQX5IbWrFlzU/HQ0FDUr1+/INXqpmxcXAoykoEmDW5B/dtu1U2/2BESIAFtCWg9X2jbO9ZGAjkTYOx0PhkkQAIk4JgABbrOnhCtF1wSB/2LORuyRlDLy11ciewbh59Zw3eJVVtOIff1lJNAF/f2Ro0a+fStXb2WitR4A0pXCsEzD9T06Xth50mABPImoPV8kXeLzEEC2hBg7HRtOLIWEiAB/yRAga6zcdV6wSUCfdyKP2E0GJQVOzggQGd37Pnu7Nq1C/Hx8VkaLl6sOKpV98092mnpGYi/lIbAYAO6tqiOkoxp7vmHii2SgBcIaD1feOEW2GQhJyCx01es2IP4oFtw7NBuzJj4Kc6fPqao3H53HXTsztjphfwR4e2TQKEkQIGus2HXesElAv2X9TrZg64T1nI43D///AOJ7S4pMjISVatWVb99LcXHpyD9mhE1a8eiVTX/2UPva+PA/pKANwhoPV944x7YJgnMnTsXO7ZuRak7HkKCORhrl07HsnnjkZqShMCgYDR/5Dm0eKQ7IgJNuKt0Ih58qBUMutk0x/EjARIgAe0JUKBrz7RANWq94KJAL9Bw6Lbw9cQ0JF02IbpkIF5iTHPdjhM7RgLuJKD1fOHOvrJuEsiLAGOn50WI1wszgR9//BEpKSno16+fJhheeOEF9OrVyyvnL02fPh0HDx7Exx9/rMm9+GMlFOg6G1WtF1wU6DobYA26c/FCCmA2o12TyqjKmOYaEGUVJOCbBLSeL3yTAnvtbwQYO93fRpT3owUBCnQtKPpOHRToOhsrrRdcFOg6G+ACdOfK1VRkXLbENH+87t0FqIlFSYAE/IGA1vOFPzDhPfgHAadjpyMJNe4wouEDjf3jxnkXJJALARHoqampePXVVzVhRAu6JhjdVgkFutvQulax1gsuCnTXxkFPpZJTMnBNYppHGfDqI/4RCk5PfNkXEvBVAlrPF77Kgf32XwLOxk4vjbNo2qIGypZjaFH/fRo8e2fLNx3H3wcveLZRAC0bVkCNKiVualcE+qlTp3Do0CGcPn0a5cuXx/Dhw3HrrZZnfvDgwZAoRWlpaahVqxa+/PJLBAUFwWw2Q8rOnDkTCQkJaNeuHQYMGAB7gT5//nyI27mI/2+//VbllTRy5EgsWLAAy5YtU5+nTp2K//3vf/joo49ybU/akjOd1q1bhy1btmDOnDmIjo7Gu+++q8qWKVMGtWvXhpwHRRf33B8vCnSP/+k5blDrBRcFus4GOJ/dibuUgowUoGmDsrjvtvL5LM3sJEAC/kxA6/nCn1nx3nybAGOn+/b4+WLv9SjQJ06cqATvLbfcon7Pnj0bv/zyi8K7fft21KhRQ/27a9eu6N69Ox5++GGI+BZhPX78eBQpUgSXL19GbGysTaAHBARg0KBBmDZtGiIiItCgQQNs2rQJISEh6NChA5KSkvD999+rFwH9+/dH27Zt0aZNm1zbE4Eu/RwxYgSaNGmi+vPaa6+p8m+88Qbi4uJUvY0bN6ZAd/CHQYGus/9qaL3gokDX2QA72R1rTPMylULQlTHNnaTGbCRQuAhoPV8ULnq8W18jkD12+rK547BhxWyYzSZExsTisaffxL31W6NIxmUc2b8M9e9vhMcee8zXbpP91QkBPQr0kydPYsiQIYqQWMbr1q2LlStXKgu1fRLredGiRZUI7927N5544gm0bt06Sx659uijjyrr+tixY1GhQgV1vVu3bsqSXrlyZTz77LNo1aqVEvTy/QMPPKAs6lJ3bu1JfQcOHMBXX31lyyIvDtavX4+oqCj13ddff40rV65QoFOg6+Sv3YluaL3gokB3ArqOstjHNO/W6h4Uj4zQUe/YFRIgAT0R0Hq+0NO9sS8kkBsBiZ2+Zs1+XDSUxKlj+zFj4hD8e+yAym4fOz064QDqN70H1avVJEwSyDcBPQp0cQt/8803bffSsmVLJbDFoj569Gjs2bMHRqMRx48fx9NPP40ePXrg8ccfV0K4Zs2sfwci0CWf7GufN2+eEuGSRo0ahcDAQJQqVUqdtC5tjBkzRlnZX375ZSxcuFBZ1XNrT/ojYYzF2i5J3Orr16+v+mZNU6ZMUe7udHHP/bGkBT3ff7LuLaD1gosC3b3jpWXtlpjmBtSqXQwtGdNcS7SsiwT8koDW84VfQuJN+S2BtStWYs/JQCSaQ7Fx5Wws/m0MkhOvM3a63464Z29MjwJdBPWwYcMUCDlIsU6dOli9erUS0ImJiUpEi7j+7LPPUKJECSXQe/bsiY4dOypLuH0Sgd6pUyccPXoUO3fuxA8//KAub9u2DePGjUN4eDi6dOmi2mjWrBn69OmjRPXAgQPV3vfc2svptPl77rlHuc3L3nRJsrf90qVLFOgOHmkKdM/+vefZmtYLLgr0PJF7PcP1hDQkxZsQXSoQL7Ws6/X+sAMkQAK+QUDr+cI37pq9JIEbBOxjp1+9egnzp3+NHVssB1rFliqLjs99iDvurodipkto1KgCKle5k/hIwCcJiPCdMGGC2ncuB8TJQW7//e9/1R70t99+GzIfvPTSSzh37pwS1lYLuuSX/eoiukUgnz17FqVLl7btQRc3eckrIv6pp55SFnXZYx4cHIxFixYpwS97yOVwOvktQt9RezkJdIndXqVKFfTt21ftge/cuTMaNmxIgU6B7jt/i1ovuCjQ9Tv2sn/o0sVUFdO8fdM7cEep4vrtLHtGAiSgOwJazxe6u0F2iAScJLBy+VIcPWHGlcDiOLR3G2ZOGoq4c6dVadmX/n9dXkd0VCwqhZ1F63YtEB7O7WNOomU2nRAQ4StJ9nKfOHFCubXLQWxy+Jrs+X799deRnp6OcuXKKfFrMBiUBV0s7XIy+9y5c5Xrefv27fHBBx9kOcXd6hIvol/Ky97zmJgYfPfdd6pNKSuiXKzr8r2j9nIS6BcuXFCnuB8+fBglS5ZE8+bNcf78eQp0CnSd/HU50Q2tF1wU6E5A90IWiWmeftmI26tH4LE6jGnuhSFgkyTg8wS0ni98HghvoFATEBGSlpCMkDKNkZQBrFg0ESsXTUJ6WipCwyPx8BN9cH/zp1CEsdML9XPCmycBXyBAF3edjZLWCy4KdH0NcHJKOq7FZSAsyoC+jGmur8Fhb0jAxwhoPV/42O2zuySQIwH72OkXz5/CrJ+H4vC+P1XeWypWQafuA1Gu4p1g7HQ+QCRAAnolQIGus5HResFFga6fAbbGNG/WsBzqVSqnn46xJyRAAj5JQOv5wichsNMkkAsBa+z068Yial/63F++xPX4OBgMRjRq8RQefrIPIkNDUDkmDq0ebY2gwCCyJAESIAFdEKBA18Uw3OiE1gsuCnTvD7CKaX7ZgFtuD0WXRjW83yH2gARIwC8IaD1f+AUU3gQJ2BGwj52ekJyExXPG5Bg7PcoUj3o1i6Jm7TrkRwIkQAJeJ0CB7vUhyNoBrRdcFOjeG2BbTPMQA55rVQOxEeHe6wxbJgES8DsCWs8XfgeIN0QCmQScjZ1ePuAMWrRtiNjYEmRHAiRAAl4jQIHuNfQ5N6z1gosC3TsDfPlyCjKuG3BvneJocfft3ukEWyUBEvBrAlrPF34NizdHAgAYO52PAQmQgC8QoEDX2ShpveCiQPfsAFtjmseUDkLPFnSV8yx9tkYChYuA1vNF4aLHuy2sBBg7vbCOPO+bBHyHAAW6zsZK6wUXBbpnBtgS0zxFNaZimpdkTHPPkGcrJFB4CWg9XxRekrzzwkhg357d2LrtDC4ZizF2emF8AHjPJKBjAhToOhscrRdcFOjuH+ArV1KQHh+AyvdEon3tu9zfIFsgARJwmcDo0aPx/fffIyAgQNVRtWpVzJo166b6TCYThg4dioULFyIoKAh9+vRB165dVb64uDi8/fbb2L17N2JjYzFs2DDUqVMwj5mJEydi0qRJSEtLwyOPPIJ33nnH1sfcblbr+cJlqCxIAj5KwAwzVi1Zjn1nw5GQbmTsdB8dR3abBPyNAAW6zkZU6wUXBbr7Bpgxzd3HljWTgLsIDB48GPXq1cPDDz/ssAkR7QsWLMDYsWORmJiIzp0746uvvkL16tXx1ltvoWzZsujfv78S6fJ76dKlCA0NdanbW7ZsUSJ/ypQpCAkJQe/evdGkSRM8//zzDuvTer5wqfMsRAJ+QCAu7gJW/L4JJzPK4OL505j18zAc3rdN3Rljp/vBAPMWSMDHCFCg62zAtF5wUaC7Z4BVTPNU4MGG5VG3Yln3NMJaSYAENCcgYvqZZ55RIt1RevHFF9G9e3c0btxYZRML95kzZ/Duu++ibt262LBhA8LCwtQ1sa536NABzZs3R0JCAj766CPs2LFDXR80aBDuu+8+h22NGDEC5cuXR5cuXVS+vXv34v3338e8efMo0DV/AlghCeROYNf2v7Bt12VcNcYwdjofFBIgAa8RoED3GvqcG6ZA19mAZOuOLaZ55VB0uZ8xzfU9WuwdCdxMoGfPnjhy5AjS09NRunRpvP7662jQoMFNGVu0aIHJkycrS7mktWvXqs9DhgxR1vTVq1fbynzxxReIiYmB1C3iPDIyUrnAHz58WIl8sa5HRETkOhxi1a9WrRqefPJJlefKlSto1qyZEvmOktbzBZ8XEiABIC09DcsXLsPh+FhcT05h7HQ+FCRAAh4nQIHuceSOG9R6wUULujYDrGKaX0xDYKgB3VvXRNFwi+WMiQRIQF8EkpPykf1lAAAgAElEQVSTlTU7e3r00UfRq1cvyHXZfx4YGIitW7eiX79+mDt3LsqUKZOlSKNGjTB//nwUK1ZMfS95v/nmG+WKLi7oS5YsseUfOXIkZM+6WOdr166NVatWITo6Wl2Xfet9+/bF/v378dtvv93Ur2nTpmHjxo2YOnUqxo0bp66LRV3a3r59uy3/8OHDbyr7008/4dChQ/oaAPaGBPyEwOlTJ7BmxW6cRWmcOrYfM/6fvTuB86neHz/+nsEwMwzGElGDa6tkJyVLBiGlf2KEQlnLjTaufcmu5EbLzZouhSjLLcqWLdW1pE2XSm6FyhiDicH4P96fft+5Y8x85zvfOd+Zc873dR6PHjLfs3w+z/cZn/P+fj7n81k4QX45/K2p3V9urCede46UkqXLCWunuyTgVAMBGwmQoNsoGFoUEnSbBUREdE3zi2dCpF79ktLiBtY0t1+EKBEC/gtoD7r2Vnfo0OGKk7Rs2VI0AY6JiTE/37hxoyxZssQk6NrTvX379tT99WclS5Y0Q+dr1aolFStWTP1Mh7yPGjVK2rRp47WQs2fPNkm/vsceFxcnCxYskPfeey/1mA0bNlx1vA6tJ0H3P/YciYAvAh9v3yb7D6bIaQmXnZvelvdXviLnks5I/gJh0uKuHhJ7V0+JzJ8iN5RJkjvatJIQCfHltOyDAAIIZCpAgm6zm4ME3T4BOXM2Wf44eVmKly0gvVnT3D6BoSQIWCigPejau966desrzqq97Zoo63vlumnv9vHjx2XEiBHm/fVNmzZJVFSU+ax3795m31atWpkedE3eIyIi/C7lihUrzORz48aN83oOq9sLvwvMgQi4XCAp6ax8sGaj/PBHGTmVGC+rl7xg3lHXLfqactK5xwipcmMDKZFyQho3jpHKVau7XITqIYBAIAVI0AOp68e5rX7gYoh79oOQcvmyxP9+3nwH/v+aV5VKpf4c4sqGAALOF9DEWmdI9wxxf+qpp8xs7foO+dy5c6V27dpmEjidoE0TZc8s7p07d5bJkyeb5Hz48OGmx3zw4MEmkdYh79rDre+e6zvoOhO7voOuy7MdOXLEvOseFhbmE96+ffvMsfqFQIUKFUjQfVJjJwRyR+DQfw7Ijh0/Zrh2eu1bWkmHrk9K0ahoqRh+TFrfHSsREZnPPZE7JeYqCCDgRAESdJtFjQQ9bwPiWdO8ys2F5R7WNM/bYHB1BAIg8Oijj8ru3btNwqwTwOls6TosXbe+ffuKDm3XZFy3adOmmSQ9JCREdFZ3nQROt8TERLNOuZ5He9HHjh2bOtu7DmnX98V1Ernk5GQz3H3+/PlZ9qjrbPGXL182s7nruevUqZNl7a1uL7K8IDsggICwdjo3AQIIBFqABD3Qwtk8v9UPXPSg+xaAP85dlDPxlySiWKg81s77kki+nZG9EEAAgcAKWN1eBLa0nB0Bdwn4unZ68fM/ynsfLpERI0aZETpsCCCAQFYCJOhZCeXy51Y/cJGgZx1Az5rmLW67XurFXJv1AeyBAAII2EDA6vbCBlWiCAg4TsDXtdPDz34hPfv1kgL5CziujhQYAQRyV4AEPXe9s7ya1Q9cJOiZk58+nSznT4ZIucqF5AHWNM/y3mQHBBCwl4DV7YW9akdpEHCOAGunOydWlBQBJwiQoNssSlY/cJGgXx3g5IuX5NTvF6RAoRDpdWdtKRpeyGZ3AcVBAAEEshawur3I+orsgQAC3gS8rZ1e6cZ6Esfa6dxACCDggwAJug9IubmL1Q9cJOhXRs+saX42RBrULyXNq1fKzdByLQQQQMBSAavbC0sLx8kQCGKBmc89J4WiG8iZENZOD+LbgKoj4LcACbrfdIE50OoHLhL0P+P055rmIsWvzS+9W9QLTPA4KwIIIJCLAla3F7lYdC6FgKsFEhISzLKMla+vKmcib2btdFdHm8ohYL2AoxJ0Xb5G16zV7dVXX81QIyUlRSZOnChr1641a9AOGDBAunXrZvb19pk/tBcuXJBXXnlF3n77bbl06ZJUrVpVJk2aJGXLlr3idNu2bZOHH35Ydu7cKaVKlfJ6KasfuII9QTdrmv+WLCEhl+W+O6pJxZLR/oSaYxBAAAHbCVjdXtiughQIARcIsHa6C4JIFRDIZQHHJOhHjx6V/v37m7Vhjx07lmmCvnz5clmzZo289tprkpSUJF26dJEZM2ZIjRo1xNtn/rjrN6RLliyRhx56SAoXLiyzZs2SgwcPyosvvph6ujNnzpjPz507J6+//joJuj/Qfh6TcCpZLiWEStWaReTuOtX9PAuHIYAAAvYUIEG3Z1woFQLpBVg7nXsCAQSyI+CYBF0T3W+//VaSk5NNoptZD/ojjzwiPXv2lCZNmhiHhQsXiib3w4YNE2+fae/8mDFjZO/evRIeHi6jR4+Whg2ztx72119/LUOGDDG9955Nr3vbbbeZLwzmz59Pgp6du9PPff+3pnmIPNbuFj/PwmEIIICAvQVI0O0dH0qHQHoBX9dOLyPHpFlsTSlX/noQEUAgCAUck6B7YrNjxw554403Mk3QY2NjZdGiRVKuXDlzyNatW83f586dK94+0+Rce8GfeeYZOXTokEny169fL5GRkT7fFosXL5avvvrKDHPX7aOPPjK99rNnz5a2bduacjDE3WdOv3b0rGnesvH1Uud61jT3C5GDEEDAEQIk6I4IE4VE4CoBX9dOr1wsXlq1b83a6dxDCASZgK0S9CeffNIMEU+7xcTEmATX1wS9cePGsnr1ailRooQ55NNPP5WZM2eaoejePqtbt65s3rxZihYtao7T99YHDhwoBw4ckJUrV151W2gyHhUVlfpzHXb/4IMPmh57/XLg9OnT5hz69+jo6AwTdO1tT7+98847Vxnk5J4MlnfQE08nS/LJEClfpZB0ubVmTsg4FgEEEHCEAAm6I8JEIRHIUIC107kxEEAgMwFbJei+hCmrHvSWLVvKvHnzRBN73TZu3GiSc/1ZZp/pu+O1atWSihUrphZBh7yPGjVK2rRpk2WxTp48KT169DC9756h9UOHDpXmzZubxFy3jHrQ9+zZc9W54+LiSNCzFP/fDskXLkniiYuSP1zk4da1JYo1zbOhx64IIOBkARJ0J0ePsiPwp8BVa6cvmCC//Pit+Yy107lLEAhOAdcl6P369RNNclu0aGEiOmfOHDl+/LiMHDlSvH2mPejbt2+XiIiIbN0J2lPeq1cv8367JxnXE9x0000SFhZ2RcKvw+XHjRsn99xzT6bXsPqBy8096Cfjz8nFpFDWNM/WHcvOCCDgFgGr2wu3uFAPBJwo8PH2bbL/YIqcFtZOd2L8KDMCVgq4IkHX98tr164t9evXl1WrVsmKFStSZ3Hv3LmzWYuyQYMGXj/Td9ALFixoesF1ebYjR45ImTJlrkiy08NrL3vv3r3N0PZ27dp5jQvvoFt3254+myznToqUKJdfHr6DNc2tk+VMCCDgJAESdCdFi7IikLVAUtJZ+WDNRvnhjzKsnZ41F3sg4FoBVyToffv2NcPXNRnXbdq0aSZJDwkJMT3bffr0SQ1gZp9psj1lyhTZsmWLmSleh7vrrOveetTfeustMww+NDT0ihtk6dKl5guDtBsJes5/h1Iup/y5pnloiHS8o5pUKFE85yflDAgggIBDBUjQHRo4io1AFgKsnc4tgkBwCzguQXd7uKx+4HLLEPeEhGS5dCpUqtUqIu1rs6a5238PqB8CCGQtYHV7kfUV2QMBBHJLgLXTc0ua6yBgPwESdJvFxOoHLqcn6El/XJSzJy9JZPFQebRt9talt1loKQ4CCCBgqYDV7YWlheNkCCBgiQBrp1vCyEkQcJQACbrNwmX1A5eTE/QTJ85LSrJIq8YxUvv6sjaLFMVBAAEE8lbA6vYib2vD1RFAwJsAa6dzfyAQPAIk6DaLtdUPXE5M0BNPX5DkkyLXVQmXuFtvtlmEKA4CCCBgDwGr2wt71IpSIIBAZgKsnc69gUBwCJCg2yzOVj9wOSlBT06+JKfiL0iB8BDp3aaOFC5Y0GbRoTgIIICAfQSsbi/sUzNKggAC3gTSr52+bMEE+Zm107lpEHCNAAm6zUJp9QOXUxJ0z5rmtzQoLU2rVbRZVCgOAgggYD8Bq9sL+9WQEiGAgDcB1k7n/kDAnQIk6DaLq9UPXHZP0E+fSZZzCbqmeQF5+I66NosGxUEAAQTsK2B1e2HfmlIyBBDITIC107k3EHCfAAm6zWJq9QOXXRP0lEspEn/izzXNO91RXa4vUcxmkaA4CCCAgL0FrG4v7F1bSocAAt4EWDud+wMB9wiQoNssllY/cNkxQU9IOG/WNK9eq6jcVbuazSJAcRBAAAFnCFjdXjij1pQSAQQyE2DtdO4NBNwhQIJuszha/cBlpwSdNc1tdrNRHAQQcLSA1e2FozEoPAIIpAp4XTu9YlWJ6zFKyleoLmXkmDSLrSnlyl+PHgII2EiABN1GwdCiWP3AZZcE/cTv5yXlokjr22OkVnnWNLfZbUdxEEDAgQJWtxcOJKDICCDgRYC107k9EHCmAAm6zeJm9QNXXifopxKT5UJCiFxfNUI6N6phM22KgwACCDhXwOr2wrkSlBwBBDITYO107g0EnCdAgm6zmFn9wJVXCfqfa5pflLAIkd531pXIgmE2k6Y4CCCAgLMFrG4vnK1B6RFAwJuA97XT60pcz1FSsnQ5uS7fUYltd6tER5cCFAEE8kiABD2P4DO7rNUPXHmRoMfHn5dLSSHSqOE10qRqBZsJUxwEEAh2gcOHD0u/fv2kS5cu0qtXrww5UlJSZOLEibJ27VopUKCADBgwQLp162b2jY+Pl2eeeUb2798v0dHRMmnSJKlXr16OWF999VVZvny5OUelSpVkypQpUqJECa/ntLq9yFEFOBgBBBwhwNrpjggThQxyARJ0m90AVj9w5WaC7lnTvFT5MOnZvI7NZCkOAgggILJr1y4ZN26cme+jTp06mSbomiyvWbNGXnvtNUlKSjLJ/IwZM6RGjRry9NNPS7ly5WTQoEEmSdc/169fL4UKFfKLeO/evTJmzBh56623JCIiQmbOnCkJCQkyduxYEnS/RDkIAQS8CbB2OvcHAvYWIEG3WXycmKCnrmmeL0Q6t6gu1xVnTXOb3VYUBwEE/k/g4MGDUqRIEZMMFy1aNNME/ZFHHpGePXtKkyZNzJELFy6Uo0ePytChQ6V+/fqyY8cOCQ8PN59p73qnTp2kRYsWcvbsWZNsa9Ktn48ePVoaNmzo1X/Lli2ybNkyefnll81+77//vmzcuFGee+45EnTuXAQQCJiAt7XTa93SSu7t+qQUjYqWiuHHpPXdsRIRERmwsnBiBBD4nwAJus3uBqcl6Lqm+cXEULmxVlFpV4s1zW12O1EcBBDIREB7w4sXL55pgh4bGyuLFi0yPeW6bd261fx9woQJpjddk2rPNn36dClWrJj06dPHJOeFCxc2Q+APHTpkknztXY+MzPzBNjk5WR588EG57bbbpGbNmjJ79myZOnWqVK5cmQSdOxgBBAIqwNrpAeXl5Aj4JUCC7hdb4A5ySoLuWdO8cHSoDGjjvXcocFqcGQEEELhS4Ny5c6Y3O/3Wvn178965Z8sqQW/cuLGsXr069T3wTz/91Aw91/fN+/fvL+vWrUs916xZs0TfWdeh7nXr1pXNmzeb3nnd9L31gQMHyoEDB2TlypVXlWvx4sUSFRUlH374oelt1/N06NBBhgwZIvnz50/dv1WrVlcdq+/S64gANgQQQCCnAqydnlNBjkfAOgESdOssLTmTExJ0z5rmbW6vIDeXL2NJvTkJAgggkJsCWSXoLVu2lHnz5klMTIwplg45X7JkiUnQO3bsKNu3b08trv6sZMmS0r17d6lVq5ZUrFgx9TMd8j5q1Chp06ZNptXbtm2bvPjii+Z6+h67Tk534cIFcy1vm9XtRW76cy0EELCnAGun2zMulCq4BEjQbRZvqx+4rJwkTtc0v3gyVK6vHi6dbmFNc5vdOhQHAQSyIZBVgq697XFxcea9ct3mzJkjx48flxEjRkiDBg1k06ZNpudbt969e5t9tZdbe9A1edfJ3nzdRo4caSas08RfNx3y3qhRI9mzZw8Juq+I7IcAApYJsHa6ZZScCAG/BEjQ/WIL3EF2TNDPJ1+SxP9b07xv23oSXqBA4AA4MwIIIJALAhkl6HPnzpXatWubSeBWrVolK1asSJ3FvXPnzjJ58mSTnA8fPtz0mA8ePNjM4q5D3jds2GDePdd30AsWLGjeQdfl2Y4cOSJlypSRsLCwTGulPedfffWVTJs2zQxr1+HzCxYskKVLl5Kg58K9wCUQQCBjAdZO585AIG8ESNDzxj3Tq9otQTdrmv/xf2uaV2FNc5vdLhQHAQT8FMgoQe/bt6/o0HZNxnXThFmT9JCQENFZ3XUSON0SExPNO+K7d+82vei6HJpntncd0q5rmOskctoTrsPd58+f77VHXffTyed27twp+fLlk2uuuUbGjx8vFSp4/zfX6vbCT0oOQwABlwtkZ+305q1bSmhoqMtFqB4CgRUgQQ+sb7bPbvUDl79D3M2a5idFSl3HmubZDiIHIIAAArkgYHV7kQtF5hIIIOBQAV/XTi+eEi+NGpSRG2rUdGhNKTYCeS9Agp73MbiiBFY/cGU3Qb90KUVOnkiWkHwhEtfiBilf/M+ZiNkQQAABBOwlYHV7Ya/aURoEELCjgC9rp0dFlZCYsKPS6u6mElWkmB2rQZkQsLUACbrNwmP1A1d2EvSEhGS5mBgiN9UuKm1rsqa5zW4NioMAAggE9AtdeBFAAAFfBHxdOz0i5JzUuO6iNI39c7JNNgQQ8E2ABN03p1zbKy8SdNY0z7XwciEEEEDAMgGr2wvLCsaJEEAgKAR8XTu95OVfpVmz6hJTsVJQuFBJBHIqQIKeU0GLj7f6gSurHnTPmuZtm1SQGuVY09zicHI6BBBAIGACVrcXASsoJ0YAAVcL+LJ2emShcKkY+avc2aG1FAwr6GoPKodATgVI0HMqaPHxVj9wZZage9Y0j6keLvezprnFUeR0CCCAQOAFrG4vAl9iroAAAm4V8HXt9MIpp6XuDeFSv1Ejt1JQLwRyLECCnmNCa09g5QPX4cOHZdNHWyU+sqxZn7dQoUJi1jQ/cVHCIkX6t60nBVnT3NoAcjYEEEAglwSsbC9yqchcBgEEXC7gfe30etKx2xApU66SXHP5J0kJTZAmTZtnuaSky8moHgJXCZCg2+ymsOqBa+HChdKrVy8pUChcuv1tkqlltWp1Jd+lMLmtYVlpXCXGZjWnOAgggAAC2RGwqr3IzjXZFwEEEPBFYOfWrbL/u8tyRsJl56a35f2Vr8i5pDMSmi+fNLuzm7Tu0EciCoTKO68PlR49H5GePXv6clr2QSAoBEjQbRZmqx64ihcvLgkJCSZBHzh9gZSJipFfTn4tMwc9bLMaUxwEEEAAAX8ErGov/Lk2xyCAAAJZCaRfO33t0hdl9873zWFFS5SWx/o+I5MmPyPFihWTkydPZnU6PkcgaARI0G0WaqseuEJCQkzNChUuIk+/sFTmTBoox3/4Xi5fvmyzGlMcBBBAAAF/BKxqL/y5NscggAACvgpktHZ6Yvxv0vC2hrLzo+3mNDyf+qrJfsEgQIJusyhb9cCl30aeOnVK8oWFyaXkZFPLZs2ayZYtW2xWY4qDAAIIIOCPgFXthT/X5hgEEEAgOwJp104/H1JIfvh4kby2aJ4k/5EkRYsWNaM+2RBA4E8BEnSb3QlWPXCNHTtWxo0bd0Xt3nnnHbn33nttVmOKgwACCCDgj4BV7YU/1+YYBBBAwB+Ble+8Lcd/PCGPPtE/9fAxY8aIPreyIYAACbot7wErH7i0t9zTY968eXPR/9gQQAABBNwhYGV74Q4RaoEAAk4Q4PnUCVGijHkpQA96XupncG0euGwWEIqDAAII2FSA9sKmgaFYCCCAAAII5ECABD0HeIE4lAeuQKhyTgQQQMB9ArQX7ospNUIAAQQQQIAE3Wb3AA9cNgsIxUEAAQRsKkB7YdPAUCwEEEAAAQRyIECCngO8QBzKA1cgVDknAggg4D4B2gv3xZQaIYAAAgggQIJus3uABy6bBYTiIIAAAjYVoL2waWAoFgIIIIAAAjkQIEHPAV4gDuWBKxCqnBMBBBBwnwDthftiSo0QQAABBBAgQbfZPcADl80CQnEQQAABmwrQXtg0MBQLAQQQQACBHAiQoOcALxCH8sAVCFXOiQACCLhPgPbCfTGlRggggAACCJCg2+we4IHLZgGhOAgggIBNBWgvbBoYioUAAggggEAOBEjQc4AXiEN54AqEKudEAAEE3CdAe+G+mFIjBBBAAAEESNBtdg907dpVbrrpJpuViuIggAACeSMwYsSIvLmwA65Ke+GAIFFEBBDINQHai1yj5kIBFiBBDzBwdk+/YMGC7B6SZ/t/9913Urx4cYmOjs6zMnDhwAgcPXpULl++LNdee21gLsBZ80zg5MmTov9VqlQpz8qQnQv36tUrO7sH1b60F0EVbttWlvbCtqHJccFoL3JMyAkQ8EuABN0vNg5SgfHjx0vz5s2ladOmgLhM4I033jAJ+kMPPeSymlGdLVu2yPbt22XkyJFgIJBrArQXuUad6xeivch18ly7IO1FrlFzIQSuECBB54bwW4AHLr/pbH8gD1y2D5HfBeSBy286DsyBAO1FDvBsfijthc0DlIPi0V7kAI9DEciBAAl6DvCC/VAeuNx7B/DA5d7Y8sDl3tjauWa0F3aOTs7KRnuRMz87H017YefoUDY3C5Cguzm6Aa4bD1wBBs7D0/PAlYf4Ab40D1wBBub0GQrQXrj3xqC9cG9saS/cG1tqZm8BEnR7x8fWpfvkk0+kfPnyUq5cOVuXk8JlX+Cbb74xB91www3ZP5gjbC3w008/yS+//CINGza0dTkpnLsEaC/cFc+0taG9cG9saS/cG1tqZm8BEnR7x4fSIYAAAggggAACCCCAAAIIBIkACXqQBJpqIoAAAggggAACCCCAAAII2FuABN3e8aF0CCCAAAIIIIAAAggggAACQSJAgh4kgaaaCCCAAAIIIIAAAggggAAC9hYgQbd3fCgdAggggAACCCCAAAIIIIBAkAiQoAdJoDOq5uHDh6Vfv37SpUsX6dWrV4YS8fHx8swzz8j+/fslOjpaJk2aJPXq1TP76s/+9re/yW+//SbVq1eX559/XkqXLu236B9//CEjR46Uffv2SUpKisTGxsrw4cMlNDTU73MGy4G+xsLbfitWrJCZM2dKcnKytGrVSsaNGyf58uXzm9DbveP3SYP0wM2bN8uTTz4pixcvlhtvvDFDBW+x9fX+8JWX31VfpdyzH+2Fe2Lp678HtBfOjDnthTPjRqkRSCtAgh6k98OuXbtMAlalShWpU6dOpgn6008/bZZRGzRokEnI9c/169dLgQIFTBI3duxYadq0qbz++uuyc+dO+cc//uG36Kuvviq6pMezzz4rFy5ckN69e8sDDzwgbdu29fucwXDgpUuXfIqFt/1++OEHeeihh+Stt94yX7I89dRTUrt2bXn44Yd9Ijx27JgUKlRIihUrlrp/ZveO7sfmu8C8efNk06ZNkpSUJBMnTswwQfcWW1/vD99LJMLvana0nL8v7YXzY+ipga//HtBeODPmtBfOjBulRiC9AAl6kN4TBw8elCJFipiErGjRohkm6NqLXb9+fdmxY4eEh4cbqQEDBkinTp2kRIkSMmHCBFm+fLn5ue576623yoYNG8x5tbdFe7+PHz9uEvypU6dK2bJlvWrrPmXKlJEePXqY/TT5v+mmm8z12DIX+Pzzz73GwnOkt/3efPNNSUxMFE2qddN1bYcNGybvvvuu+fuWLVtk+vTpcu7cObnllltMbMLCwlIL9dJLL0mlSpVSv0zxdu+0aNGCcGZDQJOjunXrmt+LUaNGZZige4vt999/7/X+yCq2GRWV39VsBNAFu9JeuCCI/1cF2gv3xDKjmtBeuDu+1C54BEjQgyfWGdZ0xowZUrx48QwTdO0V1eHv+gDv2TRJ015S7WXVHnN9UPds999/v4wePVpq1Kgh7du3l6FDh0qzZs1MEv/+++/L/PnzvWofOXLE9Jo/9thjcubMGXPMa6+9JhEREUEeJe/VX7VqVaaxqFmzZurB3vbTL2r0y5j77rvP7H/+/Hnz9y+++EKOHj0qnTt3lqVLl5ovWYYMGSKVK1c2r0d4tvQJurd7p0+fPsTTD4G4uDgZM2ZMhgm6t9jq6IjMfldLlSqVZWwzKiq/q34E0AWH0F44P4i0F86PoS81oL3wRYl9ELCvAAm6fWOTo5J99tlnMn78+KvOoe+MN27cOPXn3h64tBe8f//+sm7dutT9Z82aZXrLtaf766+/NsPkPVv37t1l4MCBEhUVZd5NX716tfno4sWLoomifnOvSbv2xqTdYmJiZPbs2XL58mWZNm2aud7JkydNr58m+mzeBTRxziwWjRo1Sj3Y237Lli2Tli1bSrt27VL319cf/vOf/8jChQvll19+kREjRpjPPvnkE/Ouuva6d+vWzcxBkJCQYF57iIyMNL29et9kdu/oaxJs2Rfw9sDlLbY//vhjpveHjpTIKLYLFizIcOSK/j7qFzP8rmY/fnY+gvbCztGxtmy0F9Z62vVstBd2jQzlQsA3ARJ035xcu5e3BF2Hp3fs2FG2b9+eWn+dJK5kyZImQf/oo4/MxHCerUOHDuZLAZ0cTJMw3ceznTp1StauXSvaY5fZpmXRRE97CU+cOCF//etfzTvo9957r2v9raiYfhGSWSxq1aqVeglv+2mCrvtqT7luOoJBk/svv/xSpkyZIu+88455FUI3fTdRR1HopHKeLX0Purd7p2/fvlZUO+jO4e2By1tsNUHP7P7QUSpZxTYjaH5Xg+72MxSFBkIAACAASURBVBWmvXB+3GkvnB9DX2pAe+GLEvsgYF8BEnT7xiZXSubtgUt7yRo0aGAmqNJecd10CLr+w3/ttdeaHlXPO8raS96wYUOzr/bI6buyaRM4Xyqjk85pz1358uXN7tu2bTOzVuuEVGyZC3z11VeZxiLtpG3e9lu5cqWZL0DfO9dNJwTU+K5Zs8bERHvJdWh7Zlv6BN3bvaNxZsu+gLcHLm+x/fnnnzO9PzQ5zyq2GZWU39Xsx88NR9BeOD+KtBfOj6EvNaC98EWJfRCwrwAJun1jkyslS//ApcPXddi69l5rT7lO9KZ/Dh482CRtOmxZJ4LT98LbtGljEvEmTZqYWdz152+88YbpYdXedH2XXGdg12RN34PVScS8bdqzqu+s67BpLYf21ut1dHkptswF1CqzWPz3v/81MdE4ettPZ8/v2rWrGbbumcW9atWq5pUF/cJFRzLMnTvXzPqv76f/+uuvct1116UWKn2Crh9kdu8ULlyYcPohkP6BK+3vqi6BmNk94C3uvsQ2o6Lyu+pHAF1wCO2F84NIe+H8GPpSA9oLX5TYBwH7CpCg2zc2uVKy9A9cmnzpu8g6oZsmYzqzt/ac7t692/Si6+zdmpDrduDAAfOZPuT/5S9/keeeey41adNJpHRf3UcfCO68884r3lfPqHLa06eTzGlSqUm9vsus5/DMIJ8rIA69SGax2LNnj1nHXr88CQkJ8RozfQVBJ/3Tmdr1ixL9gsQzU7vO5K+faWKuP9MvcLKaXd/bveNQ5jwtdvoHrvS/q95+H7195k9s+V3N01shzy5Oe5Fn9JZemPbCUk5bnoz2wpZhoVAI+CxAgu4zFTsigAACCCCAAAIIIIAAAgggEDgBEvTA2XJmBBBAAAEEEEAAAQQQQAABBHwWIEH3mYodEUAAAQQQQAABBBBAAAEEEAicAAl64Gw5MwIIIIAAAggggAACCCCAAAI+C5Cg+0zFjggggAACCCCAAAIIIIAAAggEToAEPXC2nBkBBBBAAAEEEEAAAQQQQAABnwVI0H2mYkcEEEAAAQQQQAABBBBAAAEEAidAgh44W86MAAIIIIAAAggggAACCCCAgM8CJOg+U7EjAggggAACCCCAAAIIIIAAAoETIEEPnC1nRgABBBBAAAEEEEAAAQQQQMBnARJ0n6nYEQEEEEAAAQQQQAABBBBAAIHACZCgB86WMyOAAAIIIIAAAggggAACCCDgswAJus9U7IgAAggggAACCCCAAAIIIIBA4ARI0ANny5kRQAABBBBAAAEEEEAAAQQQ8FmABN1nKnZEAAEEEEAAAQQQQAABBBBAIHACJOiBs+XMCCCAAAIIIIAAAggggAACCPgsQILuMxU7IoAAAggggAACCCCAAAIIIBA4ARL0wNlyZgQQQAABBBBAAAEEEEAAAQR8FiBB95mKHRHwLjB58mRJSkqSZ5991jZUdiyTbXAoCAIIIJBHAnb8t9mOZcqj8HBZBBBAIE8FSNDzlJ+L20Xgrrvukm7duknXrl2vKNKxY8ekadOm8sEHH0iFChW8FteODzfZLdPf/vY3efjhh6Vq1aqmrjt37pQZM2bI22+/bXmo0l/L8gtwQgQQQCAAArQXf6LSXgTg5uKUCCCAgIiQoHMbICAi//jHP2Tz5s3y1ltvXeExd+5cef/992XFihVZOmU3Gc7yhBbskJ0yJScnS2xsrMybNy81QdcvKDZt2nTVFxc5LVpG18rpOTkeAQQQyA0B2gsR2ovcuNO4BgIIBKsACXqwRp56XyFw9OhRad68uUlGy5Url/rZPffcI/fff7889NBDEh8fL5MmTZJdu3ZJYmKi3HjjjebvlSpVMvunTYZ/+uknueOOO+Sbb76R/Pnzp56vSpUqsmHDBomJiTE/0y8EXn31VXPumjVryrhx4+Qvf/nLVdE5e/asNGvWTFauXClPPfWUfP3116ZX+4YbbpDdu3fL+PHj5dChQ+a8+rkm2unLpH//8ssv5fnnnzd/Xrp0yYwO0HIXKFBA7rvvPlPeIkWKSL58+WTixImm7FOmTDEjCLRsp0+flueeey61fFpPvda2bdukdOnSPtXn4sWLGV6rdevWsmfPHlMerV/RokWlc+fO8vjjj0toaOhVJi+88IJ88skn8uabb0pISIioUdu2bWXYsGHmTzYEEEAgEAK0F7QXgbivOCcCCCDgESBB515A4P8EdIh7kyZNpH///uYnmvC2b99eduzYISVKlJALFy7Ie++9Z/aJiIiQCRMmyPHjx2XOnDl+Jeia1GrS++KLL5rEesmSJSbZ1B77ggULXhEXTT5r164tdevWNUPQa9SoYRJiTZg1GdUvCm677TaT4D722GOyfPly0S8D0vegHzlyRH788UdznnPnzknv3r1Fh2vqn7rddNNN8s4776T2oOsXFp4Efd++fdKzZ0+TFHvKpz1JH3/8sSxcuNAk6b7WJ6NrnThxQlq2bClDhgyRu+++W37++WfzZYP+f79+/a66TzUe/+///T954IEHzOsJeu3ff/9dZs2axT2NAAIIBFSA9oL2IqA3GCdHAIGgFiBBD+rwU/m0AsuWLZMFCxaYBFk37WnWHmUd5p7Rpj3XTz75pHz00Ud+Jeg9evQwPckdOnRIPX3Dhg1NgnnLLbdkmKBrr7b2Knu2l19+WbQXWxN0z/bXv/7VJOfa85zVEHc9/vDhwzJt2rQsE3TdQXvLhw4dKtrbrZuW3VOP7NQnowR99uzZsnfvXjPE3rPpaAX9wkGtM9q0p12vq8m5jiLQL1Cio6O5sRFAAIGACtBeeE/QaS8CevtxcgQQcLkACbrLA0z1fBfQYeu33nqrGTpevXp1M0Td04OrZ9Hecu0x1iRSe2+1B/rMmTNmyLtu2R3i3rhxYzl58qQZnu3ZdNj51KlTr0ja9TNPD/rGjRvl+uuvT91fvyDQpFSHpHu2lJQU07OsSXv6BP2LL74wXzj88MMPcvnyZdFe6wYNGsjf//53nxL0mTNnmmN1f+2J1953rX/hwoUlO/XJKEF/4oknpHz58sbcs6lvnTp1zCgGHTGQ0aZl0eRe/2zXrp3vAWdPBBBAwE8B2ousE3TaCz9vLg5DAIGgFyBBD/pbAIC0Atpbq7O1t2rVyvTMavIZHh5udtHeYh0a/vTTT0tkZKR8+umnppfa1wT9/PnzZmi65x30Ro0ameHj+u57VpsnQddZ1UuVKpW6+6BBg+Taa681vdoZbWkTdP2CoU2bNjJmzBgzbFyTeu2t16H8vibo33//vdx7771mmLsOa9cRBjpEX7fs1CejBF3t9X3+7Cbo+iWFviOvsejbt28qg74rryMR9JUEHQ2hXyjoxEaDBw82X8BktH333XfmCxKN7zXXXGNcdci/Lp/XvXv3rMLE5wggEEQCtBeZvxKltwHtRRD9MlBVBBCwVIAE3VJOTuZ0AU309Ft/fRdaJwKaPn26qZK+663Juc70rr28ui1dulR0orKMEnTtGdfh6trbrr3Luh08eND08HoSdE349L1yTfiz2jJL0DXB3rp1q3nnPKsEXa+ra7R7huTr/prcaq+9J0G/+eabRYdu6uRzuqV9B91zfk3QH330UXnppZdMUuyZkC479dFzpb+W1kW95s+fn1oVtR0wYIB5tz7tSAPPDh9++KEZ2q4T7elEfhqTypUri84+P3z4cHMunRBPv0zQhF3joj31+veMNn3XfcSIEWaUgibqmtzrqIq4uDh5/fXXU7+sySpefI4AAu4XoL2gvaC9cP/vOTVEIC8ESNDzQp1r2lZAe1g1IdNJ4LT3+fbbbzdl1eHgOhRcE9IuXbrIV199ZRJATfgyStD1GJ0hXZNLncRMe881EV+3bl1qgq6TqmkPjCbNuq8O59Yech2eHhYWdoVRZgm6zv6uCfKDDz5olkLT2c73798vFStWNLPBp+1B197ujh07monoqlWrZnqdNbnVoemeBF0nnNOZ67UnWmdb16HlnkniPAXS9/Q1ydfEV8vrKWt26qPnSn8ttdQvMNRJy+CZJE73U6f0W0JCgjmHJtLqp5P16fwB+mWFZ7k8nchp0aJFZmZ6ddVN3+HXCfnSzq6f9suHd9991/xV66PvvmuPuyb3+gVNixYtbHvvUjAEEMhdAdoL2gvai9z9neNqCASLAAl6sESaevosoN+Ia0+5Jmhp3+3W3mTPzO26xJpOTNanTx+TxOqW/n3vzz77zCTfp06dMrOe677a66w9sZ5l1rRx195fHX6tPe316tUzQ8Z9TdD1up9//rlJUvVPTTo1+db3z7UnOX2ZPNfX9+c12dQh75rUehJ0rfPIkSPNu+l6Th3enz5B//XXX03PcqdOnYxH2s3X+ngS4LTX0vfZ9R15nQhP/4yKijJfKGiPd9o4eK6nP9fl4TwT3OlIAF0STyew09ncdRSEftmiPfM6pF1fW9BNZ8HXhDujyeT0NYZVq1aZ/XTWeq3P2LFjzfJ2+mWIZ7Z7n28mdkQAAVcL0F7QXtBeuPpXnMohkCcCJOh5ws5FEUAgkAI6MkATck3Q//nPf5oRETpjvm76xYKOIsioB1330WRcN311QHvQ9YsAfQ9dk379koUNAQQQQMA9ArQX7oklNUHALQIk6G6JJPVAAIFUAR2loAm4DnHXd/919n3PO+gDBw6UxYsXy4EDB8x8Ap45AvRgfYVBh9jrO+g6ckDXltfh83psrVq1UnvhoUYAAQQQcIcA7YU74kgtEHCTAAm6m6JJXRBAwAjo2vA6fN4zGdwrr7xiEnJ9l19nvtcJ6tq3b2/eVU+boP/3v/81rwfoKwnFixeXUaNGmcnpdOi8PsSl3RdqBBBAAAHnC9BeOD+G1AABtwmQoLstotQHAQSMgL5DrxPgeSb6S8ui75Pru+vaS57VpkPedc3jnj17ZrUrnyOAAAIIOFCA9sKBQaPICLhYgATdxcGlaggggAACCCCAAAIIIIAAAs4RIEF3TqwoKQIIIIAAAggggAACCCCAgIsFSNBdHFyqhgACCCCAAAIIIIAAAggg4BwBEnTnxIqSIoAAAggggAACCCCAAAIIuFiABN3FwaVqCCCAAAIIIIAAAggggAACzhEgQXdOrCgpAggggAACCCCAAAIIIICAiwVI0F0cXKqGAAIIIIAAAggggAACCCDgHAESdOfEipIigAACCCCAAAIIIIAAAgi4WIAE3cXBpWoIIIAAAggggAACCCCAAALOESBBd06sKCkCCCCAAAIIIIAAAggggICLBUjQXRxcqoYAAggggAACCCCAAAIIIOAcARJ058SKkiKAAAIIIIAAAggggAACCLhYgATdxcGlaggggAACCCCAAAIIIIAAAs4RIEF3TqwoKQIIIIAAAggggAACCCCAgIsFSNBdHFyqhgACCCCAAAIIIIAAAggg4BwBEnTnxIqSIoAAAggggAACCCCAAAIIuFiABN3FwaVqCCCAAAIIIIAAAggggAACzhEgQXdOrCgpAggggAACCCCAAAIIIICAiwVI0F0cXKqGAAIIIIAAAggggAACCCDgHAESdOfEipIigAACCCCAAAIIIIAAAgi4WIAE3cXBpWoIIIAAAggggAACCCCAAALOESBBd06sKCkCCCCAAAIIIIAAAggggICLBUjQXRxcqoYAAggggAACCCCAAAIIIOAcARJ058SKkiKAAAIIIIAAAggggAACCLhYgATdxcGlaggggAACCCCAAAIIIIAAAs4RIEF3TqwoKQIIIIAAAggggAACCCCAgIsFSNBdHFyqhgACCCCAAAIIIIAAAggg4BwBEnTnxIqSIoAAAggggAACCCCAAAIIuFiABN3FwaVqCCCAAAIIIIAAAggggAACzhEgQXdOrCgpAggggAACCCCAAAIIIICAiwVI0F0cXKqGAAIIIIAAAggggAACCCDgHAESdOfEipIigAACCCCAAAIIIIAAAgi4WIAE3cXBpWoIIIAAAggggAACCCCAAALOESBBd06sKCkCCCCAAAIIIIAAAggggICLBUjQXRxcqoYAAggggAACCCCAAAIIIOAcARJ058SKkiKAAAIIIIAAAggggAACCLhYgATdxcGlaggggAACCCCAAAIIIIAAAs4RIEF3TqwoKQIIIIAAAggggAACCCCAgIsFSNBdHFyqhgACCCCAAAIIIIAAAggg4BwBEnTnxIqSIoAAAggggAACCCCAAAIIuFiABN3FwaVqCCCAAAIIIIAAAggggAACzhEgQXdOrCgpAggggAACCCCAAAIIIICAiwVI0F0cXKqGAAIIIIAAAggggAACCCDgHAESdOfEipIigAACCCCAAAIIIIAAAgi4WIAE3cXBpWoIIIAAAggggAACCCCAAALOESBBd06sKCkCCCCAAAIIIIAAAggggICLBUjQXRxcqoYAAggggAACCCCAAAIIIOAcARJ058SKkiKAAAIIIIAAAggggAACCLhYgATdxcGlaggggAACCCCAAAIIIIAAAs4RIEF3TqwoKQIIIIAAAggggAACCCCAgIsFSNBdHFyqhgACCCCAAAIIIIAAAggg4BwBEnTnxIqSIoAAAggggAACCCCAAAIIuFiABN3FwaVqCCCAAAIIIIAAAggggAACzhEgQXdOrCgpAggggAACCCCAAAIIIICAiwVI0F0cXKqGAAIIIIAAAggggAACCCDgHAESdOfEipIigAACCCCAAAIIIIAAAgi4WIAE3cXBpWoIIIAAAggggAACCCCAAALOESBBd06sKCkCCCCAAAIIIIAAAggggICLBUjQXRxcqoYAAggggAACCCCAAAIIIOAcARJ058SKkiKAAAIIIIAAAggggAACCLhYgATdxcGlaggggAACCCCAAAIIIIAAAs4RIEF3TqwoKQIIIIAAAggggAACCCCAgIsFSNBdHFyqhgACCCCAAAIIIIAAAggg4BwBEnTnxIqSIoAAAggggAACCCCAAAIIuFiABN3FwaVqCCCAAAIIIIAAAggggAACzhEgQXdOrCgpAggggAACCCCAAAIIIICAiwVI0F0cXKqGAAIIIIAAAggggAACCCDgHAESdOfEipIigAACCCCAAAIIIIAAAgi4WIAE3cXBpWoIIIAAAggggAACCCCAAALOESBBd06sKCkCCCCAAAIIIIAAAggggICLBUjQXRxcqoYAAggggAACCCCAAAIIIOAcARJ058SKkiKAAAIIIIAAAggggAACCLhYgATdxcGlaggggAACCCCAAAIIIIAAAs4RIEF3TqwoKQIIIIAAAggggAACCCCAgIsFSNBdHFyqhgACCCCAAAIIIIAAAggg4BwBEnTnxIqSIoAAAggggAACCCCAAAIIuFiABN3FwaVqCCCAAAIIIIAAAggggAACzhEgQXdOrCgpAggggAACCCCAAAIIIICAiwVI0F0cXKqGAAIIIIAAAggggAACCCDgHAESdOfEipLmkkBsbKx0795devXqZa543333yUMPPST33ntvLpXA2ssMHz5c4uPj5dVXXzUn/uCDD+SFF16Q9957T0JCQqy9WLqzHTx4UEaPHi1ffvmlREREyIIFC+TGG2+05Jo//fSTtG/fXhYuXCi1a9dOPee+ffvk0UcfFY3js88+m+1rvf/++/Liiy/KkSNHpGzZsjJgwADp2LGjOc/p06elVatWMnbsWGnTpk22z80BCCDgLgHaC+vi6cT2QmufWZtDe2HdvcGZEAg2ARL0YIs49c1SIP0DlyZjbdu2lVtuuSXLY+24Q/oEXR8mli5dKpMnTw54cTt37ixFixaVYcOGmeRWk/MCBQpYct1H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lZMFqwlrmnNL2EWA9sIukaAcCCCAAAIIWCdAgm6dpSVn4oHLEkZOgoBlAqxpbhklJ7JYgPbCYlBOhwACCCCAgA0ESNBtEIS0ReCBy2YBoThBK8Ca5kEbesdUnPbCMaGioAgggAACCPgsQILuM1Xu7MgDV+44cxUEMhPwdU3zIpdOyu8/75Jho0aBiUCeCNBe5Ak7F0UAAQQQQCCgAq5I0F966SV5+eWXJV++fAarWrVqsnz58qvgUlJSZOLEibJ27Vqz/M2AAQOkW7duZj+dmVmXxdElc6Kjo2XSpElSr169HOEvXLhQXn/9dblw4YLcddddZtZfTxkzOzEPXDki52AEciTg65rmBRP3ybGEX2XQ44PM8lxsCOSFAO1FXqhzTQQQQAABBAIr4IoEffz48WZt2rZt23rV0qRd17t97bXXJCkpSbp06SIzZsyQGjVqyNNPP22W3Bk0aJBJ0vXP9evXS6FChfyKwCeffGKS/DfeeMOsiavr5Orau7169fJ6Ph64/OLmIARyJMCa5jni4+A8EqC9yCN4LosAAggggEAABVyRoGsy3b17d5Oke9t0HduePXumrlerPdxHjx6VoUOHSv369WXHjh0SHh5uTqG96506dZIWLVqIrms7ZswY2bt3r/l89OjR0rBhQ6/Xmjp1qlx33XXStWtXs9/XX39t1ttdtWoVCXoAb2hOjUB2BHRUzYb31su3vxVlTfPswLGvLQRI0G0RBgqBAAIIIICApQKuSND79Okj33//vVy8eFHKlCkjTzzxhDRq1OgqqNjYWFm0aJHpKddt69at5u8TJkwwvelbtmxJPWb69Olm6KqeW5PzwoULmyHwhw4dMkm+9q5HRkZmGgzt1b/pppukY8eOZp9Tp05J8+bNTZLvbeOBy9L7m5MhkKnAN1/ul12fHZOTodGsac594kgB2gtHho1CI4AAAggg4FXAFQn6uXPnzLvd+fPnl08//VQef/xxeffdd6Vs2bJXVL5x48ayevVqKVGihPm57jtz5kwzFF2HoK9bty51/1mzZon2rmnvfN26dWXz5s1StGhR87m+tz5w4EA5cOCArFy58irgxYsXy86dO+Wf//ynzJkzx3yuPep67T179qTur+/Dp9+0V//gwYPctgggECABXdP8wzVb5cfksletaV66XAW5r9sQqXJjAymRckIaN46RylWrB6gknBaBnAmQoOfMj6MRQAABBBCwo4ArEvT0sNqDrr3VHTp0uOKjli1byrx58yQmJsb8fOPGjbJkyRKToGtP9/bt21P315+VLFnSDJ2vVauWVKxYMfUzHfI+atQoadOmjdeYzp492yT9+h57XFycLFiwQN57773UYzTpT7/17duXBN2OvymUyRUCma1pHlYwXFp36C1N7+wqEaEX5YYySXJHm1YSIiGuqDeVcKcACbo740qtEEAAAQSCW8CVCbr2oLdv315at259RXT79etnEmV9r1w37d0+fvy4jBgxwry/vmnTJomKijKf9e7d2+zbqlUr04OuyXtERITfd8uKFSvM5HPjxo3zeg4euPwm5kAEMhXwtqb5DbVvl/sf/JsUK1Farst3VGLb3SrR0aXQRMD2ArQXtg8RBUQAAQQQQCDbAq5I0DWx1hnSPUPcn3rqKTNbu75DPnfuXKldu7aZBE4naNNE2TOLe+fOnWXy5MkmOR8+fLjpMR88eLBJpHXI+4YNG8y75/oOus7Eru+g6/JsR44cMe+6h4WF+QS+b98+c6x+IVChQgUSdJ/U2AmBnAt4W9O8aInSJjG/sXYTiUpJkAa1ikutujlbWjHnJeYMCPguQILuuxV7IoAAAggg4BQBVyTojz76qOzevdskzDoBnM6WrsPSddMh4zq0XZNx3aZNm2aS9JCQENFZ3XUSON0SExPNOuV6Hu1FHzt2bOps7zqkfcqUKWYSueTkZDPcff78+Vn2qDdp0kQuX75sZnPXc9epUyfL+4IHriyJ2AEBnwQyW9M8NF8+aXZnN2ndoY9EhOWTysXipVX71lIgfwGfzstOCNhFgPbCLpGgHAgggAACCFgn4IoE3TqOvD8TD1x5HwNK4GyBq9Y0XzhBfjz4hanU9VVulrieI6VMuUpSRo5Js9iaUq789c6uMKUPWgHai6ANPRVHAAEEEHCxAAm6zYLLA5fNAkJxHCPgbU3ziCJF5e5Oj0uDJndL4ctJUrNKqNx6exPH1I2CIpCRAO0F9wUCCCCAAALuEyBBt1lMeeCyWUAojiMEMlvTXF9laXD73dI+7q9SODJKKoYfk9Z3x0pERKQj6kUhEfAmQHvB/YEAAggggID7BEjQbRZTHrhsFhCKY2uBrNY0j+s5SipUqcma5raOIoXzV4D2wl85jkMAAQQQQMC+AiToNosND1w2CwjFsa0Aa5rbNjQULJcEaC9yCZrLIIAAAgggkIsCJOi5iO3LpXjg8kWJfYJZgDXNgzn61D2tAO0F9wMCCCCAAALuEyBBt1lMeeCyWUAojm0EfF3TvHhKvNStVYI1zW0TOQoSKAHai0DJcl4EEEAAAQTyToAEPe/sM7wyD1w2CwjFyXOBffv2yZEffpBjCcXkdEhh+WzbGlmz/EVJOn1K0q5pHlkgVKqVOiUt290poaGheV5uCoBAoAVoLwItzPkRQAABBBDIfQES9Nw393pFHrhsFhCKk6cC/fr2lVvqxUpCob/IsZ+/l2WZrGl+behRuaN1fbnmmrJ5Wl4ujkBuCtBe5KY210IAAQQQQCB3BEjQc8fZ56vwwOUzFTu6WEDXNF/x5jI5lny9nL2QIh+smiMfrV8sKZcuSdo1zYtcPiN1bwiX+o0auViDqiGQsQDtBXcGAggggAAC7hMgQbdZTHngsllAKE6uC/iypnlUZBGpGPmr3NmhtRQMK5jrZeSCCNhBgPbCDlGgDAgggAACCFgrQIJurWeOz8YDV44JOYFDBXxe0/zSMWl+x40SU7GSQ2tKsRGwRoD2whpHzoIAAggggICdBEjQ7RQNEeGBy2YBoTi5IuDLmuaRIcly/OA6eWLIEClWrFiulIuLIGBnAdoLO0eHsiGAAAIIIOCfAAm6f24BO4oHroDRcmIbCnhb0/zG2k2k44NDpVh0aYlOPii/nPheuj7QXSpUqGDDmlAkBHJfgPYi9825IgIIIIAAAoEWIEEPtHA2z88DVzbB2N2RAtlZ07xRgzJyQ42ajqwnhUYgkAK0F4HU5dwIIIAAAgjkjQAJet64Z3pVHrhsFhCKY7nAv3ftkj3f/MGa5pZfPDapAAAgAElEQVTLcsJgE6C9CLaIU18EEEAAgWAQIEG3WZR54LJZQCiOZQLHjx+VzR/8W35JKXvVmuYxVW6Wzj1HSplylYQ1zS0j50QuF6C9cHmAqR4CCCCAQFAKkKDbLOw8cNksIBQnxwK6pvmG99bLt78VZU3zHGtyAgT+J0B7wd2AAAIIIICA+wRI0G0WUx64bBYQiuO3wL59++Tr/Z/LuYtlJSFftHy9b5u8/cYUOXXiVwkJCZEGt98t7eP+Kqxp7jcxBwa5AO1FkN8AVB8BBBBAwJUCJOg2CysPXDYLCMXxS2DY8KFSoWx1OVukhiTE/yor3phqEnTdSperIHE9R0mFKjWl5OVfpVmz6qxp7pcyBwW7AO1FsN8B1B8BBBBAwI0CJOg2iyoPXDYLCMXJtsCm9evlwC/hcvZymGxdv0Q+WDVXks//IWEFw6V1h97S9M6uEhmaLDWuuyhNY1tk+/wcgAACfwrQXnAnIIAAAggg4D4BEnSbxZQHLpsFhOL4LODrmuYxYUel1d1NJapIMZ/PzY4IIHC1AO0FdwUCCCCAAALuEyBBt1lMeeCyWUAoTpYCvq5pXvTSCbmtYVnWNM9SlB0Q8E2A9sI3J/ZCAAEEEEDASQIk6DaLFg9cNgsIxfEq4Oua5kk/bZFGTRtLs2bNEEUAAYsEaC8sguQ0CCCAAAII2EiABN1GwdCi8MBls4BQnAwF0q9pvnThBDly8Auzb9o1zUtdOiK//PYfiYvrIhUqVEATAQQsFKC9sBCTUyGAAAIIIGATARJ0mwTCUwweuGwWEIpzhQBrmnNDIGAfAdoL+8SCkiCAAAIIIGCVAAm6VZIWnYcHLosgOY3lAt98uV92fXZMToayprnluJwQAT8EaC/8QOMQBBBAAAEEbC5Agm6zAPHAZbOAUBxJPJ0gH67ZKj8mlzVrmr/9xhT5Zt92I8Oa5twgCOSdAO1F3tlzZQT+P3t3AqdTvT9w/DuGGWYYY0mDZGkhyU5KlmxJXN1kubhFWcuNIq6dsuvKP612ihaR7RZlS0j6i6QoQq69GmMsWcf/9f31f547xswzz8yc55lzzvM5r1cvmeec3/n93r8zfuf7/DYEEEAAgUAJuCJAj4+Pl+eff1527NghBQsWlDFjxki1atWuM9PhuaNHj5bly5dLrly5pGfPntKhQwdznr9pZKQiFi5cKJMnT5aLFy9K48aNZeTIkRIeHu4zCV64MiLMuYEWWL96jez8T045m8Se5oG2Jv3gCPj7bz3tRXDqg7sggAACCCCAwLUCrgjQ+/XrJ8WLF5fevXubIF3/XLlypeTOnfua0i5YsECWLVsmU6dOlXPnzkm7du1k0qRJUqFCBfE3jbQeoB9//FHKli3r/Xj//v3y2GOPyXvvvSdFihSRvn37SuXKleWJJ54gQOe30PYC7Glu+yoig5kU8Pff+lBrL7Zv3y5LliyR2NhYadmyJYs6Jnu+PDb6o8cffzxbbRISEkw9HThwwORD85OZQ6/XdDQ93V2jfv36mUnGsmvWrVsnn3/+eZafvzlz5nht9DnW5zm7DjXW/OihedF3QI4/BZI/f9jwVCBwvYDjA3Tt5ahevbps3LhR8uTJY0qoPeOtW7eWBg0aXFPiJ598Ujp16iR16tQxP589e7YcPXpUBgwY4DONs2fPyvDhw2Xbtm3mHsOGDZOaNWtek3aLFi1M8O859EuAxMREE/jrsWvXLhk4cKAsXrzY53NIDzq/ptkp4O+e5gWS4qVWjTj2NM/OyuLeGRagvUidTEd6Pfvss3LjjTdK//HLM+zKBQgggEBmBMb3f1BOnPhNZs2aZd7PORBA4E8Bxwfox44dMz3h+u2r55g4caL51rRr167X1HPDhg1l7ty5prddj/Xr15u/jxo1ymcaGpznzZvXDKPfu3ev+UdEe+ijo6O96acM0AcNGmSC/kceecScc+HCBfP37777cysqPfRlMeWhvfB79uzh+UQg6AL+7mle9oZT0qjZA5IjR46g55EbIpAVAdqL1PUKFChgelI1QK94b8usEHMtAggg4LfAtxsXmQBd39lPnjzp93WciIDbBRwfoOswmR49esiKFSu8dTVlyhQT/OpQ9+RH7dq1ZenSpVKoUCHz4y1btpg54jpn3VcaVatWlbVr10r+/PnNdTpvvVevXuaF5uWXXzY/O3z4sDfw15/NmDFDGjVqJM2aNfNmQXvHf/rpJwkLCzM/e+CBB657vvbt20eA7vbfOpuV7/o9zV+Ug3t2mlwm39O8WI6jcn+T6nLjjUVtVgKyg4B/ArQXqTt52qQ77q4lu77a7B8mZyGAAAJZFLj1rgqy97s/3zeuXr2axdS4HAH3CDg+QD9+/Li0atVKNmz4c1VpPTTgLly4sHTr1u2amtKAWQPnkiVLmp+vXr1a5s+fb85PK42OHTtKpUqVpHTp0t60dMj70KFDpWnTpt6fpexBHzx4sLmuTZs25pwzZ85IrVq1ZOfOP/8hSutgiLt7frnsXhL2NLd7DZE/qwVoL1IX1d6rU6dOmR70Svf8xWp20kMAAQRSFdi+6SPTg64dYNrpxYEAAn8KOD5A12/catSoIWvWrJGYmBhTqC5dukjbtm3NyunJj+7du5ufe+amT5s2TfSFTYNpX2loD7p+ARAVFZXmc5MyQJ85c6ZJW+ed66GL1+l9ks9TTy0xAnR+NYMhwJ7mwVDmHnYToL1IvUZ0PZbOnTszB91uDyz5QcDlAsxBd3kFU7xMCzg+QNeS63xv7THv06ePCYR1uPqqVavMvPHp06eblTN1/reuWKpbn3lWcdfe7bFjx5rg3FcaOgc9MjLSzEHX7dkOHjwocXFxEhER4YVPGaAfOnRI2rdvL++++653Fffbb7/dDI33dRCgZ/pZ5kI/BNjT3A8kTnG1AO1F6tWrK5XrIqbam/7www9n60rldnsA1cazzk1222gvo+ZF86TvNpqfzBw63UPT0T81jexeYdzz/OnK9LqivP6ZmUOfYY+NppPdq7h7FgbWvGS3cWY8A3WNPndqo8+zHZ6/QJWTdBHIrIArAnRdLb1///6ydetW04s+YsQI70rtOsxdh7Z7hppPmDDBBOk6505XdfcsJOcrDR3SPm7cONOY6Z7mOtxde8h99ahrheh+6+PHj5fz58+bbUx0KH3yoD61SiNAz+yjzHXpCbCneXpCfB4KArQXoVDLlBEBBBBAAAHnCrgiQHcu//U5J0B3U23aoyzsaW6PeiAXCFgtQHthtSjpIYAAAgggkP0CBOjZXwfX5IAXLptViIOzw57mDq48so6AHwK0F34gcQoCCCCAAAIOEyBAt1mF8cJlswpxaHbY09yhFUe2EciAAO1FBrA4FQEEEEAAAYcIEKDbrKJ44bJZhTgoO7roygfvvy9Fb7hNfg2/WY4d3ifvz062p/mtd0mbzkMkrngZYU9zB1UsWUUgDQHaCx4NBBBAAAEE3CdAgG6zOuWFy2YV4pDsfP7557J5/UaJuqm+nL2UJJ8umSafr5wnSVeuSFS+/NKi9TNSo04LyXf1jFS9I49Ur1XLISUjmwggkJYA7QXPBgIIIIAAAu4TIEC3WZ3ywmWzCnFAdnRP801bjsqp8ELyw/Yv5MO3x8mp30+YnQpq3NdCmrf9h8RE55PS0SfkgZZNJDIi0gGlIosIIJCeAO1FekJ8jgACCCCAgPMECNBtVme8cNmsQmycHfY0t3HlkDUEgiBAexEEZG6BAAIIIIBAkAUI0IMMnt7teOFKT4jPVcCvPc3DLkq5Yn9IgwceAA0BBFwoQHvhwkqlSAgggAACIS9AgG6zR4AXLptViM2y4++e5tGnd8qBo7tl7JjxNisB2UEAAasEaC+skiQdBBBAAAEE7CNAgG6fujA54YXLZhVik+ycO3dWVv17jew/W0QSz56W5e9Pka83LJOrV69K/kJF5NG//1PKV64jsVfiJTLnEbmzYmWpXLmyTXJPNhBAIBACtBeBUCVNBBBAAAEEsleAAD17/a+7Oy9cNqsQG2Tnyw1fyI49SXImLEq+/mKZLFvwipw7fUpyhIdLvQc6SJOWXSU6Vw4pe8MpadTsAcmRI4cNck0WEEAg0AK0F4EWJn0EEEAAAQSCL0CAHnxzn3fkhctmFZKN2Tl86KB8vnqHHJM49jTPxnrg1gjYVYD2wq41Q74QQAABBBDIvAABeubtAnIlL1wBYXVUopcuX5LPln8qexMKyrmLV9jT3FG1R2YRCJ4A7UXwrLkTAggggAACwRIgQA+WtJ/34YXLTyiXnvbtN1vl629PSmKOWPY0d2kdUywErBKgvbBKknQQQAABBBCwjwABun3qwuSEFy6bVUgQsnPgwAH54IN3Ja5AGfktoowk/H5CPnx7nOzavsHcvUjxUtK201ApdVtFKXz1hNSrV05Kli4ThJxxCwQQsLMA7YWda4e8IYAAAgggkDkBAvTMuQXsKl64AkZry4RPJpyU11+eIrGl75ezl8Pli8/ek0+XTJeLF/6QiMg80qRlF6n7QHuJznFRKpS4LHUbNrBlOcgUAggEX4D2Ivjm3BEBBBBAAIFACxCgB1o4g+nzwpVBMAefvven3bJhw36JD79B9vzwtXwwZ7TEHz9sSqRbprX6+wCJLVhESkYclcYt6kpMvlgHl5asI4CA1QK0F1aLkh4CCCCAAALZL0CAnv11cE0OeOGyWYUEIDu6p/mny1bL/j/i5FRivCyd/7Js++pTc6fke5oXSIqXWjXi5I4KFQOQC5JEAAGnC9BeOL0GyT8CCCCAAALXCxCg2+yp4IXLZhVicXY8e5qfljyyac2H8smiN+T8uTPX7WlePM9hebhNK/Y0t9if5BBwkwDthZtqk7IggAACCCDwpwABus2eBF64bFYhFmUn+Z7mhw7slvdnvyhHDvxkUi95613SpvMQiSteRmLP/yybt66SqVOnWXRnkkEAAbcK0F64tWYpFwIIIIBAKAsQoNus9nnhslmFZDE7yfc0P3P+gnyy8A3ZuPpDuXo1SaLy5ZcWrZ+RGnVaSL6rZyQu9qTcXLqMVK5cOYt35XIEEAgFAdqLUKhlyogAAgggEGoCBOg2q3FeuGxWIVnITvI9zXWO+eJ3/yVnEuIlLCxMatzXQpq3/YfEROeT0tEn5IGWTSQyIjILd+NSBBAINQHai1CrccqLAAIIIBAKAgToNqtlXrhsViGZyE58/K+y+uMv5T9XispvJw7LB7NGy8+7/tekxJ7mmQDlEgQQSFWA9oIHAwEEEEAAAfcJEKDbrE554bJZhWQgO1flqqxd8ZnsOhYlZy/nkNX/ni1r/j1HLl+6yJ7mGXDkVAQQ8E+A9sI/J85CAAEEEEDASQIE6DarLV64bFYhfmZH9zTfuPEX+T1HIfY099OM0xBAIGsCtBdZ8+NqBBBAAAEE7ChAgG6zWuGFy2YVkk522NPcWfVFbhFwkwDthZtqk7IggAACCCDwpwABus2eBF64bFYhPrLj757mZW84JY2aPcCe5s6pWnKKgCMEaC8cUU1kEgEEEEAAgQwJuCJAf+211+T111+X8PBwU/iyZcvKggULroNISkqS0aNHy/LlyyVXrlzSs2dP6dChgzkvPj5enn/+edmxY4cULFhQxowZI9WqVcsQZsqTZ8+eLXPmzJFLly7JQw89JP379/fmMa2EeeHKEnlQLvZ3T/NiOY7K/U2qy403Fg1KvrgJAgiElgDtRWjVN6VFAAEEEAgNAVcE6C+88ILUqFFDHnzwQZ+1pkH7smXLZOrUqXLu3Dlp166dTJo0SSpUqCD9+vWT4sWLS+/evU2Qrn+uXLlScufOnakn4auvvjJB/ttvvy2RkZHSo0cPqVu3rnTu3NlnerxwZYo7KBdlZE/zqnfkkeq1agUlX9wEAQRCU4D2IjTrnVIjgAACCLhbwBUBugbTHTt2NEG6r+PJJ5+UTp06SZ06dcxp2sN99OhRGTBggFSvXl02btwoefLkMZ9p73rr1q2lQYMGcvbsWRk+fLhs27bNfD5s2DCpWbOmz3uNHz9eSpQoIe3btzfn/fDDDzJw4EBZsmQJAboDf6fY09yBlUaWEXC5AAG6yyuY4iGAAAIIhKSAKwL0rl27yr59++Ty5csSFxcnzz77rNRKpfeyYcOGMnfuXNNTrsf69evN30eNGmV609etW+d9CCZOnCixsbGiaWtwnjdvXjMEfu/evSbI19716OjoNB8a7dW/8847pVWrVuacU6dOSf369U2Q7+vghctev4fsaW6v+iA3CCDwXwHaC54GBBBAAAEE3CfgiAD9/Pnzpjc75dG8eXPp3r276Oc6/zxnzpyyZcsWeeaZZ2Tx4sVStOi1c39r164tS5culUKFCpmk9NzJkyeboeg6BH3FihXeW0yZMkV0zrr2zletWlXWrl0r+fPnN5/rvPVevXrJ7t27ZdGiRdfla968ebJp0yZ55513ZNq0aeZz7VHXe3/zzTfe8z/99NPrrn366adlz5497nvSHFYi9jR3WIWRXQRCUIAAPQQrnSIjgAACCLhewBEBekZrQXvQtbe6ZcuW11zaqFEjmTFjhpQsWdL8fPXq1TJ//nwToGtP94YNG7zn688KFy5shs5XqlRJSpcu7f1Mh7wPHTpUmjZt6jNrr776qgn6dR5727ZtZdasWfLxxx97r5kwYcJ112tAT4Ce0Rq39nz2NLfWk9QQQCAwAgTogXElVQQQQAABBLJTwJUBuvaga+96kyZNrrHV3nYNlHVeuR4aDB8/flwGDx5s5q+vWbNGYmJizGddunQx5zZu3Nj0oGvwHhUVlem6WrhwoVl8buTIkT7T4IUr08RZvpA9zbNMSAIIIBBEAdqLIGJzKwQQQAABBIIk4IoAXQNrXSHdM8S9b9++ZrV2nUM+ffp0qVy5slkEThdo00DZs4p7mzZtZOzYsSY4HzRokOkx79Onjwmkdcj7qlWrzNxznYOuK7HrHHTdnu3gwYNmrntERIRf1bR9+3ZzrX4hUKpUKQJ0v9SCexJ7mgfXm7shgEDWBQjQs25ICggggAACCNhNwBUB+lNPPSVbt241AbMuAKerpeuwdD26desmOrRdg3E9dFi5BulhYWGiq7rrInB6JCYmmn3KNR3tRR8xYoR3tXcd0j5u3DiziNzFixfNcPeZM2em26Ouq8VfvXrVrOauaVepUiXd+ueFK10iS09gT3NLOUkMAQSCKEB7EURsboUAAggggECQBFwRoAfJKii34YUr8MwJCQnyypRX5Mb8ReRCTCU5c/6CfLLwDdm4+kO5ejVJovLllxatn5EadVpIvqtnhD3NA18n3AEBBDIuQHuRcTOuQAABBBBAwO4CBOg2qyFeuAJfIWNffFEKF68lp8MLyLavPpXF7/5LziTES1hYDqnd8FFp8nBXiYnOJ6WjT8gDLZtIZERk4DPFHRBAAIEMCtBeZBCM0xFAAAEEEHCAAAG6zSqJF67AVYivPc2Llbpd2nYaKjeVKieFr56QevXKScnSZQKXGVJGAAEEsihAe5FFQC5HAAEEEEDAhgIE6DarFF64rK8QX3ua547KKw8+0lPubfCoRIWdlwolLkvdhn+u8s+BAAII2FmA9sLOtUPeEEAAAQQQyJwAAXrm3AJ2FS9c1tL62tO8yt1N5C/tn5WYmEJS4MKP0qp9c4nJF2ttBkgNAQQQCJAA7UWAYEkWAQQQQACBbBQgQM9G/NRuzQuXNRXia0/zgjcWlzaPD5bbyteQ/Jd/k41fzJNn+vQ12/FxIICAuwVee+01ef311yU8PNwUtGzZsrJgwYLrCp2UlCSjR4+W5cuXm+01e/bsKR06dDDnxcfHm60zdUvOggULypgxY6RatWpZgtMdPzRvs2bNMruJ+HPQXvijxDkIIIAAAgg4S4AA3Wb1xQtX1iskrT3Nc+aKkAYPPS4NH+okecJFSuf/Ve6tX8e8YHMggEBoCLzwwgtSo0YNefDBB30WWIP2ZcuWydSpU+XcuXPSrl07mTRpklSoUEH69etntvTs3bu3CdL1z5UrV0ru3LkzhXjp0iV59tlnpUiRIuaeX3/9tV/p0F74xcRJCCCAAAIIOEqAAN1m1cULV+YrxNee5rfcUV3adB4shYvcJMVyHJX7m1SXG28smvmbcSUCCDhSQIPpjh07miDd1/Hkk09Kp06dpE6dOua02bNny9GjR2XAgAFSvXp12bhxo+TJk8d8pr3rrVu3lgYNGsjZs2dl+PDhsm3bNvP5sGHDpGbNmularV+/Xu677z7TE6/X+nPQXvijxDkIIIAAAgg4S4AA3Wb1xQtXxivk0uVL8tnyT2VvQsHr9jTPG1tQHv5bX9H55nmTTrOnecZ5uQIBVwl07dpV9u3bJ5cvX5a4uDjTc12rVq3rytiwYUOZO3eu6SnXQwNo/fuoUaNMb/q6deu810ycOFFiY2NF09bgPG/evGYI/N69e02Qr73r0dHR6TpqnvSLAwL0dKk4AQEEEEAAAdcKEKDbrGoJ0DNWId9+s1W+/vakJOaITXVP8wdb9ZTo3HnY0zxjrJyNgGMFzp8/b3qzUx7NmzeX7t27i36u889z5swpW7ZskWeeeUYWL14sRYteO6Kmdu3asnTpUilUqJBJSs+dPHmymW/eo0cPWbFihfcWU6ZMEZ2zrr3zVatWlbVr10r+/PnN5zpvvVevXrJ7925ZtGjRdfmaN2+exMTEmJ/7CtB1LnzKQ79c2LNnj2PriowjgAACCCCAwPUCBOg2eyoI0P2rEPY098+JsxBAwLeABrn169eXli1bXnNio0aNZMaMGVKyZEnz89WrV8v8+fNNgN6qVSvZsGGD93z9WeHChc3Q+UqVKknp0qW9n+mQ96FDh0rTpk3TrQpfAbp+OZDy0EXlCNDTZeUEBBBAAAEEHCVAgG6z6iJA910h7GlusweW7CDgcAHtQdfe9SZNmlxTEu1tb9u2rZlXrse0adPk+PHjMnjwYDMMfc2aNd6e7y5duphzGzdubHrQNXiPiorKsAxD3DNMxgUIIIAAAgi4ToAA3WZVSoCedoX4s6d5/piCUjrPMWnQrC57mtvs2SY7CNhBQAPrunXreoe49+3b16ycrnPIp0+fbrZb1EXglixZIgsXLvSu4t6mTRsZO3asCc4HDRpkesz79OljVnHXIe+rVq0yc891DnpkZKSZg67bsx08eNDMdY+IiEi3+ATo6RJxAgIIIIAAAq4XIEC3WRUToF9fIf7uaV4o6XepXbuk3Hp7OZvVKtlBAAG7CDz11FNmn3ENmHUBuIEDB5ph6Xp069ZNdGi7BuN6TJgwwQTpYWFhoqu66yJweiQmJkr//v1NOjp/fMSIEd7V3nVI+7hx48wichcvXjTD3WfOnOlXjzoBul2eEvKBAAIIIIBA9gkQoGeffap3JkC/lsWfPc2jcybJHXHn5P6mjSVMwmxWo2QHAQQQCIwA7UVgXEkVAQQQQACB7BQgQM9O/VTuzQvXnyi+9jS/9Y7q0trsaV5cSoQflYbN7pGCBW+wWU2SHQQQQCCwArQXgfUldQQQQAABBLJDgAA9O9R93DPUX7j83dM8JilBalQqIJWqVrNZDZIdBBBAIDgCod5eBEeZuyCAAAIIIBBcAQL04Hqne7dQfuHyZ0/zvLkj5dbYeGncvInkypkrXU9OQAABBNwqEMrthVvrlHIhgAACCCBAgG6zZyAUX7iu39N8lPy8a6upmWKlbpe2nYbKTaXKSZwck3oNK0rxm262Wa2RHQQQQCD4AqHYXgRfmTsigAACCCAQXAEC9OB6p3u3UHrh8ndP83zyh1S8LYfcc1+ddP04AQEEEAgVgVBqL0KlTiknAggggAACBOg2ewZC5YUrI3uaN2nRUKKiom1WU2QHAQQQyF6BUGkvsleZuyOAAAIIIBBcAQL04Hqneze3v3Cxp3m6jwAnIIAAAn4JuL298AuBkxBAAAEEEHCZAAG6zSrUzS9c7Glus4eN7CCAgKMF3NxeOLpiyDwCCCCAAAJZECBAzwJeIC514wsXe5oH4kkhTQQQCHUBN7YXoV6nlB8BBBBAAAECdJs9A2564WJPc5s9XGQHAQRcJeCm9sJVFUNhEEAAAQQQyIIAAXoW8AJxqVteuNjTPBBPB2kigAAC/xVwS3tBnSKAAAIIIIDAfwUI0G32NDj9heu6Pc1nj5Kff2BPc5s9ZmQHAQRcIOD09sIFVUAREEAAAQQQsFyAAN1y0qwl6NQXLvY0z1q9czUCCCCQUQGnthcZLSfnI4AAAgggEEoCrgnQDxw4IN27d5d27dpJ586dU63DpKQkGT16tCxfvlxy5colPXv2lA4dOphz4+Pj5fnnn5cdO3ZIwYIFZcyYMVKtWrUsPQtvvvmmLFiwwKRRpkwZGTdunBQqVMhnmk584WJP8yw9JlyMAAIIZErAie1FpgrKRQgggAACCISQgCsC9M2bN8vIkSNFX1aqVKmSZoCuwfKyZctk6tSpcu7cORPMT5o0SSpUqCD9+vWT4sWLS+/evU2Qrn+uXLlScufOnanHYdu2bTJ8+HB57733JCoqSiZPniwJCQkyYsQI1wTo7GmeqUeDixBAAAFLBAjQLWEkEQQQQAABBGwl4IoAfc+ePZIvXz4TDOfPnz/NAP3JJ5+UTp06SZ06dUwlzJ49W44ePSoDBgyQ6tWry8aNGyVPnjzmM+1db926tTRo0EDOnj1rgm0NuvXzYcOGSc2aNX1W5Lp16+SDDz6Q119/3Zz3ySefyOrVq+Wll15yRYDOnua2+j0mMwggEIICBOghWOkUGQEEEEDA9QKuCNA9taS94QUKFEgzQG/YsKHMnTvX9JTrsX79evP3UaNGmd50Dao9x8SJEyU2Nla6du1qgvO8efOaIfB79+41Qb72rkdHR6f5gFy8eFH+/ve/y7333isVK1aUV199VcaPHy+33nqrowN09jR3/b8JFA5qsycAACAASURBVBABBBwiQIDukIoimwgggAACCGRAwBEB+vnz501vdsqjefPmZt65vwF67dq1ZenSpd554Fu2bDFDz3W+eY8ePWTFihXetKZMmSI6Z12HuletWlXWrl1reuf10HnrvXr1kt27d8uiRYuuy9e8efMkJiZGPvvsM9Pbrum0bNlS+vfvLzlz5vSer39PeXz00UeiIwLsdrCnud1qhPwggECoCxCgh/oTQPkRQAABBNwo4IgA3V/49HrQGzVqJDNmzJCSJUuaJHXI+fz5802A3qpVK9mwYYP3VvqzwoULS8eOHaVSpUpSunRp72c65H3o0KHStGnTNLP2xRdfyCuvvGLup/PYdXG6S5cumXt5jm+++ea669u2bWu7AJ09zf19AjkPAQQQCJ4AAXrwrLkTAggggAACwRIIqQBde9s1ANZ55XpMmzZNjh8/LoMHD5YaNWrImjVrTM+3Hl26dDHnNm7c2PSga/Cui735ewwZMsQsWKeBvx465L1WrVqSWlCePE07vXD53tO8rLTtNERuKlVO4uSY1GtYUYrfdLO/PJyHAAIIIJBFATu1F1ksCpcjgAACCCCAwP8LuD5Anz59ulSuXNksArdkyRJZuHChdxX3Nm3ayNixY01wPmjQINNj3qdPH7OKuw55X7VqlZl7rnPQIyMjzRx03Z7t4MGDEhcXJxEREWk+SNpz/v3338uECRPMsHYdPj9r1ix5//33fT58dnjhYk9z/n1AAAEE7C9gh/bC/krkEAEEEEAAAWcJuD5A79atm+jQdg3G9dCAWYP0sLAw0VXddRE4PRITE80c8a1bt5pedN0OzbPauw5p1z3MdRE57QnX4e4zZ8702aOu5+nic5s2bZLw8HC58cYb5YUXXpBSpUrZOkBnT3Nn/QKTWwQQCF0BAvTQrXtKjgACCCDgXgFXBehuqKbseuFiT3M3PD2UAQEEQkkgu9qLUDKmrAgggAACCARbgAA92OLp3C87XrjY09xmDwHZQQABBPwQyI72wo9scQoCCCCAAAIIZEGAAD0LeIG4NJgvXOxpHogaJE0EEEAgOALBbC+CUyLuggACCCCAAAIE6DZ7BoLxwsWe5jardLKDAAIIZEIgGO1FJrLFJQgggAACCCCQBQEC9CzgBeLSQL9wsad5IGqNNBFAAIHgCwS6vQh+ibgjAggggAACCBCg2+wZCNQLF3ua26yiyQ4CCCCQRYFAtRdZzBaXI4AAAggggEAWBAjQs4AXiEutfuE6mXBSvt74pez5NUbOXs4hq/89W9b8e45cvnRRckfllQcf6Sn3NnhU8skfUvG2HHLPfXUCUSzSRAABBBCwWMDq9sLi7JEcAggggAACCGRCgAA9E2iBvMSqF67t27fLwH/2l9aP9pGEXEVkzw9fywdzRkv88cMm+1XubiJ/af+sxOQvLKUij0jTvzSUqKjoQBaNtBFAAAEELBSwqr2wMEskhQACCCCAAAJZFCBAzyKg1Zdb9cJVpUoV2bd/nwwaPlvef/9N2fbVpyarBW8sLm0eHyy3la8hhZJ+l9q1S8qtt5ezuhikhwACCCAQYAGr2osAZ5PkEUAAAQQQQCADAgToGcAKxqlWvXCFhYWZ7Lb86yOy5KNFkjNXhDR46HFp+FAnic6ZJHfEnZP7mzaWMPnzPA4EEEAAAWcJWNVeOKvU5BYBBBBAAAF3CxCg26x+rXrh8gToMUWKyP1315fydf4mhYsUlxLhR6Vhs3ukYMEbbFZysoMAAgggkBEBq9qLjNyTcxFAAAEEEEAgsAIE6IH1zXDqVr1wderUSebMmWPuX61qZen51GhJPLlTnu3XP8N54gIEEEAAAfsJWNVe2K9k5AgBBBBAAIHQFSBAt1ndW/XClZCQICNGjBBdLE6P+vXrS58+fSQ2NtZmJSY7CCCAAAKZEbCqvcjMvbkGAQQQQAABBAIjQIAeGNdMp8oLV6bpuBABBBAIKQHai5CqbgqLAAIIIBAiAgToNqtoXrhsViFkBwEEELCpAO2FTSuGbCGAAAIIIJAFAQL0LOAF4lJeuAKhSpoIIICA+wRoL9xXp5QIAQQQQAABAnSbPQO8cNmsQsgOAgggYFMB2gubVgzZQgABBBBAIAsCBOhZwAvEpbxwBUKVNBFAAAH3CdBeuK9OKRECCCCAAAIE6DZ7BnjhslmFkB0EEEDApgK0FzatGLKFAAIIIIBAFgQI0LOAF4hLeeEKhCppIoAAAv8VOHDggHTv3l3atWsnnTt3TpUmKSlJRo8eLcuXL5dcuXJJz549pUOHDubc+Ph4ef7552XHjh1SsGBBGTNmjFSrVi1LxAsXLpTJkyfLxYsXpXHjxjJy5EgJDw/3mSbtRZbIuRgBBBBAAAFbChCg26xaeOGyWYWQHQQQcJXA5s2bTfCr/9ZWqVIlzQB9wYIFsmzZMpk6daqcO3fOBPOTJk2SChUqSL9+/aR48eLSu3dvE6TrnytXrpTcuXP7ZfXjjz9K2bJlvefu379fHnvsMXnvvfekSJEi0rdvX6lcubI88cQTBOh+iXISAggggAAC7hEgQLdZXRKg26xCyA4CCLhKYM+ePZIvXz4TDOfPnz/NAP3JJ5+UTp06SZ06dUz5Z8+eLUePHpUBAwZI9erVZePGjZInTx7zmfaut27dWho0aCBnz56V4cOHy7Zt28znw4YNk5o1a15j2KJFCxP8ew79EiAxMdEE/nrs2rVLBg4cKIsXLyZAd9XTR2EQQAABBBBIX4AAPX2joJ5BgB5Ubm6GAAIhKqC94QUKFEgzQG/YsKHMnTvX9JTrsX79evP3UaNGmd70devWeeUmTpwosbGx0rVrVxOc582b1wyB37t3rwnytXc9Ojrae37KAH3QoEEm6H/kkUfMORcuXDB//+677wjQQ/T5pNgIIIAAAqErQIBus7r/61//Ks8995zNckV2EEAAgewR8PRg+3v38+fPm97slEfz5s3NvHPPkV6AXrt2bVm6dKkUKlTIXLJlyxYzR1znm/fo0UNWrFjhTWvKlCmic9Z1qHvVqlVl7dq1pndeD5233qtXL0lISJCXX37Z/Ozw4cPewF9/NmPGDGnUqJE0a9bMm6Z+WfvTTz9JWFiY+dnTTz99XZmOHDlCe+Hvg8F5CCDgeoGMtheuB6GAjhUgQLdZ1aU359BO2dXFjHQRo/QWMrJTnsmLfwKXLl0yJ+riWBzuErh8+bIJJiMiIhxRsJkzZwYkn+kF6Bowa+BcsmRJc//Vq1fL/PnzTYDeqlUr2bBhgzdf+rPChQtLx44dpVKlSlK6dGnvZzrkfejQodK0aVPvz1L2oA8ePNhc16ZNG3POmTNnpFatWrJz507vNRqspzzGjRsXEJtAJEp7EQhVe6RJe2GPeghELmgvAqFKmgikL0CAnr4RZ6Qh8MILL0j9+vWlbt26GLlM4O2335arV6+ahas43CWgQ7M1uBwyZIi7CpbB0qQXoGtve9u2bc28cj2mTZsmx48fFw2ma9SoIWvWrJGYmBjzWZcuXcy5uvq69qCrb1RUVJo5Shmg65cQmrbOO9dDF57T+ySfp57B4tnudNoL21WJZRmivbCM0nYJ0V7YrkrIUIgIEKCHSEUHopi8cAVC1R5p8sJlj3oIRC544fpTNbUAffr06Wb1dJ3/vWTJEtGtzzyruGvv9tixY01wrnPGtce8T58+JpjWIe+rVq0yc891DnpkZKSZg64jUA4ePChxcXHXjFhIGaAfOnRI2rdvL++++653Fffbb7/dDI13y0F74ZaavL4ctBfurVvaC/fWLSWztwABur3rx9a544XL1tWTpczxwpUlPltfzAtX2gF6t27dzFxwz1DzCRMmmCBd54Hrqu66CJweuuJ6//79ZevWraYXfcSIEd7V3nVIuw49V2cd1q3D3bWH3FePuqap+62PHz9edA59vXr1zFB6p0xD8OeBp73wR8mZ59BeOLPe/Mk17YU/SpyDgPUCBOjWm4ZMirxwubeqeeFyb93ywuXeurVzyWgv7Fw7Wcsb7UXW/Ox8Ne2FnWuHvLlZgADdzbUb4LLpgkkVK1aUChUqBPhOJB9sAV0QS+ega28ih7sEdEj2Dz/8YLYK40AgWAK0F8GSDv59aC+Cbx6sO9JeBEua+yBwrQABOk8EAggggAACCCCAAAIIIIAAAjYQIEC3QSWQBQQQQAABBBBAAAEEEEAAAQQI0HkGEEAAAQQQQAABBBBAAAEEELCBAAG6DSqBLCCAAAIIIIAAAggggAACCCBAgM4zgAACCCCAAAIIIIAAAggggIANBAjQbVAJ2ZWFAwcOSPfu3c1qzp07d041G/Hx8fL888+LruRZsGBBszdvtWrVzLn6s3/+85/y66+/Srly5eRf//qXFClSJNPF+eOPP2TIkCGyfft2SUpKkoYNG8qgQYMkR44cmU4zVC70ty58naf7PU+ePNns3dy4cWMZOXKkhIeHZ5rQ17OT6URD9MK1a9fKc889J/PmzZPy5cunquCrbv19Pvzl5XfVXyn3nEd74Z669PffA9oLZ9Y57YUz641cI5BcgAA9RJ+HzZs3mwDstttukypVqqQZoPfr10+KFy8uvXv3NgG5/rly5UrJlSuXCeJGjBghdevWlTlz5simTZvkrbfeyrTom2++KYcOHZIXX3xRLl26JF26dJG//e1v8uCDD2Y6zVC48MqVK37Vha/z9u/fL4899pi899575kuWvn37SuXKleWJJ57wi/DYsWOSO3duiY2N9Z6f1rOj53H4LzBjxgxZs2aNnDt3TkaPHp1qgO6rbv19PvzPkQi/qxnRcv65tBfOr0NPCfz994D2wpl1TnvhzHoj1wikFCBAD9FnYs+ePZIvXz4TkOXPnz/VAF17satXry4bN26UPHnyGKmePXtK69atpVChQjJq1ChZsGCB+bmee88998iqVatMutrbor3fx48fNwH++PHjpWjRoj619Zy4uDh5/PHHzXka/N95553mfhxpC3z77bc+68Jzpa/z3n33XUlMTBQNqvXYtWuXDBw4UBYvXmz+vm7dOpk4caKcP39e7r77blM3ERER3ky99tprUqZMGe+XKb6enQYNGlCdGRDQ4Khq1arm92Lo0KGpBui+6nbfvn0+n4/06ja1rPK7moEKdMGptBcuqMT/LwLthXvqMrWS0F64u34pXegIEKCHTl2nWtJJkyZJgQIFUg3QtVdUh7/rC7zn0CBNe0m1l1V7zPVF3XM8+uijMmzYMKlQoYI0b95cBgwYIPXq1TNB/CeffCIzZ870qX3w4EHTa/7000/LmTNnzDVTp06VqKioEK8l38VfsmRJmnVRsWJF78W+ztMvavTLmEceecScf+HCBfP37777To4ePSpt2rSR999/33zJ0r9/f7n11lvN9AjPkTJA9/XsdO3alfrMhEDbtm1l+PDhqQbovupWR0ek9bt6ww03pFu3qWWV39VMVKALLqG9cH4l0l44vw79KQHthT9KnIOAfQUI0O1bN1nK2ddffy0vvPDCdWnonPHatWt7f+7rhUt7wXv06CErVqzwnj9lyhTTW6493T/88IMZJu85OnbsKL169ZKYmBgzN33p0qXmo8uXL4sGivrNvQbt2huT/ChZsqS8+uqrcvXqVZkwYYK538mTJ02vnwb6HL4FNHBOqy5q1arlvdjXeR988IE0atRImjVr5j1fpz/89NNPMnv2bDly5IgMHjzYfPbVV1+Zuera696hQwezBkFCQoKZ9hAdHW16e/W5SevZ0WkSHBkX8PXC5atuf/nllzSfDx0pkVrdzpo1K9WRK/r7qF/M8Lua8fqz8xW0F3auHWvzRnthraddU6O9sGvNkC8E/BMgQPfPybVn+QrQdXh6q1atZMOGDd7y6yJxhQsXNgH6559/bhaG8xwtW7Y0Xwro4mAahOk5nuPUqVOyfPly0R67tA7NiwZ62kv4+++/yz/+8Q8zB/3hhx92rb8VBdMvQtKqi0qVKnlv4es8DdD1XO0p10NHMGhwv3PnThk3bpx89NFHZiqEHjo3UUdR6KJyniNlD7qvZ6dbt25WFDvk0vD1wuWrbjVAT+v50FEq6dVtatD8robc42cKTHvh/HqnvXB+HfpTAtoLf5Q4BwH7ChCg27dugpIzXy9c2ktWo0YNs0CV9orroUPQ9R/+YsWKmR5Vzxxl7SWvWbOmOVd75HSubPIAzp/C6KJz2nN30003mdO/+OILs2q1LkjFkbbA999/n2ZdJF+0zdd5ixYtMusF6LxzPXRBQK3fZcuWmTrRXnId2p7WkTJA9/XsaD1zZFzA1wuXr7o9fPhwms+HBufp1W1qOeV3NeP154YraC+cX4u0F86vQ39KQHvhjxLnIGBfAQJ0+9ZNUHKW8oVLh6/rsHXtvdaecl3oTf/s06ePCdp02LIuBKfzwps2bWoC8Tp16phV3PXnb7/9tulh1d50nUuuK7BrsKbzYHURMV+H9qzqnHUdNq350N56vY9uL8WRtoBapVUX//nPf0ydaD36Ok9Xz2/fvr0Ztu5Zxf322283Uxb0CxcdyTB9+nSz6r/OTz9x4oSUKFHCm6mUAbp+kNazkzdvXqozEwIpX7iS/67qFohpPQO+6t2fuk0tq/yuZqICXXAJ7YXzK5H2wvl16E8JaC/8UeIcBOwrQIBu37oJSs5SvnBp8KVzkXVBNw3GdGVv7TndunWr6UXX1bs1INdj9+7d5jN9yb/lllvkpZde8gZtuoiUnqvn6AvBAw88cM189dQKpz19usicBpUa1OtcZk3Ds4J8UEAcepO06uKbb74x+9jrlydhYWE+60ynIOiif7pSu35Rol+QeFZq15X89TMNzPVn+gVOeqvr+3p2HMqcrdlO+cKV8nfV1++jr88yU7f8rmbro5BtN6e9yDZ6S29Me2Eppy0To72wZbWQKQT8FiBA95uKExFAAAEEEEAAAQQQQAABBBAInAABeuBsSRkBBBBAAAEEEEAAAQQQQAABvwUI0P2m4kQEEEAAAQQQQAABBBBAAAEEAidAgB44W1JGAAEEEEAAAQQQQAABBBBAwG8BAnS/qTgRAQQQQAABBBBAAAEEEEAAgcAJEKAHzpaUEUAAAQQQQAABBBBAAAEEEPBbgADdbypORAABBBBAAAEEEEAAAQQQQCBwAgTogbMlZQQQQAABBBBAAAEEEEAAAQT8FiBA95uKExFAAAEEEEAAAQQQQAABBBAInAABeuBsSRkBBBBAAAEEEEAAAQQQQAABvwUI0P2m4kQEEEAAAQQQQAABBBBAAAEEAidAgB44W1JGAAEEEEAAAQQQQAABBBBAwG8BAnS/qTgRAQQQQAABBBBAAAEEEEAAgcAJEKAHzpaUEUAAAQQQQAABBBBAAAEEEPBbgADdbypORAABBBBAAAEEEEAAAQQQQCBwAgTogbMlZQQQQAABBBBAAAEEEEAAAQT8FiBA95uKExFAAAEEEEAAAQQQQAABBBAInAABeuBsSRkBBBBAAAEEEEAAAQQQQAABvwUI0P2m4kQEfAuMHTtWzp07Jy+++KJtqOyYJ9vgkBEEEEAgmwTs+G+zHfOUTdXDbRFAAIFsFSBAz1Z+bm4XgYceekg6dOgg7du3vyZLx44dk7p168qnn34qpUqV8pldO77cZDRP//znP+WJJ56Q22+/3ZR106ZNMmnSJPnwww8tr6qU97L8BiSIAAIIBECA9uJPVNqLADxcJIkAAgiICAE6jwECIvLWW2/J2rVr5b333rvGY/r06fLJJ5/IwoUL03XKaDCcboIWnJCRPF28eFEaNmwoM2bM8Abo+gXFmjVrrvviIqtZS+1eWU2T6xFAAIFgCNBeiNBeBONJ4x4IIBCqAgTooVrzlPsagaNHj0r9+vVNMFq8eHHvZ3/5y1/k0Ucflccee0zi4+NlzJgxsnnzZklMTJTy5cubv5cpU8acnzwYPnTokNx///2ya9cuyZkzpze92267TVatWiUlS5Y0P9MvBN58802TdsWKFWXkyJFyyy23XFc7Z8+elXr16smiRYukb9++8sMPP5he7TvuuEO2bt0qL7zwguzdu9ekq59roJ0yT/r3nTt3yr/+9S/z55UrV8zoAM13rly55JFHHjH5zZcvn4SHh8vo0aNN3seNG2dGEGjeTp8+LS+99JI3f1pOvdcXX3whRYoU8as8ly9fTvVeTZo0kW+++cbkR8uXP39+adOmjTzzzDOSI0eO60xefvll+eqrr+Tdd9+VsLAwUaMHH3xQBg4caP7kQAABBAIhQHtBexGI54o0EUAAAY8AATrPAgL/L6BD3OvUqSM9evQwP9GAt3nz5rJx40YpVKiQXLp0ST7++GNzTlRUlIwaNUqOHz8u06ZNy1SArkGtBr2vvPKKCaznz59vgk3tsY+MjLymXjT4rFy5slStWtUMQa9QoYIJiDVg1mBUvyi49957TYD79NNPy4IFC0S/DEjZg37w4EH55ZdfTDrnz5+XLl26iA7X1D/1uPPOO+Wjjz7y9qDrFxaeAH379u3SqVMnExR78qc9SV9++aXMnj3bBOn+lie1e/3+++/SqFEj6d+/v7Ro0UIOHz5svmzQ/+/evft1z6nWx1//+lf529/+ZqYn6L1/++03mTJlCs80AgggEFAB2gvai4A+YCSOAAIhLUCAHtLVT+GTC3zwwQcya9YsEyDroT3N2qOsw9xTO7Tn+rnnnpPPP/88UwH6448/bnqSW7Zs6U2+Zs2aJsC8++67Uw3QtVdbe5U9x+uvvy7ai60Buuf4xz/+YYJz7XlOb4i7Xn/gwAGZMGFCugG6nqC95QMGDBDt7dZD8+4pR0bKk1qA/uqrr8q2bdvMEHvPoaMV9AsHtU7t0J52va8G5zqKQL9AKViwIA82AgggEFAB2gvfATrtRUAfPxJHAAGXCxCgu7yCKZ7/Ajps/Z577jFDx8uVK2eGqHt6cDUV7S3XHmMNIrX3Vnugz5w5Y4a865HRIe61a9eWkydPmuHZnkOHnY8fP/6aoF0/8/Sgr169Wm6++Wbv+foFgQalOiTdcyQlJZmeZQ3aUwbo3333nfnCYf/+/XL16lXRXusaNWrI//zP//gVoE+ePNlcq+drT7z2vmv58+bNKxkpT2oB+rPPPis33XSTMfcc6lulShUzikFHDKR2aF40uNc/mzVr5n+FcyYCCCCQSQHai/QDdNqLTD5cXIYAAiEvQIAe8o8AAMkFtLdWV2tv3Lix6ZnV4DNPnjzmFO0t1qHh/fr1k+joaNmyZYvppfY3QL9w4YIZmu6Zg16rVi0zfFznvqd3eAJ0XVX9hhtu8J7eu3dvKVasmOnVTu1IHqDrFwxNmzaV4cOHm2HjGtRrb70O5fc3QN+3b588/PDDZpi7DmvXEQY6RF+PjJQntQBd7XU+f0YDdP2SQufIa11069bNy6Bz5XUkgk5J0NEQ+oWCLmzUp08f8wVMWse8efPMFzHr1683p+i8f90+r2PHjulVE58jgEAICdBepD0lSh8D2osQ+mWgqAggYKkAAbqlnCTmdAEN9PRbf50LrQsBTZw40RRJ53prcK4rvWsvrx7vv/++6EJlqQXo2jOuw9W1t117l/XYs2eP6eH1BOga8Om8cg340zvSCtA1wNZAUuecpxeg6311j3bPkHw9X4Nb7bX3BOh33XWX6NBNXXxOj+Rz0D3pa4D+1FNPyWuvvWaCYs+CdBkpj6aV8l5aFvWaOXOmtyhq27NnTzO3PvlIA88Jn332mRnargvt6UJ+Wie33nqr6OrzgwYNMmnpgnj6ZYIG7Fov2lOvf0/t0NEIes6yZcu8K/rrSIO2bdvKnDlzvF/WpFdffI4AAu4XoL2gvaC9cP/vOSVEIDsECNCzQ5172lZAe1h1mLsuAqe9z/fdd5/JqwZpOhRcA9J27drJ999/bwJAbZxTC9D1Gl0hXYNLXcRMe881EF+xYoU3QNdF1bQHRoNmPVeHc2sPuQ5Pj4iIuMYorQBdV3/XAPnvf/+72QpNVzvfsWOHlC5d2qwGn7wHXXu7W7VqZRaiK1u2rOl11uBWh6Z7AnRdcE5XrteeaF1tXYeWexaJ82RI5+lrkK+Br+bXk9eMlEfTSnkvtdQvMNRJ8+BZJE7PU6eUR0JCgklDpwSony7Wp+sH6JcVnu3ydCGnuXPnmpXp1VUPncOvC/IlX10/Zdq6cn/yvd81uNcvaBo0aGDbZ5eMIYBAcAVoL2gv9ImjvQju7x13QyAUBAjQQ6GWKWOGBAYPHmx6yjXgTD63W3uTPSu36xZrujBZ165dTRCrR8r53l9//bUJvk+dOmVWPddztddZe2I926wtXrzY9P7q8Gvtaa9WrZoZMu5vgK73/fbbb02Qqn9q0KnBt84/157klHny3F/nz2uwqUPeNaj1BOha5iFDhpi56ZqmDu9PGaCfOHHCDBtv3bq18Uh++FsevSblvXQ+u86R14Xw9M+YmBjzhYL2eCevB8/99Oe6PZxngTsdCaAvSrqAna7mrqMg9MsW7ZnXIe06bUEPXQVfA25fi8mlfOHSYe76ZYhntfsMPVCcjAACrhWgvaC9oL1w7a83BUMg2wQI0LONnhsjgECgBHRkgAbkGqC/8847ZkSErpivh36xoKMIMtKDrlvPadCvX7JwIIAAAgi4R4D2wj11SUkQcIsAAbpbapJyIICAV0BHKWgArkPcde6/LvrmmYPeq1cv0YXgdu/ebdYT8KwRkJwvtSGLlSpV8vbCQ40AAggg4A4B2gt31COlQMBNAgTobqpNyoIAAkZA94bXofqexeDeeOMNE5DrXH5d+V4XqGvevLmZq55egK7rD2jAri9xqZ0LOQIIIICAcwVoL5xbd+QcAbcKEKC7tWYpFwIhLqBz6HUBPM9Cf8k5dD65zl3X+fXpHTr/XPc87tSpU3qn8jkCCCCAgAMFaC8cWGlkGQEXCxCgu7hyKRoCCCCArPW+6AAAIABJREFUAAIIIIAAAggggIBzBAjQnVNX5BQBBBBAAAEEEEAAAQQQQMDFAgToLq5cioYAAggggAACCCCAAAIIIOAcAQJ059QVOUUAAQQQQAABBBBAAAEEEHCxAAG6iyuXoiGAAAIIIIAAAggggAACCDhHgADdOXVFThFAAAEEEEAAAQQQQAABBFwsQIDu4sqlaAgggAACCCCAAAIIIIAAAs4RIEB3Tl2RUwQQQAABBBBAAAEEEEAAARcLEKC7uHIpGgIIIIAAAggggAACCCCAgHMECNCdU1fkFAEEEEAAAQQQQAABBBBAwMUCBOgurlyKhgACCCCAAAIIIIAAAggg4BwBAnTn1BU5RQABBBBAAAEEEEAAAQQQcLEAAbqLK5eiIYAAAggggAACCCCAAAIIOEeAAN05dUVOEUAAAQQQQAABBBBAAAEEXCxAgO7iyqVoCCCAAAIIIIAAAggggAACzhEgQHdOXZFTBBBAAAEEEEAAAQQQQAABFwsQoLu4cikaAggggAACCCCAAAIIIICAcwQI0J1TV+QUAQQQQAABBBBAAAEEEEDAxQIE6C6uXIqGAAIIIIAAAggggAACCCDgHAECdOfUFTlFAAEEEEAAAQQQQAABBBBwsQABuosrl6IhgAACCCCAAAIIIIAAAgg4R4AA3Tl1RU4RQAABBBBAAAEEEEAAAQRcLECA7uLKpWgIIIAAAggggAACCCCAAALOESBAd05dkVMEEEAAAQQQQAABBBBAAAEXCxCgu7hyKRoCCCCAAAIIIIAAAggggIBzBAjQnVNX5BQBBBBAAAEEEEAAAQQQQMDFAgToLq5cioYAAggggAACCCCAAAIIIOAcAQJ059QVOUUAAQQQQAABBBBAAAEEEHCxAAG6iyuXoiGAAAIIIIAAAggggAACCDhHgADdOXVFThFAAAEEEEAAAQQQQAABBFwsQIDu4sqlaAgggAACCCCAAAIIIIAAAs4RIEB3Tl2RUwQQQAABBBBAAAEEEEAAARcLEKC7uHIpGgIIIIAAAggggAACCCCAgHMECNCdU1fkFAEEEEAAAQQQQAABBBBAwMUCBOgurlyKhgACCCCAAAIIIIAAAggg4BwBAnTn1BU5RQABBBBAAAEEEEAAAQQQcLEAAbqLK5eiIYAAAggggAACCCCAAAIIOEeAAN05dUVOEUAAAQQQQAABBBBAAAEEXCxAgO7iyqVoCCCAAAIIIIAAAggggAACzhEgQHdOXZFTBBBAAAEEEEAAAQQQQAABFwsQoLu4cikaAggggAACCCCAAAIIIICAcwQI0J1TV+QUAQQQQAABBBBAAAEEEEDAxQIE6C6uXIqGAAIIIIAAAggggAACCCDgHAECdOfUFTlFAAEEEEAAAQQQQAABBBBwsQABuosrl6IhgAACCCCAAAIIIIAAAgg4R4AA3Tl1RU4RQAABBBBAAAEEEEAAAQRcLECA7uLKpWgIIIAAAggggAACCCCAAALOESBAd05dkVMEEEAAAQQQQAABBBBAAAEXCxCgu7hyKRoCCCCAAAIIIIAAAggggIBzBAjQnVNX5BQBBBBAAAEEEEAAAQQQQMDFAgToLq5cioYAAggggAACCCCAAAIIIOAcAQJ059QVOUUAAQQQQAABBBBAAAEEEHCxAAG6iyuXoiGAAAIIIIAAAggggAACCDhHgADdOXVFThFAAAEEEEAAAQQQQAABBFwsQIDu4sqlaAgggAACCCCAAAIIIIAAAs4RIEB3Tl2RUwQQQAABBBBAAAEEEEAAARcLEKC7uHIpGgIIIIAAAggggAACCCCAgHMECNCdU1fkFAEEEEAAAQQQQAABBBBAwMUCBOgurlyKhgACCCCAAAIIIIAAAggg4BwBAnTn1BU5RQABBBBAAAEEEEAAAQQQcLEAAbqLK5eiIYAAAggggAACCCCAAAIIOEeAAN05dUVOEUAAAQQQQAABBBBAAAEEXCxAgO7iyqVoCCCAAAIIIIAAAggggAACzhEgQHdOXZFTBBBAAAEEEEAAAQQQQAABFwsQoLu4cikaAggggAACCCCAAAIIIICAcwQI0J1TV+QUAQQQQAABBBBAAAEEEEDAxQIE6C6uXIqGAAIIIIAAAggggAACCCDgHAECdOfUFTlFAAEEEEAAAQQQQAABBBBwsQABuosrl6IhgAACCCCAAAIIIIAAAgg4R4AA3Tl1RU4RQAABBBBAAAEEEEAAAQRcLECA7uLKpWgIIIAAAggggAACCCCAAALOESBAd05dkVMEEEAAAQQQQAABBBBAAAEXCxCgu7hyKRoCCCCAAAIIIIAAAggggIBzBAjQnVNX5BQBBBBAAAEEEEAAAQQQQMDFAgToLq5cioYAAggggAACCCCAAAIIIOAcAQJ059QVOUUAAQQQQAABBBBAAAEEEHCxAAG6iyuXoiGAAAIIIIAAAggggAACCDhHgADdOXVFThFAAAEEEEAAAQQQQAABBFwsQIDu4sqlaAgggAACCCCAAAIIIIAAAs4RIEB3Tl2RUwQQQAABBBBAAAEEEEAAARcLEKC7uHIpWuYEGjZsKB07dpTOnTubBB555BF57LHH5OGHH85cgtl81aBBgyQ+Pl7efPNNk5NPP/1UXn75Zfn4448lLCwsoLnbs2ePDBs2THbu3ClRUVEya9YsKV++vCX3PHTokDRv3lxmz54tlStXliNHjsjrr78ua9eulVOnTknJkiWla9euGa63Tz75RF555RU5ePCgFC1aVHr27CmtWrUyeT59+rQ0btxYRowYIU2bNrWkHCSCAALOFaC9sK7unNheaOm3b98uTz31lOiz8OKLL3pBaC+sezZICYFQEyBAD7Uap7zpCqR84dJg7MEHH5S777473WvteELKAF1fJt5//30ZO3ZswLPbpk0byZ8/vwwcONAEtxqc58qVy5L7Pvnkk1KwYEGZOHGiXL16VVq0aGGCcv1CpVixYrJp0yYZP368/M///I+pP3+OL7/8Ujp16iTPPfec1KlTR3bs2CGjRo2Sf/3rX/LAAw+YJBYsWCCTJk2S1atXmy8dOBBAIHQFaC+sq3untRda8g8//NAE5YULF5Z77733mgCd9sK6Z4OUEAg1AQL0UKtxypuuQMoXrnQvsPkJKQP0YGb3rrvukgkTJvgdIPubt71795o0lyxZ4u2RP3nypBQoUOCaJJ555hm5cOGCvPXWW34lrcH5DTfcYIJ+zzF58mQz6kBHHOhx8eJFqV27tvTr10/atm3rV7qchAAC7hSgvbCuXp3WXuhorb59+8qrr75qAvXo6OjrAnTaC+ueD1JCIJQECNBDqbYp63UC2pM8depUOXr0qOl91cb2pZdeMoGXZ4h7vXr1pEuXLvL3v//dXK9/HzBggKxZs8b0oiYlJZlvzkePHi3//ve/zZDr48ePS+nSpeWf//ynCebSO7799ltzzxkzZnjP14Zde4W1J3fIkCHpJWE+37p1q4wZM0Z2795tgtX27dvLsWPH5MSJE94h7gsXLpRx48bJ119/ba7Rv3/wwQem51h7mz1Du59++mmpUaOGKZf2LOfOnVsaNWpk8pInTx6f+dFh4tp7ffjwYe95ffr0EU3TikPT/uKLL2T58uU+kxs5cqSxePfdd9O97ZUrV6RixYqmd9zTW64X/fDDD9KyZUtZv369GfKuh46q2LVrlxmJwIEAAqEhQHtBe5H8Sdc2Q9u4m2++Wf7xj39IbGzsdQE67UVo/NtAKRGwWoAA3WpR0nOMgAbXOr+4d+/eJvDUhlZ7TjWg1Z5XXwF6YmKiDB061MxD1vN1uLU21rfeequ88MILZribzoeeN2+erFu3TvLly5euiwaGS5cuNT21OnRavyhYsWKFCUI1OE7v+PXXX80cuAYNGpj8aM/xtGnT5H//939NoO2Zg55agK5lqVq1qgnGb7zxRpk+fbpMmTJFbrrpJvOlxf3332981ESHIerLiK9Dv1y4dOmSSVOHh+v1ERER1w1v1y85NHBP7VCDzZs3p/qZzgnXYHr48OE+86HrBtSsWVN0FEF6h85p13yqd9myZb2nnzt3TipVqmS+ePF82aLnPP/887Jt2za/6ia9e/M5AgjYW4D24r9f6NJeXP+s9urVy3wpnnwOuucs2gt7/26TOwTsKECAbsdaIU9BEWjdurX55lsDSM/x448/moXHNKDzFaDfeeedJgD3HLqomAa02qsbFxdnfnz+/HnRIXvvvPOOX/PXNajV+dMaTGve9D+9tkqVKn55aECvAb4OuwsPDzfXaJra468Bpq8AXXv6ly1bJuXKlTPXXb58WSpUqGDyoz3ynkO/wNA57PrFgz+HBro6/E8XVkvt0OBXv1hI7dAF7LR+UjvUX3ux1SitY+XKlfLss8+K9ubr6Ij0Du0R/8tf/mK+UClevPg1p2s5dGG9Zs2amZ/v27fP9LIvWrTI1DEHAgi4W4D24r8BOu3F9c+6rwCd9sLd/zZQOgQCIUCAHghV0nSEgAZ5Gnzq8OXkR7Vq1UQbW18B+qOPPnpNL/Lbb79thodrb3XyQ3t5dTG2hx56yC8THU6tL4I6D1qDwf79+/t1nZ70xBNPmC8HkgfU+nNdXVaH4fsK0PULCQ1Qc+TI4b2fflGgPeW6gr3n0J51XSRNg19/jvQCdH/SSHnOmTNnzJcWWh4dMZDaoXPUdcqA9s57piakd6+MBOg631175nVKQt26ddNLms8RQMDhArQX/w3QaS8yFqDTXjj8l5/sI5ANAgTo2YDOLbNfQIeoayA+c+ZMM8c7+aHDnDUo9RWgJ5+TrtdqgK7B6+eff35dgK4Bs/bK+3toQKlDuzUtXY3c30Pnq2tvuS5elvzQ3o6EhASfAXryOemeazVA12s9W4zpz7WMOl9dF03z50gvQM/MEPfffvtN7rnnHrNl23333XddNnQofrt27aRJkyZmGoK/h27Tpn5pDXFP/qx4Rkfo6IDk89X9vRfnIYCAcwRoL65ds4T2ImMBOu2Fc37XySkCdhEgQLdLTZCPoArotlw6hFsXG0sZPGvvbHpz0AMVoH/22WdmWLb21ugWYm+88YbfLrrIW4kSJa6bA9ejRw+Thq8e9Ox64crMEHcdtq8+OmLBM+Tcg6SL8+nCeLolns6nz8g+7zrKQKcC6FSB1BaJ0zmoniH3uu6AfrGjX8zUqlXL7zriRAQQcJ4A7YU9AnQ7tRcpn2JfQ9xpL5z3O0+OEchuAQL07K4B7p9tArqAmO7LnXxIuGf7rvTmoAciQI+Pjzdbh2lArX/qf7oImuZTD110Tf9La+9tHUqvQaQG+Z7AVM/XReM0oLVjgJ7Zytfh5V27djX/eY7ff//dBOf6BYtapBac68J5ekRGRqZ6a7XXfdv1ixvPoV8ELF682Mzt9xzffPONGUKvIwl0tX4OBBBwtwDtxX+HuGfXF7qZfcIC1V4kz4+vAJ32IrM1x3UIhK4AAXro1n3Il1xXS3/uuefMatz169c3q7FrYPbzzz+bYeLBHuKu8711OzTdEkznguuWPpofzafOLdee3Tlz5pit1HRF9JSHbhWnq9HrQmc6RF+Dcx2WrQG79va6KUDv1q2bWQjPM8Lg9OnT8re//c2spK9b4CWfS69OOlpCRyTo/H7dIm7u3LmpPv+6AF6HDh3Mc6Fzy3X7O12MbtiwYWb1es+hQ/11e76vvvoqQ730If9LBwACDhWgvXBugB6o9sLfAJ32wqG/9GQbgWwUIEDPRnxunf0Cukq6LvSlwbmu3N29e3cT0Ooc52AG6LqC+sCBA81K6sl7ZB9//HETiGqgrVun6XZrr732WppwOnddezd++ukniYmJMQvgaWCq24G5KUDXVeT1C4tNmzaZgFsDa18rur/11lvmSxjtXddt45IvfJcSU+fF68r++/fvN1vO6dQBrYfkhwbxuie65oEDAQRCQ4D24s990J3Wgx7I9sLz5PvqQae9CI1/HyglAlYKEKBbqUlaCARQQOdV6x6ruvhZqB9nz541C8QNHjxYdEV9f449e/aY0QW6FZ7uU5/ZQwN3rQNdLM/fLfAyey+uQwABBDIjQHvxXzXai8w8QVyDAALZKUCAnp363DtkBLSn9+mnn061vNHR0bJhwwafFgcPHjQrk69fv15y5syZ7W66UJu+AKZ1aI+Fzu8P5DF79mwz5H/FihVpzilPfn/dHk79dL/6rBy6gKAOpfc1kiEr6XMtAgiEtgDthfX1T3thvSkpIoBA4ARcE6AfOHDADE/WIMYzNDklm67SrCs76zZKuXLlkp49e5r5pnroAl06F3nHjh1mSLAuHKbbcGXl0KFgkydPFg1mGjduLCNHjjTDlTlCT0C3WdHtwVI7dL50RrZTs4Oermqs25mldRQpUiTVefJW5l3z4NmH/Pbbb7cy6TTT0j3YdXs3/XdD/53gQAABBKwWoL2wWlSE9sJ6U1JEAIHACbgiQNd5txr83nbbbWbIaVoBuvag6RxfXdxJt+vQYH7SpElmASldFEznIPfu3dsE6frnypUrzZxff44ff/xRdM9nz6HDYHWe63vvvScarOi818qVK8sTTzzhT3KcgwACCCCAAAIIIIAAAgggEGICrgjQdW5pvnz5TDCsWySlFaDrIlu64JOuaK2HDnnSla911efq1avLxo0bzYJTemjvui46pVtU6fwl3e5KF9rSz3VFZ922I/nRokULE/x7Dv0SIDEx0QT+euzatcssAqbbNXEggAACCCCAAAIIIIAAAgggkFLAFQG6p1DaG16gQIE0A/SGDRua7ZW0p1wPnY+qfx81apTpTV+3bp3XZ+LEiRIbG2v2WdbgPG/evGYIvO6TrUG+9q7r3GHPkTJA1320Neh/5JFHzCm6/7L+/bvvvuMpRAABBBBAAAEEEEAAAQQQQOA6gZAK0GvXri1Lly6VQoUKGYgtW7aYOeI637xHjx5msSnPoQtJ6Zx1HepetWpVWbt2remd10Pnn+qWGgkJCfLyyy+bn+l8XE/grz/TubG6J3WzZs28aeoQfN3+KiwszPxMg/qUx8MPP2y20+JAAAEEEEDAl4C2M7QXPCMIIIAAAgi4SyCkAnQNmPWFpmTJkqYWV69eLfPnzzcBeqtWra5ZSVt/plsxdezYUSpVqnTN3tQ65H3o0KHStGlT79OQsgddt3/S69q0aWPO0cWlatWqJTt37vRe88cff1z3NFWsWFF0yD4HAggggAACvgT0S1/aC54RBBBAAAEE3CUQUgG6rvLetm1bM69cj2nTpsnx48fNXso1atSQNWvWSExMjPmsS5cu5lxdfV170HUbrKioqDRrP2WAPnPmTJO2zjvXQxee0/skn6eeWmK8cLnrF4zSIIAAAoESoL0IlCzpIoAAAgggkH0Crg/Qp0+fblZP1/nfS5YsEd36zLOKu/Zujx071gTnOmdce8z79Oljgmkd8r5q1Soz91znoEdGRpo56Lo9m+5JHRcXd802UikD9EOHDkn79u3l3Xff9a7irltB6dB4ekSy74HnzggggIBbBAjQ3VKTlAMBBBBAAIH/Crg+QO/WrZuZC+4Zaj5hwgQTpOs8cJ27p4vA6aErrvfv31+2bt1qetFHjBjhXe1dh7SPGzfOLCKne5qXLl1atIfcV4+6pqn7rY8fP150T9N69eqZofQREREE6PwGIoAAAghkWYAAPcuEJIAAAggggIDtBFwVoNtONxMZ4oUrE2hcggACCISgAO1FCFY6RUYAAQQQcL0AAbrNqpgXLptVCNlBAAEEbCpAe2HTiiFbCCCAAAIIZEGAAD0LeIG4lBeuQKiSJgIIIOA+AdoL99UpJUIAAQQQQIAA3WbPAC9cNqsQsoMAAgjYVID2wqYVQ7YQQAABBBDIggABehbwAnEpL1yBUCVNBBBAwH0CtBfuq1NKhAACCCCAAAG6zZ4BXrhsViFkBwEEELCpAO2FTSuGbCGAAAIIIJAFAQL0LOAF4lJeuAKhSpoIIICA+wSsbC8WL14s3377rUHSbUHr16/vPjBKhAACthDQbYs///xzk5dKlSrJww8/bIt8kQkE7CJAgG6Xmvj/fFj5wmWzopEdBBBAAAELBaxqL0aMGCEjR468JmcfffQRL80W1hVJIYDAnwKTJ0+WZ5999hqO4cOHi/47xIEAAn8KEKDb7Emw6oXLZsUiOwgggAACFgtY1V4UKFBAEhISJEd4uCRduWJyqb3o2svFgQACCFgpUKVKFdm+ffufQUh4Drl6JUliY2Pl5MmTVt6GtBBwtAABus2qz6oXLpsVi+wggAACCFgsYFV7ERYWZnKWKyJSujw7Wd55c4icPvW7XL161eIckxwCCIS6gP57E1W4gDQc9rT8u+84Sbp02ZDw702oPxmUP7kAAbrNngerXrhsViyygwACCCBgsYBV7YX2Xp06dUrCc+aStp2HyB2VasuB3Rtk+pThFueY5BBAINQFHhnWR/LVuEMObt4u6ydMk6TLV6RkyZJy4MCBUKeh/Ah4BQjQbfYwWPXCZbNikR0EEEAAAYsFrGovZs+eLZ07dzYBeqPmnSUyMlIeaN5GIvPkl2Z1y0jRG6ItzjnJIYBAqAnsS/xNpu/eKHL6D/n8w2Vy4cIF2fb2YhOgs+ZFqD0NlDc9AQL09ISC/LlVL1xBzja3QwABBBAIsoCV7YX2Xq1d97lI7hISFxdn5oT+cf6SHDiSKCXi8knje0sFuXTcDgEE3CIw96fNsufUr1K+QFHJmyvSrHlx7NgxKXT0jDSof7+UKsW/L26pa8phjQABujWOlqVi5QuXZZkiIQQQQAAB2wlY3V5cSboqW3Ycva6cJ+LPmkC9WZ0yclvJArZzIEMIIGBPgf/99ReZ+eOXclfBYnJT9PX/djxYorzkzBFuz8yTKwSyUYAAPRvxU7u11S9cNise2UEAAQQQsEjA6vYirQBds3vlSpL8ciRRckfmlGb1ykieyJwWlYJkEEDAbQJnLp2Xabs3yh+XL5le8/CwHKkWkQDdbTVPeawSIEC3StKidKx+4bIoWySDAAIIIGAzAavbC18BuqfoJxPPy8//SZB7qxSXauVvtJkI2UEAgewW+OzQLll+cKdULFhMiuSJ8ZkdAvTsri3ub1cBAnSb1YzVL1w2Kx7ZQQABBBCwSMDq9sKfAN2T9f8cOy3nzl+Sh+qWkRsKRllUIpJBAAGnChw8E28WgYuNiJLb8hfxqxgE6H4xcVIIChCg26zSrX7hslnxyA4CCCCAgEUCVrcXGQnQtQhn/7gkBw6fktI35ZeGtUpaVCqSQQABpwnM37NFvk84JuVji0pMRG6/s0+A7jcVJ4aYAAG6zSrc6hcumxWP7CCAAAIIWCRgdXuR0QDdU4zjv5+VQ8dPy4N1ysgtJWItKh3JIICA3QW2//Yfswhc2dgb5ea8BTOcXQL0DJNxQYgIEKDbrKKtfuGyWfHIDgIIIICARQJWtxeZDdC1OJcvJ8mBI6ckX3SE2Ts9IhcrM1tUzSSDgO0EdPE3Hc6eePEPuaNAUcmVyZXYCdBtV7VkyCYCBOg2qQhPNqx+4bJZ8cgOAggggIBFAla3F1kJ0D1FitdF5A6elLrVS0jlcv7NQ7WIg2QQQCAIAmuO/Cgf7d8ulQuVkCJ58mXpjgToWeLjYhcLEKDbrHKtfuGyWfHIDgIIIICARQJWtxdWBOieoh08migXL10xvemFYvNYVGKSQQCB7BI4fDZBZuzeKFE5I82QdisOAnQrFEnDjQIE6DarVatfuGxWPLKDAAIIIGCRgNXthZUBuhbxzLmLsv/wKSlbqqDUq1HColKTDAIIBFvgg5+3yrbf/yPlCxST2AjrvnAjQA92TXI/pwgQoNuspqx+4bJZ8cgOAggggIBFAla3F1YH6J5iHvvtrBz97Yw0q1NGShXPb1HpSQYBBAItsDP+iMz4cZPcElNYSuYtZPntCNAtJyVBlwgQoNusIq1+4bJZ8cgOAggggIBFAla3F4EK0LW4Otz9lyOJUiB/bmlWt7SE58hhkQLJIICA1QKXkq6YReB+/eOMlC9QVCLDc1p9C5MeAXpAWEnUBQIE6DarRKtfuGxWPLKDAAIIIGCRgNXtRSADdE+Rf0/4Q/YcPCmNapWUu26/wSIJkkEAAasE1h/dI+/9vFWqFCohcVExViWbajoE6AHlJXEHCxCg26zyrH7hslnxyA4CCCCAgEUCVrcXwQjQPUX/5cgp0fs9VK+MxObLbZEIySCAQGYFjv+RKNN3b5KIHOFSLjYus8lk6DoC9AxxcXIICRCg26yyrX7hslnxyA4CCCCAgEUCVrcXwQzQlSDx7EU5cPiU3HlLIbmv2k0WqZAMAghkVGDR/m2y+cQBqVCgqBSIjM7o5Zk+nwA903Rc6HIBAnSbVbDVL1w2Kx7ZQQABBBCwSMDq9iLYAbqH4eivZ+TXk3+YLdlKxGVtX2WLaEkGgZAQ2JVwTGbs3iQ35y0gpfMVDnqZCdCDTs4NHSJAgG6zirL6hctmxSM7CCCAAAIWCVjdXmRXgK4cFy5elgNHEqVIwSgTqHMggEDgBK5evWoWgTty7pTcEVtU8uTMFbib+UiZAD1b2LmpAwQI0G1WSVa/cNmseGQHAQQQQMAiAavbi+wM0D0kv508J3sOJkjT+0pJ+VuC36NnUdWQDAK2Fdh0fJ/M+WmzVC1UQopFx2ZrPgnQs5Wfm9tYgADdZpVj9QuXzYpHdhBAAIGgCJw9e1b69u1r7vXmm2+mes+kpCQZPXq0LF++XHLlyiU9e/aUDh06mHN9fZaVAqxdu1aee+45mTdvnpQvX96b1Llz52TixImyatUqyZEjhwwZMkQaN27s81ZWtxd2CNA9Bd5/+JTkyBEmD9UtI/miI7JCzrUIICAiv58/K9N3bxCRMLN1mh0OAnQ71AJ5sKMAAbrNasXqFy6bFY/sIIAAAgEXOHr0qPTo0UOqVKkix44dSzPDRVQJAAAgAElEQVRAX7BggSxbtkymTp0qGiC3a9dOJk2aJBUqVBBfn2W2ADNmzJA1a9aYe+kXA8kDdM3vHXfcIU899ZT5ssCfw+r2wk4Bupb/1OkLooF65XI3yD2Vi/tDwjkIIJCKwNIDO2T9sT1SoUAxKZQ7r22MCNBtUxVkxGYCBOg2qxCrX7hsVjyygwACCARc4MyZM/Ljjz/KxYsXZc6cOWkG6E8++aR06tRJ6tSpY/I0e/Zs0eB+4MCB4usz7Z0fPny4bNu2TfLkySPDhg2TmjVrpluuzZs3S9WqVeXxxx+XoUOHegP03bt3y+DBg2XhwoXpppH8BKvbC7sF6J6yHjlxRuITz5ve9GJF7BNcZKiyOBmBbBDYe+qE2TpN9zO/JeaGbMiB71sSoNuuSsiQTQQI0G1SEZ5sWP3CZbPikR0EEEAgaAIbN26Ut99+O80AvWHDhjJ37lwpXvzP3tn169ebv0+fPl18fabBed68eeX555+XvXv3miB/5cqVEh3t3/ZEbdu2NQG+pwdd7/nDDz+IfrHw888/S6lSpczncXG+9yK2ur2wa4CudfPHhcuie6drgP5A7dJBe4a4EQJOFZj145ey//TvZjh7dE57ThMhQHfq00W+Ay1AgB5o4Qymb/ULVwZvz+kIIICAawTSC9Br164tS5culUKFCpkyb9myRSZPnizz588XX59pL7jOJc+fP7+5Tuet9+rVS7QnfNGiRdf56XzzmJgY789TBug69/zjjz+WN954Q8qVKyfvvPOOGQo/c+ZM7zXjxo27Ll0dMr9nzx7L6svOAbqnkL+ePCf7Dp2SpveVlnKlC1pWdhJCwC0CW04ckJk/fimVC90kxbN5Ebj0TAnQ0xPi81AVIEC3Wc0ToNusQsgOAgg4ViC9AL1Ro0aiQW7JkiVNGVevXm2Cc/1ZWp9NmTJFKlWqJKVL/7cXV4e865D1pk2b+mWVMkDXee+6MFyfPn3M9VeuXJHq1avLN998I2FhYeZnunhcykMXtQu1AF0NkpKuyoEjpyQiV7gZ9h6Vx785+35VDich4FCBUxf/MFunXbxyWcoXKCY5/v/fDjsXhwDdzrVD3rJTgAA9O/VTuTcBus0qhOwggIBjBdIL0Lt37y4aLDdo0MCUcdq0aXL8+HGzgrqvz7QHfcOGDRIVFZUpm5QBui5I9+2338qoUaNMejp3/p577pGtW7f6TN/q9sIJPejJQU4mnjeLyNW8q6jUqOB7OkCmKoqLEHCIwIr/fC8rD+2SuwoUkxvy5HNIrkUI0B1TVWQ0yAIE6EEGT+92Vr9wpXc/PkcAAQTcKpBagK7zyytXrmx6qJcsWWIWZvOs4t6mTRsZO3as1KhRw+dnOj88MjLSzEHXFdcPHjxo5otHRPg3zzNlgH7q1CnT+6499zov/a233pLvv/9eXnnlFQJ0Px7OQ8dPy+mzF6VZ3TISV9i/dQD8SJZTELC9gM4x117zwpHRcmv+IrbPb8oMEqA7rsrIcJAECNCDBO3vbQjQ/ZXiPAQQQMC3QGoBerdu3czwdQ3G9ZgwYYIJ0nUoua7c3rVrV2+iaX2mQ9p1Tvi6detMb7cOd9f54v72qKcM0PWGukCd9qBr2rrNm27DVrhwYQJ0Px/yc+cvyYEjiXJz0RhpfM+fUxY4EHCzwNt7vpKfEk5I+QJxkjdXbkcWlQDdkdVGpoMgQIAeBOSM3IIAPSNanIsAAgiEroDV7YXThrinVvMnfj8nvxxNlAfrlJbbShYI3YeDkrtWYOuvB2XWT1/KnbFF5aa8zn7GCdBd+5hSsCwKuCJAf+211+T111+X8PBww1G2bFnROX0pj6SkJNMrsXz5cjMsURfY0dV39YiPjzfDFXfs2CEFCxaUMf/H3pmASVlc6//tvWcfZobNYUcQkAgCIgZBI5qoMddEIxr1r8QNTEw0cbtqXONuYrwxyY0LiOa63Bg3IInmKosBoxhFQAVkHxiGYZl9enrv/3Oqp5thmKWX6pmvu996nnma6a6vvqrf+Yaqt0+dUw8+iMmTJyeFNxQKQfr23HPPdRtLGLmR7gVXUgPgxSRAAiRAAoYloHu+yASBLsYKBILKm56bY1Xb3p12q2FtyI6RQKwEmn0etZ292e/F2OKBsJrNsV5q2HoU6IY1DTvWywQyQqDfd999KmbwrLPO6hKniPbFixdH4w0vuugiSPZc2U540003qbNwr7/+eiXS5VXOtXU6E9s25PP58LOf/Qz9+vVT9/z4449jMrXuBVdMN2UlEiABEiCBtCOge77IFIEeMWRtQwu27qrH9OPLMWlc/7SzLztMAhEC71ZuxOKd63BcySD0S6MkcN1ZkAK9O0L8PFsJZIRAFzF96aWXKpHeVZH4wjlz5mDGjBmq2sKFC1FVVYVbb71VJQySeMWcnBz1mXjXL7jgApXdV2ICJSnQmjVr1Od33XUXpk6d2u0zIzGFJ598svLEy7WxFN0LrljuyTokQAIkQALpR0D3fJFpAj1i0V17G9Hi8Slvet8+iWXeT7+ngz3OBAK7mmqV17zQ7sToosz7kokCPROeUo4hFQQyQqBLUp9t27bB7/erTLriuZ42bdoRvGbNmoUXXnhBecqliICW3yUxj3jTJeFPpDz22GMoLi5WCYNEnOfn56st8Fu2bFEiX7zreXndZ4uVPskXBxToqXh82SYJkAAJZC8BCvTYbd/c4sOOynqMHFKMb0wdEvuFrEkCvUTg5S3/xvqaShzbZyAK7WHnUaYVCvRMsyjHo4tARgh0t9ut4s+tVitWr16Nn/70p3jzzTcxcODAwzhNnz4dixYtQmlpqXpf6j7xxBMq3nzevHl4++23o/WffPJJSMy6eOflzNtly5ahqKhIfS5x69dddx02btyI119//QhbvPjiiygsLFTvdyXQ234hEGlEvhDYvHmzLvuyHRIgARIggQwlQIEev2GrDzZjd3UTzp45HCMGFcffAK8ggRQTWHtwNxZs+kB5zIfkl6T4br3bPAV67/Ln3Y1LICMEenu84kE/9dRTce655x72kRytI+fMDh0aPoLlvffew0svvaQE+vnnn4+VK1dG68t7csSNbJ2fMGGCOkYnUmTL+5133qnOre2udCXQxXPfvjz//PMU6N1B5eckQAIkQAKgQE/sIfD5g9i5px6F+XacPXMkbNb0T7aVGAleZSQC7oAP8zd+gFqPC2P7DITdHE58nMmFAj2TrcuxJUMgIwW6eNDPOeccfPOb3zyMzdy5cyHnz0pcuZRnnnkG1dXVuOOOO9Q29KVLl0Y931dddZWqe8YZZygPuoj3WM+4bXtTbnFP5vHktSRAAiRAAp0RoEBP7tmoqXdjS0UtTp06GBOO6ZdcY7yaBJIgsHzPV/jL9jWYWDII/XPDOzCzoVCgZ4OVOcZECGSEQBdhPXPmzOgW9xtvvFFlTpcY8meffRYTJ05USeDeeustvPbaa9Es7rNnz8ZDDz2kxPntt9+uPOY33HCDyuIuW97fffddFXsuMegOh0PFoMvxbBUVFSrW3W63d8ucAr1bRKxAAiRAAiSQAAEK9ASgdXBJRVUDvP4gvj1zBEqKEju5RU9P2Eq2Eahy1askcDkWO44pzrwkcN3ZkwK9O0L8PFsJZIRA/9GPfqTOGRfBLAngbrvtNrUtXco111wD2douYlzKo48+qkS6yWSCZHWXmG8pDQ0NuOWWW1Q7Ej9+zz33RLO9y5b2hx9+WCWR83q9arv7ggULYvKoU6Bn658Wx00CJEACqSVAga6Pb2OzFzv21OOY4SU4ZcpgfQ2zJRLohMCr2z7FJ/srVBK4Ykd2ni5Agc4/DxLomEBGCPRMMq7uBVcmseFYSIAESIAEDhHQPV9k6jFr8Twzew80Y+/BZpw9YwSGHpU9W43jYcS6yRH4orYK8zeuwvCCMgwrCCctztZCgZ6tlue4uyNAgd4doR7+XPeCq4e7z9uRAAmQAAn0EAHd8wUFethwXl8AO/Y0oLTIqc5ON5tNPWRR3iaTCQSCQbWdvbqlEeP6DIDDYsvk4cY0Ngr0mDCxUhYSoEA3mNF1L7gMNjx2hwRIgARIQBMB3fMFBfrhhjlY14LNO2txxteHYfyoMk1WYzPZSGDl3i14cfPHOL5sMAbmho/sZQEo0PkUkEDHBCjQDfZk6F5wGWx47A4JkAAJkIAmArrnCwr0jg0jR7IFQ8C3TxmBonyHJuuxmWwgsL+lEc9sXAWryayOTmM5nAAFOp8IEqBAT4tnQPeCKy0GzU6SAAmQAAnETUD3fEGB3rkJGpo82F5Zj6+NLsP04wfFbStekH0E3tj+Gf61bxuO7XMUShx52QcghhFToMcAiVWykgA96AYzu+4Fl8GGx+6QAAmQAAloIqB7vqBA794wVfubcKCuRSWRGzSgoPsLWCPrCGyqq8b8TR9gUF6xSgTH0jkBCnQ+HSTQMQEKdIM9GboXXAYbHrtDAiRAAiSgiYDu+YICPTbDuL1+7NzTgP6leThrxvDYLmKtrCAg2dl3NddhXPEA5FjtWTHmZAZJgZ4MPV6byQQo0A1mXd0LLoMNj90hARIgARLQRED3fEGBHp9hDtS6sKWiDmeePBxjR2b3cVnxkcu82v+q3oaFX32ISWVDcBSTwMVsYAr0mFGxYpYRoEA3mMF1L7gMNjx2hwRIgARIQBMB3fMFBXr8hgmFQupINovFhG/PHIH8XHpN46eYvlfUeJoxf+MHCISCKtacJT4CFOjx8WLt7CFAgW4wW+tecBlseOwOCZAACZCAJgK65wsK9MQNU9coSeTqMOXYAZj6NWbrTpxk+lz514rPsbRyE8aXHIUyZ376dNxAPaVAN5Ax2BVDEaBAN5Q5AN0LLoMNj90hARIgARLQRED3fEGBnrxhKvc1QsS6eNMH9qVoS56o8VrY2rAfz25chf45hRhZ2Nd4HUyjHlGgp5Gx2NUeJUCB3qO4u7+Z7gVX93dkDRIgARIggXQkoHu+oEDX8xS0ePzYsaceg/oV4JvTh+lplK0YgsDzX30IEejjigciz+YwRJ/SuRMU6OlsPfY9lQQo0FNJN4G2dS+4EugCLyEBEiABEkgDArrnCxHoKz/ZDavFDLPZlAYEjN3F/bUubN9drzK9jx5WYuzOsnddEvh4/04s2PQBjispx6C8PqSVJAGJ2fcFA/jesAmwmi1JtsbLSSDzCFCgG8ymuhdcBhseu0MCJEACJKCJgO75QgT6/yz6EjX1LcjLtaEwz4GCPDsK8+ywWs2aep1dzQjTnXvq4bBb1Lb3HKctuwCk+WgbvG61nd0T8GNcnwEwm/h3kIhJvcEAatzNkKR68lPvbcGA3CL84vgzKdATAcprMp4ABbrBTKx7wWWw4bE7JEACJEACmgjoni9ETP73K5/B6w0c0cMcpzUq1gvy7XDarZpGkR3N1Da4sW13PaZNGKgSybEYn8A/dn+Jv1V8ga+VlKNfToHxO2ygHrr8XiXED7qbUetxocnnOfL/FKsNv5p2HgW6gezGrhiHAAW6cWyheqJ7wWWw4bE7JEACJEACmgjoni9qGzx47vX1MfXOZjMrz3phftjLnuu0wcRd8d2y213diCaXT3nT+5XmdlufFXqewI7Gg8prXuLIw6iifj3fgTS7YwghyE6DGo8r6iWXHQexlAennotSZ14sVVmHBLKKAAW6wcyte8FlsOGxOyRAAiRAApoI6J4vNmw7iL+/vz2h3sk54HIGeGF+eEu8/Jtx7B2jbG7xqW3vw8qLMGva0IR486LUEHhx82psqNuLcX0GosDmTM1N0rxViR+v87SEPeSeZtR5XPAHgwmN6pqxJ2Ny3yEJXcuLSCCTCVCgG8y6uhdcBhseu0MCJEACJKCJgO754t9fVuP91bs09Q7Iz2sTx55vV8nnWA4R2FfTjIqqRpVE7ughTDzWm8/GmgO7VBK4scUDMDifCf3a2qJ9/LiIc13l+yOOxxmDxupqju2QQMYQoEA3mCl1L7gMNjx2hwRIgARIQBMB3fOFxKB/+NkeNLq8aGz2oqHJiyaXF4FASEuPcyWOXXnYHerVYWP2Zn8giJ17GlRSPtn2bicTLc9arI1IrLRsZ2/0udXRacwoDrT4fTjoaeoyfjxWvm3rWc1mFDtyVehAiSMXfRy5OGfIeDJPBCavyXgCFOgGM7HuBZfBhsfukAAJkAAJaCKge77o6Bz0UAhwuX1KrDc2e9DQ7IXPl9h21vbDttstaju8yhSfH45jz9ZSW+/Gll11mDG5HMeP7Z+tGHp03O9VbsRbO9ZhQumgrE0CJ1+9yZcTkQzrktBNBLqO4rBYw2LcGRblhXYnTDg8UQXPQddBmm1kIgEKdINZVfeCy2DDY3dIgARIgAQ0EdA9X3Qk0DvqqtvjD3vYm8Oe9hZ3bAmhuhu2xLFHjnWT5HPiVTZnWea5XXsbIXzPPmUEyopzukPGzxMgUNlcp7zmBTYHRhVl15chwVAIdd5IMjeXiiNPNH68Pfp8m0N5xcOiPA95Vnu31qFA7xYRK2QpAQp0gxle94LLYMNjd0iABEiABDQR0D1fxCrQ23ff7w9GxXpDswfNLh/E855sEW0uyebC2+LDnvZsiGOXsIIdexowamgxTj2BCbSSfY7aXv/K1n9j7cFKHNtnIIrsmf8FiE/OH5fs6nL+uDt8/riI9GSL/G0Kv/B29bAgt5vjD1mhQE/WErw+UwlQoBvMsroXXAYbHrtDAiRAAiSgiYDu+SJRgd5+OMFgCE0tPjQ2hbfEi5edcezxG33vgWZU7W/CWTNGYPigovgb4BVRAutrKjF/4wfq2LQhGZwETranKzHeKsgbOzh/PJHHQuLHI7HjIsZFnFtMySd9pEBPxBq8JhsIUKAbzMq6F1wGGx67QwIkQAIkoImA7vlCl0DvaHiuFl8bL7sXXm9AC4WeiGP/7LPPUF1drfo7dOhQjBkzRkvfY2nE5wtgZ1UDigocOHvmiKzYQRALl1jreAN+PLvxA9R4mjC2eCDsFmuslyZdb+PGjdi5c6dqp3///pg4cWLSbbZtIJXx4zlW26Ht6o48FKj4cf2FAl0/U7aYGQQo0A1mR90LLoMNj90hARIgARLQRED3fJFKgd5+yB5fAI1NEsfuUa+uFMWx5+faYEoijn358uVYsWLFYd0/5ZRTcOqpp2qyYmzNHKxvwZaKOpx24hAcN7pvbBdlea0Vezbjz9s+wcTSwRiQW9ijNFLx3KQyflzi8cUzHtmyLgK9JwoFek9Q5j3SkQAFusGspnvBZbDhsTskQAIkQAKaCOieL3pSoLdHIMeNRRPPtR7vpiFUFmZzaxy7yhTvQEGuHZKMLtbyyCOPwO12H1Z9wIABmDt3bqxNaK23s6pehQuIN71PoVNr25nS2F5Xg0oCJ1nExxQP6JVh/dd//Rfq6uoOu7fT6cStt94ac38kedvBNtvVdcWPS+JFFT+uBHk4qZstgfjxmAfSRUUKdB0U2UYmEqBAN5hVdS+4DDY8docESIAESEATAd3zRW8K9PZIxFvY5EpNHHtejk0lnIskn+vq7PF77723Q2vdfffdmqwYfzPyRcb2ynqMG1mKGZMHxd9ABl/x2rY1WL1/B47tc5Taot1bJZHnxh3wR487kxjyBu/hXwwlOpb28ePF9lzDnI5AgZ6oVXldphOgQDeYhXUvuAw2PHaHBEiABEhAEwHd84WRBHpHiFIVx+6Q89jzW89jz3Mgx3koTvmJJ55AfX39Yd2ROPQ5c+ZosmLizVQdaMK+gy7lTR8ysGe3cCfe69Rc+WVtFRZs+gBD80swrKAsNTeJo9WFCxdG488jl0kc+rx586KtNPk8YQ+5O5zUTdf54z0VPx4Hjk6rUqDroMg2MpEABbrBrKp7wWWw4bE7JEACJEACmgjoni+MLtDbY0tVHLvVKuexO9TRbjUHqvC3JW+gpaVF3d7hcOCiiy7CsGHDNFkxuWY83nASub59cnDWjOFJxdsn15PeuToYCqokcLKtfWzxADh7KHa6u9Hu2LEDr7zyCjwej6rqzMnBt777HRQMKAsfe+ZuhhyBpqP0Vvy4jr5ToOugyDYykQAFusGsqnvBZbDhsTskQAIkQAKaCOieL9JNoLfHmKo4dskxZ7MEYbeG0L9vMUqL8+OKY9dk7i6bOVDXgs07a/Gt6cNw7NG970HuiTGv2rsVf9r8ESaVDsHAPGMdQyfx49VNddhdux8uBNBiCmo5f9xI8eM6bEyBroMi28hEAhToBrOq7gWXwYbH7pAACZAACWgioHu+SHeB3h5rT8WxF+U7YLMmfya0jsdix556dRyWbHuXpHiZWA64m1QSOBNMGNdnoCGGmI3x4zrAU6DroMg2MpEABbrBrKp7wWWw4bE7JEACJEACmgjoni8yTaB3hDlVcexOhwWFeQ6VeE4S0OU4eu687fbjrG/yqCRyx4/ph2kTjtL0tBmjmTd3rIV4ziUJXKkzr9c6lcr4cXXUWeuRZ/k2R0rOH+81cO1uTIFuFEuwH0YjQIFuMIvoXnAZbHjsDgmQAAmQgCYCuueLbBDo7dGnKo5dPOqRLPESzy6Z45M4jj2hJ2bPvibU1Lcob3p5/4KE2jDKRV/V78P8jatwVF4xRvRwErgQQqj3uttkWHfBG/BrQVNgd6JUBHmrKHdaeu+LHS0DirMRCvQ4gbF61hCgQDeYqXUvuAw2PHaHBEiABEhAEwHd80U2CvT2ppA4djneraHJo85lb3J5EQwmbzCzWRLPyfFu4eRz4mWX91Jd3B6/SiI3oCwPZ548PNW3S0n7z236ADsaa9R29lyrPSX3aNtoIBRErSRy8zTjoLsZdR4XAqFQ0veV+PHi1nPHI+ePyxFo2Vwo0LPZ+hx7VwQo0A32fOhecBlseOwOCZAACZCAJgK65wsK9CMNE4qcx97sRUOzF43NHvj9yYs12bcsXvWIWJd48VTGsR+odWHLrjqcdfJwjBlRqukJTG0zH+3bjgWb/oXjSwejPK84ZTfzyPnjctxZa3b1Bm8LNFgYNrNFncUuW/HFQ15kzzHM+eMpgxlnwxTocQJj9awhQIFuMFPrXnAZbHjsDgmQAAmQgCYCuucLCvTYDNPi9qOh2YOGJhHsXshRZzpKquPYJWnezj0NsFrM+PYpI9QXBEYs4rGWo9P8oSDGFQ/QfnRcs8+jxLicQV7rbkaz36sFg5w/3jZ+XI4/Y+maAAU6nxAS6JgABbrBngzdCy6DDY/dIQESIAES0ERA93xBgZ6YYby+QNi73iRedg9cLXrik1MVx17X6Ma23fWYOn4ATviaMbKgR8j/fdcX+L/dGzC+pBx9nfmJGaTNVYwfTxphShugQE8pXjaexgQo0A1mPN0LLoMNj90hARIgARLQRED3fOHx+vHfr6yF3WaGzWaBzWKG1WqGxWxS537brBb1e+T9yL97IpZaE7IeaSYQCKHR5TV8HHtldaP6YkGSyEmMem+WbQ0H1NFpfXMKcHRh34S7wvjxhNElfWEwFIQ3EIA36Ic3GFCJ9NRr0A85F94XDKgf+V3CCtwBH35z0gVwZFlivKRBs4GsIECBbjAz615wGWx47A4JkAAJkIAmAqmYLyRJmmzhluRiLfLjPvQqCdNcbh9crZ+7PQG1vdtkBuwi6NuI97CoN6v3ZEu1em3zuamnU5prYp5IM6mKYxeEebkSx+5QSecknl0Yx1PEnrLtffCAApzx9WHxXKqt7gtffYjN9ftVEjg5ViyeIgLwoLuJ8ePxQIuhrjyzEXHdXnSLyFaCOxSAL+CHJyhi2w/5ciTXYkeezY48qwOyxV+y1EvsfYHNqWybb3WEX1t/JE6fhQRI4EgCFOgGeypSseAy2BDZHRIgARIgAQ0EjDJfyBbv9mI+/LsPzS4fmkXku30QQe/2+pWoF8EeEfUiKiWbtSS0tlrDQv8wUd/6uwZkhmkiVXHsOU5rVKzLMW9Oe2zHdu2vcWH7nnqcPWMERg3t0yOcPtlfgQWbPlDb2QfFmATO5fdGs6tLpnU5j1xHyfT4ceW5buPRjopuJaxDUc+2eLdFbIuHO8dii4ptEdSFNieKHK1iu53QFuHttBozp4GO54NtkEBPE6BA72ni3dzPKAsug2Fhd0iABEiABNoRSOf5QnnoI975Nv9ubvHBJT+tn0k9+fH5g3CIl16237cKdvHQi6e+vXe+7efp8tCkLI7dZlaedckSL172XGfn57EHAkF1JJvTYcW3Z45Qr6koTT63SgInYntc8UBYOjlqTOLHG+T88dbs6pJpXYSjjpLO548HgkHltW67jTziyRYvtq91O7kIctlGLj92sxW5yrNtR77NqbzbIrgLlXe7jVe7VXjnxbmTQYdN2AYJkMAhAhToBnsa0nnBZTCU7A4JkAAJZDSBbJovgsFQ2EvfKubbCvzw1vuwl15tz/eGPfVydLWKp4965cPb7kUQdibqjRJPn6o4dsklkJ8rgj28JV7+3X7MkkRuS0Udvn58OSaP66/1b0gSwP214nMcJ0ngcgoOa1vEZZ2nJewh94TPH5et1MkWS9vzx5156GPPVTs2jFAks76K2Y7EbreL2/a3xm17goFo3LYJUOfBi4jOt9rV9vHIVvL228gj4tsscSgsJEACaUMgIwR6TU0Nbr75Zqxbtw4lJSV48MEHMXny5COMEAwG8cADD2DJkiWw2Wy49tprcckll6h6sbYRj2Vfe+01PPHEE/B6vTjjjDNw7733wmLpOt4mmxZc8bBkXRIgARIggcMJcL7o+omIxNMfsf1ett63tN16L156iaf3K7F62Nb7VkFvtZhUfHfbOHoVc2/tmRhaiQl+f+VH2FFRhT6lA1BU0h92uzPpP4mu4th3VzcqTuJN71uSm9S9KppqlNe82J6DUUX9VFviAa5xy/nj4Z96OX9cwwHkvhY3mvbVoGnfAYwfPgonTz4BJjl4vgdKeBt5G8HdurVc4g0q5hsAACAASURBVLUjidJk3LITwBPwqfdyRGwrz/bhcdsdxWzLVnI7k6r1gCV5CxLoXQIZIdBvuukmlJeX4/rrr1ciXV7feecdOJ2HT16vvvoqFi9ejKeffhoulwsXXXQRHn/8cYwfPx6xttGZuTZt2oRjjjkm+vH27dtx2WWX4ZVXXkG/fv1w4403YuLEibjiiiu6tLjuBddnn32m7if3ZjmcgJHY1NXVYe3atZgwYQKKi4sTNtWOHTuwc+dOnHLKKQm3ofPCFStWYOjQoRg2LPHkQ7rY6BqXkZ4bXWPS1Q7Z6CIZWzu654vY7prZtVQ8vdvfmgjPF/XYi4debb+PeOll6703nCTPLkK9NUmeEvEWE8zipW/Ngt8+pl7i6xMpy5cvh/yfGim5eUVKrB973CQ4c4vUlww6Sts4dqvNjD37mjBiUDFOO3FIQs2/tOVjfFFbhREFZUq8HnQ3Q2f8uIhbT20Dtqz7Ak3VB+FpaIr2U+bCU089NaF+dxa3LaLaLwnSlPgOqO3mIrYldlvitsW7HUmCJt7tcJK0tsnRnNFkaRL7zkICJEAC7QmkvUAXr/iUKVOwatUq5OTkqPGJZ/yCCy7Aaaeddth4r7zySsyZMwczZsxQ7y9cuBBVVVW49dZbu2yjubkZd999N9asWaPucdddd2Hq1KmHtf2d73xHif9IkS8BGhoalPCXsmHDBtx222148803u3wKdS24ZKH8jW98Q3nsH334OUjGXLPF3GPfIhv5T03i2oKBIMQjIaW32cgzLD+RIgs7+Ym3BAKB6JjEWWAxW9TYeqMI20AwALR6Q6Qf3e0e6aifutjoYGC050bHmHS10ZbNTbdehlAQWLZsmSG/GIx1txR3XOl6OjK/ncNj6cOi3t0q6CMJ8iKZ70XQi2c/mvVeHV1nak2S1yaevl2iPNmWv3fvXjz11FNHAJ07dy4GDBig4vQbmjxobJbz2L3qC4XI/8HJWMFut6j+tnh8mDllMI4fE/aAd1Xkv/73Kjfije2fqYzeEgetI35cZjSJmy5x5qLEkad+5Jiu7thI3HZHx3+JxzuSJE0Ed1hs+9Hi90EyjOdZJVFaOPu4bCMPC+62Gclb/90qwLvjws9JgARIIBYCaS/Q5T9l8YTLN8uR8thjjykv5NVXX30Yg1mzZuGFF15Q3nYp77//vvr9/vvv77INEef5+flqG/2WLVuUyBcPfV7eoXND2wv022+/XYn+8847T93L4/Go39evX9+lXXQJ9OHDh0O8qf3798d5P7w3lmeBdUiABEggaQKvLfgF9u07oHZNyE4io5VYd0tl444ro9kqU/sTjaePHmF3yFOvtt63hGPpldCXrPeegNLZIpJdTQ04cGAfPG4XQqEghgwehOHDhkZj6ttmv5eLImK9sVmEuw9y76SKCTCbgMEDC9XRbIP6F6B/WR5CphB2NB7Elvp92FRfjY211QhKB5K8Xfv48RJHrnI0RLaR+9okS9u6cwd27t6lOmjPcaKkX1/kFOSrLwekiGdbfsLebEmQFvZutz/6K+L9tjBuO6lHhReTAAkkTiDtBbqI0Hnz5uHtt9+OUnjyySeVR1K2urct06dPx6JFi1BaWqreXr16tYoRl5j1rtqYNGmS8gYVFRWp6yRu/brrroNsvf3Nb36j3qusrIwKf3lv/vz5OP3003H22WdHuyDi+6uvvop6NW+55ZYjLPfGG29g8+bNiVu09cqI53TUccdh87p1SbfHBkiABEggFgJDRo9GxVdfqaqRXSqxXNcTdbjjqhvKfi+Crz/RE6bgPeIk4A+Z0RKyoQW28GvIHv13c8ih3nPBDnfIBnfICg9ssCAIO/ywmQKwIqh+gjCh2eOHN2RBwJqDkDmBLdbixhbh3bpByxwKoChUgz6hfdhf6MJnfQtwdGMtir3emEbpM5ngN5vhN5nhNYn4DiFgtsCek4Ng63tSx2MywW0yQf6dK2duB0PIDwaQHwyiIBBEUTCAgmAQea3vyfuRH3uy3xTENBJWipeA+bwbAKs93stYnwQynkDaC/Tq6mqcf/75WLlyZdRYIrjLyspwzTXXHGZAEcwinCUmVsp7772Hl156SQn0ztq49NJLVVyweKQjRba833nnnTjzzDOj77X3oN9xxx3qutmzZ6s6TU1NmDZtGj7//PPoNZ9++ukRD9iFF16oVaCXDx8Oe27iMc0Z/xfAAZIACWgl4G3cj8qK3YYU6Nxx1Y2pvW4svSG864sl/Ql4TVZ4TQ54TXZ45MdshxfhV7fJCY/JgRZzDlpMDvhNNiWGozo2Eh3VlQe8TQSVz+LDwZKDMAVMsPvssMELG9ywwgezyYeQCQiKEDeJEDfBZzHDa7aoH3sgAGcwgJyAH86AH7l+P/L8XuTK+/J7wAdnIPx5TsAHRyD5zO7pb93MGMFp//U6YEs+2WFm0OAoSOAQgbQX6OKhOeGEE7B06VIUFhaqkV111VUQoSuZ09sWidOS9yOx6c888wxE4IuY7qoN8aDLFwC5uZ1nMW0v0BcsWKDalrhzKZK8Tu7TNk69owdR1xZ32Yb//PPPqy3utzyyhM88CZAACfQIgUduOUttcb/88stVng8jlXTecSU825cPPvhAyxe6kXYbD+5HYVn38cVGsin7QgIkkL4EGmv2I79PWfoOgD0ngRQRSHuBLlwk3ls85jfccIMSwrJd/d1331Vx488++6xKVCTx32+99Rbk6LNIFnfxbj/00ENKnHfVhsSgOxwOFYMux7NVVFSohCx2+6FtOe0F+u7du3HxxRfj5ZdfjmZxHz16tNoa31XRJdBl+70sjiUp3cknTcOYsWMwdszYFD1G6dfs2rWfYdu2cHzsiBHDMWFC72W5P3BgPz5buxaNDY0oKCzAxAkTUFbWN26o27Zvw8YNG+DxeFHWt0wlMnTYHXG3o+MCj9ejQkgO7D8Ah8OOMWPHYsTwEXE3rYtN3Dfu5AIjPTe6xqSrnQ0bN2Djho1Y+a8P8d3vflfl6kjmRAJd/WrbTjrvuJIwqvZFslPrCImKtOuqq8HZU45NBXq2aQACAZMZAZMJAbMJ0X+3erQP/X7oM+myORRq3cku7nITQuIKb31HkkOGzCFY/VbY/NZDe95jHKsZIcj2eAsCsIX86tUcCsKMYPRVtunLe0kHs8fYJ1brWQJ///RL5BT26dmb8m4kkAYEMkKgS7Z0ief+5JNPlBf9nnvuiWZql23usrU9stX80UcfVSJdYrQlq3skkVxXbciW9ocfflglopMzzWW7u3jIu/Koi+3lvPVHHnkEbrdbHXslW+nbivqOng9dAj0Nnj12kQRIgAR6lAB3XHWD2+tG4Hc/7lGb8GaJEWi2WNFktaHZZlevkZ8GmwMN0ffsaLba4LJa1VZy2S7uCAbUlnJbMAhbKAhLKKR+t8v7wWDra/hza4eHkpvQaM7Fl8UlCIasKN87ED4UHBpEgknhTJD++NSPFQH5KgB+2SBvsqnt+Tb44Ah64Qy5kRN0IyfUgtygC3lBF3JCbjhb3wt/5oYz5EkMLK/qUQKWn/yeW9x7lDhvli4EMkKgpwvsWPpJgR4LJdYhARIggcQIcMdV19xCuzYmBpZXJUzAHQygOehHU8CPxoAfTa3/bgj40RDwobH1d6njCgbUj8NkhsNsUa92kxlWOcoSJtjN4d/b/ojYdfk9aPS60eB1wxWILXlbRwNymy1wWW3o727GcLMN5fnFKLaUwuTLx8EmM/bUBVDbIqnoTEk7vfPsJuQ7TSh0mpFrF7+9Cb5gCP4A4A+G4JPXQAiBECBh6ZH3vIHwZw6r/JjgtJmQYzMh1x7+ybeb4LSH32v7Y7f2zrGkCT84GXChafCYDBgFh0AC+glQoOtnmlSLFOhJ4ePFJEACJNAlAe644gOSSgJylnaTzxP+8XvQ3PrvBp8b9Z4WyKt81qw+86Il4IXZZILDYoPDbIXdbIXNbIbVbFHncNst8p5FvW+3tL6aLdHTYDoai7R/0NOMGnczajzN6kzvpIsJsJrMKHPm43vDJ2JUUT/kdZJ9W46I213diJWfVqpz2QNytFuCnvW2/XbYLSjMt6Mgz47CPAdynLKtvuMiu2XkvHk5G97vD8IXCL9G/h0QYS+ft9bx+QKqn067FQ6HBTkOK3KdVuQ4bcjPtSHHYVP3k/fbvsqxdiwkQAIkoJsABbpuokm2R4GeJEBeTgIkQAJZQoDzRWoNHQyFDhPbSli3Cu46r0uJ7UZvWIiLh9rl9yEQCsIZEduWsNi2mSywtRHXEdFtaxXdyZy3LX2s97YoIV7jcSlRLl8SJFusZjOKHbkoceSpscnYrxl7MkYWxpcfpbK6EUtWbENujg1OuwUNTV40ubwQgZxssVpNKMhzoDAvLNpFSEeOmE2kbTkjviNRr0R+IKiO7/X7xTsvwj8Ary+ozoR32K1wtop6EfQi7PNz7VEx74yI/VZxn0wfExkXryEBEkg/AhToBrMZF1wGMwi7QwIkQAIGJcD5Ij7DuPxeJTQbI17sVi93ndr63RIV48q77ffCI8d6idhWXmwR22GvtojX9h7tiOgWz3cqiz8YPCTGPc2o87ggIj3ZImMUMV7iDIvyQrsTB93NWFdTiVMHjsK5wyYkdYuVn+7Guq/2Y8SgYuX9drl9Sqw3NnvQ0OyFz5f80WlmM5QwVh72fAcKcu2wWFK7bT3ihVee+VYhH/m3eOTl84joF0Hv9QVgs5qVp16JeuWVtyE3p1XUR7z0bTz1IvBZSIAEsosABbrB7M0Fl8EMwu6QAAmQgEEJZPN8IeK57Vby8L/dypsscdYiwhvVVnIvRJi3+L1KXIt3+5AH2wLxXne4jbx1a3lvm94d8Ee3qouXXMamo+TbHOjT6iEvceYdtl1dtoevr6mE2WTGvHEzVD0dRba7L16+Ve12Hzmo+LAm3R4/Gpu9SqzLq2yT11HycmxKsBfky7Z4O+y21H6BEkuf2265j4j68Fb88DZ7iasPi/yAEv3yI9v7ZQeCiHW1/T5HRL0N+Tmy/d4KZ7vt90YYZywsWIcESKBjAhToBnsysnnBZTBTsDskQAIkYGgCmTJf+CNx261bqaPC2+dBrdelkpuFxbZsIxfB7VMHfbUX21HPdiex2+mwtTgV8eMmE1Bkzwl7yJWXPE/FtXdUdjXVYm3Nblw26kRMHzAyJc+/eNLf/ddOHD24GH1LOhb/IlAjYr2h2YNmlw8aNgoooRtrHHtKBp9Aoyqevk0cfVtRL/+ObM2PeO69/gDkZDol6pWgF099m633HcTSi8i3MJ4+AevwEhJIDQEK9NRwTbjVTFlwJQyAF5IACZAACcREwKjzhQhqictuK7Tl9zpPS6tnO5IoLezdjsZtt3qt1TZyidtWQjuSIO3wZGnJxG3HBLcHKsk54sIklfHjJY5c5QHvjpfsMFhfsweD8/uoWPNUFxGdS5Zvxf7aFrXtXcRkV0VEaKMr7F3XGccu280j3nWJZxePu3yhke5FeEUS4x2eKC8QznzfGk8v2+9l2738WMymzuPpOxH16fClV7rbkv3PTgIU6Aazu1EXXAbDxO6QAAmQQNYT6In5QoRbRGiLFzsivCX2ObKNPJKVXDzb7oAvnCTNYlVZySMx2xKbLceCRWK3JUFaOLZbYrp7f9txTzxM8kVErSRy8zSr+G5hGNDgFu4oflwdcxZj2Vy/D3tcdbh6zMk4prh/jFfpqVZR1YC/rtiGsj45GNS/zXnq3TQv2FITxy6J52Rb/KHkc2bJBJcFRcXTt8bRH5H9PhBUif0i8fSRJHl2m/kwUS8J8sJb7+2HZbtXnnynVcXes5AACXRPgAK9e0Y9WqMnFlw9OiDejARIgARIICUEdM8X3oAfv17/nspUHtlKLlnIo0eAWcJiWo7b6uz4L3mfJUxA4uTbesclEV3y6dyAruLH42EvGd/X1VbipH7D8f0Rk+K5VHvd5at3YeP2g8qbLjHjiZSUxLGboLzqkUzxknxOvO4sYQLtE+OFBXw4dj6aJE8y30vW+9Zj7sLx9GHBPvvMY8Cj6vg0kcCRBCjQDfZU6F5wGWx47A4JkAAJkIAmArrnC4/fj5e3fozI8V/i7ZYzulliIyBfbMhRZ3IGea27WSWoS7bEEz8ez70+r6lU3vu5Y2egb05+PJemrG5tg1slkRPBNry8KOn7pCqOXbKvSyZ62RovXyZI/DZLbAQktKGtl37WiUNgM0Divth6z1ok0HMEKNB7jnVMd9K94IrppqxEAiRAAiSQdgR0zxdyhNffd32Rdhx6o8MSP17vdbfJsO6C7EBItkiiu3Ayt1yVzE2Su3UXPx7PPSub67D24G5cOHIyTj1qdDyX9ljdNRv2YcXHFRg5pA/KinO03Zdx7NpQamto6tcGMDmdNppsKJMIUKAbzJq6F1wGGx67QwIkQAIkoImA7vmCAr1zw6QqfjzHajt03JkjDwV2ZxzR47E/SJIbQJLADcgpUF5zixwabuAiW6UXL9uK+iYPRpQXpcTLyjj23n8AKNB73wbsgTEJUKAbzC66F1wGGx67QwIkQAIkoImA7vmCAv2QYVIVP15gcyjPeOTIMxHoqS5bGvajoqkGV4+ZjnF9Bqb6dlrb3767Hn/75zb0L81Deb/Ub8VPRRy7hCnk5Uocu0NtiZd4divj2NVzQoGu9c+FjWUQAQp0gxlT94LLYMNjd0iABEiABDQR0D1fZLNAT0X8uMTvq/PHlSDPVaJcstr3VJGM8etrKjG5bAguOnpKT902Jfd578Od2FJRhxGDipCfm1gSuUQ6JnHscrybOpO9yYsml1fLeeySIC0i1iWWPVuzm1OgJ/JU8ppsIECBbjAr615wGWx47A4JkAAJkIAmArrni2wR6BI/3iDx43LkmbtZZVoXj3mypX38eLE9t9eS7H1RuwfugB9zx56MgbnJJ1xLlo2O6w/Utaht75KkbdhRvTOmYCiEJpcPjU2esGhv9qrjx5ItNptZedYlS7wI91xnZpzH3h0XCvTuCPHzbCVAgW4wy+tecBlseOwOCZAACZCAJgK654tMFegSP17naQmfP+4Jnz8uY0229FT8eDz9rHLVqyRw3xs2EacPGhPPpWlT999f7MWqNZUYObgYpUX6ksglCsDV4ouKdRHtXm8g0aai11ksJrVToDA/vCVe/p2J57FToCf9qLCBDCVAgW4ww+pecBlseOwOCZAACZCAJgK654tMEejeYKBNdvVm1Mv548k7OdEb8eOxPiqSQX597R70sedi3rgZcGT4efReX0B505tavOrsdCOdpe3xBdR2+IZmj3p1uZPfnZGpcewU6LH+hbNethGgQDeYxXUvuAw2PHaHBEiABEhAEwHd80W6CnSX3xv2jrubIXHXTT5P0oR7O348ngFsaziArY378cPRJ+H4ssHxXJr2db/aWYO3/7kDg/rnY2Df1CeRSwSYZKSXrfCpjGMvLHDAkYbniVOgJ/JE8ZpsIECBbjAr615wGWx47A4JkAAJkIAmArrni3QQ6NkQPx7r49HgbcG6mkp8reQoXDrqxFgvy8h6/1i1Azv31GP4oGLk5aQ+M34yEFMVx263W9R2eJV8Lj8cx270QoFudAuxf71FgAK9t8h3cl/dCy6DDY/dIQESIAES0ERA93xhRIEuYka84tkQPx7PY7GhtgqNPg+uGXsyBuf3iefSjK2776ALi1dsVQJ96MDCtBpnquLYI5niJfmcHPUmO0OMVCjQjWQN9sVIBCjQjWQNALoXXAYbHrtDAiRAAiSgiYDu+cIIAt0n8eOtglwyrEv8uIj0ZEuB3YlSR/j88T6OXPTE+ePJ9rmj66tdDVhbsxtnDx6Ps4Ycm4pbpH2bH63bg9Xr96okcn0KnWk5nlTFsUuyOTnWLeJp7+3YfQr0tHw82ekeIECB3gOQ47mF7gVXPPdmXRIgARIggfQhoHu+6A2B3uL3Ke+4+nE3K69wskW8hMWt545Hzh+XI9DSuYht1tfsRr7NgbljZyLP1nNngacjtxa3D4uWb4XHG1BJ5CxmY3mO42Waqjj2XDmPXQl2h3rt6Th2CvR4nwTWzxYCFOgGs7TuBZfBhsfukAAJkAAJaCKge75ItUAXP3ijzx3NsC5b10WgJ1tsZovyipc6wx7yInuO4bbyJjPGHY0HsbFuL+aMnoYT+g1Lpqmsu3bDtoN4Z9UOteV9QFlexow/U+LYKdAz5pHkQDQToEDXDDTZ5nQvuJLtD68nARIgARIwJgHd84VugS4ios7rahXk4ThyXeePixAvaRXkcvxZJhb5MmN9TSWOKeqPOceclIlD7LEx/f2f21G5r1F503Mc1h67b0/eqMXtV0e7NTR5VdZ42T2QbJHz2FMZx06BnqyFeH2mEqBAN5hldS+4DDY8docESIAESEATAd3zRbICvSfix0WUOzP8jG95PMRjLrH4c8eejGEFpZqemOxupmp/E5Ys3wpJmDYkzZLIJWI5OSs+crSbCHdXi57z2NvGscvWeBHxiRYK9ETJ8bpMJ0CBbjAL615wGWx47A4JkAAJkIAmArrni3gFOuPHNRmyTTP7WxrV0Wmnl4/BOUO/pv8GbBGr1lTis437lDe9uCAzd190ZOZAIIRGlxcNTR7lYW9yeREMJv9ASNZ88bJHks/Z4ziPnQI9ef5sITMJUKAbzK66F1wGGx67QwIkQAIkoImA7vmiO4HewPhxTZY7shkJB5Dt7BJPP2/cDBVHz5I6AiJOFy3bimAwhBGDimAy2PFjqRv5oZZDoRCaXD4l1pWnvdkDvz/5ExMcch57fut57HkO5Dg7DymgQO8JS/Me6UiAAt1gVtO94DLY8NgdEiABEiABTQR0zxdtBboIRjniLJxhPRxHLlvYky1yvFk2xI/Hw6miqQaf1+zBZaNPxEn9R8RzKesmSeDzzQfwjw92qCPZ+pXkJtla+l+eijh2q1Xi2B3Ro93yc23RL0Qo0NP/meEIUkOAAj01XBNuVfeCK+GO8EISIAESIAFDE9A9X0i28Fe3rVGivM7j0nL+eKHdGRbkrUndsiF+PNaHptnvVV7z4QWluGrM9FgvY70UEFiyYiuqD7qUN91pz8wkcolgaxvHLp725pbkT12QEw9VHHueHadMGYQBffMT6RqvIYGMJkCBbjDz6l5wGWx47A4JkAAJkIAmArrni//bvQF/2bYm4d5l4vnjCcPo5sKv6qtR3dKIa8ZMx9FF/VJ1G7YbB4HdexshQr20OAeD+hfEcWX2VNUdxz5zyiBMGT8gewBypCQQIwEK9BhB9VQ13Quunuo370MCJEACJNCzBHTPF+JBf2jNOzEPwm6xosSR2+ohz0Vhhp0/HjOIOCoedDepJHAzBh6N7w2bGMeVrNpTBN7/9y58seWg8qZLxneWzgkkG8d+8bfH0IPOB4wEOiBAgW6wx0L3gstgw2N3SIAESIAENBHQPV9IjPlPV/25063teVY7+qizx3NR6shDXoaeP67JPEc0I8JcDqSaN3aGOsOdxbgE6hs9WLx8KyR3nGR7Z4mdQKxx7FaLCT/6wfGwWs2xN86aJJAlBCjQDWZo3Qsugw2P3SEBEiABEtBEQPd8IUni7vz3YpUQToSkeMRLnBEPeR4cWXD+uCbTHNbM7qZafFazG5ccfQJmDhyViluwzRQRWLtpH977sAJHDylG3z5MIpcI5s7OY+9T5MRl/zEOFgsFeiJceU1mE6BAN5h9dS+4DDY8docESIAESEATAd3zhQj0P23+CHLQknjJLSYunJMxlZwTL0ngyvOKMXfsyVl5lFcy/IxyrRzFtnj5FtTUe9S293jO+TbKGIzUDxXH3uxRwnzWtCEU6EYyDvtiGAIU6IYxRbgjuhdcBhseu0MCJEACJKCJgO75ortz0DV1Oyua2Vy/D5XNdbh67HSMKWYSrEww+s499fjr+9vQr08uyplETotJecyaFoxsJAMJUKAbzKi6F1wGGx67QwIkQAIkoImA7vmCAj15w8gRdetr9mBq36GYPXJy8g2yBcMRWLa6Apu216jYdDkqjCVxAhToibPjlZlNgALdYPbVveAy2PDYHRIgARIgAU0EdM8XFOjJGebzmj3whQJqO3v/nMLkGuPVhiZQU+9WSeTsVjOGlRcZuq9G7hwFupGtw771JgEK9N6k38G9dS+4DDY8docESIAESEATAd3zBQV6YobZ01ynksDNHj4J3yg/JrFGeFVaEvj0y2q8/8luHD24WJ2fzhIfAQr0+HixdvYQoEA3mK11L7gMNjx2hwRIgARIQBMB3fMFBXp8hvEE/CoJXN+cfMwdOwM2syW+Blg7Iwj4/EGVRK6hyau2vdt4bFjMdqVAjxkVK2YZAQp0gxlc94LLYMNjd0iABEiABDQR0D1fUKDHbpitDfuxo/EgrhozHeNLjor9QtbMWAJbKmrx9srtGFiWj6P65WfsOHUOjAJdJ022lUkEKNANZk3dCy6DDY/dIQESIAES0ERA93xBgd69Yeq8LcprPrF0EC4++oTuL2CNrCPw7r92YuuuOowcXIy8HFvWjT+eAVOgx0OLdbOJAAW6wayte8FlsOGxOyRAAiRAApoI6J4vKNC7NsyXtVVw+b0qCdxRecWarMhmMpHA/loXlizfihyHFUOPYhK5zmxMgZ6JTz/HpINARgj03//+9/jDH/4AiyUc/3XMMcfg1VdfPYJPMBjEAw88gCVLlsBms+Haa6/FJZdcourV1NTg5ptvxrp161BSUoIHH3wQkycnd0RKKBSC9O25557DJ598EpO9dC+4YropK5EACZAACaQdAd3zBQV6x49Alase62oqce7Q43DGoLFp95yww71H4OP1VfjX2iqMHFyEkiImkWtvCQr03ns2eWdjE8gIgX7ffffhhBNOwFlnndUlbRHtixcvxtNPPw2Xy4WLLroIjz/+OMaPH4+bbroJ5eXluP7665VIl9d3hnYecAAAIABJREFU3nkHTqczIQv6fD787Gc/Q79+/dQ9P/7445ja0b3giummrEQCJEACJJB2BHTPFxTohz8CvmBACfNiew7mjZ0Bp5XbldPuj8QAHXZ7/Vi8bCtcbh9GDiqGxWI2QK+M0QUKdGPYgb0wHoGMEOgipi+99FIl0rsqV155JebMmYMZM2aoagsXLkRVVRVuvfVWTJkyBatWrUJOTvgbTvGuX3DBBTjttNPQ3NyMu+++G2vWrFGf33XXXZg6dWq31nz//fdx8sknK0+8XBtL0b3giuWerEMCJEACJJB+BHTPFxToh56B7Q0HsLlhH344+iRM6jsk/R4O9thwBDZtr8E7q7Zj0IBCDCzLM1z/eqNDFOi9QZ33TAcCGSHQr776amzbtg1+vx8DBgxQnutp06YdwX/WrFl44YUXlKdcigho+f3+++9X3vTly5dHr3nsscdQXFwMaVvEeX5+vtoCv2XLFiXyxbuel9f9f7DSJ/nioCOBXl1dfUQfRdBv3rw5HZ4d9pEESIAESKAXCVCg64ff4HWrJHDj+gzEZaNP1H8Dtpj1BESkV1Q1YsSgIuQ6s3tXBgV61v85EEAnBNJCoLvdbuXNbl/OOecczJ07F/K5xJ9brVasXr0aP/3pT/Hmm29i4MCBh10yffp0LFq0CKWlpep9qfvEE0+oePN58+bh7bffjtZ/8sknITHr4p2fNGkSli1bhqKicKIPiVu/7rrrsHHjRrz++utH9OvFF19EYWGher8rgR6Jf2/bgPSJAp1/ryRAAiRAAt0RoEDvjlB8n2+o3Yt6X4tKAjckvyS+i1mbBOIgsPdAM5as2Ir8XDuGDgyvF7OxUKBno9U55lgIpIVAj2UgbeuIB/3UU0/Fueeee9ilp59+OubPn4+hQ4eq99977z289NJLSqCff/75WLlyZbS+vFdWVqa2zk+YMAHDhw+PfiZb3u+8806ceeaZ3XatK4He0cW6F1zddpAVSIAESIAE0pKA7vkiW7e4V7c0qFjzMweNw9lDxqfls8BOpyeBD9fuwb+/2IsRg4rRpzCxnEfpOfJwrynQ09l67HsqCWSkQBcPunjXv/nNbx7GTrztF154oYorl/LMM89Atpnfcccdahv60qVLo57vq666StU944wzlAddxHtubm7ctqBAjxsZLyABEiABEoiBAAV6DJC6qBIIBpUwz7XaMG/cDOTbsk8gJUeQV+sg4GrxYdGyrfD5A0qom80mHc2mRRsU6GlhJnayFwhkhEAXYT1z5szoFvcbb7xRZU6XGPJnn30WEydOVEng3nrrLbz22mvRLO6zZ8/GQw89pMT57bffrjzmN9xwg8riLlve3333XRV7LjHoDodDxaDL8WwVFRUq1t1ut3drMgr0bhGxAgmQAAmQQAIEKNATgNZ6yc7Gg/iybi8uHz0NJ/YblnhDvJIENBH4cusB/GPVTgwrL0T/0u5zHGm6ba82Q4Heq/h5cwMTyAiB/qMf/UidMy6CWRLA3XbbbWpbupRrrrkGsrVdxLiURx99VIl0k8kEyeouSeCkNDQ04JZbblHtSPz4PffcE832LlvaH374YZVEzuv1qu3uCxYsiMmjToFu4KefXSMBEiCBNCZAgR6/8Zp8HpUE7uiivrjimK/H3wCvIIEUE/jb+9uwZ3+T8qbnOKwpvlvvNk+B3rv8eXfjEsgIgW5cvPH3TPeCK/4e8AoSIAESIIF0IKB7vsj0GPRNdXtxwNOMa8acjBGFZelgYvYxSwns2dekksgVFzgxeEBBxlKgQM9Y03JgSRKgQE8SoO7LdS+4dPeP7ZEACZAACRiDgO75IlMF+n53E9Yd3I3Tyo/Bfww9zhjGYy9IIAYCKz/djbWb9mPkoGIUFThiuCK9qlCgp5e92NueI0CB3nOsY7qT7gVXTDdlJRIgARIggbQjoHu+yDSBHgqFVBI4q9mMeWNnoNgRf6LXtHso2OGMI9DY7MWiZVsQCgEjBxdn1Pgo0DPKnByMRgIU6Bph6mhK94JLR5/YBgmQAAmQgPEI6J4vMkmgVzTVqFjz/zfqREwfMNJ4xmOPSCBOAuu+2o93/7VTifR+JZnxZRMFepwPAatnDQEKdIOZWveCy2DDY3dIgARIgAQ0EdA9X2SCQHf5vUqYD80vwdVjT9ZEms2QgHEILF62BftrWzBiUBEc9vROIkeBbpznij0xFgEKdGPZA7oXXAYbHrtDAiRAAj1CQE7fkCM3pfzxj3/s8J7BYBAPPPAAlixZoo7QvPbaa3HJJZeoul19lswAli1bhp///Od48cUXMW7cuGhTLpcLjz32mDre02w24xe/+AXOOOOMLm+le75Id4H+VX019roalDAfXdQvGTPxWhIwNIFdextVErmy4hwM6p++SeQo0A39mLFzvUiAAr0X4Xd0a90LLoMNj90hARIggZQTqKqqwrx583D88cdj7969nQr0V199FYsXL8bTTz8NEcgXXXQRHn/8cYwfPx5dfZboAObPn4+lS5eqe8kXA20FuvR37NixkGND5cuCWIru+SJdBfpBd7OKNf96/xH4/ojjY0HHOiSQEQRWfLwLX249iBGDi1GYZ0+7MVGgp53J2OEeIkCB3kOgY72N7gVXrPdlPRIgARLIFAJNTU3YtGkTvF4vnn/++U4F+pVXXok5c+ZgxowZaugLFy6EiPvbbrsNXX0m3vm7774ba9asQU5ODu666y5MnTq1W3wffvghJk2ahMsvvxx33nlnVKBv3LgRd9xxB1577bVu22hbQfd8kY4CXbazSzK4ueNmoMyZHxc/ViaBTCBQ1+jG4mVbYTab1Nnp6VQo0NPJWuxrTxKgQO9J2jHcS/eCK4ZbsgoJkAAJZCSBVatW4U9/+lOnAn3WrFl44YUXUF5ersb//vvvq9+fffZZdPWZiPP8/HzcfPPN2LJlixL577zzDvLy8mLieOGFFyqBH/Ggyz2//PJLyBcLW7duxbBhw9TnAwYMiLbX0NBwRNuTJ0/G5s2bY7pnLJXSSaDvbq7D2oO78IORJ+CUo0bFMjzWIYGMJvDZxn1YtroCRw8uRlmf9EgiR4Ge0Y8kB5cEAQr0JOCl4lIK9FRQZZskQAKZRkDiuNuL06FDh+J3v/tddKjdCfTp06dj0aJFKC0tVdesXr0aTzzxBF566SV09Zl4wSWWvKioSF0ncevXXXcdxBP++uuvH4Fa4s0LCwuj77cX6BJ7/re//Q3//d//jTFjxuB//ud/1Fb4BQsWRK8577zzjmh3/fr1WSfQ3X4f1tVWYmBOIeaNmwGzyZxpjzbHQwIJEwgEg8qbXtvgUUnk7DZLwm31xIUU6D1BmfdIRwIU6AazGgW6wQzC7pAACaQtge4E+umnnw6JCxdhL+W9995T4lze6+yzJ598EhMmTMDw4cOjXGTLu2xZP/PMM2Ni1V6gS9y7JIa74YYb1PWBQABTpkzBp59+CpPJ1GmbuucLo3vQt9Tvw67mWlw95mSM7XNod0FM0FmJBLKIwI7Kevz1/W3oX5qL8n7GTSJHgZ5FDyWHGhcBCvS4cKW+su4FV+p7zDuQAAmQgDEJdCfQ586dCxHLp512mhrAM888g+rqapVBvavPxIO+cuVK5OYmto20vUCXhHRr167F/fffr/ohsfMnnXQSPvnkky7B6p4vjCrQaz0udXTalLIhuPDoKcZ82NgrEjAggaUf7cTmnbUqNj0/13hJ5CjQDfjQsEuGIECBbggzHOqE7gWXwYbH7pAACZBAjxHoSKBLfPnEiROVh/qtt95SidkiWdxnz56Nhx56CCeccEKXn0l8uMPhUDHoknG9oqJCxYvb7bEtgNsL9Pr6euV9F8+9xKU/9dRT+OKLL/Db3/426wX65zV74A36MXfsDAzIPRQm0GMPEW9EAmlO4GBdCxYv3wqHzYJh5eGwHKMUCnSjWIL9MBoBCnSDWYQC3WAGYXdIgATSlkBHAv2aa65R29dFjEt59NFHlUiXreSSuf3qq6+Ojrezz2RL+8MPP4zly5crb7dsd5d48Vg96u0FutxQEtSJB13almPe5Bi2srKyrBXoe1z1WHtwN84ffjxmlR+Tts8gO04CRiHw7y/2YtWnlRg5uBilxTmG6BYFuiHMwE4YkAAFusGMQoFuMIOwOyRAAiRgUAK65wsjbHH3BvzqTPNSZx7mjZ0Bu8VqUPrsFgmkHwGvL6CSyDW6vBg5qBhWa+8mWaRAT79niD3uGQIU6D3DOea76F5wxXxjViQBEiABEkgrArrni94W6Fsb9mN74wH8cPTXMbFsUFrZgp0lgXQisHlnDd5euQPl/fIxsG9+r3WdAr3X0PPGBidAgW4wA+lecBlseOwOCZAACZCAJgK654veEuj13hblNZ9QUo5LRk3VRIfNkAAJdEfg/z7Yge2V9SqJXF6Orbvq2j+nQNeOlA1mCAEKdIMZUveCy2DDY3dIgARIgAQ0EdA9X/SGQP+ytgpNPo8607w8r1gTGTZDAiQQK4F9NS4sWb4VuU4rhh7Vs0nkKNBjtRLrZRsBCnSDWVz3gstgw2N3SIAESIAENBHQPV/0pEDf62rAuprdOGfI1/CtweM0EWEzJEACiRJYvb4KH62rUknk+hQ6E20mruso0OPCxcpZRIAC3WDG1r3gMtjw2B0SIAESIAFNBHTPFz0h0P3BgNrOXmhzYu64Gci1xnY0nSZkbIYESKALAi0ev0oi5/b4MWJQESyW1CaRo0Dn40gCHROgQDfYk6F7wWWw4bE7JEACJEACmgjoni9SLdC3Nx7EV/XVmDN6Gqb0HaqJApshARLQTWDDtoP4x6odGDKwEAPK8nQ3H22PAj1laNlwmhOgQDeYAXUvuAw2PHaHBEiABEhAEwHd80WqBHqj1431tZU4pniAEucsJEAC6UHg7ZXbsXtvo/Km5zj1J5GjQE+P54C97HkCFOg9z7zLO+pecBlseOwOCZAACZCAJgK654tUCPSNdXtR63HhmrEnY1hBqaaRsxkSIIGeIlC1vxlLVmxFYZ5dedR1Fgp0nTTZViYRoEA3mDV1L7gMNjx2hwRIgARIQBMB3fOFToG+r6VRJYE7o3wszhn6NU0jZjMkQAK9ReCDzyrx6Zf7MHJwEYoL9CSRo0DvLWvyvkYnQIFuMAvpXnAZbHjsDgmQAAmQgCYCuucLHQI9EApifU0lHBYb5o2dgUK7noW8JmRshgRIIAkCzS0+LFq2BX5/UGV7N5lMSbQGUKAnhY8XZzABCnSDGVf3gstgw2N3SIAESIAENBHQPV8kK9B3NtXgi9o9uHzUNEzrP1zTKNkMCZCA0Qh8seUA/vHBDgwvL0L/0sSTyFGgG82y7I9RCFCgG8USrf3QveAy2PDYHRIgARIgAU0EdM8XiQr0Zp9HHZ02srAMV46Zrml0bIYESMDoBP66Yiv2HnCpJHJOhzXu7lKgx42MF2QJAQp0gxla94LLYMNjd0iABEiABDQR0D1fJCLQN9VVY7+7USWBG1nYV9PI2AwJkEC6EKisbsSSFdvQp9CBwQPiSyJHgZ4uVmY/e5oABXpPE+/mfroXXAYbHrtDAiRAAiSgiYDu+SIegX7A3aS85qcMHIXvDpugaURshgRIIF0J/POT3Vi/eT9GDCpGUb4jpmFQoMeEiZWykAAFusGMrnvBZbDhsTskQAIkQAKaCOieL2IV6JKd3QQTrh03E30cuZpGw2ZIgATSnUBDkweLl29FCMDIQcXdDocCvVtErJClBCjQDWZ43Qsugw2P3SEBEiABEtBEQPd80Z1A39VUi7U1u/H/jp6KkwcerWkUbIYESCDTCKzbtB/vfrgTRw8uRt+Szr/Eo0DPNMtzPLoIUKDrIqmpHd0LLk3dYjMkQAIkQAIGI6B7vuhMoLf4vVhXsweD84oxd9wMg1Fgd0iABIxIIBQKYdGyrThY16K2vTvsliO6SYFuRMuxT0YgQIFuBCu06YPuBZfBhsfukAAJkAAJaCKge77oSKB/Vb8PVa46XD3mZBxT3F9Tz9kMCZBAthCoqGrAX1dsQ1mfHAzqX3DYsCnQs+Up4DjjJUCBHi+xFNfXveBKcXfZPAmQAAmQQC8R0D1ftBXoNe5mrKutxLR+w3HBiEm9NELelgRIIFMILFtdgY3ba1RsekGeXQ2LAj1TrMtx6CZAga6baJLt6V5wJdkdXk4CJEACJGBQArrni4hAX19TiUAoiHljZ6BvzuEeL4OiYLdIgATSgEBtgxuLl22F1WrC8PJiCvQ0sBm72DsEKNB7h3und9W94DLY8NgdEiABEiABTQR0zxduvw8/+9dfMHvkZHzjqNGaeslmSIAESOBwAms2VGPFx7vw44snwWY1Ew8JkEA7AhToBnskdC+4DDY8docESIAESEATAd3zhTfgh8VkhsXMBbMmE7EZEiCBTgj4A0H1idXC/2/4kJBAewIU6AZ7JnQvuAw2PHaHBEiABEhAEwHOF5pAshkSIAESIAESMBABCnQDGUO6wgWXwQzC7pAACZCAQQlwvjCoYdgtEiABEiABEkiCAAV6EvBScSkXXKmgyjZJgARIIPMIcL7IPJtyRCRAAiRAAiRAgW6wZ4ALLoMZhN0hARIgAYMS4HxhUMOwWyRAAiRAAiSQBIGMEeg7duzA3LlzcdFFF+GHP/xhh0iCwSAeeOABLFmyBDabDddeey0uueQSVbempgY333wz1q1bh5KSEjz44IOYPHlyEmiB1157DU888QS8Xi/OOOMM3HvvvbBYLF22yQVXUsh5MQmQAAlkDQHOF1ljag6UBEiABEggiwhkhED/8MMPlfiVxcrxxx/fqUB/9dVXsXjxYjz99NNwuVxKzD/++OMYP348brrpJpSXl+P6669XIl1e33nnHTidzpgeh02bNuGYY46J1t2+fTsuu+wyvPLKK+jXrx9uvPFGTJw4EVdccQUFekxEWYkESIAESKArAhTofD5IgARIgARIIPMIZIRA37x5MwoKCpQYLioq6lSgX3nllZgzZw5mzJihLLlw4UJUVVXh1ltvxZQpU7Bq1Srk5OSoz8S7fsEFF+C0005Dc3Mz7r77bqxZs0Z9ftddd2Hq1KmHPQ3f+c53lPiPFPkSoKGhQQl/KRs2bMBtt92GN998kwI98/6OOCISIAES6HECFOg9jpw3JAESIAESIIGUE8gIgR6hJN7wPn36dCrQZ82ahRdeeEF5yqW8//776vf7779fedOXL18eBf7YY4+huLgYV199tRLn+fn5agv8li1blMgX73peXl60fnuBfvvttyvRf95556k6Ho9H/b5+/XoK9JQ/1rwBCZAACWQ+AQr0zLcxR0gCJEACJJB9BNJCoLvdbuXNbl/OOeccFXceq0CfPn06Fi1ahNLSUnXJ6tWrVYy4xJvPmzcPb7/9drStJ598EhKzLlvdJ02ahGXLlinvvBSJW7/uuutQV1eH3/zmN+q9ysrKqPCX9+bPn4/TTz8dZ599drRNWUx99dVXMJlM6j3x4LcvEiMvOwJYSIAESIAESKArAhTofD5IgARIgARIIPMIpIVAjxV7dx50EcwinIcOHaqafO+99/DSSy8pgX7++edj5cqV0VvJe2VlZbj00ksxYcIEDB8+PPqZbHm/8847ceaZZ0bfa+9Bv+OOO9R1s2fPVnWampowbdo0fP7559FrXnzxxSOGds8998Q6XNYjARIggYwnwC8sOzexCHQWEiABEiCBMAHOF3wSMoVAVgl08bZfeOGFKq5cyjPPPIPq6mqImD7hhBOwdOlSFBYWqs+uuuoqVVeyr4sHXcR7bm5up3ZvL9AXLFig2pa4cymSeE7u0zZOPd0fovvuuw+nnnoqZs6cme5DYf/bEfjTn/6EUCikEh2yZBYBCeWR/89+8YtfZNbAOBpDE+B8YWjzJNU5zhdJ4TP0xZwvDG0edi6DCWS8QH/22WdV9nSJ/37rrbfU0WeRLO7i3X7ooYeUOJeYcfGY33DDDUpMy5b3d999V8WeSwy6w+FQMehyPFtFRQUGDBgAu90efTTaC/Tdu3fj4osvxssvvxzN4j569Gi1NT5TChdcmWLJI8fBBVfm2pYLrsy1rZFHxvnCyNZJrm+cL5LjZ+SrOV8Y2TrsWyYTyHiBfs0116hY8MhW80cffVSJdIkDl6zukgROimRcv+WWW/DJJ58oL7psNY9ke5ct7Q8//LBKIidnmst2d/GQd+VRlzblvPVHHnkEEkN/yimnqK30bUV9uj9YXHCluwU77z8XXJlrWy64Mte2Rh4Z5wsjWye5vnG+SI6fka/mfGFk67BvmUwgowR6JhvKiGPjgsuIVtHTJy649HA0YitccBnRKpnfJ84XmWtjzheZa1vOF5lrW47M2AQo0I1tH0P3jgsuQ5snqc5xwZUUPkNfzAWXoc2TsZ3jfJGxpgXni8y1LeeLzLUtR2ZsAhToxrYPe0cCJEACJEACJEACJEACJEACJJAlBCjQs8TQHCYJkAAJkAAJkAAJkAAJkAAJkICxCVCgG9s+7B0JkAAJkAAJkAAJkAAJkAAJkECWEKBAzxJDc5gkQAIkQAIkQAIkQAIkQAIkQALGJkCBbmz7sHckQAIkQAIkQAIkQAIkQAIkQAJZQoACPUsM3dEwd+zYgblz5+Kiiy7CD3/4ww5J1NTU4Oabb8a6detQUlKiznKfPHmyqivv/ed//if279+PMWPG4Ne//jX69euXMNGWlhb84he/wGeffYZgMIhZs2bh9ttvh9lsTrjNbLkwVlt0Ve+1117DE088Aa/XizPOOAP33nsvLBZLwgi7enYSbjRLL1y2bBl+/vOf48UXX8S4ceM6pNCVbWN9PmLFy7/VWEllTj3OF5ljy1j/P+B8kZ4253yRnnZjr0mgLQEK9Cx9Hj788EMlwEaNGoXjjz++U4F+0003oby8HNdff70S5PL6zjvvwGazKRF3zz33YObMmXj++efxwQcf4KmnnkqY6B//+Efs3r0bv/zlL+Hz+XDVVVfhBz/4Ac4666yE28yGCwOBQEy26Kre9u3bcdlll+GVV15RX7LceOONmDhxIq644oqYEO7duxdOpxPFxcXR+p09O1KPJXYC8+fPx9KlS+FyufDAAw90KNC7sm2sz0fsPQL4txoPrfSvy/ki/W0YGUGs/x9wvkhPm3O+SE+7sdck0J4ABXqWPhObN29GQUGBEmRFRUUdCnTxYk+ZMgWrVq1CTk6OInXttdfiggsuQGlpKe6//368+uqr6n2pe9JJJ+Hdd99V7Yq3Rbzf1dXVSuA/8sgjGDhwYJe0pc6AAQNw+eWXq3oi/o899lh1P5bOCaxdu7ZLW0Su7Kreyy+/jIaGBoiolrJhwwbcdtttePPNN9XvchbqY489BrfbjRNPPFHZxm63Rzv1+9//HiNGjIh+mdLVs3PaaafRnHEQEHE0adIk9Xdx5513dijQu7Lttm3bunw+urNtR13l32ocBsyAqpwvMsCIrUPgfJE5tuxoJJwvMtu+HF32EKBAzx5bdzjSxx9/HH369OlQoItXVLa/ywI+UkSkiZdUvKziMZeFeqR8//vfx1133YXx48fjnHPOwa233opTTjlFifi///3vWLBgQZe0KyoqlNf8xz/+MZqamtQ1Tz/9NHJzc7PcSl0P/6233urUFscdd1z04q7qyRc18mXMeeedp+p7PB71+/r161FVVYXZs2fjf//3f9WXLLfccguOPvpoFR4RKe0FelfPztVXX017JkDgwgsvxN13392hQO/KtrI7orO/1b59+3Zr2466yr/VBAyYAZdwvkh/I3K+SH8bxjICzhexUGIdEjAuAQp049omqZ59/PHHuO+++45oQ2LGp0+fHn2/qwWXeMHnzZuHt99+O1r/ySefVN5y8XR/+eWXapt8pFx66aW47rrrUFhYqGLTFy1apD7y+/0QoSjf3ItoF29M2zJ06FD87ne/QygUwqOPPqruV1tbq7x+IvRZuiYgwrkzW0ybNi16cVf1/vznP+P000/H2WefHa0v4Q9fffUVFi5ciD179uCOO+5Qn3300UcqVl287pdcconKQVBXV6fCHvLy8pS3V56bzp4dCZNgiZ9AVwuurmy7c+fOTp8P2SnRkW2fe+65DneuyN+jfDHDv9X47WfkKzhfGNk6evvG+UIvT6O2xvnCqJZhv0ggNgIU6LFxythaXQl02Z5+/vnnY+XKldHxS5K4srIyJdBXrFihEsNFyrnnnqu+FJDkYCLCpE6k1NfXY8mSJRCPXWdF+iJCT7yEBw8exE9+8hMVg/7d7343Y/nrGJh8EdKZLSZMmBC9RVf1RKBLXfGUS5EdDCLuP//8czz88MN44403VCiEFIlNlF0UklQuUtp70Lt6dq655hodw866NrpacHVlWxHonT0fskulO9t2BJp/q1n3+KkBc75If7tzvkh/G8YyAs4XsVBiHRIwLgEKdOPapkd6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" - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "fig = em.derivative_plot(fd)\n", - "\n", - "fig = fig.update_layout(height=1000, width=1000)\n", - "fig.show(renderer=\"png\")" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.10.8" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/docs/source/how_to_guides/inference/how_to_do_bootstrap_inference.ipynb b/docs/source/how_to_guides/inference/how_to_do_bootstrap_inference.ipynb index d1305c37a..8c2036463 100644 --- a/docs/source/how_to_guides/inference/how_to_do_bootstrap_inference.ipynb +++ b/docs/source/how_to_guides/inference/how_to_do_bootstrap_inference.ipynb @@ -536,8 +536,6 @@ "\n", "It is often the case that, for speed reasons, you set the number of bootstrap draws quite low, so you can look at the results earlier and later decide that you need more draws. \n", "\n", - "In the long run, we will offer a Dashboard integration for this. For now, you can do it manually.\n", - "\n", "As an example, we will take an initial sample of 500 draws. We then extend it with another 1500 draws. \n", "\n", "*Note*: It is very important to use a different random seed when you calculate the additional outcomes!!!" diff --git a/docs/source/how_to_guides/optimization/how_to_benchmark_optimization_algorithms.ipynb b/docs/source/how_to_guides/optimization/how_to_benchmark_optimization_algorithms.ipynb index f14a2fcae..4f015dfed 100644 --- a/docs/source/how_to_guides/optimization/how_to_benchmark_optimization_algorithms.ipynb +++ b/docs/source/how_to_guides/optimization/how_to_benchmark_optimization_algorithms.ipynb @@ -184,7 +184,7 @@ "source": [ "## 4b. Convergence plots\n", "\n", - "**Convergence Plots** look at particular problems and show the convergence of each optimizer on each problem. They look similar to what you've seen from estimagic's dashboard." + "**Convergence Plots** look at particular problems and show the convergence of each optimizer on each problem. " ] }, { diff --git a/docs/source/how_to_guides/optimization/how_to_use_logging.ipynb b/docs/source/how_to_guides/optimization/how_to_use_logging.ipynb index 9e2ad0f36..52bc89b0c 100644 --- a/docs/source/how_to_guides/optimization/how_to_use_logging.ipynb +++ b/docs/source/how_to_guides/optimization/how_to_use_logging.ipynb @@ -7,9 +7,7 @@ "# How to use logging\n", "\n", "\n", - "Estimagic can keep a persistent log of the parameter and criterion values tried out by an optimizer in a sqlite database. \n", - "\n", - "The sqlite database is also used to exchange data between the optimization and the dashboard." + "Estimagic can keep a persistent log of the parameter and criterion values tried out by an optimizer in a sqlite database. \n" ] }, { diff --git a/docs/source/how_to_guides/optimization/how_to_use_the_dashboard.md b/docs/source/how_to_guides/optimization/how_to_use_the_dashboard.md deleted file mode 100644 index d283ce5af..000000000 --- a/docs/source/how_to_guides/optimization/how_to_use_the_dashboard.md +++ /dev/null @@ -1,115 +0,0 @@ -(dashboard)= - -# How to use the dashboard - -## Overview - -Estimagic provides a dashboard that allows to inspect an optimization. The dashboard -visualizes the database created and updated by an optimization. You can start a -dashboard by typing the following in your command-line interface: - -```bash -$ estimagic dashboard db1.db -``` - -You can configure the behavior of the dashboard with additional command line arguments. - -To get a list of all supported arguments type `estimagic dashboard --help` : - -``` -Usage: estimagic dashboard [OPTIONS] DATABASE_PATH - -Start the dashboard to visualize optimizations. - -Options: --p, --port INTEGER The port the dashboard server will listen on. ---no-browser Don't open the dashboard in a browser after - startup. - ---jump Jump to start the dashboard at the last rollover - iterations. - ---rollover INTEGER After how many iterations convergence plots get - truncated from the left. [default: 10000] - ---update-frequency FLOAT Number of seconds to wait between checking for new - entries in the database. [default: 1] - ---update-chunk INTEGER Upper limit how many new values are updated from - the database at one update. [default: 20] - ---stride INTEGER Plot every stride_th database row in the - dashboard. Note that some database rows only - contain gradient evaluations, thus for some values - of stride the convergence plot of the criterion - function can be empty. [default: 1] -``` - -When started, the dashboard will open a page monitoring the evolution of the criterion -value and parameters. - -```{image} ../../_static/images/dashboard.gif -``` - -## Grouping Parameters into Plots - -For optimization problems with many parameters, you should group parameters such that: - -- Not too many parameters are displayed in a single plot -- All parameters in one plot have a similar order of magnitude - -To do so, you can add a `"group"` column to your params DataFrame. Parameters that -belong to the same group, are displayed in the same plot. Null values like `None`, -`np.nan` and `False` in the group column mean that the parameter is not displayed in the -dashboard. - -(remote-server)= - -## On a remote server - -Since `estimagic` is designed for long running optimizations, it is often run on large -remote servers. Normally, these servers do not offer a GUI or browser. - -Nevertheless, you can display the dashboard in your local browser. To do so, you have to -create an ssh tunnel. All the steps are identical to tunneling a jupyter notebook via -ssh. - -For the following we assume that you have already started an optimization on the server -(which can be terminated or still running) and the log was saved in `your.db`. - -1. Open Bash, Powershell, CMD or Terminal. - -1. Listen to a port on which the dashboard will send its data, e.g. 10101 - - ```bash - ssh -N -f -L localhost:10101:localhost:10101 username@server-address - ``` - - `-N` prevents to commands on the remote, `-f` hides the connection in the background, - so the console windows is not blocked, `-L` is used to bind your local port to a - remote port. At last, type your server user name and the server address separated - with an `@`. You are asked to enter your password to establish the connection. - -1. Now, log into the remote server with - - ```bash - ssh username@server-address - ``` - - and enter your password. - -1. One the remote, launch the dashboard on the correct port and with the `--no-browser` - option - - ```bash - estimagic dashboard your.db --no-browser --port=10101 - ``` - - Use a leading `&` in a Bash or Powershell v6 Terminal to hide the task in the - background. If your terminal is blocked, open another one. - -1. On your local machine, open a web browser and enter the address `localhost:10101`. - -1. That's it. For more information on `ssh` and how to configure your remote machine, - check out - [Working remotely in shell environments](https://github.com/OpenSourceEconomics/ose-meetup/blob/master/material/2019_08_20/17_shell_remote.pdf). diff --git a/docs/source/how_to_guides/optimization/index.md b/docs/source/how_to_guides/optimization/index.md index 424d2da10..f80af474c 100644 --- a/docs/source/how_to_guides/optimization/index.md +++ b/docs/source/how_to_guides/optimization/index.md @@ -11,7 +11,6 @@ how_to_specify_algorithm_and_algo_options how_to_specify_bounds how_to_specify_constraints how_to_use_logging -how_to_use_the_dashboard how_to_handle_errors_during_optimization how_to_scale_optimization_problems how_to_do_multistart_optimizations diff --git a/docs/source/index.md b/docs/source/index.md index 6ad7d0a39..12e3d31b8 100644 --- a/docs/source/index.md +++ b/docs/source/index.md @@ -186,8 +186,8 @@ algorithms - The complete history of parameters and function evaluations can be saved in a database for maximum reproducibility. See [How to use logging] - Painless and efficient multistart optimization. See [How to do multistart] -- The progress of the optimization is displayed in real time via an interactive - dashboard. See {ref}`dashboard`. +- The progress of the optimization can be displayed in `criterion_plot` and + `params_plot` while the optimization is still running. ### Estimation and Inference diff --git a/docs/source/reference_guides/index.md b/docs/source/reference_guides/index.md index af2547a25..c4ef7b074 100644 --- a/docs/source/reference_guides/index.md +++ b/docs/source/reference_guides/index.md @@ -83,14 +83,6 @@ ``` -```{eval-rst} -.. dropdown:: derivative_plot - - .. autofunction:: derivative_plot - - -``` - (estimation)= ## Estimation diff --git a/environment.yml b/environment.yml index f31544452..3de07b447 100644 --- a/environment.yml +++ b/environment.yml @@ -18,8 +18,6 @@ dependencies: - setuptools_scm # dev - statsmodels # dev, tests - toml # dev - - bokeh<=2.4.3 # run, tests - - click # run, tests - cloudpickle # run, tests - joblib # run, tests - numpy<2.0 # run, tests @@ -47,7 +45,6 @@ dependencies: - gif[matplotlib] # dev - kaleido # dev, tests - pre-commit # dev - - simoptlib==1.0.1 # dev, tests - -e . # dev # type stubs - pandas-stubs # dev, tests diff --git a/pyproject.toml b/pyproject.toml index 12addfe13..9737748f4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -129,13 +129,6 @@ module = [ "estimagic.benchmarking.process_benchmark_results", "estimagic.benchmarking.run_benchmark", - "estimagic.dashboard", - "estimagic.dashboard.callbacks", - "estimagic.dashboard.colors", - "estimagic.dashboard.dashboard_app", - "estimagic.dashboard.plot_functions", - "estimagic.dashboard.run_dashboard", - "estimagic.differentiation", "estimagic.differentiation.derivatives", "estimagic.differentiation.finite_differences", @@ -201,7 +194,6 @@ module = [ "estimagic.optimization.process_results", "estimagic.optimization.pygmo_optimizers", "estimagic.optimization.scipy_optimizers", - "estimagic.optimization.simopt_optimizers", "estimagic.optimization.tao_optimizers", "estimagic.optimization.tiktak", "estimagic.optimization.tranquilo", @@ -231,7 +223,6 @@ module = [ "estimagic.visualization", "estimagic.visualization.convergence_plot", - "estimagic.visualization.derivative_plot", "estimagic.visualization.deviation_plot", "estimagic.visualization.estimation_table", "estimagic.visualization.history_plots", @@ -287,9 +278,6 @@ module = [ "bokeh.command", "bokeh.command.util", "fides", - "simopt", - "simopt.base", - "simopt.experiment_base", "petsc4py", "tranquilo", "tranquilo.tranquilo", diff --git a/setup.cfg b/setup.cfg index 8f9d4d974..257d4f54c 100644 --- a/setup.cfg +++ b/setup.cfg @@ -35,8 +35,6 @@ keywords = [options] packages = find: install_requires = - bokeh<=2.4.3 - click cloudpickle joblib numpy>=1.17.0 @@ -54,10 +52,6 @@ zip_safe = False [options.packages.find] where = src -[options.entry_points] -console_scripts = - estimagic=estimagic.cli:cli - [check-manifest] ignore = src/estimagic/_version.py diff --git a/src/estimagic/__init__.py b/src/estimagic/__init__.py index 296ccd8b8..49899e504 100644 --- a/src/estimagic/__init__.py +++ b/src/estimagic/__init__.py @@ -14,7 +14,6 @@ from estimagic.optimization.optimize_result import OptimizeResult from estimagic.parameters.constraint_tools import check_constraints, count_free_params from estimagic.visualization.convergence_plot import convergence_plot -from estimagic.visualization.derivative_plot import derivative_plot from estimagic.visualization.estimation_table import ( estimation_table, render_html, @@ -52,7 +51,6 @@ "rank_report", "traceback_report", "lollipop_plot", - "derivative_plot", "slice_plot", "estimation_table", "render_html", diff --git a/src/estimagic/algorithms.py b/src/estimagic/algorithms.py index 4a8a48615..1509a8fa3 100644 --- a/src/estimagic/algorithms.py +++ b/src/estimagic/algorithms.py @@ -10,7 +10,6 @@ pounders, pygmo_optimizers, scipy_optimizers, - simopt_optimizers, tao_optimizers, tranquilo, ) @@ -22,7 +21,6 @@ nlopt_optimizers, pygmo_optimizers, scipy_optimizers, - simopt_optimizers, tao_optimizers, bhhh, neldermead, diff --git a/src/estimagic/cli.py b/src/estimagic/cli.py deleted file mode 100644 index 7cd5eef7f..000000000 --- a/src/estimagic/cli.py +++ /dev/null @@ -1,93 +0,0 @@ -"""This module comprises all CLI capabilities of estimagic.""" - -import click - -from estimagic.dashboard.run_dashboard import run_dashboard - -CONTEXT_SETTINGS = {"help_option_names": ["-h", "--help"]} - - -@click.group(context_settings=CONTEXT_SETTINGS) -@click.version_option() -def cli(): - """Command-line interface for estimagic.""" - pass # noqa: PIE790 - - -@cli.command() -@click.argument("database", required=True, type=click.Path()) -@click.option( - "--port", - "-p", - default=None, - help="The port the dashboard server will listen on.", - type=int, - show_default=True, -) -@click.option( - "--no-browser", - is_flag=True, - help="Don't open the dashboard in a browser after startup.", -) -@click.option( - "--jump", - is_flag=True, - help="Jump to start the dashboard at the last rollover iterations.", -) -@click.option( - "--rollover", - default=10_000, - help="After how many iterations convergence plots get truncated from the left.", - type=int, - show_default=True, -) -@click.option( - "--update-frequency", - default=1, - help="Number of seconds to wait between checking for new entries in the database.", - type=float, - show_default=True, -) -@click.option( - "--update-chunk", - default=50, - help="Upper limit how many new values are updated from the database at one update.", - type=int, - show_default=True, -) -@click.option( - "--stride", - default=1, - help=( - "Plot every stride_th database row in the dashboard. Note that some database " - "rows only contain gradient evaluations, thus for some values of stride the " - "convergence plot of the criterion function can be empty." - ), - type=int, - show_default=True, -) -def dashboard( - database, - port, - no_browser, - rollover, - jump, - update_frequency, - update_chunk, - stride, -): - """Start the dashboard to visualize optimizations.""" - updating_options = { - "rollover": int(rollover), - "update_frequency": update_frequency, - "update_chunk": update_chunk, - "stride": stride, - "jump": jump, - } - - run_dashboard( - database_path=database, - no_browser=no_browser, - port=port, - updating_options=updating_options, - ) diff --git a/src/estimagic/config.py b/src/estimagic/config.py index efa004724..0a94451fb 100644 --- a/src/estimagic/config.py +++ b/src/estimagic/config.py @@ -81,13 +81,6 @@ else: IS_JAX_INSTALLED = True -try: - import simopt # noqa: F401 -except ImportError: - IS_SIMOPT_INSTALLED = False -else: - IS_SIMOPT_INSTALLED = True - try: import tranquilo # noqa: F401 @@ -112,26 +105,3 @@ IS_PANDAS_VERSION_NEWER_OR_EQUAL_TO_2_1_0 = version.parse( pd.__version__ ) >= version.parse("2.1.0") - - -# ====================================================================================== -# Dashboard Defaults -# ====================================================================================== - -Y_RANGE_PADDING = 0.05 -Y_RANGE_PADDING_UNITS = "absolute" -PLOT_WIDTH = 750 -PLOT_HEIGHT = 300 -MIN_BORDER_LEFT = 50 -MIN_BORDER_RIGHT = 50 -MIN_BORDER_TOP = 20 -MIN_BORDER_BOTTOM = 50 -TOOLBAR_LOCATION = None -GRID_VISIBLE = False -MINOR_TICK_LINE_COLOR = None -MAJOR_TICK_OUT = 0 -MINOR_TICK_OUT = 0 -MAJOR_TICK_IN = 0 -OUTLINE_LINE_WIDTH = 0 -LEGEND_LABEL_TEXT_FONT_SIZE = "11px" -LEGEND_SPACING = -2 diff --git a/src/estimagic/dashboard/__init__.py b/src/estimagic/dashboard/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/src/estimagic/dashboard/callbacks.py b/src/estimagic/dashboard/callbacks.py deleted file mode 100644 index 85e70a25a..000000000 --- a/src/estimagic/dashboard/callbacks.py +++ /dev/null @@ -1,183 +0,0 @@ -from functools import partial - -import numpy as np - -from estimagic.logging.read_from_database import read_new_rows, transpose_nested_list - - -def reset_and_start_convergence( - attr, # noqa: ARG001 - old, # noqa: ARG001 - new, - session_data, - doc, - database, - button, - start_params, - updating_options, -): - """Start and reset the convergence plots and their updating. - - Args: - attr: Required by bokeh. - old: Old state of the Button. - new: New state of the Button. - - doc (bokeh.Document) - database (sqlalchemy.MetaData) - session_data (dict): This app's entry of infos to be passed between and within - apps. The keys are: - - last_retrieved (int): last iteration currently in the ColumnDataSource - - database_path - button (bokeh.models.Toggle) - start_params (pd.DataFrame) - updating_options (dict): Specification how to update the plotting data. - It contains rollover, update_frequency, update_chunk, jump and stride. - - """ - callback_dict = session_data["callbacks"] - criterion_cds = doc.get_model_by_name("criterion_history_cds") - param_cds = doc.get_model_by_name("params_history_cds") - - if new is True: - plot_new_data = partial( - _update_convergence_plots, - criterion_cds=criterion_cds, - param_cds=param_cds, - database=database, - session_data=session_data, - start_params=start_params, - rollover=updating_options["rollover"], - update_chunk=updating_options["update_chunk"], - stride=updating_options["stride"], - ) - callback_dict["plot_periodic_data"] = doc.add_periodic_callback( - plot_new_data, - period_milliseconds=1000 * updating_options["update_frequency"], - ) - - # change the button color - button.button_type = "success" - button.label = "Reset Plot" - else: - doc.remove_periodic_callback(callback_dict["plot_periodic_data"]) - _reset_column_data_sources([criterion_cds, param_cds]) - session_data["last_retrieved"] = 0 - - # change the button color - button.button_type = "danger" - button.label = "Restart Plot" - - -def _update_convergence_plots( - database, - criterion_cds, - param_cds, - session_data, - start_params, - rollover, - update_chunk, - stride, -): - """Callback to look up new entries in the database and plot them. - - Args: - database (sqlalchemy.MetaData) - session_data (dict): - infos to be passed between and within apps. - Keys of this app's entry are: - - last_retrieved (int): last iteration currently in the ColumnDataSource - - database_path - start_params (pd.DataFrame) - rollover (int): maximal number of points to show in the plot - update_chunk (int): Number of values to add at each update. - criterion_cds (bokeh.ColumnDataSource) - param_cds (bokeh.ColumnDataSource) - stride (int): Plot every stride_th database row in the dashboard. Note that - some database rows only contain gradient evaluations, thus for some values - of stride the convergence plot of the criterion function can be empty. - - """ - clip_bound = np.finfo(float).max - data, new_last = read_new_rows( - database=database, - table_name="optimization_iterations", - last_retrieved=session_data["last_retrieved"], - return_type="dict_of_lists", - limit=update_chunk, - stride=stride, - ) - - # update the criterion plot - # todo: remove None entries! - missing = [i for i, val in enumerate(data["value"]) if val is None] - crit_data = { - "iteration": [id_ for i, id_ in enumerate(data["rowid"]) if i not in missing], - "criterion": [ - np.clip(val, -clip_bound, clip_bound) - for i, val in enumerate(data["value"]) - if i not in missing - ], - } - _stream_data(cds=criterion_cds, data=crit_data, rollover=rollover) - - # update the parameter plots - # Note: we need **all** parameter ids to correctly map them to the parameter entries - # in the database. Only after can we restrict them to the entries we need. - param_ids = start_params["id"].tolist() - params_data = _create_params_data_for_update(data, param_ids, clip_bound) - _stream_data(cds=param_cds, data=params_data, rollover=rollover) - # update last retrieved - session_data["last_retrieved"] = new_last - - -def _create_params_data_for_update(data, param_ids, clip_bound): - """Create the dictionary to stream to the param_cds from data and param_ids. - - Args: - data - param_ids (list): list of the length of the arrays in data["params"] - clip_bound (float) - - Returns: - params_data (dict): keys are the parameter names and "iteration". The values - are lists of values that will be added to the ColumnDataSources columns. - - """ - params_data = [ - np.clip(arr, -clip_bound, clip_bound).tolist() for arr in data["params"] - ] - params_data = transpose_nested_list(params_data) - params_data = dict(zip(param_ids, params_data)) - if params_data == {}: - params_data = {name: [] for name in param_ids} - params_data["iteration"] = data["rowid"] - return params_data - - -def _stream_data(cds, data, rollover): - """Stream only to the available columns of a ColumnDataSource. - - Args: - cds (bokeh.ColumnDataSource): to be updated - data (dict): keys are the columns of the CDS to which to stream. - The values are the entries to be appended. Keys that are not - in the columns of **cds** will not be streamed. - rollover (int): maximal number of points to show in the plot - - """ - available_keys = cds.data.keys() - to_stream = {k: v for k, v in data.items() if k in available_keys} - cds.stream(to_stream, rollover=rollover) - - -def _reset_column_data_sources(cds_list): - """Empty each ColumnDataSource in a list such that it has no entries. - - Args: - cds_list (list): list of boheh ColumnDataSources - - """ - for cds in cds_list: - column_names = cds.data.keys() - cds.data = {name: [] for name in column_names} diff --git a/src/estimagic/dashboard/colors.py b/src/estimagic/dashboard/colors.py deleted file mode 100644 index b86175b33..000000000 --- a/src/estimagic/dashboard/colors.py +++ /dev/null @@ -1,39 +0,0 @@ -def get_colors(palette, number): - """Return a list with hex codes representing a color palette. - - Args: - palette (str): One of ["categorical", "ordered"] - number (int): Number of colors needed. Colors are repeated if more than eight - colors are requested. - - Returns: - list: List of hex codes. - - """ - blue = "#4e79a7" - orange = "#f28e2b" - red = "#e15759" - teal = "#76b7b2" - green = "#59a14f" - yellow = "#edc948" - purple = "#b07aa1" - brown = "#9c755f" - - palette_to_colors = { - "categorical": [blue, orange, red, teal, green, yellow, purple, brown], - "ordered": [blue, teal, yellow, orange, red, purple], - } - - if number < 0: - raise ValueError("Number must be non-negative") - if palette not in palette_to_colors.keys(): - raise ValueError( - f"palette must be in {palette_to_colors.keys()}. You specified {palette}." - ) - colors = palette_to_colors[palette] - - n_full_repetitions = number // len(colors) - modulus = number % len(colors) - res = n_full_repetitions * colors + colors[:modulus] - - return res diff --git a/src/estimagic/dashboard/dashboard_app.py b/src/estimagic/dashboard/dashboard_app.py deleted file mode 100644 index 9fd684275..000000000 --- a/src/estimagic/dashboard/dashboard_app.py +++ /dev/null @@ -1,299 +0,0 @@ -"""Show the development of one database's criterion and parameters over time.""" - -from functools import partial -from pathlib import Path - -import numpy as np -import pandas as pd -from bokeh.layouts import Column, Row -from bokeh.models import ColumnDataSource, Div, Toggle -from jinja2 import Environment, FileSystemLoader -from pybaum import leaf_names, tree_just_flatten - -from estimagic.dashboard.callbacks import reset_and_start_convergence -from estimagic.dashboard.plot_functions import plot_time_series -from estimagic.logging.load_database import load_database -from estimagic.logging.read_from_database import read_last_rows -from estimagic.logging.read_log import read_start_params -from estimagic.parameters.parameter_groups import get_params_groups_and_short_names -from estimagic.parameters.tree_registry import get_registry - - -def dashboard_app( - doc, - session_data, - updating_options, -): - """Create plots showing the development of the criterion and parameters. - - Args: - doc (bokeh.Document): Argument required by bokeh. - session_data (dict): Infos to be passed between and within apps. - Keys of this app's entry are: - - last_retrieved (int): last iteration currently in the ColumnDataSource. - - database_path (str or pathlib.Path) - - callbacks (dict): dictionary to be populated with callbacks. - updating_options (dict): Specification how to update the plotting data. - It contains rollover, update_frequency, update_chunk, jump and stride. - - """ - # style the Document - template_folder = Path(__file__).resolve().parent - # conversion to string from pathlib Path is necessary for FileSystemLoader - env = Environment(loader=FileSystemLoader(str(template_folder)), autoescape=True) - doc.template = env.get_template("index.html") - - # process inputs - database = load_database(path_or_database=session_data["database_path"]) - start_point = _calculate_start_point(database, updating_options) - session_data["last_retrieved"] = start_point - - # build start_params DataFrame - registry = get_registry(extended=True) - start_params_tree = read_start_params(path_or_database=database) - internal_params = tree_just_flatten(tree=start_params_tree, registry=registry) - full_names = leaf_names(start_params_tree, registry=registry) - - optimization_problem = read_last_rows( - database=database, - table_name="optimization_problem", - n_rows=1, - return_type="dict_of_lists", - ) - free_mask = optimization_problem["free_mask"][0] - params_groups, short_names = get_params_groups_and_short_names( - params=start_params_tree, free_mask=free_mask - ) - start_params = pd.DataFrame( - { - "full_name": full_names, - "name": short_names, - "group": params_groups, - "value": internal_params, - } - ) - start_params["id"] = _create_id_column(start_params) - - group_to_param_ids = _map_group_to_other_column(start_params, "id") - group_to_param_names = _map_group_to_other_column(start_params, "name") - criterion_history, params_history = _create_cds_for_dashboard(group_to_param_ids) - - # create elements - title_text = """

estimagic Dashboard

""" - title = Row( - children=[ - Div( - text=title_text, - sizing_mode="scale_width", - ) - ], - name="title", - margin=(5, 5, -20, 5), - ) - plots = _create_initial_plots( - criterion_history=criterion_history, - params_history=params_history, - group_to_param_ids=group_to_param_ids, - group_to_param_names=group_to_param_names, - ) - - restart_button = _create_restart_button( - doc=doc, - database=database, - session_data=session_data, - start_params=start_params, - updating_options=updating_options, - ) - button_row = Row( - children=[restart_button], - name="button_row", - ) - - # add elements to bokeh Document - grid = Column(children=[title, button_row, *plots], sizing_mode="stretch_width") - doc.add_root(grid) - - # start the convergence plot immediately - restart_button.active = True - - -def _create_id_column(df): - """Create a column that gives the position for plotted parameters and is None else. - - Args: - df (pd.DataFrame): DataFrame with "group" column. - - Returns: - ids (pd.Series): integer position in the DataFrame unless the group was - None, False, np.nan or an empty string. - - """ - ids = pd.Series(range(len(df)), dtype=object, index=df.index) - ids[df["group"].isin([None, False, np.nan, ""])] = None - return ids.astype(str) - - -def _map_group_to_other_column(params, column_name): - """Map the group name to lists of one column's values of the group's parameters. - - Args: - params (pd.DataFrame): Includes the "group" and "id" columns. - column_name (str): name of the column for which to return the parameter values. - - Returns: - group_to_values (dict): Keys are the values of the "group" column. - The values are lists of parameter values of the parameters belonging - to the particular group. - - """ - to_plot = params[~params["group"].isin([None, False, np.nan, ""])] - group_to_indices = to_plot.groupby("group").groups - group_to_values = {} - for group, loc in group_to_indices.items(): - group_to_values[group] = to_plot[column_name].loc[loc].tolist() - return group_to_values - - -def _create_cds_for_dashboard(group_to_param_ids): - """Create the ColumnDataSources for saving the criterion and parameter values. - - They will be periodically updated from the database. - There is a ColumnDataSource for all parameters and one for the criterion value. - The "x" column is called "iteration". - - Args: - group_to_param_ids (dict): Keys are the groups to be plotted. The values are - the ids of the parameters belonging to the particular group. - - Returns: - criterion_history (bokeh.ColumnDataSource) - params_history (bokeh.ColumnDataSource) - - """ - crit_data = {"iteration": [], "criterion": []} - criterion_history = ColumnDataSource(crit_data, name="criterion_history_cds") - - param_ids = [] - for id_list in group_to_param_ids.values(): - param_ids += id_list - params_data = {id_: [] for id_ in [*param_ids, "iteration"]} - params_history = ColumnDataSource(params_data, name="params_history_cds") - - return criterion_history, params_history - - -def _calculate_start_point(database, updating_options): - """Calculate the starting point. - - Args: - database (sqlalchemy.MetaData): Bound metadata object. - updating_options (dict): Specification how to update the plotting data. - It contains rollover, update_frequency, update_chunk, jump and stride. - - Returns: - start_point (int): iteration from which to start the dashboard. - - """ - if updating_options["jump"]: - last_entry = read_last_rows( - database=database, - table_name="optimization_iterations", - n_rows=1, - return_type="list_of_dicts", - ) - nr_of_entries = last_entry[0]["rowid"] - nr_to_go_back = updating_options["rollover"] * updating_options["stride"] - start_point = max(0, nr_of_entries - nr_to_go_back) - else: - start_point = 0 - return start_point - - -def _create_initial_plots( - criterion_history, - params_history, - group_to_param_ids, - group_to_param_names, -): - """Create the initial convergence plots. - - Args: - criterion_history (bokeh ColumnDataSource) - params_history (bokeh ColumnDataSource) - group_to_param_ids (dict): Keys are the groups to be plotted. Values are the - ids of the parameters belonging to the respective group. - group_to_param_names (dict): Keys are the groups to be plotted. Values are the - names of the parameters belonging to the respective group. - - Returns: - plots (list): List of bokeh Row elements, each containing one convergence plot. - - """ - param_plots = [] - for group, param_ids in group_to_param_ids.items(): - param_names = group_to_param_names[group] - param_group_plot = plot_time_series( - data=params_history, - y_keys=param_ids, - y_names=param_names, - x_name="iteration", - title=str(group), - ) - param_plots.append(param_group_plot) - - arranged_param_plots = [Row(plot) for plot in param_plots] - - criterion_plot = plot_time_series( - data=criterion_history, - x_name="iteration", - y_keys=["criterion"], - y_names=["criterion"], - title="Criterion", - name="criterion_plot", - ) - - plots = [Row(criterion_plot), *arranged_param_plots] - return plots - - -def _create_restart_button( - doc, - database, - session_data, - start_params, - updating_options, -): - """Create the button that restarts the convergence plots. - - Args: - doc (bokeh.Document) - database (sqlalchemy.MetaData): Bound metadata object. - session_data (dict): dictionary with the last retrieved row id - start_params (pd.DataFrame): See :ref:`params` - updating_options (dict): Specification how to update the plotting data. - It contains rollover, update_frequency, update_chunk, jump and stride. - - Returns: - bokeh.layouts.Row - - """ - # (Re)start convergence plot button - restart_button = Toggle( - active=False, - label="Start Updating", - button_type="danger", - width=200, - height=30, - name="restart_button", - ) - restart_callback = partial( - reset_and_start_convergence, - session_data=session_data, - doc=doc, - database=database, - button=restart_button, - start_params=start_params, - updating_options=updating_options, - ) - restart_button.on_change("active", restart_callback) - return restart_button diff --git a/src/estimagic/dashboard/index.html b/src/estimagic/dashboard/index.html deleted file mode 100644 index 21ccb4438..000000000 --- a/src/estimagic/dashboard/index.html +++ /dev/null @@ -1,15 +0,0 @@ - - - - - {{ bokeh_css }} - {{ bokeh_js }} - - - -
- {{ plot_div|indent(8) }} - {{ plot_script|indent(8) }} -
- - diff --git a/src/estimagic/dashboard/plot_functions.py b/src/estimagic/dashboard/plot_functions.py deleted file mode 100644 index b7a06b20d..000000000 --- a/src/estimagic/dashboard/plot_functions.py +++ /dev/null @@ -1,147 +0,0 @@ -"""Helper functions for the dashboard.""" - -from bokeh.models import HoverTool, Legend -from bokeh.plotting import figure - -from estimagic.config import ( - GRID_VISIBLE, - LEGEND_LABEL_TEXT_FONT_SIZE, - LEGEND_SPACING, - MAJOR_TICK_IN, - MAJOR_TICK_OUT, - MIN_BORDER_BOTTOM, - MIN_BORDER_LEFT, - MIN_BORDER_RIGHT, - MIN_BORDER_TOP, - MINOR_TICK_LINE_COLOR, - OUTLINE_LINE_WIDTH, - PLOT_HEIGHT, - PLOT_WIDTH, - TOOLBAR_LOCATION, - Y_RANGE_PADDING, - Y_RANGE_PADDING_UNITS, -) -from estimagic.dashboard.colors import get_colors - - -def plot_time_series( - data, - y_keys, - x_name, - title, - name=None, - y_names=None, - plot_width=PLOT_WIDTH, -): - """Plot time series linking the *y_keys* to a common *x_name* variable. - - Args: - data (ColumnDataSource): data that contain the y_keys and x_name - y_keys (list): list of the entries in the data that are to be plotted. - x_name (str): name of the entry in the data that will be on the x axis. - title (str): title of the plot. - name (str, optional): name of the plot for later retrieval with bokeh. - y_names (list, optional): if given these replace the y keys as line names. - - Returns: - plot (bokeh Figure) - - """ - if y_names is None: - y_names = [str(key) for key in y_keys] - - plot = create_styled_figure(title=title, name=name, plot_width=plot_width) - # this ensures that the y range spans at least 0.1 - plot.y_range.range_padding = Y_RANGE_PADDING - plot.y_range.range_padding_units = Y_RANGE_PADDING_UNITS - - colors = get_colors("categorical", len(y_keys)) - - legend_items = [] - for color, y_key, y_name in zip(colors, y_keys, y_names): - if len(y_name) <= 35: - label = y_name - else: - label = "..." + y_name[-32:] - line_glyph = plot.line( - source=data, - x=x_name, - y=y_key, - line_width=2, - color=color, - muted_color=color, - muted_alpha=0.2, - ) - legend_items.append((label, [line_glyph])) - legend_items.append((" " * 60, [])) - - tooltips = [(x_name, "@" + x_name)] - tooltips += [("param_name", y_name), ("param_value", "@" + y_key)] - hover = HoverTool(renderers=[line_glyph], tooltips=tooltips) - plot.tools.append(hover) - - legend = Legend( - items=legend_items, - border_line_color=None, - label_width=100, - label_text_font_size=LEGEND_LABEL_TEXT_FONT_SIZE, - spacing=LEGEND_SPACING, - ) - legend.click_policy = "mute" - plot.add_layout(legend, "right") - - return plot - - -def create_styled_figure( - title, - name=None, - tooltips=None, - plot_width=PLOT_WIDTH, -): - """Return a styled, empty figure of predetermined height and width. - - Args: - title (str): Title of the figure. - name (str): Name of the plot for later retrieval by bokeh. If not given the - title is set as name - tooltips (list, optional): List of bokeh tooltips to add to the figure. - - Returns: - fig (bokeh Figure) - - """ - assert plot_width is not None - - name = name if name is not None else title - fig = figure( - plot_height=PLOT_HEIGHT, - plot_width=plot_width, - title=title.title(), - tooltips=tooltips, - name=name, - y_axis_type="linear", - sizing_mode="scale_width", - ) - fig.title.text_font_size = "15pt" - - # set minimum borders - fig.min_border_left = MIN_BORDER_LEFT - fig.min_border_right = MIN_BORDER_RIGHT - fig.min_border_top = MIN_BORDER_TOP - fig.min_border_bottom = MIN_BORDER_BOTTOM - - # remove toolbar - fig.toolbar_location = TOOLBAR_LOCATION - - # remove grid - fig.grid.visible = GRID_VISIBLE - # remove minor ticks - fig.axis.minor_tick_line_color = MINOR_TICK_LINE_COLOR - # remove tick lines - fig.axis.major_tick_out = MAJOR_TICK_OUT - fig.axis.major_tick_in = MAJOR_TICK_IN - # remove outline - fig.outline_line_width = OUTLINE_LINE_WIDTH - - return fig diff --git a/src/estimagic/dashboard/run_dashboard.py b/src/estimagic/dashboard/run_dashboard.py deleted file mode 100644 index 401e7aaa5..000000000 --- a/src/estimagic/dashboard/run_dashboard.py +++ /dev/null @@ -1,107 +0,0 @@ -import asyncio -import pathlib -import socket -from contextlib import closing -from functools import partial - -from bokeh.application import Application -from bokeh.application.handlers.function import FunctionHandler -from bokeh.command.util import report_server_init_errors -from bokeh.server.server import Server - -from estimagic.dashboard.dashboard_app import dashboard_app - - -def run_dashboard( - database_path, - no_browser, - port, - updating_options, -): - """Start the dashboard pertaining to one database. - - Args: - database_path (str or pathlib.Path): Path to an sqlite3 file which - typically has the file extension ``.db``. - no_browser (bool): If True the dashboard does not open in the browser. - port (int): Port where to display the dashboard. - updating_options (dict): Specification how to update the plotting data. - It contains "rollover", "update_frequency", "update_chunk", "jump" and - "stride". - - """ - port = _find_free_port() if port is None else port - port = int(port) - - if not isinstance(database_path, (str, pathlib.Path)): - raise TypeError( - "database_path must be string or pathlib.Path. ", - f"You supplied {type(database_path)}.", - ) - else: - database_path = pathlib.Path(database_path) - if not database_path.exists(): - raise ValueError( - f"The database path {database_path} you supplied does not exist." - ) - - session_data = { - "last_retrieved": 0, - "database_path": database_path, - "callbacks": {}, - } - - app_func = partial( - dashboard_app, - session_data=session_data, - updating_options=updating_options, - ) - apps = {"/": Application(FunctionHandler(app_func))} - - _start_server(apps=apps, port=port, no_browser=no_browser) - - -def _find_free_port(): - """Find a free port on the localhost. - - Adapted from https://stackoverflow.com/a/45690594 - - """ - with closing(socket.socket(socket.AF_INET, socket.SOCK_STREAM)) as s: - s.bind(("localhost", 0)) - s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) - return s.getsockname()[1] - - -def _start_server(apps, port, no_browser): - """Create and start a bokeh server with the supplied apps. - - Args: - apps (dict): mapping from relative paths to bokeh Applications. - port (int): port where to show the dashboard. - no_browser (bool): whether to show the dashboard in the browser - - """ - # necessary for the dashboard to work when called from a notebook - asyncio.set_event_loop(asyncio.new_event_loop()) - - # this is adapted from bokeh.subcommands.serve - with report_server_init_errors(port=port): - server = Server(apps, port=port) - - # On a remote server, we do not want to start the dashboard here. - if not no_browser: - - def show_callback(): - server.show("/") - - server.io_loop.add_callback(show_callback) - - address_string = server.address if server.address else "localhost" - - print( # noqa: T201 - "Bokeh app running at:", - f"http://{address_string}:{server.port}{server.prefix}/", - ) - server._loop.start() - server.start() diff --git a/src/estimagic/dashboard/styles.css b/src/estimagic/dashboard/styles.css deleted file mode 100644 index 4781450f3..000000000 --- a/src/estimagic/dashboard/styles.css +++ /dev/null @@ -1,6 +0,0 @@ -button.bk.bk-btn.bk-btn-default { - color: blue; - font-size:10pt; - background-color: white; - border-color: black; -} diff --git a/src/estimagic/estimation/estimate_ml.py b/src/estimagic/estimation/estimate_ml.py index bc30243ff..41f6a3760 100644 --- a/src/estimagic/estimation/estimate_ml.py +++ b/src/estimagic/estimation/estimate_ml.py @@ -94,12 +94,11 @@ def estimate_ml( See :ref:`constraints`. logging (pathlib.Path, str or False): Path to sqlite3 file (which typically has the file extension ``.db``. If the file does not exist, it will be created. - The dashboard can only be used when logging is used. log_options (dict): Additional keyword arguments to configure the logging. - "fast_logging": A boolean that determines if "unsafe" settings are used to speed up write processes to the database. This should only be used for very short running criterion functions where the main purpose of the log - is a real-time dashboard and it would not be catastrophic to get a + is monitoring and it would not be catastrophic to get a corrupted database in case of a sudden system shutdown. If one evaluation of the criterion function (and gradient if applicable) takes more than 100 ms, the logging overhead is negligible. diff --git a/src/estimagic/estimation/estimate_msm.py b/src/estimagic/estimation/estimate_msm.py index 26886594c..2a7bade06 100644 --- a/src/estimagic/estimation/estimate_msm.py +++ b/src/estimagic/estimation/estimate_msm.py @@ -115,14 +115,14 @@ def estimate_msm( See :ref:`constraints`. logging (pathlib.Path, str or False): Path to sqlite3 file (which typically has the file extension ``.db``. If the file does not exist, it will be created. - The dashboard can only be used when logging is used. + log_options (dict): Additional keyword arguments to configure the logging. - "fast_logging" (bool): A boolean that determines if "unsafe" settings are used to speed up write processes to the database. This should only be used for very short running criterion functions where the main purpose of the log is a - real-time dashboard and it would not be catastrophic to get a corrupted + monitoring and it would not be catastrophic to get a corrupted database in case of a sudden system shutdown. If one evaluation of the criterion function (and gradient if applicable) takes more than 100 ms, the logging overhead is negligible. diff --git a/src/estimagic/logging/read_from_database.py b/src/estimagic/logging/read_from_database.py index 1ed7fd012..462d0e136 100644 --- a/src/estimagic/logging/read_from_database.py +++ b/src/estimagic/logging/read_from_database.py @@ -1,7 +1,7 @@ """Functions to generate, load, write to and read from databases. The functions here are meant for internal use in estimagic, e.g. for logging during -the optimization and reading from the database in the dashboard. They do not require +the optimization and reading from the database. They do not require detailed knowledge of databases in general but some knowledge of the schema (e.g. table names) of the database we use for logging. diff --git a/src/estimagic/logging/read_log.py b/src/estimagic/logging/read_log.py index 39e55488b..833304bc9 100644 --- a/src/estimagic/logging/read_log.py +++ b/src/estimagic/logging/read_log.py @@ -3,8 +3,8 @@ The functions in the module are meant for end users of estimagic. They do not require any knowledge of databases. -When using them internally (e.g. in the dashboard), make sure to supply a database to -path_or_database. Otherwise, the functions may be very slow. +When using them internally, make sure to supply a database to path_or_database. +Otherwise, the functions may be very slow. """ diff --git a/src/estimagic/optimization/nag_optimizers.py b/src/estimagic/optimization/nag_optimizers.py index 36d224e3b..3fe51265e 100644 --- a/src/estimagic/optimization/nag_optimizers.py +++ b/src/estimagic/optimization/nag_optimizers.py @@ -5,8 +5,6 @@ - ``scaling_within_bounds`` - ``init.run_in_parallel`` - ``do_logging``, ``print_progress`` and all their advanced options. - Use estimagic's database and dashboard instead to explore your criterion - and algorithm. """ diff --git a/src/estimagic/optimization/optimize.py b/src/estimagic/optimization/optimize.py index 3f8119c01..fc14eaf40 100644 --- a/src/estimagic/optimization/optimize.py +++ b/src/estimagic/optimization/optimize.py @@ -112,12 +112,12 @@ def maximize( When doing parallel optimizations and logging is provided, you have to provide a different path for each optimization you are running. You can disable logging completely by setting it to False, but we highly recommend - not to do so. The dashboard can only be used when logging is used. + not to do so. log_options (dict): Additional keyword arguments to configure the logging. - "fast_logging": A boolean that determines if "unsafe" settings are used to speed up write processes to the database. This should only be used for very short running criterion functions where the main purpose of the log - is a real-time dashboard and it would not be catastrophic to get a + is monitoring and it would not be catastrophic to get a corrupted database in case of a sudden system shutdown. If one evaluation of the criterion function (and gradient if applicable) takes more than 100 ms, the logging overhead is negligible. @@ -313,12 +313,12 @@ def minimize( When doing parallel optimizations and logging is provided, you have to provide a different path for each optimization you are running. You can disable logging completely by setting it to False, but we highly recommend - not to do so. The dashboard can only be used when logging is used. + not to do so. log_options (dict): Additional keyword arguments to configure the logging. - "fast_logging": A boolean that determines if "unsafe" settings are used to speed up write processes to the database. This should only be used for very short running criterion functions where the main purpose of the log - is a real-time dashboard and it would not be catastrophic to get a + is monitoring and it would not be catastrophic to get a corrupted database in case of a sudden system shutdown. If one evaluation of the criterion function (and gradient if applicable) takes more than 100 ms, the logging overhead is negligible. diff --git a/src/estimagic/optimization/scipy_optimizers.py b/src/estimagic/optimization/scipy_optimizers.py index 143e5d561..cd2852f5f 100644 --- a/src/estimagic/optimization/scipy_optimizers.py +++ b/src/estimagic/optimization/scipy_optimizers.py @@ -18,8 +18,6 @@ - ``return_all`` If set to True, a list of the best solution at each iteration is returned. In estimagic it's always set to its default False. - Use estimagic's database and dashboard instead to explore your criterion and - algorithm. - ``tol`` This argument of minimize (not an options key) is passed as different types of tolerance (gradient, parameter or criterion, as well as relative or absolute) diff --git a/src/estimagic/optimization/simopt_optimizers.py b/src/estimagic/optimization/simopt_optimizers.py deleted file mode 100644 index d0baa418c..000000000 --- a/src/estimagic/optimization/simopt_optimizers.py +++ /dev/null @@ -1,365 +0,0 @@ -"""Implement `simopt` optimizers. - -.. note:: `simopt`'s SPSA and STRONG support box constraints, i.e. parameter bounds. -However, for the moment they are not supported. - -""" - -import numpy as np - -from estimagic.config import IS_SIMOPT_INSTALLED -from estimagic.decorators import mark_minimizer -from estimagic.logging.read_from_database import list_of_dicts_to_dict_of_lists -from estimagic.optimization.algo_options import ( - STOPPING_MAX_CRITERION_EVALUATIONS_GLOBAL, -) - - -@mark_minimizer( - name="simopt_adam", - primary_criterion_entry="value", - needs_scaling=True, - is_available=IS_SIMOPT_INSTALLED, -) -def simopt_adam( - criterion, - derivative, - x, - lower_bounds, - upper_bounds, - *, - stopping_max_iterations=STOPPING_MAX_CRITERION_EVALUATIONS_GLOBAL, - crn_across_solns=True, - r=1, - beta_1=0.9, - beta_2=0.999, - alpha=1.0, - epsilon=10e-8, - sensitivity=10e-7, -): - """Minimize a scalar function using the ADAM algorithm from SimOpt. - - For details see - :ref: `list_of_scipy_algorithms`. - - """ - solver_options = { - "crn_across_solns": crn_across_solns, - "r": r, - "beta_1": beta_1, - "beta_2": beta_2, - "alpha": alpha, - "epsilon": epsilon, - "sensitivity": sensitivity, - } - - out = _minimize_simopt( - algorithm="ADAM", - criterion=criterion, - derivative=derivative, - x=x, - lower_bounds=lower_bounds, - upper_bounds=upper_bounds, - solver_options=solver_options, - budget=stopping_max_iterations, - ) - return out - - -@mark_minimizer( - name="simopt_astrodf", - primary_criterion_entry="value", - needs_scaling=True, - is_available=IS_SIMOPT_INSTALLED, -) -def simopt_astrodf( - criterion, - x, - lower_bounds, - upper_bounds, - *, - stopping_max_iterations=STOPPING_MAX_CRITERION_EVALUATIONS_GLOBAL, - bounds_padding=1e-8, - crn_across_solns=True, - delta_max=50.0, - eta_1=0.1, - eta_2=0.5, - gamma_1=2.0, - gamma_2=0.5, - w=0.85, - mu=1_000.0, - beta=10.0, - lambda_min=None, - simple_solve=False, - criticality_select=True, - criticality_threshold=0.1, -): - """Minimize a scalar function using the ASTRODF algorithm from SimOpt. - - For details see - :ref: `list_of_scipy_algorithms`. - - """ - solver_options = { - "crn_across_solns": crn_across_solns, - "delta_max": delta_max, - "eta_1": eta_1, - "eta_2": eta_2, - "gamma_1": gamma_1, - "gamma_2": gamma_2, - "w": w, - "mu": mu, - "beta": beta, - "lambda_min": 2 * len(x) + 1 if lambda_min is None else lambda_min, - "simple_solve": simple_solve, - "criticality_select": criticality_select, - "criticality_threshold": criticality_threshold, - } - - # Revert bounds shifting of ASTRODF to improve accuracy. For details see docstring. - lower_bounds -= 0.01 - bounds_padding - upper_bounds += 0.01 + bounds_padding - - out = _minimize_simopt( - algorithm="ASTRODF", - criterion=criterion, - derivative=None, - x=x, - lower_bounds=lower_bounds, - upper_bounds=upper_bounds, - solver_options=solver_options, - budget=stopping_max_iterations, - ) - return out - - -@mark_minimizer( - name="simopt_spsa", - primary_criterion_entry="value", - needs_scaling=True, - is_available=IS_SIMOPT_INSTALLED, -) -def simopt_spsa( - criterion, - x, - *, - stopping_max_iterations=STOPPING_MAX_CRITERION_EVALUATIONS_GLOBAL, - crn_across_solns=True, - alpha=0.602, - gamma=0.101, - step=0.5, - gavg=1, - n_reps=2, - n_loss=2, - eval_pct=2 / 3, - iter_pct=0.1, -): - """Minimize a scalar function using the SPSA algorithm from SimOpt. - - For details see - :ref: `list_of_scipy_algorithms`. - - """ - solver_options = { - "crn_across_solns": crn_across_solns, - "alpha": alpha, - "gamma": gamma, - "step": step, - "gavg": gavg, - "n_reps": n_reps, - "n_loss": n_loss, - "eval_pct": eval_pct, - "iter_pct": iter_pct, - } - - out = _minimize_simopt( - algorithm="SPSA", - criterion=criterion, - derivative=None, - x=x, - lower_bounds=np.full_like(x, -np.inf), - upper_bounds=np.full_like(x, np.inf), - solver_options=solver_options, - budget=stopping_max_iterations, - ) - return out - - -@mark_minimizer( - name="simopt_strong", - primary_criterion_entry="value", - needs_scaling=True, - is_available=IS_SIMOPT_INSTALLED, -) -def simopt_strong( - criterion, - x, - *, - stopping_max_iterations=STOPPING_MAX_CRITERION_EVALUATIONS_GLOBAL, - crn_across_solns=True, - n0=10, - n_r=1, - sensitivity=10e-7, - delta_threshold=1.2, - delta_T=2.0, # noqa: N803 - eta_0=0.01, - eta_1=0.3, - gamma_1=0.9, - gamma_2=1.11, - _lambda=2, - lambda_2=1.01, -): - """Minimize a scalar function using the STRONG algorithm from SimOpt. - - For details see - :ref: `list_of_scipy_algorithms`. - - """ - solver_options = { - "crn_across_solns": crn_across_solns, - "n0": n0, - "n_r": n_r, - "sensitivity": sensitivity, - "delta_threshold": delta_threshold, - "delta_T": delta_T, - "eta_0": eta_0, - "eta_1": eta_1, - "gamma_1": gamma_1, - "gamma_2": gamma_2, - "lambda": _lambda, - "lambda_2": lambda_2, - } - - out = _minimize_simopt( - algorithm="STRONG", - criterion=criterion, - derivative=None, - x=x, - lower_bounds=np.full_like(x, -np.inf), - upper_bounds=np.full_like(x, np.inf), - solver_options=solver_options, - budget=stopping_max_iterations, - ) - return out - - -# ====================================================================================== -# Template -# ====================================================================================== - - -def _minimize_simopt( - algorithm, - criterion, - derivative, - x, - lower_bounds, - upper_bounds, - solver_options, - budget, -): - problem = ProblemSpecification( - criterion=criterion, - derivative=derivative, - x=x, - lower_bounds=lower_bounds, - upper_bounds=upper_bounds, - budget=budget, - ) - solver = ProblemSolver( - solver_name=algorithm, problem=problem, solver_fixed_factors=solver_options - ) - # overwrite method of simopt ProblemSolver class that pickles temporary results - solver.record_experiment_results = _do_nothing.__get__(solver, ProblemSolver) - solver.run(n_macroreps=1) - - criterion_history = criterion.keywords["history_container"] - criterion_history = list_of_dicts_to_dict_of_lists(criterion_history) - arg_min = np.argmin(criterion_history["criterion"]) - - out = { - "solution_x": criterion_history["params"][arg_min], - "solution_criterion": criterion_history["criterion"][arg_min], - "n_criterion_evaluations": len(criterion_history["criterion"]), - } - if derivative is not None: - derivative_history = derivative.keywords["history_container"] - derivative_history = list_of_dicts_to_dict_of_lists(derivative_history) - out["solution_derivative"] = derivative_history["criterion"][arg_min] - out["n_derivative_evaluations"] = len(derivative_history["criterion"]) - - return out - - -def _do_nothing(self): # noqa: ARG001 - pass - - -# ====================================================================================== -# SimOpt Classes -# ====================================================================================== - - -if IS_SIMOPT_INSTALLED: - from simopt.base import Model, Problem - from simopt.experiment_base import ProblemSolver - - class ProblemSpecification(Problem): - def __init__( - self, - criterion, - derivative, - x, - lower_bounds, - upper_bounds, - budget, - fixed_factors=None, - ): - fixed_factors = {} if fixed_factors is None else fixed_factors - self.name = "ProblemSpecification" - self.dim = len(x) - self.n_objectives = 1 - self.n_stochastic_constraints = 0 - self.minmax = (-1,) # minimize objective - self.lower_bounds = lower_bounds - self.upper_bounds = upper_bounds - self.gradient_available = derivative is not None - self.model_default_factors = {} - self.specifications = { - "initial_solution": {"default": x}, - "budget": {"default": budget}, - } - super().__init__(fixed_factors, model_fixed_factors={}) - self.model = CriterionWrapper( - criterion=criterion, - gradient=derivative, - x=x, - ) - - def vector_to_factor_dict(self, x): - return {"x": x} - - def factor_dict_to_vector(self, d): - return d["x"] - - def response_dict_to_objectives(self, d): - return (d["value"],) - - class CriterionWrapper(Model): - def __init__(self, criterion, gradient, x): - self.n_rngs = 0 - self.n_responses = 1 - self.specifications = {"x": {"default": x}} - self.criterion = criterion - self.gradient_available = gradient is not None - self.gradient = gradient - super().__init__(fixed_factors={}) - - def replicate(self, rng_list): # noqa: ARG002 - x = np.array(self.factors["x"]) - criterion = {"value": self.criterion(x)} - if self.gradient_available: - gradient = {"value": {"x": self.gradient(x)}} - else: - gradient = None - return criterion, gradient diff --git a/src/estimagic/parameters/parameter_groups.py b/src/estimagic/parameters/parameter_groups.py deleted file mode 100644 index 75d840965..000000000 --- a/src/estimagic/parameters/parameter_groups.py +++ /dev/null @@ -1,123 +0,0 @@ -import numpy as np -import pandas as pd -from pybaum import leaf_names - -from estimagic.parameters.tree_registry import get_registry - - -def get_params_groups_and_short_names(params, free_mask, max_group_size=8): - """Create parameter groups and short names. - - Args: - params (pytree): parameters as supplied by the user. - free_mask (np.array): 1d boolean array of same length as params, identifying - the free parameters. - max_group_size (int): maximal allowed size of a group. Groups that are larger - than this will be split. - - Returns: - groups (list): list of strings and None. For each entry in flat params the key - of the group to which the parameter belongs. None if the parameter is not - free. - names (list): list of the parameter names to be displayed in the dashboard. - - """ - sep = "$$$+++" - registry = get_registry(extended=True) - paths = leaf_names(params, registry=registry, separator=sep) - split_paths = [path.split(sep) for path in paths] - - groups = [] - names = [] - for path_list, is_free in zip(split_paths, free_mask): - group, name = _get_group_and_name(path_list, is_free) - groups.append(group) - names.append(name) - - # if every parameter has its own group, they should all actually be in one group - if len(set(groups)) == len(groups): - groups = ["Parameters"] * len(groups) - - counts = pd.Series(groups).value_counts() - to_be_split = counts[counts > max_group_size] - for group_name, n_occurrences in to_be_split.items(): - split_group_names = _split_long_group( - group_name=group_name, - n_occurrences=n_occurrences, - max_group_size=max_group_size, - ) - groups = _replace_too_common_groups(groups, group_name, split_group_names) - - return groups, names - - -def _get_group_and_name(path_list, is_free): - """Create group and name from the path_list of a parameter. - - Args: - path_list (list): - is_free (bool): if True the parameter is free. If False, the parameter is fixed - and won't change during the - - Returns: - out (tuple): Tuple of length 2. The 1st entry is the group name of the - parameter, the 2nd entry is the "first" name of the parameter (i.e. - its name without its group). - - """ - if is_free: - if len(path_list) == 1: - out = (path_list[0], path_list[0]) - else: - group_name = ", ".join(path_list[:-1]) - out = (group_name, path_list[-1]) - else: - out = (None, "_".join(path_list)) - return out - - -def _split_long_group(group_name, n_occurrences, max_group_size=8): - """Create new names that split a long group into chunks. - - Args: - group_name (str): name of the group with too many members - n_occurrences (int): number of occurrences of the group name - max_group_size (int, optional): maximal number parameters that should be in a - group. - - Returns: - new_names (list): list of strings with length n_occurrences. Each is a new - group name of the format "{group_name}_1", "{group_name}_2" etc. Each new - group name occurs at most max_group_size times. - - """ - quot, _ = divmod(n_occurrences, max_group_size) - split = np.array_split([group_name] * n_occurrences, quot + 1) - new_names = [] - for i, arr in enumerate(split): - new_names += [f"{group_name}, {i + 1}"] * len(arr) - return new_names - - -def _replace_too_common_groups(groups, group_name, replacement_names): - """Create new groups replacing *group_name* with the replacement_names. - - Args: - groups (list): the groups containing too common group names - group_name (str): the group name to be replaced - replacement_names (list): the new group names with which to replace group_name. - It must have at least as many entries as there are occurrences of group_name - in groups. - - Returns: - new_groups (list): same as groups except that group name has been replaced - with the entries of replacement_names - - """ - new_groups = [] - for group in groups: - if group != group_name: - new_groups.append(group) - else: - new_groups.append(replacement_names.pop(0)) - return new_groups diff --git a/src/estimagic/visualization/derivative_plot.py b/src/estimagic/visualization/derivative_plot.py deleted file mode 100644 index f0406a9a6..000000000 --- a/src/estimagic/visualization/derivative_plot.py +++ /dev/null @@ -1,239 +0,0 @@ -"""Visualize and compare derivative estimates.""" - -import itertools - -import numpy as np -import pandas as pd -import plotly.graph_objects as go - -from estimagic.config import PLOTLY_PALETTE, PLOTLY_TEMPLATE -from estimagic.visualization.plotting_utilities import create_grid_plot, create_ind_dict - - -def derivative_plot( - derivative_result, - combine_plots_in_grid=True, - template=PLOTLY_TEMPLATE, - palette=PLOTLY_PALETTE, -): - """Plot evaluations and derivative estimates. - - The resulting grid plot displays function evaluations and derivatives. The - derivatives are visualized as a first-order Taylor approximation. Bands are drawn - indicating the area in which forward and backward derivatives are located. This is - done by filling the area between the derivative estimate with lowest and highest - step size, respectively. Do not confuse these bands with statistical errors. - - This function does not require the params vector as plots are displayed relative to - the point at which the derivative is calculated. - - Args: - derivative_result (dict): The result dictionary of call to - :func:`~estimagic.differentiation.derivatives.first_derivative` with - return_info and return_func_value set to True. - combine_plots_in_grid (bool): decide whether to return a one - figure containing subplots for each factor pair or a dictionary - of individual plots. Default True. - template (str): The template for the figure. Default is "plotly_white". - palette: The coloring palette for traces. Default is "qualitative.Plotly". - - Returns: - plotly.Figure: The grid plot or dict of individual plots - - """ - - func_value = derivative_result["func_value"] - func_evals = derivative_result["func_evals"] - derivative_candidates = derivative_result["derivative_candidates"] - - # remove index from main data for plotting - df = func_evals.reset_index() - df = df.assign(step=df.step * df.sign) - func_evals = df.set_index(["sign", "step_number", "dim_x", "dim_f"]) - - # prepare derivative data - df_der = _select_derivative_with_minimal_error(derivative_candidates) - df_der_method = _select_derivative_with_minimal_error( - derivative_candidates, given_method=True - ) - - # auxiliary - grid_points = 2 # we do not need more than 2 grid points since all lines are affine - func_value = np.atleast_1d(func_value) - max_steps = df.groupby("dim_x")["step"].max() - - # dimensions of params vector (dim_x) span the vertical axis while dimensions of - # output (dim_f) span the horizontal axis of produced figure - dim_x = range(df["dim_x"].max() + 1) - dim_f = range(df["dim_f"].max() + 1) - - # plotting - - # container for titles - titles = [] - # container for x-axis titles - x_axis = [] - # container for individual plots - g_list = [] - - # creating data traces for plotting faceted/individual plots - for row, col in itertools.product(dim_x, dim_f): - g_ind = [] # container for data for traces in individual plot - - # initial values and x grid - y0 = func_value[col] - x_grid = np.linspace(-max_steps[row], max_steps[row], grid_points) - - # initial values and x grid - y0 = func_value[col] - x_grid = np.linspace(-max_steps[row], max_steps[row], grid_points) - - # function evaluations scatter points - _scatter_data = func_evals.query("dim_x == @row & dim_f == @col") - - trace_func_evals = go.Scatter( - x=_scatter_data["step"], - y=_scatter_data["eval"], - mode="markers", - name="Function Evaluation", - legendgroup=1, - marker={"color": "black"}, - ) - g_ind.append(trace_func_evals) - - # best derivative estimate given each method - for i, method in enumerate(["forward", "central", "backward"]): - _y = y0 + x_grid * df_der_method.loc[method, row, col] - - trace_method = go.Scatter( - x=x_grid, - y=_y, - mode="lines", - name=method, - legendgroup=2 + i, - line={"color": palette[i], "width": 5}, - ) - g_ind.append(trace_method) - - # fill area - for sign, cmap_id in zip([1, -1], [0, 2]): # cmap_id of ['forward', 'backward'] - _x_y = _select_eval_with_lowest_and_highest_step(func_evals, sign, row, col) - diff = _x_y - np.array([0, y0]) - slope = diff[:, 1] / diff[:, 0] - _y = y0 + x_grid * slope.reshape(-1, 1) - - trace_fill_lines = go.Scatter( - x=x_grid, - y=_y[0, :], - mode="lines", - line={"color": palette[cmap_id], "width": 1}, - showlegend=False, - ) - g_ind.append(trace_fill_lines) - - trace_fill_area = go.Scatter( - x=x_grid, - y=_y[1, :], - mode="lines", - line={"color": palette[cmap_id], "width": 1}, - fill="tonexty", - ) - g_ind.append(trace_fill_area) - - # overall best derivative estimate - _y = y0 + x_grid * df_der.loc[row, col] - trace_best_estimate = go.Scatter( - x=x_grid, - y=_y, - mode="lines", - name="Best Estimate", - legendgroup=2, - line={"color": "black", "width": 2}, - ) - g_ind.append(trace_best_estimate) - - # subplot x titles - x_axis.append(rf"Value relative to x{0, row}") - # subplot titles - titles.append(f"dim_x, dim_f = {row, col}") - # list of traces for individual plots - g_list.append(g_ind) - - common_dependencies = { - "ind_list": g_list, - "names": titles, - "clean_legend": True, - "scientific_notation": True, - "x_title": x_axis, - } - common_layout = { - "template": template, - "margin": {"l": 10, "r": 10, "t": 30, "b": 10}, - } - - # Plot with subplots - if combine_plots_in_grid: - g = create_grid_plot( - rows=len(dim_x), - cols=len(dim_f), - **common_dependencies, - kws={ - "height": 300 * len(dim_x), - "width": 500 * len(dim_f), - **common_layout, - }, - ) - out = g - - # Dictionary for individual plots - else: - ind_dict = create_ind_dict( - **common_dependencies, - kws={"height": 300, "width": 500, "title_x": 0.5, **common_layout}, - ) - - out = ind_dict - - return out - - -def _select_derivative_with_minimal_error(df_jac_cand, given_method=False): - """Select derivatives with minimal error component wise. - - Args: - df_jac_cand (pandas.DataFrame): Frame containing jacobian candidates. - given_method (bool): Boolean indicating wether to condition on columns method - in df_jac_cand. Default is False, which selects the overall best derivative - estimate. - - Returns: - df (pandas.DataFrame): The (best) derivative estimate. - - """ - given = ["method"] if given_method else [] - minimizer = df_jac_cand.groupby([*given, "dim_x", "dim_f"])["err"].idxmin() - df = df_jac_cand.loc[minimizer]["der"] - index_level_to_drop = list({"method", "num_term"} - set(given)) - df = df.droplevel(index_level_to_drop).copy() - return df - - -def _select_eval_with_lowest_and_highest_step(df_evals, sign, dim_x, dim_f): - """Select step and eval from data with highest and lowest step. - - Args: - df_evals (pd.DataFrame): Frame containing func evaluations (long-format). - sign (int): Direction of step. - dim_x (int): Dimension of x to select. - dim_f (int): Dimension of f to select. - - Returns: - out (numpy.ndarray): Array of shape (2, 2). Columns correspond to step and eval, - while rows correspond to lowest and highest step, respectively. - - """ - df = df_evals.loc[(sign, slice(None), dim_x, dim_f), ["step", "eval"]] - df = df.dropna().sort_index() - out = pd.concat([df.head(1), df.tail(1)]).to_numpy() - - return out diff --git a/tests/dashboard/test_callbacks.py b/tests/dashboard/test_callbacks.py deleted file mode 100644 index d261e9f17..000000000 --- a/tests/dashboard/test_callbacks.py +++ /dev/null @@ -1,44 +0,0 @@ -import numpy as np -from bokeh.models import ColumnDataSource -from estimagic.dashboard.callbacks import ( - _create_params_data_for_update, - _reset_column_data_sources, -) - -PARAM_IDS = ["a", "b", "c", "d", "e"] - - -def test_create_params_data_for_update(): - param_ids = PARAM_IDS - - data = { - "rowid": [1, 2, 3, 4, 5], - "params": [ - np.array([0.47, 0.22, -0.46, 0.0, 2.0]), - np.array([0.56, 0.26, 0.48, -0.30, 1.69]), - np.array([0.50, 0.24, -0.15, -0.10, 1.89]), - np.array([0.51, 0.24, -0.12, -0.10, 1.89]), - np.array([0.52, 0.23, -0.12, -0.10, 1.90]), - ], - } - - expected = { - "iteration": [1, 2, 3, 4, 5], - "a": [0.47, 0.56, 0.50, 0.51, 0.52], - "b": [0.22, 0.26, 0.24, 0.24, 0.23], - "c": [-0.46, 0.48, -0.15, -0.12, -0.12], # this wouldn't be plotted. - "d": [0.0, -0.30, -0.10, -0.10, -0.10], - "e": [2.0, 1.69, 1.89, 1.89, 1.90], - } - - res = _create_params_data_for_update( - data=data, param_ids=param_ids, clip_bound=1e100 - ) - assert res == expected - - -def test_reset_column_data_sources(): - data = {"x": [0, 1, 2], "y": [2, 3, 4]} - cds = ColumnDataSource(data) - _reset_column_data_sources([cds]) - assert cds.data == {"x": [], "y": []} diff --git a/tests/dashboard/test_colors.py b/tests/dashboard/test_colors.py deleted file mode 100644 index 83a8058dd..000000000 --- a/tests/dashboard/test_colors.py +++ /dev/null @@ -1,14 +0,0 @@ -"""This only tests that we get the right number of colors, not the exact colors.""" - -import pytest -from estimagic.dashboard.colors import get_colors - - -def test_correct_number_categorical(): - for number in range(20): - assert len(get_colors("categorical", number)) == number - - -def test_wrong_palette_raises_error(): - with pytest.raises(ValueError): - get_colors("red-green", 3) diff --git a/tests/dashboard/test_dashboard_app.py b/tests/dashboard/test_dashboard_app.py deleted file mode 100644 index 1de2d4b3e..000000000 --- a/tests/dashboard/test_dashboard_app.py +++ /dev/null @@ -1,197 +0,0 @@ -"""Test the functions of the dashboard app.""" - -import numpy as np -import pandas as pd -import pandas.testing as pdt -import pytest -from bokeh.document import Document -from bokeh.models import ColumnDataSource -from estimagic import minimize -from estimagic.dashboard import dashboard_app - - -def pybaum_sphere(params): - """Sphere function expecting a dictionary with floats and a np.array. - - Args: - params (dict): keys are "a", "b", "c". The first two values are floats, the - third is a np.array. - - Returns: - float: criterion value. - - """ - return params["a"] ** 2 + params["b"] ** 2 + (params["c"] ** 2).sum() - - -def pandas_sphere(params): - """Sphere function expecting a pandas DataFrame. - - Args: - params (pd.DataFrame): expected to have a "value" column with float entries. - - Returns: - float: criterion value. - - """ - return (params["value"] ** 2).sum() - - -@pytest.mark.parametrize( - "criterion, start_params", - [ - (pybaum_sphere, {"a": 2, "b": 4, "c": np.arange(4)}), - (pandas_sphere, pd.DataFrame({"value": np.ones(6)})), - ], -) -def test_dashboard_app(criterion, start_params, tmpdir): - """Integration test that no Error is raised when calling the dashboard app.""" - doc = Document() - - # create database - db_path = tmpdir / "test_db.db" - minimize( - criterion=criterion, - params=start_params, - logging=db_path, - algorithm="scipy_lbfgsb", - ) - - session_data = { - "last_retrieved": 0, - "database_path": db_path, - "callbacks": {}, - } - updating_options = { - "rollover": 10_000, - "jump": False, - "update_frequency": 0.1, - "update_chunk": 30, - "stride": 1, - } - - dashboard_app.dashboard_app( - doc=doc, - session_data=session_data, - updating_options=updating_options, - ) - - -def test_create_cds_for_dashboard(): - start_params = pd.DataFrame() - start_params["group"] = ["g1", "g1", None, "g2", "g2", None, "g3"] - start_params["id"] = ["hello", "world", "test", "p1", "p2", "p3", "1"] - d = { - "hello": [], - "world": [], - "test": [], - "p1": [], - "p2": [], - "p3": [], - "1": [], - "iteration": [], - } - group_to_param_ids = {"g1": ["hello"], "g2": ["p1", "p2"]} - expected_param_data = { - k: v for k, v in d.items() if k in ["hello", "p1", "p2", "iteration"] - } - expected_param_cds = ColumnDataSource( - data=expected_param_data, name="params_history_cds" - ) - _, params_history = dashboard_app._create_cds_for_dashboard(group_to_param_ids) - assert expected_param_cds.data == params_history.data - - -def test_calculate_start_point(monkeypatch): - def fake_read_last_rows(**kwargs): # noqa: ARG001 - return [{"rowid": 20}] - - monkeypatch.setattr( - "estimagic.dashboard.dashboard_app.read_last_rows", fake_read_last_rows - ) - - updating_options = { - "rollover": 10, - "stride": 1, - "jump": True, - } - res = dashboard_app._calculate_start_point( - database=False, - updating_options=updating_options, - ) - - assert res == 10 - - -def test_calculate_start_point_no_negative_value(monkeypatch): - def fake_read_last_rows(**kwargs): # noqa: ARG001 - return [{"rowid": 20}] - - monkeypatch.setattr( - "estimagic.dashboard.dashboard_app.read_last_rows", fake_read_last_rows - ) - - res = dashboard_app._calculate_start_point( - database=False, - updating_options={"rollover": 30, "stride": 1, "jump": True}, - ) - - assert res == 0 - - -def test_create_id_column(): - start_params = pd.DataFrame(index=[2, 4, 6, 8, 10, 12]) - start_params["group"] = ["g1", "g2", None, "", False, np.nan] - res = dashboard_app._create_id_column(start_params) - expected = pd.Series(["0", "1"] + ["None"] * 4, index=start_params.index) - pdt.assert_series_equal(res, expected) - - -# ==================================================================================== -# map_group_to_params -# ==================================================================================== - -ignore_groups = [None, np.nan, False, ""] - - -@pytest.mark.parametrize("group_val", ignore_groups) -def test_map_groups_to_param_ids_group_none(group_val): - params = pd.DataFrame() - params["value"] = [0, 1, 2, 3] - params["group"] = group_val - params["id"] = ["a", "b", "c", "d"] - params.index = ["a", "b", "c", "d"] - expected = {} - res = dashboard_app._map_group_to_other_column(params, "id") - assert expected == res - - -ind_and_ids = [ - (["a", "b", "c", "d"], ["0", "1", "2", "3"]), - ([2, 3, 4, 5], ["0", "1", "2", "3"]), -] - - -@pytest.mark.parametrize("index, ids", ind_and_ids) -def test_map_groups_to_param_ids_group_not_none(index, ids): - params = pd.DataFrame() - params["value"] = [0, 1, 2, 3] - params["group"] = [None, "A", "B", "B"] - params.index = index - params["id"] = ids - expected = {"A": ["1"], "B": ["2", "3"]} - res = dashboard_app._map_group_to_other_column(params, "id") - assert expected == res - - -def test_map_groups_to_param_ids_group_multi_index(): - params = pd.DataFrame() - params["value"] = [0, 1, 2, 3] - params["group"] = [None, "A", "B", "B"] - params["ind1"] = ["beta", "beta", "cutoff", "cutoff"] - params["ind2"] = ["edu", "exp", 1, 2] - params.set_index(["ind1", "ind2"], inplace=True) - params["id"] = ["beta_edu", "beta_exp", "cutoff_1", "cutoff_2"] - expected = {"A": ["beta_exp"], "B": ["cutoff_1", "cutoff_2"]} - res = dashboard_app._map_group_to_other_column(params, "id") - assert expected == res diff --git a/tests/dashboard/test_run_dashboard.py b/tests/dashboard/test_run_dashboard.py deleted file mode 100644 index 8fe0213f2..000000000 --- a/tests/dashboard/test_run_dashboard.py +++ /dev/null @@ -1,36 +0,0 @@ -"""Test the functions to run the dashboard.""" - -from click.testing import CliRunner -from estimagic.cli import cli -from estimagic.config import EXAMPLE_DIR - - -def test_dashboard_cli(monkeypatch): - def fake_run_dashboard( - database_path, - no_browser, - port, - updating_options, - ): - assert database_path == str(EXAMPLE_DIR / "db1.db") - assert no_browser - assert port == 9999 - assert updating_options["jump"] - assert updating_options["stride"] == 1 - - monkeypatch.setattr("estimagic.cli.run_dashboard", fake_run_dashboard) - - runner = CliRunner() - result = runner.invoke( - cli, - [ - "dashboard", - str(EXAMPLE_DIR / "db1.db"), - "--no-browser", - "--port", - "9999", - "--jump", - ], - ) - - assert result.exit_code == 0 diff --git a/tests/optimization/test_many_algorithms.py b/tests/optimization/test_many_algorithms.py index f00efc111..55e101251 100644 --- a/tests/optimization/test_many_algorithms.py +++ b/tests/optimization/test_many_algorithms.py @@ -61,7 +61,7 @@ def test_algorithm_on_sum_of_squares_with_binding_bounds(algorithm): skip_checks=True, ) assert res.success in [True, None] - decimal = 2 if algorithm == "simopt_astrodf" else 3 + decimal = 3 aaae(res.params, np.array([1, 0, -1]), decimal=decimal) diff --git a/tests/parameters/test_parameter_groups.py b/tests/parameters/test_parameter_groups.py deleted file mode 100644 index 402cce770..000000000 --- a/tests/parameters/test_parameter_groups.py +++ /dev/null @@ -1,121 +0,0 @@ -import numpy as np -import pandas as pd -from estimagic.parameters.parameter_groups import ( - _get_group_and_name, - _replace_too_common_groups, - _split_long_group, - get_params_groups_and_short_names, -) - - -def test_get_params_groups_and_short_names_dict(): - params = { - "alone": 30, - "list_of_2": [10, 11], - "fixed": [5, 10], - "nested": {"c": [20, 21], "d": [22, 23], "e": 26}, - "to_be_split": 40 + np.arange(15), - } - free_mask = [True] * 3 + [False] * 2 + [True] * (5 + 15) - res_groups, res_names = get_params_groups_and_short_names( - params=params, free_mask=free_mask - ) - expected_groups = ( - [ - "alone", - "list_of_2", - "list_of_2", - None, - None, - "nested, c", - "nested, c", - "nested, d", - "nested, d", - "nested", - ] - + ["to_be_split, 1"] * 8 - + ["to_be_split, 2"] * 7 - ) - expected_names = [ - "alone", - "0", - "1", - "fixed_0", - "fixed_1", - "0", - "1", - "0", - "1", - "e", - ] + [str(i) for i in range(15)] - - assert res_groups == expected_groups - assert res_names == expected_names - - -def test_get_params_groups_and_short_names_numpy(): - params = np.arange(15).reshape(5, 3) - expected_groups = ["Parameters, 1"] * 8 + ["Parameters, 2"] * 7 - expected_names = [f"{j}_{i}" for j in range(5) for i in range(3)] - res_groups, res_names = get_params_groups_and_short_names( - params=params, free_mask=[True] * 15 - ) - assert expected_groups == res_groups - assert expected_names == res_names - - -def test_get_params_groups_and_short_names_dataframe(): - params = pd.DataFrame({"value": np.arange(15)}) - expected_groups = ["Parameters, 1"] * 8 + ["Parameters, 2"] * 7 - expected_names = [str(i) for i in range(15)] - res_groups, res_names = get_params_groups_and_short_names( - params=params, free_mask=[True] * 15 - ) - assert expected_groups == res_groups - assert expected_names == res_names - - -def test_get_group_and_name_not_free(): - res = _get_group_and_name(["a", "test", "hello"], is_free=False) - assert res == (None, "a_test_hello") - - -def test_get_group_and_name_free(): - res = _get_group_and_name(["a", "test", "hello"], is_free=True) - assert res == ("a, test", "hello") - - -def test_get_group_and_name_just_one(): - res = _get_group_and_name(["hello"], is_free=True) - assert res == ("hello", "hello") - - -def test_split_long_group_short(): - res = _split_long_group("bla", 15) - expected = np.array(["bla, 1"] * 8 + ["bla, 2"] * 7) - assert (res == expected).all() - - -def test_split_long_group_very_short(): - res = _split_long_group("bla", 7) - expected = np.array(["bla, 1"] * 7) - assert (res == expected).all() - - -def test_split_long_group_20(): - res = _split_long_group("bla", 20) - expected = np.array(["bla, 1"] * 7 + ["bla, 2"] * 7 + ["bla, 3"] * 6) - assert (res == expected).all() - - -def test_split_long_group_23(): - res = _split_long_group("bla", 23) - expected = np.array(["bla, 1"] * 8 + ["bla, 2"] * 8 + ["bla, 3"] * 7) - assert (res == expected).all() - - -def test_replace_too_common_groups(): - groups = ["a", "b", "c", "b", "b"] - split_group_names = ["d", "e", "f"] - res = _replace_too_common_groups(groups, "b", split_group_names) - assert res == ["a", "d", "c", "e", "f"] diff --git a/tests/visualization/test_derivative_plot.py b/tests/visualization/test_derivative_plot.py deleted file mode 100644 index 2a90a55fa..000000000 --- a/tests/visualization/test_derivative_plot.py +++ /dev/null @@ -1,104 +0,0 @@ -import numpy as np -import pandas as pd -import pytest -from estimagic.differentiation.derivatives import first_derivative -from estimagic.visualization.derivative_plot import ( - _select_derivative_with_minimal_error, - _select_eval_with_lowest_and_highest_step, - derivative_plot, -) -from numpy.testing import assert_array_equal -from pandas.testing import assert_series_equal - - -def test__select_derivative_with_minimal_error(): - data = [ - ["forward", 0, 0, 0, 0.1, 1], - ["forward", 1, 0, 0, 0.2, 2], - ["central", 0, 0, 0, 0.05, 1.1], - ["central", 1, 0, 0, 0.07, 1.2], - ] - df_jac_cand = pd.DataFrame( - data, columns=["method", "num_term", "dim_x", "dim_f", "err", "der"] - ) - df_jac_cand = df_jac_cand.set_index(["method", "num_term", "dim_x", "dim_f"]) - got = _select_derivative_with_minimal_error(df_jac_cand) - expected = pd.DataFrame([[0, 0, 1.1]], columns=["dim_x", "dim_f", "der"]) - expected = expected.set_index(["dim_x", "dim_f"])["der"] - assert_series_equal(got, expected) - - -def test__select_derivative_with_minimal_error_given(): - data = [ - ["forward", 0, 0, 0, 0.1, 1], - ["forward", 1, 0, 0, 0.2, 2], - ["central", 0, 0, 0, 0.05, 1.1], - ["central", 1, 0, 0, 0.07, 1.2], - ] - df_jac_cand = pd.DataFrame( - data, columns=["method", "num_term", "dim_x", "dim_f", "err", "der"] - ) - df_jac_cand = df_jac_cand.set_index(["method", "num_term", "dim_x", "dim_f"]) - got = _select_derivative_with_minimal_error(df_jac_cand, given_method=True) - expected = pd.DataFrame( - [["forward", 0, 0, 1], ["central", 0, 0, 1.1]], - columns=["method", "dim_x", "dim_f", "der"], - ) - expected = expected.set_index(["method", "dim_x", "dim_f"])["der"].sort_index() - assert_series_equal(got, expected) - - -def test__select_eval_with_lowest_and_highest_step(): - data = [ - [1, 1, 0, 0, 0.0, 1.1], - [1, 2, 0, 0, 0.1, 0.2], - [1, 3, 0, 0, 0.2, -0.5], - [1, 4, 0, 0, 0.3, 10], - [1, 5, 0, 0, 0.4, np.nan], - ] - df_evals = pd.DataFrame( - data, columns=["sign", "step_number", "dim_x", "dim_f", "step", "eval"] - ) - df_evals = df_evals.set_index(["sign", "step_number", "dim_x", "dim_f"]) - - got = _select_eval_with_lowest_and_highest_step(df_evals, sign=1, dim_x=0, dim_f=0) - expected = np.array([[0.0, 1.1], [0.3, 10]]) - - assert_array_equal(got, expected) - - -def f1(x): - y1 = np.sin(x[0]) + np.cos(x[1]) + x[2] - return y1 - - -def f2(x): - y1 = (x[0] - 1) ** 2 + x[1] - y2 = (x[1] - 1) ** 3 - return np.array([y1, y2]) - - -def f3(x): - y1 = np.exp(x[0]) - y2 = np.cos(x[0]) - return np.array([y1, y2]) - - -example_functions = [(f1, np.ones(3)), (f2, np.ones(2)), (f3, np.ones(1))] - - -@pytest.mark.slow() -@pytest.mark.parametrize("func_and_params", example_functions) -@pytest.mark.parametrize("n_steps", range(2, 5)) -@pytest.mark.parametrize("grid", [True, False]) -def test_derivative_plot(func_and_params, n_steps, grid): - func, params = func_and_params - derivative = first_derivative( - func, - params, - n_steps=n_steps, - return_func_value=True, - return_info=True, - ) - - derivative_plot(derivative, combine_plots_in_grid=grid) From 1541d1970115b6e66059fd18d3aba5d9d0157822 Mon Sep 17 00:00:00 2001 From: Janos Gabler Date: Tue, 16 Jul 2024 08:39:48 +0200 Subject: [PATCH 02/15] Rename estimagic to optimagic (#502) --- .envs/testenv-linux.yml | 6 +- .envs/testenv-others.yml | 6 +- .envs/testenv-pandas.yml | 6 +- .github/ISSUE_TEMPLATE/enhancement.md | 2 +- .github/workflows/main.yml | 26 +- .gitignore | 1 + .pre-commit-config.yaml | 13 +- CHANGES.md | 4 +- CITATION | 14 +- CODE_OF_CONDUCT.md | 24 +- README.md | 28 +- codecov.yml | 17 +- docs/Makefile | 2 +- docs/make.bat | 2 +- docs/rtd_environment.yml | 2 +- .../_static/images/aai-institute-logo.svg | 1 + docs/source/_static/images/hoover_logo.png | Bin 0 -> 7314 bytes docs/source/_static/images/numfocus_logo.png | Bin 0 -> 19455 bytes .../_static/images/transferlab-logo.svg | 1 + docs/source/algorithms.md | 218 +++--- docs/source/conf.py | 13 +- docs/source/development/credits.md | 66 +- docs/source/development/eeps.md | 17 - .../development/enhancement_proposals.md | 17 + ...nce-model.md => ep-00-governance-model.md} | 64 +- .../{eep-01-pytrees.md => ep-01-pytrees.md} | 10 +- .../{eep-02-typing.md => ep-02-typing.md} | 176 ++--- ...eep-03-alignment.md => ep-03-alignment.md} | 14 +- .../{how-to.md => how_to_contribute.md} | 36 +- docs/source/development/index.md | 4 +- docs/source/development/styleguide.md | 77 +- .../explanation}/bootstrap_ci.md | 0 .../bootstrap_montecarlo_comparison.ipynb | 0 .../cluster_robust_likelihood_inference.md | 0 .../explanation}/index.md | 4 +- docs/source/estimagic/index.md | 95 +++ docs/source/estimagic/reference/index.md | 95 +++ .../tutorials/bootstrap_overview.ipynb} | 135 ++-- .../estimation_tables_overview.ipynb} | 2 +- .../example_estimation_table_tex.pdf | Bin .../tutorials}/index.md | 8 +- .../tutorials/likelihood_overview.ipynb} | 2 +- .../estimagic/tutorials/msm_overview.ipynb | 723 ++++++++++++++++++ .../explanation_of_numerical_optimizers.md | 2 +- .../implementation_of_constraints.md | 14 +- docs/source/explanation/index.md | 16 + .../internal_optimizers.md | 22 +- .../numdiff_background.md} | 2 +- .../tests_for_supported_optimizers.md | 6 +- .../why_optimization_is_hard.ipynb | 20 +- .../explanations/differentiation/index.md | 9 - .../richardson_extrapolation.md | 232 ------ docs/source/explanations/index.md | 77 -- .../source/explanations/optimization/index.md | 12 - .../first_msm_estimation_with_estimagic.ipynb | 343 --------- docs/source/getting_started/index.md | 117 --- docs/source/getting_started/installation.md | 61 -- .../how_to_algorithm_selection.ipynb} | 12 +- .../how_to_batch_evaluators.ipynb} | 2 +- docs/source/how_to/how_to_benchmarking.ipynb | 710 +++++++++++++++++ .../how_to_bounds.ipynb} | 40 +- .../how_to_constraints.md} | 56 +- .../how_to_criterion_function.md} | 2 +- .../how_to_errors_during_optimization.ipynb | 291 +++++++ .../how_to_first_derivative.ipynb} | 39 +- docs/source/how_to/how_to_logging.ipynb | 287 +++++++ .../how_to_multistart.ipynb} | 8 +- .../how_to_scaling.md} | 12 +- .../how_to_second_derivative.ipynb} | 63 +- .../how_to_slice_plot.ipynb} | 6 +- ...w_to_specify_algorithm_and_algo_options.md | 4 +- .../how_to_start_parameters.md} | 22 +- .../how_to/how_to_visualize_histories.ipynb | 271 +++++++ docs/source/how_to/index.md | 28 + .../how_to_guides/differentiation/index.md | 10 - docs/source/how_to_guides/index.md | 118 --- ...calculate_likelihood_standard_errors.ipynb | 37 - ...how_to_calculate_msm_standard_errors.ipynb | 37 - docs/source/how_to_guides/inference/index.md | 10 - .../source/how_to_guides/miscellaneous/faq.md | 33 - ...e_and_interpret_sensitivity_measures.ipynb | 39 - .../how_to_guides/miscellaneous/index.md | 13 - ...to_benchmark_optimization_algorithms.ipynb | 687 ----------------- ...to_handle_errors_during_optimization.ipynb | 291 ------- .../optimization/how_to_use_logging.ipynb | 287 ------- .../how_to_visualize_histories.ipynb | 279 ------- .../how_to_guides/optimization/index.md | 21 - .../robinson-crusoe-covariance.csv | 18 - .../optimization/robinson-crusoe-sdcorr.csv | 17 - .../optimization/scipy_tutorial_2022.md | 7 - docs/source/index.md | 103 +-- docs/source/installation.md | 61 ++ .../algo_options.md | 2 +- .../batch_evaluators.md | 2 +- .../{reference_guides => reference}/index.md | 94 +-- .../utilities.md | 2 +- docs/source/tutorials/index.md | 60 ++ .../numdiff_overview.ipynb} | 26 +- .../optimization_overview.ipynb} | 50 +- docs/source/videos.md | 6 +- environment.yml | 7 +- pyproject.toml | 241 +++--- setup.cfg | 6 +- src/estimagic/__init__.py | 140 ++-- src/estimagic/{inference => }/bootstrap.py | 16 +- src/estimagic/{inference => }/bootstrap_ci.py | 2 +- .../{inference => }/bootstrap_helpers.py | 0 .../{inference => }/bootstrap_outcomes.py | 6 +- .../{inference => }/bootstrap_samples.py | 0 src/estimagic/config.py | 104 --- src/estimagic/{estimation => }/estimate_ml.py | 22 +- .../{estimation => }/estimate_msm.py | 28 +- .../{estimation => }/estimation_summaries.py | 0 .../{visualization => }/estimation_table.py | 2 +- src/estimagic/inference/__init__.py | 6 - .../{visualization => }/lollipop_plot.py | 4 +- src/estimagic/{inference => }/ml_covs.py | 6 +- src/estimagic/{inference => }/msm_covs.py | 6 +- .../{sensitivity => }/msm_sensitivity.py | 8 +- .../{estimation => }/msm_weighting.py | 8 +- .../{inference/shared.py => shared_covs.py} | 4 +- src/estimagic/utilities.py | 434 +++-------- src/optimagic/__init__.py | 47 ++ src/{estimagic => optimagic}/algorithms.py | 20 +- .../batch_evaluators.py | 6 +- .../benchmarking/__init__.py | 0 .../benchmarking/benchmark_reports.py | 16 +- .../benchmarking/cartis_roberts.py | 4 +- .../benchmarking/get_benchmark_problems.py | 8 +- .../benchmarking/more_wild.py | 0 .../benchmarking/noise_distributions.py | 0 .../benchmarking/process_benchmark_results.py | 4 +- .../benchmarking/run_benchmark.py | 8 +- src/optimagic/config.py | 100 +++ src/{estimagic => optimagic}/decorators.py | 28 +- .../differentiation/__init__.py | 0 .../differentiation/derivatives.py | 30 +- .../differentiation/finite_differences.py | 2 +- .../differentiation/generate_steps.py | 0 .../richardson_extrapolation.py | 0 .../examples}/__init__.py | 0 .../examples/criterion_functions.py | 0 .../examples/numdiff_functions.py | 0 src/{estimagic => optimagic}/exceptions.py | 24 +- .../logging/__init__.py | 0 .../logging/create_tables.py | 4 +- .../logging/load_database.py | 4 +- .../logging/read_from_database.py | 2 +- .../logging/read_log.py | 8 +- .../logging/write_to_database.py | 0 .../optimization/__init__.py | 0 .../optimization/algo_options.py | 4 +- .../optimization/check_arguments.py | 2 +- .../optimization/convergence_report.py | 2 +- .../optimization/error_penalty.py | 4 +- .../optimization/get_algorithm.py | 10 +- .../optimization/history_tools.py | 2 +- .../internal_criterion_template.py | 10 +- .../optimization/optimization_logging.py | 4 +- .../optimization/optimize.py | 36 +- .../optimization/optimize_result.py | 4 +- .../optimization/process_multistart_sample.py | 0 .../optimization/process_results.py | 6 +- .../optimization/tiktak.py | 10 +- .../optimizers}/__init__.py | 0 .../optimizers/_pounders}/__init__.py | 0 .../_pounders}/_conjugate_gradient.py | 0 .../optimizers/_pounders}/_steihaug_toint.py | 0 .../optimizers/_pounders}/_trsbox.py | 0 .../optimizers/_pounders}/bntr.py | 6 +- .../optimizers/_pounders}/gqtpar.py | 0 .../_pounders}/linear_subsolvers.py | 0 .../_pounders}/pounders_auxiliary.py | 6 +- .../optimizers/_pounders}/pounders_history.py | 0 .../optimizers}/bhhh.py | 2 +- .../optimizers/fides.py} | 10 +- .../optimizers/ipopt.py} | 10 +- .../optimizers}/nag_optimizers.py | 10 +- .../optimizers}/neldermead.py | 6 +- .../optimizers}/nlopt_optimizers.py | 10 +- .../optimizers}/pounders.py | 12 +- .../optimizers}/pygmo_optimizers.py | 12 +- .../optimizers}/scipy_optimizers.py | 16 +- .../optimizers}/tao_optimizers.py | 12 +- .../optimizers}/tranquilo.py | 4 +- .../optimagic/parameters}/__init__.py | 0 .../parameters/block_trees.py | 2 +- .../parameters/check_constraints.py | 6 +- .../parameters/consolidate_constraints.py | 4 +- .../parameters/constraint_tools.py | 2 +- .../parameters/conversion.py | 8 +- .../parameters/kernel_transformations.py | 6 +- .../parameters/nonlinear_constraints.py | 12 +- .../parameters/parameter_bounds.py | 4 +- .../parameters/process_constraints.py | 6 +- .../parameters/process_selectors.py | 4 +- .../parameters/scale_conversion.py | 2 +- .../parameters/space_conversion.py | 4 +- .../parameters/tree_conversion.py | 10 +- .../parameters/tree_registry.py | 4 +- src/optimagic/shared/__init__.py | 0 .../shared/check_option_dicts.py | 0 src/{estimagic => optimagic/shared}/compat.py | 2 +- .../shared}/process_user_function.py | 4 +- src/optimagic/utilities.py | 323 ++++++++ src/optimagic/visualization/__init__.py | 0 .../visualization/convergence_plot.py | 12 +- .../visualization/deviation_plot.py | 8 +- .../visualization/history_plots.py | 10 +- .../visualization/plotting_utilities.py | 2 +- .../visualization/profile_plot.py | 8 +- .../visualization/slice_plot.py | 10 +- tests/estimagic/__init__.py | 0 tests/{ => estimagic}/examples/test_logit.py | 0 .../logit_hessian.pickle | Bin .../logit_hessian_matrix.pickle | Bin .../logit_jacobian.pickle | Bin .../logit_jacobian_matrix.pickle | Bin .../logit_sandwich.pickle | Bin .../probit_hessian.pickle | Bin .../probit_hessian_matrix.pickle | Bin .../probit_jacobian.pickle | Bin .../probit_jacobian_matrix.pickle | Bin .../probit_sandwich.pickle | Bin .../test_bootstrap.py | 0 .../test_bootstrap_ci.py | 6 +- .../test_bootstrap_outcomes.py | 6 +- .../test_bootstrap_samples.py | 4 +- .../test_estimate_ml.py | 2 +- .../test_estimate_msm.py | 6 +- ...st_estimate_msm_dict_params_and_moments.py | 4 +- .../test_estimation_table.py | 2 +- .../test_lollipop_plot.py | 2 +- .../{inference => estimagic}/test_ml_covs.py | 6 +- .../{inference => estimagic}/test_msm_covs.py | 4 +- .../test_msm_sensitivity.py | 6 +- .../test_msm_sensitivity_via_estimate_msm.py | 2 +- .../test_msm_weighting.py | 6 +- tests/{inference => estimagic}/test_shared.py | 6 +- tests/optimagic/__init__.py | 0 tests/optimagic/benchmarking/__init__.py | 0 .../benchmarking/test_benchmark_reports.py | 6 +- .../benchmarking/test_cartis_roberts.py | 2 +- .../test_get_benchmark_problems.py | 2 +- .../benchmarking/test_more_wild.py | 2 +- .../benchmarking/test_noise_distributions.py | 6 +- .../benchmarking/test_run_benchmark.py | 6 +- .../binary_choice_inputs.pickle | Bin .../test_compare_derivatives_with_jax.py | 58 +- .../differentiation/test_derivatives.py | 6 +- .../test_finite_differences.py | 6 +- .../differentiation/test_generate_steps.py | 2 +- .../examples/test_criterion_functions.py | 2 +- .../logging/test_database_utilities.py | 8 +- .../{ => optimagic}/logging/test_read_log.py | 6 +- .../optimization/test_convergence_report.py | 2 +- .../optimization/test_criterion_versions.py | 8 +- .../optimization/test_derivative_versions.py | 6 +- .../optimization/test_error_penalty.py | 6 +- .../optimization/test_history_collection.py | 8 +- .../optimization/test_history_tools.py | 2 +- ...ernal_criterion_and_derivative_template.py | 8 +- .../optimization/test_jax_derivatives.py | 4 +- .../optimization/test_many_algorithms.py | 4 +- .../optimization/test_multistart.py | 14 +- .../optimization/test_optimization_helpers.py | 2 +- .../test_optimizations_with_scaling.py | 4 +- .../optimization/test_optimize.py | 6 +- .../optimization/test_optimize_result.py | 4 +- .../optimization/test_params_versions.py | 6 +- .../test_process_multistart_sample.py | 2 +- .../optimization/test_process_result.py | 2 +- .../optimization/test_tiktak.py | 2 +- .../optimization/test_useful_exceptions.py | 4 +- .../test_with_advanced_constraints.py | 4 +- .../optimization/test_with_constraints.py | 33 +- .../optimization/test_with_logging.py | 8 +- .../test_with_nonlinear_constraints.py | 6 +- tests/optimagic/optimizers/__init__.py | 0 .../optimizers/_pounders/__init__.py | 0 ...oints_until_main_model_fully_linear_i.yaml | 0 ...ints_until_main_model_fully_linear_ii.yaml | 0 .../find_affine_points_nonzero_i.yaml | 0 .../find_affine_points_nonzero_ii.yaml | 0 .../find_affine_points_nonzero_iii.yaml | 0 .../fixtures/find_affine_points_zero_i.yaml | 0 .../fixtures/find_affine_points_zero_ii.yaml | 0 .../fixtures/find_affine_points_zero_iii.yaml | 0 .../fixtures/find_affine_points_zero_iv.yaml | 0 .../get_coefficients_residual_model.yaml | 0 ...interpolation_matrices_residual_model.yaml | 0 .../fixtures/interpolate_f_iter_4.yaml | 0 .../fixtures/interpolate_f_iter_7.yaml | 0 .../fixtures/pounders_example_data.csv | 0 .../_pounders}/fixtures/scalar_model.pkl | Bin .../update_initial_residual_model.yaml | 0 .../update_intial_residual_model.yaml | 0 .../update_main_from_residual_model.yaml | 0 .../update_main_with_new_accepted_x.yaml | 0 .../fixtures/update_residual_model.yaml | 0 ...te_residual_model_with_new_accepted_x.yaml | 0 .../_pounders}/test_linear_subsolvers.py | 2 +- .../_pounders}/test_pounders_history.py | 2 +- .../_pounders}/test_pounders_unit.py | 39 +- .../_pounders}/test_quadratic_subsolvers.py | 12 +- .../optimizers}/test_bhhh.py | 4 +- .../optimizers}/test_fides_options.py | 4 +- .../optimizers}/test_ipopt_options.py | 4 +- .../optimizers}/test_nag_optimizers.py | 2 +- .../optimizers}/test_neldermead.py | 2 +- .../optimizers}/test_pounders_integration.py | 12 +- .../optimizers}/test_tao_optimizers.py | 6 +- .../parameters/test_block_trees.py | 6 +- .../parameters/test_check_constraints.py | 6 +- .../parameters/test_constraint_tools.py | 4 +- .../parameters/test_conversion.py | 2 +- .../parameters/test_kernel_transformations.py | 8 +- .../parameters/test_nonlinear_constraints.py | 6 +- .../parameters/test_parameter_bounds.py | 4 +- .../parameters/test_process_constraints.py | 6 +- .../parameters/test_process_selectors.py | 8 +- .../parameters/test_scale_conversion.py | 6 +- .../parameters/test_space_conversion.py | 6 +- .../parameters/test_tree_conversion.py | 2 +- .../parameters/test_tree_registry.py | 2 +- .../{ => optimagic}/test_batch_evaluators.py | 2 +- tests/{ => optimagic}/test_decorators.py | 2 +- .../{ => optimagic}/test_process_function.py | 4 +- tests/{ => optimagic}/test_utilities.py | 4 +- .../visualization/test_convergence_plot.py | 6 +- .../visualization/test_deviation_plot.py | 6 +- .../visualization/test_history_plots.py | 4 +- .../visualization/test_profile_plot.py | 6 +- .../visualization/test_slice_plot.py | 2 +- tests/test_deprecations.py | 277 +++++++ .../combined_params_dataframe.csv | 16 - 336 files changed, 5098 insertions(+), 4760 deletions(-) create mode 100644 docs/source/_static/images/aai-institute-logo.svg create mode 100644 docs/source/_static/images/hoover_logo.png create mode 100644 docs/source/_static/images/numfocus_logo.png create mode 100644 docs/source/_static/images/transferlab-logo.svg delete mode 100644 docs/source/development/eeps.md create mode 100644 docs/source/development/enhancement_proposals.md rename docs/source/development/{eep-00-governance-model.md => ep-00-governance-model.md} (76%) rename docs/source/development/{eep-01-pytrees.md => ep-01-pytrees.md} (99%) rename docs/source/development/{eep-02-typing.md => ep-02-typing.md} (94%) rename docs/source/development/{eep-03-alignment.md => ep-03-alignment.md} (94%) rename docs/source/development/{how-to.md => how_to_contribute.md} (82%) rename docs/source/{explanations/inference => estimagic/explanation}/bootstrap_ci.md (100%) rename docs/source/{explanations/inference => estimagic/explanation}/bootstrap_montecarlo_comparison.ipynb (100%) rename docs/source/{explanations/inference => estimagic/explanation}/cluster_robust_likelihood_inference.md (100%) rename docs/source/{explanations/inference => estimagic/explanation}/index.md (61%) create mode 100644 docs/source/estimagic/index.md create mode 100644 docs/source/estimagic/reference/index.md rename docs/source/{how_to_guides/inference/how_to_do_bootstrap_inference.ipynb => estimagic/tutorials/bootstrap_overview.ipynb} (95%) rename docs/source/{how_to_guides/miscellaneous/how_to_generate_publication_quality_tables.ipynb => estimagic/tutorials/estimation_tables_overview.ipynb} (99%) rename docs/source/{how_to_guides/miscellaneous => estimagic/tutorials}/example_estimation_table_tex.pdf (100%) rename docs/source/{getting_started/estimation => estimagic/tutorials}/index.md (75%) rename docs/source/{getting_started/estimation/first_likelihood_estimation_with_estimagic.ipynb => estimagic/tutorials/likelihood_overview.ipynb} (99%) create mode 100644 docs/source/estimagic/tutorials/msm_overview.ipynb rename docs/source/{explanations/optimization => explanation}/explanation_of_numerical_optimizers.md (98%) rename docs/source/{explanations/optimization => explanation}/implementation_of_constraints.md (96%) create mode 100644 docs/source/explanation/index.md rename docs/source/{explanations/optimization => explanation}/internal_optimizers.md (91%) rename docs/source/{explanations/differentiation/background_numerical_differentiation.md => explanation/numdiff_background.md} (98%) rename docs/source/{explanations/optimization => explanation}/tests_for_supported_optimizers.md (98%) rename docs/source/{explanations/optimization => explanation}/why_optimization_is_hard.ipynb (99%) delete mode 100644 docs/source/explanations/differentiation/index.md delete mode 100644 docs/source/explanations/differentiation/richardson_extrapolation.md delete mode 100644 docs/source/explanations/index.md delete mode 100644 docs/source/explanations/optimization/index.md delete mode 100644 docs/source/getting_started/estimation/first_msm_estimation_with_estimagic.ipynb delete mode 100644 docs/source/getting_started/index.md delete mode 100644 docs/source/getting_started/installation.md rename docs/source/{how_to_guides/optimization/how_to_pick_an_optimizer.ipynb => how_to/how_to_algorithm_selection.ipynb} (95%) rename docs/source/{how_to_guides/miscellaneous/how_to_use_batch_evaluators.ipynb => how_to/how_to_batch_evaluators.ipynb} (92%) create mode 100644 docs/source/how_to/how_to_benchmarking.ipynb rename docs/source/{how_to_guides/optimization/how_to_specify_bounds.ipynb => how_to/how_to_bounds.ipynb} (81%) rename docs/source/{how_to_guides/optimization/how_to_specify_constraints.md => how_to/how_to_constraints.md} (94%) rename docs/source/{how_to_guides/optimization/how_to_specify_the_criterion_function.md => how_to/how_to_criterion_function.md} (70%) create mode 100644 docs/source/how_to/how_to_errors_during_optimization.ipynb rename docs/source/{how_to_guides/differentiation/how_to_calculate_first_derivatives.ipynb => how_to/how_to_first_derivative.ipynb} (94%) create mode 100644 docs/source/how_to/how_to_logging.ipynb rename docs/source/{how_to_guides/optimization/how_to_do_multistart_optimizations.ipynb => how_to/how_to_multistart.ipynb} (99%) rename docs/source/{how_to_guides/optimization/how_to_scale_optimization_problems.md => how_to/how_to_scaling.md} (97%) rename docs/source/{how_to_guides/differentiation/how_to_calculate_second_derivatives.ipynb => how_to/how_to_second_derivative.ipynb} (92%) rename docs/source/{how_to_guides/optimization/how_to_visualize_an_optimization_problem.ipynb => how_to/how_to_slice_plot.ipynb} (99%) rename docs/source/{how_to_guides/optimization => how_to}/how_to_specify_algorithm_and_algo_options.md (92%) rename docs/source/{how_to_guides/optimization/how_to_specify_parameters.md => how_to/how_to_start_parameters.md} (86%) create mode 100644 docs/source/how_to/how_to_visualize_histories.ipynb create mode 100644 docs/source/how_to/index.md delete mode 100644 docs/source/how_to_guides/differentiation/index.md delete mode 100644 docs/source/how_to_guides/index.md delete mode 100644 docs/source/how_to_guides/inference/how_to_calculate_likelihood_standard_errors.ipynb delete mode 100644 docs/source/how_to_guides/inference/how_to_calculate_msm_standard_errors.ipynb delete mode 100644 docs/source/how_to_guides/inference/index.md delete mode 100644 docs/source/how_to_guides/miscellaneous/faq.md delete mode 100644 docs/source/how_to_guides/miscellaneous/how_to_visualize_and_interpret_sensitivity_measures.ipynb delete mode 100644 docs/source/how_to_guides/miscellaneous/index.md delete mode 100644 docs/source/how_to_guides/optimization/how_to_benchmark_optimization_algorithms.ipynb delete mode 100644 docs/source/how_to_guides/optimization/how_to_handle_errors_during_optimization.ipynb delete mode 100644 docs/source/how_to_guides/optimization/how_to_use_logging.ipynb delete mode 100644 docs/source/how_to_guides/optimization/how_to_visualize_histories.ipynb delete mode 100644 docs/source/how_to_guides/optimization/index.md delete mode 100644 docs/source/how_to_guides/optimization/robinson-crusoe-covariance.csv delete mode 100644 docs/source/how_to_guides/optimization/robinson-crusoe-sdcorr.csv delete mode 100644 docs/source/how_to_guides/optimization/scipy_tutorial_2022.md create mode 100644 docs/source/installation.md rename docs/source/{reference_guides => reference}/algo_options.md (61%) rename docs/source/{reference_guides => reference}/batch_evaluators.md (62%) rename docs/source/{reference_guides => reference}/index.md (59%) rename docs/source/{reference_guides => reference}/utilities.md (65%) create mode 100644 docs/source/tutorials/index.md rename docs/source/{getting_started/first_derivative_with_estimagic.ipynb => tutorials/numdiff_overview.ipynb} (95%) rename docs/source/{getting_started/first_optimization_with_estimagic.ipynb => tutorials/optimization_overview.ipynb} (99%) rename src/estimagic/{inference => }/bootstrap.py (95%) rename src/estimagic/{inference => }/bootstrap_ci.py (99%) rename src/estimagic/{inference => }/bootstrap_helpers.py (100%) rename src/estimagic/{inference => }/bootstrap_outcomes.py (94%) rename src/estimagic/{inference => }/bootstrap_samples.py (100%) rename src/estimagic/{estimation => }/estimate_ml.py (98%) rename src/estimagic/{estimation => }/estimate_msm.py (97%) rename src/estimagic/{estimation => }/estimation_summaries.py (100%) rename src/estimagic/{visualization => }/estimation_table.py (99%) delete mode 100644 src/estimagic/inference/__init__.py rename src/estimagic/{visualization => }/lollipop_plot.py (97%) rename src/estimagic/{inference => }/ml_covs.py (98%) rename src/estimagic/{inference => }/msm_covs.py (93%) rename src/estimagic/{sensitivity => }/msm_sensitivity.py (98%) rename src/estimagic/{estimation => }/msm_weighting.py (95%) rename src/estimagic/{inference/shared.py => shared_covs.py} (99%) create mode 100644 src/optimagic/__init__.py rename src/{estimagic => optimagic}/algorithms.py (86%) rename src/{estimagic => optimagic}/batch_evaluators.py (97%) rename src/{estimagic => optimagic}/benchmarking/__init__.py (100%) rename src/{estimagic => optimagic}/benchmarking/benchmark_reports.py (95%) rename src/{estimagic => optimagic}/benchmarking/cartis_roberts.py (99%) rename src/{estimagic => optimagic}/benchmarking/get_benchmark_problems.py (98%) rename src/{estimagic => optimagic}/benchmarking/more_wild.py (100%) rename src/{estimagic => optimagic}/benchmarking/noise_distributions.py (100%) rename src/{estimagic => optimagic}/benchmarking/process_benchmark_results.py (98%) rename src/{estimagic => optimagic}/benchmarking/run_benchmark.py (97%) create mode 100644 src/optimagic/config.py rename src/{estimagic => optimagic}/decorators.py (93%) rename src/{estimagic => optimagic}/differentiation/__init__.py (100%) rename src/{estimagic => optimagic}/differentiation/derivatives.py (97%) rename src/{estimagic => optimagic}/differentiation/finite_differences.py (99%) rename src/{estimagic => optimagic}/differentiation/generate_steps.py (100%) rename src/{estimagic => optimagic}/differentiation/richardson_extrapolation.py (100%) rename src/{estimagic/estimation => optimagic/examples}/__init__.py (100%) rename src/{estimagic => optimagic}/examples/criterion_functions.py (100%) rename src/{estimagic => optimagic}/examples/numdiff_functions.py (100%) rename src/{estimagic => optimagic}/exceptions.py (75%) rename src/{estimagic => optimagic}/logging/__init__.py (100%) rename src/{estimagic => optimagic}/logging/create_tables.py (97%) rename src/{estimagic => optimagic}/logging/load_database.py (98%) rename src/{estimagic => optimagic}/logging/read_from_database.py (99%) rename src/{estimagic => optimagic}/logging/read_log.py (97%) rename src/{estimagic => optimagic}/logging/write_to_database.py (100%) rename src/{estimagic => optimagic}/optimization/__init__.py (100%) rename src/{estimagic => optimagic}/optimization/algo_options.py (99%) rename src/{estimagic => optimagic}/optimization/check_arguments.py (95%) rename src/{estimagic => optimagic}/optimization/convergence_report.py (96%) rename src/{estimagic => optimagic}/optimization/error_penalty.py (96%) rename src/{estimagic => optimagic}/optimization/get_algorithm.py (97%) rename src/{estimagic => optimagic}/optimization/history_tools.py (94%) rename src/{estimagic => optimagic}/optimization/internal_criterion_template.py (97%) rename src/{estimagic => optimagic}/optimization/optimization_logging.py (91%) rename src/{estimagic => optimagic}/optimization/optimize.py (97%) rename src/{estimagic => optimagic}/optimization/optimize_result.py (98%) rename src/{estimagic => optimagic}/optimization/process_multistart_sample.py (100%) rename src/{estimagic => optimagic}/optimization/process_results.py (96%) rename src/{estimagic => optimagic}/optimization/tiktak.py (98%) rename src/{estimagic/parameters => optimagic/optimizers}/__init__.py (100%) rename src/{estimagic/visualization => optimagic/optimizers/_pounders}/__init__.py (100%) rename src/{estimagic/optimization/subsolvers => optimagic/optimizers/_pounders}/_conjugate_gradient.py (100%) rename src/{estimagic/optimization/subsolvers => optimagic/optimizers/_pounders}/_steihaug_toint.py (100%) rename src/{estimagic/optimization/subsolvers => optimagic/optimizers/_pounders}/_trsbox.py (100%) rename src/{estimagic/optimization/subsolvers => optimagic/optimizers/_pounders}/bntr.py (99%) rename src/{estimagic/optimization/subsolvers => optimagic/optimizers/_pounders}/gqtpar.py (100%) rename src/{estimagic/optimization/subsolvers => optimagic/optimizers/_pounders}/linear_subsolvers.py (100%) rename src/{estimagic/optimization => optimagic/optimizers/_pounders}/pounders_auxiliary.py (99%) rename src/{estimagic/optimization => optimagic/optimizers/_pounders}/pounders_history.py (100%) rename src/{estimagic/optimization => optimagic/optimizers}/bhhh.py (98%) rename src/{estimagic/optimization/fides_optimizers.py => optimagic/optimizers/fides.py} (95%) rename src/{estimagic/optimization/cyipopt_optimizers.py => optimagic/optimizers/ipopt.py} (98%) rename src/{estimagic/optimization => optimagic/optimizers}/nag_optimizers.py (98%) rename src/{estimagic/optimization => optimagic/optimizers}/neldermead.py (98%) rename src/{estimagic/optimization => optimagic/optimizers}/nlopt_optimizers.py (99%) rename src/{estimagic/optimization => optimagic/optimizers}/pounders.py (98%) rename src/{estimagic/optimization => optimagic/optimizers}/pygmo_optimizers.py (99%) rename src/{estimagic/optimization => optimagic/optimizers}/scipy_optimizers.py (98%) rename src/{estimagic/optimization => optimagic/optimizers}/tao_optimizers.py (96%) rename src/{estimagic/optimization => optimagic/optimizers}/tranquilo.py (86%) rename {tests/benchmarking => src/optimagic/parameters}/__init__.py (100%) rename src/{estimagic => optimagic}/parameters/block_trees.py (99%) rename src/{estimagic => optimagic}/parameters/check_constraints.py (98%) rename src/{estimagic => optimagic}/parameters/consolidate_constraints.py (99%) rename src/{estimagic => optimagic}/parameters/constraint_tools.py (96%) rename src/{estimagic => optimagic}/parameters/conversion.py (97%) rename src/{estimagic => optimagic}/parameters/kernel_transformations.py (99%) rename src/{estimagic => optimagic}/parameters/nonlinear_constraints.py (97%) rename src/{estimagic => optimagic}/parameters/parameter_bounds.py (98%) rename src/{estimagic => optimagic}/parameters/process_constraints.py (98%) rename src/{estimagic => optimagic}/parameters/process_selectors.py (98%) rename src/{estimagic => optimagic}/parameters/scale_conversion.py (98%) rename src/{estimagic => optimagic}/parameters/space_conversion.py (99%) rename src/{estimagic => optimagic}/parameters/tree_conversion.py (96%) rename src/{estimagic => optimagic}/parameters/tree_registry.py (94%) create mode 100644 src/optimagic/shared/__init__.py rename src/{estimagic => optimagic}/shared/check_option_dicts.py (100%) rename src/{estimagic => optimagic/shared}/compat.py (94%) rename src/{estimagic => optimagic/shared}/process_user_function.py (96%) create mode 100644 src/optimagic/utilities.py create mode 100644 src/optimagic/visualization/__init__.py rename src/{estimagic => optimagic}/visualization/convergence_plot.py (96%) rename src/{estimagic => optimagic}/visualization/deviation_plot.py (93%) rename src/{estimagic => optimagic}/visualization/history_plots.py (98%) rename src/{estimagic => optimagic}/visualization/plotting_utilities.py (99%) rename src/{estimagic => optimagic}/visualization/profile_plot.py (97%) rename src/{estimagic => optimagic}/visualization/slice_plot.py (96%) create mode 100644 tests/estimagic/__init__.py rename tests/{ => estimagic}/examples/test_logit.py (100%) rename tests/{inference/fixtures => estimagic/pickled_statsmodels_ml_covs}/logit_hessian.pickle (100%) rename tests/{inference/fixtures => estimagic/pickled_statsmodels_ml_covs}/logit_hessian_matrix.pickle (100%) rename tests/{inference/fixtures => estimagic/pickled_statsmodels_ml_covs}/logit_jacobian.pickle (100%) rename tests/{inference/fixtures => estimagic/pickled_statsmodels_ml_covs}/logit_jacobian_matrix.pickle (100%) rename tests/{inference/fixtures => estimagic/pickled_statsmodels_ml_covs}/logit_sandwich.pickle (100%) rename tests/{inference/fixtures => estimagic/pickled_statsmodels_ml_covs}/probit_hessian.pickle (100%) rename tests/{inference/fixtures => estimagic/pickled_statsmodels_ml_covs}/probit_hessian_matrix.pickle (100%) rename tests/{inference/fixtures => estimagic/pickled_statsmodels_ml_covs}/probit_jacobian.pickle (100%) rename tests/{inference/fixtures => estimagic/pickled_statsmodels_ml_covs}/probit_jacobian_matrix.pickle (100%) rename tests/{inference/fixtures => estimagic/pickled_statsmodels_ml_covs}/probit_sandwich.pickle (100%) rename tests/{inference => estimagic}/test_bootstrap.py (100%) rename tests/{inference => estimagic}/test_bootstrap_ci.py (94%) rename tests/{inference => estimagic}/test_bootstrap_outcomes.py (94%) rename tests/{inference => estimagic}/test_bootstrap_samples.py (95%) rename tests/{estimation => estimagic}/test_estimate_ml.py (99%) rename tests/{estimation => estimagic}/test_estimate_msm.py (97%) rename tests/{estimation => estimagic}/test_estimate_msm_dict_params_and_moments.py (96%) rename tests/{visualization => estimagic}/test_estimation_table.py (99%) rename tests/{visualization => estimagic}/test_lollipop_plot.py (84%) rename tests/{inference => estimagic}/test_ml_covs.py (97%) rename tests/{inference => estimagic}/test_msm_covs.py (90%) rename tests/{sensitivity => estimagic}/test_msm_sensitivity.py (97%) rename tests/{sensitivity => estimagic}/test_msm_sensitivity_via_estimate_msm.py (98%) rename tests/{estimation => estimagic}/test_msm_weighting.py (95%) rename tests/{inference => estimagic}/test_shared.py (98%) create mode 100644 tests/optimagic/__init__.py create mode 100644 tests/optimagic/benchmarking/__init__.py rename tests/{ => optimagic}/benchmarking/test_benchmark_reports.py (98%) rename tests/{ => optimagic}/benchmarking/test_cartis_roberts.py (97%) rename tests/{ => optimagic}/benchmarking/test_get_benchmark_problems.py (96%) rename tests/{ => optimagic}/benchmarking/test_more_wild.py (96%) rename tests/{ => optimagic}/benchmarking/test_noise_distributions.py (83%) rename tests/{ => optimagic}/benchmarking/test_run_benchmark.py (97%) rename tests/{ => optimagic}/differentiation/binary_choice_inputs.pickle (100%) rename tests/{ => optimagic}/differentiation/test_compare_derivatives_with_jax.py (63%) rename tests/{ => optimagic}/differentiation/test_derivatives.py (98%) rename tests/{ => optimagic}/differentiation/test_finite_differences.py (87%) rename tests/{ => optimagic}/differentiation/test_generate_steps.py (99%) rename tests/{ => optimagic}/examples/test_criterion_functions.py (98%) rename tests/{ => optimagic}/logging/test_database_utilities.py (96%) rename tests/{ => optimagic}/logging/test_read_log.py (94%) rename tests/{ => optimagic}/optimization/test_convergence_report.py (95%) rename tests/{ => optimagic}/optimization/test_criterion_versions.py (89%) rename tests/{ => optimagic}/optimization/test_derivative_versions.py (96%) rename tests/{ => optimagic}/optimization/test_error_penalty.py (94%) rename tests/{ => optimagic}/optimization/test_history_collection.py (94%) rename tests/{ => optimagic}/optimization/test_history_tools.py (92%) rename tests/{ => optimagic}/optimization/test_internal_criterion_and_derivative_template.py (95%) rename tests/{ => optimagic}/optimization/test_jax_derivatives.py (96%) rename tests/{ => optimagic}/optimization/test_many_algorithms.py (95%) rename tests/{ => optimagic}/optimization/test_multistart.py (94%) rename tests/{ => optimagic}/optimization/test_optimization_helpers.py (96%) rename tests/{ => optimagic}/optimization/test_optimizations_with_scaling.py (92%) rename tests/{ => optimagic}/optimization/test_optimize.py (86%) rename tests/{ => optimagic}/optimization/test_optimize_result.py (94%) rename tests/{ => optimagic}/optimization/test_params_versions.py (94%) rename tests/{ => optimagic}/optimization/test_process_multistart_sample.py (91%) rename tests/{ => optimagic}/optimization/test_process_result.py (74%) rename tests/{ => optimagic}/optimization/test_tiktak.py (99%) rename tests/{ => optimagic}/optimization/test_useful_exceptions.py (97%) rename tests/{ => optimagic}/optimization/test_with_advanced_constraints.py (94%) rename tests/{ => optimagic}/optimization/test_with_constraints.py (91%) rename tests/{ => optimagic}/optimization/test_with_logging.py (91%) rename tests/{ => optimagic}/optimization/test_with_nonlinear_constraints.py (97%) create mode 100644 tests/optimagic/optimizers/__init__.py create mode 100644 tests/optimagic/optimizers/_pounders/__init__.py rename tests/{optimization => optimagic/optimizers/_pounders}/fixtures/add_points_until_main_model_fully_linear_i.yaml (100%) rename tests/{optimization => optimagic/optimizers/_pounders}/fixtures/add_points_until_main_model_fully_linear_ii.yaml (100%) rename tests/{optimization => optimagic/optimizers/_pounders}/fixtures/find_affine_points_nonzero_i.yaml (100%) rename tests/{optimization => optimagic/optimizers/_pounders}/fixtures/find_affine_points_nonzero_ii.yaml (100%) rename tests/{optimization => optimagic/optimizers/_pounders}/fixtures/find_affine_points_nonzero_iii.yaml (100%) rename tests/{optimization => optimagic/optimizers/_pounders}/fixtures/find_affine_points_zero_i.yaml (100%) rename tests/{optimization => optimagic/optimizers/_pounders}/fixtures/find_affine_points_zero_ii.yaml (100%) rename tests/{optimization => optimagic/optimizers/_pounders}/fixtures/find_affine_points_zero_iii.yaml (100%) rename tests/{optimization => optimagic/optimizers/_pounders}/fixtures/find_affine_points_zero_iv.yaml (100%) rename tests/{optimization => optimagic/optimizers/_pounders}/fixtures/get_coefficients_residual_model.yaml (100%) rename tests/{optimization => optimagic/optimizers/_pounders}/fixtures/get_interpolation_matrices_residual_model.yaml (100%) rename tests/{optimization => optimagic/optimizers/_pounders}/fixtures/interpolate_f_iter_4.yaml (100%) rename tests/{optimization => optimagic/optimizers/_pounders}/fixtures/interpolate_f_iter_7.yaml (100%) rename tests/{optimization => optimagic/optimizers/_pounders}/fixtures/pounders_example_data.csv (100%) rename tests/{optimization => optimagic/optimizers/_pounders}/fixtures/scalar_model.pkl (100%) rename tests/{optimization => optimagic/optimizers/_pounders}/fixtures/update_initial_residual_model.yaml (100%) rename tests/{optimization => optimagic/optimizers/_pounders}/fixtures/update_intial_residual_model.yaml (100%) rename tests/{optimization => optimagic/optimizers/_pounders}/fixtures/update_main_from_residual_model.yaml (100%) rename tests/{optimization => optimagic/optimizers/_pounders}/fixtures/update_main_with_new_accepted_x.yaml (100%) rename tests/{optimization => optimagic/optimizers/_pounders}/fixtures/update_residual_model.yaml (100%) rename tests/{optimization => optimagic/optimizers/_pounders}/fixtures/update_residual_model_with_new_accepted_x.yaml (100%) rename tests/{optimization => optimagic/optimizers/_pounders}/test_linear_subsolvers.py (98%) rename tests/{optimization => optimagic/optimizers/_pounders}/test_pounders_history.py (98%) rename tests/{optimization => optimagic/optimizers/_pounders}/test_pounders_unit.py (92%) rename tests/{optimization => optimagic/optimizers/_pounders}/test_quadratic_subsolvers.py (98%) rename tests/{optimization => optimagic/optimizers}/test_bhhh.py (97%) rename tests/{optimization => optimagic/optimizers}/test_fides_options.py (96%) rename tests/{optimization => optimagic/optimizers}/test_ipopt_options.py (98%) rename tests/{optimization => optimagic/optimizers}/test_nag_optimizers.py (97%) rename tests/{optimization => optimagic/optimizers}/test_neldermead.py (98%) rename tests/{optimization => optimagic/optimizers}/test_pounders_integration.py (92%) rename tests/{optimization => optimagic/optimizers}/test_tao_optimizers.py (97%) rename tests/{ => optimagic}/parameters/test_block_trees.py (97%) rename tests/{ => optimagic}/parameters/test_check_constraints.py (95%) rename tests/{ => optimagic}/parameters/test_constraint_tools.py (84%) rename tests/{ => optimagic}/parameters/test_conversion.py (99%) rename tests/{ => optimagic}/parameters/test_kernel_transformations.py (94%) rename tests/{ => optimagic}/parameters/test_nonlinear_constraints.py (98%) rename tests/{ => optimagic}/parameters/test_parameter_bounds.py (96%) rename tests/{ => optimagic}/parameters/test_process_constraints.py (85%) rename tests/{ => optimagic}/parameters/test_process_selectors.py (96%) rename tests/{ => optimagic}/parameters/test_scale_conversion.py (93%) rename tests/{ => optimagic}/parameters/test_space_conversion.py (98%) rename tests/{ => optimagic}/parameters/test_tree_conversion.py (97%) rename tests/{ => optimagic}/parameters/test_tree_registry.py (97%) rename tests/{ => optimagic}/test_batch_evaluators.py (97%) rename tests/{ => optimagic}/test_decorators.py (96%) rename tests/{ => optimagic}/test_process_function.py (82%) rename tests/{ => optimagic}/test_utilities.py (98%) rename tests/{ => optimagic}/visualization/test_convergence_plot.py (91%) rename tests/{ => optimagic}/visualization/test_deviation_plot.py (86%) rename tests/{ => optimagic}/visualization/test_history_plots.py (97%) rename tests/{ => optimagic}/visualization/test_profile_plot.py (96%) rename tests/{ => optimagic}/visualization/test_slice_plot.py (95%) create mode 100644 tests/test_deprecations.py delete mode 100644 tests/visualization/combined_params_dataframe.csv diff --git a/.envs/testenv-linux.yml b/.envs/testenv-linux.yml index 79c4c0f2f..66f8c8e6e 100644 --- a/.envs/testenv-linux.yml +++ b/.envs/testenv-linux.yml @@ -1,5 +1,5 @@ --- -name: estimagic +name: optimagic channels: - conda-forge - nodefaults @@ -20,9 +20,10 @@ dependencies: - pybaum >= 0.1.2 # run, tests - scipy>=1.2.1 # run, tests - sqlalchemy # run, tests - - tranquilo>=0.0.4 # dev, tests - seaborn # dev, tests - mypy # dev, tests + - pyyaml # dev, tests + - jinja2 # dev, tests - pip: # dev, tests, docs - DFO-LS # dev, tests - Py-BOBYQA # dev, tests @@ -31,4 +32,5 @@ dependencies: - pandas-stubs # dev, tests - types-cffi # dev, tests - types-openpyxl # dev, tests + - types-jinja2 # dev, tests - -e ../ diff --git a/.envs/testenv-others.yml b/.envs/testenv-others.yml index 78254d69c..e6c8be96a 100644 --- a/.envs/testenv-others.yml +++ b/.envs/testenv-others.yml @@ -1,5 +1,5 @@ --- -name: estimagic +name: optimagic channels: - conda-forge - nodefaults @@ -19,9 +19,10 @@ dependencies: - pybaum >= 0.1.2 # run, tests - scipy>=1.2.1 # run, tests - sqlalchemy # run, tests - - tranquilo>=0.0.4 # dev, tests - seaborn # dev, tests - mypy # dev, tests + - pyyaml # dev, tests + - jinja2 # dev, tests - pip: # dev, tests, docs - DFO-LS # dev, tests - Py-BOBYQA # dev, tests @@ -30,4 +31,5 @@ dependencies: - pandas-stubs # dev, tests - types-cffi # dev, tests - types-openpyxl # dev, tests + - types-jinja2 # dev, tests - -e ../ diff --git a/.envs/testenv-pandas.yml b/.envs/testenv-pandas.yml index fa1a7b642..1dfba6c6a 100644 --- a/.envs/testenv-pandas.yml +++ b/.envs/testenv-pandas.yml @@ -1,5 +1,5 @@ --- -name: estimagic +name: optimagic channels: - conda-forge - nodefaults @@ -18,9 +18,10 @@ dependencies: - pybaum >= 0.1.2 # run, tests - scipy>=1.2.1 # run, tests - sqlalchemy # run, tests - - tranquilo>=0.0.4 # dev, tests - seaborn # dev, tests - mypy # dev, tests + - pyyaml # dev, tests + - jinja2 # dev, tests - pip: # dev, tests, docs - DFO-LS # dev, tests - Py-BOBYQA # dev, tests @@ -28,4 +29,5 @@ dependencies: - kaleido # dev, tests - types-cffi # dev, tests - types-openpyxl # dev, tests + - types-jinja2 # dev, tests - -e ../ diff --git a/.github/ISSUE_TEMPLATE/enhancement.md b/.github/ISSUE_TEMPLATE/enhancement.md index 742bb2f94..c3b3d5e00 100644 --- a/.github/ISSUE_TEMPLATE/enhancement.md +++ b/.github/ISSUE_TEMPLATE/enhancement.md @@ -7,7 +7,7 @@ assignees: '' --- -* estimagic version used, if any: +* optimagic version used, if any: * Python version, if any: * Operating System: diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 2290f8e86..592b7753d 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -36,7 +36,7 @@ jobs: - name: run pytest shell: bash -l {0} run: | - micromamba activate estimagic + micromamba activate optimagic pytest --cov-report=xml --cov=./ - name: Upload coverage report. if: runner.os == 'Linux' && matrix.python-version == '3.10' @@ -67,12 +67,12 @@ jobs: - name: run pytest shell: bash -l {0} run: | - micromamba activate estimagic + micromamba activate optimagic pytest -m "not slow and not jax" run-tests-with-old-pandas: - # This job is only for testing if estimagic works with older pandas versions, as - # many pandas functions we use will be deprecated in pandas 3. estimagic's behavior - # for older verions is handled in src/estimagic/compat.py. + # This job is only for testing if optimagic works with older pandas versions, as + # many pandas functions we use will be deprecated in pandas 3. optimagic's behavior + # for older verions is handled in src/optimagic/compat.py. name: Run tests for ${{ matrix.os}} on ${{ matrix.python-version }} with pandas 1 runs-on: ${{ matrix.os }} strategy: @@ -94,10 +94,8 @@ jobs: - name: run pytest shell: bash -l {0} run: | - micromamba activate estimagic - pytest tests/visualization - pytest tests/parameters - pytest tests/inference + micromamba activate optimagic + pytest -m "not slow and not jax" code-in-docs: name: Run code snippets in documentation runs-on: ubuntu-latest @@ -107,15 +105,15 @@ jobs: uses: mamba-org/setup-micromamba@v1 with: environment-file: ./.envs/testenv-linux.yml - environment-name: estimagic + environment-name: optimagic cache-env: true extra-specs: python=3.12 - name: run sphinx shell: bash -l {0} run: |- - micromamba activate estimagic + micromamba activate optimagic cd docs/source - python -m doctest -v how_to_guides/optimization/how_to_specify_constraints.md + python -m doctest -v how_to/how_to_constraints.md run-mypy: name: Run mypy runs-on: ubuntu-latest @@ -127,12 +125,12 @@ jobs: uses: mamba-org/provision-with-micromamba@main with: environment-file: ./.envs/testenv-linux.yml - environment-name: estimagic + environment-name: optimagic cache-env: true extra-specs: | python=3.10 - name: Run mypy shell: bash -l {0} run: |- - micromamba activate estimagic + micromamba activate optimagic mypy diff --git a/.gitignore b/.gitignore index 500939250..5e1d077ec 100644 --- a/.gitignore +++ b/.gitignore @@ -132,5 +132,6 @@ venv.bak/ src/estimagic/_version.py +src/optimagic/_version.py *.~lock.* diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index cfb85d6f5..43ba1e7cf 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -9,7 +9,7 @@ repos: rev: 1.16.0 hooks: - id: yamlfix - exclude: tests/optimization/fixtures + exclude: tests/optimagic/optimizers/_pounders/fixtures - repo: local hooks: - id: update-environment-files @@ -24,7 +24,7 @@ repos: - id: check-added-large-files args: - --maxkb=1300 - exclude: tests/optimization/fixtures/ + exclude: tests/optimagic/optimizers/_pounders/fixtures/ - id: check-case-conflict - id: check-merge-conflict - id: check-vcs-permalinks @@ -48,14 +48,15 @@ repos: - --branch - main - id: trailing-whitespace + exclude: docs/ - id: check-ast - id: check-docstring-first - exclude: src/estimagic/optimization/algo_options.py + exclude: src/optimagic/optimization/algo_options.py - repo: https://github.com/adrienverge/yamllint.git rev: v1.35.1 hooks: - id: yamllint - exclude: tests/optimization/fixtures + exclude: tests/optimagic/optimizers/_pounders/fixtures - repo: https://github.com/psf/black rev: 24.4.2 hooks: @@ -65,7 +66,7 @@ repos: rev: 1.18.0 hooks: - id: blacken-docs - exclude: docs/source/how_to_guides/optimization/how_to_specify_constraints.md + exclude: docs/source/how_to/how_to_constraints.md - repo: https://github.com/PyCQA/docformatter rev: v1.7.5 hooks: @@ -77,7 +78,7 @@ repos: - --wrap-descriptions - '88' - --blank - exclude: src/estimagic/optimization/algo_options.py + exclude: src/optimagic/optimization/algo_options.py - repo: https://github.com/astral-sh/ruff-pre-commit rev: v0.5.0 hooks: diff --git a/CHANGES.md b/CHANGES.md index 86ff24dfd..5bfb4951f 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,8 +1,8 @@ # Changes -This is a record of all past estimagic releases and what went into them in reverse +This is a record of all past optimagic releases and what went into them in reverse chronological order. We follow [semantic versioning](https://semver.org/) and all -releases are available on [Anaconda.org](https://anaconda.org/OpenSourceEconomics/estimagic). +releases are available on [Anaconda.org](https://anaconda.org/OpenSourceEconomics/optimagic). Following the [scientific python guidelines](https://scientific-python.org/specs/spec-0000/) we drop the official support for Python 3.9. diff --git a/CITATION b/CITATION index ec0ac5ee3..cdc278cbe 100644 --- a/CITATION +++ b/CITATION @@ -4,16 +4,16 @@ x.y) from this installation Text: -[estimagic] estimagic x.y, 2021 -Janos Gabler, http://estimagic.readthedocs.io +[optimagic] optimagic x.y, 2024 +Janos Gabler, https://github.com/OpenSourceEconomics/optimagic BibTeX: -@Unpublished{Gabler2022, - Title = {A Python Tool for the Estimation of large scale scientific models.}, +@Unpublished{Gabler2024, + Title = {optimagic: A library for nonlinear optimization}, Author = {Janos Gabler}, - Year = {2022}, - Url = {https://github.com/OpenSourceEconomics/estimagic} + Year = {2024}, + Url = {https://github.com/OpenSourceEconomics/optimagic} } -If you are unsure about which version of estimagic you are using run: `conda list estimagic`. +If you are unsure about which version of optimagic you are using run: `conda list optimagic`. diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index c533c1043..190f2aed7 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -1,6 +1,6 @@ -## Code of Conduct +# Code of Conduct -### Our Pledge +## Our Pledge We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body @@ -12,7 +12,7 @@ and orientation. We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community. -### Our Standards +## Our Standards Examples of behavior that contributes to a positive environment for our community include: @@ -36,7 +36,7 @@ Examples of unacceptable behavior include: * Other conduct which could reasonably be considered inappropriate in a professional setting -### Enforcement Responsibilities +## Enforcement Responsibilities Community leaders are responsible for clarifying and enforcing our standards of acceptable behavior and will take appropriate and fair corrective action in @@ -48,7 +48,7 @@ comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, and will communicate reasons for moderation decisions when appropriate. -### Scope +## Scope This Code of Conduct applies within all community spaces, on all formal and informal events, and also applies when an individual is officially representing @@ -58,7 +58,7 @@ the community in public spaces. Examples of representing our community include - acting as a representative at an online or offline event - acting as a representative surrounding an event -### Enforcement +## Enforcement Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement. You can contact @@ -70,12 +70,12 @@ promptly and fairly. All community leaders are obligated to respect the privacy and security of the reporter of any incident. -### Enforcement Guidelines +## Enforcement Guidelines Community leaders will follow these Community Impact Guidelines in determining the consequences for any action they deem in violation of this Code of Conduct: -#### 1. Correction +### 1. Correction **Community Impact**: Use of inappropriate language or other behavior deemed unprofessional or unwelcome in the community. @@ -84,7 +84,7 @@ unprofessional or unwelcome in the community. clarity around the nature of the violation and an explanation of why the behavior was inappropriate. A public apology may be requested. -#### 2. Warning +### 2. Warning **Community Impact**: A violation through a single incident or series of actions. @@ -96,7 +96,7 @@ includes avoiding interactions in community spaces as well as external channels like social media. Violating these terms may lead to a temporary or permanent ban. -#### 3. Temporary Ban +### 3. Temporary Ban **Community Impact**: A serious violation of community standards, including sustained inappropriate behavior. @@ -107,7 +107,7 @@ private interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, is allowed during this period. Violating these terms may lead to a permanent ban. -#### 4. Permanent Ban +### 4. Permanent Ban **Community Impact**: Demonstrating a pattern of violation of community standards, including sustained inappropriate behavior, harassment of an @@ -116,7 +116,7 @@ individual, or aggression toward or disparagement of classes of individuals. **Consequence**: A permanent ban from any sort of public interaction within the community. -### Attribution +## Attribution This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 2.0, available at diff --git a/README.md b/README.md index 6e9f2fd51..874e520df 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# estimagic +# optimagic [![image](https://img.shields.io/pypi/v/estimagic?color=blue)](https://pypi.org/project/estimagic) [![image](https://img.shields.io/pypi/pyversions/estimagic)](https://pypi.org/project/estimagic) @@ -7,22 +7,22 @@ [![image](https://img.shields.io/pypi/l/estimagic)](https://pypi.org/project/estimagic) [![image](https://readthedocs.org/projects/estimagic/badge/?version=latest)](https://estimagic.readthedocs.io/en/latest) [![image](https://img.shields.io/github/actions/workflow/status/OpenSourceEconomics/estimagic/main.yml?branch=main)](https://github.com/OpenSourceEconomics/estimagic/actions?query=branch%3Amain) -[![image](https://codecov.io/gh/OpenSourceEconomics/estimagic/branch/main/graph/badge.svg)](https://codecov.io/gh/OpenSourceEconomics/estimagic) -[![image](https://results.pre-commit.ci/badge/github/OpenSourceEconomics/estimagic/main.svg)](https://github.com/OpenSourceEconomics/estimagic/actions?query=branch%3Amain) +[![image](https://codecov.io/gh/OpenSourceEconomics/estimagic/branch/main/graph/badge.svg)](https://codecov.io/gh/OpenSourceEconomics/optimagic) +[![image](https://results.pre-commit.ci/badge/github/OpenSourceEconomics/estimagic/main.svg)](https://github.com/OpenSourceEconomics/optimagic/actions?query=branch%3Amain) [![image](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) [![image](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg)](CODE_OF_CONDUCT.md) [![image](https://pepy.tech/badge/estimagic/month)](https://pepy.tech/project/estimagic) ## Introduction -estimagic is a Python package for nonlinear optimization with or without constraints. It +optimagic is a Python package for nonlinear optimization with or without constraints. It is particularly suited to solve difficult nonlinear estimation problems. On top, it provides functionality to perform statistical inference on estimated parameters. ### Optimization -- estimagic wraps algorithms from *scipy.optimize*, *nlopt*, *pygmo* and more. -- estimagic implements constraints efficiently via reparametrization, so you can solve +- optimagic wraps algorithms from *scipy.optimize*, *nlopt*, *pygmo* and more. +- optimagic implements constraints efficiently via reparametrization, so you can solve constrained problems with any optimizer that supports bounds. - The parameters of an optimization problem can be arbitrary pytrees - The complete history of parameters and function evaluations can be saved in a database @@ -41,7 +41,7 @@ provides functionality to perform statistical inference on estimated parameters. ### Numerical differentiation -- estimagic can calculate precise numerical derivatives using +- optimagic can calculate precise numerical derivatives using [Richardson extrapolations](https://en.wikipedia.org/wiki/Richardson_extrapolation). - Function evaluations needed for numerical derivatives can be done in parallel with pre-implemented or user provided batch evaluators. @@ -53,16 +53,16 @@ terminal: ```bash $ conda config --add channels conda-forge -$ conda install estimagic +$ conda install optimagic ``` The first line adds conda-forge to your conda channels. This is necessary for conda to -find all dependencies of estimagic. The second line installs estimagic and its +find all dependencies of optimagic. The second line installs optimagic and its dependencies. ## Installing optional dependencies -Only `scipy` is a mandatory dependency of estimagic. Other algorithms become available +Only `scipy` is a mandatory dependency of optimagic. Other algorithms become available if you install more packages. We make this optional because most of the time you will use at least one additional package, but only very rarely will you need all of them. @@ -91,13 +91,13 @@ The documentation is hosted ([on rtd](https://estimagic.readthedocs.io/en/latest ## Citation -If you use Estimagic for your research, please do not forget to cite it. +If you use optimagic for your research, please do not forget to cite it. ``` -@Unpublished{Gabler2022, - Title = {A Python Tool for the Estimation of large scale scientific models.}, +@Unpublished{Gabler2024, + Title = {optimagic: A library for nonlinear optimization}, Author = {Janos Gabler}, Year = {2022}, - Url = {https://github.com/OpenSourceEconomics/estimagic} + Url = {https://github.com/OpenSourceEconomics/optimagic} } ``` diff --git a/codecov.yml b/codecov.yml index e8f2c20b2..023a78c62 100644 --- a/codecov.yml +++ b/codecov.yml @@ -17,12 +17,11 @@ ignore: - .tox/**/* - release.py - setup.py - - estimagic/tests/**/* - - src/estimagic/benchmarking/cartis_roberts.py - - src/estimagic/optimization/subsolvers/bntr_fast.py - - src/estimagic/optimization/subsolvers/_trsbox_fast.py - - src/estimagic/optimization/subsolvers/_conjugate_gradient_fast.py - - src/estimagic/optimization/subsolvers/_steihaug_toint_fast.py - - src/estimagic/optimization/subsolvers/gqtpar_fast.py - - src/estimagic/optimization/tranquilo/clustering.py - - tests/optimization/test_tao_optimizers.py + - src/optimagic/benchmarking/cartis_roberts.py + - src/optimagic/optimization/subsolvers/bntr_fast.py + - src/optimagic/optimization/subsolvers/_trsbox_fast.py + - src/optimagic/optimization/subsolvers/_conjugate_gradient_fast.py + - src/optimagic/optimization/subsolvers/_steihaug_toint_fast.py + - src/optimagic/optimization/subsolvers/gqtpar_fast.py + - src/optimagic/optimization/tranquilo/clustering.py + - tests/**/* diff --git a/docs/Makefile b/docs/Makefile index c06ae6a84..06269366b 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -4,7 +4,7 @@ # You can set these variables from the command line. SPHINXOPTS = SPHINXBUILD = sphinx-build -SPHINXPROJ = estimagic +SPHINXPROJ = optimagic SOURCEDIR = source BUILDDIR = build diff --git a/docs/make.bat b/docs/make.bat index ab7496625..731270bc7 100644 --- a/docs/make.bat +++ b/docs/make.bat @@ -9,7 +9,7 @@ if "%SPHINXBUILD%" == "" ( ) set SOURCEDIR=source set BUILDDIR=build -set SPHINXPROJ=estimagic +set SPHINXPROJ=optimagic if "%1" == "" goto help diff --git a/docs/rtd_environment.yml b/docs/rtd_environment.yml index 3f990e869..c79d6d429 100644 --- a/docs/rtd_environment.yml +++ b/docs/rtd_environment.yml @@ -1,5 +1,5 @@ --- -name: estimagic-docs +name: optimagic-docs channels: - conda-forge - nodefaults diff --git a/docs/source/_static/images/aai-institute-logo.svg b/docs/source/_static/images/aai-institute-logo.svg new file mode 100644 index 000000000..28e18f40a --- /dev/null +++ b/docs/source/_static/images/aai-institute-logo.svg @@ -0,0 +1 @@ + diff --git a/docs/source/_static/images/hoover_logo.png b/docs/source/_static/images/hoover_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..a377198969d24cc40c4574618033b803944952a2 GIT binary patch literal 7314 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 literal 0 HcmV?d00001 diff --git a/docs/source/_static/images/numfocus_logo.png b/docs/source/_static/images/numfocus_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..a1daebf574f42baef94bbb6db87c0161bb0d0c18 GIT binary patch literal 19455 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 literal 0 HcmV?d00001 diff --git a/docs/source/_static/images/transferlab-logo.svg b/docs/source/_static/images/transferlab-logo.svg new file mode 100644 index 000000000..b987a9b48 --- /dev/null +++ b/docs/source/_static/images/transferlab-logo.svg @@ -0,0 +1 @@ + diff --git a/docs/source/algorithms.md b/docs/source/algorithms.md index 0efd84fcb..192070a90 100644 --- a/docs/source/algorithms.md +++ b/docs/source/algorithms.md @@ -9,8 +9,8 @@ when using `maximize` or `minimize`. (scipy-algorithms)= -estimagic supports most `scipy` algorithms and scipy is automatically installed when you -install estimagic. +optimagic supports most `scipy` algorithms and scipy is automatically installed when you +install optimagic. ```{eval-rst} .. dropdown:: scipy_lbfgsb @@ -80,7 +80,7 @@ install estimagic. originally implemented by :cite:`Kraft1988`. .. note:: - SLSQP's general nonlinear constraints are not supported yet by estimagic. + SLSQP's general nonlinear constraints are not supported yet by optimagic. - **convergence.absolute_criterion_tolerance** (float): Precision goal for the value of f in the stopping criterion. @@ -109,8 +109,8 @@ install estimagic. Its popularity is likely due to historic reasons and much larger than its properties warrant. - The argument `initial_simplex` is not supported by estimagic as it is not - compatible with estimagic's handling of constraints. + The argument `initial_simplex` is not supported by optimagic as it is not + compatible with optimagic's handling of constraints. - **stopping.max_iterations** (int): If the maximum number of iterations is reached, the optimization stops, but we do not count this as convergence. @@ -118,10 +118,10 @@ install estimagic. the optimization stops but we do not count this as convergence. - **convergence.absolute_params_tolerance** (float): Absolute difference in parameters between iterations that is tolerated to declare convergence. As no relative tolerances can be passed to Nelder-Mead, - estimagic sets a non zero default for this. + optimagic sets a non zero default for this. - **convergence.absolute_criterion_tolerance** (float): Absolute difference in the criterion value between iterations that is tolerated to declare convergence. As no relative tolerances can be passed to Nelder-Mead, - estimagic sets a non zero default for this. + optimagic sets a non zero default for this. - **adaptive** (bool): Adapt algorithm parameters to dimensionality of problem. Useful for high-dimensional minimization (:cite:`Gao2012`, p. 259-277). scipy's default is False. @@ -148,8 +148,8 @@ install estimagic. bi-directional search in each parameter's dimension. The argument ``direc``, which is the initial set of direction vectors and which - is part of the scipy interface is not supported by estimagic because it is - incompatible with how estimagic handles constraints. + is part of the scipy interface is not supported by optimagic because it is + incompatible with how optimagic handles constraints. - **convergence.relative_params_tolerance (float)**: Stop when the relative movement between parameter vectors is smaller than this. @@ -289,7 +289,7 @@ install estimagic. It is derivative-free and supports nonlinear inequality and equality constraints. .. note:: - Cobyla's general nonlinear constraints is not supported yet by estimagic. + Cobyla's general nonlinear constraints is not supported yet by optimagic. Scipy's implementation wraps the FORTRAN implementation of the algorithm. @@ -339,8 +339,8 @@ install estimagic. - the gradient is not too large, e.g., has a norm less than 1000. - The initial guess is reasonably close to the criterion's global minimizer. - estimagic does not support the ``scale`` nor ``offset`` argument as they are not - compatible with the way estimagic handles constraints. It also does not support + optimagic does not support the ``scale`` nor ``offset`` argument as they are not + compatible with the way optimagic handles constraints. It also does not support ``messg_num`` which is an additional way to control the verbosity of the optimizer. - **func_min_estimate** (float): Minimum function value estimate. Defaults to 0. @@ -368,13 +368,13 @@ install estimagic. It may be increased during the optimization. If too small, it will be set to 10.0. By default we use scipy's default. - **line_search_severity** (float): Severity of the line search. If < 0 or > 1, - set to 0.25. Estimagic defaults to scipy's default. + set to 0.25. optimagic defaults to scipy's default. - **finitie_difference_precision** (float): Relative precision for finite difference calculations. If <= machine_precision, set to sqrt(machine_precision). - Estimagic defaults to scipy's default. + optimagic defaults to scipy's default. - **criterion_rescale_factor** (float): Scaling factor (in log10) used to trigger criterion rescaling. If 0, rescale at each iteration. If a large value, - never rescale. If < 0, rescale is set to 1.3. Estimagic defaults to scipy's + never rescale. If < 0, rescale is set to 1.3. optimagic defaults to scipy's default. @@ -396,7 +396,7 @@ install estimagic. with another local optimizer. .. note:: - Its general nonlinear constraints' handling is not supported yet by estimagic. + Its general nonlinear constraints' handling is not supported yet by optimagic. It switches between two implementations depending on the problem definition. It is the most versatile constrained minimization algorithm @@ -576,9 +576,9 @@ install estimagic. Basin-hopping is a two-phase method that combines a global stepping algorithm with local minimization at each step. Designed to mimic the natural process of energy minimization of clusters of atoms, it works well for similar problems with “funnel-like, but rugged” energy landscapes. - This is mainly supported for completeness. Consider estimagic's built in multistart + This is mainly supported for completeness. Consider optimagic's built in multistart optimization for a similar approach that can run multiple optimizations in parallel, - supports all local algorithms in estimagic (as opposed to just those from scipy) + supports all local algorithms in optimagic (as opposed to just those from scipy) and allows for a better visualization of the multistart history. When provided the derivative is passed to the local minimization method. @@ -587,21 +587,28 @@ install estimagic. - **local_algorithm** (str/callable): Any scipy local minimizer: valid options are. "Nelder-Mead". "Powell". "CG". "BFGS". "Newton-CG". "L-BFGS-B". "TNC". "COBYLA". - "SLSQP". "trust-constr". "dogleg". "trust-ncg". "trust-exact". "trust-krylov". - or a custom function for local minimization, default is "L-BFGS-B". - - **n_local_optimizations**: (int) The number local optimizations. Default is 100 as in scipy's default. - - **temperature**: (float) Controls the randomness in the optimization process. Higher the temperatures the larger jumps in function value will be accepted. Default is 1.0 as in scipy's default. + "SLSQP". "trust-constr". "dogleg". "trust-ncg". "trust-exact". "trust-krylov". + or a custom function for local minimization, default is "L-BFGS-B". + - **n_local_optimizations**: (int) The number local optimizations. Default is 100 as + in scipy's default. + - **temperature**: (float) Controls the randomness in the optimization process. + Higher the temperatures the larger jumps in function value will be accepted. + Default is 1.0 as in scipy's default. - **stepsize**: (float) Maximum step size. Default is 0.5 as in scipy's default. - **local_algo_options**: (dict) Additional keyword arguments for the local minimizer. Check the documentation of the local scipy algorithms for details on what is supported. - - **take_step**: (callable) Replaces the default step-taking routine. Default is None as in scipy's default. - - **accept_test**: (callable) Define a test to judge the acception of steps. Default is None as in scipy's default. - - **interval**: (int) Determined how often the step size is updated. Default is 50 as in scipy's default. + - **take_step**: (callable) Replaces the default step-taking routine. Default is + None as in scipy's default. + - **accept_test**: (callable) Define a test to judge the acception of steps. Default + is None as in scipy's default. + - **interval**: (int) Determined how often the step size is updated. Default is 50 + as in scipy's default. - **convergence.n_unchanged_iterations**: (int) Number of iterations the global - minimum estimate stays the same to stops the algorithm. Default is None as in - scipy's default. - - **seed**: (None, int, numpy.random.Generator,numpy.random.RandomState)Default is None as in scipy's default. + minimum estimate stays the same to stops the algorithm. Default is None as in + scipy's default. + - **seed**: (None, int, numpy.random.Generator,numpy.random.RandomState)Default is + None as in scipy's default. - **target_accept_rate**: (float) Adjusts the step size. Default is 0.5 as in scipy's default. - **stepwise_factor**: (float) Step size multiplier upon each step. Lies between (0,1), default is 0.9 as in scipy's default. @@ -619,7 +626,7 @@ install estimagic. Brute force evaluates the criterion at each point and that is why better suited for problems with very few parameters. The start values are not actually used because the grid is only defined by bounds. - It is still necessary for estimagic to infer the number and format of the + It is still necessary for optimagic to infer the number and format of the parameters. Due to the parallelization, this algorithm cannot collect a history of parameters @@ -627,12 +634,15 @@ install estimagic. The algorithm supports the following options: - - **n_grid_points** (int): the number of grid points to use for the brute force search. Default is 20 as in scipy. - - **polishing_function** (callable): Function to seek a more precise minimum near brute-force' best gridpoint taking brute-force's result at initial guess as a positional argument. Default is None providing no polishing. + - **n_grid_points** (int): the number of grid points to use for the brute force + search. Default is 20 as in scipy. + - **polishing_function** (callable): Function to seek a more precise minimum near + brute-force' best gridpoint taking brute-force's result at initial guess as a + positional argument. Default is None providing no polishing. - **n_cores** (int): The number of cores on which the function is evaluated in - parallel. Default 1. - - **batch_evaluator** (str or callable). An estimagic batch evaluator. Default - 'joblib'. + parallel. Default 1. + - **batch_evaluator** (str or callable). An optimagic batch evaluator. Default + 'joblib'. ``` @@ -645,12 +655,13 @@ install estimagic. Find the global minimum of a multivariate function using differential evolution (DE). DE is a gradient-free method. - Due to estimagic's general parameter format the integrality and vectorized + Due to optimagic's general parameter format the integrality and vectorized arguments are not supported. The algorithm supports the following options: - - **strategy** (str): Measure of quality to improve a candidate solution, can be one of the following keywords + - **strategy** (str): Measure of quality to improve a candidate solution, can be one + of the following keywords (default 'best1bin'.) - ‘best1bin’ - ‘best1exp’ - ‘rand1exp’ @@ -663,25 +674,40 @@ install estimagic. - ‘best2bin’ - ‘rand2bin’ - ‘rand1bin’ - ,default is 'best1bin'. - - **stopping.max_iterations** (int): The maximum number of criterion evaluations without polishing is(stopping.max_iterations + 1) * population_size * number of parameters) - - **population_size_multiplier** (int): A multiplier setting the population size. The number of individuals in the population is population_size * number of parameters. The default 15. + + - **stopping.max_iterations** (int): The maximum number of criterion evaluations + without polishing is(stopping.max_iterations + 1) * population_size * number of + parameters + - **population_size_multiplier** (int): A multiplier setting the population size. + The number of individuals in the population is population_size * number of + parameters. The default 15. - **convergence.relative_criterion_tolerance** (float): Default 0.01. - - **mutation_constant** (float/tuple): The differential weight denoted by F in literature. Should be within 0 and 2. The tuple form is used to specify (min, max) dithering which can help speed convergence. Default is (0.5, 1). - - **recombination_constant** (float): The crossover probability or CR in the literature determines the probability that two solution vectors will be combined to produce a new solution vector. Should be between 0 and 1. The default is 0.7. + - **mutation_constant** (float/tuple): The differential weight denoted by F in + literature. Should be within 0 and 2. The tuple form is used to specify + (min, max) dithering which can help speed convergence. Default is (0.5, 1). + - **recombination_constant** (float): The crossover probability or CR in the + literature determines the probability that two solution vectors will be combined + to produce a new solution vector. Should be between 0 and 1. The default is 0.7. - **seed** (int): DE is stochastic. Define a seed for reproducability. - - **polish** (bool): Uses scipy's L-BFGS-B for unconstrained problems and trust-constr for constrained problems to slightly improve the minimization. Default is True. - - **sampling_method** (str/np.array): Specify the sampling method for the initial population. It can be one of the following options - - "latinhypercube" - - "sobol" - - "halton" - - "random" - - an array specifying the initial population of shape (total population size, number of parameters). The initial population is clipped to bounds before use. Default is 'latinhypercube' - - **convergence.absolute_criterion_tolerance** (float): CONVERGENCE_SECOND_BEST_ABSOLUTE_CRITERION_TOLERANCE + - **polish** (bool): Uses scipy's L-BFGS-B for unconstrained problems and + trust-constr for constrained problems to slightly improve the minimization. + Default is True. + - **sampling_method** (str/np.array): Specify the sampling method for the initial + population. It can be one of the following options + - "latinhypercube" + - "sobol" + - "halton" + - "random" + - an array specifying the initial population of shape (total population size, + number of parameters). The initial population is clipped to bounds before use. + Default is 'latinhypercube' + + - **convergence.absolute_criterion_tolerance** (float): + CONVERGENCE_SECOND_BEST_ABSOLUTE_CRITERION_TOLERANCE - **n_cores** (int): The number of cores on which the function is evaluated in - parallel. Default 1. - - **batch_evaluator** (str or callable). An estimagic batch evaluator. Default - 'joblib'. + parallel. Default 1. + - **batch_evaluator** (str or callable). An optimagic batch evaluator. Default + 'joblib'. ``` @@ -697,29 +723,40 @@ install estimagic. The algorithm supports the following options: - **local_algorithm** (str): The local optimization algorithm to be used. Only - COBYLA and SLSQP supports constraints. Valid options are - "Nelder-Mead". "Powell". "CG". "BFGS". "Newton-CG". "L-BFGS-B". "TNC". "COBYLA". - "SLSQP". "trust-constr". "dogleg". "trust-ncg". "trust-exact". "trust-krylov" - or a custom function for local minimization, default is "L-BFGS-B". + COBYLA and SLSQP supports constraints. Valid options are + "Nelder-Mead". "Powell". "CG". "BFGS". "Newton-CG". "L-BFGS-B". "TNC". "COBYLA". + "SLSQP". "trust-constr". "dogleg". "trust-ncg". "trust-exact". "trust-krylov" + or a custom function for local minimization, default is "L-BFGS-B". - **local_algo_options**: (dict) Additional keyword arguments for the local minimizer. Check the documentation of the local scipy algorithms for details on what is supported. - - **n_sampling_points** (int): Specify the number of sampling points to construct the simplical complex. - - **n_simplex_iterations** (int): Number of iterations to construct the simplical complex. Default is 1 as in scipy. - - **sampling_method** (str/callable): The method to use for sampling the search space. Default 'simplicial'. - - **max_sampling_evaluations** (int): The maximum number of evaluations of the criterion function in the sampling phase. - - **convergence.minimum_criterion_value** (float): Specify the global minimum when it is known. Default is - **np.inf. For maximization problems, flip the sign. - - **convergence.minimum_criterion_tolerance** (float): Specify the relative error between the current best minimum and the supplied global criterion_minimum allowed. Default is scipy's default, 1e-4. + - **n_sampling_points** (int): Specify the number of sampling points to construct + the simplical complex. + - **n_simplex_iterations** (int): Number of iterations to construct the simplical + complex. Default is 1 as in scipy. + - **sampling_method** (str/callable): The method to use for sampling the search + space. Default 'simplicial'. + - **max_sampling_evaluations** (int): The maximum number of evaluations of the + criterion function in the sampling phase. + - **convergence.minimum_criterion_value** (float): Specify the global minimum when + it is known. Default is - np.inf. For maximization problems, flip the sign. + - **convergence.minimum_criterion_tolerance** (float): Specify the relative error + between the current best minimum and the supplied global criterion_minimum + allowed. Default is scipy's default, 1e-4. - **stopping.max_iterations** (int): The maximum number of iterations. - **stopping.max_criterion_evaluations** (int): The maximum number of criterion - evaluations. - - **stopping.max_processing_time** (int): The maximum time allowed for the optimization. - - **minimum_homology_group_rank_differential** (int): The minimum difference in the rank of the homology group between iterations. + evaluations. + - **stopping.max_processing_time** (int): The maximum time allowed for the + optimization. + - **minimum_homology_group_rank_differential** (int): The minimum difference in the + rank of the homology group between iterations. - **symmetry** (bool): Specify whether the criterion contains symetric variables. - - **minimize_every_iteration** ()bool: Specify whether the gloabal sampling points are passed to the local algorithm in every iteration. + - **minimize_every_iteration** (bool): Specify whether the gloabal sampling points + are passed to the local algorithm in every iteration. - **max_local_minimizations_per_iteration** (int): The maximum number of local - optimizations per iteration. Default False, i.e. no limit. - - **infinity_constraints** (bool): Specify whether to save the sampling points outside the feasible domain. Default is True. + optimizations per iteration. Default False, i.e. no limit. + - **infinity_constraints** (bool): Specify whether to save the sampling points + outside the feasible domain. Default is True. ``` @@ -734,11 +771,12 @@ install estimagic. The algorithm supports the following options: - - **stopping.max_iterations** (int): Specify the maximum number of global searh iterations. + - **stopping.max_iterations** (int): Specify the maximum number of global searh + iterations. - **local_algorithm** (str): The local optimization algorithm to be used. valid - options are. "Nelder-Mead". "Powell". "CG". "BFGS". "Newton-CG". "L-BFGS-B". "TNC". - "COBYLA". "SLSQP". "trust-constr". "dogleg". "trust-ncg". "trust-exact". - "trust-krylov". Default "L-BFGS-B". + options are: "Nelder-Mead", "Powell", "CG", "BFGS", "Newton-CG", "L-BFGS-B", + "TNC", "COBYLA", "SLSQP", "trust-constr", "dogleg", "trust-ncg", "trust-exact", + "trust-krylov", Default "L-BFGS-B". - **local_algo_options**: (dict) Additional keyword arguments for the local minimizer. Check the documentation of the local scipy algorithms for details on what is supported. @@ -748,7 +786,7 @@ install estimagic. - **accept** (float): Controls the probability of acceptance. Range is (-1e4, -5] and default is scipy's default, -5.0. Smaller values lead to lower acceptance probability. - **stopping.max_criterion_evaluations** (int): soft limit for the number of criterion evaluations. - **seed** (int, None or RNG): Dual annealing is a stochastic process. Seed or - random number generator. Default None. + random number generator. Default None. - **no_local_search** (bool): Specify whether to apply a traditional Generalized Simulated Annealing with no local search. Default is False. ``` @@ -768,7 +806,7 @@ install estimagic. - **stopping_max_criterion_evaluations** (int/None): Maximum number of criterion evaluations allowed. Default is None which caps the number of evaluations at 1000 * number of dimentions automatically. - **stopping_max_iterations** (int): Maximum number of iterations allowed. - **locally_biased** (bool): Determine whether to use the locally biased variant of the algorithm DIRECT_L. Default is True. - - **convergence.minimum_criterion_value** (float): Specify the global minimum when it is known. Default is - **np.inf. For maximization problems, flip the sign. + - **convergence.minimum_criterion_value** (float): Specify the global minimum when it is known. Default is minus infinity. For maximization problems, flip the sign. - **convergence.minimum_criterion_tolerance** (float): Specify the relative error between the current best minimum and the supplied global criterion_minimum allowed. Default is scipy's default, 1e-4. - **volume_hyperrectangle_tolerance** (float): Specify the smallest volume of the hyperrectangle containing the lowest criterion value allowed. Range is (0,1). Default is 1e-16. - **length_hyperrectangle_tolerance** (float): Depending on locally_biased it can refer to normalized side (True) or diagonal (False) length of the hyperrectangle containing the lowest criterion value. Range is (0,1). Default is scipy's default, 1e-6. @@ -946,7 +984,7 @@ We implement a few algorithms from scratch. They are currently considered experi None of the dictionary keys need to be specified by default, but can be. - **batch_evaluator** (str or callable): Name of a pre-implemented batch evaluator (currently "joblib" and "pathos_mp") or callable with the same interface - as the estimagic batch_evaluators. Default is "joblib". + as the optimagic batch_evaluators. Default is "joblib". - **n_cores (int)**: Number of processes used to parallelize the function evaluations. Default is 1. @@ -1053,14 +1091,14 @@ install each of them separately: The DFO-LS algorithm :cite:`Cartis2018b` is designed to solve the nonlinear least-squares minimization problem (with optional bound constraints). - Remember to cite :cite:`Cartis2018b` when using DF-OLS in addition to estimagic. + Remember to cite :cite:`Cartis2018b` when using DF-OLS in addition to optimagic. .. math:: \min_{x\in\mathbb{R}^n} &\quad f(x) := \sum_{i=1}^{m}r_{i}(x)^2 \\ \text{s.t.} &\quad \text{lower_bounds} \leq x \leq \text{upper_bounds} - The :math:`r_{i}` are called root contributions in estimagic. + The :math:`r_{i}` are called root contributions in optimagic. DFO-LS is a derivative-free optimization algorithm, which means it does not require the user to provide the derivatives of f(x) or :math:`r_{i}(x)`, nor does it @@ -1196,7 +1234,7 @@ install each of them separately: minimization problems. Remember to cite :cite:`Powell2009` and :cite:`Cartis2018` when using pybobyqa in - addition to estimagic. If you take advantage of the ``seek_global_optimum`` option, + addition to optimagic. If you take advantage of the ``seek_global_optimum`` option, cite :cite:`Cartis2018a` additionally. There are two main situations when using a derivative-free algorithm like BOBYQA @@ -1306,7 +1344,7 @@ install each of them separately: ## PYGMO2 Optimizers -Please cite {cite}`Biscani2020` in addition to estimagic when using pygmo. estimagic +Please cite {cite}`Biscani2020` in addition to optimagic when using pygmo. optimagic supports the following [pygmo2](https://esa.github.io/pygmo2) optimizers. ```{eval-rst} @@ -1341,7 +1379,7 @@ supports the following [pygmo2](https://esa.github.io/pygmo2) optimizers. number of parameters but at least 64. - **batch_evaluator** (str or Callable): Name of a pre-implemented batch evaluator (currently 'joblib' and 'pathos_mp') or Callable with the same - interface as the estimagic batch_evaluators. See :ref:`batch_evaluators`. + interface as the optimagic batch_evaluators. See :ref:`batch_evaluators`. - **n_cores** (int): Number of cores to use. - **seed** (int): seed used by the internal random number generator. - **discard_start_params** (bool): If True, the start params are not guaranteed @@ -1594,9 +1632,9 @@ supports the following [pygmo2](https://esa.github.io/pygmo2) optimizers. CMA-ES is one of the most successful algorithm, classified as an Evolutionary Strategy, for derivative-free global optimization. The version supported by - estimagic is the version described in :cite:`Hansen2006`. + optimagic is the version described in :cite:`Hansen2006`. - In contrast to the pygmo version, estimagic always sets force_bounds to True. This + In contrast to the pygmo version, optimagic always sets force_bounds to True. This avoids that ill defined parameter values are evaluated. - **population_size** (int): Size of the population. If None, it's twice the number of @@ -1758,7 +1796,7 @@ supports the following [pygmo2](https://esa.github.io/pygmo2) optimizers. parameters but at least 10. - **batch_evaluator (str or Callable)**: Name of a pre-implemented batch evaluator (currently 'joblib' and 'pathos_mp') or Callable with the same interface as the - estimagic batch_evaluators. See :ref:`batch_evaluators`. + optimagic batch_evaluators. See :ref:`batch_evaluators`. - **n_cores** (int): Number of cores to use. - **seed** (int): seed used by the internal random number generator. - **discard_start_params** (bool): If True, the start params are not guaranteed to be @@ -1895,7 +1933,7 @@ supports the following [pygmo2](https://esa.github.io/pygmo2) optimizers. Minimize a scalar function usinng the Grey Wolf Optimizer. The grey wolf optimizer was proposed by :cite:`Mirjalili2014`. The pygmo - implementation that is wrapped by estimagic is pased on the pseudo code provided in + implementation that is wrapped by optimagic is pased on the pseudo code provided in that paper. This algorithm is a classic example of a highly criticizable line of search that led @@ -2033,7 +2071,7 @@ supports the following [pygmo2](https://esa.github.io/pygmo2) optimizers. ## The Interior Point Optimizer (ipopt) -estimagic's support for the Interior Point Optimizer ({cite}`Waechter2005`, +optimagic's support for the Interior Point Optimizer ({cite}`Waechter2005`, {cite}`Waechter2005a`, {cite}`Waechter2005b`, {cite}`Nocedal2009`) is built on [cyipopt](https://cyipopt.readthedocs.io/en/latest/index.html), a Python wrapper for the [Ipopt optimization package](https://coin-or.github.io/Ipopt/index.html). @@ -2073,7 +2111,7 @@ To use ipopt, you need to have ipopt accepts a Python `None`. The following options are not supported: - - `num_linear_variables`: since estimagic may reparametrize your problem + - `num_linear_variables`: since optimagic may reparametrize your problem and this changes the parameter problem, we do not support this option. - derivative checks - print options. @@ -3237,7 +3275,7 @@ To use ipopt, you need to have ## The Fides Optimizer -estimagic supports the +optimagic supports the [Fides Optimizer](https://fides-optimizer.readthedocs.io/en/latest). To use Fides, you need to have [the fides package](https://github.com/fides-dev/fides) installed (`pip install fides>=0.7.4`, make sure you have at least 0.7.1). @@ -3262,7 +3300,7 @@ need to have [the fides package](https://github.com/fides-dev/fides) installed - **hessian_update_strategy** (str): Hessian Update Strategy to employ. You can provide a lowercase or uppercase string or a fides.hession_approximation.HessianApproximation class instance. FX, SSM, TSSM and - GNSBFGS are not supported by estimagic. The available update strategies are: + GNSBFGS are not supported by optimagic. The available update strategies are: - **bb**: Broydens "bad" method as introduced :cite:`Broyden1965`. - **bfgs**: Broyden-Fletcher-Goldfarb-Shanno update strategy. @@ -3347,10 +3385,10 @@ need to have [the fides package](https://github.com/fides-dev/fides) installed ## The NLOPT Optimizers (nlopt) -estimagic supports the following [NLOPT](https://nlopt.readthedocs.io/en/latest/) +optimagic supports the following [NLOPT](https://nlopt.readthedocs.io/en/latest/) algorithms. Please add the [appropriate citations](https://nlopt.readthedocs.io/en/latest/Citing_NLopt/) in -addition to estimagic when using an NLOPT algorithm. To install nlopt run +addition to optimagic when using an NLOPT algorithm. To install nlopt run `conda install nlopt`. ```{eval-rst} diff --git a/docs/source/conf.py b/docs/source/conf.py index 1a4bbf374..f26665066 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -# estimagic documentation build configuration file, created by +# optimagic documentation build configuration file, created by # sphinx-quickstart on Fri Jan 18 10:59:27 2019. # # This file is execfile()d with the current directory set to its @@ -53,6 +53,7 @@ myst_enable_extensions = [ "colon_fence", "dollarmath", + "html_image", ] copybutton_prompt_text = ">>> " copybutton_only_copy_prompt_lines = False @@ -80,7 +81,7 @@ extlinks = { "ghuser": ("https://github.com/%s", "@"), - "gh": ("https://github.com/OpenSourceEconomics/estimagic/pulls/%s", "#"), + "gh": ("https://github.com/OpenSourceEconomics/optimagic/pulls/%s", "#"), } intersphinx_mapping = { @@ -105,7 +106,7 @@ master_doc = "index" # General information about the project. -project = "estimagic" +project = "optimagic" copyright = f"2019 - {year}, {author}" # noqa: A001 # The version info for the project you're documenting, acts as replacement for @@ -113,7 +114,7 @@ # built documents. # # The full version, including alpha/beta/rc tags. -release = version("estimagic").split("+")[0] +release = version("optimagic").split("+")[0] version = ".".join(release.split(".")[:2]) # The language for content autogenerated by Sphinx. Refer to documentation @@ -150,7 +151,7 @@ # List of notebooks that will not be executed. nb_execution_excludepatterns = [ # Problem with latex rendering - "how_to_generate_publication_quality_tables.ipynb", + "estimation_tables_overview.ipynb", # too long runtime "bootstrap_montecarlo_comparison.ipynb", ] @@ -192,7 +193,7 @@ # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. html_show_copyright = True -html_title = "estimagic" +html_title = "optimagic" html_theme_options = { "sidebar_hide_name": True, diff --git a/docs/source/development/credits.md b/docs/source/development/credits.md index 9ae9d0607..28693681e 100644 --- a/docs/source/development/credits.md +++ b/docs/source/development/credits.md @@ -1,6 +1,6 @@ # Credits -## The estimagic Team +## The optimagic Team ```{eval-rst} +---------------------------------------------------------------+-------------------------------------------------------------------+-------------------------------------------------------------------+-------------------------------------------------------------------+ @@ -21,41 +21,47 @@ +---------------------------------------------------------------+-------------------------------------------------------------------+-------------------------------------------------------------------+-------------------------------------------------------------------+ ``` -Janoś is the original developer and architect behind estimagic. All team members are -active contributors in terms of commits, advice or community building. Aida and Bahar -are supported by [TRA Modelling]. Hans-Martin supports estimagic in many ways, including -funding and great feedback from using and teaching estimagic. Ken supports estimagic -with his expertise on all numerical topics, financed a research stay at Standford for -Janoś, Sebi and Tim and organized a workshop on numerical optimization with estimagic at -Hoover Institution. +Janoś is the original developer and architect behind optimagic (formerly estimagic). All +team members are active contributors in terms of commits, advice or community building. +Hans-Martin and Ken support optimagic with funding and their expertise. ## Contributors We are grateful for many contributions from the community. In particular, we want to -thank: - -- Moritz Mendel -- Max Blesch -- Christian Zimpelmann -- Robin Musolff -- Sofia Badini -- Sofya Akimova -- Xuefei Han -- Leiqiong Wan -- Andrew Souther -- Luis Calderon -- Linda Maokomatanda -- Madhurima Chandra -- Vijaybabu Gangaprasad - -If you want to find your name here as well, please contact us or browse through our -Issues and submit a Pull Request. +thank Moritz Mendel, Max Blesch, Christian Zimpelmann, Robin Musolff, Sofia Badini, +Sofya Akimova, Xuefei Han, Leiqiong Wan, Andrew Souther, Luis Calderon, Linda +Maokomatanda, Madhurima Chandra, and Vijaybabu Gangaprasad. ## Acknowledgements -Estimagic is funded by the [TRA Modelling] (University of Bonn) as part of the -Excellence Strategy of the federal and state governments. +We thank all institutions that have funded or supported optimagic (formerly estimagic) -:::\{figure} ../\_static/images/tra_logo.png :width: 200px ::: +```{image} ../_static/images/aai-institute-logo.svg +--- +width: 185px +--- +``` + +```{image} ../_static/images/numfocus_logo.png +--- +width: 200 +--- +``` + +```{image} ../_static/images/tra_logo.png +--- +width: 240px +--- +``` + +```{image} ../_static/images/hoover_logo.png +--- +width: 192px +--- +``` -[tra modelling]: https://www.uni-bonn.de/en/research-and-teaching/research-profile/transdisciplinary-research-areas/tra-1-modelling +```{image} ../_static/images/transferlab-logo.svg +--- +width: 420px +--- +``` diff --git a/docs/source/development/eeps.md b/docs/source/development/eeps.md deleted file mode 100644 index 1165012c2..000000000 --- a/docs/source/development/eeps.md +++ /dev/null @@ -1,17 +0,0 @@ -# EEPs - -Estimagic Enhancement Proposals (EEPs) can be used to discuss and design large changes. -EEP-00 details the EEP process, the estimagic governance model and the estimagic Code of -Conduct. It is the only EEP that gets continuously updated. - -These EEPs are currently in place: - -```{toctree} ---- -maxdepth: 1 ---- -eep-00-governance-model.md -eep-01-pytrees.md -eep-02-typing.md -eep-03-alignment.md -``` diff --git a/docs/source/development/enhancement_proposals.md b/docs/source/development/enhancement_proposals.md new file mode 100644 index 000000000..d8d212aad --- /dev/null +++ b/docs/source/development/enhancement_proposals.md @@ -0,0 +1,17 @@ +# Enhancement Proposals + +optimagic Enhancement Proposals (EPs) can be used to discuss and design large changes. +EP-00 details the EP process, the optimagic governance model and the optimagic Code of +Conduct. It is the only EP that gets continuously updated. + +These EPs are currently in place: + +```{toctree} +--- +maxdepth: 1 +--- +ep-00-governance-model.md +ep-01-pytrees.md +ep-02-typing.md +ep-03-alignment.md +``` diff --git a/docs/source/development/eep-00-governance-model.md b/docs/source/development/ep-00-governance-model.md similarity index 76% rename from docs/source/development/eep-00-governance-model.md rename to docs/source/development/ep-00-governance-model.md index 7cc215c7d..7421553f8 100644 --- a/docs/source/development/eep-00-governance-model.md +++ b/docs/source/development/ep-00-governance-model.md @@ -1,6 +1,6 @@ -(eep-00)= +(ep-00)= -# EEP-00: Governance model & code of conduct +# EP-00: Governance model & code of conduct ```{eval-rst} +------------+------------------------------------------------------------------+ @@ -26,14 +26,14 @@ ## Purpose -This document formalizes the estimagic code of conduct and governance model. In case of -changes, this document can be updated following the estimagic Enhancement Proposal +This document formalizes the optimagic code of conduct and governance model. In case of +changes, this document can be updated following the optimagic Enhancement Proposal process detailed below. ```{include} ../../../CODE_OF_CONDUCT.md ``` -## estimagic governance model +## optimagic governance model ### Summary @@ -41,28 +41,28 @@ The governance model strives to be lightweight and based on [consensus](https://numpy.org/doc/stable/dev/governance/governance.html#consensus-based-decision-making-by-the-community) of all interested parties. Most work happens in GitHub issues and pull requests (regular decision process). Any interested party can voice their concerns or veto on proposed -changes. If this happens, the estimagic Enhancement Proposal (EEP) process can be used -to iterate over proposals until consesus is reached (controversial decision process). If +changes. If this happens, the optimagic Enhancement Proposal (EP) process can be used to +iterate over proposals until consesus is reached (controversial decision process). If necessary, members of the steering council can moderate heated debates and help to broker a consensus. ### Regular decision process -Most changes to estimagic are additions of new functionality or strict improvements of +Most changes to optimagic are additions of new functionality or strict improvements of existing functionality. Such changes can be discussed in GitHub issues and discussions -and implemented in pull requests. They do not require an estimagic Enhancement Proposal. +and implemented in pull requests. They do not require an optimagic Enhancement Proposal. -Before starting to work on estimagic, contributors should read +Before starting to work on optimagic, contributors should read [how to contribute](how-to) and the [styleguide](styleguide). They can also reach out to existing contributors if any help is needed or anything remains unclear. We are all happy to help onboarding new contributors in any way necessary. For example, we have given introductions to git and GitHub in the past to help people make a contribution to -estimagic. +optimagic. Pull requests should be opened as soon as work is started. They should contain a good description of the planned work such that any interested party can participate in the discussion around the changes. If planned changes turn out to be controversial, their -design should be discussed in an estimagic Enhancement Proposal before the actual work +design should be discussed in an optimagic Enhancement Proposal before the actual work starts. When the work is finished, the author of a pull request can request a review. In most cases, previous discussions will show who is a suitable reviewer. If in doubt, tag [janosg](https://github.com/janosg). Pull requests can be merged if there is at least @@ -78,29 +78,29 @@ for an excellent discussion of the burden that review comments place on maintain which might not always be obvious). Video calls can help if a discussion gets stuck. The code of conduct applies to all interactions related to code reviews. -### estimagic Enhancement Proposals (EEPs) / Controversial decision process +### optimagic Enhancement Proposals (EPs) / Controversial decision process -Large changes to estimagic can be proposed in estimagic Enhancement Proposals, short -EEPs. They serve the purpose of summarising discussions that may happen in chats, -issues, pull requests, in person, or by any other means. Simple extensions (like adding -new optimizers) do not need to be discussed with such a formal process. +Large changes to optimagic can be proposed in optimagic Enhancement Proposals, short +EPs. They serve the purpose of summarising discussions that may happen in chats, issues, +pull requests, in person, or by any other means. Simple extensions (like adding new +optimizers) do not need to be discussed with such a formal process. -EEPs are written as markdown documents that become part of the documentation. Opening an -EEP means opening a pull request that adds the markdown document to the documentation. -It is not necessary to already have a working implementations for the planned changes, -even though it might be a good idea to have rough prototypes for solutions to the most +EPs are written as markdown documents that become part of the documentation. Opening an +EP means opening a pull request that adds the markdown document to the documentation. It +is not necessary to already have a working implementations for the planned changes, even +though it might be a good idea to have rough prototypes for solutions to the most challenging parts. -If the author of an EEP feels that it is ready to be accepted they need to make a post -in the relevant [Zulip topic](https://ose.zulipchat.com) and a comment on the PR that +If the author of an EP feels that it is ready to be accepted they need to make a post in +the relevant [Zulip topic](https://ose.zulipchat.com) and a comment on the PR that contains the following information: -1. Summary of all contentious aspects of the EEP and how they have been resolved -1. Every interested party has seven days to comment on the PR proposing the EEP, either +1. Summary of all contentious aspects of the EP and how they have been resolved +1. Every interested party has seven days to comment on the PR proposing the EP, either with approval or objections. While only objections are relevant for the decision making process, approvals are a good way to signal interest in the planned change and recognize the work of the authors. -1. If there are no unresolved objections after seven days, the EEP will automatically be +1. If there are no unresolved objections after seven days, the EP will automatically be accepted and can be merged. Note that the pull requests that actually implement the proposed enhancements still @@ -108,12 +108,12 @@ require a standard review cycle. ### Steering Council -The estimagic Steering Council consists of five people who take responsibility for the -future development of estimagic and the estimagic community. Being a member of the +The optimagic Steering Council consists of five people who take responsibility for the +future development of optimagic and the optimagic community. Being a member of the steering council comes with no special rights. The main roles of the steering council are: -- Facilitate the growth of estimagic and the estimagic community by organizing community +- Facilitate the growth of optimagic and the optimagic community by organizing community events, identifying funding opportunities and improving the experience of all community members. - Develop a roadmap, break down large changes into smaller projects and find @@ -123,7 +123,7 @@ are: - Step in as moderators when discussions get heated, help to achieve consensus on controversial topics and enforce the code of conduct. -The Steering Council is elected by the estimagic community during a community meeting. +The Steering Council is elected by the optimagic community during a community meeting. Candidates need to be active community members and can be nominated by other community members or themselves until the start of the election. Nominated candidates need to @@ -135,7 +135,7 @@ Candidates can vote for themselves. Ties are resolved by a second round of votin each participant casts as many votes as there are positions left. Remaining ties are resolved by randomization. -Current memebers of the estimagic Steering Council are: +Current memebers of the optimagic Steering Council are: - [Janoś Gabler](https://github.com/janosg) - [Annica Gehlen](https://github.com/amageh) @@ -148,7 +148,7 @@ Current memebers of the estimagic Steering Council are: Community meetings can be held to elect a steering council, make changes to the governance model or code of conduct, or to make other decisions that affect the community as a whole. Moreover, they serve to keep the community updated about the -development of estimagic and get feedback. +development of optimagic and get feedback. Community meetings need to be announced via our public channels (e.g. the [zulip workspace](https://ose.zulipchat.com) or GitHub discussions) with sufficient time diff --git a/docs/source/development/eep-01-pytrees.md b/docs/source/development/ep-01-pytrees.md similarity index 99% rename from docs/source/development/eep-01-pytrees.md rename to docs/source/development/ep-01-pytrees.md index c912990ec..c04dd0fb3 100644 --- a/docs/source/development/eep-01-pytrees.md +++ b/docs/source/development/ep-01-pytrees.md @@ -1,6 +1,6 @@ -(eeppytrees)= +(eppytrees)= -# EEP-01: Pytrees +# EP-01: Pytrees ```{eval-rst} +------------+------------------------------------------------------------------+ @@ -206,10 +206,12 @@ The following entries of the output of minimize are affected by the change: - `"solution_criterion"`: The output dictionary of `crit` evaluated solution params - `solution_derivative`: Maybe we should not even have this entry. -:::\{danger} We need to discuss if and in which form we want to have a solution +```{note} +We need to discuss if and in which form we want to have a solution derivative entry. In it's current form it is useless if constraints are used. This gets worse when we allow for pytrees and translating this into a meaningful shape might be -very difficult. ::: +very difficult. +``` ### Add bounds diff --git a/docs/source/development/eep-02-typing.md b/docs/source/development/ep-02-typing.md similarity index 94% rename from docs/source/development/eep-02-typing.md rename to docs/source/development/ep-02-typing.md index 7e15608b1..b12596c7d 100644 --- a/docs/source/development/eep-02-typing.md +++ b/docs/source/development/ep-02-typing.md @@ -1,6 +1,6 @@ (eeptyping)= -# EEP-02: Static typing +# EP-02: Static typing ```{eval-rst} +------------+------------------------------------------------------------------+ @@ -18,7 +18,7 @@ ## Abstract -This enhancement proposal explains the adoption of static typing in estimagic. The goal +This enhancement proposal explains the adoption of static typing in optimagic. The goal is to reap a number of benefits: - Users will benefit from IDE tools such as easier discoverability of options and @@ -27,7 +27,7 @@ is to reap a number of benefits: - The codebase will become more robust due to static type checking and use of stricter types in internal functions. -Achieving these goals requires more than adding type hints. estimagic is currently +Achieving these goals requires more than adding type hints. optimagic is currently mostly [stringly typed](https://wiki.c2.com/?StringlyTyped). For example, optimization algorithms are selected via strings. Another example are [constraints](https://estimagic.readthedocs.io/en/latest/how_to_guides/optimization/how_to_specify_constraints.html), @@ -91,7 +91,7 @@ updated if this proposal is accepted. consider using an immutable type with copy constructors for modified instances. Example: instances of `Algorithm` are immutable but using `Algorithm.with_option` users can create modified copies. -- The main entry point to estimagic are functions, objects are mostly used for +- The main entry point to optimagic are functions, objects are mostly used for configuration and return types. This takes the best of both worlds: we get the safety and static analysis that (in Python) can only be achieved using objects but the beginner friendliness and freedom provided by functions. Example: Having a `minimize` @@ -144,7 +144,7 @@ def least_squares_sphere(params: np.ndarray) -> dict[str, Any]: ``` Here the `"root_contributions"` are the least-squares residuals. The dictionary key -tells estimagic how to interpret the output. This is needed because estimagic has no way +tells optimagic how to interpret the output. This is needed because optimagic has no way of finding out whether a criterion function that returns a vector (or pytree) is a least-squares function or a likelihood function. Of course all specialized problems can still be solved with scalar optimizers. @@ -159,7 +159,7 @@ def logging_sphere(x: np.ndarray) -> dict[str, Any]: ``` Here `"value"` is the actual scalar criterion value. All other fields are unknown to -estimagic and therefore just logged in the database if logging is active. +optimagic and therefore just logged in the database if logging is active. The specification of likelihood functions is very analogous to least-squares functions and therefore omitted here. @@ -175,7 +175,7 @@ and therefore omitted here. **Problems** -- Most users of estimagic find it hard to write criterion functions that return the +- Most users of optimagic find it hard to write criterion functions that return the correct dictionary. Therefore, they don't use the logging feature and we often get questions about specifying least-squares problems correctly. - Internally we can make almost no assumptions about the output of a criterion function, @@ -198,10 +198,10 @@ will now be solved separately. The simplest way of specifying a least-squares function becomes: ```python -import estimagic as em +import optimagic as om -@em.mark.least_squares +@om.mark.least_squares def ls_sphere(params): return params ``` @@ -209,7 +209,7 @@ def ls_sphere(params): Analogously, the simplest way of specifying a likelihood function becomes: ```python -@em.mark.likelihood +@om.mark.likelihood def ll_sphere(params): return params**2 ``` @@ -218,7 +218,7 @@ The simplest way of specifying a scalar function stays unchanged, but optionally `mark.scalar` decorator can be used: ```python -@em.mark.scalar # this is optional +@om.mark.scalar # this is optional def sphere(params): return params @ params ``` @@ -244,10 +244,10 @@ An example of a least-squares function that also returns additional info for the file would look like this: ```python -from estimagic import FunctionValue +from optimagic import FunctionValue -@em.mark.least_squares +@om.mark.least_squares def least_squares_sphere(params): out = FunctionValue( value=params, info={"p_mean": params.mean, "p_std": params.std()} @@ -291,7 +291,7 @@ class LikelihoodFunctionValue(FunctionValue): A least-squares function could then be specified without decorator as follows: ```python -from estimagic import LeastSquaresFunctionValue +from optimagic import LeastSquaresFunctionValue def least_squares_sphere(params: np.ndarray) -> LeastSquaresFunctionValue: @@ -318,7 +318,7 @@ Currently we have four arguments of `maximize`, `minimize`, and related function let the user specify bounds: ```python -em.minimize( +om.minimize( # ... lower_bounds=params - 1, upper_bounds=params + 1, @@ -341,13 +341,13 @@ Each of them is a pytree that mirrors the structure of `params` or `None` We bundle the bounds together in a `Bounds` type: ```python -bounds = em.Bounds( +bounds = om.Bounds( lower=params - 1, upper=params + 1, soft_lower=params - 2, soft_lower=params + 2, ) -em.minimize( +om.minimize( # ... bounds=bounds, # ... @@ -417,11 +417,11 @@ Examples of the new syntax are: ```python constraints = [ - em.constraints.FixedConstraint(selector=lambda x: x[0, 5]), - em.constraints.IncreasingConstraint(selector=lambda x: x[1:4]), + om.constraints.FixedConstraint(selector=lambda x: x[0, 5]), + om.constraints.IncreasingConstraint(selector=lambda x: x[1:4]), ] -res = em.minimize( +res = om.minimize( fun=criterion, params=np.array([2.5, 1, 1, 1, 1, -2.5]), algorithm="scipy_lbfgsb", @@ -436,7 +436,7 @@ During the deprecation phase, `Constraint` will also have `loc` and `query` attr The current `cov` and `sdcorr` constraints apply to flattened covariance matrices, as well as standard deviations and flattened correlation matrices. This comes from a time -where estimagic only supported an essentially flat parameter format (`DataFrames` with +where optimagic only supported an essentially flat parameter format (`DataFrames` with `"value"` column). We can exploit the current deprecation cycle to rename the current `cov` and `sdcorr` constraints to `FlatCovConstraint` and `FlatSdcorrConstraint`. This prepares the introduction of a more natural `CovConstraint` and `SdcorrConstraint` @@ -455,7 +455,7 @@ fuzzy matching of strings. **Things we want to keep** -- Estimagic can be used just like scipy +- optimagic can be used just like scipy **Problems** @@ -485,20 +485,20 @@ algorithm interface. In a simple example, algorithm selection via algorithm classes looks as follows: ```python -em.minimize( +om.minimize( lambda x: x @ x, params=np.arange(5), - algorithm=em.algorithms.scipy_neldermead, + algorithm=om.algorithms.scipy_neldermead, ) ``` Passing a configured instance of an algorithm looks as follows: ```python -em.minimize( +om.minimize( lambda x: x @ x, params=np.arange(5), - algorithm=em.algorithms.scipy_neldermead(adaptive=True), + algorithm=om.algorithms.scipy_neldermead(adaptive=True), ) ``` @@ -538,7 +538,7 @@ sure all generated code is up-to-date in every commit. It can also be executed i [pytest hook](https://docs.pytest.org/en/7.1.x/how-to/writing_hook_functions.html) (before the collection phase) to make sure everything is up-to-date when tests run. -Users of estimagic (and their IDEs) will never know that this code was not typed in by a +Users of optimagic (and their IDEs) will never know that this code was not typed in by a human, which guarantees that autocomplete and static analysis will work without problems. @@ -566,7 +566,7 @@ fictitious list: We want the following behavior: -The user types `em.algorithms.` and autocomplete shows +The user types `om.algorithms.` and autocomplete shows | | | --------------- | @@ -580,7 +580,7 @@ The user types `em.algorithms.` and autocomplete shows A user can either select one of the algorithms (lowercase) directly or filter further by selecting a category (CamelCase). This would look as follows: -The user types `em.algorithms.GradientFree.` and autocomplete shows +The user types `om.algorithms.GradientFree.` and autocomplete shows | | | ------------ | @@ -619,7 +619,7 @@ class GradientBasedAlgorithms: slsqp: Type[SLSQP] = SLSQP @property - def All(self) -> List[em.typing.Algorithm]: + def All(self) -> List[om.typing.Algorithm]: return [LBFGS, SLSQP] @@ -629,7 +629,7 @@ class GradientFreeAlgorithms: bobyqa: Type[Bobyqa] = Bobyqa @property - def All(self) -> List[em.typing.Algorithm]: + def All(self) -> List[om.typing.Algorithm]: return [NelderMead, Bobyqa] @@ -649,15 +649,15 @@ class Algorithms: return GradientFreeAlgorithms() @property - def All(self) -> List[em.typing.Algorithm]: + def All(self) -> List[om.typing.Algorithm]: return [LBFGS, SLSQP, NelderMead, Bobyqa] ``` If implemented by hand, this would require an enormous amount of typing and introduce a -very high maintenance burden. Whenever a new algorithm was added to estimagic, we would +very high maintenance burden. Whenever a new algorithm was added to optimagic, we would have to register it in multiple nested dataclasses. -The code generation approach detailed in the previous section can solve this problem. +The code generation approach detailed in the previous section can solve this problom. While it might have been overkill to achieve basic autocomplete, it is justified to achieve this filtering behavior. How the relevant information for filtering (e.g. whether an algorithm is gradient based) is collected, will be discussed in @@ -673,7 +673,7 @@ later as we see fit. ### Algorithm options -Algorithm options refer to options that are not handled by estimagic but directly by the +Algorithm options refer to options that are not handled by optimagic but directly by the algorithms. Examples are convergence criteria, stopping criteria and advanced configuration of algorithms. Some of them are supported by many algorithms (e.g. stopping after a maximum number of function evaluations is reached), some are supported @@ -687,7 +687,7 @@ options (e.g. there is simply no trustregion radius in a genetic algorithm), we far in harmonizing `algo_options` across optimizers: 1. Options that are the same in spirit (e.g. stop after a specific number of iterations) - get the same name across all optimizers wrapped in estimagic. Most of them even get + get the same name across all optimizers wrapped in optimagic. Most of them even get the same default value. 1. Options that have non-descriptive (and often heavily abbreviated) names in their original implementation get more readable names, even if they appear only in a single @@ -746,7 +746,7 @@ Python variable names. works especially well to distinguish stopping options and convergence criteria from other tuning parameters of the algorithms. However, it would be enough to keep them as a naming convention if we find it hard to support the `.` notation. -- All options are documented in the estimagic documentation, i.e. we do not link to the +- All options are documented in the optimagic documentation, i.e. we do not link to the docs of original packages. Now they will also be discoverable in an IDE. **Problems** @@ -773,7 +773,7 @@ selected algorithm. When creating the instance, they have autocompletion for all supported by the selected algorithm. `Algorithm`s are immutable. ```python -algo = em.algorithms.scipy_lbfgsb( +algo = om.algorithms.scipy_lbfgsb( stopping_max_iterations=1000, stopping_max_criterion_evaluations=1500, convergence_relative_criterion_tolerance=1e-6, @@ -792,7 +792,7 @@ instance by using the `with_option` method. ```python # using copy constructors to create variants -base_algo = em.algorithms.fides(stopping_max_iterations=1000) +base_algo = om.algorithms.fides(stopping_max_iterations=1000) algorithms = [base_algo.with_option(initial_radius=r) for r in [0.1, 0.2, 0.5]] for algo in algorithms: @@ -814,7 +814,7 @@ We can provide additional methods `with_stopping` and `with_convergence` that ca ```python # using copy constructors for better namespaces algo = ( - em.algorithms.scipy_lbfgsb() + om.algorithms.scipy_lbfgsb() .with_stopping( max_iterations=1000, max_criterion_evaluations=1500, @@ -846,7 +846,7 @@ guarantees that the specified options are compatible with the selected algorithm The previous example continues to work. Examples of the new possibilities are: ```python -options = em.AlgorithmOptions( +options = om.AlgorithmOptions( stopping_max_iterations=1000, stopping_max_criterion_evaluations=1500, convergence_relative_criterion_tolerance=1e-6, @@ -858,7 +858,7 @@ options = em.AlgorithmOptions( minimize( # ... - algorithm=em.algorithms.scipy_lbfgsb, + algorithm=om.algorithms.scipy_lbfgsb, algo_options=options, # ... ) @@ -874,7 +874,7 @@ of dynamic signature creation. For more details, see the discussions about the ### Custom derivatives -Providing custom derivatives to estimagic is slightly complicated because we support +Providing custom derivatives to optimagic is slightly complicated because we support scalar, likelihood and least-squares problems in the same interface. Moreover, we allow to either provide a `derivative` function or a joint `criterion_and_derivative` function that allow users to exploit synergies between evaluating the criterion and the @@ -910,10 +910,10 @@ returns a tuple of the criterion value and the derivative instead. **Problems** - A dict with required keys is brittle -- Autodiff needs to be handled completely outside of estimagic +- Autodiff needs to be handled completely outside of optimagic - The names `criterion`, `derivative` and `criterion_and_derivative` are not aligned with scipy and very long. -- Providing derivatives to estimagic is perceived as complicated and confusing. +- Providing derivatives to optimagic is perceived as complicated and confusing. #### Proposal @@ -924,7 +924,7 @@ The following section uses the new names `fun`, `jac` and `fun_and_jac` instead To improve the integration with modern automatic differentiation frameworks, `jac` or `fun_and_jac` can also be a string `"jax"` or a more autocomplete friendly enum -`em.autodiff_backend.JAX`. This can be used to signal that the objective function is jax +`om.autodiff_backend.JAX`. This can be used to signal that the objective function is jax compatible and jax should be used to calculate its derivatives. In the long run we can add PyTorch support and more. Since this is mostly about a signal of compatibility, it would be enough to set one of the two arguments to `"jax"`, the other one can be left at @@ -932,44 +932,44 @@ would be enough to set one of the two arguments to `"jax"`, the other one can be ```python import jax.numpy as jnp -import estimagic as em +import optimagic as om def jax_sphere(x): return jnp.dot(x, x) -res = em.minimize( +res = om.minimize( fun=jax_sphere, params=jnp.arange(5), - algorithm=em.algorithms.scipy_lbfgsb, + algorithm=om.algorithms.scipy_lbfgsb, jac="jax", ) ``` If a custom callable is provided as `jac` or `fun_and_jac`, it needs to be decorated -with `@em.mark.least_squares` or `em.mark.likelihood` if it is not the gradient of a -scalar function values. Using the `em.mark.scalar` decorator is optional. For a simple +with `@om.mark.least_squares` or `om.mark.likelihood` if it is not the gradient of a +scalar function values. Using the `om.mark.scalar` decorator is optional. For a simple least-squares problem this looks as follows: ```python import numpy as np -@em.mark.least_squares +@om.mark.least_squares def ls_sphere(params): return params -@em.mark.least_squares +@om.mark.least_squares def ls_sphere_jac(params): return np.eye(len(params)) -res = em.minimize( +res = om.minimize( fun=ls_sphere, params=np.arange(5), - algorithm=em.algorithms.scipy_ls_lm, + algorithm=om.algorithms.scipy_ls_lm, jac=ls_sphere_jac, ) ``` @@ -977,26 +977,26 @@ res = em.minimize( Note that here we have a least-squares problem and solve it with a least-squares optimizer. However, any least-squares problem can also be solved with scalar optimizers. -While estimagic could convert the least-squares derivative to the gradient of the scalar +While optimagic could convert the least-squares derivative to the gradient of the scalar function value, this is generally inefficient. Therefore, a user can provide multiple callables of the objective function in such a case, so we can pick the best one for the chosen optimizer. ```python -@em.mark.scalar +@om.mark.scalar def sphere_grad(params): return 2 * params -res = em.minimize( +res = om.minimize( fun=ls_sphere, params=np.arange(5), - algorithm=em.algorithms.scipy_lbfgsb, + algorithm=om.algorithms.scipy_lbfgsb, jac=[ls_sphere_jac, sphere_grad], ) ``` -Since a scalar optimizer was chosen to solve the least-squares problem, estimagic would +Since a scalar optimizer was chosen to solve the least-squares problem, optimagic would pick the `sphere_grad` as derivative. If a leas-squares solver was chosen, we would use `ls_sphere_jac`. @@ -1012,7 +1012,7 @@ configure the behavior with an option dictionary. Examples are: - `error_handling` (`Literal["raise", "continue"]`) and `error_penalty` (dict) - `multistart` (`bool`) and `multistart_options` -Moreover we have option dictionaries whenever we have nested invocations of estimagic +Moreover we have option dictionaries whenever we have nested invocations of optimagic functions. Examples are: - `numdiff_options` in `minimize` and `maximize` @@ -1047,7 +1047,7 @@ After the changes, `logging` can be any of the following: - `False` (or anything Falsy): No logging is used. - A `str` or `pathlib.Path`: Logging is used at default options. -- An instance of `estimagic.Logger`. There will be multiple subclasses, e.g. +- An instance of `optimagic.Logger`. There will be multiple subclasses, e.g. `SqliteLogger` which allow us to switch out the logging backend. Each subclass might have different optional arguments. @@ -1057,7 +1057,7 @@ supported during a deprecation cycle. ##### Scaling, error handling and multistart In contrast to logging, scaling, error handling and multistart are deeply baked into -estimagic's minimize function. Therefore, it does not make sense to create abstractions +optimagic's minimize function. Therefore, it does not make sense to create abstractions for these features that would make them replaceable components that can be switched out for other implementations by advanced users. Most of these features are already perceived as advanced and allow for a lot of configuration. @@ -1083,8 +1083,8 @@ dataclasses as alternative. #### Current situation Currently, algorithms are defined as `minimize` functions that are decorated with -`em.mark_minimizer`. The `minimize` function returns a dictionary with a few mandatory -and several optional keys. Algorithms can provide information to estimagic in two ways: +`om.mark_minimizer`. The `minimize` function returns a dictionary with a few mandatory +and several optional keys. Algorithms can provide information to optimagic in two ways: 1. The signature of the minimize function signals whether the algorithm needs derivatives and whether it supports bounds and nonlinear constraints. Moreover, it @@ -1176,7 +1176,7 @@ class AlgoInfo(NamedTuple): - Since we read a lot of information from function signatures (as opposed to registering options somewhere), there is no duplicated information. If we change the approach to collecting information, we still need to ensure there is no duplication or possibility - to provide wrong information to estimagic. + to provide wrong information to optimagic. **Problems** @@ -1193,10 +1193,10 @@ class AlgoInfo(NamedTuple): We first show the proposed new algorithm interface and discuss the changes later. ```python -@em.mark.minimizer( +@om.mark.minimizer( name="scipy_neldermead", needs_scaling=False, - problem_type=em.ProblemType.Scalar, + problem_type=om.ProblemType.Scalar, is_available=IS_SCIPY_AVAILABLE, is_global=False, disable_history=False, @@ -1232,9 +1232,9 @@ class ScipyNelderMead(Algorithm): } res = minimize( - fun=problem.scalar.fun, + fun=problom.scalar.fun, x0=x, - bounds=_get_scipy_bounds(problem.bounds), + bounds=_get_scipy_bounds(problom.bounds), method="Nelder-Mead", options=options, ) @@ -1258,7 +1258,7 @@ class ScipyNelderMead(Algorithm): 1. The minimize function returns an `InternalOptimizeResult` instead of a dictionary. The copy constructors (`with_option`, `with_convergence`, and `with_stopping`) are -inherited from `estimagic.Algorithm`. This means, that they will have `**kwargs` as +inherited from `optimagic.Algorithm`. This means, that they will have `**kwargs` as signature and thus do not support autocomplete. However, they can check that all specified options are actually in the `__dataclass_fields__` and thus provide feedback before an optimization is run. @@ -1284,7 +1284,7 @@ the objective function and its derivatives. from numpy.typing import NDArray from dataclasses import dataclass from typing import Callable, Tuple -import estimagic as em +import optimagic as om @dataclass(frozen=True) @@ -1313,9 +1313,9 @@ class InternalProblem: scalar: ScalarProblemFunctions least_squares: LeastSquaresProblemFunctions likelihood: LikelihoodProblemFunctions - bounds: em.Bounds | None - linear_constraints: list[em.LinearConstraint] | None - nonlinear_constraints: list[em.NonlinearConstraint] | None + bounds: om.Bounds | None + linear_constraints: list[om.LinearConstraint] | None + nonlinear_constraints: list[om.NonlinearConstraint] | None ``` The `InternalOptimizeResult` formalizes the current dictionary solution: @@ -1347,9 +1347,9 @@ following advantages and disadvantages: - Easier for beginners as no subtle concepts (such as the difference between instance and class variables) are involved - Very easy way to provide default values for some of the collected variables -- Every user of estimagic is familiar with `mark` decorators +- Every user of optimagic is familiar with `mark` decorators - Autocomplete while filling out the arguments of the mark decorator -- Very clear visual separation of algorithm options and attributes estimagic needs to +- Very clear visual separation of algorithm options and attributes optimagic needs to know about. **Advantages of class variable approach** @@ -1363,7 +1363,7 @@ welcome. ## Numerical differentiation -#### Current situation +### Current situation The following proposal applies to the functions `first_derivative` and `second_derivative`. Both functions have an interface that has grown over time and both @@ -1388,7 +1388,7 @@ but has not produced convincing results in benchmarks. **Things we want to keep** - `params` and function values can be pytrees -- support for estimagic `criterion` functions (now functions that return +- support for optimagic `criterion` functions (now functions that return `FunctionValue`) - Many optional arguments to influence the details of the numerical differentiation - Rich output format that helps to get insights on the precision of the numerical @@ -1407,9 +1407,9 @@ but has not produced convincing results in benchmarks. - Many users expect the output of a function for numerical differentiation to be just the gradient, jacobian or hessian, not a more complex result object. -#### Proposal +### Proposal -##### Separation of calculations and pytree handling +#### Separation of calculations and pytree handling As in numerical optimization, we should implement the core functionality for first and second derivative for functions that map from 1-Dimensional numpy arrays to @@ -1417,7 +1417,7 @@ second derivative for functions that map from 1-Dimensional numpy arrays to (e.g. functions that return a `FunctionValue`) should be done outside of the core functions. -##### Deprecate Richardson Extrapolation (and prepare alternatives) +#### Deprecate Richardson Extrapolation (and prepare alternatives) The goal of implementing Richardson Extrapolation was to get more precise estimates of numerical derivatives when it is hard to find an optimal step size. Example use-cases we @@ -1457,14 +1457,14 @@ Richardson extrapolation was only completed for first derivatives, even though i already prepared in the interface for second derivatives. ``` -##### Better `NumdiffResult` object +#### Better `NumdiffResult` object The result dictionary will be replaced by a `NumdiffResult` object. All arguments that govern which results are stored will be removed. If some of the formerly optional results require extra computation that we wanted to avoid by making them optional, they can be properties or methods of the result object. -##### Jax inspired high-level interfaces +#### Jax inspired high-level interfaces Since our `first_derivative` and `second_derivative` functions need to fulfill very specific requirements for use during optimization, they need to return a complex result @@ -1490,7 +1490,7 @@ All of these will be very simple wrappers around `first_derivative` and #### Current situation -As other functions in estimagic, `get_benchmark_problems` follows a design where +As other functions in optimagic, `get_benchmark_problems` follows a design where behavior can be switched on by a bool and configured by an options dictionary. The following arguments are related to this: @@ -1713,12 +1713,12 @@ the realease of `0.5.0`. - Returning a `dict` in the objective function io deprecated. Return `FunctionValue` instead. In addition, likelihood and least-squares problems need to be decorated with - `em.mark.likelihood` and `em.mark_least_squares`. + `om.mark.likelihood` and `om.mark_least_squares`. - The arguments `lower_bounds`, `upper_bounds`, `soft_lower_bounds` and `soft_upper_bounds` are deprecated. Use `bounds` instead. `bounds` can be - `estimagic.Bounds` or `scipy.optimize.Bounds` objects. + `optimagic.Bounds` or `scipy.optimize.Bounds` objects. - Specifying constraints with dictionaries is deprecated. Use the corresponding subclass - of `em.constraints.Constraint` instead. In addition, all selection methods except for + of `om.constraints.Constraint` instead. In addition, all selection methods except for `selector` are deprecated. - The `covariance` constraint is renamed to `FlatCovConstraint` and the `sdcorr` constraint is renamed to `FlatSdcorrConstraint` to prepare the introduction of more diff --git a/docs/source/development/eep-03-alignment.md b/docs/source/development/ep-03-alignment.md similarity index 94% rename from docs/source/development/eep-03-alignment.md rename to docs/source/development/ep-03-alignment.md index fe699e4fb..7c8d03ed6 100644 --- a/docs/source/development/eep-03-alignment.md +++ b/docs/source/development/ep-03-alignment.md @@ -1,6 +1,6 @@ (eepalignment)= -# EEP-03: Alignment with SciPy +# EP-03: Alignment with SciPy ```{eval-rst} +------------+------------------------------------------------------------------+ @@ -18,22 +18,22 @@ ## Abstract -This enhancement proposal explains how we will better align estimagic with +This enhancement proposal explains how we will better align optimagic with `scipy.minimize`. Scipy is the most widely used optimizer library in Python and most of our new users are switching over from SciPy. The goal is therefore simple: Make it as easy as possible for SciPy users to use -estimagic. In most cases this means that the only thing that has to be changed is the +optimagic. In most cases this means that the only thing that has to be changed is the import statement for the `minimize` function: ```python # from scipy.optimize import minimize -from estimagic import minimize +from optimagic import minimize ``` ## Design goals -- If we can make code written for SciPy run with estimagic, we should do so +- If we can make code written for SciPy run with optimagic, we should do so - If we cannot make it run, the user should get a helpful error message that explains how the code needs to be adjusted. @@ -75,7 +75,7 @@ Instead we can provide aliases for those. ## Additional aliases -To make it even easier for SciPy users to switch to estimagic, we can provide additional +To make it even easier for SciPy users to switch to optimagic, we can provide additional aliases in `minimize` and `maximize` that let them used their SciPy code without changes or help to adjust it by showing good error messages. The following arguments are relevant: @@ -105,7 +105,7 @@ relevant: Currently we try to align default values for convergence criteria and other algorithm options across algorithms and even across optimizer packages. This means that sometimes -algorithms that are used via estimagic produce different results than the same algorithm +algorithms that are used via optimagic produce different results than the same algorithm used via SciPy or other packages. Moreover, it is possible that we deviate from algorithm options that the original diff --git a/docs/source/development/how-to.md b/docs/source/development/how_to_contribute.md similarity index 82% rename from docs/source/development/how-to.md rename to docs/source/development/how_to_contribute.md index 9bf2d3866..a34a6ec24 100644 --- a/docs/source/development/how-to.md +++ b/docs/source/development/how_to_contribute.md @@ -1,17 +1,19 @@ +(how-to-contribute)= + # How to contribute ## 1. Intro We welcome and greatly appreciate contributions of all forms and sizes! Whether it's -updating the online documentation, adding small extensions, or implementing new -features, every effort is valued. +updating the documentation, adding small extensions, or implementing new features, every +effort is valued. For substantial changes, please contact us in advance. This allows us to discuss your ideas and guide the development process from the beginning. You can start a conversation by posting an issue on GitHub or by emailing [janosg](https://github.com/janosg). To get familiar with the codebase, we recommend checking out our -[issue tracker](https://github.com/OpenSourceEconomics/estimagic/issues) for some +[issue tracker](https://github.com/OpenSourceEconomics/optimagic/issues) for some immediate and clearly defined tasks. ## 2. Before you start @@ -20,7 +22,7 @@ Once you've decided to contribute, please review the {ref}`style_guide` (see the page) to ensure your work aligns with the project's coding standards. We manage new features through Pull Requests (PRs). Contributors work on their local -copy of estimagic, modifying and extending the codebase there, before opening a PR to +copy of optimagic, modifying and extending the codebase there, before opening a PR to propose merging their changes into the main branch. Regular contributors gain push access to unprotected branches, which simplifies the @@ -28,26 +30,26 @@ contribution process (see Notes below). ## 3. Step-by-step guide -1. Fork the [estimagic repository](https://github.com/OpenSourceEconomics/estimagic/). +1. Fork the [optimagic repository](https://github.com/OpenSourceEconomics/optimagic/). This action creates a copy of the repository with write access for you. ```{note} -For regular contributors: **Clone** the [repository](https://github.com/OpenSourceEconomics/estimagic/) to your local machine and create a new branch for implementing your changes. You can push your branch directly to the remote estimagic repository and open a PR from there. +For regular contributors: **Clone** the [repository](https://github.com/OpenSourceEconomics/optimagic/) to your local machine and create a new branch for implementing your changes. You can push your branch directly to the remote optimagic repository and open a PR from there. ``` 2. Clone your forked repository to your disk. This is where you'll make all your changes. 1. Open your terminal and execute the following commands from the root directory of your - local estimagic repository: + local optimagic repository: ```console $ conda env create -f environment.yml - $ conda activate estimagic + $ conda activate optimagic $ pre-commit install ``` - These commands install estimagic in editable mode and activate pre-commit hooks for + These commands install optimagic in editable mode and activate pre-commit hooks for linting and style formatting. 1. Implement your fix or feature. Use git to add, commit, and push your changes to the @@ -59,7 +61,7 @@ For regular contributors: **Clone** the [repository](https://github.com/OpenSour ensure compatibility with the existing codebase and employ [pre-commit hooks](https://effective-programming-practices.vercel.app/git/pre_commits/objectives_materials.html) to maintain quality and adherence to our style guidelines. Opening a PR (see - paragraph 7 below) triggers estimagic's + paragraph 7 below) triggers optimagic's [Continuous Integration (CI)](https://docs.github.com/en/actions/automating-builds-and-tests/about-continuous-integration) workflow, which runs the full `pytest` suite, pre-commit hooks, and other checks on a remote server. @@ -80,12 +82,12 @@ Skip the next paragraph if you haven't worked on the documentation. ``` 6. Assuming you have updated the documentation, verify that it builds correctly. From - the root directory of your local estimagic repo, navigate to the docs folder and set - up the estimagic-docs environment: + the root directory of your local optimagic repo, navigate to the docs folder and set + up the optimagic-docs environment: ```console $ conda env create -f rtd_environment.yml - $ conda activate estimagic-docs + $ conda activate optimagic-docs ``` Inside the `docs` folder, run: @@ -104,11 +106,11 @@ Skip the next paragraph if you haven't worked on the documentation. your fork. A banner on your fork's GitHub repository will prompt you to open a PR. ```{note} - Regular contributors with push access can directly push their local branch to the remote estimagic repository and initiate a PR from there. + Regular contributors with push access can directly push their local branch to the remote optimagic repository and initiate a PR from there. ``` - Follow the steps outlined in the estimagic - [PR template](https://github.com/OpenSourceEconomics/estimagic/blob/main/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md) + Follow the steps outlined in the optimagic + [PR template](https://github.com/OpenSourceEconomics/optimagic/blob/main/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md) to describe your contribution, the problem it addresses, and your proposed solution. Opening a PR initiates a complete CI run, including the `pytest` suite, linters, code @@ -120,4 +122,4 @@ Skip the next paragraph if you haven't worked on the documentation. any feedback or suggestions by making the necessary changes and committing them. 1. After your PR is approved, one of the main contributors will merge it into - estimagic's main branch. + optimagic's main branch. diff --git a/docs/source/development/index.md b/docs/source/development/index.md index ff8313761..4a3be1987 100644 --- a/docs/source/development/index.md +++ b/docs/source/development/index.md @@ -5,9 +5,9 @@ maxdepth: 1 --- code_of_conduct -how-to +how_to_contribute styleguide -eeps +enhancement_proposals credits changes ``` diff --git a/docs/source/development/styleguide.md b/docs/source/development/styleguide.md index a7054487e..e8cfc8dfb 100644 --- a/docs/source/development/styleguide.md +++ b/docs/source/development/styleguide.md @@ -9,12 +9,6 @@ Your contribution should fulfill the criteria provided below. - Functions have no side effect. : If you modify a mutable argument, make a copy at the beginning of the function. -- Deep modules. : This is a term coined by - [John Ousterhout](https://www.youtube.com/watch?v=bmSAYlu0NcY). A deep module is a - module that has just one public function. This function calls the private functions - (i.e. functions that start with an underscore) defined further down in the module and - reads almost like a table of contents to the whole module. - - Use good names for functions and variables : *"You should name a variable using the same care with which you name a first-born child."*, Robert C. Martin, Clean Code: A Handbook of Agile Software Craftsmanship. @@ -34,6 +28,50 @@ Your contribution should fulfill the criteria provided below. and `minimize` can have very short names. At a lower level of abstraction you typically need more words to describe what a function does. +- User facing functions should be generous regarding their input type. Example: the + `algorithm` argument can be a string, `Algorithm` class or `Algorithm` instance. The + `algo_options` can be an `AlgorithmOptions` object or a dictionary of keyword + arguments. + +- User facing functions should be strict about their output types. A strict output type + does not just mean that the output type is known (and not a generous Union), but that + it is a proper type that enables static analysis for available attributes. Example: + whenever possible, public functions should not return dicts but proper result types + (e.g. `OptimizeResult`, `NumdiffResult`, ...) + +- Internal functions should be strict about input and output types; Typically, a public + function will check all arguments, convert them to a proper type and then call an + internal function. Example: `minimize` will convert any valid value for `algorithm` + into an `Algorithm` instance and then call an internal function with that type. + +- Fixed field types should only be used if all fields are known. An example where this + is not the case are collections of benchmark problems, where the set of fields depends + on the selected benchmark sets and other things. In such situations, dictionaries that + map strings to BenchmarkProblem objects are a good idea. + +- Think about autocomplete! If want to accept a string as argument (e.g. an algorithm + name) also accept input types that are more amenable to static analysis and offer + better autocomplete. + +- Whenever possible, use immutable types. Whenever things need to be changeable, + consider using an immutable type with copy constructors for modified instances. + Example: instances of `Algorithm` are immutable but using `Algorithm.with_option` + users can create modified copies. + +- The main entry point to optimagic are functions, objects are mostly used for + configuration and return types. This takes the best of both worlds: we get the safety + and static analysis that (in Python) can only be achieved using objects but the + beginner friendliness and freedom provided by functions. Example: Having a `minimize` + function, it is very easy to add the possibility of running minimizations with + multiple algorithms in parallel and returning the best value. Having a `.solve` method + on an algorithm object would require a whole new interface for this. + +- Deep modules. : This is a term coined by + [John Ousterhout](https://www.youtube.com/watch?v=bmSAYlu0NcY). A deep module is a + module that has just one public function. This function calls the private functions + (i.e. functions that start with an underscore) defined further down in the module and + reads almost like a table of contents to the whole module. + - Never import a private function in another module : By following this strictly, you can be sure that you can rename or refactor private functions without looking at other modules. Of course it is also not a solution to copy paste the function! If you would @@ -63,15 +101,13 @@ Your contribution should fulfill the criteria provided below. concisely what the function does. The one liner should be in imperative mode, i.e. not "This function does" ..." , but "Do ..." and end with a period. -- Unit tests. : If you write a small helper whose interface might change during +- Unit tests : If you write a small helper whose interface might change during refactoring, it is sufficient if the function that calls it is tested. But all functions that are exposed to the user must have unit tests. -- PEP8 compliant and black formatted (we check this automatically). : We make this such - a hard requirement because it's boring and we don't want to bother about it in code - reviews. Not because we think that all PEP8 compliant code is automatically good. - Watch [this video](https://www.youtube.com/watch?v=wf-BqAjZb8M) if you haven't seen it - yet. +- Enable pre-commit hooks by executing `pre-commit install` in a terminal in the root of + the optimagic repository. This makes sure that your formatting is consistent with what + we expect. - Use `pathlib` for all file paths operations. : You can find the pathlib documentation [here](https://docs.python.org/3/library/pathlib.html) @@ -79,10 +115,6 @@ Your contribution should fulfill the criteria provided below. - Object serialization. : Pickling and unpickling of DataFrames should be done with `pd.read_pickle` and `pd.to_pickle`. -- We prefer a functional style over object oriented programming. : Unless you have very - good reasons for writing a class, we prefer you don't do it. You might want to watch - [this](https://www.youtube.com/watch?v=o9pEzgHorH0) - - Don't use global variables unless absolutely necessary : Exceptions are global variables from a config file that replace magic numbers. Never use mutable global variables! @@ -93,15 +125,4 @@ Your contribution should fulfill the criteria provided below. [Sphinx](https://www.sphinx-doc.org/en/master/) and written in **Markedly Structured Text.** How-to guides are usually Jupyter notebooks. -- Purpose of documents. : Our documentation is inspired by the - [system](https://documentation.divio.com/) developed by Daniele Procida. - - > - How-to guides are problem-oriented and show how to achieved specific tasks. - > - Explanations contain information on theoretical concepts underlying estimagic, - > such as numerical differentiation and moment-based estimation. - > - The API Reference section contains auto-generated API reference documentation and - > provides additional details about the implementation. - -- Headings. : Only the first letter of a title is capitalized. - -- Format. : The code formatting in .md files is ensured by blacken-docs. +- The documentation follows the [diataxis](https://diataxis.fr) framework. diff --git a/docs/source/explanations/inference/bootstrap_ci.md b/docs/source/estimagic/explanation/bootstrap_ci.md similarity index 100% rename from docs/source/explanations/inference/bootstrap_ci.md rename to docs/source/estimagic/explanation/bootstrap_ci.md diff --git a/docs/source/explanations/inference/bootstrap_montecarlo_comparison.ipynb b/docs/source/estimagic/explanation/bootstrap_montecarlo_comparison.ipynb similarity index 100% rename from docs/source/explanations/inference/bootstrap_montecarlo_comparison.ipynb rename to docs/source/estimagic/explanation/bootstrap_montecarlo_comparison.ipynb diff --git a/docs/source/explanations/inference/cluster_robust_likelihood_inference.md b/docs/source/estimagic/explanation/cluster_robust_likelihood_inference.md similarity index 100% rename from docs/source/explanations/inference/cluster_robust_likelihood_inference.md rename to docs/source/estimagic/explanation/cluster_robust_likelihood_inference.md diff --git a/docs/source/explanations/inference/index.md b/docs/source/estimagic/explanation/index.md similarity index 61% rename from docs/source/explanations/inference/index.md rename to docs/source/estimagic/explanation/index.md index d96a559f8..6cd5f49b9 100644 --- a/docs/source/explanations/inference/index.md +++ b/docs/source/estimagic/explanation/index.md @@ -1,4 +1,4 @@ -# Inference +# Explanation ```{toctree} --- @@ -6,5 +6,5 @@ maxdepth: 1 --- bootstrap_ci bootstrap_montecarlo_comparison -cluster_robust_likelihood_inference.md +cluster_robust_likelihood_inference ``` diff --git a/docs/source/estimagic/index.md b/docs/source/estimagic/index.md new file mode 100644 index 000000000..faa92c381 --- /dev/null +++ b/docs/source/estimagic/index.md @@ -0,0 +1,95 @@ +(estimagic)= + +# Estimagic + +*estimagic* is a subpackage of *optimagic* that helps you to fit nonlinear statistical +models to data and perform inference on the estimated parameters. + +As a user, you need to code up the objective function that defines the estimator. This +is either a likelihood (ML) function or a Method of Simulated Moments (MSM) objective +function. Everything else is done by *estimagic*. + +Everything else means: + +- Optimize your objective function +- Calculate asymptotic or bootstrapped standard errors and confidence intervals +- Create publication quality tables +- Perform sensitivity analysis on MSM models + +`````{grid} 1 2 2 2 +--- +gutter: 3 +--- +````{grid-item-card} +:text-align: center +:img-top: ../_static/images/light-bulb.svg +:class-img-top: index-card-image +:shadow: md + +```{button-link} tutorials/index.html +--- +click-parent: +ref-type: ref +class: stretched-link index-card-link sd-text-primary +--- +Tutorials +``` + +New users of estimagic should read this first. + +```` + + + +````{grid-item-card} +:text-align: center +:img-top: ../_static/images/books.svg +:class-img-top: index-card-image +:shadow: md + +```{button-link} explanation/index.html +--- +click-parent: +ref-type: ref +class: stretched-link index-card-link sd-text-primary +--- +Explanations +``` + +Background information on key topics central to the package. + +```` + +````{grid-item-card} +:text-align: center +:columns: 12 +:img-top: ../_static/images/coding.svg +:class-img-top: index-card-image +:shadow: md + +```{button-link} reference/index.html +--- +click-parent: +ref-type: ref +class: stretched-link index-card-link sd-text-primary +--- +API Reference +``` + +Detailed description of the estimagic API. + +```` + + + +````` + +```{toctree} +--- +hidden: true +maxdepth: 1 +--- +tutorials/index +explanation/index +reference/index +``` diff --git a/docs/source/estimagic/reference/index.md b/docs/source/estimagic/reference/index.md new file mode 100644 index 000000000..aec1c4100 --- /dev/null +++ b/docs/source/estimagic/reference/index.md @@ -0,0 +1,95 @@ +# estimagic API + +```{eval-rst} +.. currentmodule:: estimagic +``` + +(estimation)= + +## Estimation + +```{eval-rst} +.. dropdown:: estimate_ml + + .. autofunction:: estimate_ml + +``` + +```{eval-rst} +.. dropdown:: estimate_msm + + .. autofunction:: estimate_msm + +``` + +```{eval-rst} +.. dropdown:: get_moments_cov + + .. autofunction:: get_moments_cov + +``` + +```{eval-rst} +.. dropdown:: lollipop_plot + + .. autofunction:: lollipop_plot + +``` + +```{eval-rst} +.. dropdown:: estimation_table + + .. autofunction:: estimation_table + +``` + +```{eval-rst} +.. dropdown:: render_html + + .. autofunction:: render_html + +``` + +```{eval-rst} +.. dropdown:: render_latex + + .. autofunction:: render_latex + +``` + +```{eval-rst} +.. dropdown:: LikelihoodResult + + .. autoclass:: LikelihoodResult + :members: + +``` + +```{eval-rst} +.. dropdown:: MomentsResult + + .. autoclass:: MomentsResult + :members: + + + +``` + +(bootstrap)= + +## Bootstrap + +```{eval-rst} +.. dropdown:: bootstrap + + .. autofunction:: bootstrap +``` + +```{eval-rst} +.. dropdown:: BootstrapResult + + .. autoclass:: BootstrapResult + :members: + + +``` diff --git a/docs/source/how_to_guides/inference/how_to_do_bootstrap_inference.ipynb b/docs/source/estimagic/tutorials/bootstrap_overview.ipynb similarity index 95% rename from docs/source/how_to_guides/inference/how_to_do_bootstrap_inference.ipynb rename to docs/source/estimagic/tutorials/bootstrap_overview.ipynb index 8c2036463..5f6dbd467 100644 --- a/docs/source/how_to_guides/inference/how_to_do_bootstrap_inference.ipynb +++ b/docs/source/estimagic/tutorials/bootstrap_overview.ipynb @@ -15,7 +15,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -35,9 +35,19 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 3, "metadata": {}, "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/gf/_b8vq9wn2sv2221129y0c3sh0000gn/T/ipykernel_82008/2496026297.py:3: FutureWarning: Downcasting behavior in `replace` is deprecated and will be removed in a future version. To retain the old behavior, explicitly call `result.infer_objects(copy=False)`. To opt-in to the future behavior, set `pd.set_option('future.no_silent_downcasting', True)`\n", + " df = df.replace({\"time\": replacements})\n", + "/var/folders/gf/_b8vq9wn2sv2221129y0c3sh0000gn/T/ipykernel_82008/2496026297.py:3: FutureWarning: The behavior of Series.replace (and DataFrame.replace) with CategoricalDtype is deprecated. In a future version, replace will only be used for cases that preserve the categories. To change the categories, use ser.cat.rename_categories instead.\n", + " df = df.replace({\"time\": replacements})\n" + ] + }, { "data": { "text/html": [ @@ -126,7 +136,7 @@ "4 2 low fat 92 15 rest 1" ] }, - "execution_count": 2, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } @@ -158,7 +168,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -186,21 +196,21 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "(constant 90.858983\n", - " time 0.151361\n", + "(constant 90.857208\n", + " time 0.141391\n", " dtype: float64,\n", - " constant 96.880057\n", - " time 0.654426\n", + " constant 96.738019\n", + " time 0.633684\n", " dtype: float64)" ] }, - "execution_count": 4, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" } @@ -212,18 +222,18 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "constant 1.548116\n", - "time 0.126410\n", + "constant 1.496127\n", + "time 0.127750\n", "dtype: float64" ] }, - "execution_count": 5, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } @@ -243,21 +253,21 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "(constant 91.309379\n", - " time 0.192349\n", + "(constant 91.345295\n", + " time 0.199327\n", " dtype: float64,\n", - " constant 96.286624\n", - " time 0.607616\n", + " constant 96.264179\n", + " time 0.612123\n", " dtype: float64)" ] }, - "execution_count": 6, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -288,18 +298,18 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "constant 1.185239\n", - "time 0.101723\n", + "constant 1.207991\n", + "time 0.100024\n", "dtype: float64" ] }, - "execution_count": 7, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" } @@ -324,41 +334,9 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 9, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " OLS Regression Results \n", - "==============================================================================\n", - "Dep. Variable: pulse R-squared: 0.096\n", - "Model: OLS Adj. R-squared: 0.086\n", - "Method: Least Squares F-statistic: 13.75\n", - "Date: Sat, 14 Jan 2023 Prob (F-statistic): 0.000879\n", - "Time: 17:54:58 Log-Likelihood: -365.51\n", - "No. Observations: 90 AIC: 735.0\n", - "Df Residuals: 88 BIC: 740.0\n", - "Df Model: 1 \n", - "Covariance Type: cluster \n", - "==============================================================================\n", - " coef std err z P>|z| [0.025 0.975]\n", - "------------------------------------------------------------------------------\n", - "constant 93.7611 1.205 77.837 0.000 91.400 96.122\n", - "time 0.3873 0.104 3.708 0.000 0.183 0.592\n", - "==============================================================================\n", - "Omnibus: 20.828 Durbin-Watson: 0.827\n", - "Prob(Omnibus): 0.000 Jarque-Bera (JB): 26.313\n", - "Skew: 1.173 Prob(JB): 1.93e-06\n", - "Kurtosis: 4.231 Cond. No. 31.7\n", - "==============================================================================\n", - "\n", - "Notes:\n", - "[1] Standard Errors are robust to cluster correlation (cluster)\n" - ] - } - ], + "outputs": [], "source": [ "y = df[\"pulse\"]\n", "x = df[[\"constant\", \"time\"]]\n", @@ -391,7 +369,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 10, "metadata": {}, "outputs": [ { @@ -414,7 +392,7 @@ " dtype: float64]" ] }, - "execution_count": 9, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" } @@ -435,7 +413,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 11, "metadata": {}, "outputs": [], "source": [ @@ -445,12 +423,12 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 12, "metadata": {}, "outputs": [ { "data": { - "image/png": "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", + "image/png": "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", "text/plain": [ "
" ] @@ -493,7 +471,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 13, "metadata": {}, "outputs": [ { @@ -507,7 +485,7 @@ " dtype: float64)" ] }, - "execution_count": 12, + "execution_count": 13, "metadata": {}, "output_type": "execute_result" } @@ -543,7 +521,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 14, "metadata": {}, "outputs": [ { @@ -557,7 +535,7 @@ " dtype: float64)" ] }, - "execution_count": 13, + "execution_count": 14, "metadata": {}, "output_type": "execute_result" } @@ -569,7 +547,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 15, "metadata": {}, "outputs": [ { @@ -583,7 +561,7 @@ " dtype: float64)" ] }, - "execution_count": 14, + "execution_count": 15, "metadata": {}, "output_type": "execute_result" } @@ -613,7 +591,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 16, "metadata": {}, "outputs": [ { @@ -627,7 +605,7 @@ " dtype: float64)" ] }, - "execution_count": 15, + "execution_count": 16, "metadata": {}, "output_type": "execute_result" } @@ -655,7 +633,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 19, "metadata": {}, "outputs": [ { @@ -809,25 +787,18 @@ "[90 rows x 6 columns]" ] }, - "execution_count": 16, + "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "from estimagic.inference import get_bootstrap_samples\n", + "from estimagic.bootstrap_samples import get_bootstrap_samples\n", "\n", "rng = np.random.default_rng(1234)\n", "my_samples = get_bootstrap_samples(data=df, rng=rng)\n", "my_samples[0]" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { @@ -846,7 +817,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.8 | packaged by conda-forge | (main, Nov 22 2022, 08:27:35) [Clang 14.0.6 ]" + "version": "3.10.14" }, "vscode": { "interpreter": { diff --git a/docs/source/how_to_guides/miscellaneous/how_to_generate_publication_quality_tables.ipynb b/docs/source/estimagic/tutorials/estimation_tables_overview.ipynb similarity index 99% rename from docs/source/how_to_guides/miscellaneous/how_to_generate_publication_quality_tables.ipynb rename to docs/source/estimagic/tutorials/estimation_tables_overview.ipynb index a08e7fb74..632fd9c29 100644 --- a/docs/source/how_to_guides/miscellaneous/how_to_generate_publication_quality_tables.ipynb +++ b/docs/source/estimagic/tutorials/estimation_tables_overview.ipynb @@ -175,7 +175,7 @@ "\n", "`estimate_ml` and `estimate_msm` can both generate summaries of estimation results. Those summaries are either DataFrames with the columns `\"value\"`, `\"standard_error\"`, `\"p_value\"` and `\"stars\"` or pytrees containing such DataFrames. \n", "\n", - "For examples, check out our tutorials on [`estimate_ml`](../../getting_started/first_likelihood_estimation_with_estimagic.ipynb) and [`estimate_msm`](../../getting_started/first_msm_estimation_with_estimagic.ipynb).\n", + "For examples, check out our tutorials on [`estimate_ml`](likelihood_overview.ipynb) and [`estimate_msm`](msm_overview.ipynb).\n", "\n", "\n", "Assume we got the following DataFrame from an estimation summary:" diff --git a/docs/source/how_to_guides/miscellaneous/example_estimation_table_tex.pdf b/docs/source/estimagic/tutorials/example_estimation_table_tex.pdf similarity index 100% rename from docs/source/how_to_guides/miscellaneous/example_estimation_table_tex.pdf rename to docs/source/estimagic/tutorials/example_estimation_table_tex.pdf diff --git a/docs/source/getting_started/estimation/index.md b/docs/source/estimagic/tutorials/index.md similarity index 75% rename from docs/source/getting_started/estimation/index.md rename to docs/source/estimagic/tutorials/index.md index 54ef5fa29..b579d0da1 100644 --- a/docs/source/getting_started/estimation/index.md +++ b/docs/source/estimagic/tutorials/index.md @@ -1,4 +1,4 @@ -# Estimation with estimagic +# Estimagic Tutorials Estimagic hast functions to estimate the parameters of maximum likelihood or simulation models. You provide a likelihood or moment simulation function. Estimagic produces @@ -9,6 +9,8 @@ publication quality latex or html tables. --- maxdepth: 1 --- -first_likelihood_estimation_with_estimagic -first_msm_estimation_with_estimagic +likelihood_overview +msm_overview +bootstrap_overview +estimation_tables_overview ``` diff --git a/docs/source/getting_started/estimation/first_likelihood_estimation_with_estimagic.ipynb b/docs/source/estimagic/tutorials/likelihood_overview.ipynb similarity index 99% rename from docs/source/getting_started/estimation/first_likelihood_estimation_with_estimagic.ipynb rename to docs/source/estimagic/tutorials/likelihood_overview.ipynb index 92b859d60..8b46b836c 100644 --- a/docs/source/getting_started/estimation/first_likelihood_estimation_with_estimagic.ipynb +++ b/docs/source/estimagic/tutorials/likelihood_overview.ipynb @@ -21,7 +21,7 @@ "To be very clear: Estimagic is not a package to estimate linear models or other models that are implemented in Stata, statsmodels or anywhere else. Its purpose is to estimate parameters with custom likelihood or method of simulated moments functions. We just use an ordered logit model as an example of a very simple likelihood function.\n", "\n", "\n", - "### Model:\n", + "## Model:\n", "\n", "$$ y = \\beta_0 + \\beta_1 x + \\epsilon, \\text{ where } \\epsilon \\sim N(0, \\sigma^2)$$\n", "\n", diff --git a/docs/source/estimagic/tutorials/msm_overview.ipynb b/docs/source/estimagic/tutorials/msm_overview.ipynb new file mode 100644 index 000000000..7e46b7e5c --- /dev/null +++ b/docs/source/estimagic/tutorials/msm_overview.ipynb @@ -0,0 +1,723 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "private-handle", + "metadata": {}, + "source": [ + "# Method of Simulated Moments (MSM)\n", + "\n", + "This tutorial shows you how to do a Method of Simulated Moments estimation in estimagic. The Method of Simulated Moments (MSM) is a nonlinear estimation principle that is very useful for fitting complicated models to the data. The only ingredient required is a function that simulates the model outcomes you observe in some empirical dataset. \n", + "\n", + "In the tutorial here, we will use a simple linear regression model. This is the same model which we use in the tutorial on maximum likelihood estimation.\n", + "\n", + "Throughout the tutorial, we only talk about MSM estimation. However, the more general case of indirect inference estimation works exactly the same way. \n", + "\n", + "\n", + "## Steps of MSM estimation\n", + "\n", + "1. Load (simulate) empirical data \n", + "2. Define a function to calculate estimation moments on the data \n", + "3. Calculate the covariance matrix of the empirical moments (with ``get_moments_cov``)\n", + "4. Define a function to simulate moments from the model \n", + "5. Estimate the model, calculate standard errors, do sensitivity analysis (with ``estimate_msm``)\n", + "\n", + "## Example: Estimate the parameters of a regression model\n", + "\n", + "The model we consider here is a simple regression model with only one explanatory variable (plus a constant). The goal is to estimate the slope coefficients and the error variance from a simulated data set.\n", + "\n", + "The estimation mechanics are exactly the same for more complicated models. A model is always defined by a function that can take parameters (here: the mean, variance and lower_cutoff and upper_cutoff) and returns a number of simulated moments (mean, variance, soft_min and soft_max of simulated exam points).\n", + "\n", + "### Model:\n", + "\n", + "$$ y = \\beta_0 + \\beta_1 x + \\epsilon, \\text{ where } \\epsilon \\sim N(0, \\sigma^2)$$\n", + "\n", + "We aim to estimate $\\beta_0, \\beta_1, \\sigma^2$." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "dirty-slovakia", + "metadata": {}, + "outputs": [], + "source": [ + "import estimagic as em\n", + "import numpy as np\n", + "import pandas as pd\n", + "\n", + "rng = np.random.default_rng(seed=0)" + ] + }, + { + "cell_type": "markdown", + "id": "annoying-guard", + "metadata": {}, + "source": [ + "## 1. Simulate data" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "fdaf1542", + "metadata": {}, + "outputs": [], + "source": [ + "def simulate_data(params, n_draws, rng):\n", + " x = rng.normal(0, 1, size=n_draws)\n", + " e = rng.normal(0, params.loc[\"sd\", \"value\"], size=n_draws)\n", + " y = params.loc[\"intercept\", \"value\"] + params.loc[\"slope\", \"value\"] * x + e\n", + " return pd.DataFrame({\"y\": y, \"x\": x})" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "f965ccdc", + "metadata": {}, + "outputs": [], + "source": [ + "true_params = pd.DataFrame(\n", + " data=[[2, -np.inf], [-1, -np.inf], [1, 1e-10]],\n", + " columns=[\"value\", \"lower_bound\"],\n", + " index=[\"intercept\", \"slope\", \"sd\"],\n", + ")\n", + "\n", + "data = simulate_data(true_params, n_draws=100, rng=rng)" + ] + }, + { + "cell_type": "markdown", + "id": "20a94f52", + "metadata": {}, + "source": [ + "## 2. Calculate Moments" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "diverse-validation", + "metadata": {}, + "outputs": [], + "source": [ + "def calculate_moments(sample):\n", + " moments = {\n", + " \"y_mean\": sample[\"y\"].mean(),\n", + " \"x_mean\": sample[\"x\"].mean(),\n", + " \"yx_mean\": (sample[\"y\"] * sample[\"x\"]).mean(),\n", + " \"y_sqrd_mean\": (sample[\"y\"] ** 2).mean(),\n", + " \"x_sqrd_mean\": (sample[\"x\"] ** 2).mean(),\n", + " }\n", + " return pd.Series(moments)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "short-flood", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "y_mean 1.868333\n", + "x_mean 0.081097\n", + "yx_mean -0.723189\n", + "y_sqrd_mean 5.227749\n", + "x_sqrd_mean 0.932272\n", + "dtype: float64" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "empirical_moments = calculate_moments(data)\n", + "empirical_moments" + ] + }, + { + "cell_type": "markdown", + "id": "italic-baptist", + "metadata": {}, + "source": [ + "## 3. Calculate the covariance matrix of empirical moments\n", + "\n", + "The covariance matrix of the empirical moments (``moments_cov``) is needed for three things:\n", + "1. to calculate the weighting matrix\n", + "2. to calculate standard errors\n", + "3. to calculate sensitivity measures\n", + "\n", + "We will calculate ``moments_cov`` via a bootstrap. Depending on your problem, there can be other ways to calculate the covariance matrix." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "rocky-willow", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
y_meanx_meanyx_meany_sqrd_meanx_sqrd_mean
y_mean0.017775-0.009000-0.0150850.060904-0.001010
x_mean-0.0090000.0094070.016998-0.0328810.001586
yx_mean-0.0150850.0169980.052317-0.081053-0.010686
y_sqrd_mean0.060904-0.032881-0.0810530.2548220.008873
x_sqrd_mean-0.0010100.001586-0.0106860.0088730.012473
\n", + "
" + ], + "text/plain": [ + " y_mean x_mean yx_mean y_sqrd_mean x_sqrd_mean\n", + "y_mean 0.017775 -0.009000 -0.015085 0.060904 -0.001010\n", + "x_mean -0.009000 0.009407 0.016998 -0.032881 0.001586\n", + "yx_mean -0.015085 0.016998 0.052317 -0.081053 -0.010686\n", + "y_sqrd_mean 0.060904 -0.032881 -0.081053 0.254822 0.008873\n", + "x_sqrd_mean -0.001010 0.001586 -0.010686 0.008873 0.012473" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "moments_cov = em.get_moments_cov(\n", + " data, calculate_moments, bootstrap_kwargs={\"n_draws\": 5_000, \"seed\": 0}\n", + ")\n", + "\n", + "moments_cov" + ] + }, + { + "cell_type": "markdown", + "id": "hearing-dairy", + "metadata": {}, + "source": [ + "``get_moments_cov`` mainly just calls estimagic's bootstrap function. See our [bootstrap_tutorial](bootstrap_overview.ipynb) for background information. \n", + "\n" + ] + }, + { + "cell_type": "markdown", + "id": "worldwide-whole", + "metadata": {}, + "source": [ + "## 4. Define a function to calculate simulated moments\n", + "\n", + "In a real world application, this is the step that would take most of the time. However, in our very simple example, all the work is already done by numpy." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "creative-pittsburgh", + "metadata": {}, + "outputs": [], + "source": [ + "def simulate_moments(params, n_draws=10_000, seed=0):\n", + " rng = np.random.default_rng(seed)\n", + " sim_data = simulate_data(params, n_draws, rng)\n", + " sim_moments = calculate_moments(sim_data)\n", + " return sim_moments" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "casual-stream", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "y_mean 1.996739\n", + "x_mean 0.006312\n", + "yx_mean -0.997919\n", + "y_sqrd_mean 5.999877\n", + "x_sqrd_mean 0.996197\n", + "dtype: float64" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "simulate_moments(true_params)" + ] + }, + { + "cell_type": "markdown", + "id": "sustainable-collectible", + "metadata": {}, + "source": [ + "## 5. Estimate the model parameters\n", + "\n", + "Estimating a model consists of the following steps:\n", + "\n", + "- Building a criterion function that measures a distance between simulated and empirical moments\n", + "- Minimizing this criterion function\n", + "- Calculating the Jacobian of the model\n", + "- Calculating standard errors, confidence intervals and p-values\n", + "- Calculating sensitivity measures\n", + "\n", + "This can all be done in one go with the ``estimate_msm`` function. This function has sensible default values, so you only need a minimum number of inputs. However, you can configure almost any aspect of the workflow via optional arguments. If you need even more control, you can call the lower level functions, which the now famliliar``estimate_msm`` function is built on, directly. " + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "finite-david", + "metadata": {}, + "outputs": [], + "source": [ + "start_params = true_params.assign(value=[100, 100, 100])\n", + "\n", + "res = em.estimate_msm(\n", + " simulate_moments,\n", + " empirical_moments,\n", + " moments_cov,\n", + " start_params,\n", + " optimize_options=\"scipy_lbfgsb\",\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "outside-volleyball", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
valuestandard_errorci_lowerci_upperp_valuefreestars
intercept1.8695340.1343561.6062012.1328675.151663e-44True***
slope-0.7219580.231564-1.175815-0.2681021.822359e-03True***
sd1.0997890.1376350.8300291.3695491.342810e-15True***
\n", + "
" + ], + "text/plain": [ + " value standard_error ci_lower ci_upper p_value free \\\n", + "intercept 1.869534 0.134356 1.606201 2.132867 5.151663e-44 True \n", + "slope -0.721958 0.231564 -1.175815 -0.268102 1.822359e-03 True \n", + "sd 1.099789 0.137635 0.830029 1.369549 1.342810e-15 True \n", + "\n", + " stars \n", + "intercept *** \n", + "slope *** \n", + "sd *** " + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "res.summary()" + ] + }, + { + "cell_type": "markdown", + "id": "incident-government", + "metadata": {}, + "source": [ + "## What's in the result?\n", + "\n", + "`MomentsResult` objects provide attributes and methods to calculate standard errors, confidence intervals and p-values. For all three, several methods are available. You can even calculate cluster robust standard errors.\n", + "\n", + "A few examples are:" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "caring-scale", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
valuelower_bound
intercept1.869534-inf
slope-0.721958-inf
sd1.0997891.000000e-10
\n", + "
" + ], + "text/plain": [ + " value lower_bound\n", + "intercept 1.869534 -inf\n", + "slope -0.721958 -inf\n", + "sd 1.099789 1.000000e-10" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "res.params" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "9fc88986", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
interceptslopesd
intercept0.018052-0.015855-0.013072
slope-0.0158550.0536220.024682
sd-0.0130720.0246820.018943
\n", + "
" + ], + "text/plain": [ + " intercept slope sd\n", + "intercept 0.018052 -0.015855 -0.013072\n", + "slope -0.015855 0.053622 0.024682\n", + "sd -0.013072 0.024682 0.018943" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "res.cov(method=\"robust\")" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "d7dbe79c", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
valuelower_bound
intercept0.134356-inf
slope0.231564-inf
sd0.1376351.000000e-10
\n", + "
" + ], + "text/plain": [ + " value lower_bound\n", + "intercept 0.134356 -inf\n", + "slope 0.231564 -inf\n", + "sd 0.137635 1.000000e-10" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "res.se()" + ] + }, + { + "cell_type": "markdown", + "id": "blind-tractor", + "metadata": {}, + "source": [ + "## How to visualize sensitivity measures?" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "fleet-qatar", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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hNlLSAGZEejXr599//33tvTSS2eW+djpYgizl5ACOjABDGED4o4aNcoWWmgh02CoV69eDbyj3IdgCMutD9l1LAIvvviibbvttvb+++9nXxiGMHsJKSAzAhdeeKG98847dvHFF2eWOYYwe8EoIBQBDGEDcmMIG4DEIRCAQFUCGEI+GBCAQHsJYAjbS473QQACbSFQKkOoGfTDDz/cDjjgAFtllVVSHeoMP/roIzvrrLNs4oknrlnbjTfeaNddd5198803Nuecc9r+++9vq6++uv344492yimn2IMPPmidOnVKq309e/ZM5yrOecwxx9i1115rAwcOtNtuu83+85//2D/+8Q/74IMPbPHFF7c33nij4RXCLbbYwlZddVV7+OGHbcCAAbbpppvaxhtvbGeeeaa99dZb6d+qsWvXrqmel156yU477TTr37+/rb322mk1YdFFF7UhQ4bYbrvt1rSysPDCC5vyXGCBBdL7dB7Vp/N88sknts0229i+++5rnTt3rsmpPSuEP/0yym7v/5oNHvFjir1i93lshe7ztOWzxrEQGK8EtHp188032/nnn28zzzyzaSJH19lSSy1lO++8c81zjxgxwk4//fTUR4wcOTJd83//+99tnnnmSdfWcccdl/qEueaay7p3725bb721bbDBBqlPeP3119Px9957b3pg0xFHHJH6kquvvtq++uqr1Ne89957Da0QKt6TTz5p00wzTYo3yyyz2EknnWTPPfec3XTTTTbjjDOmfm2ttdZK9QwfPtzOOeecdOz000+f8lK/oD5A/Yry/vLLL9Ox6iv0s7a9q9875JBDUl+kflNt1113Te+v1dq7Qvje0IH2xOfvmfqRKSed3DaccxGbvUul/6NB4PcmoOto7733tmWWWcb23HPPlM7jjz9ul19+uV100UXpuqvVdH1qjKLvcB272Wab2R577GG63UT9wBVXXNHUr6h/ueWWW5q+w3Vc79697e2337ZTTz01XfP6//3335/GK126dEnf+Y2sEJ588slpnKRxi2KutNJKdvTRR9tll11mjz32mC233HJ24IEHNo0hPv/889S/vPDCC6kP23LLLW299dZLual/eOaZZ+zbb7+1+eabz/bbb7+m13SeSSedNJ3n5ZdfTn2L+to55pijJqf2bhm9/9O+9t53A1PsntN1t9Vn7Zn6ERoEIOBHoFSG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yy+/3C666KJ0/ddqJ598chqffPDBB9a7d29baaWV7Oijj7bLLrvMHnvssdRnHXjggU1jiM8//zz1Ly+88IItvvjituWWW9p6662XTqH+4ZlnnrFvv/3W5ptvPttvv/2aXtN5Jp100nSel19+OfUt6uPmmGOOmvlhCMf/B5Mx2vhn3FHPENYQjhgxwpZffvnUKWsQp7bddtslI3booYcm46eB0iOPPGJvv/12MmYPPvhg2m5Zr+mYnj172t57750OVUfapUsXO+yww2zOOee0I444Iv1OA7dPP/3U1lhjjfSaTORDDz1kd955Z+rMv//+e7vrrrtsySWXtE6dOtkVV1xhH374oWlQpqbzqKPWeWRqDzrooDQIVZxarb2GUF9sl7zde4zQnSeZzI5dav30RUeDQBQCV199dZpMeuqpp2ySSSZJgyJNyGiiaeqpp06TOpNNNplde+21du6559oTTzyRrmv1A7XaVVddlQaE6m9WXnllu/766+3RRx9NAzH1F6+88ordeuutaQA30UQTpQki9U/qs/Tzsccea/vss08yen379rV+/fpZr169knHUwFADNx375ptv2uabb576HpnIzz77zE444YQUX4axtTauhnDoz8Nt+C8/R/mYUGdwAt+NGm7n9nl8LAo/XP2wzT7TLHb66aen1y6++OI01tD19fTTT9suu+yS+o555pknXfvNxym1kGpSR32RrvG555479Q+6tjVZJXOoPkv9k8Y3P//8s62//vq2xBJL2I477pgmpGUWNSHVo0eP1PfMP//81q1bt9R/6T2KPd1006XJI/1bYw4dc8YZZ9gKK6yQzlurjash/HrED/bb6NHBP1Wtl//udwPtlg9eZozGJ6RdBMIaQtHSit3zzz9vd999dzJa6667bpqN0yzXL7/8kgzib7/9Zu+9955pRmyDDTZoCLIM12233ZaMnJpWCDfaaCPbaaed0s+nnnqqDR48OHWwWnnU7L6MnJo6aQ3U9LsFF1wwDeQ0eFNnrQGeBpXFimHL82hGT523VjeLdsMNN4yV84knntgUo6GC/v9BmuXU7FPLtmevVVglbAtIjs2egGbNNdsuA6ddBLr2ZAB1bat99dVXqT/RMTKJ6mM0uKvXFE+z8hoMqunfGkQV1/x3332XVg9kErt3754msDRYLPqaO+64I602aICp9vXXX9urr76a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t3vbG4MHjBH3oEXXsJ7TducyggAEmhGQabr55pvt/PPPt5lnntlGjRqVrvelllrKdt5555qs9N4nn3zSpplmGrv33nttlllmsZNOOsmee+45u+mmm2zGGWe0/fff39Zaa60UZ/jw4XbOOeekY6effnrbeuutU7+gPkD9ynHHHWdffvllOlZ9hX6edtppU59yyCGHpL7oxhtvTK/vuuuu6f21WnsMoczgUS/9rw3/9eem0N06dbFTlt2Yzw0EINCMgK7nvffe25ZZZhnbc8890yuPP/64XX755XbRRRel679WO/nkk9P45IMPPrDevXvbSiutZEcffbRddtll9thjj9lyyy1nBx54YNMY4vPPP0/9ywsvvGCLL764bbnllrbeeuulU6h/eOaZZ+zbb7+1+eabz/bbb7+m13SeSSedNJ3n5ZdfTn2L+rg55pijZn7tMYTPDexv1/V7YYy4G86xiG005yJ8diAAAUcCGMJWYMr4aaD0yCOP2Ntvv52M2YMPPpi2W9ZrOqZnz56pY1dTR9qlSxc77LDDbM4557Qjjjgi/U4Dt08//dTWWGON9JpM5EMPPWR33nln6sy///57u+uuu2zJJZe0Tp062RVXXGEffvihaVCmpvOoo9Z5ppxySjvooIPSIFRxijZo0KCx0l1hhRWaTGa9WvS6BnQHPn/nWIdqlXCvXhXDTIMABCoEfv755zSpM9lkk9m1115r5557rj3xxBPpulY/UKtdddVVaXJI/c3KK69s119/vT366KNpIKb+4pVXXrFbb701DeAmmmiiNEGk/unQQw9NPx977LG2zz77JKPXt29f69evn/Xq1SsZRw0MNXDTsW+++aZtvvnmqe+RCfzss8/shBNOSPFlGNVGjhxpP/zwwxjpanAqo3n22Wc3LPd9n/S1+z/tO9bxTCg1jJADAxF4+umnbZdddkl9xzzzzJOufU3kbLLJJnUpaFJHBk3X+Nxzz536B13be+yxRzKH11xzjU099dRpYlv91Prrr29LLLGE7bjjjmlCWmZRE1I9evRIfc/8889v3bp1S/2X3qPY0003XZo80r815tAxZ5xxhmlcofMWTeMXTYY1b3p9p512appor1uQmZ3V57Gm1cHmx1+28jaNvJ1jIACBBglgCFsB9csvv9h2221nv/32m7333numGbENNtigIawyarfddlsycmpaIdxoo41SR6h26qmn2uDBg1MHq5VHze7LyBWDSQ3U9LsFF1wwDeQ0eFNnrQGeBpXFimHL82hGT533kUce2ZTnVlttNVbOr776apsMobZrnNPn8bHi/GHameyQRddsiAkHQSASga+++srWXXfdNCP/4osv2t13350Gd/WaDKFm5TUYVNO/NateXPPfffddWj2QSezevXvaSaDBYtHX3HHHHTZw4EC7+OKL0/u//vpr0/Wu32lySyuPWi0oDKEMo4ykmnI95ZRTkklUe/bZZ9OqRPM222yzpR89DOFf51nS1pitstuBBgEI/B8BXV+333676XpbZJFF0mRNI01Gbemll7bdd9+96TrVNa5rXk0TOkcddVTqk55//nnbfvvt086DqaaaKr0uA6nxiia0fv31V3v33XfThJP6kfPOOy/1Y8qn5XnU71x33XV2//33N6Wpia033ngOBKe+AAAgAElEQVRjjLQnmWSSlFux86qRmg547o4xdhcU78EQNkKPYyDQOAEMYQ1WMmHrrLNOmqm/+uqrG6ba0qjJWGpmvjCEMoEymRpsycRpK4dWFJs3zfJru5k6Zg3ill122TRjr9XB1gyhvjTUiZ944ok1c23PltHdn7l5rJi6D2jH+VdomAsHQiASAQ2SNPjSNV4M0OrV39IQasVOK3jFNa8+QFvH77vvPpt88slT/6QVwCmmmKIptIziBRdcYA888EDaxqUBoiaXNDDUTgOdo5oh1DZUbUfdcMMNW02zPVtGH//8Xbu9/2tjxWSFsN6ngdejEtCEtFb0tF2zT58+dW8DKTi1NGqXXHJJMmWFISxMoPqTon8qJpOKGJoQ0u0nivXOO+/YmmuumcYiiqH3aGtpy/NoZ5NuidFKYq3Wni2j1VYIO08ymZ234hZRPx7UDYHxQgBDWAOrVto0IPv444/T9lHNoDfSWhpCbcfQNs5qhlBbLWQ8L7300rFCa7Zes3OaedPMmjp2bRv7PQxhy21f6pCPXWp9071ANAhAYEwCP/30k2222WamgZ22TmnmvN79P4rQ0hBqdU+r/NUMoe4vlNm75557bKGFFhpLAm0105Yw3Vespi3n2mo6oQ2htpyf3ecxGzDsu6Yc2W7OFQOB1gnomj7++OPTATJfxe0n9Zi1NGoaV7z++utVDaG2hmqLqMY4uh+wedMOhL322muMLeQa1/wehlA7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oUOH2k477ZSu08UWWyxVNnDgQNtzzz3tvPPOsznmmKNmtSeffHIan6j/6d27t6200kp29NFH22WXXWaPPfaYLbfccnbggQc2jSE+//zz1L+88MILtvjii9uWW25p6623XjqH+odnnnnGvv32W5tvvvlsv/32a3pN55l00knTeV5++eXUt2hMUy8/DGEH+rBSyngnMKG/IzGEVSQdMWKELb/88qlT3mSTTdIR2223XTJphx56aN0PgQxXz549be+9907HqiPt0qWLHXbYYTbnnHPaEUcckX6ngdunn35qa6yxRnpNJvKhhx6yO++8M3Xm33//vd1111225JJLWqdOneyKK66wDz/80DQoU9N51FHrPDKuBx10kJ1//vkpTq02Lobwx19G2hfDhtpvo0fX5cABEOgIBK569z/2/c8jxihlsW49bK9eq1Qtr0+fPrbZZpulAZiu9x9//NGWWGIJu/LKK+tem1dddVWaHNJE0Morr2zXX3+9Pfroo2kgpv7ilVdesVtvvTUN4CaaaKI0QfT222+nfkk/H3vssbbPPvsko9e3b1/r16+f9erVKxlHDQw1cNOxb775pm2++eap75EJ/Oyzz+yE/9fencBIVSxqHC9EEAVXUBBEcOO5BNxAhagRhYAsSkhEEhRQjBAMokIkEK8LIgiCIkFAEpUrcSEoagCVIAjBJRpB3jUoi1cRr8qqCIKE9eWruWdez9Az3dNdPXWqz79ezL3v2l2n6lc9p89XVef0E0/Y+hUYKyr5BsLf9u4yf+7/21b/9fafzbLf1h91qLFX3ZroVdhi+JuhD7kLaGJGkzvjx4+3lUybNs0sWrSo9Hu/spr1XgU0/Y2fc8459vygv+1BgwbZcKhJ7hNPPNFMnDjRHDhwwHTp0sWem/r3728npBUWNSF11lln2XNPixYtTP369c3SpUvte1T3KaecYieP9N91zaHXTJgwwbRt2zbj9VG+gfDfu7aZA4cP547LOxEISODjX9eb1Tt+LtNiTZxObndbQXpBIKyAVat5n3/+uZk3b54NYZ07dzZLlizJOAMWBbU5c+bYIKeiFcLu3bvbmT+VcePGmR07dtgTrFYONLuvIKeik7Qu1PS/XXTRRfZCThdvOlnrAk9hMVoxVLBLPY5m9HTyHjlyZGmv9IVQvug9UR1V/VRt+/svM3XNMrN9319VfSuvRyBIgYNHjr4A0bZRBZeKigKZAp3+JufOnWumTJlili1bZmrWrFmpgQKhZuVnzZplX6f/rouo6O91586dpk2bNjYkNmzY0E5SaeIqOtfoWFpR0EWkytatW83KlSvt/6aLSq08arUgCoQKjAqSKlo90KqmQqKKXqP6UkutWrXsRNWkSZNyGst/7fiPefG7T+x7Dx05YvR/5ctDrW4y/3Nyw5zq500IhC6gQKYJIQWuevXq2SCn7/QePXpk7JqCWuvWrc3AgQPta/V3qr9x/c2r6Bpm1KhRRrugdH3Tt29fu/NAx1HR9YKuV7RL6dChQ2bt2rV2wknnEa1Q6nqoZcuWNhCmHkfnCe2gWrBgQWkbFSh17NSyceNG27frr08/mZapg5qcW7W97AVypvfw7xEIVSDdtYf9O73i5oLcYkEgrOCToi2YHTp0sLNy+kcnsuikmunDVT6oaXVRM/NRIFQIXLdunZk6daq9YNRKglYUU4tm+Rs1amRPzLqIu+qqq+yWM7WlokCoGX6dxEePHl1alVYSyhe1J9dAuH3fHvPOj1+bP/47y5/Jgn+PQOgCmpUuX86qe4r5xxVdKuyaVva1FUsXXlot1D/R339lHuUDoVbstIIX/b3qHKCt4/Pnzze1a9c2nTp1siuAderUKa1WQVEBdOHChXYbly7cNLmkizPtNNAx0gVCbUPVdtRu3brZurZv3263hKWWNWvW2AvEXAPhdzs3m/k/fWOr1OTSrgMlq4WphUAY+l8M7c9H4ODBg6Z9+/Y2ODVu3NgMGzbM7ghI/RuvqP7yQW369Olm9erVpdcuUQjU+UQhTuEwmkyK6tSEkG4/UV3fffedvQ7StYiuf/QebS0tfxztbNIkulYSo6IwqQms1KL2DBgwIOdA+N7G/zXr/rvFPB9j3otACAK/7Nlp9h06cFRTC7WLhkBYyadCM/PauqHApgusbGe1ygdCbcfQNs50gVBbLbT6N2PGjKMHfexYe/GlmTetLOjErm1jVQmE6bqXz5bREP6IaCMCLgVmrf/cfL7lxzJVdju7penerGWFh9m7d69p166d3XKue/R0P190z3BlbSsfCLW617t377SBUPcXKuy9++675pJLLjmqWm0z1ZYw3Vesoi3nurDMNhCma2e+W0ZT61z35xbz7L+WlDnMacfVNeMqWXl1Oa7UhUBcBRS+tBuoadOmdsIn073HUT/KBzVdV3z99ddpA6FWIrVFVJNOuh8wtWgHwuDBg8tsIdd1Q1UCYTrbfLeMxnW8aBcChRD4bMsP5p/ryy7qXHDyGWZ4qw6FOJwhEFbCqiCom7l1UtZ/z/QwmaiqqgTCaAVA20e7du1qdFO5HhKjFUHNummLhy7kNGuolcXKtoymWyEkEBbk74ZKEySgG7uX/LLOKMCoaDtjZWEwotH2S92z06tXL6OHMGRTqhII9XAprfbr3KAHyzRo0MBu8dI5RZNPekCEdh7ofiLdR6TtYAqlcQmE8li94z/mo1/WWpoGdeqa7s1acf9gNh8UXlPUAtu2bbMTSipaddM1SDalKoFQ1xqaqNbuBd0LqKKJK922oi2k/fr1szsRtDqoraC6viAQZjMKvAYBdwIKhfon+o7sde6V5oRja7s7QEpNBMJKWHVi1OycHsagVb5sSzaBUKt8WnVU0UlWF4x79pQ8xbB58+b2ARTaEqabwbVKqKIVSj1sprIVwsOHD9sTd2WFFcJsR5LXIZC7QLSiX9EKXrqa9YTSTz75xD7NWKX8CuH+/fvtaqAu1BQIN2/ebB8ko/sTo6KZfc386/5DrSzoKYF6qJXCobafa4IpevBN6j2E2jKqLaaamKqouFwhzF2WdyJQ/AJaTdM1QLrdQxX1PlMg1A4BXVPo3KSyatUqM2LECHtLjIrOE9r6qW2jevCd7jtW0f+vyWlNSOvpp9lsGU3XRlYIi/9zSw/DFSAQVjJ2OnlqBj71yXu7d++29+mlK3o4Q2VP6KvsY3LkyBF7z46+AMrXoUdDa2Y/+gmMfD9uBMJ8BXk/ApkFtKKvCZzowSz6G9esfEVF27aihztkrr3sK/RkZN2vo1XC1O1fWj389ddf7c9X6IEw+RYCYb6CvB+BzAJ6cNOVV15pHy6lh8qoaII6mjROV4N+akb3COdSdF5S/XooXfSQKdWjaxLtjNKtMy4KgdCFInUgUBgBAmElrnpSlx7QkPqQFm270m8Lpiu64NLse9wLgTDuI0T7QhfQ04H1GPYxY8aUPqRFk0nR/Xzp+qfHv+uhLnEuBMI4jw5tKxYBbTWfPXt2mVtVtJoX7SpK1089fEoPmYpzIRDGeXRoW9IFCIQVfAK0CqitXvo9wiZNmhTV54RAWFTDSWdiKKDHtGvLpn5uRqv+xVIIhMUykvQjzgLLly+3O4X0RM9iKgTCYhpN+lJsAgTCYhvRLPpDIMwCiZcggMBRAgRCPhQIIJCrAIEwVzneh0DhBQiEhTeO3REIhLEbEhqEQBACBMIgholGIhBLAQJhLIeFRiFgBQiECfwgEAgTOOh0GQEHAgRCB4hUgUBCBQiECR14uh2EAIEwiGFy20gCoVtPakMgKQIEwqSMNP1EwL0AgdC9KTUi4EqAQOhKMqB6CIQBDRZNRSBGAgTCGA0GTUEgMAECYWADRnMTJUAgTNRwl3SWQJjAQafLCDgQIBA6QKQKBBIqQCBM6MDT7SAECIRBDJPbRhII3XpSGwJJESAQJmWk6ScC7gUIhO5NqREBVwIEQleSAdVDIAxosGgqAjESIBDGaDBoCgKBCRAIAxswmpsoAQJhooa7pLMEwgQOOl1GwIEAgdABIlUgkFABAmFCB55uByFAIAximNw2kkDo1pPaEEiKAIEwKSNNPxFwL0AgdG9KjQi4EiAQupIMqB4CYUCDRVMRiJEAgTBGg0FTEAhMgEAY2IDR3EQJEAgTNdwlnSUQJnDQ6TICDgQIhA4QqQKBhAoQCBM68HQ7CAECYRDD5LaRBEK3ntSGQFIECIRJGWn6iYB7AQKhe1NqRMCVAIHQlWRA9RAIAxosmopAjAQIhDEaDJqCQGACBMLABozmJkqAQJio4S7pLIEwgYNOlxFwIEAgdIBIFQgkVIBAmNCBp9tBCBAIgxgmt40kELr1pDYEkiJAIEzKSNNPBNwLEAjdm1IjAq4ECISuJAOqh0AY0GDRVARiJEAgjNFg0BQEAhMgEAY2YDQ3UQIEwkQNd0lnCYQJHHS6jIADAQKhA0SqQCChAgTChA483Q5CgEAYxDC5bSSB0K0ntSGQFAECYVJGmn4i4F6AQOjelBoRcCVAIHQlGVA9BMKABoumIhAjAQJhjAaDpiAQmACBMLABo7mJEiAQJmq4SzpLIEzgoNNlBBwIEAgdIFIFAgkVIBAmdODpdhACBMIghsltIwmEbj2pDYGkCBAIkzLS9BMB9wIEQvem1IiAKwECoSvJgOohEAY0WDQVgRgJEAhjNBg0BYHABAiEgQ0YzU2UAIEwUcNd0lkCYQIHnS4j4ECAQOgAkSoQSKgAgTChA0+3gxAgEAYxTG4bSSB060ltCCRFgECYlJGmnwi4FyAQujelRgRcCRAIXUkGVA+BMKDBoqkIxEiAQBijwaApCAQmQCAMbMBobqIECISJGu6SzhIIEzjodBkBBwIEQgeIVIFAQgUIhAkdeLodhACBMIhhcttIAqFbT2pDICkCBMKkjDT9RMC9AIHQvSk1IuBKgEDoSjKgegiEAQ0WTUUgRgIEwhgNBk1BIDABAmFgA0ZzEyVAIEzUcJd0lkCYwEGnywg4ECAQOkCkCgQSKkAgTOjA0+0gBAiEQQyT20YSCN16UhsCSREgECZlpOknAu4FCITuTakRAVcCBEJXkgHVQyAMaLBoKgIxEiAQxmgwaAoCgQkQCAMbMJqbKAECYaKGu6SzBMIEDjpdRsCBAIHQASJVIJBQAQJhQgeebgchQCAMYpjcNpJA6NaT2hBIigCBMCkjTT8RcC9AIHRvSo0IuBIgELqSDKgeBUIKAghUn0D79u3NzJkzq++ABTqSAuHw4cMLVDvVIoBAOoHJkyebrl27Bo+jQLhixYrg+0EHEAhJYMOGDVk1l0CYFRMvigRGjhxpevbsadq0aQNKNQuMHj3a3HDDDeb666+v5iNzuGeeeca0atXKdOrUCYwcBXbt2mX69+9v5s2bl2MNvC1Xgfvuu88MHY5nx10AAAyoSURBVDrUtGjRItcqeF8OArNmzTK1atUyffr0yeHdvCVVQJNRmzZtMkOGDClKmI4dO5rFixcXZd+mT59uGjZsaK8di61s2bLFPPTQQ+a1114LvmsEwuCHsHo7QCCsXu/UoxEI/dkTCPO3JxDmb5hrDQTCXOXyex+BMD8/AqE7P581EQh96md/bAJh9la80hhDIPT3MSAQ+rMnEOZvTyDM3zDXGgiEucrl9z4CYX5+BEJ3fj5rIhD61M/+2ATC7K14JYHQ62eAQOiPn0CYvz2BMH/DXGsgEOYql9/7CIT5+REI3fn5rIlA6FM/+2MTCLO34pUEQq+fAQKhP34CYf72BML8DXOtgUCYq1x+7yMQ5udHIHTn57MmAqFP/eyPTSDM3opXIoAAAggggAACCCCAAAJFJUAgLKrhpDMIIIAAAggggAACCCCAQPYCBMLsrXglAggggAACCCCAAAIIIFBUAgTCohpOOoMAAggggAACCCCAAAIIZC9AIMzeilcaY7Zt22bq1atnjj/+eDwKJIBxgWDzqPbw4cPmyJEjpmbNmnnUkuy37t+/3/z+++/2B4pr1KiRbIwC9Z5zR4Fgc6xW54xDhw6ZY489NscaeFsksHv3bnPgwAFz2mmnBYui75GtW7eaBg0aJOozUSzfnwcPHizqcSMQBntqqd6G//TTT+aee+4xGzdutAe+7bbbzBNPPGFq1apVvQ0p4qNV1Xjs2LHmlVdeKSNyxRVXmDlz5hSxUvV3TRd1jzzyiD3wU089Vf0NCPyI8ps6daqZMmWK7Yku6F588UVz2WWXBd6z+DSfc0d8xiK1Je+9956ZOHGiWbFiRTwbGECr9uzZY4YNG2aWLFliW6vzxrRp08zpp58eQOv/v4kff/yxefDBB436o/Lkk0+a3r17V9iHm2++2Xz//fdl/v39999vhgwZElS/i+X7c9OmTeamm24yy5YtM02aNKlwDDTpefXVVx/171999VXTtm3bWI8dgTDWwxOfxt199912ZXD8+PHmt99+Mz179rSB8NZbb41PIwNvSVWNFU50kho5cmRpz+vUqWMaNWoUuER8mv/BBx+Yxx9/3K5s9erVi0CYw9CsWrXK3H777eaNN94wrVq1MpMnTzbz5883y5cvN8ccc0wONfKW8gKcO+L1mVBAv+uuu8zPP/9sz8cEwtzHR5NHmuTU+eOEE06wE9PnnXee0YRoKOXvv/+2YWDo0KHmzjvvNEuXLjX6KRj9Z9OmTdN2Q4Gwe/fupkuXLqX//uSTTzannnpqKN02xfL9qQWQ1atXW/dMgXDHjh3mmmuuMS+99JI5++yzS8dKO2PivrOOQBjMn5a/hv7555+mdevW9qSsFSgVhUEFwxkzZvhrWBEdORdjBcI//vjDzkBTCiOwd+9eo9/Pk/Fxxx1HIMyBecKECebbb781+k02lS1btphrr73WaPXk4osvzqFG3pIqwLkjfp8HbS3bvn27+eijj+xqOIEw9zHSpLNC0cCBA20lChlaKVu/fn0wW8+1OnjvvfeaNWvWmNq1a9t+dOzY0YbDvn37VhgINdGjMBJqKZbvT31n6XpXY5FtIFy0aJE599xzgxo6AmFQw+Wnsdq2oNmqTz/91Jxxxhm2Ebq4e+edd+xFHSV/gVyMFQg//PBDO/OoWcMOHTqYNm3a5N8YajhK4LHHHjO6yGPLaNU/HA888ID9fMowKhdccIGZOXOmad++fdUr5B1lBDh3xPcDsXDhQvP0008TCPMYIm0RHTdunL0GUVGo6tGjh/nqq6+MVsxCKG+++aZdMVq8eHFpcwcNGmQDw8MPP1xhINSurPPPP980btzY3HLLLaZZs2YhdLcovz83b95srrvuuqwDobaX6nuvRYsWdkddCJ9VAmGQf17V2+hoy1fqCVgnuBdeeIEvOkdDkYuxwviPP/5oV66++eYb+2Wj+7SiL05HTaMaY2yYIRDm9lHQLPeFF15Y5sJHF3m6h0Zboij5CXDuyM+vkO8mEOanq/vPdEGdOnkUTYBoy7mCUghFq8Tvv/9+mQl0TZQp8I0ZMyZtF/Rdri31MtBKs7Yh6zs/xFBYDN+f2QbCv/76y0yaNMk+PE0PQnrrrbfs/a7z5s0rXR2O62eWQBjXkYlRu6IT8GeffVZ6IzcrhG4HyIXx8OHD7RZSzURS3AoUwxeaW5Hsa9OFjx4k8+ijj5a+iRXC7P0yvZJzRyYhf/+eQJi/vSaPtMrauXNnW1lSVghT5fSEZq049evXz95DGVophu/PbANh+bH54YcfTKdOnczcuXNj/yA1AmFof1ke2pvuHhU9aEN/INxD6GZAXBjrPreVK1fam+8pbgWK4QvNrUj2tekewrVr15qXX37Zvol7CLO3y+aVnDuyUfLzGgJh/u7Feg/hjTfeaPr371/hPYTl5bTtUFvsQ3vKqPpRDN+fuQZCrRhefvnlZvbs2fZhM3EuBMI4j06M2qYT10knncRTRgs4JpmMdSO9Hnc8YsQI2woFQN1LoS0kuuDWDeq6cX3w4MEFbGWyqtZviOkfPURJW0a1zVG/KcbTMbP/HERbGrXNXE8ZffbZZ82CBQt4ymj2hBlfWdm5Q9uW7rjjDntu6Nq1K+eOjJr5v0Db/PSbeXoAis7T+skEnTP4PcKq26Y+ZbRu3bpmwIABwT1lVA9XufTSS82oUaPSPmX0yy+/tPenP//886Z58+Z2e6g+M3qYTv369e12U+0Aev3114N6TkCxfH/qb1kPldEqrW7N0XVY9JNr5cdODxDat2+fadeunf171/fd22+/bb/v4n4fIYGw6uenRL5Dy97aqqDHaKtotkoXx9ETsxKJ4rjTmYy7detmb0KPfs9NY6B7B6MS/RSIfnqC4kZAq62pWx1Vqx53HvKT39zIZF+LLo51oaN7jlV0UafVwuiJxdnXxCsrEqjs3LFz5057EaldHX369Ck9f3PuKNznacOGDWV+LkBH0koXT4SuurlWWPT7fXq6o0rLli3N9OnT7T1aIRUFPD1IJiqpf4/Rv9PP8eh+awVCTeJoVSoqCpP6KZOQSrF8f2rbcvT7kfLXLRBffPGFHYryY6eni2rSPnq9Xvvcc8/ZgBj3QiCM+wjFrH06QelGaP1DKYxAVYw1+6/fyNPTX+P+GzeF0aLWUAQ0a6rfaDrzzDNZYS3QoHHuKBAs1XoX0NZo3UsX2g/Sp8JpxUwrTfq+zjSZrok0fbcrWOjhOawue/8IZt2A6Gdn9AZNXNSoUSPr9/p8IYHQpz7HRgABBBBAAAEEEEAAAQQ8ChAIPeJzaAQQQAABBBBAAAEEEEDApwCB0Kc+x0YAAQQQQAABBBBAAAEEPAoQCD3ic2gEEEAAAQQQQAABBBBAwKcAgdCnPsdGAAEEEEAAAQQQQAABBDwKEAg94nNoBBBAAAEEEEAAAQQQQMCnAIHQpz7HRgABBBBAAAEEEEAAAQQ8ChAIPeJzaAQQQAABBBBAAAEEEEDApwCB0Kc+x0YAAQQQQAABBBBAAAEEPAoQCD3ic2gEEEAAAQQQQAABBBBAwKcAgdCnPsdGAAEEEEAAAQQQQAABBDwKEAg94nNoBBBAAAEEEEAAAQQQQMCnAIHQpz7HRgABBBBAAAEEEEAAAQQ8ChAIPeJzaAQQQAABBBBAAAEEEEDApwCB0Kc+x0YAAQQQQAABBBBAAAEEPAoQCD3ic2gEEEAAAQQQQAABBBBAwKcAgdCnPsdGAAEEEEAAAQQQQAABBDwKEAg94nNoBBBAAAEEEEAAAQQQQMCnAIHQpz7HRgABBBBAAAEEEEAAAQQ8ChAIPeJzaAQQQAABBBBAAAEEEEDApwCB0Kc+x0YAAQQQQAABBBBAAAEEPAoQCD3ic2gEEEAAAQQQQAABBBBAwKcAgdCnPsdGAAEEEEAAAQQQQAABBDwKEAg94nNoBBBAAAEEEEAAAQQQQMCnAIHQpz7HRgABBBBAAAEEEEAAAQQ8ChAIPeJzaAQQQAABBBBAAAEEEEDApwCB0Kc+x0YAAQQQQAABBBBAAAEEPAoQCD3ic2gEEEAAAQQQQAABBBBAwKcAgdCnPsdGAAEEEEAAAQQQQAABBDwKEAg94nNoBBBAAAEEEEAAAQQQQMCnAIHQpz7HRgABBBBAAAEEEEAAAQQ8ChAIPeJzaAQQQAABBBBAAAEEEEDApwCB0Kc+x0YAAQQQQAABBBBAAAEEPAoQCD3ic2gEEEAAAQQQQAABBBBAwKcAgdCnPsdGAAEEEEAAAQQQQAABBDwKEAg94nNoBBBAAAEEEEAAAQQQQMCnAIHQpz7HRgABBBBAAAEEEEAAAQQ8CvwfkSqWbM0UTRMAAAAASUVORK5CYII=" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from estimagic import lollipop_plot\n", + "\n", + "sensitivity_data = res.sensitivity(kind=\"bias\").abs().T\n", + "\n", + "fig = lollipop_plot(sensitivity_data)\n", + "\n", + "fig = fig.update_layout(height=500, width=900)\n", + "fig.show(renderer=\"png\")" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "estimagic", + "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.10.14" + }, + "vscode": { + "interpreter": { + "hash": "e8a16b1bdcc80285313db4674a5df2a5a80c75795379c5d9f174c7c712f05b3a" + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/docs/source/explanations/optimization/explanation_of_numerical_optimizers.md b/docs/source/explanation/explanation_of_numerical_optimizers.md similarity index 98% rename from docs/source/explanations/optimization/explanation_of_numerical_optimizers.md rename to docs/source/explanation/explanation_of_numerical_optimizers.md index 73b4483e9..45f99fa93 100644 --- a/docs/source/explanations/optimization/explanation_of_numerical_optimizers.md +++ b/docs/source/explanation/explanation_of_numerical_optimizers.md @@ -14,7 +14,7 @@ The main principles we describe here are: - Derivative free trust region algorithms - Derivative free direct search algorithms -This covers a large range of the algorithms that come with estimagic. We do currently +This covers a large range of the algorithms that come with optimagic. We do currently not cover: - Conjugate gradient methods diff --git a/docs/source/explanations/optimization/implementation_of_constraints.md b/docs/source/explanation/implementation_of_constraints.md similarity index 96% rename from docs/source/explanations/optimization/implementation_of_constraints.md rename to docs/source/explanation/implementation_of_constraints.md index 2836252d7..06bc39f22 100644 --- a/docs/source/explanations/optimization/implementation_of_constraints.md +++ b/docs/source/explanation/implementation_of_constraints.md @@ -2,7 +2,7 @@ # How constraints are implemented -Most of the optimizers wrapped in estimagic cannot deal natively with anything but box +Most of the optimizers wrapped in optimagic cannot deal natively with anything but box constraints. So the problem they can solve is: $$ @@ -23,9 +23,9 @@ box constraints, into constrained optimizers: Reparametrization and penalties. B explain what both approaches are, why we chose the reparametrization approach over penalties, and which reparametrizations we are using for each type of constraint. -In this text, we focus on constraints that can be solved by estimagic via bijective and +In this text, we focus on constraints that can be solved by optimagic via bijective and differentiable transformations. General nonlinear constraints do not fall into this -category. If you want to use nonlinear constraints, you can still do so, but estimagic +category. If you want to use nonlinear constraints, you can still do so, but optimagic will simply pass the constraints to your chosen optimizer. See {ref}`constraints` for more details. @@ -67,14 +67,14 @@ g(\tilde{x}) = (\tilde{x}, 5 - \tilde{x}) $$ Typically, users implement such reparametrizations manually and write functions to -convert between the parameters of interest and their reparametrized version. Estimagic +convert between the parameters of interest and their reparametrized version. optimagic does this for you, for a large number of constraints that are typically used in econometric applications. For this approach to be efficient, it is crucial that the reparametrizations preserve desirable properties of the original problem. In particular, the mapping $g$ should be differentiable and if possible linear. Moreover, the dimensionality of $\tilde{x}$ -should be chosen as small as possible. Estimagic only implements constraints that can be +should be chosen as small as possible. optimagic only implements constraints that can be enforced with differentiable transformations and always achieves full dimensionality reduction. @@ -89,7 +89,7 @@ While the generality and conceptual simplicity of this approach is attractive, i has its drawbacks. Applying penalties in a naive way can introduce kinks, discontinuities, and even local optima into the penalized criterion. -## What estimagic does +## What optimagic does We chose to implement constraints via reparametrizations for the following reasons: @@ -215,6 +215,6 @@ or other constraints on any of the involved parameters. **References** ```{eval-rst} -.. bibliography:: ../../refs.bib +.. bibliography:: ../refs.bib :filter: docname in docnames ``` diff --git a/docs/source/explanation/index.md b/docs/source/explanation/index.md new file mode 100644 index 000000000..05f576f1b --- /dev/null +++ b/docs/source/explanation/index.md @@ -0,0 +1,16 @@ +# Explanation + +This section provides background information on numerical topics and details of +optimagic. It is completely optional and not necessary if you are just starting out. + +```{toctree} +--- +maxdepth: 1 +--- +implementation_of_constraints +internal_optimizers +why_optimization_is_hard.ipynb +explanation_of_numerical_optimizers +tests_for_supported_optimizers +numdiff_background +``` diff --git a/docs/source/explanations/optimization/internal_optimizers.md b/docs/source/explanation/internal_optimizers.md similarity index 91% rename from docs/source/explanations/optimization/internal_optimizers.md rename to docs/source/explanation/internal_optimizers.md index 8c7a6c158..a99b56348 100644 --- a/docs/source/explanations/optimization/internal_optimizers.md +++ b/docs/source/explanation/internal_optimizers.md @@ -1,20 +1,20 @@ (internal_optimizer_interface)= -# Internal optimizers for estimagic +# Internal optimizers for optimagic -estimagic provides a large collection of optimization algorithm that can be used by +optimagic provides a large collection of optimization algorithm that can be used by passing the algorithm name as `algorithm` into `maximize` or `minimize`. Advanced users -can also use estimagic with their own algorithm, as long as it conforms with the +can also use optimagic with their own algorithm, as long as it conforms with the internal optimizer interface. -The advantages of using the algorithm with estimagic over using it directly are: +The advantages of using the algorithm with optimagic over using it directly are: -- estimagic turns an unconstrained optimizer into constrained ones. +- optimagic turns an unconstrained optimizer into constrained ones. - You can use logging. - You get great error handling for exceptions in the criterion function or gradient. - You get a parallelized and customizable numerical gradient if the user did not provide a closed form gradient. -- You can compare your optimizer with all the other estimagic optimizers by changing +- You can compare your optimizer with all the other optimagic optimizers by changing only one line of code. All of this functionality is achieved by transforming a more complicated user provided @@ -28,7 +28,7 @@ few conditions. In our experience, it is not hard to wrap any optimizer into thi interface. The mandatory conditions for an internal optimizer function are: 1. It is decorated with the `mark_minimizer` decorator and thus carries information that - tells estimagic how to use the internal optimizer. + tells optimagic how to use the internal optimizer. 1. It uses the standard names for the arguments that describe the optimization problem: @@ -78,8 +78,8 @@ Since some optimizers support many tuning parameters we group some of them by th part of their name (e.g. all convergence criteria names start with `convergence`). See {ref}`list_of_algorithms` for the signatures of the provided internal optimizers. -The preferred default values can be imported from `estimagic.optimization.algo_options` -which are documented in {ref}`algo_options`. If you add a new optimizer to estimagic you +The preferred default values can be imported from `optimagic.optimization.algo_options` +which are documented in {ref}`algo_options`. If you add a new optimizer to optimagic you should only deviate from them if you have good reasons. Note that a complete harmonization is not possible nor desirable, because often @@ -90,7 +90,7 @@ the exact meaning of all options for all optimizers. ## Algorithms that parallelize Algorithms can evaluate the criterion function in parallel. To make such a parallel -algorithm fully compatible with estimagic (including history collection and benchmarking +algorithm fully compatible with optimagic (including history collection and benchmarking functionality), the following conditions need to be fulfilled: - The algorithm has an argument called `n_cores` which determines how many cores are @@ -111,7 +111,7 @@ collection by using `mark_minimizer(..., disable_history=True)`. ## Nonlinear constraints -Estimagic can pass nonlinear constraints to the internal optimizer. The internal +optimagic can pass nonlinear constraints to the internal optimizer. The internal interface for nonlinear constraints is as follows. A nonlinear constraint is a `list` of `dict` 's, where each `dict` represents a group of diff --git a/docs/source/explanations/differentiation/background_numerical_differentiation.md b/docs/source/explanation/numdiff_background.md similarity index 98% rename from docs/source/explanations/differentiation/background_numerical_differentiation.md rename to docs/source/explanation/numdiff_background.md index b3538c397..2f55627bf 100644 --- a/docs/source/explanations/differentiation/background_numerical_differentiation.md +++ b/docs/source/explanation/numdiff_background.md @@ -70,6 +70,6 @@ central differences. **References:** ```{eval-rst} -.. bibliography:: ../../refs.bib +.. bibliography:: ../refs.bib :filter: docname in docnames ``` diff --git a/docs/source/explanations/optimization/tests_for_supported_optimizers.md b/docs/source/explanation/tests_for_supported_optimizers.md similarity index 98% rename from docs/source/explanations/optimization/tests_for_supported_optimizers.md rename to docs/source/explanation/tests_for_supported_optimizers.md index 5e9afa897..503e91bb4 100644 --- a/docs/source/explanations/optimization/tests_for_supported_optimizers.md +++ b/docs/source/explanation/tests_for_supported_optimizers.md @@ -1,6 +1,6 @@ # How supported optimization algorithms are tested -estimagic provides a unified interface that supports a large number of optimization +optimagic provides a unified interface that supports a large number of optimization algorithms from different libraries. Additionally, it allows putting constraints on the optimization problem. To test the external interface of all supported algorithms, we consider different criterion (benchmark) functions and test each algorithm with every @@ -42,7 +42,7 @@ for rotated hyper ellipsoid, we implement the following functions: - rotated_hyper_ellipsoid_criterion_and_gradient These criterion functions are specified in the `examples` directory. For an overview of -all constraints supported in estimagic, please see [this how-to guide]. +all constraints supported in optimagic, please see [this how-to guide]. We write several test functions, each corresponding to the case of one constraint. Given the constraint, the test function considers all possible combinations of the algorithm, @@ -457,4 +457,4 @@ Global minima: $x* = (1, 1, 1)$ > No solution available. > ``` -[this how-to guide]: ../../how_to_guides/optimization/how_to_specify_constraints.md +[this how-to guide]: ../how_to/how_to_constraints.md diff --git a/docs/source/explanations/optimization/why_optimization_is_hard.ipynb b/docs/source/explanation/why_optimization_is_hard.ipynb similarity index 99% rename from docs/source/explanations/optimization/why_optimization_is_hard.ipynb rename to docs/source/explanation/why_optimization_is_hard.ipynb index 680c3e3ef..c9b99aaaa 100644 --- a/docs/source/explanations/optimization/why_optimization_is_hard.ipynb +++ b/docs/source/explanation/why_optimization_is_hard.ipynb @@ -9,7 +9,7 @@ "This tutorial shows why optimization is difficult and why you need some knowledge in order to solve optimization problems efficiently. It is meant for people who have no previous experience with numerical optimization and wonder why there are so many optimization algorithms and still none that works for all problems. For each potential problem we highlight, we also give some ideas on how to solve it. \n", "\n", "\n", - "If you simply want to learn the mechanics of doing optimization with estimagic, check out the [quickstart guide](../../getting_started/first_optimization_with_estimagic.ipynb)\n", + "If you simply want to learn the mechanics of doing optimization with optimagic, check out the [quickstart guide](../tutorials/optimization_overview.ipynb)\n", "\n", "\n", "The take-home message of this notebook can be summarized as follows:\n", @@ -18,7 +18,7 @@ "- If you have more than a hand full of parameters, these methods would take too long.\n", "- Thus, you have to know the properties of your optimization problem and have knowledge about different optimization algorithms in order to choose the right algorithm for your problem. \n", "\n", - "This tutorial uses variants of the sphere function from the [quickstart guide](../../getting_started/first_optimization_with_estimagic.ipynb)." + "This tutorial uses variants of the sphere function from the [quickstart guide](../tutorials/optimization_overview.ipynb)." ] }, { @@ -27,7 +27,7 @@ "metadata": {}, "outputs": [], "source": [ - "import estimagic as em\n", + "import optimagic as om\n", "import numpy as np\n", "import pandas as pd\n", "import seaborn as sns" @@ -65,7 +65,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAhYAAAGsCAYAAACB/u5dAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAAArrElEQVR4nO3de3RU5b3/8c9kkkzugwnkBgEiBi/cJWi5eGuVlipLTlvbWi+grUv6Q4Hya6vUXtQCEdu67E+WWDgWsYh47BH1nFYt2gLeaAOIF7BJwAgRCeEiM7mQSTKzf38kMyRAIJOZyd4z836ttZfMZM/sb5yl8+HZz/d5bIZhGAIAAAiDBLMLAAAAsYNgAQAAwoZgAQAAwoZgAQAAwoZgAQAAwoZgAQAAwoZgAQAAwoZgAQAAwoZgAQAAwoZgAQAAwsa0YLF582ZNnz5dhYWFstlsevHFF4N6fXNzs2bNmqVRo0YpMTFRM2bMOO15zzzzjMaMGaO0tDQVFBTotttu05EjR0L/BQAAwClMCxaNjY0aM2aMli1b1qvXe71epaamau7cubr66qtPe85bb72lW2+9Vd///ve1c+dOPf/88yovL9cPfvCDUEoHAADdMC1YTJs2TYsWLdI3vvGN0/68paVFP/3pTzVw4EClp6fr0ksv1caNGwM/T09P1/Lly3XHHXcoPz//tO+xZcsWDR06VHPnzlVxcbGmTJmiO++8U1u3bo3ErwQAQNyz7ByL2267TW+//bbWrVunDz74QDfccIO+9rWvqaqqqsfvMWnSJH322Wf661//KsMwdPDgQf35z3/WtddeG8HKAQCIX5YMFnv27NGzzz6r559/XpdddpmGDRumH//4x5oyZYpWrVrV4/eZNGmSnnnmGX3nO99RcnKy8vPz1a9fPz322GMRrB4AgPhlyWCxfft2GYah4cOHKyMjI3Bs2rRJe/bs6fH77Nq1S3PnztUvf/lLbdu2Ta+++qqqq6s1e/bsCFYPAED8SjS7gNPx+Xyy2+3atm2b7HZ7l59lZGT0+H3Kyso0efJk/eQnP5EkjR49Wunp6brsssu0aNEiFRQUhLVuAADinSWDxbhx4+T1elVXV6fLLrus1+/T1NSkxMSuv6I/qBiGEVKNAADgVKYFi4aGBu3evTvwuLq6Wjt27FB2draGDx+um266Sbfeeqt+97vfady4cTp8+LD+/ve/a9SoUfr6178uqf1WR0tLi44ePar6+nrt2LFDkjR27FhJ0vTp03XHHXdo+fLl+upXv6oDBw5o/vz5uuSSS1RYWNjXvzIAADHPZpj0V/eNGzfqqquuOuX5mTNn6qmnnlJra6sWLVqkp59+Wvv371dOTo4mTpyoBx54QKNGjZIkDR06VHv37j3lPTr/So899pieeOIJVVdXq1+/fvryl7+spUuXauDAgZH75QAAiFOmBQsAABB7LNkVAgAAohPBAgAAhE2fT970+Xz6/PPPlZmZKZvN1teXBwAAvWAYhurr61VYWKiEhO7HJfo8WHz++ecqKirq68sCAIAwqKmp0aBBg7r9eZ8Hi8zMTEnthWVlZfX15QEAQC+43W4VFRUFvse7E1SwaGtr0/33369nnnlGtbW1Kigo0KxZs/Tzn//8jMMinflvf2RlZREsAACIMmebxhBUsFi6dKmeeOIJrV69WiNGjNDWrVt12223yel0at68eSEVCgAAol9QweLdd9/V9ddfH9h2fOjQoXr22We1devWiBQHAACiS1DtplOmTNEbb7yhyspKSdL777+vt956K7DE9ul4PB653e4uBwAAiE1BjVjcc889crlcuuCCC2S32+X1erV48WLdeOON3b6mrKxMDzzwQMiFAgAA6wtqxOK5557TmjVrtHbtWm3fvl2rV6/Wb3/7W61evbrb1yxcuFAulytw1NTUhFw0AACwpqD2CikqKtK9996rOXPmBJ5btGiR1qxZo3//+989eg+32y2n0ymXy0VXCAAAUaKn399BjVg0NTWd0lZqt9vl8/l6VyUAAIgpQc2xmD59uhYvXqzBgwdrxIgReu+99/TII4/o9ttvj1R9AAAgigR1K6S+vl6/+MUvtH79etXV1amwsFA33nijfvnLXyo5OblH78GtEAAAok9Pv7+DChbhQLAAACD6RGSOBQAAwJkQLAAAQNj0+e6mAAAgMn710kdypibplolDNSDTYUoNBAsAAGJAc6tXa/65T16foZu+NMS0OrgVAgBADPjkUKO8PkPO1CTlmjRaIREsAACICZUH6yVJw/MyZLPZTKuDYAEAQAyoCASLTFPrIFgAABADKmvbg8X5+QQLAAAQoso6RiwAAEAYNHraVHP0uCSCBQAACFFVXYMkqX+GQ9npPdu7K1IIFgAARLkT8ysyTK6EYAEA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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAhYAAAGsCAYAAACB/u5dAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/TGe4hAAAACXBIWXMAAA9hAAAPYQGoP6dpAAArrElEQVR4nO3de3RU5b3/8c9kkkzugwnkBgEiBi/cJWi5eGuVlipLTlvbWi+grUv6Q4Hya6vUXtQCEdu67E+WWDgWsYh47BH1nFYt2gLeaAOIF7BJwAgRCeEiM7mQSTKzf38kMyRAIJOZyd4z836ttZfMZM/sb5yl8+HZz/d5bIZhGAIAAAiDBLMLAAAAsYNgAQAAwoZgAQAAwoZgAQAAwoZgAQAAwoZgAQAAwoZgAQAAwoZgAQAAwoZgAQAAwoZgAQAAwsa0YLF582ZNnz5dhYWFstlsevHFF4N6fXNzs2bNmqVRo0YpMTFRM2bMOO15zzzzjMaMGaO0tDQVFBTotttu05EjR0L/BQAAwClMCxaNjY0aM2aMli1b1qvXe71epaamau7cubr66qtPe85bb72lW2+9Vd///ve1c+dOPf/88yovL9cPfvCDUEoHAADdMC1YTJs2TYsWLdI3vvGN0/68paVFP/3pTzVw4EClp6fr0ksv1caNGwM/T09P1/Lly3XHHXcoPz//tO+xZcsWDR06VHPnzlVxcbGmTJmiO++8U1u3bo3ErwQAQNyz7ByL2267TW+//bbWrVunDz74QDfccIO+9rWvqaqqqsfvMWnSJH322Wf661//KsMwdPDgQf35z3/WtddeG8HKAQCIX5YMFnv27NGzzz6r559/XpdddpmGDRumH//4x5oyZYpWrVrV4/eZNGmSnnnmGX3nO99RcnKy8vPz1a9fPz322GMRrB4AgPhlyWCxfft2GYah4cOHKyMjI3Bs2rRJe/bs6fH77Nq1S3PnztUvf/lLbdu2Ta+++qqqq6s1e/bsCFYPAED8SjS7gNPx+Xyy2+3atm2b7HZ7l59lZGT0+H3Kyso0efJk/eQnP5EkjR49Wunp6brsssu0aNEiFRQUhLVuAADinSWDxbhx4+T1elVXV6fLLrus1+/T1NSkxMSuv6I/qBiGEVKNAADgVKYFi4aGBu3evTvwuLq6Wjt27FB2draGDx+um266Sbfeeqt+97vfady4cTp8+LD+/ve/a9SoUfr6178uqf1WR0tLi44ePar6+nrt2LFDkjR27FhJ0vTp03XHHXdo+fLl+upXv6oDBw5o/vz5uuSSS1RYWNjXvzIAADHPZpj0V/eNGzfqqquuOuX5mTNn6qmnnlJra6sWLVqkp59+Wvv371dOTo4mTpyoBx54QKNGjZIkDR06VHv37j3lPTr/So899pieeOIJVVdXq1+/fvryl7+spUuXauDAgZH75QAAiFOmBQsAABB7LNkVAgAAohPBAgAAhE2fT970+Xz6/PPPlZmZKZvN1teXBwAAvWAYhurr61VYWKiEhO7HJfo8WHz++ecqKirq68sCAIAwqKmp0aBBg7r9eZ8Hi8zMTEnthWVlZfX15QEAQC+43W4VFRUFvse7E1SwaGtr0/33369nnnlGtbW1Kigo0KxZs/Tzn//8jMMinflvf2RlZREsAACIMmebxhBUsFi6dKmeeOIJrV69WiNGjNDWrVt12223yel0at68eSEVCgAAol9QweLdd9/V9ddfH9h2fOjQoXr22We1devWiBQHAACiS1DtplOmTNEbb7yhyspKSdL777+vt956K7DE9ul4PB653e4uBwAAiE1BjVjcc889crlcuuCCC2S32+X1erV48WLdeOON3b6mrKxMDzzwQMiFAgAA6wtqxOK5557TmjVrtHbtWm3fvl2rV6/Wb3/7W61evbrb1yxcuFAulytw1NTUhFw0AACwpqD2CikqKtK9996rOXPmBJ5btGiR1qxZo3//+989eg+32y2n0ymXy0VXCAAAUaKn399BjVg0NTWd0lZqt9vl8/l6VyUAAIgpQc2xmD59uhYvXqzBgwdrxIgReu+99/TII4/o9ttvj1R9AAAgigR1K6S+vl6/+MUvtH79etXV1amwsFA33nijfvnLXyo5OblH78GtEAAAok9Pv7+DChbhQLAAACD6RGSOBQAAwJkQLAAAQNj0+e6mAAAgMn710kdypibplolDNSDTYUoNBAsAAGJAc6tXa/65T16foZu+NMS0OrgVAgBADPjkUKO8PkPO1CTlmjRaIREsAACICZUH6yVJw/MyZLPZTKuDYAEAQAyoCASLTFPrIFgAABADKmvbg8X5+QQLAAAQoso6RiwAAEAYNHraVHP0uCSCBQAACFFVXYMkqX+GQ9npPdu7K1IIFgAARLkT8ysyTK6EYAEAQNSzSkeIRLAAACDq+dewOJ9gAQAAQhVYHMvkVlOJYAEAQFQ71tSig26PJKkklzkWAAAgBJUH2ztCBvZLVWZKksnVECwAAIhqFZ32CLECggUAAFHM32pqhfkVEsECAICoZqWOEIlgAQBA1DIMo9N26QQLAAAQgkMNHn3R1KoEm3SeBTpCJIIFAABRq7K2vSNkSE66UpLsJlfTjmABAECUslpHiESwAAAgalVZbOKmRLAAACBqVVhoKW8/ggUAAFHIMIwTa1gwYgEAAEKx/9hxNbZ4lWS3aWhOutnlBBAsAACIQv71K87tn6HkROt8nVunEgAA0GP+zcesNL9CIlgAABCV/PMrzrdQq6lEsAAAICpVWGwpbz+CBQAAUcbrM1RV13ErJJqDxdChQ2Wz2U455syZE6n6AADASfYeaVRLm08pSQkqyk4zu5wuEoM5uby8XF6vN/D4o48+0jXXXKMbbrgh7IUBAIDT80/cLMnNlD3BZnI1XQUVLAYMGNDl8UMPPaRhw4bpiiuuCGtRAACge1bbKr2zoIJFZy0tLVqzZo0WLFggm637tOTxeOTxeAKP3W53by8JAAB0YuLm+fnW6giRQpi8+eKLL+rYsWOaNWvWGc8rKyuT0+kMHEVFRb29JAAA0IlW0xILjlj0Olg8+eSTmjZtmgoLC8943sKFC+VyuQJHTU1Nby8JAEDc87R5VX24UZK1djX169WtkL179+r111/XCy+8cNZzHQ6HHA5Hby4DAABOUn24UW0+Q5mORBU4U8wu5xS9GrFYtWqVcnNzde2114a7HgAAcAadl/I+0xxHswQdLHw+n1atWqWZM2cqMbHXcz8BAEAvWHGr9M6CDhavv/669u3bp9tvvz0S9QAAgDM4sZS39TpCpF7MsZg6daoMw4hELQAA4Cz8a1hYceKmxF4hAABEjeMtXu072iTJetul+xEsAACIErvrGmQYUk56svpnWLPjkmABAECUsOpW6Z0RLAAAiBKB+RUWvQ0iESwAAIgaFYGlvK3ZESIRLAAAiBpW7wiRCBYAAEQFd3OrDriaJVlz8zE/ggUAAFGgqmO0osCZImdqksnVdI9gAQBAFKio7dgjxMKjFRLBAgCAqFBp8aW8/QgWAABEgQqLbz7mR7AAACAKRMMaFhLBAgAAyzvc4NGRxhbZbNJ5udwKAQAAIfCPVgzOTlNactAbk/cpggUAABZXGSXzKySCBQAAlldx0N9qau3bIBLBAgAAy6uMgl1N/QgWAABYmGEYUdMRIhEsAACwtFp3s+qb25SYYNO5/bkVAgAAQuBfGKu4f7qSE63/tW39CgEAiGPRNL9CIlgAAGBp0bL5mB/BAgAAC6uq80/ctP78ColgAQCAZfl8BrdCAABAeNR80aTmVp+SExM0JCfd7HJ6hGABAIBF+TtCzhuQIXuCzeRqeoZgAQCARUXTwlh+BAsAACzqxB4hBAsAABCiqoPR1REiESwAALCkVq9Pew4xYgEAAMLg08ONavUaSk+2a2C/VLPL6TGCBQAAFlTRcRukJC9TNlt0dIRIvQgW+/fv180336ycnBylpaVp7Nix2rZtWyRqAwAgblV2tJqeH0W3QSQpMZiTv/jiC02ePFlXXXWVXnnlFeXm5mrPnj3q169fhMoDACA+Vfo7QqKo1VQKMlgsXbpURUVFWrVqVeC5oUOHhrsmAADiXmANiygbsQjqVsjLL7+s0tJS3XDDDcrNzdW4ceO0cuXKM77G4/HI7XZ3OQAAQPeaW7369EijJGl4FLWaSkEGi08++UTLly9XSUmJXnvtNc2ePVtz587V008/3e1rysrK5HQ6A0dRUVHIRQMAEMt21zXIZ0j90pI0IMNhdjlBsRmGYfT05OTkZJWWluqdd94JPDd37lyVl5fr3XffPe1rPB6PPB5P4LHb7VZRUZFcLpeysrJCKB0AgNj0wvbPtOC/3tclxdn6rzsnml2OpPbvb6fTedbv76BGLAoKCnTRRRd1ee7CCy/Uvn37un2Nw+FQVlZWlwMAAHTPP3Ez2uZXSEEGi8mTJ6uioqLLc5WVlRoyZEhYiwIAIJ75J25GW0eIFGSw+NGPfqQtW7ZoyZIl2r17t9auXasVK1Zozpw5kaoPAIC4UxGla1hIQQaLCRMmaP369Xr22Wc1cuRI/frXv9ajjz6qm266KVL1AQAQV+qbW7X/2HFJ0vC86OoIkYJcx0KSrrvuOl133XWRqAUAgLhXVdc+vyI306F+ackmVxM89goBAMBCTmyVHn23QSSCBQAAllJRG31bpXdGsAAAwEKidSlvP4IFAAAWUhHFraYSwQIAAMs42tiiQ/Xtq1WX5EZfR4hEsAAAwDL8t0EGnZOqdEfQjZuWQLAAAMAiqqJ8foVEsAAAwDKifX6FRLAAAMAyKmujd/MxP4IFAAAWYBhGYMSiJAqX8vYjWAAAYAF19R65jrcqwSYNG0CwAAAAIfB3hAztn66UJLvJ1fQewQIAAAuI5q3SOyNYAABgAf4Ri2jdI8SPYAEAgAVUHOzoCIniVlOJYAEAgOl8PiOwONbwKO4IkQgWAACYbv+x42pq8SrZnqAhOelmlxMSggUAACbzz684d0C6kuzR/dUc3dUDABAD/AtjRfv8ColgAQCA6SprY6MjRCJYAABgOn9HCMECAACEpM3r05666N98zI9gAQCAifYebVKL16fUJLsGnZNqdjkhI1gAAGCiE/MrMpSQYDO5mtARLAAAMFFFjCzl7UewAADARLGyR4gfwQIAABP5dzUdHgNrWEgECwAATONp8+rTI02SYqMjRCJYAABgmk8ONcrrM5SVkqi8LIfZ5YQFwQIAAJNUdlrK22aL/o4QiWABAIBpKmJoKW8/ggUAACaJtY4QKchgcf/998tms3U58vPzI1UbAAAxrTKG9gjxSwz2BSNGjNDrr78eeGy328NaEAAA8aCppU37jrZ3hAzPyzC5mvAJOlgkJiYySgEAQIiqOkYr+mc4lJMRGx0hUi/mWFRVVamwsFDFxcX67ne/q08++eSM53s8Hrnd7i4HAADxriLQERI7oxVSkMHi0ksv1dNPP63XXntNK1euVG1trSZNmqQjR450+5qysjI5nc7AUVRUFHLRAABEO//mYyW5sTO/QgoyWEybNk3f/OY3NWrUKF199dX6y1/+IklavXp1t69ZuHChXC5X4KipqQmtYgAAYkBFpzUsYknQcyw6S09P16hRo1RVVdXtOQ6HQw5H7Nw7AgAgHKpisCNECnEdC4/Ho48//lgFBQXhqgcAgJjnampVrbtZUmx1hEhBBosf//jH2rRpk6qrq/XPf/5T3/rWt+R2uzVz5sxI1QcAQMyprGu/DTKwX6oyU5JMria8groV8tlnn+nGG2/U4cOHNWDAAH3pS1/Sli1bNGTIkEjVBwBAzPEv5V0SY6MVUpDBYt26dZGqAwCAuBHYfCzG5ldI7BUCAECfi8U9QvwIFgAA9CHDMAK3QmKt1VQiWAAA0KcON7Toi6ZW2WzSebmxN8eCYAEAQB/y3wYZmpOulKTY28iTYAEAQB8KdITE4GiFRLAAAKBPVdXF7vwKiWABAECf8o9YxGJHiESwAACgzxiGocqOPUIYsQAAACH53NWsBk+bkuw2Dc1JN7uciCBYAADQRyo7boMU909XcmJsfgXH5m8FAIAFxfKKm34ECwAA+khFDO8R4kewAACgjwRGLGJ04qZEsAAAoE94fYaq/B0hjFgAAIBQ7DvaJE+bT47EBBVlp5ldTsQQLAAA6AOBpbzzMmRPsJlcTeQQLAAA6ANVcdARIhEsAADoE/HQESIRLAAA6BPx0BEiESwAAIi4ljafPjnUKIkRCwAAEKLqw41q8xnKdCSqwJlidjkRRbAAACDC/LdBSvIyZLPFbkeIRLAAACDi/MEiVrdK74xgAQBAhPnXsIj1VlOJYAEAQMRVxkmrqUSwAAAgoo63eLX3aJMkqYRgAQAAQrHnUIMMQ8pOT1b/jGSzy4k4ggUAABF0Yn5F7HeESAQLAAAiKp7mV0gECwAAIqoiTpby9iNYAAAQQZW1jFgAAIAwcDe36nNXs6T46AiRQgwWZWVlstlsmj9/fpjKAQAgdlQdbJAk5WelyJmaZHI1faPXwaK8vFwrVqzQ6NGjw1kPAAAxI162Su+sV8GioaFBN910k1auXKlzzjkn3DUBABATKgLzKzJMrqTv9CpYzJkzR9dee62uvvrqs57r8Xjkdru7HAAAxIPAiEWczK+QpMRgX7Bu3Tpt375d5eXlPTq/rKxMDzzwQNCFAQAQ7eIxWAQ1YlFTU6N58+ZpzZo1SklJ6dFrFi5cKJfLFThqamp6VSgAANHkSINHhxtaJEklcXQrJKgRi23btqmurk7jx48PPOf1erV582YtW7ZMHo9Hdru9y2scDoccDkd4qgUAIEpUdnSEDM5OU1py0DcIolZQv+lXvvIVffjhh12eu+2223TBBRfonnvuOSVUAAAQr+LxNogUZLDIzMzUyJEjuzyXnp6unJycU54HACCe+ZfyPj8/fm6DSKy8CQBARFTWMmLRKxs3bgxDGQAAxA7DMOL2VggjFgAAhNlBt0fu5jbZE2w6d0C62eX0KYIFAABh5p9fUdw/XY7E+GpsIFgAABBm8bZVemcECwAAwqwiTudXSAQLAADC7sTEzfhqNZUIFgAAhJXPZ6iqY9XNeNou3Y9gAQBAGH32xXEdb/UqOTFBQ7LTzC6nzxEsAAAII//8ivMGZCjRHn9fs/H3GwMAEEGVgaW84+82iESwAAAgrCo6Wk3jaav0zggWAACEUWDEIg5bTSWCBQAAYdPq9emTQ42S4nMNC4lgAQBA2Ow90qgWr0/pyXYN7JdqdjmmIFgAABAmFbXt61eU5GUqIcFmcjXmIFgAABAmFXG84qYfwQIAgDCpiuM9QvwIFgAAhElFnK9hIREsAAAIi+ZWrz493N4REq+tphLBAgCAsNhzqEE+Q+qXlqQBmQ6zyzENwQIAgDCo7DS/wmaLz44QiWABAEBYVPq3So/jjhCJYAEAQFhU1sb3Ut5+BAsAAMKgglZTSQQLAABC1uBp02dfHJdEsCBYAAAQIv/CWLmZDp2TnmxyNeYiWAAAEKJKboMEECwAAAjRiY4QggXBAgCAEFUGlvKO71ZTiWABAEDIKmq5FeJHsAAAIARfNLaort4jSSohWBAsAAAIhf82yKBzUpXhSDS5GvMRLAAACEFlHRM3OyNYAAAQgkrmV3QRVLBYvny5Ro8eraysLGVlZWnixIl65ZVXIlUbAACWV0FHSBdBBYtBgwbpoYce0tatW7V161Z9+ctf1vXXX6+dO3dGqj4AACzLMAwWxzpJULNMpk+f3uXx4sWLtXz5cm3ZskUjRowIa2EAAFjdoXqPjjW1KsEmDRvAiIUUZLDozOv16vnnn1djY6MmTpzY7Xkej0cejyfw2O129/aSAABYin/FzaE56UpJsptcjTUEPXnzww8/VEZGhhwOh2bPnq3169froosu6vb8srIyOZ3OwFFUVBRSwQAAWAVbpZ8q6GBx/vnna8eOHdqyZYt++MMfaubMmdq1a1e35y9cuFAulytw1NTUhFQwAABWEegIySdY+AV9KyQ5OVnnnXeeJKm0tFTl5eX6/e9/rz/84Q+nPd/hcMjhcIRWJQAAFhToCGHEIiDkdSwMw+gyhwIAgHjg8xmqotX0FEGNWPzsZz/TtGnTVFRUpPr6eq1bt04bN27Uq6++Gqn6AACwpP3Hjquxxasku01DctLNLscyggoWBw8e1C233KIDBw7I6XRq9OjRevXVV3XNNddEqj4AACypqq59tGLYgAwl2VnI2i+oYPHkk09Gqg4AAKJKRS17hJwOEQsAgF6oDMyvIFh0RrAAAKAXKth87LQIFgAABMnrM7T7UPutEFpNuyJYAAAQpL1HGtXS5lNqkl2Dzkk1uxxLIVgAABAk//yKkrwMJSTYTK7GWggWAAAEiY6Q7hEsAAAIUiVLeXeLYAEAQJACu5rSanoKggUAAEHwtHn16eFGSdLwPPYIORnBAgCAIFQfblSbz1BmSqLys1LMLsdyCBYAAATBvzDW+XmZstnoCDkZwQIAgCBUMr/ijAgWAAAEwd9qSkfI6REsAAAIgn+79BImbp4WwQIAgB5qamnTvqNNkhix6A7BAgCAHtpd1yDDkPpnJCsnw2F2OZZEsAAAoIfYKv3sCBYAAPRQoCOEYNEtggUAAD1UcbCjI4RW024RLAAA6KGqwIgFHSHdIVgAANADruOtOuBqliSVcCukWwQLAAB6wD9aUehMUVZKksnVWBfBAgCAHmCr9J4hWAAA0AOVnTYfQ/cIFgAA9EBlR0cI8yvOjGABAEAP+NewYMTizAgWAACcxeEGj440tshmk87LpdX0TAgWAACchX9+xZDsNKUm202uxtoIFgAAnEUFS3n3GMECAICzqGQp7x4jWAAAcBb+iZt0hJwdwQIAgDMwDIM1LIIQVLAoKyvThAkTlJmZqdzcXM2YMUMVFRWRqg0AANMdcDWr3tOmxASbivunm12O5QUVLDZt2qQ5c+Zoy5Yt2rBhg9ra2jR16lQ1NjZGqj4AAEzln7h57oB0JScy0H82icGc/Oqrr3Z5vGrVKuXm5mrbtm26/PLLw1oYAABW4L8NQkdIzwQVLE7mcrkkSdnZ2d2e4/F45PF4Ao/dbncolwQAoE/5O0IIFj3T6zEdwzC0YMECTZkyRSNHjuz2vLKyMjmdzsBRVFTU20sCANDnKlnDIii9DhZ33XWXPvjgAz377LNnPG/hwoVyuVyBo6ampreXBACgT3l9hqrqOjpCWMOiR3p1K+Tuu+/Wyy+/rM2bN2vQoEFnPNfhcMjhcPSqOAAAzFRztEnNrT45EhM0ODvN7HKiQlDBwjAM3X333Vq/fr02btyo4uLiSNUFAIDpKgILY2XInmAzuZroEFSwmDNnjtauXauXXnpJmZmZqq2tlSQ5nU6lpqZGpEAAAMxS5Z9fkcttkJ4Kao7F8uXL5XK5dOWVV6qgoCBwPPfcc5GqDwAA01T4O0KYX9FjQd8KAQAgXrCUd/BYQgwAgNNoafNpzyFGLIJFsAAA4DQ+PdKoNp+hDEeiCp0pZpcTNQgWAACcxomFsTJks9ER0lMECwAAToM9QnqHYAEAwGlUsJR3rxAsAAA4Df/mYyzlHRyCBQAAJ2lu9erTI42SGLEIFsECAICT7K5rkGFI2enJ6p+RbHY5UYVgAQDASfwdISW5dIQEi2ABAMBJ/BM3mV8RPIIFAAAnodW09wgWAACchI6Q3iNYAADQSX1zq/YfOy6J7dJ7g2ABAEAnVXXtoxV5WQ4505JMrib6ECwAAOiE+RWhIVgAANBJoCOEYNErBAsAADoJ7GrKxM1eIVgAANBJRW1HRwgjFr1CsAAAoMPRxhYdbvBIkkryMkyuJjoRLAAA6OC/DVKUnaq05ESTq4lOBAsAADpUMnEzZAQLAAA6VNBqGjKCBQAAHSrZfCxkBAsAACQZhhHYI4QRi94jWAAAIKmu3iPX8VbZE2w6d0C62eVELYIFAAA6Mb9iaE6aHIl2k6uJXgQLAADE/IpwIVgAACA6QsKFYAEAgFjDIlwIFgCAuOfzGaqq6+gI4VZISAgWAIC4t//YcTW1eJVsT9CQ7DSzy4lqBAsAQNzzz68YlpuhRDtfjaEI+t/e5s2bNX36dBUWFspms+nFF1+MQFkAAPSdisD8CnY0DVXQwaKxsVFjxozRsmXLIlEPAAB9zj9xk/kVoQt6T9hp06Zp2rRpkagFAABT+JfypiMkdBHfbN7j8cjj8QQeu93uSF8SAIAeO9bUoj117BESLhGfoVJWVian0xk4ioqKIn1JAAB65NPDjfqPx99Ri9engf1SNbBfqtklRb2IB4uFCxfK5XIFjpqamkhfEgCAs/pX9VHNePxtVR9u1MB+qfrjrAlKSLCZXVbUi/itEIfDIYfDEenLAADQY+vf+0z3/PlDtXh9GjPIqZUzS5WbmWJ2WTEh4sECAACrMAxDj75epd+/USVJmjYyX498e6xSk9nNNFyCDhYNDQ3avXt34HF1dbV27Nih7OxsDR48OKzFAQAQLp42r+758wd6ccfnkqTZVwzTT796Prc/wizoYLF161ZdddVVgccLFiyQJM2cOVNPPfVU2AoDACBcjja26M4/bVX5p18oMcGmRTNG6ruX8JfhSAg6WFx55ZUyDCMStQAAEHZ7DjXo9qfKtfdIkzJTEvXEzeM1+bz+ZpcVs5hjAQCIWe/uOaLZa7bJdbxVg85J1apZE1TCWhURRbAAAMSkP2/7TAtf+ECtXkPjBvfTyltL1T+DLsVII1gAAGKKz2fokQ2VWvaP9kaD60YX6Lc3jFFKEp0ffYFgAQCIGc2tXv34+ff1vx8ckCTdddV5WnDNcDo/+hDBAgAQE440eHTH01u1fd8xJdltWvIfo3RDKdtI9DWCBQAg6u2uq9dtT5Wr5uhxOVOT9MTN4zVxWI7ZZcUlggUAIKq9vfuwZq/ZpvrmNg3JSdMfZ03QsAEZZpcVtwgWAICo9Vz5Pt23/iO1+QyVDjlHK24tVXZ6stllxTWCBQAg6vh8hh5+rUJPbNojSbp+bKEe/tZoORLp/DAbwQIAEFWOt3i14L926JWPaiVJ875SovlXl8hmo/PDCggWAICoUVffrDue3qb3a44p2Z6gpd8apf8YN8jsstAJwQIAEBUqaut1+1Pl2n/suPqlJWnFLaW6pDjb7LJwEoIFAMDyNlce0pxntqve06bi/un646wJKu6fbnZZOA2CBQDA0p7551798qWd8voMXVKcrT/cPF7n0PlhWQQLAIAleX2GHnrlY618s1qS9I2LB6rsG6Po/LA4ggUAwHKaWto0f90O/W3XQUnS/71muO768nl0fkQBggUAwFIOupv1g9Vb9eF+l5ITE/Sbb43W9WMHml0WeohgAQCwjI8PuHX7U+U64GpWdnqyVt46XuOH0PkRTQgWAABL+Me/63TX2u1qbPFq2ID2zo8hOXR+RBuCBQDAdE+/+6nuf3mnfIY0aViOlt80Xs60JLPLQi8QLAAApvH6DC36yy6tevtTSdK3Swdp0YxRSk5MMLcw9BrBAgBgikZPm+Y++57e+HedJOmnXztfP7xiGJ0fUY5gAQDocwdcx/X9p7Zq1wG3HIkJeuTbY3Xt6AKzy0IYECwAAH3qo/0ufX91uQ66PeqfkawVt5bq4sHnmF0WwoRgAQDoM6/vOqi5695TU4tXJbkZ+uOsCSrKTjO7LIQRwQIAEHGGYWjV25/q13/ZJcOQLivpr2Xfu1jOVDo/Yg3BAgAQUW1enx783116+t29kqQbLxmsB68foSQ7nR+xiGABAIiY+uZW3f3se9pYcUg2m7Rw2gW647Jz6fyIYQQLAEBEfH7suG5/qlz/rq1XSlKCHv3OOH1tZL7ZZSHCCBYAgLD74LNj+v7qrTpU79GATIf+89ZSjSnqZ3ZZ6AMECwBAWL22s1bz1r2n5lafLsjP1JOzJmhgv1Szy0IfIVgAAMLCMAz955vVWvLKxzIM6YrhA7Tse+OUmULnRzzp1ZTcxx9/XMXFxUpJSdH48eP15ptvhrsuAEAUafX6dN+LH2nxX9tDxc1fGqwnZ5YSKuJQ0MHiueee0/z583Xffffpvffe02WXXaZp06Zp3759kagPAGBx7uZW3f5Uudb+c59sNukX112kX18/Uom0k8Ylm2EYRjAvuPTSS3XxxRdr+fLlgecuvPBCzZgxQ2VlZWd9vdvtltPplMvlUlZWVvAVAwAso+Zok76/ulyVBxuUmmTX/7txnK65KM/sshABPf3+DmqORUtLi7Zt26Z77723y/NTp07VO++8c9rXeDweeTyeLoVFwiN/q1C9py0i7w3AOoL7q5C1GYYhnyF5DaP9zz7J1/Fc+z9P/NkwDHl97Y+NTs97fYaMk87v6blGx7V9Hdc+pR7/ub5Tawqc62v/QPKyHHpy5gSNHOg0+d8qzBZUsDh8+LC8Xq/y8rqm0by8PNXW1p72NWVlZXrggQd6X2EPrSuvUV295+wnAgDCavQgp/5wy3gVOOn8QC+7Qk5eMc0wjG5XUVu4cKEWLFgQeOx2u1VUVNSby57RrMlD1ciIBRAXbIqNVRsTbO3/P02w2WRPOPHnBJva/5nQ6c8d59oTbF1el2CT7Am2jsfq+nqbTQmd3tdu6/xanfT+7Yet43HX65x4ztbl/Pb3yElPZiVNBAQVLPr37y+73X7K6ERdXd0poxh+DodDDoej9xX20P+58ryIXwMAAJxZUFN2k5OTNX78eG3YsKHL8xs2bNCkSZPCWhgAAIg+Qd8KWbBggW655RaVlpZq4sSJWrFihfbt26fZs2dHoj4AABBFgg4W3/nOd3TkyBE9+OCDOnDggEaOHKm//vWvGjJkSCTqAwAAUSTodSxCxToWAABEn55+f7MsGgAACBuCBQAACBuCBQAACBuCBQAACBuCBQAACBuCBQAACBuCBQAACBuCBQAACBuCBQAACJtebZseCv9Cn263u68vDQAAesn/vX22Bbv7PFjU19dLkoqKivr60gAAIET19fVyOp3d/rzP9wrx+Xz6/PPPlZmZKZvN1peXjgput1tFRUWqqalhLxUL4POwHj4Ta+HzsJZIfh6GYai+vl6FhYVKSOh+JkWfj1gkJCRo0KBBfX3ZqJOVlcV/pBbC52E9fCbWwudhLZH6PM40UuHH5E0AABA2BAsAABA2BAuLcTgc+tWvfiWHw2F2KRCfhxXxmVgLn4e1WOHz6PPJmwAAIHYxYgEAAMKGYAEAAMKGYAEAAMKGYAEAAMKGYGERZWVlmjBhgjIzM5Wbm6sZM2aooqLC7LLQoaysTDabTfPnzze7lLi1f/9+3XzzzcrJyVFaWprGjh2rbdu2mV1WXGpra9PPf/5zFRcXKzU1Veeee64efPBB+Xw+s0uLG5s3b9b06dNVWFgom82mF198scvPDcPQ/fffr8LCQqWmpurKK6/Uzp07+6Q2goVFbNq0SXPmzNGWLVu0YcMGtbW1aerUqWpsbDS7tLhXXl6uFStWaPTo0WaXEre++OILTZ48WUlJSXrllVe0a9cu/e53v1O/fv3MLi0uLV26VE888YSWLVumjz/+WA8//LB+85vf6LHHHjO7tLjR2NioMWPGaNmyZaf9+cMPP6xHHnlEy5YtU3l5ufLz83XNNdcE9uuKJNpNLerQoUPKzc3Vpk2bdPnll5tdTtxqaGjQxRdfrMcff1yLFi3S2LFj9eijj5pdVty599579fbbb+vNN980uxRIuu6665SXl6cnn3wy8Nw3v/lNpaWl6U9/+pOJlcUnm82m9evXa8aMGZLaRysKCws1f/583XPPPZIkj8ejvLw8LV26VHfeeWdE62HEwqJcLpckKTs72+RK4tucOXN07bXX6uqrrza7lLj28ssvq7S0VDfccINyc3M1btw4rVy50uyy4taUKVP0xhtvqLKyUpL0/vvv66233tLXv/51kyuDJFVXV6u2tlZTp04NPOdwOHTFFVfonXfeifj1+3wTMpydYRhasGCBpkyZopEjR5pdTtxat26dtm/frvLycrNLiXuffPKJli9frgULFuhnP/uZ/vWvf2nu3LlyOBy69dZbzS4v7txzzz1yuVy64IILZLfb5fV6tXjxYt14441mlwZJtbW1kqS8vLwuz+fl5Wnv3r0Rvz7BwoLuuusuffDBB3rrrbfMLiVu1dTUaN68efrb3/6mlJQUs8uJez6fT6WlpVqyZIkkady4cdq5c6eWL19OsDDBc889pzVr1mjt2rUaMWKEduzYofnz56uwsFAzZ840uzx0sNlsXR4bhnHKc5FAsLCYu+++Wy+//LI2b97M9vIm2rZtm+rq6jR+/PjAc16vV5s3b9ayZcvk8Xhkt9tNrDC+FBQU6KKLLury3IUXXqj//u//Nqmi+PaTn/xE9957r7773e9KkkaNGqW9e/eqrKyMYGEB+fn5ktpHLgoKCgLP19XVnTKKEQnMsbAIwzB011136YUXXtDf//53FRcXm11SXPvKV76iDz/8UDt27AgcpaWluummm7Rjxw5CRR+bPHnyKe3XlZWVGjJkiEkVxbempiYlJHT9+rDb7bSbWkRxcbHy8/O1YcOGwHMtLS3atGmTJk2aFPHrM2JhEXPmzNHatWv10ksvKTMzM3CPzOl0KjU11eTq4k9mZuYp81vS09OVk5PDvBcT/OhHP9KkSZO0ZMkSffvb39a//vUvrVixQitWrDC7tLg0ffp0LV68WIMHD9aIESP03nvv6ZFHHtHtt99udmlxo6GhQbt37w48rq6u1o4dO5Sdna3Bgwdr/vz5WrJkiUpKSlRSUqIlS5YoLS1N3/ve9yJfnAFLkHTaY9WqVWaXhg5XXHGFMW/ePLPLiFv/8z//Y4wcOdJwOBzGBRdcYKxYscLskuKW2+025s2bZwwePNhISUkxzj33XOO+++4zPB6P2aXFjX/84x+n/c6YOXOmYRiG4fP5jF/96ldGfn6+4XA4jMsvv9z48MMP+6Q21rEAAABhwxwLAAAQNgQLAAAQNgQLAAAQNgQLAAAQNgQLAAAQNgQLAAAQNgQLAAAQNgQLAAAQNgQLAAAQNgQLAAAQNgQLAAAQNgQLAAAQNv8fpk41LkwtEYIAAAAASUVORK5CYII=", "text/plain": [ "
" ] @@ -103,7 +103,7 @@ "outputs": [ { "data": { - "image/png": "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Zo127dqlF198UQ0bNjQ7Wp01Y8YMvf7665o9e7Z2796tF154Qf/4xz/06quvmh2tTsjPz1ePHj00e/bs837/hRde0EsvvaTZs2dr27ZtCg4O1sCBA8s+z686cVlzHXP8+HE1a9ZM69at07XXXmt2nDorLy9PvXv31pw5c/Tss8+qZ8+emjlzptmx6pzHHntMX375pTZs2GB2FJxz++23KygoSAsXLiwbu/vuu+Xr66ulS5eamKzusVgsWrlypYYMGSKpdHWlRYsWiouL06OPPipJKiwsVFBQkGbMmKEHHnigWvOwwlLH5OTkSJICAwNNTlK3TZw4Ubfddptuuukms6PUaatWrVJERIR+//vfq1mzZurVq5fmz59vdqw67ZprrtHnn3+uvXv3SpJ27NihjRs36tZbbzU5GQ4ePKisrCzFxMSUjdlsNl133XXatGlTtf/8WvPhh/h1hmFo8uTJuuaaa9StWzez49RZb7/9tr766itt27bN7Ch13oEDBzR37lxNnjxZjz/+uLZu3aqHH35YNptNo0aNMjtenfToo48qJydHnTp1koeHhxwOh5577jndc889Zker87KysiRJQUFB5caDgoL0ww8/VPvPp7DUIQ8++KC+/vprbdy40ewodVZGRoYmTZqkzz77TD4+PmbHqfOcTqciIiL0/PPPS5J69eqlnTt3au7cuRQWkyQmJmrZsmVasWKFunbtqrS0NMXFxalFixYaPXq02fGg0reK/pdhGBXGqgOFpY546KGHtGrVKq1fv14tW7Y0O06dlZKSomPHjik8PLxszOFwaP369Zo9e7YKCwvl4eFhYsK6pXnz5urSpUu5sc6dO+u9994zKRH+8pe/6LHHHtMf/vAHSdLVV1+tH374QfHx8RQWkwUHB0sqXWlp3rx52fixY8cqrLpUB85hqeUMw9CDDz6o999/X//5z38UFhZmdqQ67cYbb9Q333yjtLS0si0iIkLDhw9XWloaZeUK69+/f4XL/Pfu3avQ0FCTEuHMmTOyWsu/NHl4eHBZsxsICwtTcHCwkpKSysaKioq0bt069evXr9p/PisstdzEiRO1YsUKffjhh/Lz8yt7DzIgIED16tUzOV3d4+fnV+H8ofr166tx48acV2SCRx55RP369dPzzz+voUOHauvWrZo3b57mzZtndrQ6a/DgwXruuefUqlUrde3aVampqXrppZc0ZswYs6PVCXl5edq/f3/Z1wcPHlRaWpoCAwPVqlUrxcXF6fnnn1f79u3Vvn17Pf/88/L19dWwYcOqP5yBWk3SebdFixaZHQ3nXHfddcakSZPMjlFnffTRR0a3bt0Mm81mdOrUyZg3b57Zkeo0u91uTJo0yWjVqpXh4+NjtGnTxpg6dapRWFhodrQ64Ysvvjjva8bo0aMNwzAMp9NpPP3000ZwcLBhs9mMa6+91vjmm2+uSDbuwwIAANwe57AAAAC3R2EBAABuj8ICAADcHoUFAAC4PQoLAABwexQWAADg9igsAADA7VFYAACA26OwAAAAt0dhAQAAbo/CAgAA3B6FBQAAuL3/B87MV3u+2z/EAAAAAElFTkSuQmCC\n", + "image/png": "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Zo127dqlF198UQ0bNjQ7Wp01Y8YMvf7665o9e7Z2796tF154Qf/4xz/06quvmh2tTsjPz1ePHj00e/bs837/hRde0EsvvaTZs2dr27ZtCg4O1sCBA8s+z686cVlzHXP8+HE1a9ZM69at07XXXmt2nDorLy9PvXv31pw5c/Tss8+qZ8+emjlzptmx6pzHHntMX375pTZs2GB2FJxz++23KygoSAsXLiwbu/vuu+Xr66ulS5eamKzusVgsWrlypYYMGSKpdHWlRYsWiouL06OPPipJKiwsVFBQkGbMmKEHHnigWvOwwlLH5OTkSJICAwNNTlK3TZw4Ubfddptuuukms6PUaatWrVJERIR+//vfq1mzZurVq5fmz59vdqw67ZprrtHnn3+uvXv3SpJ27NihjRs36tZbbzU5GQ4ePKisrCzFxMSUjdlsNl133XXatGlTtf/8WvPhh/h1hmFo8uTJuuaaa9StWzez49RZb7/9tr766itt27bN7Ch13oEDBzR37lxNnjxZjz/+uLZu3aqHH35YNptNo0aNMjtenfToo48qJydHnTp1koeHhxwOh5577jndc889Zker87KysiRJQUFB5caDgoL0ww8/VPvPp7DUIQ8++KC+/vprbdy40ewodVZGRoYmTZqkzz77TD4+PmbHqfOcTqciIiL0/PPPS5J69eqlnTt3au7cuRQWkyQmJmrZsmVasWKFunbtqrS0NMXFxalFixYaPXq02fGg0reK/pdhGBXGqgOFpY546KGHtGrVKq1fv14tW7Y0O06dlZKSomPHjik8PLxszOFwaP369Zo9e7YKCwvl4eFhYsK6pXnz5urSpUu5sc6dO+u9994zKRH+8pe/6LHHHtMf/vAHSdLVV1+tH374QfHx8RQWkwUHB0sqXWlp3rx52fixY8cqrLpUB85hqeUMw9CDDz6o999/X//5z38UFhZmdqQ67cYbb9Q333yjtLS0si0iIkLDhw9XWloaZeUK69+/f4XL/Pfu3avQ0FCTEuHMmTOyWsu/NHl4eHBZsxsICwtTcHCwkpKSysaKioq0bt069evXr9p/PisstdzEiRO1YsUKffjhh/Lz8yt7DzIgIED16tUzOV3d4+fnV+H8ofr166tx48acV2SCRx55RP369dPzzz+voUOHauvWrZo3b57mzZtndrQ6a/DgwXruuefUqlUrde3aVampqXrppZc0ZswYs6PVCXl5edq/f3/Z1wcPHlRaWpoCAwPVqlUrxcXF6fnnn1f79u3Vvn17Pf/88/L19dWwYcOqP5yBWk3SebdFixaZHQ3nXHfddcakSZPMjlFnffTRR0a3bt0Mm81mdOrUyZg3b57Zkeo0u91uTJo0yWjVqpXh4+NjtGnTxpg6dapRWFhodrQ64Ysvvjjva8bo0aMNwzAMp9NpPP3000ZwcLBhs9mMa6+91vjmm2+uSDbuwwIAANwe57AAAAC3R2EBAABuj8ICAADcHoUFAAC4PQoLAABwexQWAADg9igsAADA7VFYAACA26OwAAAAt0dhAQAAbo/CAgAA3B6FBQAAuL3/B87MV3u+2z/EAAAAAElFTkSuQmCC", "text/plain": [ "
" ] @@ -239,7 +239,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAiMAAAGdCAYAAADAAnMpAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAABe0klEQVR4nO3dd3xT5f4H8E9Gk3SXtnTRUsose7Syt1iG8+oVHFcQQUVUBNR7QX5u7wWvysUF6AXELVcBvV4QLMoUECgtQzYUyuighe6VJuf3R2l60pykSdvsz/v16ovkOc9JnkOa5ptnfB+ZIAgCiIiIiJxE7uwGEBERkXdjMEJEREROxWCEiIiInIrBCBERETkVgxEiIiJyKgYjRERE5FQMRoiIiMipGIwQERGRUymd3QBr6PV6XLlyBYGBgZDJZM5uDhEREVlBEASUlJQgJiYGcrn5/g+3CEauXLmCuLg4ZzeDiIiImuDixYuIjY01e9wtgpHAwEAAtRcTFBTk5NYQERGRNYqLixEXF2f4HDfHLYKRuqGZoKAgBiNERERuprEpFpzASkRERE7FYISIiIicisEIERERORWDESIiInIqBiNERETkVAxGiIiIyKkYjBAREZFTMRghIiIip2IwQkRERE7FYISIiIicisEIERERORWDESIiInIqBiNERERe6GpJFZZtO4urJVXObgqDESIiIm8044s0vLnpBG76+xYcuVTk1LYwGCEiIvJCaReuG24/8026E1vCYISIiMjrlVfrnPr8NgcjO3bswO23346YmBjIZDJ8//33jZ6zfft2JCUlQaPRoH379li+fHlT2kpERER2oBcEpz6/zcFIWVkZevfujQ8++MCq+pmZmZgwYQKGDRuG9PR0vPDCC5g1axbWrl1rc2Pt4WpJFbaeyINe79wXgoiIyFmc/QmotPWE8ePHY/z48VbXX758Odq2bYslS5YAALp27YoDBw7g7bffxj333GPr07eoFTvP4Y0NxwEAd/dtg77xrfDQwHintomIiMjRnNwxYv85I3v27EFKSopR2dixY3HgwAFotVrJc6qqqlBcXGz0Yw9HL9fPHl6Xfhkvfn/UqIyIiMg7uNkwja1ycnIQGRlpVBYZGYmamhrk5+dLnrNw4UIEBwcbfuLi4uzStoTwAJOyCwXldnkuIiIiV5VfWo1jV+zzxd8aDllNI5PJjO4LN/qDGpbXmT9/PoqKigw/Fy9etEu7/NUKk7L8UucnfyEiInK003klTntuuwcjUVFRyMnJMSrLy8uDUqlEWFiY5DlqtRpBQUFGP/Zwe+8Yk7Ksa+wZISIizydv0B8QHezrnIbAAcHIoEGDkJqaalT2888/Izk5GT4+PvZ+eosigzR468+9jMqKKqTnsRAREXkSRYNoJCZE46SWNCEYKS0tRUZGBjIyMgDULt3NyMhAVlYWgNohlsmTJxvqz5gxAxcuXMDcuXNx/PhxrFq1CitXrsRzzz3XMlfQTF2iAo3uV2idm/iFiIjIEWQwDkYig5wXjNi8tPfAgQMYNWqU4f7cuXMBAFOmTMHq1auRnZ1tCEwAICEhARs3bsScOXPw4YcfIiYmBu+9957Tl/XWaR2oNrpf6eQsdERERI6g1euN7vsonJeU3eZgZOTIkYYJqFJWr15tUjZixAgcPHjQ1qdyiDB/42CEPSNEROQNxB/lm2YPc15D0IRgxNOolMaRoLPz8xMREdnTpevl2HnaOLVGYpR9FopYy+uDEQCIDFIjt7h2SW8le0aIiMiDDX1zq9H9/zw+yEktqcddewFsemY4Xr+zOwAO0xARkefIK6nE9lNXLU6v8PUxzbnlaAxGALTyV6FffCsAQAWHaYiIyEOMX7ITU1btw4Yj2QCA5dvPmtRRKqQTkDoSg5Eb6iJD9owQEZGnKCirBgCkHssFACz66YRJHWeuoqnj/Ba4CD9V7fSZksoa3P/xXly6zkysRETkGSztyuvDnhHXIR4z23OuAEu2nHZia4iIiFqOThDw2xnpzWkbZmJ1BgYjN/irFRDv26fTO3c7ZSIiopYiCAIeXPG75DGtzvmfdwxGblAq5EaJcWNb1W4YtPtMPvacLbA4E5mIiMjViL9UN0i2ajCwfSjiQ/0c1CLzmGdERNwZ8v6vZ3BX3zZ44EYkOToxAqsevslJLSMiIrJNWXWN4XaNmd7+bx5zfo4RgD0jFs3+JsNw+9cTec5rCBERkY3Kq+pXh245nuvEljSOwYhIw8QvRy4XOaklREREzVNaVdN4JRfBYETks2n9LR7nvBEiInIXZQxG3NNN7ULx/NguZo9X1ZiZAURERORiiiq0kuW9YoMd3JLGcQJrAyoLmeiqavTQuEAOfyIiosZcL6+WLH/rz72x8/RVjOzS2sEtMo89Iw2olOb/S57+Op27+hIRkVsw1zPSys8H04e1R8eIQAe3yDwGIw3ILCSi23HqKv576IrjGkNERNRE18ukgxFflev18DMYaUDfSObVas4bISIiNyA1TBOoVsJf5XozNBiMNCDOivvl9AFY+mA/o+NaHYMRIiJyfYUSwcjvC26G3AX2omnI9cIjJxMv3x3SMdzk+PVy6W4vIiIiV3I6r9SkzM8Fe0UA9oyY0DeSS0Qq0iQiInIllVodTuSUOLsZVmMw0oBaaXliTyF7RoiIyMWdLyiDTi8g2NfH2U2ximv21zjRvcmx+D7jMm5OjJA8bm7dNhERkat4d8tpALU70Jtb4utKGIw04KdSYv3MIWaPs2eEiIhcWUW1Dj8dzTHcdgccprHCptnDDJnqCivYM0JERK4rv7TKcNtSIk9X4h6tdLLEqCC8eFs3AMDFaxV44os0nMlzn4lBRETkPa6V1X9p/vufejqxJdZjMGKlVn4qw+2fjuZg9poM5zWGiIjIjLpgpHtMEJLiW0HpgnlFGmIwYqUgjfH0mgv55W61PTMREXmHghvBSKh/7ZdoV0z/3hCDESspFXKjgKSkqgZ9XvsZJ3KKUV2jR1WNe0wSIiIiz3Uipxgrdp4DAITdCEb83CAY4WoaG/iplCiurO8N0eoE/Cv1FDIuFsJfrcSWOSNcMs0uERF5tq0n8/DeL6eRnlVoKKvLMRIT4ovc4iozZ7oG9ozYoK7LS+xkTglyi6tw7moZyqo5bENERI4lCAKmfrLfKBABgEBNbTCyeGIf9GwTjGUN9lpzJQxGbLDoHtNZyecLyg23n/jioCObQ0REXu5UbgkGLvxF8ljAjakFCeH++PHpoRjfM9qRTbMJgxEb9IoNwX8eH2T2+K4z+ShiUjQiInKQ5789ZHYIJkDtPjMxGIzYyF9dPxFILZFM5tClQge2hoiIvJmlneQDNQxGPJZcVj9BtVdssMnxs1dNt2wmIiKyB6XC/KIJ9ox4sE4RAegdG4zxPaIQEaQxOb7leC76vZ6KNfuznNA6IiLyFtfLqnHuapnZ4+6SCh5gMGIzpUKOH54aimV/SUKQxnRr5t/OFOBaWTX+tvaIE1pHRETe4ubF2y0er67RO6glzec+fTguKEBtOZFMVY0OaqXrJ5shIiL3I96Dpo6/SoFgXx9o9QIGtg9zQquahsFIM+Q0kkTm0vUKdGgd4KDWEBGRtxAEwaSsTYgvtj8/EnKZDFq93q2+DHOYphmig03njIjlFFU6qCVEROQtfjx0Bb1f/dmkvEKrg1Ihh1wuc6tABGDPSLM8MaIDKqp1+HzvBcnj2QxGiIiohT39dbpkeUW1++6Rxp6RZmjlr8Lrd/UwezynqMKBrSEiIm9WoWUwQhKulrj2xkRERESugMGIHYl3+CUiIrInXx/3micixmDEjooquE8NERHZX/twf3w+rb+zm9FkDEbsqJjBCBERNcOvJ3IxeOEv2H0232K9zXOGI7ldqINa1fIYjNgRe0aIiKg5Hll9AFeKKvH452kW6ynl5veocQcMRuyIwQgREbUEnb42yZm5/FUyGYMRr/fpI/2RGBWIrx4dgLv7tsHf/1S73Le4ksEIERE1X91eaK/97w8nt8Q+mPSsBYzo3BojOrcGAAzuEI7C8mosWH8UlVo9/nvoCm7tGQ2Fm3ehERGR8wT71gYjRy4XObkl9tGknpGlS5ciISEBGo0GSUlJ2Llzp8X6X375JXr37g0/Pz9ER0dj6tSpKCgoaFKD3YGvqn551ayv07E+/bITW0NERO5Ir6/ffybIVwmdXoC/qr4PYWjHcGc0yy5sDkbWrFmD2bNnY8GCBUhPT8ewYcMwfvx4ZGVlSdbftWsXJk+ejGnTpuGPP/7At99+i/3792P69OnNbryrUinkRj0h+zI9N/AiIiL7EA/1+6mUeOyzAziRUwIAuKldKwSoPWdww+ZgZPHixZg2bRqmT5+Orl27YsmSJYiLi8OyZcsk6+/duxft2rXDrFmzkJCQgKFDh+Lxxx/HgQMHmt14VyWTySAelIkJ8QUAVGp1OHypUHK3RSIi8m65xZV45+eTyL6xlUhheX0wsv3UVfxyIs9w/96kOOg96LPEpmCkuroaaWlpSElJMSpPSUnB7t27Jc8ZPHgwLl26hI0bN0IQBOTm5uK7777DrbfeavZ5qqqqUFxcbPTjbmpE3WtLtpzGsSvFePzzNNzxwW/44nfpXiQiIvJeM75Iw/u/nsHUT/YDAAotrMj0VyvhOaGIjcFIfn4+dDodIiMjjcojIyORk5Mjec7gwYPx5ZdfYtKkSVCpVIiKikJISAjef/99s8+zcOFCBAcHG37i4uJsaaZLmvDeTmw/dRUAsPq3TCe3hoiIXE16ViEAGIZiCsurzdb1UyvQMSLAEc1yiCZNYG24nlkQBLNrnI8dO4ZZs2bhpZdeQlpaGjZt2oTMzEzMmDHD7OPPnz8fRUVFhp+LFy82pZkuy5OiWSIisg/xME1DAWolnh7dEdOGJmDtE4Mc2Cr7sGn2S3h4OBQKhUkvSF5enklvSZ2FCxdiyJAheP755wEAvXr1gr+/P4YNG4Y33ngD0dHRJueo1Wqo1WpbmkZEROQxanR6LN12xuxxuax2UuuLt3VzYKvsx6aeEZVKhaSkJKSmphqVp6amYvDgwZLnlJeXQy43fhqFonbpq9dO5BQArU7v7FYQEZGLeif1FE7llpo9rla67w69Umweppk7dy5WrFiBVatW4fjx45gzZw6ysrIMwy7z58/H5MmTDfVvv/12rFu3DsuWLcO5c+fw22+/YdasWejfvz9iYmJa7krcyLn8MvT/+xZcLalydlOIiMgFLdt21uyxx4a3R/eYIAe2xv5sXqQ8adIkFBQU4LXXXkN2djZ69OiBjRs3Ij4+HgCQnZ1tlHPk4YcfRklJCT744AM8++yzCAkJwejRo/Hmm2+23FW4oevlWqz6LRN/G5fo7KYQEZGbGN8jCi9M6OrsZrQ4meAGYyXFxcUIDg5GUVERgoLcIxrcceoqJq/aZ7HO7b1j8P79fR3UIiIicmXt5m1otM6EnlFY+mCSA1rTMqz9/OZGeXYyvHNrPDGyg8U6VworHNQaIiJyV2/c1cNw2zilpudgMGJH4n0FpJRV1TioJURE5K48Ke27OQxG7Cg+zN/i8QqtzkEtISIid6VWev5HteeHW040MTkWVworsOV4riGjnljxjVS/lVod1Eq52cRxREREAOChozTsGbEnpUKO58Z2QZeoQMnj18u1uHitHN1e2oSnv053cOuIiMgduPwqkxbAYMQBTmSb9orUWbrtDPQC8L/D2Q5sERERuZLabVWkj3WOrP9C66EdIwxGHGHiTeY3+rt0nStqiIi8XbVOj4aJNsIDVPhq+gCjDfE8dTifwYgDTBkUj4nJsZLHdp7ON9wWBMF7U+QTEXmxSq3pFiG9Y0MwuGO4E1rjeAxGHECpkGNs96hG601dvR93fPAbdI0sCSYiIs9SJbG6UqoTxDP7RRiMOIy4m23v/JsRHawxqbPt5FUcuVyE03nm55gQEZHnkeoZEX8vDfVXAQDGdIt0VJMcikt7HSQ+zB8fPZSEVn4qRAVr4OvjWTsuEhFR0xVXai0e/3nOcBzPLsZQDx22YTDiQOKhmhoLQzF60wCZiIg82G3v7zIpE88hDA9QY1in1o5skkNxmMZJqmvMRxyVNczMSkTk7fy9IA18HQYjTqKzsGqmsprBCBGRt2j45fQff+qJThEB+Nu4RCe1yPG8J+xyMZaW8HLPGiIi71BaVYNbFm83KntgQFs8MKCtk1rkHAxGnMTS8l2pWdVERORZvvz9AhasP+rsZrgEDtM4iaVghD0jRESerby6hoGICIMRJ7GU16ySwQgRkUcrraxxdhNcCoMRJ9FbmsDKYISIyKOVmVmocHvvGAe3xDVwzoiTWJ4zwmCEiMjTCIKAL37PQmJUoGTiyxcmJOLhwQlOaJnzMRhxEks9IxVaHapr9Hjph6PYcDgb7z3QF6O6RDiwdURE1NIyLhbixe9r54mEB6iNjvmpFHhseAdnNMslcJjGSSzNGSmtrMG7v5zCN/svoqSqBlM/2e+4hhERkV1cK6s23M4vrTI61iUq0NHNcSnsGXESS8M018u1+HTPBQe2hoiI7M1c2ga1Uo5Xbu/u4Na4FvaMuKCfj+WYlH2257zjG0JERC1GajO8UV1a4/ArKegdF+L4BrkQBiNO8siQ2klKt/aKNpSplbUvh1T0/NIPfzimYURE1GIEQcDWE3koLK9GcYVpMOKnVkKt5C7uHKZxknnjE3Fz1wgkxbdCYXk1fjtTgOfHdsEbG447u2lERNRCtp26iqmr9yNQrUTX6CCT434Sq2q8EYMRJ1Ep5RjSMRwAsHLKTcgtroROL5gNRmQyR7aOiIhawoHz1wAAJVU12HfjtlhkkMbRTXJJDEZcgMZHgfgwf4v5RRSMRoiI3E6wr4/F4/0TQh3UEtfGOSMuROOjwJRB8ZLH5AxGiIjcTlmV+S+Zc2/pjGGdwh3YGtfFnhEX0ylSeq25nGEjEZFbqdHp8e4vpyWPzR7TCbNu7uTgFrkufsS5mDB/lWR5pVaPu5f+hoIGiXKIiMj1bDqag44LfpI8dvTVsZg9prODW+TaGIy4mFAzwQgAHMwqxEc7zjmwNUREZKv3fjmNGV+kSR7rHhOEADUHJRpiMOJiYkP9LB4v4bbTREQubXHqKbPHvpw+wIEtcR8MRlxMTLDlZV4qBSeyEhG5Kq1OOuV7HfaKSGMw4mJkMhkGdwgze9zC/npERORkllI0AIBSwY9dKfxfcUGrHr4Jvzw7AknxrUyOXS83TSdMRESuoarGcs8ISWN/kQvS+CjQoXUAvn18EE7mlmD8uzsNxwrLq/H+L6fho5RjxogOTmwlERHVqajWYerqfehsJj0DWcZgxIXJ5TKTVMH7z1/DztP5AICHB7eDhvsaEBE53bdpF7H33DXsPWea8p0ax2EaF9dwqa94R1+p7aiJiMjxKqotzxUhyxiMuLGC0mpnN4GIiMAtO5qLwYgbeO3O7lApTV+q8e/uxNHLRU5oERERicnl5oOR1+/sDqB2LxqSxmDEDUwe1A4nXx8HlcSSsL9vOO6EFhERkZiFWAT3Jsfh8Csp3IvGAgYjbkImkyHEz3Qram6gR0TkfJYGaTQ+CgRpTP9+Uz1+lLkRqX1rOE5JROR8Wp10SsqEcH8Ht8Q9MRhxI638TIORnafzkXGx0PGNISIiA3OZVz97pL+DW+KeGIy4EXM7+t714W8ObgkREYmZy7wqtfiATPF/yY1IzRkhIiLnM9cz4sO9aKzC/yU3Yq5nBACquR8CEZFDaXV6XCurzfdUWVMfjKR0izTc9uFO61ZhMOJGLAUjc/+TgaslVRj19jZ88OtpB7aKiMg7PfHFQfR7PRXnrpaiSpQd+6nRHQ232TNiHf4vuZH+CaFmj/3vcDY++S0TmfllePvnUw5sFRGRd9pyPBcAsGJXJipv9E6/dFs3o83ypPJDkakm/S8tXboUCQkJ0Gg0SEpKws6dOy3Wr6qqwoIFCxAfHw+1Wo0OHTpg1apVTWqwN+sWHYQxXSPNHt99tsCBrSEiIgD46vcs/HjoCgBA7SOHxkeBjJduwZFXUixmZqV6Nu/au2bNGsyePRtLly7FkCFD8NFHH2H8+PE4duwY2rZtK3nOxIkTkZubi5UrV6Jjx47Iy8tDTU1NsxvvbWQyGVZMScbPf+Tgsc/TTI6Ll/jW6PRQMiInImpxlVodDplJqRCgrv1YDZFIxUDm2RyMLF68GNOmTcP06dMBAEuWLMHmzZuxbNkyLFy40KT+pk2bsH37dpw7dw6hobXDDO3atWteq73cyC4Rjdb5aMc5PDmqY6P1iIjINm9vPokVuzIljwVqbP5YJdg4TFNdXY20tDSkpKQYlaekpGD37t2S5/z3v/9FcnIy/vnPf6JNmzbo3LkznnvuOVRUVDS91V5OpZRj6YP9LNZ5a/NJnLta6qAWERF5j/8dzjZ7LEDNFAxNYVMIl5+fD51Oh8hI43kLkZGRyMnJkTzn3Llz2LVrFzQaDdavX4/8/HzMnDkT165dMztvpKqqClVVVYb7xcXFtjTTK+QVVzZa59zVMrRvHeCA1hAReQ+FhXkgdcM0ZJsmTSqQNdgPRRAEk7I6er0eMpkMX375Jfr3748JEyZg8eLFWL16tdnekYULFyI4ONjwExcX15RmerSU7lGN1jlfUOaAlhAReY8VO8/hcmH9Z1d8mJ/RcQ7TNI1NwUh4eDgUCoVJL0heXp5Jb0md6OhotGnTBsHBwYayrl27QhAEXLp0SfKc+fPno6ioyPBz8eJFW5rpFWJCfLHtuZGG+1KbMdUtOyMioubT6vR4Y8Nxw/2dfx2F72cOMarDnpGmsSkYUalUSEpKQmpqqlF5amoqBg8eLHnOkCFDcOXKFZSW1s9fOHXqFORyOWJjYyXPUavVCAoKMvohU61ESdAeG97ecLt7TO3/195z11BUrnV4u4iIPE1xpRZPfHHQqCwu1A+t/FVIim9lKPNnMNIkNg/TzJ07FytWrMCqVatw/PhxzJkzB1lZWZgxYwaA2l6NyZMnG+o/8MADCAsLw9SpU3Hs2DHs2LEDzz//PB555BH4+vq23JV4IbVoAybxEGb71gEIvPGGyC+rangaERHZaEnqabO9zc+ldDHc5sZ4TWNzCDdp0iQUFBTgtddeQ3Z2Nnr06IGNGzciPj4eAJCdnY2srCxD/YCAAKSmpuLpp59GcnIywsLCMHHiRLzxxhstdxVeSpxmWIb6aESvF9DKX4WSqhpcL6sGWjujdUREnuOMhdWJAxJC8ae+bdAuzHS4nKzTpP6kmTNnYubMmZLHVq9ebVKWmJhoMrRDzSee0S2eP6wXBIT6q5B1rRwFNzZxIiKipmu4ROMff+ppuC2Xy/CvSX0c2h5Pw/4kDyFezdQ/IdSwqd51BiNERC2qQ2t/PDBAOuM4NQ1n2ngIGYBtz43E3nMF+HNSLP64UpubhT0jRETNJ+59judwTItjMOIhlAoZ2oX7o92NJb51a91Lq7gHEBFRc+n0guG2mpNUWxz/R93cw4PboXtMEMY2SILmr6oNRspFwcjRy0WYuyYDVwqZip+IyFo1Oj1O5ZYY7g/pGO7E1ngm9oy4uVfu6C5Z7qtSAAA+3XMBmQXleHp0R9y7fA8A4GppFT6fNsBhbSQiciff7MvCd2mX8Oqd3dE9Jhi7zuQjt7g2TUJKt0hMuolZwVsae0Y8lP+NYAQAdpy6aghEAGDn6Xwcz+Z+P0REUj7cdgYHLlzHgyt+B1DbqwwAd/SOwceTk43SKlDL4P+oh/JTWe70EgcnRETeThAEVNfoAQAXr9UOZRfeyGCdcbEQANCjDbOB2wuDEQ/lp1ZYPF5aVYNKrc5BrSEicm0Prvgdgxf9gvJq40n//9x0AluO5wEAhnViBkl7YTDiofxUloMRADiZU9JoHSIib7D7bAHyS6ux91yBUfnSbWcBAMG+PugazZ4Re2Ew4qF8fRqfm/zI6v1Gy9WIiLxR3fAMAOj00nXkDVOwUotiMOKhFFa8cwrKqs1u/ERE5C3KRCkQzA1f82ubfTEY8VA1ejPhfQN5JdzVl4i8mzg5ZGGFVrKOwGjErhiMeKh+bVshLtS30XplzNBKRF6upLL+7+AP6Zcl6wiMRuyKwYiH0vgosO25UY3WK2cwQkRe5ujlImw6mm24L+4ZOXDhOgBgxogOmD2mk6GcoYh9MRjxYFLzRp4f2wWxrep7TEqruLyXiLzLbe/vwowvDuLwpUIAQGmV8dCMUi7Dk6M6YPaYzvWFjEbsisGIh3v//r5Gu02O6xGFjhEBhvuF5dzVl4i805m8UgCmX8piQnwRqPEBAPgoav+AdmfCM7tiMOLhbu8dg9NvjEfv2GDEtvJFmxBfiPtL/nvoikmSHyIiTyWe+1HXe3y9zPhLWWSQ2nD7+yeH4N6kWCye2Mch7fNW3CjPCygVcnz3xGAoZDLI5TKj3sYavYANh7NxbzI3fiIiz1chWrqrlMvx5e8X8PJ//zCqExGkMdzuHhOMt+7t7bD2eSsGI17C0sZOH2w9g3v6xaKwQotWfj6QyZjdh4g8k3iy6pNfHZSsEyUKRsgxOEzjhcQr1AI1SlwoKMc7qSfR7/VUvPjDUec1jIjIzsqtmLTfys/HAS0hMQYjXm5E59qNnz7cWrv/whd7s5zZHCIiuyq1Ip2Bv5qDBo7GYMTLxYQ0nhiNiMhTlFc33jPCYMTxGIx4ufAAlbObQETkMNZknQ5gMOJwDEa8kHg1TXiA2mw9IiJPU1xpuvdMwwSR7BlxPAYjXo7BCBF5k+0nr5qUHVgwBu/e18dw31+lcGCLCGAw4vVC/TlMQ0TeITO/DOskNsJr5a9C68D6L2bsGXE8BiNezk/iG4DUbHOdnhszEJF7u1BQZlJ2V58YAEBrUS8x54w4HoMRL+enMn3TvfPzSaP7a/Znoecrm7H3XIGjmkVE1OIqtaYraf5xd08Axr3Eah9+NDoa/8e9kHhvBl+JnpFPfjtvdP9va4+gvFqHp75Kt3fTiIjspi4VfGJUIO7v3xb/e3qo4QtZqL8Kt3SLxMgurY16Scgx2Bfl5aSGadqE+OL79MvoFRuM9q0DREc4VENE7kmnF1B2I/tq21A/LLzRI1JHJpPh35OTndE0AoMRrye1Z83lwgrMXpMBADi/6FYHt4iIqGXp9AJufW8nTuSUAJDuESbn4jCNF5rQMxpAbQ9IY345nmu4nV9ajee+PYSqmsYzGBIRuYqCsipDIAIAvj4MRlwNe0a80KTkOMSE+KJXm2Cj8o4RATiTV2pUNu3TA0b3v0u7hC6RgXh0eHu7t5OIqCVUVuuN7msYjLgcBiNeSC6XGTbIEwvxtW6nynP5psvjiIhcVbnWOF2BXuD8N1fDYRoyCPVXITKo8VnkUumUiYhc1dHLxUb3Sysb35+GHIvBCBkkt2uFH58e2mi94goGI0Tk2gRBwI+HrmDa6v147ttDRsdKrNgsjxyLwzSETbOHYcepq3h4cAJUysbj052n8x3QKiKipvnpSDbmrTuCIjNfnKSSn5FzMRghJEYFITEqyKZzLhSUIT7M304tIiJquie+PGj2mMZHjr+OTXRga8gaDEaoSXKLqxiMEJHbOfzyWKt6gMmx+IpQk0z8aA9qdPrGKxIRuRAGIq6Jrwo1Wda1cmc3gYjIah0jAhqvRE7BYIRMfDtjEFQSaeIbyi+tdkBriIisJ1jIIbJqyk0ObAnZgsEImbipXSiW/aWf4f6iu3vi5sQIk3ozvkjD3P9koJTL5IjIia6X1X8xavj3SLwZaNswP4e1iWzDYIQkBajr5zarlHIo5DKTOtfKqrHu4GV8uPWMI5tGRGTw2Z7z6Pt6Kj7bcx4AUNCgx3bJpD64p18s1j4xyAmtI2sxGCFJgZr61PAqpVxyd986OUWVjmgSEZGJl374w/CvTi9g0sd7jI53iAjAOxN7Iyk+1BnNIysxGCFJgRpRz4hCDqWivmfkhQnGa/Rlpp0mRER2U15dgxqdHrvPGCdg3HAkG7nFVUZl1u65Rc7FPCMkSRyMyGQyKOX1cetjwzvgsz0XcOl6BQBAzmiEiBykuFKLvq+lonNkIKoaZFL96Ui2Sf1gBiNugT0jJEk8Z6SqRgdlgzkjYf4qw23xkeJKLXR67ohJRPax79w16PQCjmcXI0D0pUkpl+HI5SKjuj3bBENpxcpAcj72jJAk8Ru4ukYPH6VxMBIqCkYA4Hh2MfxVSgx/ayuGdQrH59MGOKSdRORddKKlu/4q44n2eTeGaOaNT8Td/dogzL/xXcjJNTAYoUa18lcZDdMAxl2f36Zdwrdplwz3uZEeEdmLXtTzqvGp/7tUXl0/ZPPIEOs2/STXwWCEzFr+lyQcvVyEkZ1b43x+mdExcfcoEZGjiHtGpFb5tfLzYSDihpr0ii1duhQJCQnQaDRISkrCzp07rTrvt99+g1KpRJ8+fZrytORg43pE4bmxXSCTyfDggHhMGRSPTx6uzWCoUSosnqvnvBEisgPxnLS0C9dNjjMQcU82v2pr1qzB7NmzsWDBAqSnp2PYsGEYP348srKyLJ5XVFSEyZMn4+abb25yY8l5VEo5Xr2zB0bdyMTa2KSwsuoanMotwas//oH80iqLdYmIrCUejikoM92S4tU7ujuyOdRCbA5GFi9ejGnTpmH69Ono2rUrlixZgri4OCxbtszieY8//jgeeOABDBrELHiewEdheTlv6rFcpPxrBz757TxeWHfEQa0iIk/33i+nLR4f2cV06wpyfTYFI9XV1UhLS0NKSopReUpKCnbv3m32vE8++QRnz57Fyy+/bNXzVFVVobi42OiHXEvDCa0Nzf3PIcPtP67w9SOi5rtaUoXsRjI+a3wsDyGTa7IpGMnPz4dOp0NkZKRReWRkJHJyciTPOX36NObNm4cvv/wSSqV1kx4XLlyI4OBgw09cXJwtzSQHUDbSMyImta8NEZGtTueVWDy+ckqyg1pCLa1JM31kDTJuCoJgUgYAOp0ODzzwAF599VV07tzZ6sefP38+ioqKDD8XL15sSjPJjhobphGzJXAhIjLndG6pxeMdIwIc1BJqaTatzwwPD4dCoTDpBcnLyzPpLQGAkpISHDhwAOnp6XjqqacAAHq9HoIgQKlU4ueff8bo0aNNzlOr1VCrmazGlYX4qhqvdEPD7K1ERE2RU2x5iKZhMkZyHzb1jKhUKiQlJSE1NdWoPDU1FYMHDzapHxQUhCNHjiAjI8PwM2PGDHTp0gUZGRkYMIBZOt3VnX1jrK6raGR+CRGRNYortGaPhfj5GG1jQe7F5ldu7ty5eOihh5CcnIxBgwbh448/RlZWFmbMmAGgdojl8uXL+OyzzyCXy9GjRw+j8yMiIqDRaEzKyb2olQpMH5qAFbsyAdQu/a2u0UvWNdczUqnVcbIZEVmtpLLGpOy5lM54eEgClHKZ5HQBcg82ByOTJk1CQUEBXnvtNWRnZ6NHjx7YuHEj4uPjAQDZ2dmN5hwhz6DV1QcfB1+8BTlFlRizeLtJPak5I7+fK8Ckj/fiuZTOeGp0JwiCgNKqGgRquMMmEdW7WlKFw5cKEezrg/8eumJ07MlRHfDU6E5Oahm1JJkgCC6fKrO4uBjBwcEoKipCUFCQs5tDN8xfdwRf76sNPM8vuhUAsGTLKSzZYpwHoHdsMD56KBlRwRpD2S2Lt+N0Xqnh3Mc+O4Cfj+Viy9wRnIRGRACA0qoa9Hh5s0n5CxMSofFRYGJyHHtXXZy1n98czKcmu6tP7byRbtH1v2BSPRuHLhVh4MJfcEa0LE/XIF38z8dyAQBf/n7BHk0lIjeUVVAuWd4tOhiTB7VjIOJBGIxQkw1oH4Zfnx2BdTPrJy8HWdhA79u0Syirqh3zrTGzd43r99MRkaM0/NJSx0/NIMTTMBihZmnfOsDo24mlOR8fbT+H5De2IPVYLrKuSX/jISKqm49WVm06YRUAfLhCz+NwHRS1KEs9IwBQodXh0c8OmD3uBlOYiKgFvPbjMQDAS7d3M5SVV9fg5z9ysWD9EfypXxvJbSfu7x+HHm04d9DTMBihFhXky9UwRGRZUbkWq36rTQsw6+aOCPGrTVb21Ffp+PVEHgDgi72mqzLVSjkW3t3LcQ0lh2EwQi0qUNQzolLIUa2Tzj1iDvtFiDxfjV4vul3/rq8LRBpqHajGtKEJGNQ+zO5tI+dgMEItSjxnJFCjREFZtU3n6zlMQ+TxxPNSSytrEOqngqV8ZTq9gBkjOti/YeQ0nAVELUrcM9I60Pb9hRiLEHk+cc/IyLe34S8rf7f4xaVUIvMqeRYGI9SifBT1v1JNCkZasjFE5JJqdMbv9N1nCywGHFzK6/kYjJDdxLbys/kc9owQeT6puWSlVeaDkeV/SbJnc8gFcM4ItbhPH+mPkznFuL9/W/xyPBdJ8a3w09Ecs/XX7OdeRkTepGHPCABDQsSG+rYNwUBOXPV4DEaoxY3o3BojOrcGAOyeNxoKuQwJ8zearf+3tUdE99g1QuTptBI9I9fLpeeM+Kv4MeUN+CqTXSkVto0EcpiGyPNJbQeRV1IlWTe/VLqcPAvnjJBLEQTg870XTLYKJyLPIdUzcj5feosIfzW/M3sDvsrkUnKKK7Hm+4sAgJRukdyVk8gDSQUjdRlZG5o/PtHezSEXwJ4Rcgi5hYRGYkUVWsPtC2a2Dyci97DnbAHe3nwSNQ2CD6kJrA09MKAtTr0xHsntQu3VPHIh7Bkhh5iYHIdv9l9stF7GxULD7TN5pegSFWjHVhGRPd3/770AgOgQDR4cEI/Nf+Tgu7RLOJNX2ui5//hTT3s3j1wIgxFyiJdu74bkdqG4UliBxamnrDrn0vVyXLpejnd+PoXpwxLQPSbYzq0kInvIvFoGAHj887RG647tHolbukXZu0nkYhiMkEP4qZT4c1IscosrsTj1FPq2DUF6VqHFc0oqa3D/v/fi4rUKHLtSjM1zhjumsUTUZB9uPYOcokq8dmd3Q1ljgzJqpRzThyXgtl4x6BodZN8GkktiMEIOFRmkQcZLtyBArcRPR3OQW1yJNzYcl6xbUqnFxWsVAGp7SYjI9b21+SQA4P7+bQ1lggBU15jfwXvqkAQ8P5YTVb0ZJ7CSw4X4qaBUyHF77xhMH9beaHM9sRLRXhUdIgKMjgmCgLc2n8D36Zft2lYisp54lUyFVme4XV5dg1FvbzN7nkrJjyJvx54Rcrq2oX7440qxSXmJKD20rMH+4nvPXcOHW88CAO7q28a+DSQiq4gDELF9mddwubDC7HlqBiNej78B5HQdWgdIlouX+TZcGVxQxqyMRK6msro+GBFE6ZTP5ZdZPE9lY6Zm8jz8DSCne3BAW8nyAlEaaJms9o/brydyceD8NTz37SFHNY+IrCTuGXn9f8esPo/DNMRhGnK6Ae3D8M8/98JfvztsVJ5fWr9xlgzAfw9dwTPfZJicLwiCyTAOETlWdlEFRry1zXD/0KUiq8/1ZaZlr8dwlFxCcnwrkzLxMI1eALaeyJM8V2tFNkcisq+vf89q8rkRQeoWbAm5IwYj5BLEe9DcmxQLf5XxNyWtTg+5mZzyUvtcEJFjhQU0PaCICta0YEvIHTEYIZcgDkbiQv3QMdI4DbxWp4fCzFCMpfwFROQYW47nNvnc6CDfFmwJuSMGI+QSND71v4oqpRxtQ/2MjlfX6CE3E4yIe0b0egHXy6ol6xGRfWw/dRU7T+fbdM7d/eqX5Af5cvqit+NvALkEjbK+Z8RHIUdMiHG3rVYnmB2mqRYFI09/k44Nh7Ox9onBSJKYh0JELe/A+Ws2n3N7rxj0iAlGTIiGE9CJwQi5BnGgoVLIEO5vPP5crdPDXCoC8TDNhsPZAICVu84hKT6p5RtKRCbE2ZKt8ddxXTCyS2uMSoywU4vI3TAYIZejUsrROrBBMGJxmMZ0NY3ABTZEDlNaZVsw8siQBPaGkBHOGSGX07NNCFIabCFuacXM3nMFWJt2yezxwvJqpF243mLtIyJjZaJgJLaV6WTUjbOG4dZe0Yb7Psy4Sg2wZ4RcxtbnRiK7sALdYmq3EG8dqMbVktosrFqd3uyqmZf/+wcAoFOkdFr5sUt2ILe4Cp88fBO7hYlaWGF5NS6KdtUe0bk1vhTlHHnrz73QLSYI/dq2MgyjKszM/yLvxfCUXEZCuD8Gdww33A9U18fKWp1gdhOuOlcKKw23xT3AucW1Ac3GI9kt1FIiAoAanR59XkvF0cv1G12Kez3CA1S4NzkOAMD4gyxhMEIuq2FPxw8ZVyzW/1fqKYvHdXpOJCFqruoaPR7+ZB8++PU0yqotf0GoEb3nGIuQJQxGyGW9flcPjOzS2ur6J3NLLB7XMhgharYdp65i28mrePvnU5JDp4IgIDGqNmnh+B7180TMLc0nAhiMkAuLCNRg9dT+RhPfmqOGaeOJmk0tSlBYN6dLTC8An08bgIV398T/3drVUM5QhCxhMEIub3incKP704YmNOlxuKEekW2ulVWbZDRWyus/Ns7ll0qe1zpQjfv7t4W/aN5XQrj0BHMigKtpyA1EBBpnYx3aKRx/6tsGt72/y6bHqdGzZ4TIWpVaHfq9ngoAOPuPCYYVMOJl9ueulpmcJ0A66B/SMQyv3dkdnRvsO0UEsGeE3ECgxjhm9vVRoEebYNzRO8amx+EEViLrXSmsMNyuqqmfqCqeJ5JfajpMYy7hoEwmw+RB7TCwfVjLNZI8BoMRcnl92xrvMeN7Y4dfP5VCqrqBIAgQRH8ZLSVOIyJj5dXSAYj4fVRUoTU5jyE/NQWHacjlKeQyPHtLZ7xzY+mu740gxFLiJL0emPTxXqO/jDWcM0JkNXGKd3EwIt6YsvhGMKKQyww9j9yKgZqCwQi5BfEM/rqeEUsppXOKK5FxsdCojEt7iawn7vWoMuoZqX8f5ZfWTm7tHRuMg1mFN0r5PiPbcZiG3IJaWT8kY03PSG5xpUkZl/YSWU8cjIh7Q8TDNEcuFwEwDlbYM0JNwZ4Rcjt1PSPxYX5m62QXmQYjdd3IOr2AvJJKRAebbuhFRMCin05g+fazhvvm5ozUybpWvzcNgxFqCvaMkFvQi/7CaW4EI/fd1BZ/GdgWyfGtzJ1mpO6P6Ow1GRi08FdsP3W15RtK5AHEgQhQG4zUTQaXyrpaUlk/v8Tc0l4iS9gzQm5BPN2jbnhGpZTjjbt6Qq8XkHGpEM/+5xAy803zHtSp2yfjx0O1e9x8+OsZjOhsfbp5Im/16o9/4OzVMqx5fKDRkI2U5PhQB7WKPAmDEXILgoW+X7lchn5tW2HuLZ3x9NfpZus1/EZXVl1jpiaR95J6r9VNTh23ZCf8zSyp//XZEUi7cB339Iu1Z/PIQzEYIbegt2IgekLPaKzZfxG7zuRLHi9vsMNow/tE3u6HjMvwV1n+WGi4U29sK1+8fmcPtG8dgPatmfKdmqZJc0aWLl2KhIQEaDQaJCUlYefOnWbrrlu3Drfccgtat26NoKAgDBo0CJs3b25yg8k7DWof3mgdhVyGL6YPMOwY2lCF1viPaFkVe0aI6pzJK8Uz32Rg+mcHbDpv519HYVRihJ1aRd7C5mBkzZo1mD17NhYsWID09HQMGzYM48ePR1ZWlmT9HTt24JZbbsHGjRuRlpaGUaNG4fbbb0d6uvnudKKGesYG44cnh2D/gjGN1lUrpX+tq2v0Rinh2TNC3q6wvBp3fLALK3aew/h3dzTpMWQy7sdLzScTLA3GSxgwYAD69euHZcuWGcq6du2Ku+66CwsXLrTqMbp3745JkybhpZdesqp+cXExgoODUVRUhKCgIFuaS17onZ9P4v1fz0gemzGig2GlgEwGZC681ZFNI3Ipb246gWXbzjZe0YLzi/geIvOs/fy2ac5IdXU10tLSMG/ePKPylJQU7N6926rH0Ov1KCkpQWio+RnXVVVVqKqq34CpuLjYlmaSl3tyVEcE+/rg5q6RGPX2NqNj4iWLzIdA3q60kkOV5BpsGqbJz8+HTqdDZGSkUXlkZCRycnKseox33nkHZWVlmDhxotk6CxcuRHBwsOEnLi7OlmaSl9P4KDB9WHskhPs7uylELq3hxPDEqEAMt2G5e5KVOX6IGtOkCawNxwgFQbBq3PDrr7/GK6+8gjVr1iAiwvyEp/nz56OoqMjwc/HixaY0k6hRWp0eer2Av284hg2Hs53dHCKHarhdU/+EUAzr2Phk8TFdI7H2iUH45rGBdmoZeRubhmnCw8OhUChMekHy8vJMeksaWrNmDaZNm4Zvv/0WY8ZYnoSoVquhVqttaRpRkxSWa3Hg/DX8e2cmgEzc2ovj3+Q9Gk4ZVCnkmDqkHTb/kYMDF64byu/pF4ux3SNx4MJ1/GVAPNpa2IqBqCls6hlRqVRISkpCamqqUXlqaioGDx5s9ryvv/4aDz/8ML766ivceiv/2JPruOnvW/DElwcN9yev2odtJ/Oc2CIi+1h38BLG/msHLhTUZyluOEyjUsqhVMgxb3yioezepFi8dmd3pHSPwgsTujIQIbuweZhm7ty5WLFiBVatWoXjx49jzpw5yMrKwowZMwDUDrFMnjzZUP/rr7/G5MmT8c4772DgwIHIyclBTk4OioqKWu4qiMyYNbojACDUX2VV/R2nruKDX88gr6QSQ9/8Fa/89w97No/Irtbsz8LcNRmo1Oow9z+HcDK3BM9/dxgAkFNUif8cuGRUv2537BA/H0PZQ4Pi4a9mfkyyL5uDkUmTJmHJkiV47bXX0KdPH+zYsQMbN25EfHw8ACA7O9so58hHH32EmpoaPPnkk4iOjjb8PPPMMy13FURmzLmlMw6/koKONmSGPHDhOl5YdxSXrldg9e7z9msckZ39be0RrEu/bLSK7FRuCRannsI4ibwiqhs5ekL86oN3pZz7qZL9NSncnTlzJmbOnCl5bPXq1Ub3t23b1pSnIGoRMpkMQRofjO0RhX3nr1l93pbjuYbbVTU6wzdGIne0ZMtpw+3Cci3e++W0ZL26YCTYt75npKqGyQHJ/tj3Rl5hyqB4hAeocPRy0Y3JqtbLKapEfBiXCZPnqwtGfBRy+Chk0OoE7jdDDsFghLyCUiHHnX3aWLXhXkMXCsoZjJBXUCvqh2QOvngLKrV6o14SInvhYCB5lQk9ozGkYxieGNkB1m6p8X3GZcPtY1eKsWZ/luQ260SuYOaXaZiyah/0DZOIWEEl2tcpUOOD1oFMsUCOwZ4R8ipqpQJfTq9N1PTxjnPQWRFUXLpeYbg94b3aHaqDfVUY1yPKPo0kaqJKrQ4bj9TmgTovWsJrLZWZTSaJ7I2/eeS1rN1rdF/mNZRVGe/h8fU+6V2qiZxly7Fc/G3tYcP9wgqtVef1bRtiuK1S8COBnIO/eeS1bNn5fNqn+43ubz91FeeulrZwi4iabvpnB/BDxhXD/T1nCxo958lRHfDefX0N99kzQs7C3zzyWjJR34hCbjky2XvuGqZ/esCo7PAlJu4jx1i+/SwmfrQHFdXGy2zLqmpQWF4tec5bm0+afbwRnVvjx6eGYs6YzggQJTRTNvI+ILIXBiPktcQ9I40FI4Bx7hEAqNAy/wI5xqKfTmBf5jV8l2a8aeiAf/yCPq+loqTSuiGZOv5qBXrGBkOpkMNPXZ9Dp6YJk16JWgKDEfJa4mCkXRP222j4LZXI3sTBgl4voPTGXKYTOSU2PY5ClFVVPE9Ex2CEnITBCHkt8TDNLd3qd53+v1u7WnX+l79fwNA3f0XGxUJ8vvcCLhdWNH4SUTOI53RU6/SG2+U2BsbijkCZKCoPYk4RchIu7SWvJf6DPOvmTqjU6nFzYoTh22Zjzl6tXTp514e/AQBWhvlh2/OjWryd5N1qREGHeFuCqpr68sZ66Sb0jDIs+QUAeYPZ2+/e1wfnrpahn2hlDZEjsWeEvJb4G6FaqcCLt3XD4I7hJn+orXW+oLylmkZkUC6am6TT6/HriVxU1ehQLQpGlok2wmuoTYgvRnWJMCpr+Ct+Z582mHNLZ6P3BJEjsWeEvJa5P7sDO4TBT6WAXhBQqdWbqUXkGOVV9cHI39YeAQBMG5qAqUPaGcoPXSw0e75aKYevynijR5nVWXaIHIM9I+S9zPw9DlArcfDFW/D9k0MMZRGBagzv3LrRh6xssMKmUquDVqfHxWvlRseOZxfjWpn0kkwisbJq02HDz/deMOoZscRHIUfv2BCjMq7gJVfDYIS8lqW/xxofhdEqg4cGxuPTqTc1+phvbDiG6ho9sosqUKnVIen1VHRa8BOG/XMrJt3IE/HR9rMY/+5O9P/7lha4CvJ04p6ROkq5DJv/yJWobUqllCMu1A8bZw0zlDV1KJLIXhiMkNeaP6F21cyUQfGSx5Wi5Y9KhRwymQyDO4RZfMwv9mbhoZW/Y9DCX7E+/TLKRBMLD10qwvx1h7HwpxMAmNOBrCPVM1JercObm05Ydb7Gp/b3uFtMkKFMzr/85GL4K0le6/7+bbHrb6Pwyh3dJY8rFfXfHn1u3LZms97fM68BqF3629D3onTdRA0JgoCL18oxd00Gdp3OBwCUSwQjYuEBxjvrTkyOxbqZgw33xStw6rFnhFwLJ7CSV4ttZT7ZmTg1dt1tAdb3Zhy9XGxD3SL8dDQbM0d2hL+ab0tv9cL6o4ZNGNelX8b5RbeiTGKYRizMX4X80irD/X/+ubfRcXFQXYdzRsjVsGeEyAxxivi625NuimvR53j4k32oqtHhtvd34cOtZy3uJ0Ker+Fu0Cn/2o6nv063eI7ax/KfcaXEmAznjJCr4VcwIjOU4u3Ub/zxvqtPG7QPD4C/WoExi3c0+zm2nbyK79MvG+4fuHCt2Y9Jrq+qRocjl4rQJy7E+PesgVO5je8MrbJwPlA/xAgAMcEaXCmqxPgeUdY3lsgB2DNCZIZ4mKbulkwmQ++4EHSMCMTXjw5EoKY+no8K0jTpeYor6ucESK2cIM8zf90R/Hn5Hrz365lmP5Y4RbzUrrvdousnrm6aMxz/e3ooBncMb/bzErUkBiNEZjS2k++gDmEY1L5+dc2e+aMxrJPtf+TFq2ps3WOE3NO6g7W9Ycu2NT8Y0QsC7k2KBQC8eU8vQ/l3Mwbh8eHt8ejw9oayII0PerQJbvZzErU0BiNEZhj1jJiJS+4f0BYA0LNNMGQyGbrH2P6HXqcXb3hm3b445Bm0OgGZ+WXNeowanYCX7+iOjbOG4Z4bQQkAJLcLxfwJXaHxkVpNQ+RaGIwQmdFYzwgAjOoSgR+fGoqvHh0AoGmrFN7++ZThdoWWPSPe5sXvjzbrfLlMhgC10iiPCJG7YTBCZIZ40zBLe3n0jA1GoMbnxjnNe06tjonQPMUPGZfx9NfpRr1dp3NLMGjhL0b1iiq0AGB1eveGbukW2fRGErkIBiNELaglNyArqtDi/o/3miz3JNcnCAKe+SYDPx66gv8dzjaUv77hOLKLKo3q1gWwFTbOF1oyqQ+mDmmHh0Ub5hG5Ky7tJbKCtT0eLZm+4V+pp7DnXAH2nCvA/f3bttwDU4vIuFiIuWsy8MKErhjToHci61q54bZC9EtRozPt/Th8qQiF5dWY+59DVj3vCxMSkRgVhOGdW+Ouvm2a2Hoi18KeEaIW1FKxyOKfT2L17vMt9GhkDzM+T8O5/DJM/+yAybFzokmpOtEeAuYmkw5a+Ct+PZFnVBbqr5KsO21oe6t2kCZyJwxGiKxgbZDRvnWA4fbd/Zr2rTWroNwk/8Q3+7Iw/dP9OJPXeBKsqhodzjdzhQY1rqRSa/ZYcUX9sbpU7YIgmJ0XIjVx+R9/6omk+FYY1ikc47rXJymzZmI1kbvhMA2RFXwayXJZ547eMbhQUI6bElqhX9tWhnwStsgvqzIpm7fuCADg0vUKbJo93OL593+8FwezCvHZI/35DdqOLKVULxIFI//cdBIqhRzHsoux60y+1Y8fFazB2idqN7x7TKL3hciTsGeEyIInRnZAn7gQ3Nor2qr6crkMz4zphMEdwpuc3+EDC1k5LxdWSJZ/+fsFvLD+CPR6AQezCgEAaw5cbNLzk3XkFnooisqNe002Hc2xKTB9974+6BMXYrhfWsX8M+TZ2DNCZMHfxiU6/Dkbzh0QCzCzo++C9bW5Koz2HOEqYbuyNFpS3GAIR6s3fjH++edeGNQ+DMP+udXk3AC1Enf2MR7iiw72bXpDidwAe0aIHCDQTBABAAsmdLX6cfwtPA6ARrebp5Zj7TANAKgUxnXD/FWIbSUdYEg96vwJifhT3zZY89hAm9tJ5A4YjBDZ0aK7eyJQrcQnU2+SPD60Y7jZVRNS/FX1Qz+F5dX476ErRt/CVUrRR5mFb+6VWh3mrsnABlEODLKNzIZgZP/560b3A9RKyGQyxIf5STywaVF4gBr/mtQHA0R7IRF5EgYjRHZ0X/+2OPRyCpLbheLDB/rh+bFdDMc0PnKsmJIMuQ3vQnHPyMOf7Mesr9PxzuaThjKl+MEsDNN8tuc81qVfxpNfHbT+ycmIeJjmLyt+x6Xr9blFGpvjEXBjt+f1M4fguxmDjI5xrQx5IwYjRHZWN9Hx1l7ReHJUR0N5QngAND4Ki939DclkwLmrtct7My4WAgC+TbtkOC7OaXH2aikOnL8m+Ti5xfUrdk7llmDOmgwuB7aR+HXbdSYfCzeeMNxvbPflurk/of4qJLcLNTr2bEoXqVOIPBqDESIHm3ojffffxtV+6Fjq7m/otzMFGP3Oduw+W79EVPzBJ85jcSKnBH9evgdHLhVZTDU+8aM9WJ9+GVNX7zc5JgicBWtOw3wfG45kI7e4NtV73f9312jpzevMTUQGgMmD4luohUTug8EIkYO9dFs3HHopBSO7RAAwvypDcj7BDR/vOCdZ3nCuAgDc/sEujHy7ftXGrydysXJXpuF+4Y1lqA23sv/kt0wkv7EFJ3KKzbbDE7256QTGLdnR6FCLVAw54q3a/+e6APGZmzuaVoLlici2BKdEnoLBCJGDyWQyBPv5GO6H+NZPYH14cDvEtvLF/f3j8NWj5ldOlFRKf1D+9bvDkuV1wzLFlVo8stq6BFqv/ngMBWXVeOmHP6yq7070etMen8/2nMfGI9lYtu0sTuSUYK1o+AsAjl4uwuRV+3D0chEA6WCkUqvHV79n4XpZNYDaiadS1Er+6SUSY54RIicb0jEMDw2MR+eoQDw0MB6v3NG90XNKzQQjlpRX1+Dmd7Y36TxPsuVYLmavyUBEoBrPjOmEO/u0wdmrpSZBl+5GwLLnbAF2nr6KtQcvIbe4CvsyC3Di9fHwMTPz+IX1Rwy3w8wEI+z9IDLGYITIyWQyGV6/q4fFOrGtfHHpen321ZO5JTY/z89/5OJqiWmqebHTuSWY9ukBPD26fnihRue680bO5JXARyFHfJi/1efUbWxXWlWDZ77JQMeIANz63i6TenXDZ/f/e69ReaVWjyOXigx7zgzrFI6dp6XTvIuXYhOReewrJHIDY7pGNl6pEfvNrKwRu+VfO5B1rRzPi4Z7TuTYHviIaXXSm8NZY/n2s7jp71vwQ0ZtKvXy6hr8edlufLj1DEqrajBm8Q6MeGuboRejKaQCEaA2SPzpiHQelts/2IXiG71TYRbyxPgyGCGyCoMRIhe25rGBmD8+EQ8MaNvsx8ouqmzyuX9cKbK6rngFzobD2ej+8mazH+qNWbEzE1dLqvDMNxkAgG8PXMKBC9fx1uaThnkZgPEuuS1l5a5MPPFl43lYgnx9zB7zU5l2Pot7nerMGNEBADCFK2nISzEYIXJhA9qH4fERHRCkMf+BZy1Le9405o/Lxitqzl0tlezxqNTqMHbJDkxbvR86vYAnvzqI6hq9VR/qUuqGQuqIly4/9XW64fb18trAZPY36Zj+6QHJJckrd2Viwrs7rX7urGvljVeC8STVWTd3MjrWcPlvVJBGMo/I82O74MenhuLF27pZ3T4iT8JghMgNRAZJT4QEalPK25tStLfK5j9yMPqd7XjsswO4XFiBL/ZeMOTV2HU6H6dyS/HLiTxMWbXP6DEEQcDBrOsoa8YOtOIP90M3kr4BwPVyLcqra/B9xhVsOZ6LrGvlJgHJ6/87hmPZLb9MWfza3NbI7s5KhfTEVYVchp6xwVAq+CeZvBN/84ncgHj1xaD2YbjvpjgAwNv39sYX0wegbaj5nCQtoUKrw56zBZj6yT689uMxAMDWk1fxr9RT+L/vj+KBFbWTPMUf/7vOGE/q/C7tEu5euhsPf2IcpCzbdhYv/3D0RiBTPz/l8z3nTdph7sO8sLwa18vrh2oyLhYiYf5GtJu3wTDfxF4C1PW9VlJLeacPTTDcXjKpj13bQuSuuJqGyE38361d8e6W05g/IRG9YkPw8u3dDRMkmzNJ1JKOEQE4k1eKxT+fQoFojkad727k4kjPKgQAmPti76OQYc3+iwBqN43bcDgby7efxXv398Wbm2rTqH+65wIA4PyiWwEAL0rkN2k47FGnsFyLwvL69tXNMam7fWefNhausnnKREufQyTmj8wbn4i7+rZBl6hA+LDng0gSgxEiNzF9WHs8MiTBsNeNeKWGpawVY7pGYMtx2+eLhAeokBzfCmfySiUDkYZqdHpozSwDVinkhnYDMGzQ9/TXpnNJ9HrBqK5YpVY66LpeXm3IJCtlzpoMs8eaS7z0WardSoUcPdoE2+35iTwBw3QiN2LuQ/q9+/si2NcHXSIDTY5ZSj1u8blkMpuWpuaXVpvdA0ellEumvb+QbzpJ9H9Hso16OeqUVdXg9f8dk3z8wnKtYRKrlPXp9huqua13NNqH+xv2HKpjLs0/EZlizwiRB0huF4qMl27Byl2ZeGPDcaNjKtHQgEohR7WVQzoyGeDrY30wkldSaXa3WrVSenfiEonJrLO+TsfILq1Nyvdlms+T8sHWM5KBmCMEaXzw63MjTcrNDSkRkakm9YwsXboUCQkJ0Gg0SEpKws6dlpfLbd++HUlJSdBoNGjfvj2WL1/epMYSkXkymQzKBh+AveNCoBLtgzK+Z5ThdpDG8neR0soa24KR4iqzqeMDNEqbPpy3nbxqUrb5jxyL59ialbZDa+uztppjaUKqVPBFRNJsDkbWrFmD2bNnY8GCBUhPT8ewYcMwfvx4ZGVlSdbPzMzEhAkTMGzYMKSnp+OFF17ArFmzsHbt2mY3noiM9U8IM7r/xbT+RsGIeLVHY0MwZdU61NiQ2bSwQmt2mEYplzX7w/mbGxNgW8Lwzq2xefZwJMW3Mip/eHA7o/ufTL3J7GMsntgbd/U1PzGWPSNE1rM5GFm8eDGmTZuG6dOno2vXrliyZAni4uKwbNkyyfrLly9H27ZtsWTJEnTt2hXTp0/HI488grfffrvZjSciY91igrB+5mB8N2MQTr4xDoEaH6NgJCygPnW5xopej2uiias/zxluse6eswUoMxOMnMgpQW5x0zPAtrQukQFQKuT45rGB2DJ3hKE8OliDPnEhhvujukTg1p71uUMOvZSCkV1ao1dsMIZ2ks7vUjfE9BCzqRJZzaY5I9XV1UhLS8O8efOMylNSUrB7927Jc/bs2YOUlBSjsrFjx2LlypXQarXw8TFdCldVVYWqqvrMi8XFLZ+oiMhT9W1r/G1fLZozEuJbH4w0NgTz3v198ZtoA7jOkYFICPdHZn6ZZP21By+hc2SA2cdr7h43tlLIZWb3rIltVZuXxUchR1yor6F8SMdwnMwpQYYooVr/hFBsuJHOPtjPB6un9rf4vB880A/7MgswtKPpvBcikmZTMJKfnw+dTofISONNuyIjI5GTIz2em5OTI1m/pqYG+fn5iI42zVi4cOFCvPrqq7Y0jYjMEPeMBIvyYIxOjDAKECYmx+I/B2rzhiyY0BV39I5B79hgbDuVh4cH1ybu6hMXYjYYAYBTuaUt3fwm81HIMKpLa8llzeL/B7VSgb+O6wJtjYDuMUFYcGtX+CjkmNS/NrHcAwPawtdHgYHtw0weR0qAWonRic3f2JDImzRpNY2swdivIAgmZY3VlyqvM3/+fMydO9dwv7i4GHFxcU1pKpHXEwcj4l6AWTd3Qqi/CqMSI9ChdW2PRl0wUvfWjA/zx975NxveqwnhzZ/0acmQjmH47UxBo/WS4lvh+bFd8OhnB1BSKT1p1kchx78nJyNh/kaj8l6xwUjpbhwszBxZv3ldWIAab/65l9HjTLyJf3+I7MmmYCQ8PBwKhcKkFyQvL8+k96NOVFSUZH2lUomwMOlvGmq1Gmq1+b04iMh64omjbUP9sGRSH2h8FND4KDB9WHvJc8Tbuoi/NNg7GOkcGWhVMHJTu1AMbB+G/QvGIPHFTZJ1VAq55Bee/z41tNntJKKWZdMEVpVKhaSkJKSmphqVp6amYvDgwZLnDBo0yKT+zz//jOTkZMn5IkRkP2qlAnf1bYNxPaIaryxhmJlJmw39361dm/T4AVYkaHtoYDyeubE7rlpp/k8YU68TuQ+b361z587FihUrsGrVKhw/fhxz5sxBVlYWZsyYAaB2iGXy5MmG+jNmzMCFCxcwd+5cHD9+HKtWrcLKlSvx3HPPtdxVEJFZelE3h6UPb7GesdLpy0P8VEj7vzFYMTnZqPzuBktcY1vVDwfd2shOtmLiFT5tQnxNjkcEqvHy7d0My5ItDQ/Xbar3+Ajp3h8ich02zxmZNGkSCgoK8NprryE7Oxs9evTAxo0bER9fu4wtOzvbKOdIQkICNm7ciDlz5uDDDz9ETEwM3nvvPdxzzz0tdxVEZJZ4QYm5dPJ1fnl2BM5dLbM4WTMsQI2BHeqPB6iVWDypD349mWfYH0a8k2170dCOSilHbIgvfBRyySRlwb4+2Dx7OLKLKlBYrsVs0Z4ynSICsG7mYCgb6fGYPjQBK3Zl4sXbugEA5o1LxKXrFdhwONvieUTkPE2awDpz5kzMnDlT8tjq1atNykaMGIGDB003xCIi+xOsz1uGDq0DDJNZLREvC65L7iVeRlvXKwEY93YMah+GTx/pj3UHL2Hufw6ZPG6ovwpdogLRJSoQWp0eG45kI/VYLgBgcIcwBGoaH9pdcGtXzBjZwZDgTSaTISHMvnNdiKh5OKhK5OH0tkQjVhJnF9Xe2OtGLwpGfETBiI9ChocGxkMuA55L6QIAZvN/tPJTic6rXQ0jvm8NmUxmlGkWqN2BmIhcFzfKI/Jwgh2CEbHqmhvBiOhplPL6wEEhl+O1O7vjuZQuCPar7dkwl2a+lb/5ng+VmfkuNydG4JcTprlExO7r3xZ7z12T3ICPiJyPPSNEHu62XjEAgO4xQXZ5/LrAQieIe0bq/7Qo5TLIZDJDIAIANaKdg9+5t7fhdqif+R4Mc8HIRw8l4fsnh2B0YoTJxNo6Gh8Flj+UhPv6t23kaojIGdgzQuTh2oX748D/jTHKOtoSHh/RHh9tP4cFE2qX8ZobphHPH6mj1dXXvblrhOG2OGCpExGoRl5JFW7pJp3LSKmQo09cCFY9bH5TOyJybQxGiLxAwzkULeGvYxNxT79YdIqonfAq7hlRNugZaUg8HBPip8LSB/tBrZRDrTTdL+eXZ0cgr6TKqom1ROSeGIwQUZMo5DJ0jgw03BeM5ozIRPVMh1du7xWD389dw6AbS4Qn9DSfiyRQ42PVKhoicl8MRoioxYnnjPhIDNMoFXIsuqeXSTkReSdOYCWiFnHbjUyr/RNCjeaJyC1kSSUiAtgzQkQtZOHdPTG0YzjGdo9qNNMrEZEYgxEiahGBGh/D0tny6hpDuX2znBCRJ+AwDRG1OKXEpFUiInP4F4OIWpx40qq9M8ASkftjMEJELU4mEwcjTmwIEbkFBiNERETkVAxGiMiuBE5hJaJGMBghIrviMA0RNYbBCBHZVUK4v7ObQEQujnlGiMguvn9yCC4UlKFv21bObgoRuTgGI0RkF33iQtAnLsTZzSAiN8BhGiIiInIqBiNERETkVAxGiIiIyKkYjBAREZFTMRghIiIip2IwQkRERE7FYISIiIicisEIERERORWDESIiInIqBiNERETkVAxGiIiIyKkYjBAREZFTMRghIiIip3KLXXsFQQAAFBcXO7klREREZK26z+26z3Fz3CIYKSkpAQDExcU5uSVERERkq5KSEgQHB5s9LhMaC1dcgF6vx5UrVxAYGAiZTNZij1tcXIy4uDhcvHgRQUFBLfa4rsTTr5HX5/48/Ro9/foAz79GXl/TCYKAkpISxMTEQC43PzPELXpG5HI5YmNj7fb4QUFBHvkLJubp18jrc3+efo2efn2A518jr69pLPWI1OEEViIiInIqBiNERETkVF4djKjVarz88stQq9XObordePo18vrcn6dfo6dfH+D518jrsz+3mMBKREREnsure0aIiIjI+RiMEBERkVMxGCEiIiKnYjBCRERETuXxwcjf//53DB48GH5+fggJCbHqHEEQ8MorryAmJga+vr4YOXIk/vjjD6M6VVVVePrppxEeHg5/f3/ccccduHTpkh2uwLLr16/joYceQnBwMIKDg/HQQw+hsLDQ4jkymUzy56233jLUGTlypMnx++67z85XY6op1/fwww+btH3gwIFGdVzl9QNsv0atVou//e1v6NmzJ/z9/RETE4PJkyfjypUrRvWc9RouXboUCQkJ0Gg0SEpKws6dOy3W3759O5KSkqDRaNC+fXssX77cpM7atWvRrVs3qNVqdOvWDevXr7dX861iyzWuW7cOt9xyC1q3bo2goCAMGjQImzdvNqqzevVqyfdkZWWlvS9Fki3Xt23bNsm2nzhxwqieK72Gtlyf1N8TmUyG7t27G+q40uu3Y8cO3H777YiJiYFMJsP333/f6Dku8R4UPNxLL70kLF68WJg7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\n", + "image/png": "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FXIsuqeXSTkReSdOYCWiFnHbjUyr/RNCjeaJyC1kSSUiAtgzQkQtZOHdPTG0YzjGdo9qNNMrEZEYgxEiahGBGh/D0tny6hpDuX2znBCRJ+AwDRG1OKXEpFUiInP4F4OIWpx40qq9M8ASkftjMEJELU4mEwcjTmwIEbkFBiNERETkVAxGiMiuBE5hJaJGMBghIrviMA0RNYbBCBHZVUK4v7ObQEQujnlGiMguvn9yCC4UlKFv21bObgoRuTgGI0RkF33iQtAnLsTZzSAiN8BhGiIiInIqBiNERETkVAxGiIiIyKkYjBAREZFTMRghIiIip2IwQkRERE7FYISIiIicisEIERERORWDESIiInIqBiNERETkVAxGiIiIyKkYjBAREZFTMRghIiIip3KLXXsFQQAAFBcXO7klREREZK26z+26z3Fz3CIYKSkpAQDExcU5uSVERERkq5KSEgQHB5s9LhMaC1dcgF6vx5UrVxAYGAiZTNZij1tcXIy4uDhcvHgRQUFBLfa4rsTTr5HX5/48/Ro9/foAz79GXl/TCYKAkpISxMTEQC43PzPELXpG5HI5YmNj7fb4QUFBHvkLJubp18jrc3+efo2efn2A518jr69pLPWI1OEEViIiInIqBiNERETkVF4djKjVarz88stQq9XObordePo18vrcn6dfo6dfH+D518jrsz+3mMBKREREnsure0aIiIjI+RiMEBERkVMxGCEiIiKnYjBCRERETuXxwcjf//53DB48GH5+fggJCbHqHEEQ8MorryAmJga+vr4YOXIk/vjjD6M6VVVVePrppxEeHg5/f3/ccccduHTpkh2uwLLr16/joYceQnBwMIKDg/HQQw+hsLDQ4jkymUzy56233jLUGTlypMnx++67z85XY6op1/fwww+btH3gwIFGdVzl9QNsv0atVou//e1v6NmzJ/z9/RETE4PJkyfjypUrRvWc9RouXboUCQkJ0Gg0SEpKws6dOy3W3759O5KSkqDRaNC+fXssX77cpM7atWvRrVs3qNVqdOvWDevXr7dX861iyzWuW7cOt9xyC1q3bo2goCAMGjQImzdvNqqzevVqyfdkZWWlvS9Fki3Xt23bNsm2nzhxwqieK72Gtlyf1N8TmUyG7t27G+q40uu3Y8cO3H777YiJiYFMJsP333/f6Dku8R4UPNxLL70kLF68WJg7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", "text/plain": [ "
" ] @@ -273,7 +273,7 @@ } ], "source": [ - "res = em.minimize(\n", + "res = om.minimize(\n", " criterion=sphere_with_noise,\n", " params=start_params,\n", " algorithm=\"scipy_lbfgsb\",\n", @@ -402,7 +402,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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", "text/plain": [ "
" ] @@ -436,7 +436,7 @@ } ], "source": [ - "res = em.minimize(\n", + "res = om.minimize(\n", " criterion=piecewise_constant_sphere,\n", " params=start_params,\n", " algorithm=\"scipy_lbfgsb\",\n", @@ -470,7 +470,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.8" + "version": "3.10.14" } }, "nbformat": 4, diff --git a/docs/source/explanations/differentiation/index.md b/docs/source/explanations/differentiation/index.md deleted file mode 100644 index 8c00c1043..000000000 --- a/docs/source/explanations/differentiation/index.md +++ /dev/null @@ -1,9 +0,0 @@ -# Differentiation - -```{toctree} ---- -maxdepth: 1 ---- -background_numerical_differentiation -richardson_extrapolation -``` diff --git a/docs/source/explanations/differentiation/richardson_extrapolation.md b/docs/source/explanations/differentiation/richardson_extrapolation.md deleted file mode 100644 index 2c732fe6b..000000000 --- a/docs/source/explanations/differentiation/richardson_extrapolation.md +++ /dev/null @@ -1,232 +0,0 @@ -# Richardson Extrapolation - -In this section we introduce the mathematical machinery of *Richardson's method*. - -## Motivation - -Say you want to compute the value of some function -$g: \mathbb{R}_+ \to -\mathbb{R}^{m\times n}, h \mapsto g(h)$ as $h \to 0$; however, -$\lim_{h\to\infty} g(h)\neq g(0)$. We can approximate the limit by evaluating the -function at values close to zero on a computer. The error of our approximation naturally -depends on $g$. In certain cases it is possible to express this error in a specific way, -in which case we can improve upon the order of our error using Richardson's method. - -### Example - -Lets start with an easy case where $f: \mathbb{R} \to \mathbb{R}$ is the function of -interest. Using central differences we can approximate $f'$ at some point -$x \in \mathbb{R}$ by $g(h) := \frac{f(x+h) - f(x-h)}{2h}$. Note that $g(h) \to f'(x)$ -as $h \to 0$ if $f$ is differentiable at $x$; however, $g(0)$ is not defined and hence -in particular unequal to $f'(x)$. To quantify the error of using $g(h)$ instead of -$f'(x)$ we can rely on Taylor's Theorem (assuming that $f$ has a Taylor representation): - -$$ -f(x+h) &= f(x) + f'(x)h + f''(x)\frac{h^2}{2} + f'''(x)\frac{h^3}{6} + -\dots\\ f(x-h) &= f(x) - f'(x)h + f''(x)\frac{h^2}{2} - -f'''(x)\frac{h^3}{6} - \dots\\[1em] \implies& f(x+h) - f(x-h) = 2hf'(x) + -2\frac{h^3}{6} f'''(x) + 2\frac{h^5}{5!} f^{(5)}(x) + \dots \\ \implies& -g(h) \stackrel{def}{=} \frac{f(x+h) - f(x-h)}{2h} = f'(x) + h^2 -\frac{f'''(x)}{3!} + h^4 \frac{f^{(5)}(x)}{5!} + \dots \\ \implies& g(h) = -f'(x) + \sum_{i=0}^{\infty} a_i h^{2+2i} = f'(x) + \mathcal{O}(h^2) -$$ - -where $\mathcal{O}(\cdot)$ denotes the Landau notation. Richardson's method can be used -to improve the error rate $\mathcal{O}(h^2)$. - -## General case - -In general Richardson's method considers sequences that can be written as: - -$$ -g(h) = L + \sum_{i=0}^{\infty} a_i h^{\theta +i \phi,} -$$ - -where $L \in \mathbb{R}$ denotes the limit of interest, $\theta$ the *base order of the -approximation* and $\phi$ the *exponential step*. Allthough Richardson's method works -for general sequences, we are mostly interested in the sequences arising when estimating -derivatives. - -### Example (contd.) - -For standard derivative estimates we have - -| Method | $L$ | $\theta$ | $\phi$ | -| -------------- | ------- | -------- | ------ | -| forward diff. | $f'(x)$ | 1 | 1 | -| backward diff. | $f'(x)$ | 1 | 1 | -| central diff. | $f'(x)$ | 2 | 2 | - -## Richardson Extrapolation - -From the above table we see that, in general, central differences have a lower -approximation error $\mathcal{O}(h^2)$ than forward or backward differences -$\mathcal{O}(h)$. - -> **Question**: Can we improve upon this further? - -Let us evaluate $g$ at multiple values $h_0, h_1, h_2, \dots$, where it will turn out to -be useful to choose values $h, h/2, h/4, h/8, \dots$ given some prechosen $h > 0$. More -generally $\{ h_n \}_n, h_n = h/2^n$ for $n -\in \mathbb{N}$. This allows us to write - -$$ -g(h) &= L + \sum_{i=0}^{\infty} a_i h^{\theta +i \phi}\\ g(h/2) &= L + -\sum_{i=0}^{\infty} a_i h^{\theta +i \phi} \frac{1}{2^{\theta +i \phi}}\\ g(h/4) &= -L + \sum_{i=0}^{\infty} a_i h^{\theta +i \phi} \frac{1}{4^{\theta +i \phi}}\\ -&\vdots -$$ - -Now approximate the $g(h_n)$ by dropping all elements in the infinite sum after $i=1$ -and collect the approximation error using the term $\eta(h_n)$: - -$$ -g(h) &= \tilde{g}(h) + \eta(h) := L + \sum_{i=0}^{1} a_i h^{\theta +i \phi} -\\ g(h/2) &= \tilde{g}(h/2) + \eta(h/2) := L + \sum_{i=0}^{1} a_i h^{\theta -+i \phi} \frac{1}{2^{\theta +i \phi}}\\ g(h/4) &= \tilde{g}(h/4) + -\eta(h/4) := L + \sum_{i=0}^{1} a_i h^{\theta +i \phi} \frac{1}{4^{\theta -+i \phi}}\\ &\vdots -$$ - -Notice that we are now able to summarize the equations as - -$$ -\begin{bmatrix} -g(h) \\ -g(h/2) \\ -g(h/4) -\end{bmatrix} -= - \begin{bmatrix} - 1 & h^\theta & h^{\theta + \phi} \\ - 1 & {h^\theta}/{2^\theta} & {h^{\theta + \phi}}/{(2^{\theta + \phi})} \\ - 1 & {h^\theta}/{4^\theta} & {h^{\theta + \phi}}/{(4^{\theta + \phi})} \\ - \end{bmatrix} - \begin{bmatrix} - L \\ a_0 \\ a_1 - \end{bmatrix} -+ - \begin{bmatrix} - \eta (h)\\ - \eta (h/2) \\ - \eta (h/4) - \end{bmatrix} -$$ - -which we write in shorthand notation as - -$$ -(\ast): \,\,\, -g = H - \begin{bmatrix} - L \\ a_0 \\ a_1 - \end{bmatrix} -+ \eta \,. -$$ - -From looking at equation ($\ast$) we see that an improved estimate of $L$ can be -obtained by projecting $g$ onto $H$. - -### Remark - -To get a better intuition for ($\ast$) consider $H$ in more detail. For the sake of -clarity let $\theta = \phi = 2$. - -$$ -H = -\begin{bmatrix} - 1 & h^2 & h^4 \\ - 1 & h^2/2^2 & h^4/2^4 \\ - 1 & h^2/4^2 & h^4/4^4 \\ -\end{bmatrix} = -\begin{bmatrix} - 1 & h^2 & h^4 \\ - 1 & (h/2)^2 & (h/2)^4 \\ - 1 & (h/4)^2 & (h/4)^4 \\ -\end{bmatrix} -$$ - -Hence $H$ is a design matrix constructed from polynomial terms of degree $0,2,4,\dots$ -(in general: $0,\theta, \theta + \phi, \theta + 2\phi,\dots$) evaluated at the observed -points $h, h/2,h/4,h/8, \dots$. - -In other words, dependant on the step-size of the derivative ($h$), we fit a polynomial -model to the derivative estimate and approximate the true derivative using the fitted -intercept. - -The usual estimate is then given by $\hat{L} := e_1^T (H^T H)^{-1} H^T g$ which is equal -to $e_1^T H^{-1} g = \sum_{i} \{H^{-1}\}_{1,i} g_i$ in case $H$ is regular. - -## Did we improve the error rate? - -Let us first consider the error function $\eta: h \to \eta (h)$ in more detail. We see -that - -$$ -\eta(h) = g(h) - \tilde{g}(h) = L + \sum_{i=0}^{\infty} a_i h^{\theta +i -\phi} - (L + \sum_{i=0}^{1} a_i h^{\theta +i \phi}) = \sum_{i=2}^{\infty} -h^{\theta +i \phi} = \mathcal{O}(h^{\theta +2 \phi}) \,. -$$ - -Now consider the case where $H$ is regular (which happens here when $H$ is quadratic). -We then have, using ($\ast$) - -$$ -g = H - \begin{bmatrix} - L \\ a_0 \\ a_1 - \end{bmatrix} -+ \eta \implies H^{-1} g = -\begin{bmatrix} - L \\ a_0 \\ a_1 -\end{bmatrix} -+ H^{-1} \eta -$$ - -To get a better view on the error rate consider our ongoing example again. - -### Example (contd.) - -With - -$$ -H = -\begin{bmatrix} - 1 & h^2 & h^4 \\ - 1 & (h/2)^2 & (h/2)^4 \\ - 1 & (h/4)^2 & (h/4)^4 \\ -\end{bmatrix} -$$ - -we get - -$$ -H^{-1} = \frac{1}{45} - \begin{bmatrix} - 1 & -20 & 64\\ - -20/h^2 & 340/h^2 & -320/h^2\\ - 64/h^4 & -320/h^4 & 256/h^4 - \end{bmatrix} -$$ - -Further, since for central differences $\theta = \phi = 2$ we have -$\eta -(h_n) = \mathcal{O}(h^6)$ for all $n$ and thus: - -$$ -H^{-1} \eta = H^{-1} -\begin{bmatrix} - \eta(h) \\ - \eta (h/2) \\ - \eta (h/4) \\ -\end{bmatrix} -= -\begin{bmatrix} - \mathcal{O}(h^6) \\ - \dots \\ - \dots \\ -\end{bmatrix} -\implies \hat{L} = \{H^{-1} g \}_1 = L + \mathcal{O}(h^6) -$$ - -And so indeed we improved the error rate. diff --git a/docs/source/explanations/index.md b/docs/source/explanations/index.md deleted file mode 100644 index 9162e2066..000000000 --- a/docs/source/explanations/index.md +++ /dev/null @@ -1,77 +0,0 @@ -# Explanations - -Explanations contain background information on important topics. They are not needed to -get started, but very helpful for advanced users and developers of estimagic. - -`````{grid} 1 2 2 2 ---- -gutter: 3 ---- -````{grid-item-card} -:text-align: center -:img-top: ../_static/images/optimization.svg -:class-img-top: index-card-image -:shadow: md - -```{button-link} optimization/index.html ---- -click-parent: -ref-type: ref -class: stretched-link index-card-link sd-text-primary ---- -Optimization -``` - -Learn how to use constraints, parallelize function evaluations, and configure every aspect of your optimization. - -```` - -````{grid-item-card} -:text-align: center -:img-top: ../_static/images/differentiation.svg -:class-img-top: index-card-image -:shadow: md - -```{button-link} differentiation/index.html ---- -click-parent: -ref-type: ref -class: stretched-link index-card-link sd-text-primary ---- -Differentiation -``` - -Learn how to influence step sizes, parallelize function evaluations, and use advanced options for numerical differentiation. - -```` - -````{grid-item-card} -:text-align: center -:img-top: ../_static/images/bullseye.svg -:class-img-top: index-card-image -:shadow: md - -```{button-link} inference/index.html ---- -click-parent: -ref-type: ref -class: stretched-link index-card-link sd-text-primary ---- -Estimation -``` - -Learn how to calculate different types of standard errors and do sensitivity analysis. - -```` - -````` - -```{toctree} ---- -hidden: true -maxdepth: 1 ---- -optimization/index -differentiation/index -inference/index -``` diff --git a/docs/source/explanations/optimization/index.md b/docs/source/explanations/optimization/index.md deleted file mode 100644 index 3925f07cb..000000000 --- a/docs/source/explanations/optimization/index.md +++ /dev/null @@ -1,12 +0,0 @@ -# Optimization - -```{toctree} ---- -maxdepth: 1 ---- -implementation_of_constraints -internal_optimizers -why_optimization_is_hard.ipynb -explanation_of_numerical_optimizers -tests_for_supported_optimizers -``` diff --git a/docs/source/getting_started/estimation/first_msm_estimation_with_estimagic.ipynb b/docs/source/getting_started/estimation/first_msm_estimation_with_estimagic.ipynb deleted file mode 100644 index 1fb6df4c3..000000000 --- a/docs/source/getting_started/estimation/first_msm_estimation_with_estimagic.ipynb +++ /dev/null @@ -1,343 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "private-handle", - "metadata": {}, - "source": [ - "# Method of Simulated Moments (MSM)\n", - "\n", - "This tutorial shows you how to do a Method of Simulated Moments estimation in estimagic. The Method of Simulated Moments (MSM) is a nonlinear estimation principle that is very useful for fitting complicated models to the data. The only ingredient required is a function that simulates the model outcomes you observe in some empirical dataset. \n", - "\n", - "In the tutorial here, we will use a simple linear regression model. This is the same model which we use in the tutorial on maximum likelihood estimation.\n", - "\n", - "Throughout the tutorial, we only talk about MSM estimation. However, the more general case of indirect inference estimation works exactly the same way. \n", - "\n", - "\n", - "## Steps of MSM estimation\n", - "\n", - "1. Load (simulate) empirical data \n", - "2. Define a function to calculate estimation moments on the data \n", - "3. Calculate the covariance matrix of the empirical moments (with ``get_moments_cov``)\n", - "4. Define a function to simulate moments from the model \n", - "5. Estimate the model, calculate standard errors, do sensitivity analysis (with ``estimate_msm``)\n", - "\n", - "## Example: Estimate the parameters of a regression model\n", - "\n", - "The model we consider here is a simple regression model with only one explanatory variable (plus a constant). The goal is to estimate the slope coefficients and the error variance from a simulated data set.\n", - "\n", - "The estimation mechanics are exactly the same for more complicated models. A model is always defined by a function that can take parameters (here: the mean, variance and lower_cutoff and upper_cutoff) and returns a number of simulated moments (mean, variance, soft_min and soft_max of simulated exam points).\n", - "\n", - "### Model:\n", - "\n", - "$$ y = \\beta_0 + \\beta_1 x + \\epsilon, \\text{ where } \\epsilon \\sim N(0, \\sigma^2)$$\n", - "\n", - "We aim to estimate $\\beta_0, \\beta_1, \\sigma^2$." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "dirty-slovakia", - "metadata": {}, - "outputs": [], - "source": [ - "import estimagic as em\n", - "import numpy as np\n", - "import pandas as pd\n", - "\n", - "rng = np.random.default_rng(seed=0)" - ] - }, - { - "cell_type": "markdown", - "id": "annoying-guard", - "metadata": {}, - "source": [ - "## 1. Simulate data" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "fdaf1542", - "metadata": {}, - "outputs": [], - "source": [ - "def simulate_data(params, n_draws, rng):\n", - " x = rng.normal(0, 1, size=n_draws)\n", - " e = rng.normal(0, params.loc[\"sd\", \"value\"], size=n_draws)\n", - " y = params.loc[\"intercept\", \"value\"] + params.loc[\"slope\", \"value\"] * x + e\n", - " return pd.DataFrame({\"y\": y, \"x\": x})" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "f965ccdc", - "metadata": {}, - "outputs": [], - "source": [ - "true_params = pd.DataFrame(\n", - " data=[[2, -np.inf], [-1, -np.inf], [1, 1e-10]],\n", - " columns=[\"value\", \"lower_bound\"],\n", - " index=[\"intercept\", \"slope\", \"sd\"],\n", - ")\n", - "\n", - "data = simulate_data(true_params, n_draws=100, rng=rng)" - ] - }, - { - "cell_type": "markdown", - "id": "20a94f52", - "metadata": {}, - "source": [ - "## 2. Calculate Moments" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "diverse-validation", - "metadata": {}, - "outputs": [], - "source": [ - "def calculate_moments(sample):\n", - " moments = {\n", - " \"y_mean\": sample[\"y\"].mean(),\n", - " \"x_mean\": sample[\"x\"].mean(),\n", - " \"yx_mean\": (sample[\"y\"] * sample[\"x\"]).mean(),\n", - " \"y_sqrd_mean\": (sample[\"y\"] ** 2).mean(),\n", - " \"x_sqrd_mean\": (sample[\"x\"] ** 2).mean(),\n", - " }\n", - " return pd.Series(moments)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "short-flood", - "metadata": {}, - "outputs": [], - "source": [ - "empirical_moments = calculate_moments(data)\n", - "empirical_moments" - ] - }, - { - "cell_type": "markdown", - "id": "italic-baptist", - "metadata": {}, - "source": [ - "## 3. Calculate the covariance matrix of empirical moments\n", - "\n", - "The covariance matrix of the empirical moments (``moments_cov``) is needed for three things:\n", - "1. to calculate the weighting matrix\n", - "2. to calculate standard errors\n", - "3. to calculate sensitivity measures\n", - "\n", - "We will calculate ``moments_cov`` via a bootstrap. Depending on your problem, there can be other ways to calculate the covariance matrix." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "rocky-willow", - "metadata": {}, - "outputs": [], - "source": [ - "moments_cov = em.get_moments_cov(\n", - " data, calculate_moments, bootstrap_kwargs={\"n_draws\": 5_000, \"seed\": 0}\n", - ")\n", - "\n", - "moments_cov" - ] - }, - { - "cell_type": "markdown", - "id": "hearing-dairy", - "metadata": {}, - "source": [ - "``get_moments_cov`` mainly just calls estimagic's bootstrap function. See our [bootstrap_tutorial](../../how_to_guides/inference/how_to_do_bootstrap_inference.ipynb) for background information. \n", - "\n" - ] - }, - { - "cell_type": "markdown", - "id": "worldwide-whole", - "metadata": {}, - "source": [ - "## 4. Define a function to calculate simulated moments\n", - "\n", - "In a real world application, this is the step that would take most of the time. However, in our very simple example, all the work is already done by numpy." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "creative-pittsburgh", - "metadata": {}, - "outputs": [], - "source": [ - "def simulate_moments(params, n_draws=10_000, seed=0):\n", - " rng = np.random.default_rng(seed)\n", - " sim_data = simulate_data(params, n_draws, rng)\n", - " sim_moments = calculate_moments(sim_data)\n", - " return sim_moments" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "casual-stream", - "metadata": {}, - "outputs": [], - "source": [ - "simulate_moments(true_params)" - ] - }, - { - "cell_type": "markdown", - "id": "sustainable-collectible", - "metadata": {}, - "source": [ - "## 5. Estimate the model parameters\n", - "\n", - "Estimating a model consists of the following steps:\n", - "\n", - "- Building a criterion function that measures a distance between simulated and empirical moments\n", - "- Minimizing this criterion function\n", - "- Calculating the Jacobian of the model\n", - "- Calculating standard errors, confidence intervals and p-values\n", - "- Calculating sensitivity measures\n", - "\n", - "This can all be done in one go with the ``estimate_msm`` function. This function has sensible default values, so you only need a minimum number of inputs. However, you can configure almost any aspect of the workflow via optional arguments. If you need even more control, you can call the lower level functions, which the now famliliar``estimate_msm`` function is built on, directly. " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "finite-david", - "metadata": {}, - "outputs": [], - "source": [ - "start_params = true_params.assign(value=[100, 100, 100])\n", - "\n", - "res = em.estimate_msm(\n", - " simulate_moments,\n", - " empirical_moments,\n", - " moments_cov,\n", - " start_params,\n", - " optimize_options=\"scipy_lbfgsb\",\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "outside-volleyball", - "metadata": {}, - "outputs": [], - "source": [ - "res.summary()" - ] - }, - { - "cell_type": "markdown", - "id": "incident-government", - "metadata": {}, - "source": [ - "## What's in the result?\n", - "\n", - "`MomentsResult` objects provide attributes and methods to calculate standard errors, confidence intervals and p-values. For all three, several methods are available. You can even calculate cluster robust standard errors.\n", - "\n", - "A few examples are:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "caring-scale", - "metadata": {}, - "outputs": [], - "source": [ - "res.params" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "9fc88986", - "metadata": {}, - "outputs": [], - "source": [ - "res.cov(method=\"robust\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "d7dbe79c", - "metadata": {}, - "outputs": [], - "source": [ - "res.se()" - ] - }, - { - "cell_type": "markdown", - "id": "blind-tractor", - "metadata": {}, - "source": [ - "## How to visualize sensitivity measures?\n", - "\n", - "For more background on the sensitivity measures and their interpretation, check out the [how to guide](../../how_to_guides/miscellaneous/how_to_visualize_and_interpret_sensitivity_measures.ipynb) on sensitivity measures. \n", - "\n", - "Here, we just show you how to plot them:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "fleet-qatar", - "metadata": {}, - "outputs": [], - "source": [ - "from estimagic.visualization.lollipop_plot import lollipop_plot # noqa: E402\n", - "\n", - "sensitivity_data = res.sensitivity(kind=\"bias\").abs().T\n", - "\n", - "fig = lollipop_plot(sensitivity_data)\n", - "\n", - "fig = fig.update_layout(height=500, width=900)\n", - "fig.show(renderer=\"png\")" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "estimagic", - "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.10.8 | packaged by conda-forge | (main, Nov 22 2022, 08:27:35) [Clang 14.0.6 ]" - }, - "vscode": { - "interpreter": { - "hash": "e8a16b1bdcc80285313db4674a5df2a5a80c75795379c5d9f174c7c712f05b3a" - } - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/docs/source/getting_started/index.md b/docs/source/getting_started/index.md deleted file mode 100644 index db85d0714..000000000 --- a/docs/source/getting_started/index.md +++ /dev/null @@ -1,117 +0,0 @@ -# Getting Started - -This section contains quickstart guides for new estimagic users. It can also serve as a -reference for more experienced users. - -`````{grid} 1 2 2 2 ---- -gutter: 3 ---- -````{grid-item-card} -:text-align: center -:img-top: ../_static/images/optimization.svg -:class-img-top: index-card-image -:shadow: md - -```{button-link} first_optimization_with_estimagic.html ---- -click-parent: -ref-type: ref -class: stretched-link index-card-link sd-text-primary ---- -Optimization -``` - -Learn numerical optimization with estimagic. - -```` - -````{grid-item-card} -:text-align: center -:img-top: ../_static/images/differentiation.svg -:class-img-top: index-card-image -:shadow: md - -```{button-link} first_derivative_with_estimagic.html ---- -click-parent: -ref-type: ref -class: stretched-link index-card-link sd-text-primary ---- -Differentiation -``` - -Learn numerical differentiation with estimagic. - -```` - -````{grid-item-card} -:text-align: center -:img-top: ../_static/images/bullseye.svg -:class-img-top: index-card-image -:shadow: md - -```{button-link} estimation/index.html ---- -click-parent: -ref-type: ref -class: stretched-link index-card-link sd-text-primary ---- -Estimation -``` - -Learn maximum likelihood and methods of simulated moments estimation with estimagic. - -```` - -````{grid-item-card} -:text-align: center -:img-top: ../_static/images/installation.svg -:class-img-top: index-card-image -:shadow: md - -```{button-link} installation.html ---- -click-parent: -ref-type: ref -class: stretched-link index-card-link sd-text-primary ---- -Installation -``` - -Installation instructions for estimagic and optional dependencies. - -```` - -````{grid-item-card} -:text-align: center -:columns: 12 -:img-top: ../_static/images/video.svg -:class-img-top: index-card-image -:shadow: md - -```{button-link} ../videos.html ---- -click-parent: -ref-type: ref -class: stretched-link index-card-link sd-text-primary ---- -Videos -``` - -Collection of tutorials, talks, and screencasts on estimagic. - -```` - -````` - -```{toctree} ---- -hidden: true -maxdepth: 1 ---- -installation -first_optimization_with_estimagic -estimation/index -first_derivative_with_estimagic -``` diff --git a/docs/source/getting_started/installation.md b/docs/source/getting_started/installation.md deleted file mode 100644 index 52927d979..000000000 --- a/docs/source/getting_started/installation.md +++ /dev/null @@ -1,61 +0,0 @@ -# Installation - -## Basic installation - -The package can be installed via conda. To do so, type the following commands in a -terminal or shell: - -``` -conda config --add channels conda-forge -``` - -``` -conda install estimagic -``` - -The first line adds conda-forge to your conda channels. This is necessary for conda to -find all dependencies of estimagic. The second line installs estimagic and its mandatory -dependencies. - -## Installing optional dependencies - -Only `scipy` is a mandatory dependency of estimagic. Other algorithms become available -if you install more packages. We make this optional because most of the time you will -use at least one additional package, but only very rarely will you need all of them. - -For an overview of all optimizers and the packages you need to install to enable them, -see {ref}`list_of_algorithms`. - -To enable all algorithms at once, do the following: - -``` -conda install nlopt -``` - -``` -pip install Py-BOBYQA -``` - -``` -pip install DFO-LS -``` - -``` -conda install petsc4py -``` - -*Note*: `` `petsc4py` `` is not available on Windows. - -``` -conda install cyipopt -``` - -``` -conda install pygmo -``` - -``` -pip install fides>=0.7.4 -``` - -*Note*: Make sure you have at least 0.7.1. diff --git a/docs/source/how_to_guides/optimization/how_to_pick_an_optimizer.ipynb b/docs/source/how_to/how_to_algorithm_selection.ipynb similarity index 95% rename from docs/source/how_to_guides/optimization/how_to_pick_an_optimizer.ipynb rename to docs/source/how_to/how_to_algorithm_selection.ipynb index e141a6781..95a2b769c 100644 --- a/docs/source/how_to_guides/optimization/how_to_pick_an_optimizer.ipynb +++ b/docs/source/how_to/how_to_algorithm_selection.ipynb @@ -31,7 +31,7 @@ "metadata": {}, "outputs": [], "source": [ - "import estimagic as em\n", + "import optimagic as om\n", "import numpy as np" ] }, @@ -62,7 +62,7 @@ "source": [ "## Differentiable criterion function\n", "\n", - "Use `scipy_lbfsgsb` as optimizer and provide the closed form derivative if you can. If you do not provide a derivative, estimagic will calculate it numerically. However, this is less precise and slower. " + "Use `scipy_lbfsgsb` as optimizer and provide the closed form derivative if you can. If you do not provide a derivative, optimagic will calculate it numerically. However, this is less precise and slower. " ] }, { @@ -82,7 +82,7 @@ } ], "source": [ - "res = em.minimize(\n", + "res = om.minimize(\n", " criterion=sphere,\n", " params=start_params,\n", " algorithm=\"scipy_lbfgsb\",\n", @@ -135,7 +135,7 @@ } ], "source": [ - "res = em.minimize(\n", + "res = om.minimize(\n", " criterion=sphere,\n", " params=start_params,\n", " algorithm=\"nag_pybobyqa\",\n", @@ -174,7 +174,7 @@ } ], "source": [ - "res = em.minimize(\n", + "res = om.minimize(\n", " criterion=sphere,\n", " params=start_params,\n", " algorithm=\"nag_dfols\",\n", @@ -199,7 +199,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.8" + "version": "3.10.14" } }, "nbformat": 4, diff --git a/docs/source/how_to_guides/miscellaneous/how_to_use_batch_evaluators.ipynb b/docs/source/how_to/how_to_batch_evaluators.ipynb similarity index 92% rename from docs/source/how_to_guides/miscellaneous/how_to_use_batch_evaluators.ipynb rename to docs/source/how_to/how_to_batch_evaluators.ipynb index c1089f56a..58dff24c6 100644 --- a/docs/source/how_to_guides/miscellaneous/how_to_use_batch_evaluators.ipynb +++ b/docs/source/how_to/how_to_batch_evaluators.ipynb @@ -14,7 +14,7 @@ "(to be written.)\n", "\n", "In case of an urgent request for this guide, feel free to open an issue \n", - "[here](https://github.com/OpenSourceEconomics/estimagic/issues)." + "[here](https://github.com/OpenSourceEconomics/optimagic/issues)." ] } ], diff --git a/docs/source/how_to/how_to_benchmarking.ipynb b/docs/source/how_to/how_to_benchmarking.ipynb new file mode 100644 index 000000000..c2d979fc5 --- /dev/null +++ b/docs/source/how_to/how_to_benchmarking.ipynb @@ -0,0 +1,710 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "6be356db", + "metadata": {}, + "source": [ + "# How to Benchmark Optimization Algorithms\n", + "\n", + "Benchmarking optimization algorithms is an important step when developing a new algorithm or when searching for an algorithm that is good at solving a particular problem. \n", + "\n", + "In general, benchmarking constists of the following steps:\n", + "\n", + "1. Define the test problems (or get pre-implemented ones)\n", + "2. Define the optimization algorithms and the tuning parameters you want to try\n", + "3. Run the benchmark\n", + "4. Plot the results\n", + "\n", + "optimagic helps you with all of these steps!" + ] + }, + { + "cell_type": "markdown", + "id": "8671802f", + "metadata": {}, + "source": [ + "## 1. Get Test Problems\n", + "\n", + "optimagic includes the problems of [Moré and Wild (2009)](https://doi.org/10.1137/080724083) as well as [Cartis and Roberts](https://arxiv.org/abs/1710.11005).\n", + "\n", + "Each problem consist of the `inputs` (the criterion function and the start parameters) and the `solution` (the optimal parameters and criterion value) and optionally provides more information.\n", + "\n", + "Below we load a subset of the Moré and Wild problems and look at one particular Rosenbrock problem that has difficult start parameters." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "83c2f8e4", + "metadata": {}, + "outputs": [], + "source": [ + "import optimagic as om" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "c3640855", + "metadata": {}, + "outputs": [], + "source": [ + "problems = om.get_benchmark_problems(\"example\")" + ] + }, + { + "cell_type": "markdown", + "id": "c628b987", + "metadata": {}, + "source": [ + "## 2. Specify the Optimizers\n", + "\n", + "To select optimizers you want to benchmark on the set of problems, you can simply specify them as a list. Advanced examples - that do not only compare algorithms but also vary the `algo_options` - can be found below. " + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "2340cd3a", + "metadata": {}, + "outputs": [], + "source": [ + "optimizers = [\n", + " \"nag_dfols\",\n", + " \"scipy_neldermead\",\n", + " \"scipy_truncated_newton\",\n", + "]" + ] + }, + { + "cell_type": "markdown", + "id": "9703f954", + "metadata": {}, + "source": [ + "## 3. Run the Benchmark\n", + "\n", + "Once you have your problems and your optimizers set up, you can simply use `run_benchmark`. The results are a dictionary with one entry for each (problem, algorithm) combination. Each entry not only saves the solution but also the history of the algorithm's criterion and parameter history. " + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "f0ef15da", + "metadata": {}, + "outputs": [], + "source": [ + "results = om.run_benchmark(\n", + " problems,\n", + " optimizers,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "61c365ab", + "metadata": {}, + "source": [ + "## 4a. Profile plots\n", + "\n", + "**Profile Plots** compare optimizers over a whole problem set. \n", + "\n", + "The literature distinguishes **data profiles** and **performance profiles**. Data profiles use a normalized runtime measure whereas performance profiles use an absolute one. The profile plot does not normalize runtime by default. To do this, simply set `normalize_runtime` to True. For background information, check [Moré and Wild (2009)](https://doi.org/10.1137/080724083). " + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "07918672", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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3bq1s61Ro4Z//eucOXNs8eLFVqhQIbHV5hEBEchEQIKuDZErAps2bbL69eu7yNSuXduFuXHjxta1a1fvZ/78+datWzfj3ekdO3b4NQh+rVq1/HPEHGEfO3Zsrp6brhfv2rXL2ZUvX955VaxYMUPQhw4damvWrHEjioZxVbduXZs9e7ZVqFBBbNN1U2heIpBHAhL0PIKL620zZsyw3r1724oVKzwETPh30KBB1qhRI0eyevVqa9asma1cudII1/P7pUuX2iGHHOKfI06zZs1yUVIzGzBggBs/RD169uyZSdB79OhhZcuWtb59+2agqlKlio0fP96vE1vtIBEQgSgBCbr2Q8oEEB5Cwx06dLDu3bt7jrdq1aouMPXq1fN+CBsjNISFt27d6iFjxL106dL++bRp02z06NG2ZMmSlJ+brhdOnjzZhZyURpkyZTyyEfXQSVdUq1bgPDVCAAAPWUlEQVQt0//BDgMKIwAPXWzTdWdoXiKQNwIS9Lxxi91dFG21adPG6tSp4/nwwoULOwMEZvDgwdawYcOkHvqyZcsyiuTkof/f1iF1UalSJS80pC1YsMBKlizpBhGFh3joREH69OmT1EMX29j9KWrCIpCUgARdm2OPBNatW2ft2rWzBg0aeA68SJEiGffkNofer18/99yVQzebMmWK8TpgaHjqCDhMebOAHPratWtt4sSJfsmecuhiu8etrAtEIK0JSNDTennzPzkEpWnTpv4Pj5HqahoV7eE1qlDlThV8p06dMlW5t2/f3kqVKqUq9xSWIjHkHqrcSVNQ5T58+HCbO3duRpW72KYAVZeIQIwISNBjtNh5meq8efNcyBMbXuSwYcNs586ddvPNN9uiRYv8kurVq9uYMWMyvoBmw4YN/iob1fE0XlsjB1ysWLG8DCet70kUdGoURowY4TUHNAwmvPXwxoDYpvV20OREINcEJOi5RqYbsiNA6JhvNAtfKJN4DWF23kfnn1ruCPANfdu3b/dX20KEJNqD2OaOp64WgXQlIEFP15XVvERABERABGJFQIIeq+XWZEVABERABNKVgAQ9XVdW8xIBERABEYgVAQl6rJZbkxUBERABEUhXAhL0dF1ZzUsEREAERCBWBCTosVpuTVYEREAERCBdCUjQ03VlNS8REAEREIFYEZCgx2q5NVkREAEREIF0JSBBT9eV1bxEQAREQARiRUCCHqvl1mRFQAREQATSlYAEPV1XVvMSAREQARGIFQEJeqyWW5MVAREQARFIVwIS9HRdWc1LBERABEQgVgQk6LFabk1WBERABEQgXQlI0NN1ZTUvERABERCBWBGQoP93ub/++mv7/PPPbd9997Wzzz470yZ44403rHLlynbkkUcW6OaYPHmyrVixwkaOHFmgz8lN55s3b7ZZs2bZK6+8YmXLlrWnn346y+2//vqrjzu7VrVq1QLnltN85s+fb6VKlbKzzjorN9PO9bVh/2R34wknnGCHH354rvtMvIH/L/qVV15pN954o5177rn57i+nDlatWmWbNm2ySy65pECfo85FQAT2HgEJ+n9ZIlT33nuv//Tcc89ZzZo1MyhXqVLF+vTp44dpQbYHHnjAEKDXX3+9IB+Tq77btGljP/zwg1122WX2zz//2PXXX5/l/jVr1iQ9+Pv162dt27bN1TPzcvHbb7/t67Nw4cJMBgTGGYI6bty4vHSb8j3R/ZN409ChQ6158+Yp95Xswt9//91OPvlkGzZs2F4T2j///NNOOukkSxzj3XffbdOnT7d169ble9zqQARE4P+HgAQ9QdArVapkhx56qD3zzDOxF/Tvv//ezjzzTBfD+vXrJ92RQdDHjx9vdevWzXRd4cKFrVChQgW+m5ctW2ZXX321LViwwI466qiM5+3YscOff8ABBxToGIKgr1y50ooXL14gDApC0PH6q1evboMHD7ZLL700Y9w86++//7bSpUsXKDd1LgIisPcISNATBH306NF2ww032MSJEzNC71EP/ccff7TrrrvObr/9dqtVq5bfvWvXLvdCu3TpYueff7598MEHNmjQILviiitsypQpRviyTp06dv/999vHH3/sfW/YsMEP0E6dOmWEY/HQZ8yYYV27dvUowfr1670/7jvooIP8WYS3hw8f7sK1detWO+OMM+zOO++0448/3j/neXir3bp18/D4F198YT169LDatWtn2TV//fWXMd85c+Z4eJW+mBce208//eTjZwx4uPvtt59dddVVdtFFF2XpJwh6lFn0IsR2xIgRPu8SJUr4R9zTv39/e+ihh3z+YdyExhk3of7WrVtbx44d3cAKbenSpTZ27FjnWK5cOQ+lX3755XbTTTfZV199lTFW1uy+++7zyEqFChWcKQ0jhbWhH7zTBg0a2B133GEHH3xw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" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = om.profile_plot(\n", + " problems=problems,\n", + " results=results,\n", + ")\n", + "\n", + "fig.show(renderer=\"png\")" + ] + }, + { + "cell_type": "markdown", + "id": "4ada4410", + "metadata": {}, + "source": [ + "The x axis shows runtime per problem. The y axis shows the share of problems each algorithm solved within that runtime. Thus, higher and further to the left values are desirable. Higher means more problems were solved and further to the left means, the algorithm found the solutions earlier. \n", + "\n", + "You can choose:\n", + "\n", + "- whether to use `n_evaluations` or `walltime` as **`runtime_measure`**\n", + "- whether to normalize runtime such that the runtime of each problem is shown as a multiple of the fastest algorithm on that problem\n", + "- how to determine when an evaluation is close enough to the optimum to be counted as converged. Convergence is always based on some measure of distance between the true solution and the solution found by an optimizer. Whether distiance is measured in parameter space, function space, or a combination of both can be specified. \n", + "\n", + "Below, we consider a problem to be solved if the distance between the parameters found by the optimizer and the true solution parameters are at most 0.1% of the distance between the start parameters and true solution parameters. " + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "efc15318", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAfQAAAEsCAYAAAA1u0HIAAAgAElEQVR4XuydB3RU1dfF9ySTAqQAUqT3XgQEFD4QKSpFBJWigIAUKSqiFJHeRECK0kFERFEQ6UW6gIBY6EgJvfeShNSZyXxrX3z8Y5hk3sDMMDM5dy2WSN675fde3r733HPPMVitViukCAEhIASEgBAQAl5NwCCC7tXPTzovBISAEBACQkAREEGXF0EICAEhIASEgA8QEEH3gYcoQxACQkAICAEhIIIu74AQEAJCQAgIAR8gIILuAw9RhiAEhIAQEAJCQARd3gEhIASEgBAQAj5AQATdBx6iDEEICAEhIASEgAi6vANCQAgIASEgBHyAgAi6DzxEGYIQEAJCQAgIARF0eQeEgBAQAkJACPgAARF0H3iIMgQhIASEgBAQAiLo8g4IASEgBISAEPABAiLoPvAQZQhCQAgIASEgBETQ5R0QAkJACAgBIeADBETQfeAhyhCEgBAQAkJACIigyzsgBISAEBACQsAHCIig+8BDlCEIASEgBISAEBBBl3dACAgBISAEhIAPEBBB94GHKEMQAkJACAgBISCCLu+AEBACQkAICAEfICCC7gMPUYYgBISAEBACQkAEXd4BISAEhIAQEAI+QEAE3QceogxBCAgBISAEhIAIurwDQkAICAEhIAR8gIAIug88RBmCEBACQkAICAERdHkHhIAQEAJCQAj4AAERdB94iDIEISAEhIAQEAIi6PIOCAEhIASEgBDwAQIi6D7wEGUIQkAICAEhIATSraAXK1YMx48flzdACAgBISAEhIBPEBBB94nHKIMQAkJACAiB9E5ABD29vwEyfiEgBISAEPAJAiLoPvEYZRBCQAgIASGQ3gmIoKf3N0DGLwSEgBAQAj5BwGcEPSkpCVarFf7+/roejDjF6cIkFwkBISAEhICXEPAJQaeQDxw4UCH/9NNPdaEXQdeFSS4SAkJACAgBLyHg9YL+yy+/YOjQobh16xZatGghgu4lL550Uwi4gsCAAQOQN29edOvWzRXV/6dOfnvCwsLwf//3f6m2tWfPHnz22WeYPn06smXL5vI+SQPpm4DXC3psbCyioqIwbtw4BAUFiaCn7/dZRp/OCTRv3hy0vo0aNcrlJGrWrInSpUtj5syZSEhIQNmyZTF27Fi8+uqr99veunUrOnXqhG3b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rnlG5r4nTpzwutbC84kvf0ZmLnqNElAC/yWggq4rQQkoASWgBJRACBBQQQ8BJ6oJSkAJKAEloARU0HUNKAEloASUgBIIAQIq6CHgRDVBCSgBJaAElIAKuq4BJaAElIASUAIhQEAFPQScqCYoASWgBJSAElBB1zWgBJSAElACSiAECKigh4AT1QQloASUgBJQAirougaUgBJQAkpACYQAARX0EHCimqAElIASUAJKQAVd14ASUAJKQAkogRAgoIIeAk5UE5SAElACSkAJqKDrGlACSkAJKAElEAIEVNBDwIlqghJQAkpACSgBFXRdA0pACSgBJaAEQoCACvr/nPj777/LgQMH5KGHHpJixYrd49o1a9ZI9uzZ5YknnohWl3/11VeyefNmGTFiRLQ+JyI3/+OPP2T+/PmyfPlySZEihUydOjXM5ZcvXzbz9jRy5swZ7dx82bN06VJJliyZvPzyyxExO8KftevH04W5c+eW9OnTR/ie7hfwe8br1asnbdu2lRIlSkT5fr5usH37djl+/LhUqlQpWp+jN1cCSuD+EVBB/x9LhOqjjz4yf5o9e7bkz5/fRTlHjhzSo0cPs5lG5/j4448FAVq9enV0PiZC937rrbfkr7/+kurVq8vt27eldevWYa7fs2eP142/V69eUqdOnQg9MzIf3rRpk/HPqlWr7jlAcDhDUMePHx+Z2/p9jXP9uF80ePBgqVKlit/38vbBa9euSb58+WTIkCH3TWj//fdfefbZZ8V9jt27d5eZM2fKwYMHozxvvYESUAIPhoAKupugZ8mSRdKkSSPTpk2L9YJ+9uxZKVKkiBHDUqVKeV2RVtAnTJggRYsWvedz8eLFk7hx40b7at64caM0aNBAVq5cKZkzZ3Y979KlS+b5jzzySLTOwQr61q1bJXHixNHCIDoEnag/T548MnDgQKlWrZpr3jzr5s2bkjx58mjlpjdXAkrg/hFQQXcT9NGjR0ubNm1k8uTJrtS7M0I/f/68tGrVSt577z0pUKCAufrWrVsmCm3evLmULl1aduzYIQMGDJDatWvL9OnThfRl4cKFpV+/frJz505z7yNHjpgNtEmTJq50LBH6nDlzpEWLFiZLcOjQIXM/rnvsscfMs0hvDx061AjXqVOn5MUXX5Ru3brJ008/bX7O84hW27dvb9Ljhw8flo4dO0qhQoXCrJobN24I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" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = om.profile_plot(\n", + " problems=problems,\n", + " results=results,\n", + " runtime_measure=\"n_evaluations\",\n", + " stopping_criterion=\"x\",\n", + " x_precision=0.001,\n", + ")\n", + "\n", + "fig.show(renderer=\"png\")" + ] + }, + { + "cell_type": "markdown", + "id": "70744c8b", + "metadata": {}, + "source": [ + "## 4b. Convergence plots\n", + "\n", + "**Convergence Plots** look at particular problems and show the convergence of each optimizer on each problem. " + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "df3dc55b", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA+gAAAFACAYAAAAvc1ZOAAAgAElEQVR4XuydB5hNx//G320sliU60f2ii070LlrU6BItiN6i995C9BJBJDqJhBBBRAiJ6EQnSrToZdW1+3/e8T+ba+3ee5fFvbvvPI8Hd+fMmfnM2TvnnW8Zj+Dg4GCoiIAIiIAIiIAIiIAIiIAIiIAIiIAIvFYCHhLor5W/bi4CIiACIiACIiACIiACIiACIiAChoAEuh4EERABERABERABERABERABERABEXABAhLoLjAJ6oIIiIAIiIAIiIAIiIAIiIAIiIAISKDrGRABERABERABERABERABERABERABFyAgge4Ck6AuiIAIiIAIiIAIiIAIiIAIiIAIiIAEup4BERABERABERABERABERABERABEXABAg4FOk9hO378OM6fP/9Md4sUKQJvb28XGIa6IAIiIAIi8LIIaB14WWTVrgiIgAiIgAiIgAg8TcCuQN+xYwfatm2La9euhcmNP/f39xdTERABERCBKEpA60AUnVgNSwREQAREQAREwCUJ2BXodevWxa1btzBs2DAkTZoUXl5eTw2Cn3l4eLjkwNQpERABERCBFyegdeDFGaoFERABERABERABEXCWgF2BXrp0adSoUQPt27d3tj3VEwEREAERiEIEtA5EocnUUERABERABERABFyegF2B3qtXL/z777/44osvXH4g6qAIRAaBzZs3I06cOMiTJ09kNPdCbfz+++/w9PREgQIFXqgd6+LHjx8/4wUTKQ072QhzWZw6dQrFihVDzJgxnbwKeN39drqjUbSi1oEoOrEaVrQjcP/+fZM3SLmDot3Ua8AiIAJuRsCuQL9w4QKKFy+Obt26IVmyZM8MrWLFiogRI4abDVndfVkEFi9ejAULFoQ07+vra0Ij+JxUqFDBiE1XLxSPGTJkwNy5c197V6tUqWIE9XfffffcfdmzZ48Zy5EjR0yyR24+vPnmmyhZsiTYfubMmZ+77YheOGnSJEycOBFbtmwxz4W9wo3BWbNmYf369Th79qypmjZtWrNxUqlSJZQoUcJ8dubMGfzxxx/me8pRmxHt765du3DixAnUrFnztW5sRLTfkV1f60BkE1V7UZlA6HWQ70j83s2ePTvq16+PlClTvtLh//zzz5g/fz527tyJgIAAc29+j3bs2BGFCxcO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" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = om.convergence_plot(\n", + " problems=problems,\n", + " results=results,\n", + " n_cols=2,\n", + " problem_subset=[\"rosenbrock_good_start\", \"box_3d\"],\n", + ")\n", + "\n", + "fig.show(renderer=\"png\")" + ] + }, + { + "cell_type": "markdown", + "id": "11d035a2", + "metadata": {}, + "source": [ + "The further to the left and the lower the curve of an algorithm, the better that algorithm performed.\n", + "\n", + "Often we are more interested in how close each algorithm got to the true solution in parameter space, not in criterion space as above. For this. we simply set the **`distance_measure`** to `parameter_space`. " + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "db2c868c", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = om.convergence_plot(\n", + " problems=problems,\n", + " results=results,\n", + " n_cols=2,\n", + " problem_subset=[\"rosenbrock_good_start\", \"box_3d\"],\n", + " distance_measure=\"parameter_distance\",\n", + " stopping_criterion=\"x\",\n", + ")\n", + "\n", + "fig.show(renderer=\"png\")" + ] + }, + { + "cell_type": "markdown", + "id": "a4aa5184", + "metadata": {}, + "source": [ + "## 5a. Convergence report\n", + "\n", + "The **Convergence Report** shows for each problem and optimizer which problems the optimizer solved successfully, failed to do so, or where it stopped with an error. The respective strings are \"success\", \"failed\", or \"error\".\n", + "Moreover, the last column of the ```pd.DataFrame``` displays the number of dimensions of the benchmark problem." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "16f0493e", + "metadata": {}, + "outputs": [], + "source": [ + "df = om.convergence_report(\n", + " problems=problems,\n", + " results=results,\n", + " stopping_criterion=\"y\",\n", + " x_precision=1e-4,\n", + " y_precision=1e-4,\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "3a8e42bc", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
nag_dfolsscipy_neldermeadscipy_truncated_newtondimensionality
problem
bard_good_startsuccesssuccesssuccess3
bdqrtic_8successsuccesssuccess8
box_3dsuccesssuccesssuccess3
brown_dennis_good_startsuccesssuccesssuccess4
chebyquad_6successsuccesssuccess6
freudenstein_roth_good_startsuccesssuccesssuccess2
helical_valley_good_startsuccesssuccesssuccess3
mancino_5_good_startsuccesssuccesssuccess5
powell_singular_good_startsuccesssuccesssuccess4
rosenbrock_good_startsuccesssuccesssuccess2
\n", + "
" + ], + "text/plain": [ + " nag_dfols scipy_neldermead \\\n", + "problem \n", + "bard_good_start success success \n", + "bdqrtic_8 success success \n", + "box_3d success success \n", + "brown_dennis_good_start success success \n", + "chebyquad_6 success success \n", + "freudenstein_roth_good_start success success \n", + "helical_valley_good_start success success \n", + "mancino_5_good_start success success \n", + "powell_singular_good_start success success \n", + "rosenbrock_good_start success success \n", + "\n", + " scipy_truncated_newton dimensionality \n", + "problem \n", + "bard_good_start success 3 \n", + "bdqrtic_8 success 8 \n", + "box_3d success 3 \n", + "brown_dennis_good_start success 4 \n", + "chebyquad_6 success 6 \n", + "freudenstein_roth_good_start success 2 \n", + "helical_valley_good_start success 3 \n", + "mancino_5_good_start success 5 \n", + "powell_singular_good_start success 4 \n", + "rosenbrock_good_start success 2 " + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df" + ] + }, + { + "cell_type": "markdown", + "id": "b5215dc3", + "metadata": {}, + "source": [ + "## 5b. Rank report¶\n", + "\n", + "The **Rank Report** shows the ranks of the algorithms for each problem; where 0 means the algorithm was the fastest on a given benchmark problem, 1 means it was the second fastest and so on. If an algorithm did not converge on a problem, the value is \"failed\". If an algorithm did encounter an error during optimization, the value is \"error\"." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "f9671d82", + "metadata": {}, + "outputs": [], + "source": [ + "df = om.rank_report(\n", + " problems=problems,\n", + " results=results,\n", + " runtime_measure=\"n_evaluations\",\n", + " stopping_criterion=\"y\",\n", + " x_precision=1e-4,\n", + " y_precision=1e-4,\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "4e29d9dd", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
nag_dfolsscipy_neldermeadscipy_truncated_newtondimensionality
problem
bard_good_start0213
bdqrtic_81208
box_3d0213
brown_dennis_good_start0214
chebyquad_60216
freudenstein_roth_good_start1202
helical_valley_good_start0213
mancino_5_good_start0215
powell_singular_good_start0214
rosenbrock_good_start0212
\n", + "
" + ], + "text/plain": [ + " nag_dfols scipy_neldermead \\\n", + "problem \n", + "bard_good_start 0 2 \n", + "bdqrtic_8 1 2 \n", + "box_3d 0 2 \n", + "brown_dennis_good_start 0 2 \n", + "chebyquad_6 0 2 \n", + "freudenstein_roth_good_start 1 2 \n", + "helical_valley_good_start 0 2 \n", + "mancino_5_good_start 0 2 \n", + "powell_singular_good_start 0 2 \n", + "rosenbrock_good_start 0 2 \n", + "\n", + " scipy_truncated_newton dimensionality \n", + "problem \n", + "bard_good_start 1 3 \n", + "bdqrtic_8 0 8 \n", + "box_3d 1 3 \n", + "brown_dennis_good_start 1 4 \n", + "chebyquad_6 1 6 \n", + "freudenstein_roth_good_start 0 2 \n", + "helical_valley_good_start 1 3 \n", + "mancino_5_good_start 1 5 \n", + "powell_singular_good_start 1 4 \n", + "rosenbrock_good_start 1 2 " + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df" + ] + }, + { + "cell_type": "markdown", + "id": "56e83beb", + "metadata": {}, + "source": [ + "## 5b. Traceback report¶\n", + "\n", + "The **Traceback Report** shows the tracebacks returned by the optimizers if they encountered an error during optimization. The resulting ```pd.DataFrame``` is empty if none of the optimizers terminated with an error, as in the example below." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "96614437", + "metadata": {}, + "outputs": [], + "source": [ + "df = om.traceback_report(problems=problems, results=results)" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "f9d63ee9", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
tracebackdimensionality
algorithmproblem
\n", + "
" + ], + "text/plain": [ + "Empty DataFrame\n", + "Columns: [traceback, dimensionality]\n", + "Index: []" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.14" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/docs/source/how_to_guides/optimization/how_to_specify_bounds.ipynb b/docs/source/how_to/how_to_bounds.ipynb similarity index 81% rename from docs/source/how_to_guides/optimization/how_to_specify_bounds.ipynb rename to docs/source/how_to/how_to_bounds.ipynb index 079c50cc7..bf1d2cb36 100644 --- a/docs/source/how_to_guides/optimization/how_to_specify_bounds.ipynb +++ b/docs/source/how_to/how_to_bounds.ipynb @@ -9,7 +9,7 @@ "\n", "## Constraints vs bounds \n", "\n", - "Estimagic distinguishes between bounds and constraints. Bounds are lower and upper bounds for parameters. In the literature, they are sometimes called box constraints. Examples for general constraints are linear constraints, probability constraints, or nonlinear constraints. You can find out more about general constraints in the next section on [How to specify constraints](how_to_specify_constraints.md)." + "optimagic distinguishes between bounds and constraints. Bounds are lower and upper bounds for parameters. In the literature, they are sometimes called box constraints. Examples for general constraints are linear constraints, probability constraints, or nonlinear constraints. You can find out more about general constraints in the next section on [How to specify constraints](how_to_constraints.md)." ] }, { @@ -29,7 +29,7 @@ "metadata": {}, "outputs": [], "source": [ - "import estimagic as em\n", + "import optimagic as om\n", "import numpy as np" ] }, @@ -53,7 +53,7 @@ { "data": { "text/plain": [ - "array([ 0.00000000e+00, -1.33177532e-08, 7.18836657e-09])" + "array([ 0.00000000e+00, -1.33177530e-08, 7.18836679e-09])" ] }, "execution_count": 3, @@ -62,7 +62,7 @@ } ], "source": [ - "res = em.minimize(criterion, params=np.arange(3), algorithm=\"scipy_lbfgsb\")\n", + "res = om.minimize(criterion, params=np.arange(3), algorithm=\"scipy_lbfgsb\")\n", "res.params" ] }, @@ -96,7 +96,7 @@ } ], "source": [ - "res = em.minimize(\n", + "res = om.minimize(\n", " criterion, params=np.arange(3), lower_bounds=np.ones(3), algorithm=\"scipy_lbfgsb\"\n", ")\n", "res.params" @@ -119,7 +119,7 @@ { "data": { "text/plain": [ - "array([-1.00000000e+00, -3.57647466e-08, 1.00000000e+00])" + "array([-1.00000000e+00, -3.57647467e-08, 1.00000000e+00])" ] }, "execution_count": 5, @@ -128,7 +128,7 @@ } ], "source": [ - "res = em.minimize(\n", + "res = om.minimize(\n", " criterion,\n", " params=np.arange(3),\n", " algorithm=\"scipy_lbfgsb\",\n", @@ -171,7 +171,7 @@ { "data": { "text/plain": [ - "{'x': array([ 0.00000000e+00, -4.42924006e-09, 2.04860640e-08]),\n", + "{'x': array([ 0.00000000e+00, -2.85349886e-07, 8.11770844e-08]),\n", " 'intercept': -2.0}" ] }, @@ -181,7 +181,7 @@ } ], "source": [ - "res = em.minimize(\n", + "res = om.minimize(\n", " criterion,\n", " params=params,\n", " algorithm=\"scipy_lbfgsb\",\n", @@ -195,7 +195,7 @@ "id": "096d3ba4", "metadata": {}, "source": [ - "estimagic tries to match the user provided bounds with the structure of params. This allows you to specify bounds for subtrees of params. In case your subtree specification results in an unidentified matching, estimagic will tell you so with a `InvalidBoundsError`. " + "optimagic tries to match the user provided bounds with the structure of params. This allows you to specify bounds for subtrees of params. In case your subtree specification results in an unidentified matching, optimagic will tell you so with a `InvalidBoundsError`. " ] }, { @@ -314,6 +314,22 @@ "id": "b284ad8a", "metadata": {}, "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/gf/_b8vq9wn2sv2221129y0c3sh0000gn/T/ipykernel_45054/313144487.py:6: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead\n", + " return float(value) # necessary since value is a pd.Series\n", + "/var/folders/gf/_b8vq9wn2sv2221129y0c3sh0000gn/T/ipykernel_45054/313144487.py:6: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead\n", + " return float(value) # necessary since value is a pd.Series\n", + "/var/folders/gf/_b8vq9wn2sv2221129y0c3sh0000gn/T/ipykernel_45054/313144487.py:6: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead\n", + " return float(value) # necessary since value is a pd.Series\n", + "/var/folders/gf/_b8vq9wn2sv2221129y0c3sh0000gn/T/ipykernel_45054/313144487.py:6: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead\n", + " return float(value) # necessary since value is a pd.Series\n", + "/var/folders/gf/_b8vq9wn2sv2221129y0c3sh0000gn/T/ipykernel_45054/313144487.py:6: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead\n", + " return float(value) # necessary since value is a pd.Series\n" + ] + }, { "data": { "text/html": [ @@ -381,7 +397,7 @@ } ], "source": [ - "res = em.minimize(\n", + "res = om.minimize(\n", " criterion,\n", " params=params,\n", " algorithm=\"scipy_lbfgsb\",\n", @@ -406,7 +422,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.8" + "version": "3.10.14" } }, "nbformat": 4, diff --git a/docs/source/how_to_guides/optimization/how_to_specify_constraints.md b/docs/source/how_to/how_to_constraints.md similarity index 94% rename from docs/source/how_to_guides/optimization/how_to_specify_constraints.md rename to docs/source/how_to/how_to_constraints.md index 82b73ae08..07f1e820d 100644 --- a/docs/source/how_to_guides/optimization/how_to_specify_constraints.md +++ b/docs/source/how_to/how_to_constraints.md @@ -4,7 +4,7 @@ ## Constraints vs bounds -Estimagic distinguishes between bounds and constraints. Bounds are lower and upper +optimagic distinguishes between bounds and constraints. Bounds are lower and upper bounds for parameters. In the literature, they are sometimes called box constraints. Bounds are specified as `lower_bounds` and `upper_bounds` argument to `maximize` and `minimize`. @@ -26,14 +26,14 @@ parameters) can even be used with optimizers that do not support bounds. ## Example criterion function Let's look at a variation of the sphere function to illustrate what kinds of constraints -you can impose and how you specify them in estimagic: +you can impose and how you specify them in optimagic: ```{eval-rst} .. code-block:: python >>> import numpy as np - >>> import estimagic as em + >>> import optimagic as om >>> def criterion(params): ... offset = np.linspace(1, 0, len(params)) ... x = params - offset @@ -47,7 +47,7 @@ The unconstrained optimum of a six-dimensional version of this problem is: .. code-block:: python - >>> res = em.minimize( + >>> res = om.minimize( ... criterion=criterion, ... params=np.array([2.5, 1, 1, 1, 1, -2.5]), ... algorithm="scipy_lbfgsb", @@ -63,7 +63,7 @@ criterion function in a additively separable way. ## Types of constraints Below, we show a very simple example of each type of constraint implemented in -estimagic. For each constraint, we will select a subset of the parameters on which the +optimagic. For each constraint, we will select a subset of the parameters on which the constraint is imposed via the "loc" key. Generalizations for selecting subsets of `params` that are not a flat numpy array are explained in the next section. @@ -77,7 +77,7 @@ constraint is imposed via the "loc" key. Generalizations for selecting subsets o .. code-block:: python - >>> res = em.minimize( + >>> res = om.minimize( ... criterion=criterion, ... params=np.array([2.5, 1, 1, 1, 1, -2.5]), ... algorithm="scipy_lbfgsb", @@ -104,7 +104,7 @@ constraint is imposed via the "loc" key. Generalizations for selecting subsets o .. code-block:: python - >>> res = em.minimize( + >>> res = om.minimize( ... criterion=criterion, ... params=np.array([1, 1, 1, 1, 1, 1]), ... algorithm="scipy_lbfgsb", @@ -143,7 +143,7 @@ constraint is imposed via the "loc" key. Generalizations for selecting subsets o .. code-block:: python - >>> res = em.minimize( + >>> res = om.minimize( ... criterion=criterion, ... params=np.array([1, 1, 1, 1, 1, 1]), ... algorithm="scipy_lbfgsb", @@ -175,7 +175,7 @@ constraint is imposed via the "loc" key. Generalizations for selecting subsets o .. code-block:: python - >>> res = em.minimize( + >>> res = om.minimize( ... criterion=criterion, ... params=np.array([1, 1, 1, 1, 1, 1]), ... algorithm="scipy_lbfgsb", @@ -200,7 +200,7 @@ constraint is imposed via the "loc" key. Generalizations for selecting subsets o .. code-block:: python - >>> res = em.minimize( + >>> res = om.minimize( ... criterion=criterion, ... params=np.array([1, 1, 1, 1, 1, 1]), ... algorithm="scipy_lbfgsb", @@ -225,7 +225,7 @@ constraint is imposed via the "loc" key. Generalizations for selecting subsets o .. code-block:: python - >>> res = em.minimize( + >>> res = om.minimize( ... criterion=criterion, ... params=np.array([0.3, 0.2, 0.25, 0.25, 1, 1]), ... algorithm="scipy_lbfgsb", @@ -256,7 +256,7 @@ constraint is imposed via the "loc" key. Generalizations for selecting subsets o .. code-block:: python - >>> res = em.minimize( + >>> res = om.minimize( ... criterion=criterion, ... params=np.ones(6), ... algorithm="scipy_lbfgsb", @@ -269,12 +269,12 @@ constraint is imposed via the "loc" key. Generalizations for selecting subsets o >>> res.params.round(3) array([ 1.006, 0.784, 0.61 , 0.4 , 0.2 , -0. ]) - We can now use one of estimagic's utility functions to actually build the covariance + We can now use one of optimagic's utility functions to actually build the covariance matrix out of the first three parameters: .. code-block:: python - >>> from estimagic.utilities import cov_params_to_matrix + >>> from optimagic.utilities import cov_params_to_matrix >>> cov_params_to_matrix(res.params[:3]).round(2) # doctest: +NORMALIZE_WHITESPACE array([[1.01, 0.78], [0.78, 0.61]]) @@ -294,7 +294,7 @@ constraint is imposed via the "loc" key. Generalizations for selecting subsets o .. code-block:: python - >>> res = em.minimize( + >>> res = om.minimize( ... criterion=criterion, ... params=np.ones(6), ... algorithm="scipy_lbfgsb", @@ -308,12 +308,12 @@ constraint is imposed via the "loc" key. Generalizations for selecting subsets o >>> res.params.round(3) array([ 1. , 0.8, 0.6, 0.4, 0.2, -0. ]) - We can now use one of estimagic's utility functions to actually build the standard + We can now use one of optimagic's utility functions to actually build the standard deviations and the correlation matrix: .. code-block:: python - >>> from estimagic.utilities import sdcorr_params_to_sds_and_corr + >>> from optimagic.utilities import sdcorr_params_to_sds_and_corr >>> sd, corr = sdcorr_params_to_sds_and_corr(res.params[:3]) >>> sd.round(2) array([1. , 0.8]) @@ -341,7 +341,7 @@ constraint is imposed via the "loc" key. Generalizations for selecting subsets o .. code-block:: python - >>> res = em.minimize( + >>> res = om.minimize( ... criterion=criterion, ... params=np.ones(6), ... algorithm="scipy_lbfgsb", @@ -387,7 +387,7 @@ constraint is imposed via the "loc" key. Generalizations for selecting subsets o .. code-block:: python - >>> res = em.minimize( + >>> res = om.minimize( ... criterion=criterion, ... params=np.ones(6), ... algorithm="scipy_slsqp", @@ -421,7 +421,7 @@ constraints simultaneously, simple pass in a list of constraints. For example: .. code-block:: python - >>> res = em.minimize( + >>> res = om.minimize( ... criterion=criterion, ... params=np.ones(6), ... algorithm="scipy_lbfgsb", @@ -492,7 +492,7 @@ Below we show how to use each of these selection methods in simple examples .. code-block:: python - res = em.minimize( + res = om.minimize( criterion=some_criterion, params=params, algorithm="scipy_lbfgsb", @@ -500,7 +500,7 @@ Below we show how to use each of these selection methods in simple examples ) The value corresponding to ``"loc"`` can be anything you would pass to pandas' - ``DataFrame.loc`` method, too. So, if you know pandas, imposing constraints in estimagic + ``DataFrame.loc`` method, too. So, if you know pandas, imposing constraints in optimagic via ``"loc"`` should feel already familiar. Imposing constraints this way can be extremely powerful if you have a well designed MultiIndex, as you can easily select groups of parameters @@ -535,7 +535,7 @@ Below we show how to use each of these selection methods in simple examples .. code-block:: python - res = em.minimize( + res = om.minimize( criterion=some_criterion, params=params, algorithm="scipy_lbfgsb", @@ -543,7 +543,7 @@ Below we show how to use each of these selection methods in simple examples ) The value corresponding to ``"query"`` can be anything you would pass to pandas' - ``DataFrame.query`` method, too. So, if you know pandas, imposing constraints in estimagic + ``DataFrame.query`` method, too. So, if you know pandas, imposing constraints in optimagic via ``"query"`` should feel just the same. ``` @@ -566,7 +566,7 @@ Below we show how to use each of these selection methods in simple examples .. code-block:: python - res = em.minimize( + res = om.minimize( criterion=some_criterion, params=params, algorithm="scipy_lbfgsb", @@ -586,7 +586,7 @@ Below we show how to use each of these selection methods in simple examples return params["b"]["d"] - res = em.minimize( + res = om.minimize( criterion=some_criterion, params=params, algorithm="scipy_lbfgsb", @@ -594,5 +594,5 @@ Below we show how to use each of these selection methods in simple examples ) ``` -[here]: ../../explanations/optimization/implementation_of_constraints.md -[this tutorial]: ../../getting_started/first_optimization_with_estimagic.ipynb +[here]: ../../explanation/implementation_of_constraints.md +[this tutorial]: ../tutorials/optimization_overview.ipynb diff --git a/docs/source/how_to_guides/optimization/how_to_specify_the_criterion_function.md b/docs/source/how_to/how_to_criterion_function.md similarity index 70% rename from docs/source/how_to_guides/optimization/how_to_specify_the_criterion_function.md rename to docs/source/how_to/how_to_criterion_function.md index c437a0f33..d8225b340 100644 --- a/docs/source/how_to_guides/optimization/how_to_specify_the_criterion_function.md +++ b/docs/source/how_to/how_to_criterion_function.md @@ -3,4 +3,4 @@ (to be written.) In case of an urgent request for this guide, feel free to open an issue -\[here\](). +\[here\](). diff --git a/docs/source/how_to/how_to_errors_during_optimization.ipynb b/docs/source/how_to/how_to_errors_during_optimization.ipynb new file mode 100644 index 000000000..3d5de4bb3 --- /dev/null +++ b/docs/source/how_to/how_to_errors_during_optimization.ipynb @@ -0,0 +1,291 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "a096f8df", + "metadata": {}, + "source": [ + "# How to handle errors during optimization\n", + "\n", + "## Try to avoid errors\n", + "\n", + "Often, optimizers try quite extreme parameter vectors, which then can raise errors in your criterion function or derivative. Often, there are simple tricks to make your code more robust. Avoiding errors is always better than dealing with errors after they occur. \n", + "\n", + "- Avoid to take ``np.exp`` without further safeguards. With 64 bit floating point numbers, the exponential function is only well defined roughly between -700 and 700. Below it is 0, above it is inf. Sometimes you can use ``scipy.special.logsumexp`` to avoid unsafe evaluations of the exponential. Read [this](https://en.wikipedia.org/wiki/LogSumExp) for background information on the logsumexp trick.\n", + "- Set bounds for your parameters that prevent extreme parameter constellations.\n", + "- Use the ``bounds_distance`` option with a not too small value for ``covariance`` and ``sdcorr`` constraints.\n", + "- Use `optimagic.utilities.robust_cholesky` instead of normal\n", + " cholesky decompositions or try to avoid cholesky decompositions.\n", + "- Use a less aggressive optimizer. Trust region optimizers like `fides` usually choose less extreme steps in the beginnig than line search optimizers like `scipy_bfgs` and `scip_lbfgsb`. \n", + "\n", + "## Do not use clipping\n", + "\n", + "A commonly chosen solution to numerical problems is clipping of extreme values. Naive clipping leads to flat areas in your criterion function and can cause spurious convergence. Only use clipping if you know that your optimizer can deal with flat parts. " + ] + }, + { + "cell_type": "markdown", + "id": "4c551530", + "metadata": {}, + "source": [ + "## Let optimagic do its magic\n", + "\n", + "Instead of avoiding errors in your criterion function, you can raise them and let optimagic deal with them. If you are using numerical derivatives, errors will automatically be raised if any entry in the derivative is not finite. \n", + "\n", + "### An example\n", + "\n", + "Let's look at a simple example from the Moré-Wild benchmark set that has a numerical instability. " + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "5ec31d93", + "metadata": {}, + "outputs": [], + "source": [ + "import warnings\n", + "\n", + "import optimagic as om\n", + "import numpy as np\n", + "from scipy.optimize import minimize as scipy_minimize\n", + "\n", + "warnings.simplefilter(\"ignore\")" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "fec56a0b", + "metadata": {}, + "outputs": [], + "source": [ + "def jennrich_sampson(x):\n", + " dim_out = 10\n", + " fvec = (\n", + " 2 * (1.0 + np.arange(1, dim_out + 1))\n", + " - np.exp(np.arange(1, dim_out + 1) * x[0])\n", + " - np.exp(np.arange(1, dim_out + 1) * x[1])\n", + " )\n", + " return fvec @ fvec\n", + "\n", + "\n", + "correct_params = np.array([0.2578252135686162, 0.2578252135686162])\n", + "correct_criterion = 124.3621823556148\n", + "\n", + "start_x = np.array([0.3, 0.4])" + ] + }, + { + "cell_type": "markdown", + "id": "13c144d7", + "metadata": {}, + "source": [ + "### What would scipy do?" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "21383146", + "metadata": {}, + "outputs": [], + "source": [ + "scipy_res = scipy_minimize(jennrich_sampson, x0=start_x, method=\"L-BFGS-B\")" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "36d8e926", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "scipy_res.success" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "40511eb9", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(array([0.2578, 0.2578]), array([0.3384, 0.008 ]))" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "correct_params.round(4), scipy_res.x.round(4)" + ] + }, + { + "cell_type": "markdown", + "id": "ca245e3b", + "metadata": {}, + "source": [ + "So, scipy thinks it solved the problem successfully but the result is far off. (Note that scipy would have given us a warning, but we disabled warnings in order to not clutter the output).\n", + "\n", + "### optimagic's error handling magic" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "617108b1", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(array([0.25782521, 0.25782521]), array([0.25782521, 0.25782522]))" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "res = om.minimize(\n", + " criterion=jennrich_sampson,\n", + " params=start_x,\n", + " algorithm=\"scipy_lbfgsb\",\n", + " error_handling=\"continue\",\n", + ")\n", + "\n", + "correct_params, res.params" + ] + }, + { + "cell_type": "markdown", + "id": "7fba61dd", + "metadata": {}, + "source": [ + "### How does the magic work\n", + "\n", + "When an error occurs and `error_handling` is set to `\"continue\"`, optimagic replaces your criterion with a dummy function (and adjusts the derivative accordingly). \n", + "\n", + "The dummy function has two important properties:\n", + "\n", + "1. Its value is always higher than criterion at start params. \n", + "2. Its slope guides the optimizer back towards the start parameters. I.e., if you are minimizing, the direction of strongest decrease is towards the start parameters; if you are maximizing, the direction of strongest increase is towards the start parameters. \n", + "\n", + "Therefore, when hitting an undefined area, an optimizer can take a few steps back until it is in better territory and then continue its work. \n", + "\n", + "Importantly, the optimizer will not simply go back to a previously evaluated point (which would just lead to cyclical behavior). It will just go back in the direction it originally came from.\n", + "\n", + "In the concrete example, the dummy function would look similar to the following:" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "dbf49b7b", + "metadata": {}, + "outputs": [], + "source": [ + "def dummy(params):\n", + " start_params = np.array([0.3, 0.4])\n", + " # this is close to the actual value used by optimagic\n", + " constant = 8000\n", + " # the actual slope used by optimagic would be even smaller\n", + " slope = 10_000\n", + " diff = params - start_params\n", + " return constant + slope * np.linalg.norm(diff)" + ] + }, + { + "cell_type": "markdown", + "id": "5958751d", + "metadata": {}, + "source": [ + "Now, let's plot the two functions. For better illustration, we assume that the jennrich_sampson function is only defined until it reaches a value of 100_000 and the dummy function takes over from there. " + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "061ba6c5", + "metadata": {}, + "outputs": [], + "source": [ + "from plotly import graph_objects as go\n", + "\n", + "grid = np.linspace(0, 1)\n", + "params = [np.full(2, val) for val in grid]\n", + "values = np.array([jennrich_sampson(p) for p in params])\n", + "values = np.where(values <= 1e5, values, np.nan)\n", + "dummy_values = np.array([dummy(p) for p in params])\n", + "dummy_values = np.where(np.isfinite(values), np.nan, dummy_values)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "2556c2fb", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAArwAAAH0CAYAAADfWf7fAAAgAElEQVR4XuydB5QUVd7Fb1U3QxyGpIABRMyyZnTNyKrgiqKorGkVRVwUkQVUcJEPFBAjqCyoYMawCsuq4CqKiFkxu6yuGSMYiDMMyEx3f6eqmZFRmOnuulX9qvr2OR7CvHfrvd995f/6fF1lpVKpFPQRAREQAREQAREQAREQgYgSsBR4I+qspiUCIiACIiACIiACIuASUODVQhABERABERABERABEYg0AQXeSNuryYmACIiACIiACIiACCjwag2IgAiIgAiIgAiIgAhEmoACb6Tt1eREQAREQAREQAREQAQUeLUGREAEREAEREAEREAEIk1AgTfS9mpyIiACIiACIiACIiACCrxaAyIgAiIgAiIgAiIgApEmoMAbaXs1OREQAREQAREQAREQAQVerQEREAEREAEREAEREIFIE1DgjbS9mpwIiIAIiIAIiIAIiIACr9aACIiACIiACIiACIhApAko8EbaXk1OBERABERABERABERAgVdrQAREQAREQAREQAREINIEFHgjba8mJwIiIAIiIAIiIAIioMCrNSACIiACIiACIiACIhBpAgq8kbZXkxMBERABERABERABEVDg1RoQAREQAREQAREQARGINAEF3kjbq8mJgAiIgAiIgAiIgAgo8GoNiIAIiIAIiIAIiIAIRJqAAm+k7dXkREAEREAEREAEREAEFHi1BkRABERABERABERABCJNQIE30vZqciIgAiIgAiIgAiIgAgq8WgMiIAIiIAIiIAIiIAKRJqDAG2l7NTkREAEREAEREAEREAEFXq0BERABERABERABERCBSBNQ4I20vZqcCIiACIiACIiACIiAAq/WgAiIgAiIgAiIgAiIQKQJKPBG2l5NTgREQAREQAREQAREQIFXa0AEREAEREAEREAERCDSBBR4I22vJicCIiACIiACIiACIqDAqzUgAiIgAiIgAiIgAiIQaQIKvJG2V5MTAREQAREQAREQARFQ4NUaEAEREAEREAEREAERiDQBBd5I26vJiYAIiIAIiIAIiIAIKPBqDYiACIiACIiACIiACESagAJvpO3V5ERABERABERABERABBR4tQZEQAREQAREQAREQAQiTUCBN9L2anIiIAIiIAIiIAIiIAIKvFoDIiACIiACIiACIiACkSagwBtpezU5ERABERABERABERABBV6tAREQAREQAREQAREQgUgTUOCNtL2anAiIgAiIgAiIgAiIgAKv1oAIiIAIiIAIiIAIiECkCSjwRtpeTU4EREAEREAEREAERECBV2tABERABERABERABEQg0gQUeCNtryYnAiIgAiIgAiIgAiKgwKs1IAIiIAIiIAIiIAIiEGkCCryRtleTEwEREAEREAEREAERUODVGhABERABERABERABEYg0AQXeSNuryYmACIiACIiACIiACCjwag2IgAiIgAiIgAiIgAhEmoACb6Tt1eREQAREQAREQAREQAQUeLUGREAEREAEREAEREAEIk1AgTfS9mpyIiACIiACIiACIiACCrxaAyIgAiIgAiIgAiIgApEmoMAbaXs1OREQAREQAREQAREQAQVerQEREAEREAEREAEREIFIE1DgjbS9mpwIiIAIiIAIiIAIiIACr9aACIiACIiACIiACIhApAko8EbaXk1OBERABERABERABERAgVdrQAREQAREQAREQAREINIEFHgjba8mJwIiIAIiIAIiIAIioMCrNSACIiACIiACIiACIhBpAgq8kbZXkxMBERABERABERABEVDg1RoQAREQAREQAREQARGINAEF3kjbq8mJgAiIgAiIgAiIgAgo8GoNiIAIiIAIiIAIiIAIRJqAAm+k7dXkREAEREAEREAEREAEFHi1BkRABERABERABERABCJNQIE30vZqciIgAiIgAiIgAiIgAgq8WgMiIAIiIAIiIAIiIAKRJqDAG2l7NTkREAEREAEREAEREAEFXq0BERABERABERABERCBSBNQ4I20vZqcCIiACIiACIiACIiAAq/WgAiIgAiIgAiIgAiIQKQJKPBG2l5NTgREQAREQAREQAREQIFXa0AEREAEREAEREAERCDSBBR4I22vJicCIiACIiACIiACIqDAqzUgAiIgAiIgAiIgAiIQaQIKvJG2V5MTAREQAREQAREQARFQ4NUaEAEREAEREAEREAERiDQBBd5I26vJiYAIiIAIiIAIiIAIKPBqDYiACIiACIiACIiACESagAJvpO3V5ERABERABERABERABBR4tQZEQAREQAREQAREQAQiTUCBN9L2anIiIAIiIAIiIAIiIAIKvFoDIiACIiACIiACIiACkSagwBtpezU5ERABERABERABERABBV6tAREQAREQAREQAREQgUgTUOCNtL2anAiIgAiIgAiIgAiIgAKv1oAIiIAIiIAIiIAIiECkCSjwRtpeTU4EREAEREAEREAERECBV2tABERABERABERABEQg0gQUeCNtryYnAiIgAiIgAiIgAiKgwKs1IAIiIAIiIAIiIAIiEGkCCryRtleTEwEREAEREAEREAERUODVGhABERABERABERABEYg0AQXeSNuryYmACIiACIiACIiACCjwEtbAd8vWElQkwSJQ3DAOWBZKyytYktIhEJAvBIg+SMgXH6ASJOULAaJPElu1bOiTsmT9JKDAS6CrwEuASJRQoSDCJErJFyJMopR8IcIkSskXIkyylAIvGWhAcgq8BNAKvASIRAkVCiJMopR8IcIkSskXIkyilHwhwiRLKfCSgQYkp8BLAK3AS4BIlFChIMIkSskXIkyilHwhwiRKyRciTLKUAi8ZaEByCrwE0Aq8BIhECRUKIkyilHwhwiRKyRciTKKUfCHCJEsp8JKBBiSnwEsArcBLgEiUUKEgwiRKyRciTKKUfCHCJErJFyJMspQCLxloQHIKvATQCrwEiEQJFQoiTKKUfCHCJErJFyJMopR8IcIkSynwkoEGJKfASwCtwEuASJRQoSDCJErJFyJMopR8IcIkSskXIkyylAIvGWhAcgq8BNAKvASIRAkVCiJMopR8IcIkSskXIkyilHwhwiRLKfCSgQYkp8BLAK3AS4BIlFChIMIkSskXIkyilHwhwiRKyRciTLKUAi8Z6K/kflq+Co0bNUTDBkXUCynwEnAq8BIgEiVUKIgwiVLyhQiTKCVfiDCJUvKFCJMsFaXAe+dD/8Y2bVuhW5f9yZSyl/vq2+/Rf9gEfPnN927nXn88DP835GzUi8eyF9tEDwVeAkYFXgJEooQKBREmUUq+EGESpeQLESZRSr4QYZKlohR4Lx55C3bZoT0uPLsnmVL2cudfegOaNG6IccP7YekPy9D7L1fi/wafheOOPih7MQVeCrPfiCjw+sM1V1UVilzJ+dtPvvjLN1d1+ZIrOX/7yRd/+XpRj0rgnbtgIa649i40qF8PW7VuhR233wZjh/XFaReOwfln9sCLr/8HH37ypft3U++fjVfeWITlK0vRsf1WGHDOiejWpbOLce269Zhyz6N4+vk3UL52HTrvtQsuH3gG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AYE36fYqjgABAgQIECBAQOA1AwQIECBAgAABAkkLCLxJt1dxBAgQIECAAAECAq8ZIECAAAECBAgQSFpA4E26vYojQIAAAQIECBAQeM0AAQIECBAgQIBA0gICb9LtVRwBAgQIECBAgIDAawYIECBAgAABAgSSFhB4k26v4ggQIECAAAECBAReM0CAAAECBAgQIJC0gMCbdHsVR4AAAQIECBAgIPCaAQIECBAgQIAAgaQFBN6k26s4AgQIECBAgAABgdcMECBAgAABAgQIJC0g8CbdXsURIECAAAECBAgIvGaAAAECBAgQIEAgaQGBN+n2Ko4AAQIECBAgQEDgNQMECBAgQIAAAQJJCwi8SbdXcQQIECBAgAABAgKvGSBAgAABAgQIEEhaQOBNur2KI0CAAAECBAgQEHjNAAECBAgQIECAQNICAm/S7VUcAQIECBAgQICAwGsGCBAgQIAAAQIEkhYQeJNur+IIECBAgAABAgQEXjNAgAABAgQIECCQtIDAm3R7FUeAAAECBAgQICDwmgECBAgQIECAAIGkBQTepNurOAIECBAgQIAAAYHXDBAgQIAAAQIECCQtIPAm3V7FESBAgAABAgQICLxmgAABAgQIECBAIGkBgTfp9iqOAAECBAgQIEBA4DUDBAgQIECAAAECSQsIvEm3V3EECBAgQIAAAQICrxkgQIAAAQIECBBIWkDgTbq9iiNAgAABAgQIEPgPLewB9VAIa4oAAAAASUVORK5CYII=" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = go.Figure()\n", + "fig.add_trace(go.Scatter(x=grid, y=values))\n", + "fig.add_trace(go.Scatter(x=grid, y=dummy_values))\n", + "fig.show(renderer=\"png\")" + ] + }, + { + "cell_type": "markdown", + "id": "21c56b35", + "metadata": {}, + "source": [ + "We can see that the dummy function is lower than the highest achieved value of `jennrich_sampson` but higher than the start values. It is also rather flat. Fortunately, that is all we need. " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.14" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/docs/source/how_to_guides/differentiation/how_to_calculate_first_derivatives.ipynb b/docs/source/how_to/how_to_first_derivative.ipynb similarity index 94% rename from docs/source/how_to_guides/differentiation/how_to_calculate_first_derivatives.ipynb rename to docs/source/how_to/how_to_first_derivative.ipynb index 6398fb02c..d7d2f216a 100644 --- a/docs/source/how_to_guides/differentiation/how_to_calculate_first_derivatives.ipynb +++ b/docs/source/how_to/how_to_first_derivative.ipynb @@ -6,7 +6,7 @@ "source": [ "# How to calculate first derivatives\n", "\n", - "In this guide, we show you how to compute first derivatives with estimagic - while introducing some core concepts." + "In this guide, we show you how to compute first derivatives with optimagic - while introducing some core concepts." ] }, { @@ -15,7 +15,7 @@ "metadata": {}, "outputs": [], "source": [ - "import estimagic as em\n", + "import optimagic as om\n", "import numpy as np\n", "import pandas as pd" ] @@ -45,7 +45,7 @@ "source": [ "The derivative of $f$ is given by $f'(x) = 2 x$. With numerical derivatives, we have to specify the value of $x$ at which we want to compute the derivative. Let's first consider two **scalar** points $x = 0$ and $x=1$. We have $f'(0) = 0$ and $f'(1) = 2$.\n", "\n", - "To compute the derivative using estimagicm we simply pass the function ``sphere`` and the ``params`` to the function ``first_derivative``:" + "To compute the derivative using optimagic we simply pass the function ``sphere`` and the ``params`` to the function ``first_derivative``:" ] }, { @@ -65,7 +65,7 @@ } ], "source": [ - "fd = em.first_derivative(func=sphere_scalar, params=0)\n", + "fd = om.first_derivative(func=sphere_scalar, params=0)\n", "fd[\"derivative\"]" ] }, @@ -86,7 +86,7 @@ } ], "source": [ - "fd = em.first_derivative(func=sphere_scalar, params=1)\n", + "fd = om.first_derivative(func=sphere_scalar, params=1)\n", "fd[\"derivative\"]" ] }, @@ -150,7 +150,7 @@ } ], "source": [ - "fd = em.first_derivative(sphere, params=np.arange(4))\n", + "fd = om.first_derivative(sphere, params=np.arange(4))\n", "fd[\"derivative\"]" ] }, @@ -194,7 +194,7 @@ } ], "source": [ - "fd = em.first_derivative(sphere_multivariate, params=np.arange(4))\n", + "fd = om.first_derivative(sphere_multivariate, params=np.arange(4))\n", "fd[\"derivative\"]" ] }, @@ -226,7 +226,7 @@ "metadata": {}, "outputs": [], "source": [ - "fd = em.first_derivative(\n", + "fd = om.first_derivative(\n", " sphere_scalar, params=0, n_steps=2, return_func_value=True, return_info=True\n", ")" ] @@ -235,18 +235,7 @@ "cell_type": "code", "execution_count": 10, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "True" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "assert fd[\"func_value\"] == sphere_scalar(0)" ] @@ -438,7 +427,7 @@ "source": [ "## The ``params`` argument\n", "\n", - "Above we used a ``numpy.ndarray`` as the ``params`` argument. In estimagic, params can be arbitrary [pytrees](https://jax.readthedocs.io/en/latest/pytrees.html). Examples are (nested) dictionaries of numbers, arrays, and pandas objects. Let's look at a few cases." + "Above we used a ``numpy.ndarray`` as the ``params`` argument. In optimagic, params can be arbitrary [pytrees](https://jax.readthedocs.io/en/latest/pytrees.html). Examples are (nested) dictionaries of numbers, arrays, and pandas objects. Let's look at a few cases." ] }, { @@ -555,7 +544,7 @@ } ], "source": [ - "fd = em.first_derivative(sphere_pandas, params)\n", + "fd = om.first_derivative(sphere_pandas, params)\n", "fd[\"derivative\"]" ] }, @@ -625,7 +614,7 @@ } ], "source": [ - "fd = em.first_derivative(\n", + "fd = om.first_derivative(\n", " func=dict_sphere,\n", " params=params,\n", ")\n", @@ -659,7 +648,7 @@ "metadata": {}, "outputs": [], "source": [ - "fd = em.first_derivative(sphere_scalar, params=0, n_cores=2)" + "fd = om.first_derivative(sphere_scalar, params=0, n_cores=2)" ] } ], @@ -679,7 +668,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.8 | packaged by conda-forge | (main, Nov 22 2022, 08:27:35) [Clang 14.0.6 ]" + "version": "3.10.14" }, "vscode": { "interpreter": { diff --git a/docs/source/how_to/how_to_logging.ipynb b/docs/source/how_to/how_to_logging.ipynb new file mode 100644 index 000000000..86eee78a2 --- /dev/null +++ b/docs/source/how_to/how_to_logging.ipynb @@ -0,0 +1,287 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# How to use logging\n", + "\n", + "\n", + "optimagic can keep a persistent log of the parameter and criterion values tried out by an optimizer in a sqlite database. \n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Turn logging on or off\n", + "\n", + "To enable logging, it suffices to provide a path to an sqlite database when calling ``maximize`` or ``minimize``. The database does not have to exist, optimagic will generate it for you. " + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import optimagic as om\n", + "import numpy as np" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "def sphere(params):\n", + " return params @ params" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "res = om.minimize(\n", + " criterion=sphere,\n", + " params=np.arange(5),\n", + " algorithm=\"scipy_lbfgsb\",\n", + " logging=\"my_log.db\",\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Make logging faster\n", + "\n", + "By default, we use a very safe mode of sqlite that makes it almost impossible to corrupt the database. Even if your computer is suddenly shut down or unplugged. \n", + "\n", + "However, this makes writing logs rather slow, which becomes notable when the criterion function is very fast. \n", + "\n", + "In that case, you can enable ``\"fast_logging\"``, which is still quite safe!" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "res = om.minimize(\n", + " criterion=sphere,\n", + " params=np.arange(5),\n", + " algorithm=\"scipy_lbfgsb\",\n", + " logging=\"my_log.db\",\n", + " log_options={\"fast_logging\": True},\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Handling existing tables\n", + "\n", + "By default, we only append to databases and do not overwrite data in them. You have a few options to change this:" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "res = om.minimize(\n", + " criterion=sphere,\n", + " params=np.arange(5),\n", + " algorithm=\"scipy_lbfgsb\",\n", + " logging=\"my_log.db\",\n", + " log_options={\n", + " \"if_database_exists\": \"replace\", # one of \"raise\", \"replace\", \"extend\",\n", + " \"if_table_exists\": \"replace\", # one of \"raise\", \"replace\", \"extend\"\n", + " },\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Reading the log" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "reader = om.OptimizeLogReader(\"my_log.db\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Read the start params" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([0, 1, 2, 3, 4])" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "reader.read_start_params()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Read a specific iteration (use -1 for the last)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'rowid': 3,\n", + " 'params': array([ 0.00000000e+00, -2.19792136e-07, -4.01986531e-08, -1.26862247e-07,\n", + " -2.06263029e-07]),\n", + " 'internal_derivative': array([ 1.49011612e-09, -4.38094157e-07, -7.89071900e-08, -2.52234379e-07,\n", + " -4.11035942e-07]),\n", + " 'timestamp': 1409115.084173416,\n", + " 'exceptions': None,\n", + " 'valid': True,\n", + " 'hash': None,\n", + " 'value': 1.0856298186326115e-13,\n", + " 'step': 1,\n", + " 'criterion_eval': 1.0856298186326115e-13}" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "reader.read_iteration(-1)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Read the full history" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "dict_keys(['params', 'criterion', 'runtime'])" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "reader.read_history().keys()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Plot the history from a log" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = om.criterion_plot(\"my_log.db\")\n", + "fig.show(renderer=\"png\")" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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XX755fbQQw/Z8ccf77YwdOvWzTZv3mx169Z17dZnTz755IP6oK0Yuu2uVcj09HSrUqWKXXnllS4sv/baa7Z48WLr0qWL64u2Z9x7773u3zqvgtf8+fPduX7++eeMc2kl+YYbbrCdO3fakCFDbM6cOa4t9evXd06nn366a4f+fNJJJ7lb8HLZsmWLDR8+3J566imrWLGi3X777e5zh+qrfh60U6vZauf3339vrVq1svbt21u5cuWyHTf1fezYsW68dLGi8VC/GzdubAr1HTp0cKviOlZQ1q5da927d7cHHnjA6tWr52xWrlzptniULl3atDqtn5UvX95VyRx45ad6N910U8Yx+/fvb6VKlbK7777b/d2hjpmdd/Pmze2WW26xu+66y7VBRe16/PHH3YVIpUqV7Nprr7VOnTrZ0UcfneF/3HHHmcLyW2+9ZQULFnTtuvnmmzM+o20xGmdtY1GQrl27tjPS3QMKAgiET4DAG74xp8cIZAgo8D766KNWuXJl69ixo7sV37Bhw4MC79tvv2333XefCyQKVdpzqVvdCkXXXHNN1KJaXdWeXAVBhTIVbaUoU6aMvffee6bb2wMGDLAPP/zQ+vTp437eqFEjU7jJXJ544gkXwNVefebrr7+2l19+2W1XePLJJ+2FF15wVc455xwXHm+88UYXdoPb9AqKOpf6EZxLgfass86yli1b2q+//uoClMLgq6++6kK1Plu8eHEX9L/88kt3fJ3/qKOOcsfSRYBM9efD9VUhLWinQub1119vBQoUsMGDB7vArPCZXVE9rUwr5Km9snv33XdtypQpLtApHK5YscKFeq04qyiMK1TrokIXN/rM2Wef7QKlQv+zzz7rAv2YMWOyDLyBsy4SgtK6dWsrW7asuzhQOdQxs/M+7bTTXB/Ub7lq//hll11mVatWtbZt2zpnBXtdiGibjUrgr4sijb3qaGuK5pK256g/5513nvtHRr/99pu9//777g5GcDES9aTlgwggkBICBN6UGEY6gUB8AkHgVbDTaqBuyb/zzjtu5TFyD+8VV1zhbjlrNTMoCrpaoZ09e3bUJ1dQ1iqgwmjwQJzCrUKI9ncqvOhnelBKK3TZFQXm888//x8hSJ/98ccfXbgNAuGkSZNMgSoomVcts7rFPnfuXLvjjjsywqPqalVb/dUqrlaRFbi02qgLBAXioCgoB4E3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" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = om.params_plot(\"my_log.db\", selector=lambda x: x[1:3])\n", + "fig.show(renderer=\"png\")" + ] + } + ], + "metadata": { + "interpreter": { + "hash": "5cdb9867252288f10687117449de6ad870b49795ca695c868016dc0022895cce" + }, + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.14" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/docs/source/how_to_guides/optimization/how_to_do_multistart_optimizations.ipynb b/docs/source/how_to/how_to_multistart.ipynb similarity index 99% rename from docs/source/how_to_guides/optimization/how_to_do_multistart_optimizations.ipynb rename to docs/source/how_to/how_to_multistart.ipynb index 38badfc3a..9597fa1bc 100644 --- a/docs/source/how_to_guides/optimization/how_to_do_multistart_optimizations.ipynb +++ b/docs/source/how_to/how_to_multistart.ipynb @@ -21,7 +21,7 @@ "metadata": {}, "outputs": [], "source": [ - "import estimagic as em\n", + "import optimagic as om\n", "import pandas as pd" ] }, @@ -179,7 +179,7 @@ } ], "source": [ - "res = em.minimize(\n", + "res = om.minimize(\n", " criterion=sphere,\n", " params=params,\n", " algorithm=\"scipy_lbfgsb\",\n", @@ -208,7 +208,7 @@ "id": "e88747a1", "metadata": {}, "source": [ - "## What does multistart mean in estimagic?\n", + "## What does multistart mean in optimagic?\n", "\n", "The way we do multistart optimizations is inspired by the [TikTak algorithm](https://github.com/serdarozkan/TikTak). Our multistart optimizations consist of the following steps:\n", "\n", @@ -312,7 +312,7 @@ } ], "source": [ - "res = em.minimize(\n", + "res = om.minimize(\n", " criterion=sphere,\n", " params=params,\n", " algorithm=\"scipy_lbfgsb\",\n", diff --git a/docs/source/how_to_guides/optimization/how_to_scale_optimization_problems.md b/docs/source/how_to/how_to_scaling.md similarity index 97% rename from docs/source/how_to_guides/optimization/how_to_scale_optimization_problems.md rename to docs/source/how_to/how_to_scaling.md index ec9b9fcf7..d127cdc5a 100644 --- a/docs/source/how_to_guides/optimization/how_to_scale_optimization_problems.md +++ b/docs/source/how_to/how_to_scaling.md @@ -38,7 +38,7 @@ improved by simply dividing all parameter vectors by the start parameters. **How to specify this scaling:** ```python -import estimagic as em +import optimagic as om def sphere(params): @@ -49,7 +49,7 @@ start_params = pd.DataFrame(data=np.arange(5), columns=["value"]) start_params["lower_bound"] = 0 start_params["upper_bound"] = 2 * np.arange(5) + 1 -res = em.minimize( +res = om.minimize( criterion=sphere, params=start_params, algorithm="scipy_lbfgsb", @@ -85,7 +85,7 @@ changes become the same. **Disadvantages:** - Only works if all parameters have bounds -- This prohibits some kinds of other constraints in estimagic +- This prohibits some kinds of other constraints in optimagic **How to specify this scaling:** @@ -98,7 +98,7 @@ start_params = pd.DataFrame(data=np.arange(5), columns=["value"]) start_params["lower_bound"] = 0 start_params["upper_bound"] = 2 * np.arange(5) + 1 -res = em.minimize( +res = om.minimize( criterion=sphere, params=start_params, algorithm="scipy_lbfgsb", @@ -133,7 +133,7 @@ start_params = pd.DataFrame(data=np.arange(5), columns=["value"]) start_params["lower_bound"] = 0 start_params["upper_bound"] = 2 * np.arange(5) + 1 -res = em.minimize( +res = om.minimize( criterion=sphere, params=start_params, algorithm="scipy_lbfgsb", @@ -163,4 +163,4 @@ Scaling is disabled by default. If enabled, but no `scaling_options` are provide use the `"start_values"` method with a `"clipping_value"` of 0.1. This is the default method because it can be used for all optimization problems and has low computational cost. We strongly recommend you read the above guidelines and choose the method that is -most suitable for your problem. +most suitable for your problom. diff --git a/docs/source/how_to_guides/differentiation/how_to_calculate_second_derivatives.ipynb b/docs/source/how_to/how_to_second_derivative.ipynb similarity index 92% rename from docs/source/how_to_guides/differentiation/how_to_calculate_second_derivatives.ipynb rename to docs/source/how_to/how_to_second_derivative.ipynb index c782c21ce..a96397dc1 100644 --- a/docs/source/how_to_guides/differentiation/how_to_calculate_second_derivatives.ipynb +++ b/docs/source/how_to/how_to_second_derivative.ipynb @@ -6,7 +6,7 @@ "source": [ "# How to calculate second derivatives\n", "\n", - "In this guide, we show you how to compute second derivatives with estimagic, while introducing some core concepts." + "In this guide, we show you how to compute second derivatives with optimagic, while introducing some core concepts." ] }, { @@ -15,7 +15,7 @@ "metadata": {}, "outputs": [], "source": [ - "import estimagic as em\n", + "import optimagic as om\n", "import numpy as np\n", "import pandas as pd" ] @@ -49,7 +49,7 @@ "source": [ "Let's first consider two **scalar** points $x = 0$ and $x=1$. Since the second derivative here is constant, we have $f''(0) = f''(1) = 2$.\n", "\n", - "To compute the derivative using estimagic, we simply pass the function ``ellipse_scalar`` and ``params`` to the function ``second_derivative``:" + "To compute the derivative using optimagic, we simply pass the function ``ellipse_scalar`` and ``params`` to the function ``second_derivative``:" ] }, { @@ -69,7 +69,7 @@ } ], "source": [ - "sd = em.second_derivative(func=ellipse_scalar, params=0)\n", + "sd = om.second_derivative(func=ellipse_scalar, params=0)\n", "sd[\"derivative\"]" ] }, @@ -90,7 +90,7 @@ } ], "source": [ - "sd = em.second_derivative(func=ellipse_scalar, params=1)\n", + "sd = om.second_derivative(func=ellipse_scalar, params=1)\n", "sd[\"derivative\"]" ] }, @@ -158,7 +158,7 @@ } ], "source": [ - "sd = em.second_derivative(ellipse, params=np.arange(4))\n", + "sd = om.second_derivative(ellipse, params=np.arange(4))\n", "sd[\"derivative\"].round(2)" ] }, @@ -192,20 +192,20 @@ { "data": { "text/plain": [ - "array([[[ 0., 0., 0., 0.],\n", - " [ 0., 0., 0., 0.],\n", - " [ 0., 0., 0., 0.],\n", - " [ 0., 0., 0., 0.]],\n", + "array([[[ 0. , 0. , 0. , 0. ],\n", + " [ 0. , 0. , 0. , 0. ],\n", + " [ 0. , 0. , 0. , 0. ],\n", + " [ 0. , 0. , 0. , 0. ]],\n", "\n", - " [[ 0., 5., 10., 15.],\n", - " [ 5., 10., 15., 20.],\n", - " [10., 15., 20., 25.],\n", - " [15., 20., 25., 30.]],\n", + " [[ 0. , 5. , 10. , 15. ],\n", + " [ 5. , 10. , 15. , 20. ],\n", + " [10. , 15. , 20. , 25. ],\n", + " [15. , 20. , 25. , 30. ]],\n", "\n", - " [[ 0., 10., 20., 30.],\n", - " [10., 20., 30., 40.],\n", - " [20., 30., 40., 50.],\n", - " [30., 40., 50., 60.]]])" + " [[ 0. , 10.01, 20. , 30. ],\n", + " [10.01, 20. , 30. , 40. ],\n", + " [20. , 30. , 40. , 50. ],\n", + " [30. , 40. , 50. , 60. ]]])" ] }, "execution_count": 8, @@ -214,7 +214,7 @@ } ], "source": [ - "sd = em.second_derivative(ellipse_multivariate, params=np.arange(4))\n", + "sd = om.second_derivative(ellipse_multivariate, params=np.arange(4))\n", "sd[\"derivative\"].round(2)" ] }, @@ -237,7 +237,7 @@ "metadata": {}, "outputs": [], "source": [ - "sd = em.second_derivative(\n", + "sd = om.second_derivative(\n", " ellipse_scalar, params=0, return_func_value=True, return_info=True\n", ")" ] @@ -246,18 +246,7 @@ "cell_type": "code", "execution_count": 10, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "True" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "assert sd[\"func_value\"] == ellipse_scalar(0)" ] @@ -268,7 +257,7 @@ "source": [ "## The ``params`` argument\n", "\n", - "Above we used a ``numpy.ndarray`` as the ``params`` argument. In estimagic, params can be arbitrary [pytrees](https://jax.readthedocs.io/en/latest/pytrees.html). Examples are (nested) dictionaries of numbers, arrays and pandas objects. Lets look at a few cases.\n", + "Above we used a ``numpy.ndarray`` as the ``params`` argument. In optimagic, params can be arbitrary [pytrees](https://jax.readthedocs.io/en/latest/pytrees.html). Examples are (nested) dictionaries of numbers, arrays and pandas objects. Lets look at a few cases.\n", "\n", "### pandas" ] @@ -449,7 +438,7 @@ } ], "source": [ - "sd = em.second_derivative(ellipse_pandas, params)\n", + "sd = om.second_derivative(ellipse_pandas, params)\n", "sd[\"derivative\"]" ] }, @@ -537,7 +526,7 @@ } ], "source": [ - "sd = em.second_derivative(\n", + "sd = om.second_derivative(\n", " func=dict_sphere,\n", " params=params,\n", ")\n", @@ -641,7 +630,7 @@ "metadata": {}, "outputs": [], "source": [ - "sd = em.second_derivative(ellipse_scalar, params=0, n_cores=2)" + "sd = om.second_derivative(ellipse_scalar, params=0, n_cores=2)" ] } ], @@ -661,7 +650,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.8 | packaged by conda-forge | (main, Nov 22 2022, 08:27:35) [Clang 14.0.6 ]" + "version": "3.10.14" }, "vscode": { "interpreter": { diff --git a/docs/source/how_to_guides/optimization/how_to_visualize_an_optimization_problem.ipynb b/docs/source/how_to/how_to_slice_plot.ipynb similarity index 99% rename from docs/source/how_to_guides/optimization/how_to_visualize_an_optimization_problem.ipynb rename to docs/source/how_to/how_to_slice_plot.ipynb index bf15c0422..5407e59a8 100644 --- a/docs/source/how_to_guides/optimization/how_to_visualize_an_optimization_problem.ipynb +++ b/docs/source/how_to/how_to_slice_plot.ipynb @@ -30,7 +30,7 @@ "metadata": {}, "outputs": [], "source": [ - "import estimagic as em\n", + "import optimagic as om\n", "import numpy as np" ] }, @@ -77,7 +77,7 @@ } ], "source": [ - "fig = em.slice_plot(\n", + "fig = om.slice_plot(\n", " func=sphere,\n", " params=params,\n", " lower_bounds=lower_bounds,\n", @@ -122,7 +122,7 @@ } ], "source": [ - "fig = em.slice_plot(\n", + "fig = om.slice_plot(\n", " func=sphere,\n", " params=params,\n", " lower_bounds=lower_bounds,\n", diff --git a/docs/source/how_to_guides/optimization/how_to_specify_algorithm_and_algo_options.md b/docs/source/how_to/how_to_specify_algorithm_and_algo_options.md similarity index 92% rename from docs/source/how_to_guides/optimization/how_to_specify_algorithm_and_algo_options.md rename to docs/source/how_to/how_to_specify_algorithm_and_algo_options.md index 5212d1ff4..4472c1f52 100644 --- a/docs/source/how_to_guides/optimization/how_to_specify_algorithm_and_algo_options.md +++ b/docs/source/how_to/how_to_specify_algorithm_and_algo_options.md @@ -5,10 +5,10 @@ ## The *algorithm* argument The `algorithm` argument can either be a string with the name of an algorithm that is -implemented in estimagic, or a function that fulfills the interface laid out in +implemented in optimagic, or a function that fulfills the interface laid out in {ref}`internal_optimizer_interface`. -Which algorithms are available in estimagic depends on the packages a user has +Which algorithms are available in optimagic depends on the packages a user has installed. We list all supported algorithms in {ref}`list_of_algorithms`. ## The *algo_options* argument diff --git a/docs/source/how_to_guides/optimization/how_to_specify_parameters.md b/docs/source/how_to/how_to_start_parameters.md similarity index 86% rename from docs/source/how_to_guides/optimization/how_to_specify_parameters.md rename to docs/source/how_to/how_to_start_parameters.md index d975ceca4..55b5daab1 100644 --- a/docs/source/how_to_guides/optimization/how_to_specify_parameters.md +++ b/docs/source/how_to/how_to_start_parameters.md @@ -2,13 +2,13 @@ # How to specify `params` -`params` is the first argument of any criterion function in estimagic. It collects all +`params` is the first argument of any criterion function in optimagic. It collects all the parameters to estimate, optimize, or differentiate over. In many optimization -libraries, `params` must be a one-dimensional numpy array. In estimagic, it can be an +libraries, `params` must be a one-dimensional numpy array. In optimagic, it can be an arbitrary pytree (think nested dictionary) containing numbers, arrays, pandas.Series, and/or pandas.DataFrames. -Below, we show a few examples of what is possible in estimagic and discuss the +Below, we show a few examples of what is possible in optimagic and discuss the advantages and drawbacks of each of them. Again, we use the simple `sphere` function you know from other tutorials as an example. @@ -29,14 +29,14 @@ Again, we use the simple `sphere` function you know from other tutorials as an e .. code-block:: python - import estimagic as em + import optimagic as om def sphere(params): return params @ params - em.minimize( + om.minimize( criterion=sphere, params=np.arange(3), algorithm="scipy_lbfgsb", @@ -47,7 +47,7 @@ Again, we use the simple `sphere` function you know from other tutorials as an e ```{eval-rst} .. tabbed:: DataFrame - Originally, pandas DataFrames were the mandatory format for ``params`` in estimagic. + Originally, pandas DataFrames were the mandatory format for ``params`` in optimagic. They are still highly recommended and have a few special features. For example, they allow to bundle information on start parameters and bounds together into one data structure. @@ -65,7 +65,7 @@ Again, we use the simple `sphere` function you know from other tutorials as an e index=["a", "b", "c"], ) - em.minimize( + om.minimize( criterion=sphere, params=params, algorithm="scipy_lbfgsb", @@ -81,8 +81,6 @@ Again, we use the simple `sphere` function you know from other tutorials as an e - You can bundle information on bounds and values in one place. - It is easy to compare two params vectors for equality. - Check out our `Ordered Logit Example <../../getting_started/estimation/first_likelihood_estimation_with_estimagic.ipynb>`_, - so you see one small params DataFrame in action. If you are sure you won't have bounds on your parameter, you can also use a pandas.Series instead of a pandas.DataFrame. @@ -104,7 +102,7 @@ Again, we use the simple `sphere` function you know from other tutorials as an e return params["a"] ** 2 + params["b"] ** 2 + (params["c"] ** 2).sum() - res = em.minimize( + res = om.minimize( criterion=sphere, params={"a": 0, "b": 1, "c": pd.Series([2, 3, 4])}, algorithm="scipy_neldermead", @@ -114,7 +112,7 @@ Again, we use the simple `sphere` function you know from other tutorials as an e groups of parameters. They are also a good choice if you calculate derivatives with JAX. - While estimagic won't stop you, don't go too far! Having parameters in very deeply + While optimagic won't stop you, don't go too far! Having parameters in very deeply nested dictionaries makes it hard to visualize results and/or even to compare two estimation results. @@ -132,7 +130,7 @@ Again, we use the simple `sphere` function you know from other tutorials as an e return params**2 - em.minimize( + om.minimize( criterion=sphere, params=3, algorithm="scipy_lbfgsb", diff --git a/docs/source/how_to/how_to_visualize_histories.ipynb b/docs/source/how_to/how_to_visualize_histories.ipynb new file mode 100644 index 000000000..7d5091ff5 --- /dev/null +++ b/docs/source/how_to/how_to_visualize_histories.ipynb @@ -0,0 +1,271 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "26bb6b59", + "metadata": {}, + "source": [ + "# How to visualize optimizer histories\n", + "\n", + "optimagic's `criterion_plot` can visualize the history of function values for one or multiple optimizations. \n", + "optimagic's `params_plot` can visualize the history of parameter values for one optimization. \n", + "\n", + "This can help you to understand whether your optimization actually converged and if not, which parameters are problematic. \n", + "\n", + "It can also help you to find the fastest optimizer for a given optimization problem. " + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "8675ff3f", + "metadata": {}, + "outputs": [], + "source": [ + "import optimagic as om\n", + "import numpy as np" + ] + }, + { + "cell_type": "markdown", + "id": "bb392c18", + "metadata": {}, + "source": [ + "## Run two optimization to get example results" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "5efb43c8", + "metadata": {}, + "outputs": [], + "source": [ + "def sphere(x):\n", + " return x @ x\n", + "\n", + "\n", + "results = {}\n", + "for algo in [\"scipy_lbfgsb\", \"scipy_neldermead\"]:\n", + " results[algo] = om.minimize(sphere, params=np.arange(5), algorithm=algo)" + ] + }, + { + "cell_type": "markdown", + "id": "a6472dcc", + "metadata": {}, + "source": [ + "## Make a single criterion plot" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "32cf04a2", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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3vjrc1qMQNgCepf7zp07zWOInV0FwjmZfvQeHHidO+3DOZfe4KT74OrWZjorG86hT3fTj9Z1L+Dguuj6Yt0RQtfGhvswiUi2tXjbNGRq27XdwbtFhGqgH/VreG7YsKFZChLKoUsl9HrOwzuKlwnlnKV5B59L26YhW2f9w30Aie6nrPXR9tmMsVBceA0CCHhbgMDr7f6hdggggAACCCCAAAKWAgReS0CKI4AAAggggAACCHhbgMDr7f6hdggggAACCCCAAAKWAgReS0CKI4AAAggggAACCHhbgMDr7f6hdggggAACCCCAAAKWAgReS0CKI4AAAggggAACCHhbgMDr7f6hdggggAACCCCAAAKWAgReS0CKI4AAAggggAACCHhbgMDr7f6hdggggAACCCCAAAKWAgReS0CKI4AAAggggAACCHhbgMDr7f6hdggggAACCCCAAAKWAgReS0CKI4AAAggggAACCHhbgMDr7f6hdggggAACCCCAAAKWAgReS0CKI4AAAggggAACCHhbgMDr7f6hdggggAACCCCAAAKWAgReS0CKI4AAAggggAACCHhbgMDr7f6hdggggAACCCCAAAKWAgReS0CKI4AAAggggAACCHhbgMDr7f6hdggggAACCCCAAAKWAgReS0CKI4AAAggggAACCHhbgMDr7f6hdggggAACCCCAAAKWAgReS0CKI4AAAggggAACCHhbgMDr7f6hdggggAACCCCAAAKWAgReS0CKI4AAAggggAACCHhbgMDr7f6hdggggAACCCCAAAKWAgReS0CKI4AAAggggAACCHhbgMDr7f6hdggggAACCCCAAAKWAgReS0CKI4AAAggggAACCHhbgMDr7f6hdggggAACCCCAAAKWAgReS0CKI4AAAggggAACCHhbgMDr7f6hdggggAACCCCAAAKWAgReS0CKI4AAAggggAACCHhb4P8BUsfGfZ7AtSIAAAAASUVORK5CYII=" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = om.criterion_plot(results[\"scipy_neldermead\"])\n", + "fig.show(renderer=\"png\")" + ] + }, + { + "cell_type": "markdown", + "id": "4a2050c4", + "metadata": {}, + "source": [ + "## Compare two optimizations in a criterion plot" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "d641708a", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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eOCBsLRj9erVkpmZKenp6WE5X+6TzJ07V1JSUqR58+bFcv5InnT69OmyZMkSefHFF4v1sr///ruo2znnnCN16tQp1mtxcgQQSFwBAm/ijj09R0DOPPNMo3DRRRfJxIkT/SJTpkyRJ554QjZu3BhxpQMHDkijRo1MaLz44oulQoUK0rFjx7C049FHH5WZM2f6+zVmzBiZOnWqfPrpp2E5f4sWLaR+/foyfvz4sJwvmid57rnnzC8dGnrDVfLy/u9//2vGeeDAgXLrrbeG61KcBwEEEMghQODlhkAggQU08NauXVs2bdokb7zxhvztb38zGtEMvP/+97/l7rvvls8++8yE3XAWnU08fPiwlC9f3px29OjRpt/hCrz79u0Tr9cr5cqVC2ezo3Ku4gi8eXlnZ2fL3r175YQTTpDSpUtHpa9cFAEE3C9A4HX/GNNDBPIV0MCrM2tvv/22JCcny5tvvikejyfPwJuRkSH//Oc/5dtvv5W6devK7bffXqSlATt37pSnn35ali5dKocOHZJWrVrJQw89JCeffLJZwvDggw/K9u3bJS0tzbRbj61Zs+ZxfdClGPqxu85CbtmyRWrUqCGXX365CcvTpk2TFStWyL333mv6ossz7r//fvNvva4Gr48//thca8+ePf5r6UzyDTfcIPv375dRo0bJwoULTVsuuOAC43TWWWeZduh/n3HGGeYjeHXZsWOHjBs3Tp599lk57bTT5I477jDHFdRX/XunnTqbre384YcfpEuXLtKjRw855ZRT8h037fvrr79uxkt/WdHx0H63bdtWNNTfdtttZlZcz+WU77//XgYMGCD9+vWT8847z9h89dVXZolHxYoVRWen9e+qVq1qquQOvOqn9W666Sb/OYcMGSInnXSS3HPPPebPCjpnft5XX3213HLLLdKnTx/TBi3armeeecb8IpKamiodOnSQ3r17S6lSpfz+lSpVEg3Ls2fPlpIlS5p2devWzX+MLovRcdZlLBqkGzZsaIz00wMKAggkngCBN/HGnB4j4BfQwPvYY49J9erVpWfPnuaj+JYtWx4XeN9//33p27evCSQaqnTNpX7UraGoXbt2QYvq7KquydUgqKFMiy6lqFy5svzrX/8S/Xh76NChsnjxYhk0aJD5+yuuuEI03OQuw4cPNwFc26vHrF+/XiZNmmSWK4wYMUJeeeUVU6VJ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" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = om.criterion_plot(results)\n", + "fig.show(renderer=\"png\")" + ] + }, + { + "cell_type": "markdown", + "id": "2b875eed", + "metadata": {}, + "source": [ + "## Use some advanced options of criterion_plot" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "72b6938c", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAArwAAAH0CAYAAADfWf7fAAAgAElEQVR4XuzdCZzO1eLH8e/zDMagsQ6KIUvWiIlkaxGhhJSl/nRLbhvtpHS7SLmh5WapVFTIklJTuXGJyl627PsylH0nWWae/+v83Gd6jDGemd+zP5/f6+V1r/E753fO+/xu99txfuc4XC6XS1wIIIAAAggggAACCESogIPAG6EjS7cQQAABBBBAAAEELAECLy8CAggggAACCCCAQEQLEHgjenjpHAIIIIAAAggggACBl3cAAQQQQAABBBBAIKIFCLwRPbx0DgEEEEAAAQQQQIDAyzuAAAIIIIAAAgggENECBN6IHl46hwACCCCAAAIIIEDg5R1AAAEEEEAAAQQQiGgBAm9EDy+dQwABBBBAAAEEECDw8g4ggAACCCCAAAIIRLQAgTeih5fOIYAAAggggAACCBB4eQcQQAABBBBAAAEEIlqAwBvRw0vnEEAAAQQQQAABBAi8vAMIIIAAAggggAACES1A4I3o4aVzCCCAAAIIIIAAAgRe3gEEEEAAAQQQQACBiBYg8Eb08NI5BBBAAAEEEEAAAQIv7wACCCCAAAIIIIBARAsQeCN6eOkcAggggAACCCCAAIGXdwABBBBAAAEEEEAgogUIvBE9vHQOAQQQQAABBBBAgMDLO4AAAggggAACCCAQ0QIE3ogeXjqHAAIIIIAAAgggQODlHUAAAQQQQAABBBCIaAECb0QPL51DAAEEEEAAAQQQIPDyDiCAAAIIIIAAAghEtACBN6KHl84hgAACCCCAAAIIEHh5BxBAAAEEEEAAAQQiWoDAG9HDS+cQQAABBBBAAAEECLy8AwgggAACCCCAAAIRLUDgjejhpXMIIIAAAggggAACBF7eAQQQQAABBBBAAIGIFiDwRvTw0jkEEEAAAQQQQAABAi/vAAIIIIAAAggggEBECxB4I3p46RwCCCCAAAIIIIAAgZd3AAEEEEAAAQQQQCCiBQi8ET28dA4BBBBAAAEEEECAwMs7gAACCCCAAAIIIBDRAgTeiB5eOocAAggggAACCCBA4OUdQAABBBBAAAEEEIhoAQJvRA8vnUMAAQQQQAABBBAg8PIOIIAAAggggAACCES0AIE3ooeXziGAAAIIIIAAAggQeHkHEEAAAQQQQAABBCJagMAb0cNL5xBAAAEEEEAAAQQIvLwDCCCAAAIIIIAAAhEtQOCN6OGlcwgggAACCCCAAAIEXt4BBBBAAAEEEEAAgYgWIPBG9PDSOQQQQAABBBBAAAECL+8AAggggAACCCCAQEQLEHgjenjpHAIIIIAAAggggACBl3cAAQQQQAABBBBAIKIFCLwRPbx0DgEEEEAAAQQQQIDAyzuAAAIIIIAAAgggENECBN6IHl46hwACCCCAAAIIIEDg5R1AAAEEEEAAAQQQiGgBAm9EDy+dQwABBBBAAAEEECDw8g4ggAACCCCAAAIIRLQAgTeih5fOIYAAAggggAACCBB4eQcQQAABBBBAAAEEIlqAwBvRw0vnEEAAAQQQQAABBAi8vAMIIIAAAggggAACES1A4I3o4aVzCCCAAAIIIIAAAgRe3gEEEEAAAQQQQACBiBYg8Eb08NI5BBBAAAEEEEAAAQIv7wACCCCAAAIIIIBARAsQeCN6eOkcAggggAACCCCAAIGXdwABBBBAAAEEEEAgogUIvBE9vHQOAQQQQAABBBBAgMDLO4AAAggggAACCCAQ0QIE3ogeXjqHAAIIIIAAAgggQODlHUAAAQQQQAABBBCIaAECb0QPL51DAAEEEEAAAQQQIPDyDiCAAAIIIIAAAghEtACBN6KHl84hgAACCCCAAAIIEHh5BxBAAAEEEEAAAQQiWoDAG9HDS+cQQAABBBBAAAEECLy8AwgggAACCCCAAAIRLUDgjejhpXMIIIAAAggggAACBF7eAQQQQAABBBBAAIGIFiDwRvTw0jkEEEAAAQQQQAABAi/vAAIIIIAAAggggEBECxB4I3p46RwCCCCAAAIIIIAAgZd3AAEEEEAAAQQQQCCiBQi8ET28dA4BBBBAAAEEEECAwMs7gAACCCCAAAIIIBDRAgTeiB5eOocAAggggAACCCBA4OUdQAABBBBAAAEEEIhoAQJvRA8vnUMAAQQQQAABBBAg8PIOIIAAAggggAACCES0AIE3ooeXziGAAAIIIIAAAggQeHkHEEAAAQQQQAABBCJagMAb0cNL5xBAAAEEEEAAAQQIvLwDCCCAAAIIIIAAAhEtQOCN6OGlcwgggAACCCCAAAIEXt4BBBBAAAEEEEAAgYgWIPBG9PDSOQQQQAABBBBAAAECL+8AAggggAACCCCAQEQLEHgjenjpHAIIIIAAAggggACB18Y7cNVVV2njxo02aqAoAggggAACCCCAgL8FCLw2hAm8NvAoigACCCCAAAIIBEiAwGsDmsBrA4+iCCCAAAIIIIBAgAQIvDagCbw28CiKAAIIIIAAAggESIDAawOawGsDj6IIIIAAAggggECABAi8NqAJvDbwKIoAAggggAACCARIgMBrA5rAawOPoggggAACCCCAQIAECLw2oAm8NvAoigACCCCAAAIIBEiAwGsDmsBrA4+iCCCAAAIIIIBAgAQIvDagCbw28CiKAAIIIIAAAggESCBqAu/Zs2e1f/9+paWlqUSJEoqJibmAeN++fSpQoIDi4uK84ifwesXETQgggAACCCCAQFAFoiLwjh8/Xn379k2HLlmypN555x3VqFHD+tn27dvVrVs3bdu2zfp9+/bt1b9/f+XOnTvLwSHwBvXd5eEIIIAAAggggIBXAlEReJOTk1WoUCHVrVtXZqb3qaee0pkzZzR27FgLqWvXrtbM7qBBg7Rr1y61a9fOCrxt2rQh8Hr1GnETAggggAACCCAQugJREXgz8pvAa5Y2DB06VEeOHFGdOnU0adIkJSUlWbeasGuC73vvvUfgDd13l5YhgAACCCCAAAJeCURV4P3qq680c+ZMrV+/3gq7VatW1aZNm9SyZUvNmzdPxYsXt9A+/vhjffnllzIzw1ldLGnw6h3jJgQQQAABBBBAIKgCURV4X3/9dS1ZskR79uzRv/71L9WrV09Lly5Vx44dtXjxYhUsWNAajIkTJ2rEiBGaM2dO+uC4lz94jtbLL7+sdY/ekPMBjI1TTPfhOS9PSQQQQAABBBBAAIFLCkRV4HVrmA/WPvnkEy1atCh9hnf+/PlKSEi46AzvmDFjLsAcMGCAvcArydm6hxwVa19yoLgBAQQQQAABBBBAIGcCURl4p02bpscff1xr167ViRMnLljD269fP+3evdurNbxNRvfX0IYdFOvMla0RSFuQLNeCr+Wo1kDOFg9mqyw3I4AAAggggAACCHgvEBWBd9iwYWrcuLGqVKli7cX79NNPK2/evOm7NNx///2Kj4/P0S4NJvC+Uf8uFcgV6726uXNvilLH9ZdY1pA9N+5GAAEEEEAAAQSyKRAVgbd3796aMmVKOo3ZjcGs501MTLR+tmXLFmsf3h07dli/N9uSmeUKefLkyZLTfLRmAu+geneqUB7vDqvwrDD1g+ekYwcU07mvVLxMNoeO2xFAAAEEEEAAAQS8EYiKwGsgTp8+bX2sZvbbLVy4cKY2ZhmD+XPzy5vLHXhfqdtaCXm9K+NZb9rsCXItmylH7aZy3nyPN4/kHgQQQAABBBBAAIFsCkRN4M2mi1e3uwNv32tv1xX5zu3wkK3Lvawhvqhiug3OVlFuRgABBBBAAAEEEPBOgMDrnVOmd7kDb5/aLVS2QJEc1cSyhhyxUQgBBBBAAAEEEPBagMDrNdWFN7oDb69rmqli/LktzbJ7pU0bJdea+XLUby1n/ayPMs5u3dyPAAIIIIAAAgggIBF4bbwF7sD7dI0mqlKoZI5qcm1aprSvh0sJiYrp0i9HdVAIAQQQQAABBBBA4OICBF4bb4c78PaofqNqFCmV45pSh/eQTp9UTLdBUnyxHNdDQQQQQACByBQ4c+aMUlNTrS01/Xl99913uu6661S0aFH9/PPPKlKkiCpWrHjRR65evVrr1q2zyrh3PspO+w4fPqx58+bp9ttvz04x7kUg2wIE3myT/VXAHXgfrtpYScXObXGWkysteZhcm5fL2byrHNUb5qQKyiCAAAIIRLDA22+/rRkzZujbb7/1ay/N/6+NHz9edevW1d///nfrYKaHH34402f27NlTc+bMse698847dcstt2S7bb/++qvuvvtubdiwQQ6HI9vlKYCAtwIEXm+lMrnPHXi7Vm6gesWvzHFNrqUzlPbDRE5dy7EgBRFAAIHIFjDbah47dizL2VZfCHgbeM0ppbVq1bICeOXKlXP8aAJvjukomE0BAm82wTxvdwfeLlfVU6OSFXJeE6eu5dyOkggggEAYCowbN06ffPKJ9u3bp7Jly+rJJ59UkyZNdPLkSZnTQadNmyYTKuvVq6d//OMfWrRokRYvXqz+/ftr48aNMrOrzZs314QJE6wg/Mgjj1i/zH1vvvmmPvroI+XLl8+SmT17tvWs0aNHy+l0ZqmVMfDGxcXp6NGj1rIDc2jTkCFDVKZMGd1zzz1We6pVq6aYmBh9/vnn2rZtm15++WXr3iuvvFIlSpSw7jPLFVJSUvTqq69a7YuNjVXDhg312muvae3atdYMr+n/pEmTrL48+uijF51VDsOhpskhIkDgtTEQ7sDbqUId3XxFJRs1SWxPZouPwggggECWAt+mrAyKUKsyNS547tKlS9WxY0cNHTpUFSpUkPn92bNn1blzZ/Xp08daJvDUU09ZQXjy5Mm69957rXtmzZqlsWPHyj0rescdd6hNmzZauHChPvzwQ82cOdMKmddff7369u1rLTMwV5cuXVSzZk316tXrkgYZA++KFSusMGoObDJB2ixfGDhwoDWz+/TTT+v9999X/vz5dc0116hly5YqVaqUFbzN9fzzz+uhhx6ynt+1a1crGD/77LNWgP7ss8/Ur18/bd682Qq87r7Mnz/fCuamrzlZE3zJDnJD1AoQeG0MvTvw3lWutm4tXdVGTZJ7ezLnTZ3kSGpmqy4KI4AAAgicL/DwnPFBIRnZ+N4LnmtmQO+//36NGjVKDRo0UK5cuax7zOyuCab/+te/rBDoeZkZ24yB13Pda7NmzaxZUVPOzMIuWLBAU6ZMsQJlixYt9P3331szs5e6slrSYGadTZA2s7TuepctW2adTmpCtwm2ns8xs7u33Xab9XMT8BMSEvTSSy9Zodx9ZbakwfTFhOa77rrrUs3lzxHwWoDA6zXVhTe6A2/rsjV1e5mrbdQkuVbPU9r00XJUqCVnm8dt1UVhBBBAAIHzBUJphtccdW/+et98HGYuMzNqZl/NTgxmmcL06dNVvnz5bAXeJ554wtpRwcyabt++XU2bNlVycrL1yyw1GDlypFevRFaBd/369WrVqpXmzp2r48ePW0HaHXi/+uor69nLly9Pf45n4DUh2SzD2L17tzVza8K5CcGZBV7PvnjVaG5CwAsBAq8XSBe7xR14WyZWV9srr7FRk6Sj+5X6YW8pNk4x3Yfbq4vSCCCAAAIhL2C25DKBz8zIVqlSxZr9NLsijBgxQrfeemu2Am/jxo2tANmjRw+rnFlCYAKwWeZglk7ccMMNXnlkFXjdyxhWrVqlnTt3nhd4N23aZAV3s663YMGC1rM8A6/5vdlWbcuWLVagN7tOmP80a3Yz7tJg1jKb5RiPP87kj1eDxk1eCRB4vWLK/CZ34G1WqoruLp9ko6ZzRVPH9pP27ZCzfS85EqvYro8KEEAAAQRCT+DHH3+01rGaWVizrtWsdb3sssusD9JMaDUflv3zn/9UuXLl9M0336h27drWut6MSxpMAC1evLj1wdjgwYOte01wNpcJuubjLzObav77pT5WcytlDLylS5fWCy+8YM0amzbFx8dbs8UZlzS4XC5r7fDVV19tBVgTis36XlPGLGkw7evQoYO1Ltl8qGbWHpvZZzOrbe43SyFMX8zPzEd6ZjlGjRoXrn8OvdGkReEiQOC1MVLuwHvT5ZV0T8U6Nmo6VzRt9gS5ls3kmGHbklSAAAIIhK6A+TDrscces3ZhMJeZnR0wYID1wZfZzcAsbzAfqZnLBNaPP/7YCrsmFHp+tGZmcA8ePGjdZz4ka9++fXqnTZA0Oyi8+OKL1nphby/z/2tm5wcz02z24f3ll1/S22nqe/fdd3XFFVdYM7Vm+YV7SYOpf8mSJXrrrbdktlAzfTIh3dRhgq5Zk2vab66SJUtaH+iZZQ3mozizVtd8+Ob2MB/uPfDAA942mfsQ8EqAwOsVU+Y3uQNvwxIVdF+lejZqOlc0/Zjh0pUU06G37fqoAAEEEEAgNAXMjOiBAwesrcPc24d5ttSskTVrfU2ozXi5172amdIjR46oUKFC1kyx5+X+iMxziYH5KO7UqVMXBTEfn7k/oPO8yYRqU+7yyy/PEtPsNOEub5YqmNBrZoPN1mrm+vPPP632en605q7QBHSzvrdYsWIyW6FxIeBrAQKvDVF34L2u+JV6sHIDGzX9r+ipP5Q6Ios1S7FxcjZ/UI6Kte0/ixoQQAABBMJSwJvDGszsqQmWZl9c9/Xpp59ap7Vd7DIfnZn9c3N6mdlcs1TDPNd8pFa1alWv9v7N6fMoh0B2BAi82dHKcK878NYulqhHqja2UdNfRd3reLOqzFGhtpw3d5Lii/nkmVSCAAIIIBA+AmbG1RwmcbFtu8zHYWbXBLOm1iyTCNRlZpzN2l0zM222QDNbrmWceQ5UW3gOAhkFCLw23gl34K1R5Ar1qH6TjZq8K2odQTw/WTp98txuDt0GS7HnTtLhQgABBBBAAAEEEMhcgMBr481wB94qhUro6Rq32KgpG0XNsofPBp/bzaF5VzmqN8xGYW5FAAEEEEAAAQSiT4DAa2PM3YG3fHwx9b7m/D0TbVR7yaLWTO8PE+Wo1kDOFg9e8n5uQAABBBBAAAEEolmAwGtj9N2Bt0yBwnqxdksbNWWz6N4UpY7rL8UXPbesgQsBBBBAAAEEEEDgogIEXhsvhzvwXp4vXv2ubWWjpuwXTf3gOenYAcV07isVv/T56Nl/AiUQQAABBBBAAIHIECDw2hhHd+AtlreAXq3b2kZN2S+aNm2UXGvmy3lTJzmSmmW/AkoggAACCCCAAAJRIkDgtTHQ7sBbME+cBte700ZN2S/qWj1PadNHy1GhlpxtOG88+4KUQAABBMJHwBzMYLYby5s3b0g22hwoMXfuXN12221yOBwXtHHBggXW/rzly5cPyfZn1qi0tDR99913atSokQoWLBg27aahmQsQeG28Ge7Amy9XHr1V/24bNeWg6NH9Sv2w97ntyboPz0EFFEEAAQQQCBeBt99+2zo04ttvvw3JJpv9d++8806ZvXgzO63tnnvuscJwly5dQrL9mTXK7CdcvXp1JScnW8c0c4W3AIHXxvi5A28eZ4yGNexoo6acFXUfUuFs30uOxCo5q4RSCCCAAAIhL7Bnzx6Z43orVqwYkm0l8IbksNAoDwECr43XwR14TRUjG99ro6acFU2bPUGuZTPlqN9azvptclYJpRBAAAEEAi4wbtw4ffLJJ9q3b5/Kli2rJ598Uk2aNNHJkyc1bNgwTZs2TSdOnFC9evX0j3/8wzqqd/Hixerfv782btyonj17qnnz5powYYIVhB955BHrl7nvzTff1EcffaR8+c4dTGROZTPPGj16tJxOZ5Z9bd++vdUO8/zt27fr3nvv1eOPP664uDi5XC7reaZuc4Swubdz584qWbKkdcKa5wxvSkqKzFHFc+bMsY4rNv189tlnrRnerOoxfevdu7fV548//lgm6L/yyitWf1u1aqUxY8ZYJ7n16tVLsbGxeuedd2ROnrv//vv16KOPWn3Lqv6ff/5Zffv21a5du6x7TV/N791LFubNm2c9b9OmTapVq5aWL1/ODG/A/9fhnwcSeG24msDb7KMBSnWl6Z1GnRTjyPofJDYelWlR16ZlSvt6uJSQqJgu/XxdPfUhgAACESPgWvB1UPpiJiQyXkuXLlXHjh01dOhQVahQQeb3Z8+etcJjnz59rJD41FNPWUF48uTJVug098yaNUtjx47Vr7/+qrvvvlt33HGH2rRpo4ULF+rDDz/UzJkzrXWy5khhE+JMADWXCZk1a9a0QuKlLvP/a2YWuXv37lZgfuaZZ2SWU9x444365ptv9NJLL1mB0KzFHT58uAoVKqSBAweeF3jNM1q2bKkiRYpYITxPnjx6/vnn9dBDD1ltyaoed99MiDaB2qxZNqHf9NcEfONmQqixM8sMTMg1dk8//bSmT59utSur+leuXKkNGzZYZc2/XLz44otW6DU2JqTfcsstlpt5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" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = om.criterion_plot(\n", + " results,\n", + " # cut off after 180 evaluations\n", + " max_evaluations=180,\n", + " # show only the current best function value\n", + " monotone=True,\n", + ")\n", + "fig.show(renderer=\"png\")" + ] + }, + { + "cell_type": "markdown", + "id": "ef9e2e0b", + "metadata": {}, + "source": [ + "## Make a params plot" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "45e853a5", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = om.params_plot(results[\"scipy_neldermead\"])\n", + "fig.show(renderer=\"png\")" + ] + }, + { + "cell_type": "markdown", + "id": "61df05f0", + "metadata": {}, + "source": [ + "## Use advanced options of params plot" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "c09ded87", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAArwAAAH0CAYAAADfWf7fAAAgAElEQVR4XuydB3iUVfb/v/SaAEEllAA2SpCyAgKG6AIKCFKUskREiiuE7ArRdSWoCMgqAXEFdgXEv6AiBn/ASm8KKBCKBJcamtICBHRpIXSE/3Pu5A5vJjOZmbwzk+TN930eHwO59XNuwvc9c+45hW7fvn0bfEiABEiABEiABEiABEjAogQKUfBa1LLcFgmQAAmQAAmQAAmQgCJAwcuDQAIkQAIkQAIkQAIkYGkCFLyWNi83RwIkQAIkQAIkQAIkQMHLM0ACJEACJEACJEACJGBpAhS8ljYvN0cCJEACJEACJEACJEDByzNAAiRAAiRAAiRAAiRgaQIUvJY2LzdHAiRAAiRAAiRAAiRAwcszQAIkQAIkQAIkQAIkYGkCFLyWNi83RwIkQAIkQAIkQAIkQMHLM0ACJEACJEACJEACJGBpAhS8ljYvN0cCJEACJEACJEACJEDByzNAAiRAAiRAAiRAAiRgaQIUvJY2LzdHAiRAAiRAAiRAAiRAwcszQAIkQAIkQAIkQAIkYGkCFLyWNi83RwIkQAIkQAIkQAIkQMHLM0ACJEACJEACJEACJGBpAhS8ljYvN0cCJEACJEACJEACJEDByzNAAiRAAiRAAiRAAiRgaQIUvJY2LzdHAiRAAiRAAiRAAiRAwcszQAIkQAIkQAIkQAIkYGkCFLyWNi83RwIkQAIkQAIkQAIkQMHLM0ACJEACJEACJEACJGBpAhS8ljYvN0cCJEACJEACJEACJEDByzNAAiRAAiRAAiRAAiRgaQIUvJY2LzdHAiRAAiRAAiRAAiRAwcszQAIkQAIkQAIkQAIkYGkCFLyWNi83RwIkQAIkQAIkQAIkQMHLM0ACJEACJEACJEACJGBpAhS8ljYvN0cCJEACJEACJEACJEDByzNAAiRAAiRAAiRAAiRgaQIUvJY2LzdHAiRAAiRAAiRAAiRAwcszQAIkQAIkQAIkQAIkYGkCFLyWNi83RwIkQAIkQAIkQAIkQMHLM0ACJEACJEACJEACJGBpAhS8ljYvN0cCJEACJEACJEACJEDByzNAAiRAAiRAAiRAAiRgaQIUvJY2LzdHAiRAAiRAAiRAAiRAwcszQAIkQAIkQAIkQAIkYGkCFLyWNi83RwIkQAIkQAIkQAIkQMHLM0ACJEACJEACJEACJGBpAhS8ljYvN0cCJEACJEACJEACJEDByzNAAiRAAiRAAiRAAiRgaQIUvJY2LzdHAiRAAiRAAiRAAiRAwcszQAIkQAIkQAIkQAIkYGkCFLyWNi83RwIkQAIkQAIkQAIkQMHLM0ACJEACJEACJEACJGBpAhS8ljYvN0cCJEACJEACJEACJEDByzNAAiRAAiRAAiRAAiRgaQIUvJY2LzdHAiRAAiRAAiRAAiRAwcszQAIkQAIkQAIkQAIkYGkCFLyWNi83RwIkQAIkQAIkQAIkQMHLM0ACJEACJEACJEACJGBpAhS8ljYvN0cCJEACJEACJEACJEDByzNAAiRAAiRAAiRAAiRgaQIUvJY2LzdHAiRAAiRAAiRAAiRAwcszQAIkQAIkQAIkQAIkYGkCFLyWNi83RwIkQAIkQAIkQAIkQMHLM0ACJEACJEACJEACJGBpAhS8ljYvN0cCJEACJEACJEACJEDByzNAAiRAAiRAAiRAAiRgaQIUvJY2LzdHAiRAAiRAAiRAAiRAwcszQAIkQAIkQAIkQAIkYGkCFLyWNi83RwIkQAIkQAIkQAIkQMHLM0ACJEACJEACJEACJGBpAhS8ljYvN0cCJEACJEACJEACJEDByzNAAiRAAiRAAiRAAiRgaQIUvJY2LzdHAiRAAiRAAiRAAiRAwcszQAIkQAIkQAIkQAIkYGkCFLyWNi83RwIkQAIkQAIkQAIkQMHLM0ACJEACJEACJEACJGBpAhS8ljYvN0cCJEACJEACJEACJEDByzNAAiRAAiRAAiRAAiRgaQIUvJY2LzdHAiRAAiRAAiRAAiRAwcszQAIkQAIkQAIkQAIkYGkCFLyWNi83RwIkQAIkQAIkQAIkQMHLM0ACJEACJEACJEACJGBpAhS8ljYvN0cCJEACJEACJEACJEDByzNAAiRAAiRAAiRAAiRgaQIUvJY2LzdHAiRAAiRAAiRAAiRAwcszQAIkQAIkQAIkQAIkYGkCFLyWNi83RwIkQAIkQAIkQAIkQMHLM0ACJEACJEACJEACJGBpAhS8ljYvN0cCJEACJEACJEACJEDByzNAAiRAAiRAAiRAAiRgaQIUvJY2LzdHAiRAAiRAAiRAAiRAwcszQAIkQAIkQAIkQAIkYGkCFLyWNi83RwIkQAIkQAIkQAIkQMHLM0ACJEACJEACJEACJGBp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1TpyAZtzgb8YGSHgjY20mEQ0r9V+bRCZuHZct5ktwi0DvOqHeK5YsaKygrhpsErgfLp4h72PmzGD8TbHwrVBZCPqH2kBEuRTxnxwfV7uMTdceAwJkEB8E6Dgje/14exIgARIgARIgARIgAQ8EqDg9QiQ3UmABEiABEiABEiABOKbAAVvfK8PZ0cCJEACJEACJEACJOCRAAWvR4DsTgIkQAIkQAIkQAIkEN8EKHjje304OxIgARIgARIgARIgAY8EKHg9AmR3EiABEiABEiABEiCB+CZAwRvf68PZkQAJkAAJkAAJkAAJeCRAwesRILuTAAmQAAmQAAmQAAnENwEK3vheH86OBEiABEiABEiABEjAIwEKXo8A2Z0ESIAESIAESIAESCC+CVDwxvf6cHYkQAIkQAIkQAIkQAIeCVDwegTI7iRAAiRAAiRAAiRAAvFNgII3vteHsyMBEiABEiABEiABEvBIgILXI0B2JwESIAESIAESIAESiG8CFLzxvT6cHQmQAAmQAAmQAAmQgEcCFLweAbI7CZAACZAACZAACZBAfBOg4I3v9eHsSIAESIAESIAESIAEPBKg4PUIkN1JgARIgARIgARIgATimwAFb3yvD2dHAiRAAiRAAiRAAiTgkQAFr0eA7E4CJEACJEACJEACJBDfBCh443t9ODsSIAESIAESIAESIAGPBCh4PQJkdxIgARIgARIgARIggfgmQMEb3+vD2ZEACZAACZAACZAACXgkQMHrESC7kwAJkAAJkAAJkAAJxDcBCt74Xh/OjgRIgARIgARIgARIwCMBCl6PANmdBEiABEiABEiABEggvglQ8Mb3+nB2JEACJEACJEACJEACHglQ8HoEyO4kQAIkQAIkQAIkQALxTYCCN77Xh7MjARIgARIgARIgARLwSICC1yNAdicBEiABEiABEiABEohvAhS88b0+nB0JkAAJkAAJkAAJkIBHAhS8HgGyOwmQAAmQAAmQAAmQQHwT+H9E4z9bYa526AAAAABJRU5ErkJggg==" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = om.params_plot(\n", + " results[\"scipy_neldermead\"],\n", + " # cut off after 180 evaluations\n", + " max_evaluations=180,\n", + " # select only the last three parameters\n", + " selector=lambda x: x[2:],\n", + ")\n", + "fig.show(renderer=\"png\")" + ] + }, + { + "cell_type": "markdown", + "id": "7b663015", + "metadata": {}, + "source": [ + "## criterion_plot with multistart optimization" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "70099614", + "metadata": {}, + "outputs": [], + "source": [ + "def alpine(x):\n", + " return np.sum(np.abs(x * np.sin(x) + 0.1 * x))\n", + "\n", + "\n", + "res = om.minimize(\n", + " sphere,\n", + " params=np.arange(10),\n", + " soft_lower_bounds=np.full(10, -3),\n", + " soft_upper_bounds=np.full(10, 10),\n", + " algorithm=\"scipy_neldermead\",\n", + " multistart=True,\n", + " multistart_options={\"n_samples\": 1000, \"convergence.max_discoveries\": 10},\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "e21dcd65", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAArwAAAH0CAYAAADfWf7fAAAgAElEQVR4XuzdCXiV9Zn///skOdnICiSEIAmLGkAExKgoIG60g1ZxUH62jq1LHdurtYtejh3tzF+pM47Wpa0OFm2nP62OlV+lmlpFBWQHqREBWWWRgBAgYQlLErKd/3V/T57Dc05O1uckZ8n7uS5HyDnP9vo+dD58vZ/76/J4PB5hQwABBBBAAAEEEEAgRgVcBN4YHVluCwEEEEAAAQQQQMAIEHh5EBBAAAEEEEAAAQRiWoDAG9PDy80hgAACCCCAAAIIEHh5BhBAAAEEEEAAAQRiWoDAG9PDy80hgAACCCCAAAIIEHh5BhBAAAEEEEAAAQRiWoDAG9PDy80hgAACCCCAAAIIEHh5BhBAAAEEEEAAAQRiWoDAG9PDy80hgAACCCCAAAIIEHh5BhBAAAEEEEAAAQRiWoDAG9PDy80hgAACCCCAAAIIEHh5BhBAAAEEEEAAAQRiWoDAG9PDy80hgAACCCCAAAIIEHh5BhBAAAEEEEAAAQRiWoDAG9PDy80hgAACCCCAAAIIEHh5BhBAAAEEEEAAAQRiWoDAG9PDy80hgAACCCCAAAIIEHh5BhBAAAEEEEAAAQRiWoDAG9PDy80hgAACCCCAAAIIEHh5BhBAAAEEEEAAAQRiWoDAG9PDy80hgAACCCCAAAIIEHh5BhBAAAEEEEAAAQRiWoDAG9PDy80hgAACCCCAAAIIEHh5BhBAAAEEEEAAAQRiWoDAG9PDy80hgAACCCCAAAIIEHh5BhBAAAEEEEAAAQRiWoDAG9PDy80hgAACCCCAAAIIEHh5BhBAAAEEEEAAAQRiWoDAG9PDy80hgAACCCCAAAIIEHh5BhBAAAEEEEAAAQRiWoDAG9PDy80hgAACCCCAAAIIEHh5BhBAAAEEEEAAAQRiWoDAG9PDy80hgAACCCCAAAIIEHh5BhBAAAEEEEAAAQRiWoDAG9PDy80hgAACCCCAAAIIEHh5BhBAAAEEEEAAAQRiWoDAG9PDy80hgAACCCCAAAIIEHh5BhBAAAEEEEAAAQRiWoDAG9PDy80hgAACCCCAAAIIEHh5BhBAAAEEEEAAAQRiWoDAG9PDy80hgAACCCCAAAIIEHh5BhBAAAEEEEAAAQRiWoDAG9PDy80hgAACCCCAAAIIEHh5BhBAAAEEEEAAAQRiWoDAG9PDy80hgAACCCCAAAIIEHh5BhBAAAEEEEAAAQRiWoDAG9PDy80hgAACCCCAAAIIEHh5BhBAAAEEEEAAAQRiWoDAG9PDy80hgAACCCCAAAIIEHh5BhBAAAEEEEAAAQRiWoDAG9PDy80hgAACCCCAAAIIEHh5BhBAAAEEEEAAAQRiWoDAG9PDy80hgAACCCCAAAIIEHh5BhBAAAEEEEAAAQRiWoDAG9PDy80hgAACCCCAAAIIEHh5BhBAAAEEEEAAAQRiWoDAG9PDy80hgAACCCCAAAIIEHh5BhBAAAEEEEAAAQRiWoDAG9PDy80hgAACCCCAAAIIEHh5BhBAAAEEEEAAAQRiWoDAG9PDy80hgAACCCCAAAIIEHh5BhBAAAEEEEAAAQRiWoDAG9PDy80hgAACCCCAAAIIEHh5BhBAAAEEEEAAAQRiWoDAG9PDy80hgAACCCCAAAIIEHh5BhBAAAEEEEAAAQRiWoDAG9PDy80hgAACCCCAAAIIEHh5BhBAAAEEEEAAAQRiWoDAG9PDy80hgAACCCCAAAIIEHh5BhBAAAEEEEAAAQRiWoDAG9PDy80hgAACCCCAAAIIEHh5BhBAAAEEEEAAAQRiWoDAG9PDy80hgAACCCCAAAIIEHh5BhBAAAEEEEAAAQRiWoDAG9PDy80hgAACCCCAAAIIEHh5BhBAAAEEEEAAAQRiWoDAG9PDy80hgAACCCCAAAIIEHh5BhBAAAEEEEAAAQRiWoDAG9PDy80hgAACCCCAAAIIEHh5BhBAAAEEEEAAAQRiWoDAG9PDy80hgAACCCCAAAIIEHh5BhBAAAEEEEAAAQRiWoDAG9PDy80hgAACCCCAAAIIEHh5BhBAAAEEEEAAAQRiWoDAG9PDy80hgAACCCCAAAIIEHh5BhBAAAEEEEAAAQRiWoDAG9PDy80hgAACCCCAAAIIEHh5BhBAAAEEEEAAAQRiWoDAG9PDy80hgAACCCCAAAIIEHh5BhBAAAEEEEAAAQRiWoDAG9PDy80hgAACCCCAAAIIEHh5BhBAAAEEEEAAAQRiWoDAG9PDy80hgAACCCCAAAIIEHh5BhBAAAEEEEAAAQRiWoDAG9PDy80hgAACCCCAAAIIEHh5BhBAAAEEEEAAAQRiWoDAG9PDy80hgAACCCCAAAIIEHh5BhBAAAEEEEAAAQRiWoDA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l1CZzTcEKHhTGArraVScGr7ssssYpSEFjjgAhbiaJ5xwgn6BPfDAA/LKK69otAD48SbijBcyTg7feuutjNJgwx5xYRErF7sQsNacffbZ0cN95lQ7XBUQpQHcX3/99WiUBiwaSkpKbKM0kHtj2Ik4O81vcnb30sDiDPMXf2DNNTGlESEHll3OZ3ccnXLhdxthyDCnH330UXUPQ4IlHTF5neYz39dOhPl5SxOg4E1hBLCyRfxXRApAOvLII+WJJ56IGxA9hUdkRRGc9r3llluicXTx5fXggw+qADYWhEScES8SB9VMgoXs4osvzgp2Tp1E1BC4fViTOV0NP3SEH4JfLhIWbbD2mqgM2KpEqD2chkfCQUL495poGOS+h2oizk7zm5ydZnHk8zfeeEOFbmzCDhBC7nE+u+PolAu7OIjKEJvwXsYBQaf57PS9yPeG0wjw80wToOD1QBihhXC7Dy+cSB0irAlbtmzRCuLd+JWIc319vfqaIaKAEWSptya7SsK6jkgC8W5UwhcgrDzG0mOlQ+7u5oqb+U3O7lg65eJ8diLk/XM385nva++cWUNmCFDwZoYrayUBEiABEiABEiABEvAJAQpenwwEm0ECJEACJEACJEACJJAZAhS8meHKWkmABEiABEiABEiABHxCgILXJwPBZpAACZAACZAACZAACWSGAAVvZriyVhIgARIgARIgARIgAZ8QoOD1yUCwGSRAAiRAAiRAAiRAApkhQMGbGa6slQRIgARIgARIgARIwCcEKHh9MhBsBgmQAAmQAAmQAAmQQGYIUPBmhitrJQESIAESIAESIAES8AkBCl6fDASbQQIkQAIkQAIkQAIkkBkCFLyZ4cpaSYAESIAESIAESIAEfEKAgtcnA8FmkAAJkAAJkAAJkAAJZIYABW9muLJWEiABEiABEiABEiABnxCg4PXJQLAZJEACJEACJEACJEACmSFAwZsZrqyVBEiABEiABEiABEjAJwQoeH0yEGwGCbQEgffee0/q6+vl8MMPl65du0absGbNGvn222/l1FNPbYlmyeeffy6vvvqqfPTRR3LWWWfJjTfemJZ2LFq0SNauXSvDhg1LS32xlbz11ltSUlIiJ554Ykbqb85KX3zxRZk3b548/vjjGX1sRUWFgNuRRx4pffr0yeizWDkJkED2EqDgzd6xZ89JQHr37q0UfvCDH8gzzzwTJTJjxgy54447ZPny5c1Oqby8XI466igVjSeffLJ07NhRzj333LS043e/+53MmjUr2q9HH31UnnvuOfn444/TUv/gwYPlsMMOkyeffDIt9bVkJQ8++KAuOiB605XseH/33Xc6zrfeequMGTMmXY9iPSRAAiTQiAAFLycECWQxAQjegw8+WFasWCHPP/+8HHvssUqjJQXvP//5T7nmmmvkk08+UbGbzgRrYm1trbRv316rfeSRR7Tf6RK8O3fulGAwKMXFxelsdovUlQnBa8c7FApJWVmZFBYWSps2bVqkr3woCZBA6ydAwdv6x5g9JIG4BCB4YVl75ZVXpKCgQP76179KIBCwFbxz5syRP/3pT7Js2TI55JBD5Oc//3lKrgGlpaVy9913y/z586W6ulqGDBkiv/nNb6RTp07qwnDzzTfLxo0bZcCAAdpu5D3ooIOa9AGuGNh2hxVy5cqV0rNnT/nhD3+oYvmFF16QBQsWyHXXXad9gXvGDTfcoH/juRBec+fO1Wdt27Yt+ixYki+88ELZtWuXPPDAA/Kvf/1L2zJo0CDl1LdvX20Hfj7wwAN1Cx5cNm/eLFOmTJH7779funfvLldccYXmS9RXfG7aCWs22rlu3ToZOXKkjB07VvbZZ5+444a+T58+XccLixWMB/o9dOhQgai/7LLL1CqOukxatWqV3HLLLXLTTTfJMccco2wWL16sLh577bWXwDqNz/bdd18tEit4wQ/lLr744midkyZNkg4dOsi1116r/5eozni8zzvvPPnZz34mv/jFL7QNSGjXPffcowuR/fffX8455xy5+uqrJT8/P8p/7733Fojlv/3tb5KXl6ftuvTSS6N54BaDcYYbC4R0v379lBF2D5hIgASyjwAFb/aNOXtMAlECELy33Xab9OjRQ8aNG6db8aeddloTwfvaa6/JL3/5SxUkEFXwucRWN0TRT37yE9dEYV2FTy6EIEQZElwpOnfuLG+++aZge/uuu+6Sd999VyZMmKCfn3nmmQJxE5vuvfdeFeBoL/J8/fXX8uyzz6q7wh//+Ed56qmntMjAgQNVPF500UUqds02PYQinoV+mGdB0Pbv319GjBghO3bsUAEFMfiXv/xFRTXytmvXToX+0qVLtX48PycnR+vCIgBM8bNTXyHSTDshMi+44ALJzc2V++67TwUzxGe8hHKwTEPk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gARIgAQ8EqDg9QiQxUmABEiABEiABEiABPxNgILX3+PD1pEACZAACZAACZAACXgkQMHrESCLkwAJkAAJkAAJkAAJ+JsABa+/x4etIwESIAESIAESIAES8EiAgtcjQBYnARIgARIgARIgARLwNwEKXn+PD1tHAiRAAiRAAiRAAiTgkQAFr0eALE4CJEACJEACJEACJOBvAhS8/h4fto4ESIAESIAESIAESMAjAQpejwBZnARIgARIgARIgARIwN8EKHj9PT5sHQmQAAmQAAmQAAmQgEcCFLweAbI4CZAACZAACZAACZCAvwlQ8Pp7fNg6EiABEiABEiABEiABjwQoeD0CZHESIAESIAESIAESIAF/E6Dg9ff4sHUkQAIkQAIkQAIkQAIeCVDwegTI4iRAAiRAAiRAAiRAAv4mQMHr7/Fh60iABEiABEiABEiABDwSoOD1CJDFSYAESIAESIAESIAE/E2Agtff48PWkQAJkAAJkAAJkAAJeCRAwesRIIuTAAmQAAmQAAmQAAn4mwAFr7/Hh60jARIgARIgARIgARLwSICC1yNAFicBEiABEiABEiABEvA3AQpef48PW0cCJEACJEACJEACJOCRAAWvR4AsTgIkQAIkQAIkQAIk4G8CFLz+Hh+2jgRIgARIgARIgARIwCMBCl6PAFmcBEiABEiABEiABEjA3wQoeP09PmwdCZAACZAACZAACZCARwIUvB4BsjgJkAAJkAAJkAAJkIC/CVDw+nt82DoSIAESIAESIAESIAGPBCh4PQJkcRIgARIgARIgARIgAX8ToOD19/iwdSRAAiRAAiRAAiRAAh4JUPB6BMjiJEACJEACJEACJEAC/ibwfzadLvSdWq/gAAAAAElFTkSuQmCC" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = om.criterion_plot(res, max_evaluations=3000)\n", + "fig.show(renderer=\"png\")" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.14" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/docs/source/how_to/index.md b/docs/source/how_to/index.md new file mode 100644 index 000000000..f16634510 --- /dev/null +++ b/docs/source/how_to/index.md @@ -0,0 +1,28 @@ +(how-to)= + +# How-to Guides + +How-to Guides show how to achieve specific tasks. In many cases they show you how to use +advanced options. For a more basic introduction, check out the [tutorials](tutorials). + +```{toctree} +--- +maxdepth: 1 +--- +how_to_criterion_function +how_to_start_parameters +how_to_algorithm_selection +how_to_bounds +how_to_constraints +how_to_multistart +how_to_visualize_histories +how_to_specify_algorithm_and_algo_options +how_to_scaling +how_to_logging +how_to_errors_during_optimization +how_to_slice_plot +how_to_batch_evaluators +how_to_benchmarking +how_to_first_derivative +how_to_second_derivative +``` diff --git a/docs/source/how_to_guides/differentiation/index.md b/docs/source/how_to_guides/differentiation/index.md deleted file mode 100644 index c97a1a5bf..000000000 --- a/docs/source/how_to_guides/differentiation/index.md +++ /dev/null @@ -1,10 +0,0 @@ -# Differentiation - -```{toctree} ---- -maxdepth: 1 ---- -how_to_calculate_first_derivatives -how_to_calculate_second_derivatives -how_to_plot_derivatives -``` diff --git a/docs/source/how_to_guides/index.md b/docs/source/how_to_guides/index.md deleted file mode 100644 index 4d9f4d081..000000000 --- a/docs/source/how_to_guides/index.md +++ /dev/null @@ -1,118 +0,0 @@ -# How-to Guides - -How-to Guides show how to achieve specific tasks that potentially require to use -advanced options of estimagic functions. If you are completely new to estimagic and want -an introduction to its basic functionality, check out our tutorials. - -`````{grid} 1 2 2 2 ---- -gutter: 3 ---- -````{grid-item-card} -:text-align: center -:img-top: ../_static/images/optimization.svg -:class-img-top: index-card-image -:shadow: md - -```{button-link} optimization/index.html ---- -click-parent: -ref-type: ref -class: stretched-link index-card-link sd-text-primary ---- -Optimization -``` - -Learn how to use constraints, parallelize function evaluations, and configure every aspect of your optimization. - -```` - -````{grid-item-card} -:text-align: center -:img-top: ../_static/images/differentiation.svg -:class-img-top: index-card-image -:shadow: md - -```{button-link} differentiation/index.html ---- -click-parent: -ref-type: ref -class: stretched-link index-card-link sd-text-primary ---- -Differentiation -``` - -Learn how to influence step sizes, parallelize function evaluations, and use advanced options for numerical differentiation. - -```` - -````{grid-item-card} -:text-align: center -:img-top: ../_static/images/bullseye.svg -:class-img-top: index-card-image -:shadow: md - -```{button-link} inference/index.html ---- -click-parent: -ref-type: ref -class: stretched-link index-card-link sd-text-primary ---- -Estimation -``` - -Learn how to calculate different types of standard errors and do sensitivity analysis. - -```` - -````{grid-item-card} -:text-align: center -:img-top: ../_static/images/miscellaneous.svg -:class-img-top: index-card-image -:shadow: md - -```{button-link} miscellaneous/index.html ---- -click-parent: -ref-type: ref -class: stretched-link index-card-link sd-text-primary ---- -Miscellaneous -``` - -Learn how to create publication quality LaTeX tables, use custom batch evaluators, and check out the FAQ. - -```` - -````{grid-item-card} -:text-align: center -:columns: 12 -:img-top: ../_static/images/video.svg -:class-img-top: index-card-image -:shadow: md - -```{button-link} ../videos.html ---- -click-parent: -ref-type: ref -class: stretched-link index-card-link sd-text-primary ---- -Videos -``` - -Collection of tutorials, talks, and screencasts on estimagic. - -```` - -````` - -```{toctree} ---- -hidden: true -maxdepth: 1 ---- -optimization/index -differentiation/index -inference/index -miscellaneous/index -``` diff --git a/docs/source/how_to_guides/inference/how_to_calculate_likelihood_standard_errors.ipynb b/docs/source/how_to_guides/inference/how_to_calculate_likelihood_standard_errors.ipynb deleted file mode 100644 index 12e507700..000000000 --- a/docs/source/how_to_guides/inference/how_to_calculate_likelihood_standard_errors.ipynb +++ /dev/null @@ -1,37 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# How to calculate standard errors for likelihood models" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "(to be written.)\n", - "\n", - "In case of an urgent request for this guide, feel free to open an issue \n", - "[here](https://github.com/OpenSourceEconomics/estimagic/issues)." - ] - } - ], - "metadata": { - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.13" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/docs/source/how_to_guides/inference/how_to_calculate_msm_standard_errors.ipynb b/docs/source/how_to_guides/inference/how_to_calculate_msm_standard_errors.ipynb deleted file mode 100644 index 47e3d311c..000000000 --- a/docs/source/how_to_guides/inference/how_to_calculate_msm_standard_errors.ipynb +++ /dev/null @@ -1,37 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# How to calculate standard errors for method of simulated moments" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "(to be written.)\n", - "\n", - "In case of an urgent request for this guide, feel free to open an issue \n", - "[here](https://github.com/OpenSourceEconomics/estimagic/issues)." - ] - } - ], - "metadata": { - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.13" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/docs/source/how_to_guides/inference/index.md b/docs/source/how_to_guides/inference/index.md deleted file mode 100644 index 8f3231ca4..000000000 --- a/docs/source/how_to_guides/inference/index.md +++ /dev/null @@ -1,10 +0,0 @@ -# Inference - -```{toctree} ---- -maxdepth: 1 ---- -how_to_calculate_likelihood_standard_errors -how_to_calculate_msm_standard_errors -how_to_do_bootstrap_inference -``` diff --git a/docs/source/how_to_guides/miscellaneous/faq.md b/docs/source/how_to_guides/miscellaneous/faq.md deleted file mode 100644 index 48cdffbb5..000000000 --- a/docs/source/how_to_guides/miscellaneous/faq.md +++ /dev/null @@ -1,33 +0,0 @@ -# Frequently Asked Questions - -**Question**: I used a covariance constraint but my covariance matrix is not positive -definite. - -**Answer**: `covariance` and `sdcorr` constraints can only ensure positive -semi-definiteness and there are valid covariance matrices that are not positive -definite. If your covariance matrix is very ill conditioned, e.g. if some variances are -very large and some are very small, the constraints might even fail to ensure -semi-definiteness, due to numerical error. - -There are several ways to deal with this: - -If you only need positive definiteness to do a cholesky decomposition, you can use -{func}`~estimagic.utilities.robust_cholesky`, which can also decompose semi-definite and -slightly indefinite matrices. - -If you really need positive definiteness for some other reason, you can construct a -penalty. {func}`~estimagic.utilities.robust_cholesky` can optionally return all -information you need to construct such a penalty term. - -Finally, if the real problem is just that your covariance matrix is ill conditioned, you -can rescale some variables to make all variances approximately the same order of -magnitude. - -______________________________________________________________________ - -**Question**: I want to re-run the Azure Pipelines test suite because some random error -occurred, e.g., a HTPT timeout error. - -**Answer**: Starting from the Github page of the PR, select the tab called "Checks". In -the upper right corner you find a button to re-run all checks. In a column on the -left-hand-side you can re-run tests for individual platforms. diff --git a/docs/source/how_to_guides/miscellaneous/how_to_visualize_and_interpret_sensitivity_measures.ipynb b/docs/source/how_to_guides/miscellaneous/how_to_visualize_and_interpret_sensitivity_measures.ipynb deleted file mode 100644 index cc23f63fe..000000000 --- a/docs/source/how_to_guides/miscellaneous/how_to_visualize_and_interpret_sensitivity_measures.ipynb +++ /dev/null @@ -1,39 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "hollow-buffalo", - "metadata": {}, - "source": [ - "# How to visualize and interpret sensitivity measures" - ] - }, - { - "cell_type": "markdown", - "id": "501fad6b", - "metadata": {}, - "source": [ - "(to be written.)\n", - "\n", - "In case of an urgent request for this guide, feel free to open an issue \n", - "[here](https://github.com/OpenSourceEconomics/estimagic/issues)." - ] - } - ], - "metadata": { - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.13" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/docs/source/how_to_guides/miscellaneous/index.md b/docs/source/how_to_guides/miscellaneous/index.md deleted file mode 100644 index fe04c5b6a..000000000 --- a/docs/source/how_to_guides/miscellaneous/index.md +++ /dev/null @@ -1,13 +0,0 @@ -# Miscellaneous Topics - -```{toctree} - ---- -maxdepth: 1 ---- -how_to_generate_publication_quality_tables -how_to_use_batch_evaluators -how_to_visualize_and_interpret_sensitivity_measures - -faq -``` diff --git a/docs/source/how_to_guides/optimization/how_to_benchmark_optimization_algorithms.ipynb b/docs/source/how_to_guides/optimization/how_to_benchmark_optimization_algorithms.ipynb deleted file mode 100644 index 4f015dfed..000000000 --- a/docs/source/how_to_guides/optimization/how_to_benchmark_optimization_algorithms.ipynb +++ /dev/null @@ -1,687 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "6be356db", - "metadata": {}, - "source": [ - "# How to Benchmark Optimization Algorithms\n", - "\n", - "Benchmarking optimization algorithms is an important step when developing a new algorithm or when searching for an algorithm that is good at solving a particular problem. \n", - "\n", - "In general, benchmarking constists of the following steps:\n", - "\n", - "1. Define the test problems (or get pre-implemented ones)\n", - "2. Define the optimization algorithms and the tuning parameters you want to try\n", - "3. Run the benchmark\n", - "4. Plot the results\n", - "\n", - "Estimagic helps you with all of these steps!" - ] - }, - { - "cell_type": "markdown", - "id": "8671802f", - "metadata": {}, - "source": [ - "## 1. Get Test Problems\n", - "\n", - "Estimagic includes the problems of [Moré and Wild (2009)](https://doi.org/10.1137/080724083) as well as [Cartis and Roberts](https://arxiv.org/abs/1710.11005).\n", - "\n", - "Each problem consist of the `inputs` (the criterion function and the start parameters) and the `solution` (the optimal parameters and criterion value) and optionally provides more information.\n", - "\n", - "Below we load a subset of the Moré and Wild problems and look at one particular Rosenbrock problem that has difficult start parameters." - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "83c2f8e4", - "metadata": {}, - "outputs": [], - "source": [ - "import estimagic as em" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "c3640855", - "metadata": {}, - "outputs": [], - "source": [ - "problems = em.get_benchmark_problems(\"example\")" - ] - }, - { - "cell_type": "markdown", - "id": "c628b987", - "metadata": {}, - "source": [ - "## 2. Specify the Optimizers\n", - "\n", - "To select optimizers you want to benchmark on the set of problems, you can simply specify them as a list. Advanced examples - that do not only compare algorithms but also vary the `algo_options` - can be found below. " - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "2340cd3a", - "metadata": {}, - "outputs": [], - "source": [ - "optimizers = [\n", - " \"nag_dfols\",\n", - " \"scipy_neldermead\",\n", - " \"scipy_truncated_newton\",\n", - "]" - ] - }, - { - "cell_type": "markdown", - "id": "9703f954", - "metadata": {}, - "source": [ - "## 3. Run the Benchmark\n", - "\n", - "Once you have your problems and your optimizers set up, you can simply use `run_benchmark`. The results are a dictionary with one entry for each (problem, algorithm) combination. Each entry not only saves the solution but also the history of the algorithm's criterion and parameter history. " - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "f0ef15da", - "metadata": {}, - "outputs": [], - "source": [ - "results = em.run_benchmark(\n", - " problems,\n", - " optimizers,\n", - ")" - ] - }, - { - "cell_type": "markdown", - "id": "61c365ab", - "metadata": {}, - "source": [ - "## 4a. Profile plots\n", - "\n", - "**Profile Plots** compare optimizers over a whole problem set. \n", - "\n", - "The literature distinguishes **data profiles** and **performance profiles**. Data profiles use a normalized runtime measure whereas performance profiles use an absolute one. The profile plot does not normalize runtime by default. To do this, simply set `normalize_runtime` to True. For background information, check [Moré and Wild (2009)](https://doi.org/10.1137/080724083). " - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "07918672", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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WBJ18L59+3rKvXbt2n7JFi1a2NixY61evXr+86xZs2zSpEku6O3atTMcgGD8W82aNa179+7/xHT/tddYsmSJN7bBkbp4VNBXr15dKlcEnXo7jXDByKIMHjzYmjRp8q/loYmLgAiUTkCCrrtjswksWrTI+vTp4//f87322it1fo8ePaxjx46puviYMWMM0SFV3LRpU5s9e7ZVr17dj+/WrZsfS+OWrHQCo0eP9ka2ypUr+0Hr1q2z9evXW/369f1tgtK41qlTx7lPnz49dV6zZs18Dyh1yERABJJHQIKevD2t0BURMZL6HTFihDVo0KDEtWbMmGFTpkxJdbl36NDBhg4d6qLTv39/j8h79+7tXe6k4GnQqlatWoXON2mDRyN01lYa16pVq1qrVq28WZEmRbrc4T1hwoSkIdF6REAE/ktAgq5bYbMIEJkTGYaIkZOrVKniIo0NGzbMRb1SpUrekR2a3tauXesp+nnz5nmUzutUoRt+syZQ5AenC3pZXMmkwHzVqlWeSRk+fLjVrVu3yAlq+SKQXAIS9OTurVYmAiIgAiJQRAQk6EW02VqqCIiACIhAcglI0JO7t1qZCIiACIhAERGQoBfRZmupIiACIiACySUgQU/u3mplIiACIiACRURAgl5Em62lioAIiIAIJJeABD25e6uViYAIiIAIFBEBCXoRbbaWKgIiIAIikFwCEvTk7q1WJgIiIAIiUEQEJOhFtNlaqgiIgAiIQHIJSNCTu7damQiIgAiIQBERkKAX0WZrqSIgAiIgAsklIEFP7t5qZSIgAiIgAkVEQIJeRJutpYqACIiACCSXgAQ9uXurlYmACIiACBQRAQl6EW22lioCIiACIpBcAhL05O6tViYCIiACIlBEBCToRbTZWqoIiIAIiEByCUjQ/6V7O3ToUPv999/tpptuKvgK5s+fb9ddd50tW7bMTjvtNBsyZEjB55TECfz222924IEH2ltvvWU777xzEpeoNYmACJSDgAQ9Jry+ffvaq6++ai+88ILtsMMOJUZp3ry5Pfzww7bvvvvGHD37af9Pgn7WWWdZixYt7KKLLnIno0aNGiUWAKtp06aV+Ldtt93WcAQq2rjur7/+auedd17qUueff7516dLFTjjhhAq5/JQpU+zaa6/dZOypU6da48aNY1+zIgSdebJve++9t88LZ+HOO++0p59+OvY8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" - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "fig = em.profile_plot(\n", - " problems=problems,\n", - " results=results,\n", - ")\n", - "\n", - "fig.show(renderer=\"png\")" - ] - }, - { - "cell_type": "markdown", - "id": "4ada4410", - "metadata": {}, - "source": [ - "The x axis shows runtime per problem. The y axis shows the share of problems each algorithm solved within that runtime. Thus, higher and further to the left values are desirable. Higher means more problems were solved and further to the left means, the algorithm found the solutions earlier. \n", - "\n", - "You can choose:\n", - "\n", - "- whether to use `n_evaluations` or `walltime` as **`runtime_measure`**\n", - "- whether to normalize runtime such that the runtime of each problem is shown as a multiple of the fastest algorithm on that problem\n", - "- how to determine when an evaluation is close enough to the optimum to be counted as converged. Convergence is always based on some measure of distance between the true solution and the solution found by an optimizer. Whether distiance is measured in parameter space, function space, or a combination of both can be specified. \n", - "\n", - "Below, we consider a problem to be solved if the distance between the parameters found by the optimizer and the true solution parameters are at most 0.1% of the distance between the start parameters and true solution parameters. " - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "efc15318", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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iIAIiIAIpExAgp7yAWh6ERABERABEUiCgAQ9CYoaQwREQAREQARSJiBBT/kANL0IiIAIiIAIJEFAgp4ERY0hAiIgAiIgAikTkKCnfACaXgREQAREQASSICBBT4KixhABERABERCBlAlI0FM+AE0vAiIgAiIgAkkQkKAnQVFjiIAIiIAIiEDKBCToKR+AphcBERABERCBJAhI0JOgqDFEQAREQAREIGUCEvSUD0DTi4AIiIAIiEASBCToSVDUGCIgAiIgAiKQMgEJesoHEHf6IUOG2O+//2633HJL3CESu+6dd96x/v372xdffGFt27a1wYMHJza2BvqPwG+//WYHH3ywLVq0yHbddVehEQEREIFSBCToMW+Ivn372osvvmjz5s2zatWqlRrlyCOPtHvvvdcaNGgQc/TCl5UnQT/zzDOtefPmdv7557uTsfPOO5faAKxmz55VsyW/AAAKiklEQVRd6v9tt912hiOwuY15f/31V+vWrVtmqnPOOcfOPfdcO+mkkzbL9I899phde+21G409a9YsO+igg2LPuTkEnXVybvXr1/d14SyMGDHCHn300djr1IUiIALpEJCgx+SOSD333HPWokULGzp0aCqC/ueff9pNN90UcwfJXUbUOGPGDDvggANyDgqrHXfc0S655JLM51tsscVGjlByK/pvpCuuuMIOO+ywUoKOWDVp0sT22WefzTGlIehTp051py5qO+20k1WqVCn2nEkL+rp169ypmTx5ckbQv/32W5s/f76dddZZsdepC0VABNIhIEGPyR2RqlOnjk2aNMnGjRvnAhEsGqF/9dVXduKJJ9oHH3xQ6mFer149dwj23XdfI9quUqWKp6yXLl1qCHXnzp3t+OOPt0GDBtmqVats2223teuvv96aNm3q04QIne8+++yzttVWW1n79u3tuuuuy8zDw/mGG26wV155xapXr+5j9urVyxBTxIHxiRqvuuoqe//99z0qyxZlHvq33367zZkzx9auXWuNGjXydfC9jz/+2Od7++23XbBZA2vJFaGTIr7mmms2og3H3Xff3fr06ZP5bPTo0c7ijjvu8HUeddRR/udRo0b537fffnuf99hjj81c89BDD9nEiRPtm2++8fGGDRtmTzzxhIvr1ltvbZUrV7bTTz/dr4NTjx49rE2bNn79m2++6TxhULVqVevYsaNdfvnltuWWW/rnfJ+oHlacJ/y6du3qY+Qy5sTByRXltmrVys477zzr0KFD5lK+z9qffvppe++993yv/Pz777/tuOOO87WR0cgW9ELsmCDfeDCBB/dlODtKJTgcOKjPPPNMZn0zZ860u+++29nWrFnTcJLYB4b4T5s2zQ499FDPwnC/4CjdeuutGYfpjTfe8D18+OGHfnY4WHfeeaefi0wERCA5AhL0mCx5mCJuCC2ijuBts802PlocQX/ggQc8quNhh1C2a9fOatWqZffdd58L1OOPP2633Xabvfzyyy4oPCC55uabb7bWrVv7w/bSSy810t8XXHCBrwPRQBAQkO+//94uvvhi/zPCHsSBBzEp1wMPPNB22223jR6yw4cPt9dee834iSgjPjzcn3/+eXdCsIYNG/rDPKRts5HCalMEnQwAoo7jxJyITb9+/dxRQahfeOEFdxYQokMOOcSdAZwtHAv2hkMVTblHBX316tVeLmCN1P9XrlzpDg5/7tmzZ0bQcao4n9q1a7uo8/n9999vjRs33ugOKkvQ77nnHlu8eLFfG4w1Hn744X4+K1as8PVzLjhrOA2cLz/jCHpZ4+U6OwQ6KugLFixwNiNHjvS9LlmyxPkQ1XMufB9OrI8zwAnCCf3ss8/8OxhOKKn9kpIS+/HHH91xatasWczfPF0mAiKQj4AEPea9wUNu//33d/FEJBHikFKOI+g85BCMYESPp5xySmZMHu7UXxGDGjVquKATzUejwLlz53oUS5TMZ6wR4Q324IMP2lNPPeURVRAHojIi0lxGtIVATp8+vZRwkY5t2bKl16GLFXTWFhwerkFEcVAKRZlhnTgviHowWOBE1K1b184++2w75phjPPuQbYUEfcyYMfbWW29lxIfrX331VecOQwwH4IQTTrDevXtnhufcESUi9WxD0HE4iEaD0WeB+H399dee5sYZ2WWXXeznn3/2feGkEP1mG07M559/7g5VHEEva7xcZ5ct6DhCZEIuuuiizFBE10TbrI3v40iS5cC5xcjY8H0cQeyII45wx5N7RiYCIrD5CEjQY7JFiIhIiUyI6k477TQXV9KNcQSdBztp4mBE2ggnadFg2Wl6okvS4cE++ugjO/XUU23ZsmVGmnTgwIGlIu4NGzbYnnvu6an+IA4Ifr5aMlEWPQKMFxVj0qk0vxGJ5RKFbKSw4mEfFQXEDkErVtBpQNxrr70yQxPRkqYmSiQChF00BR++WEjQr7zyStt777096gxGEx2ODKJL1iKk3KNngYjhVIQoPrpnBH3KlCkueMEoR+yxxx7+1y5duniEz/k+8sgjnvV4+OGH/bN3333XMz6w57w4Y/aKiMYR9LLGK0bQYYszgcMUjHuGKB7HEUFHrDmf6H3I7wP3DfbSSy959E6TKKULnCOyTDIREIFkCUjQY/KMCjpDEF3zoCOVSsRFupEHWK4a+l9//eUp7mgNPfsVNASd6AiBzifopIGptwZbvny5OwDUTakp42BQ981lxTRYEYWRKcgWdKL6P/74438J+v9JuRO5U/8PNfRcr2pFBR0HCscmKjrFCjqROOn5QoIerbkzdiFBz1dD51o+I2NBxqR79+528skne6T/3XffeVqavgcEHyfgrrvusk8++aRoQY+yKzReMYJO5omsT5Qt9y0OVBD07Jo7jmVU0JmHDBNlKUoOlC34yf5kIiACyRGQoMdkmS3oRFNEXkRdCNH48eNd0H/66SdvmCOtG2rO1MhpKtpUQX/99ddLvQ5GExhRIa/S8RkitHDhQm/0yrZiBJ2HMMKJs4KoBmOPiBClhlyikD1XWTV0uvRpjiJFHeyyyy7zjECxgg53or5c0TIMECOEM1i0ho5gcjbRjnRS7tSzSSMTSWY30W2qoJONYU0IHL0SRLBkK7gf+HcFqFsHo1mQ5rhcEXohdoXGYw6yDGQJQjNkdsqdcgaZjyhb1kIzHb0U2d9nzFyCHvaDI0hPA78fZEFkIiACyRGQoMdkmS3oDEOaFOH4559/PAIJ76HTmIZAIDxE51dffbV3NG+qoBPhIYSIArVZok0ivSC01MYRcxqSEIxPP/3UIyXEpBhBZ0/U6ulSJu1K+pmoH6eBbASvYW2qoDMeqXN+0m1N3Zq0LJFqsYJOXwBRLd+ncYsSCM4TNekbb7zR/06tnHOhWzwq0GQCcK44EziGprho/0IcQafmT+o8atTRw2tr1Pu5F3BmJkyY4F9DJM844wyP4OnPoK5OOvvoo4/OKeiF2BUajznZJ/umHLJ+/XovM0Qjbs6Zeyw0xXEv4GQg5jh7xQg65QT6DbgHKQFwfz755JOZEkTMX0FdJgIikEVAgh7zlsgl6AyFkJP+JVoOgk5nMJHXL7/84l3ZF154oY0dO9brrOG1tTgpd64luuTBT/oSMUC8Qyrzhx9+8H+1jYiPBjcEjsYuxLJYQechT0SGeKxZs8YjugEDBnjJINimdLkzPqJFpzrrRsjo8CbKK1bQWQelDv4jzUytmmuJABFoXkGjHNGpUyd/5S5boBEZOPETJwWO1NYDxziCXugflkHQeP2Lf8SF9HqwcF/geCGCnBUOS64IvRA7xixrPD4ng8N5UqsnjY7Dk51CD5mfL7/80vsNKDfgBGDFCDrOC44A0Tn9GlxP575MBEQgWQIS9GR5ajQREAEREAERSIWABD0V7JpUBERABERABJIlIEFPlqdGEwEREAEREIFUCEjQU8GuSUVABERABEQgWQIS9GR5ajQREAEREAERSIWABD0V7JpUBERABERABJIlIEFPlqdGEwEREAEREIFUCEjQU8GuSUVABERABEQgWQIS9GR5ajQREAEREAERSIWABD0V7JpUBERABERABJIl8C+rQyiJ+GfAhgAAAABJRU5ErkJggg==" - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "fig = em.profile_plot(\n", - " problems=problems,\n", - " results=results,\n", - " runtime_measure=\"n_evaluations\",\n", - " stopping_criterion=\"x\",\n", - " x_precision=0.001,\n", - ")\n", - "\n", - "fig.show(renderer=\"png\")" - ] - }, - { - "cell_type": "markdown", - "id": "70744c8b", - "metadata": {}, - "source": [ - "## 4b. Convergence plots\n", - "\n", - "**Convergence Plots** look at particular problems and show the convergence of each optimizer on each problem. " - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "df3dc55b", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA+gAAAFACAYAAAAvc1ZOAAAgAElEQVR4XuydB3RUxRfGvzRIIPQivf/pvSO9iDSlV+kgvUsH6b1IR4oiCiqKIk1BFCliQ0WUDoIKCNJ7TYD/+QZf3CzJ5gUCbHa/ew4HyM6bN/Obl533zb1zx+fevXv3IBMBERABERABERABERABERABERABEXiqBHwk0J8qf91cBERABERABERABERABERABERABAwBCXQ9CCIgAiIgAiIgAiIgAiIgAiIgAiLgBgQk0N1gENQEERABERABERABERABERABERABEZBA1zMgAiIgAiIgAiIgAiIgAiIgAiIgAm5AQALdDQZBTRABERABERABERABERABERABERABCXQ9AyIgAiIgAiIgAiIgAiIgAiIgAiLgBgQk0N1gENQEERABERABERABERABERABERABEZBA1zMgAiIgAiIgAiIgAiIgAiIgAiIgAm5AQALdDQZBTRABERABERABERABERABERABERABCXQ9AyIgAiIgAiIgAiIgAiIgAiIgAiLgBgQk0N1gELyhCUuWLMGoUaPCuho/fnzkyJED7dq1Q9WqVd0WQf/+/XH9+nXMnj37qbXx+PHjqFixItavX4+sWbNGqx1Xr17Fu+++a649duwYbt68iZQpU6JgwYJo06YN8uXLF636HqXw4MGDcf78ecybNy/CakJCQvDGG29gxYoVOHHiBBIkSIBs2bKhefPmqFat2qPcWteKgAiIgNsRcJ4X48SJg1SpUqFcuXLo3r07kiZN+ljbfO3aNSxevBjr1q3DH3/8geDgYOTPnx+vvPIKcubMGXbvbt264fPPPw83f2fJkgUvvPACXnrpJbDdMhEQAREQgZgjIIEecyxVkwsCfBGZOXMmFi1ahLt37+LcuXNYu3Yt1qxZYwRk8eLF3ZJfbBbof/75p1kAuX37Nlq0aIE8efLg3r17+Ouvv7Bhwwb07t3bCPUnZVEJ9NGjR+OTTz5Br169zOLNhQsX8NNPPyFv3ryoU6eOaebRo0fBMVm2bFmMNftx1BljjVNFIiACHkvAmhfffvtt00cuqO7fv98sCFMAx+T3XEQQeV+K8yZNmuB///ufWcCdM2cO9uzZYwR54sSJzWUU6Fyo7tu3r/k/F1p//PFHLF26FJkzZzYin+JeJgIiIAIiEDME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AREQAREQgSdPwKVApxeJe0kZRioTAREQAREQAc0LegZEQAREQAREQARE4PERcCnQecSSc8bmx9cU1SwCIiACIuDuBDQvuPsIqX0iIAIiIAIiIAKxmYBLgc69qzQmrnLOAh2bO622i4AIiIAIPBwBzQsPx01XiYAIiIAIiIAIiIAdAi4FOjNpb9261YhzJitxFunMfiwTAREQARHwHgKaF7xnrNVTERABERABERCBJ0/ApUDn8VKuzDFr9pNvuu4oAiIgAiLwpAloXnjSxHU/ERABERABERABbyLgUqB7Ewj1VQREQAREQAREQAREQAREQAREQASeJoEoz0F31TiegeyNxnOweVa1TAREQAS8jQDPQde8EPWo9+rVC1WqVEGtWrWiLqwSIiACIiACIiACIvAvAZcCnUI0MkubNi02b97slSAl0L1y2NVpERABAJoX7D0GEuj2OKmUCIiACIiACIhAeALRCnG/desWjh49ipkzZ6J8+fJo0KCBV/KUQPfKYVenRUAEIiCgeSHix0ICXb8uIiACIiACIiACD0MgWgLdugFfyGrXro3169c/zD1j/TUS6LF+CNUBERCBGCbg7fOCM04J9Bh+wFSdCIiACIiACHgJgYcS6GRDD/qWLVu8BFP4bkqge+Wwq9MiIAJREPDmeUECXb8eIiACIiACIiACMUHApUAPDQ194B43b97EqlWr8OGHH5q/vdEk0L1x1NVnERABEtC8YO85kAfdHieVEgEREAEREAERCE/goZLEpUmTBq+99hqKFCnilTwl0L1y2NVpERABF0nivH1ekAddvx4iIAIiIAIiIAIxQcClQD9+/PgD94gfPz6SJEkSE/d2izru3buHOXPm4K233sLPP/9sq00S6LYwqZAIiIAHEvCGeSGiYdu0aRP69OmDd999F7lz545yZOVBjxKRCoiACIiACIiACERA4KH3oHsCzZCQEPTu3RspU6bEmjVr8OOPP9rqlgS6LUwqJAIiIAIeQeDNN9/EV199hevXr2Ps2LES6B4xquqECIiACIiACLgnAZcC/fbt2/j444+xb98+XLt27YEeTJ061T17FY1Wbd26FWXKlDHh+r/88outKyXQbWFSIREQAQ8k4A3zgvOwff/99yhcuDBatWqFV199VQLdA59rdUkEREAEYhOB9957DwcPHsSIESNMs7dv327mJzof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kAAJkAAJkAAJuDABCnQXHlx2jQRIgARIgARIgARIgARIgARIwHkIUKA7z1ixpSRAAiRAAiRAAiRAAiRAAiRAAi5MgALdhQeXXSMBEiABEiABEiABEiABEiABEnAeAhTozjNWbCkJkAAJkAAJkAAJkAAJkAAJkIALE6BAd+HBZddIgARIgARIgARIgARIgARIgASchwAFuvOMFVtKAiRAAiRAAiRAAiRAAiRAAiTgwgQo0F14cNk1EiABEiABEiABEiABEiABEiAB5yFAge48Y5XhWrpjxw5MmjQJW7duTfO+P3jwAB999BEOHTqE/PnzY/369fDw8EjzdrliA1q1aoUePXqgWbNmrtg99okESMDBBNLTM+Onn37CjBkzEBoaiuHDh6Nt27YO7i2LEwLpaX3AESEBEiABRxOgQHc0URcq7/r166hTpw7ef/99DBgwwKRn33//PX7//XfMmzcvxXqcnibg//3vf7hw4QJmz56tFl7Zs2c36feaNWswbNiwBCxksVa2bNkUYyQF37hxA59//jnmzJkTX4/8LO201CZHNEa7N8zL+vjjj5W4Tk5y9GL7559/RkhICN555534ZnXu3Bnvvvsu6tatm5ym8loSIAEAtWrVQoECBfDdd9+Z8Lh06RLatGmDI0eOpCgnRz8zktrYoKAgvPLKK1i2bBlKlSoFg8EAPz+/+OJS8rmpp80yH3Tr1g3FixdX2ffv34/p06dj9erVei5PUh65N2SOMk61a9fGwoULk1SedpGj1wdpMY8mCwAvJgEScGkCFOguPbzJ65wsJpo2baoWGevWrUORIkXiC0wtgT5lyhT8+uuvyeuIA67u3bu3Wnh16dLFYmki0L/99lssXrzY5POsWbPC09PTAS1IvAgZC1loffHFF/GZ/vrrL0RGRqJGjRopUre20NyzZw+8vb3j6/D19UWmTJmSVaejF9sffPABKleubCLQZUFatWpVFCxYMFlt5cUkQAKPBXpwcDBGjRqFN954Ix5Jagr0Xr16oUmTJmk6HKdOnVLPmb///ttiO1LyuWmr41FRUeqF5KJFi+IF+q1bt5QlumPHjrYuT/Lncm/Ii9tq1arFlyFzRpYsWZJcplzoaIGeFvNosgDwYhIgAZcmQIHu0sObvM7JYkIm7hYtWuDYsWNKgGrJXKDLJDxx4kS89tpr8XnefvtttGzZEu3a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" - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "fig = em.convergence_plot(\n", - " problems=problems,\n", - " results=results,\n", - " n_cols=2,\n", - " problem_subset=[\"rosenbrock_good_start\", \"box_3d\"],\n", - ")\n", - "\n", - "fig.show(renderer=\"png\")" - ] - }, - { - "cell_type": "markdown", - "id": "11d035a2", - "metadata": {}, - "source": [ - "The further to the left and the lower the curve of an algorithm, the better that algorithm performed.\n", - "\n", - "Often we are more interested in how close each algorithm got to the true solution in parameter space, not in criterion space as above. For this. we simply set the **`distance_measure`** to `parameter_space`. " - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "db2c868c", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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CZCAQxOgQHdo96ZucPIw8corr6iHjMDAQBQtWjSmw/QS6LNmzcKePXtSNxAbtB44cKB68PL390+wNxHoq1atwtKlS2P9PVu2bHB3d7eBBYl3Ib6QB62F/9fenYdaN71xAF+UMTJkVsgQIvOU6Q+ZC3kV74t/JDKVMX+Y51IUZYiIlEz/KFNCCJki85SMyRxSZvr1Wb/Wad1t37v3Oec9l/t6Vum87tl77bW+a+31PN9nOtdcM7johRdeSL/++mvabbfdJvLsomg+9dRTackllxw8Y9lll01LL730WM9c2Mr2ySefnLbbbrspBJ1CusMOO6R11llnrLHGzYFAIPB/gv7jjz+mc889Nx188MEDSGaToB977LFp//33/0eX480338znzMsvv9w6jkmem10T/+2337JB8uabbx4Q9C+++CJ7og8//PCu20f+3t5guN1pp50GfZAZyy233Mh9unFhE/R/Qo6OBUDcHAgEAos0AkHQF+nlHW9ylAmC+8ADD0yvvvpqJqClNQk6IXzZZZelXXbZZXDNEUcckQ466KB06KGHZmHqnu233z7dc889WZlDkM4444wcxv7OO++kP//8Mx111FH5vyKAr7766qx03XrrrfmenXfeOV166aVp1VVXHTznzjvvzJ58YehbbLFFuvDCC9MGG2yQv0f2Lrjggjz2hx9+OCsKtSe1dEKh4oV+66230gorrJDHLHLgjz/+SCeeeGJ65plnMtFeaqml8nibnlcE/Y477mj1RPju7rvvTnfddddgzM8//3w6/fTT09NPPz0YJ68ujzvcF1tssQS/2hv9+eefp4suuiiT8cUXXzzxQiDg5vv7779nT816662X8TWXn376KV188cVKeq7CAAAOxElEQVS5f4qYf3teuff8889PK664Yv7e9Yj1Z599lpVL86ZQeV4b4S6K5htvvJExqZvxWKsrrrhi8GfXwwyhh6O98txzzyUeJ54m/7/++usPsCgh7n2ws+7T9XfOOeckfSyxxBJ5nPPmzcthp00jwHTrD6uyj2Zany+//DLB07oyaG288cYZ0zKn8d7EuDsQ+Hcj4PxHkEUYOWfLudIk6GeeeWZaY4010mmnnTaYkHs+/vjjdOWVVw7etWOOOSaf2byazgueX2cFcikyiLee8Xbttdce3HPAAQekxx57LMsqEU6ivurw8pdeeimfZ++/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" - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "fig = em.convergence_plot(\n", - " problems=problems,\n", - " results=results,\n", - " n_cols=2,\n", - " problem_subset=[\"rosenbrock_good_start\", \"box_3d\"],\n", - " distance_measure=\"parameter_distance\",\n", - " stopping_criterion=\"x\",\n", - ")\n", - "\n", - "fig.show(renderer=\"png\")" - ] - }, - { - "cell_type": "markdown", - "id": "a4aa5184", - "metadata": {}, - "source": [ - "## 5a. Convergence report\n", - "\n", - "The **Convergence Report** shows for each problem and optimizer which problems the optimizer solved successfully, failed to do so, or where it stopped with an error. The respective strings are \"success\", \"failed\", or \"error\".\n", - "Moreover, the last column of the ```pd.DataFrame``` displays the number of dimensions of the benchmark problem." - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "16f0493e", - "metadata": {}, - "outputs": [], - "source": [ - "df = em.convergence_report(\n", - " problems=problems,\n", - " results=results,\n", - " stopping_criterion=\"y\",\n", - " x_precision=1e-4,\n", - " y_precision=1e-4,\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "3a8e42bc", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
nag_dfolsscipy_neldermeadscipy_truncated_newtondimensionality
problem
bard_good_startsuccesssuccesssuccess3
bdqrtic_8successsuccesssuccess8
box_3dsuccesssuccesssuccess3
brown_dennis_good_startsuccesssuccesssuccess4
chebyquad_6successsuccesssuccess6
freudenstein_roth_good_startsuccesssuccesssuccess2
helical_valley_good_startsuccesssuccesssuccess3
mancino_5_good_startsuccesssuccesssuccess5
powell_singular_good_startsuccesssuccesssuccess4
rosenbrock_good_startsuccesssuccesssuccess2
\n", - "
" - ], - "text/plain": [ - " nag_dfols scipy_neldermead \n", - "problem \n", - "bard_good_start success success \\\n", - "bdqrtic_8 success success \n", - "box_3d success success \n", - "brown_dennis_good_start success success \n", - "chebyquad_6 success success \n", - "freudenstein_roth_good_start success success \n", - "helical_valley_good_start success success \n", - "mancino_5_good_start success success \n", - "powell_singular_good_start success success \n", - "rosenbrock_good_start success success \n", - "\n", - " scipy_truncated_newton dimensionality \n", - "problem \n", - "bard_good_start success 3 \n", - "bdqrtic_8 success 8 \n", - "box_3d success 3 \n", - "brown_dennis_good_start success 4 \n", - "chebyquad_6 success 6 \n", - "freudenstein_roth_good_start success 2 \n", - "helical_valley_good_start success 3 \n", - "mancino_5_good_start success 5 \n", - "powell_singular_good_start success 4 \n", - "rosenbrock_good_start success 2 " - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df" - ] - }, - { - "cell_type": "markdown", - "id": "b5215dc3", - "metadata": {}, - "source": [ - "## 5b. Rank report¶\n", - "\n", - "The **Rank Report** shows the ranks of the algorithms for each problem; where 0 means the algorithm was the fastest on a given benchmark problem, 1 means it was the second fastest and so on. If an algorithm did not converge on a problem, the value is \"failed\". If an algorithm did encounter an error during optimization, the value is \"error\"." - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "id": "f9671d82", - "metadata": {}, - "outputs": [], - "source": [ - "df = em.rank_report(\n", - " problems=problems,\n", - " results=results,\n", - " runtime_measure=\"n_evaluations\",\n", - " stopping_criterion=\"y\",\n", - " x_precision=1e-4,\n", - " y_precision=1e-4,\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "4e29d9dd", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
algorithmnag_dfolsscipy_neldermeadscipy_truncated_newton
problem
bard_good_start021
bdqrtic_8120
box_3d010
brown_dennis_good_start120
chebyquad_6021
freudenstein_roth_good_start120
helical_valley_good_start021
mancino_5_good_start120
powell_singular_good_start021
rosenbrock_good_start021
\n", - "
" - ], - "text/plain": [ - "algorithm nag_dfols scipy_neldermead scipy_truncated_newton\n", - "problem \n", - "bard_good_start 0 2 1\n", - "bdqrtic_8 1 2 0\n", - "box_3d 0 1 0\n", - "brown_dennis_good_start 1 2 0\n", - "chebyquad_6 0 2 1\n", - "freudenstein_roth_good_start 1 2 0\n", - "helical_valley_good_start 0 2 1\n", - "mancino_5_good_start 1 2 0\n", - "powell_singular_good_start 0 2 1\n", - "rosenbrock_good_start 0 2 1" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df" - ] - }, - { - "cell_type": "markdown", - "id": "56e83beb", - "metadata": {}, - "source": [ - "## 5b. Traceback report¶\n", - "\n", - "The **Traceback Report** shows the tracebacks returned by the optimizers if they encountered an error during optimization. The resulting ```pd.DataFrame``` is empty if none of the optimizers terminated with an error, as in the example below." - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "id": "96614437", - "metadata": {}, - "outputs": [], - "source": [ - "df = em.traceback_report(results=results)" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "id": "f9d63ee9", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
scipy_neldermeadscipy_truncated_newtonnag_dfols
\n", - "
" - ], - "text/plain": [ - "Empty DataFrame\n", - "Columns: [scipy_neldermead, scipy_truncated_newton, nag_dfols]\n", - "Index: []" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "4d5e24af", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.10.10" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/docs/source/how_to_guides/optimization/how_to_handle_errors_during_optimization.ipynb b/docs/source/how_to_guides/optimization/how_to_handle_errors_during_optimization.ipynb deleted file mode 100644 index 98ff12731..000000000 --- a/docs/source/how_to_guides/optimization/how_to_handle_errors_during_optimization.ipynb +++ /dev/null @@ -1,291 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "a096f8df", - "metadata": {}, - "source": [ - "# How to handle errors during optimization\n", - "\n", - "## Try to avoid errors\n", - "\n", - "Often, optimizers try quite extreme parameter vectors, which then can raise errors in your criterion function or derivative. Often, there are simple tricks to make your code more robust. Avoiding errors is always better than dealing with errors after they occur. \n", - "\n", - "- Avoid to take ``np.exp`` without further safeguards. With 64 bit floating point numbers, the exponential function is only well defined roughly between -700 and 700. Below it is 0, above it is inf. Sometimes you can use ``scipy.special.logsumexp`` to avoid unsafe evaluations of the exponential. Read [this](https://en.wikipedia.org/wiki/LogSumExp) for background information on the logsumexp trick.\n", - "- Set bounds for your parameters that prevent extreme parameter constellations.\n", - "- Use the ``bounds_distance`` option with a not too small value for ``covariance`` and ``sdcorr`` constraints.\n", - "- Use `estimagic.utilities.robust_cholesky` instead of normal\n", - " cholesky decompositions or try to avoid cholesky decompositions.\n", - "- Use a less aggressive optimizer. Trust region optimizers like `fides` usually choose less extreme steps in the beginnig than line search optimizers like `scipy_bfgs` and `scip_lbfgsb`. \n", - "\n", - "## Do not use clipping\n", - "\n", - "A commonly chosen solution to numerical problems is clipping of extreme values. Naive clipping leads to flat areas in your criterion function and can cause spurious convergence. Only use clipping if you know that your optimizer can deal with flat parts. " - ] - }, - { - "cell_type": "markdown", - "id": "4c551530", - "metadata": {}, - "source": [ - "## Let estimagic do its magic\n", - "\n", - "Instead of avoiding errors in your criterion function, you can raise them and let estimagic deal with them. If you are using numerical derivatives, errors will automatically be raised if any entry in the derivative is not finite. \n", - "\n", - "### An example\n", - "\n", - "Let's look at a simple example from the Moré-Wild benchmark set that has a numerical instability. " - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "5ec31d93", - "metadata": {}, - "outputs": [], - "source": [ - "import warnings\n", - "\n", - "import estimagic as em\n", - "import numpy as np\n", - "from scipy.optimize import minimize as scipy_minimize\n", - "\n", - "warnings.simplefilter(\"ignore\")" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "fec56a0b", - "metadata": {}, - "outputs": [], - "source": [ - "def jennrich_sampson(x):\n", - " dim_out = 10\n", - " fvec = (\n", - " 2 * (1.0 + np.arange(1, dim_out + 1))\n", - " - np.exp(np.arange(1, dim_out + 1) * x[0])\n", - " - np.exp(np.arange(1, dim_out + 1) * x[1])\n", - " )\n", - " return fvec @ fvec\n", - "\n", - "\n", - "correct_params = np.array([0.2578252135686162, 0.2578252135686162])\n", - "correct_criterion = 124.3621823556148\n", - "\n", - "start_x = np.array([0.3, 0.4])" - ] - }, - { - "cell_type": "markdown", - "id": "13c144d7", - "metadata": {}, - "source": [ - "### What would scipy do?" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "21383146", - "metadata": {}, - "outputs": [], - "source": [ - "scipy_res = scipy_minimize(jennrich_sampson, x0=start_x, method=\"L-BFGS-B\")" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "36d8e926", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "True" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "scipy_res.success" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "40511eb9", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(array([0.2578, 0.2578]), array([0.3384, 0.008 ]))" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "correct_params.round(4), scipy_res.x.round(4)" - ] - }, - { - "cell_type": "markdown", - "id": "ca245e3b", - "metadata": {}, - "source": [ - "So, scipy thinks it solved the problem successfully but the result is far off. (Note that scipy would have given us a warning, but we disabled warnings in order to not clutter the output).\n", - "\n", - "### Estimagic's error handling magic" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "617108b1", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(array([0.25782521, 0.25782521]), array([0.25782521, 0.25782522]))" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "res = em.minimize(\n", - " criterion=jennrich_sampson,\n", - " params=start_x,\n", - " algorithm=\"scipy_lbfgsb\",\n", - " error_handling=\"continue\",\n", - ")\n", - "\n", - "correct_params, res.params" - ] - }, - { - "cell_type": "markdown", - "id": "7fba61dd", - "metadata": {}, - "source": [ - "### How does the magic work\n", - "\n", - "When an error occurs and `error_handling` is set to `\"continue\"`, estimagic replaces your criterion with a dummy function (and adjusts the derivative accordingly). \n", - "\n", - "The dummy function has two important properties:\n", - "\n", - "1. Its value is always higher than criterion at start params. \n", - "2. Its slope guides the optimizer back towards the start parameters. I.e., if you are minimizing, the direction of strongest decrease is towards the start parameters; if you are maximizing, the direction of strongest increase is towards the start parameters. \n", - "\n", - "Therefore, when hitting an undefined area, an optimizer can take a few steps back until it is in better territory and then continue its work. \n", - "\n", - "Importantly, the optimizer will not simply go back to a previously evaluated point (which would just lead to cyclical behavior). It will just go back in the direction it originally came from.\n", - "\n", - "In the concrete example, the dummy function would look similar to the following:" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "dbf49b7b", - "metadata": {}, - "outputs": [], - "source": [ - "def dummy(params):\n", - " start_params = np.array([0.3, 0.4])\n", - " # this is close to the actual value used by estimagic\n", - " constant = 8000\n", - " # the actual slope used by estimagic would be even smaller\n", - " slope = 10_000\n", - " diff = params - start_params\n", - " return constant + slope * np.linalg.norm(diff)" - ] - }, - { - "cell_type": "markdown", - "id": "5958751d", - "metadata": {}, - "source": [ - "Now, let's plot the two functions. For better illustration, we assume that the jennrich_sampson function is only defined until it reaches a value of 100_000 and the dummy function takes over from there. " - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "061ba6c5", - "metadata": {}, - "outputs": [], - "source": [ - "from plotly import graph_objects as go\n", - "\n", - "grid = np.linspace(0, 1)\n", - "params = [np.full(2, val) for val in grid]\n", - "values = np.array([jennrich_sampson(p) for p in params])\n", - "values = np.where(values <= 1e5, values, np.nan)\n", - "dummy_values = np.array([dummy(p) for p in params])\n", - "dummy_values = np.where(np.isfinite(values), np.nan, dummy_values)" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "2556c2fb", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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" - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "fig = go.Figure()\n", - "fig.add_trace(go.Scatter(x=grid, y=values))\n", - "fig.add_trace(go.Scatter(x=grid, y=dummy_values))\n", - "fig.show(renderer=\"png\")" - ] - }, - { - "cell_type": "markdown", - "id": "21c56b35", - "metadata": {}, - "source": [ - "We can see that the dummy function is lower than the highest achieved value of `jennrich_sampson` but higher than the start values. It is also rather flat. Fortunately, that is all we need. " - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.10.8" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/docs/source/how_to_guides/optimization/how_to_use_logging.ipynb b/docs/source/how_to_guides/optimization/how_to_use_logging.ipynb deleted file mode 100644 index 52bc89b0c..000000000 --- a/docs/source/how_to_guides/optimization/how_to_use_logging.ipynb +++ /dev/null @@ -1,287 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# How to use logging\n", - "\n", - "\n", - "Estimagic can keep a persistent log of the parameter and criterion values tried out by an optimizer in a sqlite database. \n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Turn logging on or off\n", - "\n", - "To enable logging, it suffices to provide a path to an sqlite database when calling ``maximize`` or ``minimize``. The database does not have to exist, estimagic will generate it for you. " - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import estimagic as em\n", - "import numpy as np" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "def sphere(params):\n", - " return params @ params" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "res = em.minimize(\n", - " criterion=sphere,\n", - " params=np.arange(5),\n", - " algorithm=\"scipy_lbfgsb\",\n", - " logging=\"my_log.db\",\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Make logging faster\n", - "\n", - "By default, we use a very safe mode of sqlite that makes it almost impossible to corrupt the database. Even if your computer is suddenly shut down or unplugged. \n", - "\n", - "However, this makes writing logs rather slow, which becomes notable when the criterion function is very fast. \n", - "\n", - "In that case, you can enable ``\"fast_logging\"``, which is still quite safe!" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "res = em.minimize(\n", - " criterion=sphere,\n", - " params=np.arange(5),\n", - " algorithm=\"scipy_lbfgsb\",\n", - " logging=\"my_log.db\",\n", - " log_options={\"fast_logging\": True},\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Handling existing tables\n", - "\n", - "By default, we only append to databases and do not overwrite data in them. You have a few options to change this:" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "res = em.minimize(\n", - " criterion=sphere,\n", - " params=np.arange(5),\n", - " algorithm=\"scipy_lbfgsb\",\n", - " logging=\"my_log.db\",\n", - " log_options={\n", - " \"if_database_exists\": \"replace\", # one of \"raise\", \"replace\", \"extend\",\n", - " \"if_table_exists\": \"replace\", # one of \"raise\", \"replace\", \"extend\"\n", - " },\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Reading the log" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [], - "source": [ - "reader = em.OptimizeLogReader(\"my_log.db\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Read the start params" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array([0, 1, 2, 3, 4])" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "reader.read_start_params()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Read a specific iteration (use -1 for the last)" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'rowid': 3,\n", - " 'params': array([ 0.00000000e+00, -2.19792136e-07, -4.01986529e-08, -1.26862247e-07,\n", - " -2.06263028e-07]),\n", - " 'internal_derivative': array([ 1.49011612e-09, -4.38094157e-07, -7.89071896e-08, -2.52234378e-07,\n", - " -4.11035941e-07]),\n", - " 'timestamp': 21972.838421234,\n", - " 'exceptions': None,\n", - " 'valid': True,\n", - " 'hash': None,\n", - " 'value': 1.08562981500731e-13,\n", - " 'step': 1,\n", - " 'criterion_eval': 1.08562981500731e-13}" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "reader.read_iteration(-1)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Read the full history" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "dict_keys(['params', 'criterion', 'runtime'])" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "reader.read_history().keys()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Plot the history from a log" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAArwAAAH0CAYAAADfWf7fAAAgAElEQVR4XuzdCXhVxf3/8W8WQja2AGEJ+xpA2QRFJGIRWqVWcalWa7Higu3freJSdwSlP/topXZRqVIFF6yiKLi2qCwqChRkCUvAQCASEtYQsi//5zuQNAQIuZl7T+45932e5/dYzJlzZl4z8vswzJwJq6ioqBAuBBBAAAEEEEAAAQQ8KhBG4PVoz9IsBBBAAAEEEEAAASNA4GUgIIAAAggggAACCHhagMDr6e6lcQgggAACCCCAAAIEXsYAAggggAACCCCAgKcFCLye7l4ahwACCCCAAAIIIEDgZQwggAACCCCAAAIIeFqAwOvp7qVxCCCAAAIIIIAAAgRexgACCCCAAAIIIICApwUIvJ7uXhqHAAIIIIAAAgggQOBlDCCAAAIIIIAAAgh4WoDA6+nupXEIIIAAAggggAACBF7GAAIIIIAAAggggICnBQi8nu5eGocAAggggAACCCBA4GUMIIAAAggggAACCHhagMDr6e6lcQgggAACCCCAAAIEXsYAAggggAACCCCAgKcFCLye7l4ahwACCCCAAAIIIEDgZQwggAACCCCAAAIIeFqAwOvp7qVxCCCAAAIIIIAAAgRexgACCCCAAAIIIICApwUIvJ7uXhqHAAIIIIAAAgggQOBlDCCAAAIIIIAAAgh4WoDA6+nupXEIIIAAAggggAACBF7GAAIIIIAAAggggICnBQi8nu5eGocAAggggAACCCBA4GUMIIAAAggggAACCHhagMDr6e6lcQgggAACCCCAAAIEXsYAAggggAACCCCAgKcFCLye7l4ahwACCCCAAAIIIEDgZQwggAACCCCAAAIIeFqAwOvp7qVxCCCAAAIIIIAAAgRexgACCCCAAAIIIICApwUIvJ7uXhqHAAIIIIAAAgggQOBlDCCAAAIIIIAAAgh4WoDA6+nupXEIIIAAAggggAACBF7GAAIIIIAAAggggICnBQi8nu5eGocAAggggAACCCBA4GUMIIAAAggggAACCHhagMDr6e6lcQgggAACCCCAAAIEXsYAAggggAACCCCAgKcFCLye7l4ahwACCCCAAAIIIEDgZQwggAACCCCAAAIIeFqAwOvp7qVxCCCAAAIIIIAAAgRexgACCCCAAAIIIICApwUIvJ7uXhqHAAIIIIAAAgggQOBlDCCAAAIIIIAAAgh4WoDA6+nupXEIIIAAAggggAACBF7GAAIIIIAAAggggICnBQi8nu5eGocAAggggAACCCBA4GUMIIAAAggggAACCHhagMDr6e6lcQgggAACCCCAAAIEXsYAAggggAACCCCAgKcFCLye7l4ahwACCCCAAAIIIEDgZQwggAACCCCAAAIIeFqAwOvp7qVxCCCAAAIIIIAAAgRexgACCCCAAAIIIICApwUIvJ7uXhqHAAIIIIAAAgggQOBlDCCAAAIIIIAAAgh4WoDA6+nupXEIIIAAAggggAACBF7GAAIIIIAAAggggICnBQi8nu5eGocAAggggAACCCBA4GUMIIAAAggggAACCHhagMDr6e6lcQgggAACCCCAAAIEXsYAAggggAACCCCAgKcFCLye7l4ahwACCCCAAAIIIEDgZQwggAACCCCAAAIIeFqAwOvp7qVxCCCAAAIIIIAAAgRexgACCCCAAAIIIICApwUIvJ7uXhqHAAIIIIAAAgggQOBlDCCAAAIIIIAAAgh4WoDA6+nupXEIIIAAAggggAACBF7GAAIIIIAAAggggICnBQi8nu5eGocAAggggAACCCBA4GUMIIAAAggggAACCHhagMDr6e6lcQgggAACCCCAAAIEXsYAAggggAACCCCAgKcFCLye7l4ahwACCCCAAAIIIEDgZQwggAACCCCAAAIIeFqAwOvp7qVxCCCAAAIIIIAAAgRexgACCCCAAAIIIICApwUIvJ7uXhqHAAIIIIAAAgggQOBlDCCAAAIIIIAAAgh4WoDA6+nupXEIIIAAAggggAACBF7GAAIIIIAAAggggICnBQi8nu5eGocAAggggAACCCBA4GUMIIAAAggggAACCHhagMDr6e6lcQgggAACCCCAAAIEXsYAAggggAACCCCAgKcFCLye7l4ahwACCCCAAAIIIEDgZQwggAACCCCAAAIIeFqAwOvp7qVxCCCAAAIIIIAAAgRexgACCCCAAAIIIICApwUIvJ7uXhqHAAIIIIAAAgggQOBlDCCAAAIIIIAAAgh4WoDA6+nupXEIIIAAAggggAACBF7GAAIIIIAAAggggICnBQi8nu5eGocAAggggAACCCBA4GUMIIAAAggggAACCHhagMDr6e6lcQgggAACCCCAAAIEXosx0LNnT0lLS7N4AkURQAAB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fPiw/P73vzfP0X/qs3v16uXX51o9zOHC/g687777ruTl5cmvfvWrqpaMHz9errvuOjn//PMdbh2vQwCBUBcg8Ib6CKD9CJxEQAPvoUOH5OGHH5ZLL7206q6GCLwDBw6UN954Q/r06eOX/vr222+lqKhIUlJSpLi42ASwl156yTrwVn+uXyrq4EP8HXjvuOMOGTJkyDGB9+2335YzzzxTOnXq5GDLeBUCCCAgQuBlFCCAwAkFNPDefPPN8uyzz8onn3xSNat6osD71ltvyfPPPy+7du0ys8IadsaOHVsnWQ2cTz31lLz//vsmYPfv318eeeQRE27T0tLk/vvvl++++06aNGkiERER8u9///u4GV59xh//+EeZP3++mVXs3r27zJ49W1auXClz586Vn//85zJlyhQzq/vNN99IZbh79NFH5bLLLpMNGzZUPV+XS/z4xz+WrKws0Z9/+eWX0rJlS/nFL34ht9xyi4SFhclnn31W63MrlwXoM/R/L126VMLDw+W8884zz6ycodZ6REdHS2Zmpvz3v/+V0tJSGTZsmKmr/vsTXdom/fmWLVukc+fOMmnSJBPYP/74Y5k2bZosWrTI1LHy0nfed999cuGFF8qf/vQn+eijj0w/tW/f3vz7ytnW6oF3586d8qMf/ci4REZGVj2rZ8+e8p///Me8d9++feZ9y5Ytk9zcXOnbt6/5dbdu3eShhx4yPo0aNZLGjRsbY+3HcePGyY033igXXXSReaa2Wd+bmpoqzZo1kyuvvFJuv/12Y6WX3q+zwu+8845onbRdv/zlL80z9FKv//u//5MPPvjA1EGD9F133SVjxoyp09jjJgQQCB0BAm/o9DUtRcAnAQ28L774osyYMcOEHg0metUMvBqw7r33XnnmmWdkwIABsnz5chPCdMZUZ2ZPdWlQ1RCq/2zdurUJShqeFy5cKPHx8aZ4v379RP+K/GRLDjT0fPXVV/L444+bILd582YZPny4CaYaOFu1amXWALdp00batWtXFXgrg+mJnq8h+dxzz5Xrr79esrOz5Te/+Y353xp86/pcXYqhddYQVlZWZsLZwYMHZebMmaZdavrPf/5TnnvuORM8CwoKTMDTwKZ/2Kh5acjU4KrBUtungfH//b//J/oHDg2hZ511lnEfPHiwKbp69Wr59a9/bUKpBmj9g4v+QUINFixYYIKz9ldl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" - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "fig = em.criterion_plot(\"my_log.db\")\n", - "fig.show(renderer=\"png\")" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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Sy+1KVOm2IUXXpiQ+Vq+fLllZmZajRo1bM+ePS6AjR49OnDgzdpvQgaaxE4SHXg7d+5sl19++QGB97XXXrMqVarYWWedlcQz460QQAABMwIvqwABBHIUUOC955577LnnnrN58+ZFdlVzCrzTp0+3YcOG2caNG92usMJOgwYNYpJV4Bw0aJDNnj3bBezy5cvbE0884cLtmjVrrFu3bvbFF19YsWLF7Oijj7Z33nnnoB1e9TFw4ECbM2eO21U899xzbeLEifbJJ5/YjBkz7Pbbb7fevXu7Xd2PPvrIvHD35JNPWqNGjezrr7+O9K9yiXr16tmmTZtMf7548WIrUaKENW3a1Dp06GD58uWz9957L9d+vbIA9aGff/jhh3bUUUfZ1Vdf7fr0dqg1jmOPPdY2bNhgn376qf3zzz9WtWpVN1b9fk6Hzkl//u2331qpUqWsa9euLrC//fbb1q9fP1u4cKEbo3foPR999FG77rrrbPDgwTZ37lw3TyVLlnS/7+22Zg2869evt2uuuca5HHPMMZG+ypQpY++++657323btrn3W7ZsmW3fvt0uuugi9+tzzjnHevTo4Xzy589vBQsWdMaax4YNG9rdd99tN9xwg+tT56z3/eqrr+y4446zxo0b2/333++sdOj12hV+/fXXTWPSebVo0cL1oUNezzzzjL355ptuDArSXbp0sbp168a09ngRAgjkHQECb96Za84UAV8CCryjRo2yESNGuNCjYKIje+BVwHrkkUdsyJAhVqFCBfv4449dCNOOqXZmox0Kqgqh+vGkk05yQUnhecGCBVa0aFHX/OKLLzZ9RX6okgOFniVLltjTTz/tgtzq1autWrVqLpgqcJ544omuBviUU06x0047LRJ4vWCaU/8KyVdddZXdddddtmXLFuvYsaP7uYJvrP2qFENjVgjbu3evC2d//PGHjRkzxp2XTMeOHWsvv/yyC55//fWXC3gKbLrYyH4oZCq4Kljq/BQY7733XtMFh0LoFVdc4dwrVarkmn7++efWunVrF0oVoHXhogsJGaSlpbngrPny5ter4Y0l8P7999/21ltvuV3ywoULO/vNmzfbyJEj3XurREShOWtJQ9bA++uvv7oyFa0d1WUr9Gvd6Oft27ePBN6tW7e6i5fSpUu70Ks/HzdunFtr2vVXGH7xxRfdWlFw1hqSBQcCCCCQVYDA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" - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "fig = em.params_plot(\"my_log.db\", selector=lambda x: x[1:3])\n", - "fig.show(renderer=\"png\")" - ] - } - ], - "metadata": { - "interpreter": { - "hash": "5cdb9867252288f10687117449de6ad870b49795ca695c868016dc0022895cce" - }, - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.10.8" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/docs/source/how_to_guides/optimization/how_to_visualize_histories.ipynb b/docs/source/how_to_guides/optimization/how_to_visualize_histories.ipynb deleted file mode 100644 index 8de31a420..000000000 --- a/docs/source/how_to_guides/optimization/how_to_visualize_histories.ipynb +++ /dev/null @@ -1,279 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "26bb6b59", - "metadata": {}, - "source": [ - "# How to visualize optimizer histories\n", - "\n", - "Estimagic's `criterion_plot` can visualize the history of function values for one or multiple optimizations. \n", - "Estimagic's `params_plot` can visualize the history of parameter values for one optimization. \n", - "\n", - "This can help you to understand whether your optimization actually converged and if not, which parameters are problematic. \n", - "\n", - "It can also help you to find the fastest optimizer for a given optimization problem. " - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "8675ff3f", - "metadata": {}, - "outputs": [], - "source": [ - "import estimagic as em\n", - "import numpy as np" - ] - }, - { - "cell_type": "markdown", - "id": "bb392c18", - "metadata": {}, - "source": [ - "## Run two optimization to get example results" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "5efb43c8", - "metadata": {}, - "outputs": [], - "source": [ - "def sphere(x):\n", - " return x @ x\n", - "\n", - "\n", - "results = {}\n", - "for algo in [\"scipy_lbfgsb\", \"scipy_neldermead\"]:\n", - " results[algo] = em.minimize(sphere, params=np.arange(5), algorithm=algo)" - ] - }, - { - "cell_type": "markdown", - "id": "a6472dcc", - "metadata": {}, - "source": [ - "## Make a single criterion plot" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "32cf04a2", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAArwAAAH0CAYAAADfWf7fAAAgAElEQVR4Xu3dC5zN1f7/8Y9IMTqKmjlyKzJTynCQUCiXc+IQqTg5RUWpfpLQBSkk5+gnqc5JnPJTcgsdMqGOUSG6ihn3iTk0lanjMppxl//js07f/R9jbnvW3t/Z3+9+fR+PHsJe3+9az7XGfu+113d9y5w6deqUcCCAAAIIIIAAAggg4FOBMgRen/YszUIAAQQQQAABBBAwAgReBgICCCCAAAIIIICArwUIvL7uXhqHAAIIIIAAAgggQOBlDCCAAAIIIIAAAgj4WoDA6+vupXEIIIAAAggggAACBF7GAAIIIIAAAggggICvBQi8vu5eGocAAggggAACCCBA4GUMIIAAAggggAACCPhagMDr6+6lcQgggAACCCCAAAIEXsYAAggggAACCCCAgK8FCLy+7l4ahwACCCCAAAIIIEDgZQwggAACCCCAAAII+FqAwOvr7qVxCCCAAAIIIIAAAgRexgACCCCAAAIIIICArwUIvL7uXhqHAAIIIIAAAgggQOBlDCCAAAIIIIAAAgj4WoDA6+vupXEIIIAAAggggAACBF7GAAIIIIAAAggggICvBQi8vu5eGocAAggggAACCCBA4GUMIIAAAggggAACCPhagMDr6+6lcQgggAACCCCAAAIEXsYAAggggAACCCCAgK8FCLy+7l4ahwACCCCAAAIIIEDgZQwggAACCCCAAAII+FqAwOvr7qVxCCCAAAIIIIAAAgRexgACCCCAAAIIIICArwUIvL7uXhqHAAIIIIAAAgggQOBlDCCAAAIIIIAAAgj4WoDA6+vupXEIIIAAAggggAACBF7GAAIIIIAAAggggICvBQi8vu5eGocAAggggAACCCBA4GUMIIAAAggggAACCPhagMDr6+6lcQgggAACCCCAAAIEXsYAAggggAACCCCAgK8FCLy+7l4ahwACCCCAAAIIIEDgZQwggAACCCCAAAII+FqAwOvr7qVxCCCAAAIIIIAAAgRexgACCCCAAAIIIICArwUIvL7uXhqHAAIIIIAAAgggQOBlDCCAAAIIIIAAAgj4WoDA6+vupXEIIIAAAggggAACBF7GAAIIIIAAAggggICvBQi8vu5eGocAAggggAACCCBA4GUMIIAAAggggAACCPhagMDr6+6lcQgggAACCCCAAAIEXsYAAggggAACCCCAgK8FCLy+7l4ahwACCCCAAAIIIEDgZQwggAACCCCAAAII+FqAwOvr7qVxCCCAAAIIIIAAAgRexgACCCCAAAIIIICArwUIvL7uXhqHAAIIIIAAAgggQOBlDCCAAAIIIIAAAgj4WoDA6+vupXEIIIAAAggggAACBF7GAAIIIIAAAggggICvBQi8vu5eGocAAggggAACCCBA4GUMIIAAAggggAACCPhagMDr6+6lcQgggAACCCCAAAIEXsYAAggggAACCCCAgK8FCLy+7l4ahwACCCCAAAIIIEDgZQwggAACCCCAAAII+FqAwOvr7qVxCCCAAAIIIIAAAgRexgACCCCAAAIIIICArwUIvL7uXhqHAAIIIIAAAgggQOBlDCCAAAIIIIAAAgj4WoDA6+vupXEIIIAAAggggAACBF7GAAIIIIAAAggggICvBQi8vu5eGocAAggggAACCCBA4GUMIIAAAggggAACCPhagMDr6+6lcQgggAACCCCAAAIEXsYAAggggAACCCCAgK8FCLy+7l4ahwACCCCAAAIIIEDgZQwggAACCCCAAAII+FqAwOvr7qVxCCCAAAIIIIAAAgRexgACCCCAAAIIIICArwUIvL7uXhqHAAIIIIAAAgggQOBlDCCAAAIIIIAAAgj4WoDA6+vupXEIIIAAAggggAACBF7GAAIIIIAAAggggICvBQi8vu5eGocAAggggAACCCBA4GUMIIAAAggggAACCPhagMDr6+6lcQgggAACCCCAAAIEXsYAAggggAACCCCAgK8FCLy+7l4ahwACCCCAAAIIIEDgZQwggAACCCCAAAII+FqAwOvr7qVxCCCAAAIIIIAAAgRexgACCCCAAAIIIICArwUIvL7uXhqHAAIIIIAAAgggQOBlDCCAAAIIIIAAAgj4WoDA6+vupXEIIIAAAggggAACBF7GAAIIIIAAAggggICvBQi8vu5eGocAAggggAACCCBA4GUMIIAAAggggAACCPhagMDr6+6lcQgggAACCCCAAAIEXsYAAggggAACCCCAgK8FCLy+7l4ahwACCCCAAAIIIEDgZQwggAACCCCAAAII+FqAwOvr7qVxCCCAAAIIIIAAAgRexgACCCCAAAIIIICArwUIvL7uXhqHAAIIIIAAAgggQOC1GAP16tWTtLQ0izNQFAEEEEAAAQQQQCDcAgReC2ECrwUeRRFAAAEEEEAAAZcECLwW0AReCzyKIoAAAggggAACLgkQeC2gCbwWeBRFAAEEEEAAAQRcEiDwWkATeC3wKIoAAggggAACCLgkQOC1gCbwWuBRFAEEEEAAAQQQcEmAwGsBTeC1wKMoAggggAACCCDgkgCB1wKawGuBR1EEEEAAAQQQQMAlAQKvBTSB1wKPoggggAACCCCAgEsCBF4LaAKvBR5FEUAAAQQQQAABlwQIvBbQBF4LPIoigAACCCCAAAIuCRB4LaAJvBZ4FEUAAQQQQAABBFwSIPBaQBN4LfAoigACCCCAAAIIuCRA4LWAJvBa4FEUAQQQQAABBBBwSYDAawFN4LXAoygCCCCAAAIIIOCSAIHXAprAa4FHUQQQQAABBBBAwCUBAq8FdO7AOyFluaRl/Sh94ptLy7g6FmelKAIIIIAAAggggEAoBQi8Fpr5Bd7OtRpIl9oNLM5KUQQQQAABBBBAAIFQChB4LTRzB95Ba+bJ4ZPHhcBrAUpRBBBAAAEEEEAgDAIEXgvU3IG3/6pZ5kwEXgtQiiKAAAIIIIAAAmEQIPBaoDqBd+/RHBn++SICr4UlRRFAAAEEEEAAgXAJEHgtZJ3Auy0rUyamJBN4LSwpigACCCCAAAIIhEuAwGsh6wTe9XszZPLmlQReC0uKIoAAAggggAAC4RIg8FrIOoF38a5USdqdas5Ur3KsDE1sb3FWiiKAAAIIIIAAAgiEUoDAa6HpBN5XNq+UDXszCLwWlhRFAAEEEEAAAQTCJUDgtZB1Aq/esKY3rjHDa4FJUQQQQAABBBBAIEwCURN4Dx48KH/7299kyZIlhvKSSy6RsWPHml/1WLBggUyaNEmOHTsmHTp0kNGjR0vZsmULZXcCr7MlGYE3TKOU0yKAAAIIIOCSQEpKijzxxBPy008/yeWXXy7PP/+8xMbGunR1LhMugagJvDpwk5OTpVu3bnLuuefK9OnTZeXKlTJt2jRJT0+X3r17y5w5c8ygHjJkiDRq1EjuueeeIgNv0perAzs0EHjDNUw5LwIIIIAAAuEXOHnypJn0GjVqlLRu3VreeOMNWbNmjUyZMiX8F+cKYRWImsCbVzEtLU0GDBgg77//vkydOlV0Bnjo0KHmZVu2bJFhw4bJwoULiwy8r360WN7euU6qnBMj+47mcNNaWIcrJ0cAAQQQQCB8Ahs2bDDf/s6bN89c5JdffpEWLVrI8uXL5bzzzgvfhTlz2AWiMvDu27fPfHrTryoefPBBGT58uDRt2lS6d+9uwI8ePWp+n5r6350XCjp0ScOI996UtZnp0vbiBFnx/Tapek6MjGvWNewdxwUQQAABBBDwg4Czy5HbbdEno+Y9Fi1aZGZ0x48fH/irW2+9VZ566ilJTEx0u4pcL4QCURV4MzIy5JZbbhENvK1atZIJEyZIlSpVZPDgwdK+fXvp1KlTgFbD7Pbt26VMmTLmz3T9b97jxRdflLbTRps/1pDrPG1tSqteIewiToUAAggggIB/BXLfB+NmK/N7r547d65s3rzZ3MfjHHfccYf5Rrh58+ZuVo9rhVggqgKvY6czuElJSTJ58mRZtmyZPP3009KwYUPp0aOHeUl2drYZ2Bs3bgxw57e84dFHHzWBVz8ldqndQJwfWgJviEcpp0MAAQQQ8K1AJM3wvvvuu/Lxxx+bG9Wco2vXrjJmzBiTEzi8KxCVgdfprmuvvdbszqA7N2RmZpp1u3roHZojRoyQxYsXF9qzzi4NzosIvN79QaDmCCCAAAIIbNq0ybz/O5NcJ06ckGbNmsmKFSvk/PPPB8jDAlETeHfu3CkxMTESFxdnuktvVnv22WfNJ7nvvvtOevXqJbNnzw7s0hAfH2++wijsIPB6eORTdQQQQAABBPII6E1qN954o4wcOdIsfdRdGvSGtRkzZmDlcYGoCby6CF0D7v79+6VcuXJy2WWXyeOPPy4JCQmmC3WJgy5SP3LkiLRp00bGjRsn5cuXJ/B6fIBTfQQQQAABBIIR2Lp1qzz22GPy/fffS926dc39PjVr1gzmFLw2AgWiJvCGw54Z3nCock4EEEAAAQQQQCC0AgReC8+8gXdCynJJy/pRBie2k4TK/106wYEAAggggAACCCBQugIEXgt/Aq8FHkURQAABBBBAAAGXBAi8FtAEXgs8iiKAAAIIIIAAAi4JEHgtoAm8FngURQABBBBAAAEEXBIg8FpAE3gt8CiKAAIIIIAAAgi4JEDgtYAm8FrgURQBBBBAAAEEEHBJgMBrAZ038E7fvlbWZqZLn/jm0jKujsWZKYoAAggggAACCCAQKgECr4Vk3sC7eFeq6DPBO9dqIF1qN7A4M0URQAABBBBAAAEEQiVA4LWQJPBa4FEUAQQQQAABBBBwSYDAawFdUOCtek6M9KjbRBpVrWFxdooigAACCCCAAAIIhEKAwGuhWFDg1VO2vThBetZtYnF2iiKAAAIIIIAAAgiEQoDAa6FYWOCtVzlWhia2tzg7RRFAAAEEEEAAAQRCIUDgtVAsLPDqaae06mVxdooigAACCCCAAAIIhEKAwGuhmDfwbsvKlIkpyYEzjmvWVXQ9LwcCCCCAAAIIIIBA6QkQeC3siwq8D9RvzY1rFr4URQABBBBAAAEEQiFA4LVQzBt4nVOxH68FKkURQAABBBBAAIEQCxB4LUALCrzr92bI5M0rhRvXLHApigACCCCAAAIIhEiAwGsBWVDgddbyEngtcCmKAAIIIIAAAgiESIDAawFJ4LXAoygCCCCAAAIIIOCSAIHXArqgwHvoxDF5ZO18qVD2bJnU8jaLK1AUAQQQQAABBBBAwFaAwGshWFDg1VP2XzXLnJm9eC2AKYoAAggggAACCIRAgMBrgUjgtcCjKAIIIIAAAggg4JIAgdcCmsBrgUdRBBBAAAEEEEDAJQECrwV0YYH3mXVLJCPngAxObCcJleMsrkJRBBBAAAEEEEAAARsBAq+FXmGBd0LKcknL+pHAa+FLUQQQQAABBBBAIBQCBF4LRQKvBR5FEUAAAQQQQAABlwQIvBbQBF4LPIoigAACCCCAAAIuCRB4LaALC7xzd3wlK77fJjViLpCRjTtaXIWiCCCAAAIIIIAAAjYCBF4LvcICr/PwCT09e/FaIFMUAQQQQAABBBCwFCDwWgAWFnj1tIPWzJPDJ4/LuGZdpeo5MRZXoigCCCCAAAIIIIBASQUIvCWVE5GiAi87NVjgUhQBBBBAAAEEEAiRAIHXApLAa4FHUQQQQAABBBBAwCUBAq8FNIHXAo+iCCCAAAIIIICASwIEXgtoAq8FHkURQAABBBBAAAGXBAi8FtAEXgs8iiKAAAIIIIAAAi4JEHgtoIsKvM5evD3qNJZ21S+3uBJFEUAAAQQQQAABBEoqEDWB9/jx4zJ58mSZP3++nDx5UuLj42XcuHFSrVo1Y1e/fn0pV65cwHHSpEnStm3bQl2LCryLd6VK0u5U6VyrgXSp3aCkfUQ5BBBAAAEEEEAAAQuBqAm8Bw4ckFmzZknv3r2lUqVK8vLLL0taWpq89NJLon93++23y9KlS4OiJPAGxcWLEUAAAQQQQACBUhGImsCbV3fz5s3y2GOPSVJSkuzYsUNGjRolM2bMCKoTCLxBcfFiBBBAAAEEEECgVASiNvDOnDlTNm3aZJY1pKammpnf2NhYOXHihFx//fUyZMgQqVixYqBTcnJyzuigRo0amVnigg6WNJTKmOaiCCCAAAIIIIDAaQJRGXj37Nkjd955p0yfPl2qV69uQLKzs81Sh4MHD8pTTz0lVapUMb86R7du3c4YOhqYCwu8yd9tlbd3rpO2FydIz7pNGHoIIIAAAggggAACpSAQdYF3//790qdPH3n00UelVatW+ZKnp6dLv379JDk5udAuKWpJw7asTJmYkiz1KsfK0MT2pdC9XBIBBBBAAAEEEEAgqgLvzz//LHfffbf07dtXOnbsWGDvf/PNNzJo0CCzvrewg8DLDxACCCCAAAIIIBD5AlETeHUNrs7a6lKGTp06ndYzujRBlzDoFmWHDh2Sxx9/3Gxb9tBDD1kF3m9z9svYdUul6jkxMq5Z18gfDdQQAQQQQAABBBDwoUDUBN45c+bIyJEj5ayzzjqtG+fOnWvW7Y4ZM0Y0FFeoUMEE4oEDB0r58uWtAq8WHrRmnhw+edwEXg2+HAgggAACCCCAAALuCkRN4A0Ha1FLGvSar2xeKRv2Zkif+ObSMq5OOKrBORFAAAEEEEAAAQQKESDwWgyP4gRetiazAKYoAggggAACCCAQAgECrwUigdcCj6IIIIAAAggggIBLAgReC2gCrwUeRRFAAAEEEEAAAZcECLwW0AReCzyKIoAAAggggAACLgkQeC2gCbwWeBRFAAEEEEAAAQRcEiDwWkATeC3wKIoAAggggAACCLgkQOC1gA4m8La9OEF61m1icTWKIoAAAggggAACCJREgMBbErVfyxQn8G7LypSJKclSr3KsDE1sb3E1iiKAAAIIIIAAAgiURIDAWxK1EgRefcpa59oNePiEhTdFEUAAAQQQQACBkggQeEuiVoLAq0WY5bXApigCCCCAAAIIIFBCAQJvCeFMgK1XT9LS0go9g7OkQV9UI+YCGdm4o8UVKYoAAggggAACCCAQrACBN1ixXK8PNvBq0SmtellckaIIIIAAAggggAACwQoQeIMVI/BaiFEUAQQQQAABBBBwX4DAa2HODK8FHkURQAABBBBAAAGXBAi8FtDFCbzf5uyXseuWBq7CkgYLcIoigAACCCCAAAIlECDwlgDNKVKcwKuv7b9qVuAqgxPbSULlOIurUhQBBBBAAAEEEEAgGAECbzBaeV5L4LXAoygCCCCAAAIIIOCSAIHXAprAa4FHUQQQQAABBBBAwCUBAq8FNIHXAo+iCCCAAAIIIICASwIEXgvokgTePvHNebywhTlFEUAAAQQQQACBYAUIvMGK5Xp9cQPvhJTlsvdIjuw7miOdazWQLrUbWFyVoggggAACCCCAAALBCBB4g9HK89riBl4ttnhXqiTtTiXwWnhTFAEEEEAAAQQQKIkAgbckar+WIfBa4FEUAQQQQAABBBBwSYDAawFN4LXAoygCCCCAAAIIIOCSAIHXAprAa4FHUQQQQAABBBBAwCUBAq8FNIHXAo+iCCCAAAIIIICASwIEXgtoAq8FHkURQAABBBBAAAGXBAi8FtDBBN71ezNk8uaVUq9yrAxNbG9xVYoigAACCCCAAAIIBCNA4A1GK89rgwm827IyZWJKMoHXwpuiCCCAAAIIIIBASQQIvCVR+7UMgdcCj6IIIIAAAggggIBLAq4G3uPHj8t//vMfqVatmkvNC+9lCLzh9eXsCCCAAAIIIIBAKARcCbxZWVny9NNPy7Jly+TUqVOybds2U/dFixbJrl27ZODAgaFoi+vnIPC6Ts4FEUAAAQQQQACBoAVcCbxDhw6Vo0ePmmDbrVs32bRpk6moBt/77rtPPv7446ArHgkFCLyR0AvUAQEEEEAAAQQQKFzAlcDbtGlT+eCDD6RKlSpy5ZVXBgKvzvy2aNFCNm/e7Ml+IvB6stuoNAIIIIAAAghEmYArgbdJkyayZMkSiYuLOy3wfv755zJ48GBZvXq1J9kJvJ7sNiqNAAIIIIAAAlEm4ErgHT16tHz//fcyatQoad++vXzxxRfy1Vdfmd936tRJhgwZEnZ2vWFu8uTJMn/+fDl58qTEx8fLuHHjAjfQLViwQCZNmiTHjh2TDh06iNa5bNmyhdYrmMB76MQxeWTtfKlQ9myZ1PK2sLeXCyCAAAIIIIAAAgj8V8CVwKshUsPkjBkz5MiRI+bC5cuXl7vvvlsGDRok5cqVC3t/HDhwQGbNmiW9e/eWSpUqycsvvyxpaWny0ksvSXp6uvnzOXPmSGxsrAngjRo1knvuuSdkgVdP1H/VLHO+Ka16hb29XAABBBBAAAEEEEDAxcDrYOss63fffWdmWGvWrGlCb2kdum74sccek6SkJJk6daocPHhQ9OY6PbZs2SLDhg2ThQsXEnhLq4O4LgIIIIAAAgggECIBV2Z4Q1TXkJ5m5syZ5uY5XdYwfPhw0Rvrunfvbq6hO0ro71NTUwm8IVXnZAgggAACCCCAgPsCrgTeotboPv/88662fM+ePXLnnXfK9OnTpXr16ubGOV1brOuJnUPX527fvl3KlClj/kjX/+Y9Jk6caJZFFPdgSUNxpXgdAggggAACCCAQOgFXAq+uk8196Azq7t27ZcWKFWZv3v79+4euRUWcaf/+/dKnTx959NFHpVWrVubVI0aMkIYNG0qPHj3M77Ozs6V58+aycePGwNneeeedM878+OOPE3hd6zkuhAACCCCAAAIIlEzAlcBbUNV0p4bXXnst39nTkjWn8FI///yzuVGub9++0rFjx8CLp02bJpmZmWbdrh4pKSkmBC9evLjQEwazS4OeiBnecPQq50QAAQQQQAABBAoXKNXAq1W74YYb5MMPPwx7P+Xk5Ei/fv3MUobcSxf0whkZGdKrVy+ZPXt2YJcG3bZswIABBN6w9wwXQAABBBBAAAEEwitQqoFXn7TWpUsXWblyZXhbKWK2HBs5cqScddZZp11r7ty5Zgsy3a1h/PjxZtu0Nm3amJvZitpFItgZ3mGfL5J9R3PkycYdpWbMBWFvMxdAAAEEEEAAAQQQcGkfXr25K++hwfKjjz6Sli1bmgdQePEINvBOSFkuaVk/yuDEdpJQOc6LTabOCCCAAAIIIICA5wRcmeHV/W7zHjExMXLVVVdJt27dinyiWaSqEngjtWeoFwIIIIAAAggg8P8FXAm8fgUn8Pq1Z2kXAggggAACCPhJIGyB96effiq200UXXVTs10bSCwm8kdQb1AUBBBBAAAEEEMhfIGyBV8NgcY9gHt5Q3HO68ToCrxvKXAMBBBBAAAEEELATCFvg1W3Ainvoel4vHgReL/YadUYAAQQQQACBaBMIW+CNBkgCbzT0Mm1EAAEEEEAAAa8LuBJ4Dx8+LDNnzpTt27eLPlY47/Hiiy960jHYwPvK5pWyYW+G9IlvLi3j6niyzVQaAQQQQAABBBDwmoArgffhhx+W3bt3S4cOHeStt96S22+/XdLT080DJ8aOHSs33nij19xMfYMNvIt3pUrS7lTpXKuBdKnd4LQ27z2aI3uP5EjVc2Ok6jneXOLhyU6k0ggggAACCCDgewFXAm/jxo3lX//6l1StWtU8WW3x4sUGdtGiRSb0Pv/8856EDmXgLSwMexKHSiOAAAIIIIAAAhEi4FrgXb16tVSsWFFuuukmWbhwoXnErz5t7ZprrpENGzZECEdw1Shp4NUZ3M61G5y2rIHAG5w9r0YAAQQQQAABBIor4Erg7d27t9x7773SqlUrGThwoLRv394EXw269913n3z22WfFrW9Eva6kgVcbkXdZA4E3orqWyiCAAAIIIICAjwRcCbwbN26U3/zmN1KrVi1JSUmRPn36mN/rwyk0AN9///2eJCXwerLbqDQCCCCAAAIIRJmAK4E3r+mePXtEQ3D16tXliiuu8Cy5TeCtVzlWhia2D7SdGV7PDgMqjgACCCCAAAIRLuBK4O3YsaNZwqA3rNWoUSPCSYpfvXAE3oZVa8iD9VsXvxK8EgEEEEAAAQQQQKBQAVcC74IFC+S9996TtWvXSmJiogm/GoKrVKni6e4JNvAmf7dV3t65zrQ57wzv3B1fyYrvt53x554GovIIIIAAAggggEAECLgSeJ12HjhwQD744ANZsmSJfPnll9KyZUsTfjt37hwBFMFXIdjAuy0rUyamJJsL6U4N45p1DVx0QspyScv6kcAbfDdQAgEEEEAAAQQQKP0Z3vxqsGPHDnnmmWfkk08+kbS0NE92k03g1QZPadWLwOvJnqfSCCCAAAIIIOAlAVdnePft2yfLli0zM7zr16+X6667zszwdurUyUtmgboSeD3ZbVQaAQQQQAABBKJMwJXAO2/ePLOGV/fbbdSoUWAN7/nnn+9pbgKvp7uPyiOAAAIIIIBAlAi4Enh1Brdr165ml4aLL77YN7TBBl6n4c563cGJ7SShcpz5Y9bw+mZY0BAEEEAAAQQQiDABVwJvhLU5ZNUh8IaMkhMhgAACCCCAAAJhEyDwWtASeC3wKIoAAggggAACCLgkQOC1gC5p4J2+fa2szUyXPvHNpWVcHVMDZ0lDhbJny6SWt1nUiqIIIIAAAggggAACuQUIvBbjoaSBN7/HCDuBV6uTe7syi+pRFAEEEEAAAQQQQEBEXAu8R48elW+//Vays7PPgNedG7x4EHi92GvUGQEEEEAAAQSiTcCVwPvRRx/JkCFD5NixY3LuueeeYfzFF1940p3A68luo9IIIIAAAgggEGUCrgTejh07yiOPPCK///3vfcVb0sDrPGK4XuVYGZrY3piwpMFXQ4PGIIAAAggggEAECbgSeK+//nrRWV6/HQRev/Uo7UEAAQQQQAABPwq4Enj/+Mc/yty5c6VSpUq+MiTw+qo7aQwCCCCAAAII+FTAlcD7wQcfyFtvvSUPPPCA1KpVS4GfCKAAACAASURBVMqXL38a50UXXeRJ3nAF3i61G4gud3CewuZJHCqNAAIIIIAAAghEiIArgTcxMVEOHz5cYJPT0tIihCO4apQ08O49miPDP18kuffczb2GV2vRuVYD0eDLgQACCCCAAAIIIGAn4ErgzcnJKbSWMTExdq0opdIlDbxa3f6rZplaO3vuEnhLqRO5LAIIIIAAAgj4XsCVwOtXxVAG3kFr5snhk8cDVMzw+nXU0C4EEEAAAQQQcFvAtcC7fv16mTp1qujyhVOnTslll10mffv2lauvvtrtNofseqEMvM6Mr1O5hlVryIP1W4esrpwIAQQQQAABBBCIVgFXAu+SJUtk5MiR0rt3b7nyyiulTJkysnHjRnnzzTfl6aeflptuusmT/uEMvLn36PUkDpVGAAEEEEAAAQQiRMCVwKsPnBgxYoS0adPmtGbr3rzjxo0T3cXBiweB14u9Rp0RQAABBBBAINoEXAm8V1xxhXz55ZeS9+a07OxsadasmWzevNk19w8//FAGDx4sM2fOlPr16weuq/9frly5wO8nTZokbdu2LbReNoH3mXVLJCPngDzZuKPUjLkgcBObc0FmeF0bElwIAQQQQAABBHwu4ErgbdeunTz77LPSvHnz0zhXr14tzzzzjLz//vuuML/++uuyYsUKOXTokKmPE3gPHDggt99+uyxdujSoetgEXmdXhsGJ7cx+u3nX8BJ4g+oKXowAAggggAACCBQo4ErgnTNnjrzwwgvmJjUNmXrTms7qagDVpQ5du3Z1pYs+/fRTady4sfTp08esKXYC744dO2TUqFEyY8aMoOpB4A2KixcjgAACCCCAAAKlIuBK4NWW6VICDbgaLk+cOCEJCQkmAN9www2uN7xnz57mZjkn8Kamppob6mJjY03drr/+ehkyZIhUrFgxULcjR46cUc8GDRqYXSdKcjDDWxI1yiCAAAIIIIAAAsELuBZ4g69a+ErkDbx6JV1PXKlSJTl48KA89dRTUqVKFfOrc3Tp0uWMCm3dujVsgTf3U9jCJ8GZEUAAAQQQQAAB/wuENfD+9NNPUrlyZcnKyipU8qKLLnJVOr/Am7sC6enp0q9fP0lOTi60XuFc0qAXdp7C5ioOF0MAAQQQQAABBHwmENbA27JlS7njjjvM+t3CjpIuCyhpXxQVeL/55hsZNGiQJCUlhS3wLt6VKkm7U8V5olrem9YIvCXtXcohgAACCCCAAAKnC4Q18OoyAV0He/jw4ULd825XFu5Oyht4N23aZJYwVKtWzezg8Pjjj0t8fLw89NBDYQ+8bS9OkJ51m5yxSwOBN9yjgPMjgAACCCCAQLQIhDXwOoj6RLWbb75ZzjvvvIhwzRt4V65cKWPGjJGcnBypUKGCdOrUSQYOHCjly5cPW+DdlpUpE1P+u2RCly4wwxsRQ4NKIIAAAggggIAPBVwJvPo4YX2aWvXq1X1FaLOGVyFy79TghN/cQKzh9dVwoTEIIIAAAgggUEoCrgReXQ+rW3jpNmR+Ogi8fupN2oIAAggggAACfhVwJfB+/fXX8uSTT4o+Yviaa64xywZyH507d/akb7gDr/MUNk/iUGkEEEAAAQQQQCBCBFwJvN26dSu0uQsXLowQjuCqEarA2yKujqzN3HnGxQm8wfUHr0YAAQQQQAABBPITcCXw+pXeNvBO375W1mamF8hD4PXryKFdCCCAAAIIIOCmgGuB9+jRo7J+/XrZs2ePdO3a1bTx2LFj5teidkNwEySYa9kGXmcv3oKuSeANpjd4LQIIIIAAAgggkL+AK4FXH+SgTy7TPW710b36SF495syZI6tWrZK///3vnuwfAq8nu41KI4AAAggggECUCbgSePVpa23atJF7771XdIsyfdCDHrt375bbbrtNPvvsM0+yE3g92W1UGgEEEEAAAQSiTMCVwJuYmCiffvqpeepa7sC7b98+ue6662Tz5s2eZCfwerLbqDQCCCCAAAIIRJmAK4G3devW8uqrr0r9+vVPC7y6O4P++bJlyzzJbht41+/NkMmbVxbY9s61GkiX2g08aUOlEUAAAQQQQACBSBFwJfDOmjVLpk2bJg899JAMGzZMXnnlFfnyyy/ljTfekLFjxwZuYosUlOLWwzbw5n68sF6zRsz5kpFzIHB5Am9xe4LXIYAAAggggAACBQu4Enj18h9//LEJvXoD28mTJ+Wyyy6T/v37S6tWrTzbP6EKvBp070poITVjLjAWzu4NBF7PDg0qjgACCCCAAAIRJOBa4I2gNoesKraB99CJY/Jtzn6pWK58IOwSeEPWPZwIAQQQQAABBBAwAq4EXt2JYd68eWeQHz58WHr27CnvvvuuJ7vDNvAW1GhmeD05HKg0AggggAACCESogCuB9+qrr5YvvvjiDIKffvpJ2rVrJykpKRHKU3i1CLye7DYqjQACCCCAAAJRJhDWwKs3qZ06dUpWrFghbdu2PY1W1/GmpqZK48aN5aWXXvIkO4HXk91GpRFAAAEEEEAgygTCGni///57+eijj2T8+PHy4IMPnkZ71llnSY0aNaRDhw5Srlw5T7KHK/A6uzfUqxwrQxPbe9KGSiOAAAIIIIAAApEiENbA6zRywYIFcsstt0RKm0NWj3AHXqeigxPbSULluJDVmxMhgAACCCCAAALRJBDWwKtrdCtXrixZWVmFml500UWeNCfwerLbqDQCCCCAAAIIRJlAWANvy5Yt5Y477pAXXnihUNa0tDRPsrsVePvEN5eWcXU8aUSlEUAAAQQQQACB0hYIa+DNzs6WihUrim4/VtgRExNT2g4lur5bgZcHUJSoeyiEAAIIIIAAAggYgbAGXsf4zTfflJtvvlnOO+88X7ETeH3VnTQGAQQQQAABBHwq4ErgvfLKK+WDDz6Q6tWr+4oxXIFXn8D2yNr5AasWcZfKXfEtfGVHYxBAAAEEEEAAAbcEXAm8gwYNkgYNGkjfvn3dapcr1wlX4NXK9181K9AGtidzpTu5CAIIIIAAAgj4VMCVwPv111/Lk08+KVdccYVcc801UqFChdM4O3fu7EleAq8nu41KI4AAAggggECUCbgSeLt161Yo68KFCz3JHs7A+8y6JZKRcyDg8kD91hJfOVYqlivvSSsqjQACCCCAAAIIlJaAK4G3tBoX7uuGM/BOSFkuaVk/ntYEHkAR7h7l/AgggAACCCDgR4GwBt7k5GSpVq2a1K9fP1+7H374QQ4ePCgJCQmetHUj8DasWkP2Hsk2s70EXk8OEyqNAAIIIIAAAqUsENbA2717d+nVq5fceuut+TZz9erV8vzzz8s///nPUmYo2eXDGXjn7vhKVny/TXQP3m1ZmWa2l8Bbsn6iFAIIIIAAAghEt0BYA+/vfvc7mT9/vtStWzdf5W+//VZuuukm0ZvavHiEM/Au3pUqSbtTTeD9Nme/bNibIbqOt1HVGl6kos4IIIAAAggggECpCYQ18CYmJsqSJUukRo38Q9qePXukbdu2snnz5lIDsLlwOANv7nrlDr9dajewqTJlEUAAAQQQQACBqBMIa+Dt2rWr2XtXZ3HzO95//3157rnnRNf6evEg8Hqx16gzAggggAACCESbQFgDrz5SeNq0afLWW2+dMcv7448/yh133CEdOnSQRx991JPupRF4W/62juw9kiNVz42RqufEeNKNSiOAAAIIIIAAAm4KhDXw/vLLL/Lwww/Lhx9+KHoDm7MbwzfffCPvvPOOWds7Y8YMiYnxZnArjcCrg8NZ28vyBjd/VLgWAggggAACCHhVIKyB10F57733ZPHixZKeni4nTpwws73t27eXnj17Svny3n2QgluBN/m7rfL2znXSIu5SqXpOJQKvV3/aqDcCCCCAAAIIlIqAK4G3VFrmwkXdCry6LdnElGSpVzlWEirHmcCr/z80sb0LreQSCCCAAAIIIICAtwWiLvDq8orBgwfLzJkzT3sgxoIFC2TSpEly7Ngxs6549OjRUrZs2UJ7l8Dr7cFP7RFAAAEEEEAgOgSiKvC+/vrrsmLFCjl06JA8++yzgcCrSy169+4tc+bMkdjYWBkyZIg0atRI7rnnnogLvFohfQgFM7zR8QNKKxFAAAEEEEDAXiCqAu+nn34qjRs3lj59+sjIkSMDgXfq1KnmEcdDhw41olu2bJFhw4bJwoULCbz2Y4wzIIAAAggggAACpSoQVYHXkdab5Z5++ulA4B0+fLg0bdrU7CShx9GjR83vU1NTIyLw6pPWxq5barYhq3JuDDO8pfojw8URQAABBBBAwGsCBF4Rs6ZXd43o1KlToP90fe727dulTJky5s90OUTe469//aukpaW50uf9V80y19GlDCxpcIWciyCAAAIIIICATwQIvCIyYsQIadiwofTo0cN0a3Z2tjRv3lw2btwY6GZd35v30GURpRV4a8RcICMbd/TJMKQZCCCAAAIIIIBA+AQIvCLmaXCZmZlm3a4eKSkpJgTr3sGFHW7t0qB1cGZ4Nehm5Ow31ZrSqlf4RgZnRgABBBBAAAEEfCJA4BWRjIwM6dWrl8yePTuwS0N8fLwMGDAg4gJv7goReH3yU0gzEEAAAQQQQCCsAgTeX3mTkpJk/PjxcuTIEWnTpo2MGzeuyKfAuTnDO2jNPDl88vhpg4HAG9afDU6OAAIIIIAAAj4RiMrAG6q+czPwTkhZbm5WY4Y3VL3HeRBAAAEEEEAgWgQIvBY9TeC1wKMoAggggAACCCDgkgCB1wKawGuBR1EEEEAAAQQQQMAlAQKvBXRpBd4KZc8263mfbNxRasZcYNECiiKAAAIIIIAAAv4XIPBa9LGbgXf69rWyNjPdPHhCD13POzixnSRUjrNoAUURQAABBBBAAAH/CxB4LfrYzcC7eFeqJO1OJfBa9BdFEUAAAQQQQCA6BQi8Fv1eGoG3YdUacujEMWZ4LfqNoggggAACCCAQXQIEXov+djPwrsncKfpfy7g65leWNFh0HEURQAABBBBAIKoECLwW3e1m4M1dTWdPXtbwWnQeRRFAAAEEEEAgagQIvBZdTeC1wKMoAggggAACCCDgkgCB1wK6tAKvcwNb51oNpEvtBhYtoCgCCCCAAAIIIOB/AQKvRR8TeC3wKIoAAggggAACCLgkQOC1gCbwWuBRFAEEEEAAAQQQcEmAwGsBTeC1wKMoAggggAACCCDgkgCB1wKawGuBR1EEEEAAAQQQQMAlAQKvBTSB1wKPoggggAACCCCAgEsCBF4L6NIKvMnfbZW3d66TthcnSM+6TSxaQFEEEEAAAQQQQMD/AgReiz4urcC7LStTJqYkS73KsTI0sb1FCyiKAAIIIIAAAgj4X4DAa9HHBF4LPIoigAACCCCAAAIuCRB4LaAJvBZ4FEUAAQQQQAABBFwSIPBaQBN4LfAoigACCCCAAAIIuCRA4LWALu3AWyPmAvndhTWkYdUaUjPmAouWUBQBBBBAAAEEEPCvAIHXom9LO/A6VR+c2E4SKsdZtISiCCCAAAIIIICAfwUIvBZ9W1qBd+/RHBn++aJAzQm8Fp1IUQQQQAABBBDwvQCB16KLSyvwapU19L6y6WPJyDkgBF6LTqQoAggggAACCPhegMBr0cWlGXi12nN3fCUrvt8mPeo0lnbVL7doCUURQAABBBBAAAH/ChB4Lfq2tAPv4l2pkrQ7VTrXaiBdajewaAlFEUAAAQQQQAAB/woQeC36lsBrgUdRBBBAAAEEEEDAJQECrwU0gdcCj6IIIIAAAggggIBLAgReC+jSDrzJ322Vt3euk7YXJ0jPuk0sWkJRBBBAAAEEEEDAvwIEXou+Le3Auy0rUyamJEu9yrEyNLG9RUsoigACCCCAAAII+FeAwGvRtwReCzyKIoAAAggggAACLgkQeC2gCbwWeBRFAAEEEEAAAQRcEiDwWkATeC3wKIoAAggggAACCLgkQOC1gC7twOs8YrhC2bNlUsvbZE3mTtl3NEdaxNWRqufEWLSMoggggAACCCCAgH8ECLwWfVnagVer3n/VLNOCKa16yYSU5ZKW9eNpjxo+dOKYefxwhXJnS82YCyxaS1EEEEAAAQQQQMCbAgRei36LtMA7/PNForO+gxPbSULlONMy52ls7ORg0dEURQABBBBAAAFPCxB4f+2++vXrS7ly5QKdOWnSJGnbtm2hnRtpgdeZ7e0T31xaxtUh8Hr6R5PKI4AAAggggECoBAi8InLgwAG5/fbbZenSpUG5RlLgfaHFrfLI2vmm/p1rNZAutRsQeIPqTV6MAAIIIIAAAn4VIPCKyI4dO2TUqFEyY8aMoPo5EgKvs273gfqtZfLmlQTeoHqQFyOAAAIIIIBANAgQeEUkNTVVevfuLbGxsXLixAm5/vrrZciQIVKxYsXAGPjll1/OGA8JCQmSlpZWquPECbw6q5u0O5XAW6q9wcURQAABBBBAIBIFCLy/9kp2drZUqlRJDh48KE899ZRUqVLF/Oocf/jDH87ov507d0Z84J2+fa2szUzn8cOR+NNHnRBAAAEEEEDAFQECbz7M6enp0q9fP0lOTi60EyJpSUNBM7zODLDuyzuuWVdXBhUXQQABBBBAAAEEIkmAwJtPb3zzzTcyaNAgSUpKivjA68zgVjknxjx0Qo/cN605gVf//MnGHeXwieNSI+Z8qViufCSNQ+qCAAIIIIAAAgiETYDAKyKbNm0ySxiqVasmhw4dkscff1zi4+PloYceivjA6+yzm7uiLeIulbviW5g/yh14dS9efTCF3uDWqGqNsA0qTowAAggggAACCESSAIFXRFauXCljxoyRnJwcqVChgnTq1EkGDhwo5csXPgsaCUsa8gu8uR8ykV/gzT0DHEmDkboggAACCCCAAALhECDwWqgSeC3wKIoAAggggAACCLgkQOC1gI6EwHvoxDFJ/m6b2ZLMWcerM7z64AldvqAzwM7hLGlghtei0ymKAAIIIIAAAp4TIPBadFkkBN7c1d+WlSkTU5LNFmQJleMC+/LmbSKB16LTKYoAAggggAACnhMg8Fp0WSQH3gvPjTH77+Z3tL04QXrWbWLRcooigAACCCCAAALeESDwWvRVJAdebZYuacjvyH1Tm0XzKYoAAggggAACCHhCgMBr0U2RFnh1Pe8ja+dLhbJnm3129/66L2/eJhJ4LTqdoggggAACCCDgOQECr0WXRVrg1ab0XzWryBYReIsk4gUIIIAAAggg4CMBAq9FZ0Zi4F2/N0Mmb15ZaKsIvBadTlEEEEAAAQQQ8JwAgdeiyyIx8H6bs1/Grlt6Wqv0UcJ7j+TI4ZPHzZ/XiLlARjbuaNFyiiKAAAIIIIAAAt4RIPBa9FUkBl5tjrOsQYNuj7pNpGbMBfLK5pWn3cQ2pVUvi5ZTFAEEEEAAAQQQ8I4AgdeiryI98ObefizvI4gJvBYdT1EEEEAAAQQQ8JQAgdeiuyI18A77fJHsO5ojuR8wkfzdVnl757pAax+o39rs5FCh3NlmBpgDAQQQQAABBBDwqwCB16JnIzXwTkhZbpYvaKhtVLXGaS3UpQ0b9mYE/owb2CwGAEURQAABBBBAwBMCBF6LborUwKs3rumevDpzq7O4uY+8M71Vz4mRcc26WihQFAEEEEAAAQQQiGwBAq9F/0Rq4C2qSfpAijV7dkrS7lTzUtbzFiXG3yOAAAIIIICAlwUIvBa959XA6zR50Jp5ZqsyneHVmV4OBBBAAAEEEEDAjwIEXote9Xrgddb6OgQ96jSWdtUvtxChKAIIIIAAAgggEHkCBF6LPvF64M17A1vuXR0sWCiKAAIIIIAAAghElACB16I7vB548+7N2yLuUrkrvoWFCEURQAABBBBAAIHIEyDwWvSJ1wNv3h0b2KLMYjBQFAEEEEAAAQQiVoDAa9E1Xg+827IyZWJKckCAwGsxGCiKAAIIIIAAAhErQOC16Bq/BV6leLJxR568ZjEmKIoAAggggAACkSdA4LXoE68HXm16/1WzThNgltdiQFAUAQQQQAABBCJSgMBr0S1+CLy6rEGPjOz98vbOdVIj5gIZ2bijhQpFEUAAAQQQQACByBIg8Fr0hx8Cb+7mO7O9PHnNYlBQFAEEEEAAAQQiToDAa9ElBF4LPIoigAACCCCAAAIuCRB4LaD9FnidJ68NTmwnFcuV5+Y1i7FBUQQQQAABBBCIHAECr0Vf+DXwKglreS0GBkURQAABBBBAIKIECLwW3eG3wJv3yWsvtLjVzPQ6h97glpb1o+hODgmV4yzkKIoAAggggAACCLgnQOC1sPZb4F2/N0Mmb14ZENGlDbmD7SubV8qGvRlS9ZwYqVnpAnmgfmsLPYoigAACCCCAAALuCBB4LZz9Fnj3Hs2R4Z8vOkNEA27L39aRNXt2ir7GOfLOAOuff5uzXw6fOC41Ys4/bXbYgpmiCCCAAAIIIICAlQCB14LPb4FXKXRZw96j2bI2M71ImR51msj2rEw5dOKY9KjbxNzkNmjNPDl88rjknR0u8mS8AAEEEEAAAQQQCJMAgdcC1o+BVzkKmuktjKpHncbSrvrlgSe39YlvLi3j6ljoUhQBBBBAAAEEEAiNAIHXwtGvgVdJkr/bKodOHJd21RPMjG1+Sx1y0+muDheeGyO6DliPFnGXyl3xLSx0KYoAAggggAACCIRGgMBr4ejnwJuXZU3mzkAI1pnbpN2pRcrpTW2NqtYIvE5njvceyZGq58aYG990va8ug+BAAAEEEEAAAQTCKUDgtdCNpsDrMOl6Xd2qTMOq8/9zd3xltivL73BueNMZ4LWZOwMzwLoEYk1muplBZumDxSCkKAIIIIAAAggUKUDg/ZVowYIFMmnSJDl27Jh06NBBRo8eLWXLli0UMBoDb34guj/v9gM/mq3K4ivHyvasH2X5d1sLDMF5z9GldgNpWLUGs71F/rjyAgQQQAABBBAoiQCBV0TS09Old+/eMmfOHImNjZUhQ4ZIo0aN5J577iHwlmRU/VpGZ4Gf37DcrAHWo0LZs81yhoycA/meVW90KyMi8efHmSUPBYVrHnph0SkURQABBBBAIAoFCLwiMnXqVDl48KAMHTrUDIEtW7bIsGHDZOHChQReyx8KXber+/fqml9dxlDh1ye36c1tzpKI7QcyA6HYuZwG3kYX1pAWcXXMzO/07Z+aG+Emb1r53y3QKl1g1gPnXiNsWVWKI4AAAggggIBPBQi8IjJ8+HBp2rSpdO/e3XTz0aNHze9TUwu/MYslDcX/qdDgqzO8uR9V7JTW4KsB+I3tn5rX6OHMCjszw/p7/bvcf65/p2uA8ztn8WumM8/lTYDmQAABBNwQ0KVfHAgg4K4AgVdEBg8eLO3bt5dOnToF9DXMbt++XcqU0S/ZRWbMmHFGz4wZM0bS0tLc7TEfX03XAmt41RldDcDr934r6/+TcUbI9TEBTUMAAQQQQCBfgSmteiFjIUDgFZERI0ZIw4YNpUePHoYyOztbmjdvLhs3bgzQvvnmm2cwP/PMMwRei8FX3KIafnVbtG+z90v76gmm2H+O5FjP7DrXd3acKG59eB0CCCBQUoHDJ44VeB9DSc9JuegQIPDa9TOBV0SmTZsmmZmZZt2uHikpKSYEL168uFBdljTYDb5gSuuyBz1sly8Ec01eiwACCCCAAAL+ECDwikhGRob06tVLZs+eHdilIT4+XgYMGEDg9cc4pxUIIIAAAgggEMUCBN5fOz8pKUnGjx8vR44ckTZt2si4ceOkfPnyBN4o/uGg6QgggAACCCDgDwECr0U/sqTBAo+iCCCAAAIIIICASwIEXgtoAq8FHkURQAABBBBAAAGXBAi8FtAEXgs8iiKAAAIIIIAAAi4JEHgtoAm8FngURQABBBBAAAEEXBIg8FpAE3gt8CiKAAIIIIAAAgi4JEDgtYAm8FrgURQBBBBAAAEEEHBJgMBrAU3gtcCjKAIIIIAAAggg4JIAgdcCmsBrgUdRBBBAAAEEEEDAJQECrwU0gdcCj6IIIIAAAggggIBLAgReC2gCrwUeRRFAAAEEEEAAAZcECLwW0AReCzyKIoAAAggggAACLgkQeC2gCbwWeBRFAAEEEEAAAQRcEiDwWkBr4OVAAAEEghFo3ry5fPrpp8EU4bUIIICApKWloWAhQOC1wJsxY4acOnVKevfubXEWivpN4N///reMHTtWXnvtNb81jfZYCtxzzz0yatQoqVWrluWZKO4ngenTp8vZZ58tf/7zn/3ULNpiKbB9+3aZNGmSvPLKK5ZnorgKEHgtxgGB1wLPx0UJvD7uXMumEXgtAX1anMDr0461bBaB1xIwT3ECr4UngdcCz8dFCbw+7lzLphF4LQF9WpzA69OOtWwWgdcSkMAbOkACb+gs/XQmAq+fejO0bSHwhtbTL2cj8PqlJ0PbDgJvaD2Z4bXwJPBa4Pm4KIHXx51r2TQCryWgT4sTeH3asZbNIvBaAjLDG1pAzoYAAggggAACCCAQ2QLM8EZ2/1A7BBBAAAEEEEAAAUsBAq8lIMURQAABBBBAAAEEIluAwBvZ/UPtEEAAAQQQQAABBCwFCLyWgBRHAAEEEEAAAQQQiGwBAm8J+ueXX36RZ599VpKSkszTcR544AGekFMCRy8WOX78uEyePFnmz58vJ0+elPj4eBk3bpxUq1bNNCclJUWeeOIJ+emnn+Tyyy+X559/XmJjY83fLViwwDw159ixY9KhQwcZPXq0lC1b1osM1LkQAf33oVevXqKPHn/mmWfMK/ft2yePPvqoGR9VqlQxY6ZJkyZFjhmg/SFw6NAh+d///V9Zvny5nHXWWfLkk0+afwMKey/hfcYffV9YKz788EOZMGGCHDlyRH7zm9/I008/LY0aNSry3wXeS0o2Ngi8JXCbN2+eLF68WKZOnSr6D9mf/vQnmThxolx11VUlOBtFvCRw4MABmTVrlnmcdKVKleTll182zzd/6aWXTADWNzF9dGzrn1fQ/QAAE+RJREFU1q3ljTfekDVr1siUKVMkPT3dlJkzZ44JwEOGDDH/sOk2VRz+Epg2bZp8/PHH5vHBTuAdOnSoVK9eXR5++GETevXX999/33xgLmjM+Eslultz//33yxVXXCEPPvig6XPnKOy9hPcZf48ZnTy57rrr5O2335batWvL2rVrZcyYMbJ06VLeS8LU9QTeEsD27dtX7rrrLmnVqpUprXso/vDDDzJs2LASnI0iXhbYvHmzPPbYY2a2f8OGDTJ27FjRNyo9dIamRYsWZlZn9uzZcvDgQdHgo8eWLVvMeFm4cKGXm0/d8wjoBxvtY/03Qt/ANPDqOGjatKl88sknUqFCBVNCvxW67bbbpGrVqgWOmfPOOw9fHwhs3bpVRowYYb7hyXsU9l7C+4wPOr+QJmRnZ5sPu6tXrzbf9Om3QF27dpVVq1bxXhKmrifwlgC2Xbt28uabb5oZGz1Wrlxpfv/aa6+V4GwU8bLAzJkzZdOmTeYr6kWLFpkZ3fHjxweadOutt8pTTz1lZnY19HTv3t383dGjR83vU1NTvdx86p5LQIPtnXfeacLNrl27zFjQwLtnzx7zLdBHH30UeLV+vX3++eeb2f6CxkxiYiK+PhDQ9wb9YKwBZ8eOHXLJJZeYr65/+9vfSmHvJbzP+KDzi2iCvm98//335t+NV199VW655Rbp3Lkz7yVh6noCbwlgr732Wnn33XfN7Iwen3/+uVmbqV91c0SPgAYZ/YdKZ/j1w8/cuXPNG5uuzXWOO+64QwYMGGC+tmrfvr106tQp8He6xlOfpFOmTJnoQfNxS/UDry5xGjhwoPla0gm8+uQ9/Up72bJlgdbrUhgNyBp6ChozzZs397FW9DRNP9wsWbLErP3Xdf1vvfWWrFixQnTpS2HvJbzP+H+M7Ny503wbpOu6L774YnnxxRfNGn/eS8LT9wTeErhqcHn99dfNuhs9kpOTTdjVP+OIDoH9+/dLnz59zI1IztIW/RCkazf1RjXn0K+odF2WBt6GDRtKjx49zF/pbI8Gmo0bN0YHmM9bqTN3erOi/jugazRzB97MzEwzc6NfXTqHzuxceOGFJvAWNGZ0vHB4X0Dv79BAM2jQINMYXeuv3+6sW7fOfKVd0HsJ7zPe7/vCWrB3717zfqAfhPTm53feeUf+8Y9/mNld/XDMe0no+5/AWwLT/v37S8+ePaVt27amtA5SfVPTO285/C/w888/y913320+mXfs2DHQYF3aoF9nO+tyT5w4Ic2aNTOzOfqPmY4RZ5233rikr9WbHzm8L/DKK6+YmxM12Oihfa/B5tJLLzXru6+++mozDvRObD369etn/g3RWZ2CxowueeDwvoCu6XfW92trdJcWXdv/1VdfSWHvJbzPeL/vC2uB/tuv63Wfe+65wMt0Xb9+Q3jq1CneS8LQ/QTeEqDqJzC9AcHZpUE/pf3lL38xb2oc/hbIyckxYUWXMuRenqCt1q+ob7zxRhk5cqSZ9dVdGvSGtRkzZkhGRobZqkpvXnN2adBP9brcgcN/ArlneLV1w4cPNzO6OsunH3Z0iYOOjYoVKxY4ZvynEp0tysrKMn2sM7n169c3H4z0w7Hu7FLYewnvM/4eL/rt3uDBg823f/rhdvfu3eY9Qv/tiImJ4b0kDN1P4C0hqn4q09Cr6y91pu/ee+8t4Zko5iUBvflMA60zk+fUXddc6TZjeke27tqgNyLUrVvX7LFYs2ZN8zKd6dMb2nTPxTZt2pgb3cqXL++l5lPXYgrkDby6Q4eOC53V01le3brOWQpT2Jgp5uV4WYQL6I3NuoOLfmDW7St1H3f9AKRHYe8lvM9EeMdaVk8nQ/TGZ53RPffcc00A1vcGPXgvscTNpziBN/SmnBEBBBBAAAEEEEAgggQIvBHUGVQFAQQQQAABBBBAIPQCBN7Qm3JGBBBAAAEEEEAAgQgSIPBGUGdQFQQQQAABBBBAAIHQCxB4Q2/KGRFAAAEEEEAAAQQiSIDAG0GdQVUQQAABBBBAAAEEQi9A4A29KWdEAAEEEEAAAQQQiCABAm8EdQZVQQABBBBAAAEEEAi9AIE39KacEQEEEEAAAQQQQCCCBAi8EdQZVAUBBBBAAAEEEEAg9AIE3tCbckYEEEAAAQQQQACBCBIg8EZQZ1AVBBBAAAEEEEAAgdALEHhDb8oZEUAAAQQQQAABBCJIgMAbQZ1BVRBAAAEEEEAAAQRCL0DgDb0pZ0QAAQQQQAABBBCIIAECbwR1BlVBAAEEEEAAAQQQCL0AgTf0ppwRAQQQQAABBBBAIIIECLwR1BlUBQEEEEAAAQQQQCD0AgTe0JtyRgQQCLFASkqKjBgxQnbt2iVdunSRZ599NsRX4HR/+ctf5NChQ/LMM8+AgQACCPhOgMDruy6lQQiERqBNmzZSs2ZNeeutt0474Y4dO+TWW2+Vr7/+OjQXKsZZ9Hrt27eXe+65x4Sy888/vxilCn7Jyy+/LDk5OfLEE0+YF+mveu74+PiQntfqZC4XDnXg/ec//ynZ2dly5513BlrSu3dv6dOnj7Rr187l1nE5BBCIdgECb7SPANqPQAECGnh//vlnGTlypNx8882BV5VG4G3UqJHMnj1brrjiipD01+effy5Hjx6VVq1aybFjx0wAe/31160Db+7zhqSiLp4k1IH34YcflqZNm54WeOfPny/NmjWTWrVqudgyLoUAAgiIEHgZBQggkK+ABt777rtPXnrpJXn//fcDs6r5Bd558+bJq6++Kj/88IOZFdaw06lTp2LJauCcMGGCvPvuuyZgJyYmylNPPWXCbVpamgwbNkw2bNgg5513npQtW1b+9a9/nTHDq+d47rnnZPHixWZWsW7dujJjxgz56quvZMGCBXLbbbfJmDFjzKzuZ599Jk64e/rpp6V79+6yZcuWwPl1ucTvf/972bNnj+jff/LJJ1K1alX505/+JPfff7+UKVNGVqxYUeh5nWUBeg79/9WrV8tZZ50l119/vTmnM0Ot9Tj33HPlu+++k3Xr1smJEyekefPmpq765/kd2ib9+2+++UZq164tQ4YMMYF92bJlMm7cOPn4449NHZ1Dr/n4449Lx44dZeLEibJ06VLTTxdffLH5c2e2NXfgzcjIkBtuuMG4lCtXLnCuevXqyfLly8119+3bZ6736aefysGDB6V+/frm93Xq1JEnn3zS+Jx99tlyzjnnGGPtx27dukm/fv2kc+fO5pzaZr3u5s2bpXLlytKjRw8ZOHCgsdJDX6+zwu+8845onbRdf/7zn8059FCvv/71r/Lee++ZOmiQHjx4sHTo0KFYY48XIYBA9AgQeKOnr2kpAkEJaOB97bXXZOrUqSb0aDDRI2/g1YD12GOPyQsvvCANGzaUL774woQwnTHVmdmiDg2qGkL114suusgEJQ3PycnJUqlSJVP8yiuvFP2KvKAlBxp61qxZI2PHjjVBbvv27dKyZUsTTDVwXnjhhWYNcFxcnFSrVi0QeJ1gmt/5NSS3bt1a7r77bvnxxx/lgQceMP+vwbe459WlGFpnDWEnT5404SwrK0umTZtm2qWm//d//yeTJ082wfPw4cMm4Glg0w8beQ8NmRpcNVhq+zQw/s///I/oBw4Noddcc41xb9y4sSm6fv16ueuuu0wo1QCtH1z0g4QaJCUlmeCs/eX0r7OGtziB9/jx47JkyRIzS16xYkVjn5mZKf/4xz/MtXWJiIbm3EsacgfevXv3mmUqOnZ0XbaGfh03+v/9+/cPBN7//Oc/5sPLpZdeakKv/v306dPNWNNZfw3Df//7381Y0eCsY0gtOBBAAIHcAgRexgMCCOQroIFXg0SNGjVMyNKZ3quvvvqMwKuBRkNP7oD24osvyrZt2+SVV14pVFdnZn/3u9/JrFmzTIBxjl69eskf/vAHs96zqMDrnEPXGuu5ch8aTDU86azwJZdcEvirvF/f5w28OouqQUxDt3Po+XV2dObMmSbwFnVeDZI6I6xBXGc59dDZ52uvvVbmzp0rl19+uQm8ekOeBjfn0A8YGzduNN55D/XU0KeB1zkeeugh0ZlXnRnVWVQNn7oMRQ99nQbs8ePHn3GuU6dOmQ8SH3zwgenjYGd4855QzTTY6wcgPYoKvH/729/MOnAN6M6hwVwDvJ5LDw3IOkM9aNCgwGv69u0rbdu2NTO92hcLFy6UN998UypUqMBPMgIIIFCgAIGXwYEAAvkKaODVUNKgQQPzdbmGWF12sHv37tNuWtOZRp2dve666wLn0aCos5kaNAs70tPTzfKBTZs2Sfny5QMv1aCms406a6hHYTO8BZ1Dy2kw1SUEq1atOq0aRQVeDaQaGvUreefQgKizx/qVfnHOO2fOHDP7+Pbbb5927a5du5qv5HWmUutx4MCB0wKpzmZ++OGHgVng3IU1UOqsqi7tcI5ffvnFrLFWs7Vr15pZUl1CoV//6wy19oOGbJ2R1Zllrb/OJOvfb9261fStLgEJNvDqbO6UKVNMaNVzHzlyxAR6Da3FCbyPPPKICdpaX+fQ8vqhRZeRxMbGBpY06JII5xgwYIAZk/qBQ9dhP/roo6Jrp3v27Cl33HGHmeHlQAABBPIKEHgZEwggUGTg1Rdo0NDgqTOvt9xyS2CXBr0xadKkSacFXg1VOqtYVODVWWBdz5k38Oo6Wg1lxQm8usTixhtvPOMcTuDVwKezmLmPogKvzjjrDVYaWPM7NPAWdV6dddRlA3kD70033ST33ntvIPDm3QqssMCra6Odtbf51UvDr4ZcXauryxR0tlTDrwZkDcQ6m6x99dvf/lY0wCckJJhZ6+IEXg2XV111VWANrwZ3XToxdOhQiYmJMaFTZ5mLG3i1brret6jAm3vNrzMOncDrGOg40qUhumRDP6RpwOdAAAEEcgsQeBkPCCBQrMCrayn1K2adzdWw4mxLprNquqTBWXepJ9PZYL3hSdfiFnborKAuk9CQl3u9ry5p0HWsumZWj8JmeDWIObs45F0zXJxgqufXAKXB1NkFQsObBi2dGdabqfIexTmvnkPX/ea3pEGXMOhNXvntjFBY4NXt1FauXGnW7BZ06Dn1Zi5nFnj48OHmpRq0dYmIfljR49///rcxzm+Gd//+/WY3Be1jZx213kCoNyLqh5kqVaqYsKsz0TpLq4fOius6bifwqp/O+usaYufIvYZX26Lnd9Yz62u0rJrp2mSdgc57k1tBgdc5vy6P0ICv4ZcDAQQQIPAyBhBAoEiB3EsanBfrjWNvvPGGeQCEE3h1+YKGKuemtS+//NKs5dSwq2FW15DqjV46W9ukSZMzrqsBTctokNavsXVmVdeq6nl/85vfFBl49QWjRo0yOznorKvOXupX9brbg37FX9RMrJbXNcoaCHUdsoZFXXOrOwZo2NU9ejXg6UyyBnQNccUJvDrbqjet6Vpd56Y1nfXWDw46+6tHsIFXb1rTm9t03bR+KNDdDHTWVm/o0llaPfTGLZ2N18CoHzx0VlYPDZJ645pe86effjJmGjB1mUreGV59vc4Ua5nbb7/dLB3QmVwNxxp4dTcE7Vud0dW+1Rl6HQMalJ3Aq+fXG9F0xlUtdI1t7gCrO1hogNbzqr1z05r2hX6g0qOowKsfKrSv1FjXcutNiLoMhQeTFPnjzQsQiDoBZnijrstpMALFE8gv8GpJvRlJw27uB08sWrTIhNRvv/3WzPhp4NIQo4eu9dQ1phqIdReBvIcGTA1mGnR1aymdbdVtrZygpq8vapcGXf6gwVbXt+oSAb2JS28y00BUnMCrM7l6Td05QEPpH//4RxMKNTjpTVgapnS7Nb15SpdPFCfwar01oI4ePdrMyjohUtcUa4AuSeDVMhrstY76qy5b0GUJulzhsssuC9BqaFTX3EtKdK2z3oingVg/FGhA1Q8l6pNf4NWb7jRA6gcWDZW6DENvYtQPPLoLgho4OzPobLW2U1+j62/10ACrgVg/fOj6Wt1qLm+ATU1NNcb6q3640dlnXdvrzE4XFXi1DmqhN/LpzXq6lEGDtu2DSYr3E8KrEEDASwIEXi/1FnVFAAEEEEAAAQQQCFqAwBs0GQUQQAABBBBAAAEEvCRA4PVSb1FXBBBAAAEEEEAAgaAFCLxBk1EAAQQQQAABBBBAwEsCBF4v9RZ1RQABBBBAAAEEEAhagMAbNBkFEEAAAQQQQAABBLwkQOD1Um9RVwQQQAABBBBAAIGgBQi8QZNRAAEEEEAAAQQQQMBLAgReL/UWdUUAAQQQQAABBBAIWoDAGzQZBRBAAAEEEEAAAQS8JEDg9VJvUVcEEEAAAQQQQACBoAUIvEGTUQABBBBAAAEEEEDASwIEXi/1FnVFAAEEEEAAAQQQCFqAwBs0GQUQQAABBBBAAAEEvCRA4PVSb1FXBBBAAAEEEEAAgaAFCLxBk1EAAQQQQAABBBBAwEsCBF4v9RZ1RQABBBBAAAEEEAhagMAbNBkFEEAAAQQQQAABBLwkQOD1Um9RVwQQQAABBBBAAIGgBQi8QZNRAAEEEEAAAQQQQMBLAgReL/UWdUUAAQQQQAABBBAIWoDAGzQZBRBAAAEEEEAAAQS8JEDg9VJvUVcEEEAAAQQQQACBoAUIvEGTUQABBBBAAAEEEEDASwIEXi/1FnVFAAEEEEAAAQQQCFqAwBs0GQUQQAABBBBAAAEEvCRA4PVSb1FXBBBAAAEEEEAAgaAFCLxBk1EAAQQQQAABBBBAwEsCBF4v9RZ1RQABBBBAAAEEEAhagMAbNBkFEEAAAQQQQAABBLwkQOD1Um9RVwQQQAABBBBAAIGgBf4fbxEUX2DdqsUAAAAASUVORK5CYII=" - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "fig = em.criterion_plot(results[\"scipy_neldermead\"])\n", - "fig.show(renderer=\"png\")" - ] - }, - { - "cell_type": "markdown", - "id": "4a2050c4", - "metadata": {}, - "source": [ - "## Compare two optimizations in a criterion plot" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "d641708a", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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00+b9mg/GjVqZD4A1KlTR9atWyd33nmnjBkzhsCbHT8cYX5NAq8FaPLA69u5SZJmPRs4Y1y3USKFLrB4BaoigAACCDghkDi6qxMvk+I1UpsY2bx5szzwwANmRrNWrVqBOv/5z39M6B00aNBZ50keeHfv3m1miLX4fD6pXr26maX97rvvZMaMGfL666+Lhj4Ncxr4/DOiyRun4VGDrP+GLQ2uOsOss6jaPq2vAVHLSy+9ZEKoBtrgGd5u3bqZkN64cWNz3JdffmlmVzVgan9+++03GThwoPk7ncnVcKkhWfv0008/mRllf9HzakDWm8i09O3bV6655hoT3LVoOL744ovNbHN67Qvup4bca6+9VnTWV2d3tS36YcFf7rrrLhOkuWktW348wvqiBF4LTn/gfeb626Vw7nMleeD1tujOjWsWvlRFAAEEnBKIphle7fP3338v48ePN8H0kUceMV/l60ykzujed9996QbeI0eOSO/evQPHaCjVAKkzmvXr15d58+aZUKdrfx977LE0iTVg6mv5Z4A1pC5atMjMsOrSBJ1hzpMnj6mvM8xNmjQx5wsOvDoLO3ToUKlcubI5TsO8zirrubQ/uiSicOHC5u90aYQue9DlC/5lCnpscOANbo/OCOtSBP+MtS6NuOCCC+See+5Jt31fffWV6I1+OsurRT8IaNjVDwXTpk0zs9b+ojtKsKTBqZ/CyL4OgdfC1x94R17XUormyR84UxL78VqoUhUBBBBAwC+wfv166dq1q3z00Udmva7O3uoa0+CSfIZX1+/q8gItOoOpM7y6dleDpX5dr8sGNGjqbObVV1+dbuDV5QW6tlZLcODVGVSdWdXlA8lL8hne9u3bm7XAWr755hsz++yf4d23b59ZypC8BPcpOPAGtye9wJtW+w4cOGBmpWfOnCmXX3656IeDmjVrmsCr/+l6Xl1O4i8dOnSQu+++mxleF/xIEngtBjGtwOvbulqS5o0TblyzwKUqAgggkEMFdG3rueeeK+eff74JZDrD+N5770lCQoIJX1OnTpXLLrvMhN+LLrooxRpeXdOqs6RlypQxs5V6w5guE9Dy448/yrBhw8yNbYsXL05XOPluC8GBV9fw6myozkLrrKzeAKbLJ3QGOrieHqNrkvUGN1060a9fP3OjnJ5LlzNoaNb26vupzhLv3bvXrFe2DbxptU89dSmG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" - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "fig = em.criterion_plot(results)\n", - "fig.show(renderer=\"png\")" - ] - }, - { - "cell_type": "markdown", - "id": "2b875eed", - "metadata": {}, - "source": [ - "## Use some advanced options of criterion_plot" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "72b6938c", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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IFBEAgReH9AEXh94dEUAAQQQQAABBIpIgMDrA5rA6wOPrggggAACCCCAQBEJEHh9QBN4feDRFQEEEEAAAQQQKCIBAq8PaAVeGgIIIBCLQGZmps2fPz+WLrwWAQQQsKysLBR8CBB4feBNmDDBcnJyrEOHDj5GoSsCewsMHDjQzj77bDvrrLPgQaBQBTp16mR9+vSxY445plDHZTAEmjZtau+88w4QCCSkAIHXx7IQeH3g0TVfAQIvJ0i8BAi88ZJlXAIv50AiCxB4fawOgdcHHl0JvJwDxSJA4C0W9pR4UwJvSixz0h4kgdfH0hF4feDRlcDLOVAsAgTeYmFPiTcl8KbEMiftQRJ4fSwdgdcHHl0JvJwDxSJA4C0W9pR4UwJvSixz0h4kgTdpl46JI4AAAggggAACCEQjQOCNRonXIIAAAggggAACCCStAIE3aZeOiSOAAALUhcG4AAATZUlEQVQIIIAAAghEI0DgjUaJ1yCAAAIIIIAAAggkrQCBN2mXjokjgAACCCCAAAIIRCNA4I1GKeQ1e/bssfvuu89mzZplJUqUsJtvvtmuuuqqAoxEFwTM/aS+RYsWWVpamuO4+uqrrVevXu7306ZNs5EjR9rOnTtNd0APGDDA0tPTYUMgT4E///zTevTo4b4+evTowOs2b95sd955py1evNjKly9vQ4YMsTp16riv6+/uuusu27Rpk1WvXt0efPBBq1SpEsoI5BL4/vvvrXPnztauXTu7/vrrA1/L73sY5xYnUaIIEHgLsBJTp061mTNn2tixY2379u3uH/9DDz1kp5xySgFGo0uqC7Ro0cL0iDuFkOC2evVqF4YnT57swodCTK1ataxjx46pTsbx5yGwfv1669Kli9WuXdt+/vnnXIG3Z8+edsQRR1i3bt1cwNWvb731lrto18XUvffe636U9fPPP2/z5s2zMWPG4IxAQGD+/Pnugvv4449351dw4M3re9ju3bs5tziHEkaAwFuApbjhhhvsuuuus0aNGrnezz33nOk/mt69exdgNLqkuoDOo48//jiww+t56IJq69atpqCitnz5cneOTZ8+PdXJOP48BLZt22YrV650nwgouHo7vPpUqm7dujZ37lwrVaqU661Ppq644gqrUKGCDR482HQhr6bXnnHGGfbuu+9amTJlsEbACWRlZbnzQRfg5cqVyxV48/oe9vXXX3Nucf4kjACBtwBLcd5559n48ePdbomawor+/PTTTxdgNLqkuoB2Sw499FD3acHJJ5/sQm3lypWtT58+LqS0bNnSEWVnZ7s/L1myJNXJOP4IAgq2+tTAC7za7dUnUR9++GGg5wMPPGAHHnig+/RAO7rDhg0LfK1169Z2991326mnnoo1ArkE9GnmQQcdlCvw5vU9bMaMGZxbnD8JI0DgLcBSNGzY0F577TW3M6K2YMECV2c5ceLEAoxGl1QX0K7c/vvvb7t27XIh5ZVXXnH14d27d7cmTZpY8+bNA0T6OHHVqlV77QanuiHHn1sgNPCq9lKlDrNnzw68cNSoUW43Vxdby5Ytcx9Xe0115F27drXMzExoEYgYePP6HjZlyhTOLc6fhBEg8BZgKRRCxo0bZ1WqVHG933vvPRd29Xc0BPwKNGjQwIVeBZKaNWtamzZt3JD6T0UBZOnSpX7fgv7/coHQwLthwwZr1aqVzZkzJ3DkummtYsWKLvB+9NFH7kY1r1166aU2cOBAd/7REAgWCLfDGyrkfQ/TZhDnFudPoggQeAuwErpLtW3btnbuuee63k899ZTpP5R+/foVYDS6IJBboH79+vb222+7JzTovPJqw3WjUd++fd0NkzQE8hMIDbw5OTl2+umn2/vvv29ly5Z1XW+88Ub3fezwww9355VXG65PGurVq+deq5IHGgKxBl7ve9jatWs5tzh9EkaAwFuApVBdksKI95QG7cANHTrU/YdCQyAWAQXajRs3Wo0aNUyhRHXg2hF54YUXTP9ZtG/f3iZNmhR4SkO1atXcR800BGIJvHqtasK1o3v77be7pzSoxEE3ppUuXdqaNWtm/fv3dzfi6mY3/b3Ka2gIhAqE7vDm9z1MJTOcW5xDiSJA4C3gSgwfPtyFXj07VU9t6NSpUwFHolsqC6xbt849HmrNmjVWsmRJ97gf7bZ5z0BVLa9uJtqxY4c1btzYPTs1IyMjlck49igEQnd41UVP/NDznRcuXOh2efUYMu9JMytWrHBf++mnn6xq1ao2YsQId+MkDYFIgTfS9zDOLc6hRBEg8CbKSjAPBBBAAAEEEEAAgbgIEHjjwsqgCCCAAAIIIIAAAokiQOBNlJVgHggggAACCCCAAAJxESDwxoWVQRFAAAEEEEAAAQQSRYDAmygrwTwQQAABBBBAAAEE4iJA4I0LK4MigAACCCCAAAIIJIoAgTdRVoJ5IIAAAggggAACCMRFgMAbF1YGRQABBBBAAAEEEEgUAQJvoqwE80AAAQQQQAABBBCIiwCBNy6sDIoAAggggAACCCCQKAIE3kRZCeaBAAIIIIAAAgggEBcBAm9cWBkUAQQQQAABBBBAIFEECLyJshLMAwEEEEAAAQQQQCAuAgTeuLAyKAIIIIAAAggggECiCBB4E2UlmAcCCCCAAAIIIIBAXAQIvHFhZVAEEEAAAQQQQACBRBEg8CbKSjAPBBBAAAEEEEAAgbgIEHjjwsqgCCCAAAIIIIAAAokiQOBNlJVgHgggkKfA4sWLrW/fvvbDDz/YxRdfbPfddx9ahSwwdOhQ2759uw0aNKiQR2Y4BBBAoPgFCLzFvwbMAIGEFGjcuLFVrlzZXnjhhVzz++6776x169a2aNGiIpu33q9JkybWsWNHF8oOPPBAX+89atQo+/PPP+2uu+5y4+hXjV2tWrVCHdfXYEXcubAD76uvvmrbtm2za665JnAkHTp0sGuvvdbOO++8Ij463g4BBFJdgMCb6mcAx49AHgIKvH/88Yf179/fLr/88sCriiPw1qpVyyZNmmQnnnhioazXggULLDs72xo1amQ7d+50AWzcuHG+A2/wuIUy0SIcpLADb7du3axu3bq5Au/LL79s9erVs6OOOqoIj4y3QgABBMwIvJwFCCAQVkCB96abbrJHH33U3nrrrcCuarjAO3XqVBs9erStX7/e7Qor7DRv3jwqWQXOESNG2GuvveYC9qmnnmp33323C7dZWVnWu3dv+/rrr61MmTKWnp5u77zzzl47vBpj+PDhNnPmTLerWLVqVZswYYItXLjQpk2bZldccYUNHDjQ7ep+9tln5oW7e+65x1q2bGnLly8PjK9yifPPP99+/vln09fnzp1rFSpUsHbt2lmXLl0sLS3N3n///XzH9coCNIZ+P2fOHNtnn33s7LPPdmN6O9Sax3777Wfr1q2zL7/80nbt2mWZmZlurvr7cE3HpK9/++23VqVKFevRo4cL7LNnz7YhQ4bYRx995OboNb3nf/7zH7vwwgvtoYcesjfffNOt0+GHH+7+3tttDQ68a9eutXPOOce57LvvvoGxjj/+eHv33Xfd+27evNm93/z5823r1q120kknuT8fe+yx1q9fP+dTokQJK1mypDPWOl522WV244032kUXXeTG1DHrfZctW2blypWzNm3a2G233eas1PR67Qq/8sorpjnpuK666io3hpq87r//fnv99dfdHBSku3fvbk2bNo3q3ONFCCCQOgIE3tRZa44UgZgEFHiffvppGzt2rAs9CiZqoYFXAatXr1728MMPW82aNe3zzz93IUw7ptqZjdQUVBVC9evBBx/sgpLC83vvvWcHHHCA637yySebPiLPq+RAoWfevHk2ePBgF+RWrVplDRo0cMFUgbNixYquBviQQw6xww47LBB4vWAabnyF5LPOOsuuv/5627hxo918883u9wq+0Y6rUgzNWSFs9+7dLpxt2bLFnnnmGXdcMn322WftySefdMHzr7/+cgFPgU0XG6FNIVPBVcFSx6fAeMstt5guOBRC69ev79xPO+001/Wrr76y6667zoVSBWhduOhCQgazZs1ywVnr5a2vV8MbTeD9+++/7Y033nC75KVLl3b2GzZssKeeesq9t0pEFJqDSxqCA++vv/7qylR07qguW6Ff541+37lz50Dg/eWXX9zFyzHHHONCr77+3HPPuXNNu/4Kw48//rg7VxScdQ7JgoYAAggECxB4OR8QQCCsgAKvgsSRRx7pQpZ2ek8//fS9Aq8CjUJPcEB75JFHbOXKlfbEE0/kq6ud2dq1a9vEiRNdgPFa+/bt7YILLnD1npECrzeGao01VnBTMFV40q7w0UcfHfhS6Mf3oYFXu6gKYgrdXtP42h198cUXXeCNNK6CpHaEFcS1y6mm3eeGDRvalClTrHr16i7w6oY8BTev6QJj6dKlzju0yVOhT4HXa7feeqtp51U7o9pFVfhUGYqaXqeAPWzYsL3GysnJcRcSb7/9tlvjWHd4QweUmYK9LoDUIgXexx57zNWBK6B7TcFcAV5jqSkga4f69ttvD7zmhhtusHPPPdft9Gotpk+fbuPHj7dSpUrxLxkBBBDIU4DAy8mBAAJhBRR4FUpq1KjhPi5XiFXZwY8//pjrpjXtNGp39swzzwyMo6Co3UwFzfza6tWrXfnAN998YxkZGYGXKqhpt1G7hmr57fDmNYb6KZiqhOCTTz7JNY1IgVeBVKFRH8l7TQFRu8f6SD+acSdPnux2H1966aVc733ppZe6j+S1U6l5/P7777kCqXYzP/jgg8AucHBnBUrtqqq0w2t79uxxNdYy+/TTT90uqUoo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" - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "fig = em.criterion_plot(\n", - " results,\n", - " # cut off after 180 evaluations\n", - " max_evaluations=180,\n", - " # show only the current best function value\n", - " monotone=True,\n", - ")\n", - "fig.show(renderer=\"png\")" - ] - }, - { - "cell_type": "markdown", - "id": "ef9e2e0b", - "metadata": {}, - "source": [ - "## Make a params plot" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "45e853a5", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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WZs7d6498sgjpl9kF110kd1333127LHHFmNtdAmTwPbt2+2pp55yXyddpUoVe/DBB933mz/wwAMuAOskpq+Obd++vT3xxBO2bNkye/jhhy0vL8/1eeaZZ1wAvummm9wvNr2mihYtgSlTptjixYvd1wcHgffmm2+2I444wm644QYXevXnq6++6i6YCztmoqVSuvemd+/e1qRJE/vTn/7kxjxoic4lnGeifcxo8uTkk0+2mTNnWr169Wz58uV2++2328svv8y55AANPYG3GLBXXXWVXX755dauXTvXW+9Q3Lhxow0ePLgYa6NLmAU+/PBDGzhwoJvtX7VqlY0cOdJ0olLTDM2JJ57oZnWefvpp++abb0zBR23NmjXueJk9e3aYd59tzyegCxuNsX5H6ASmwKvjoGXLlvbGG29YpUqVXA/dFbrgggusZs2ahR4zVatWxTcCAmvXrrVbbrnF3eHJ3xKdSzjPRGDwE+zCt99+6y52ly5d6u706S5Qt27dbMmSJZxLDtDQE3iLAdupUyebOnWqm7FRe/31193/T548uRhro0uYBaZPn24ffPCBu0U9Z84cN6M7ZsyY2C6df/75Nnz4cDezq9Bz7rnnup/98MMP7v/fe++9MO8+2x4noGB76aWXunDz6aefumNBgXfTpk3uLtA//vGP2NK6vV29enU321/YMdO0aVN8IyCgc4MujBVw1q1bZ0cddZS7dV27dm1LdC7hPBOBwS9iF3Te+OKLL9zvjYkTJ9p5551nZ555JueSAzT0BN5iwLZt29ZefPFFNzujtmLFClebqVvdtNIjoCCjX1Sa4dfFz4wZM9yJTbW5QbvkkkusT58+7rZV586drUuXLrGfqcZT36RTpkyZ0oMW4T3VBa9KnPr27etuSwaBV9+8p1var7zySmzvVQqjgKzQU9gx06ZNmwhrlZ5d08XN/PnzXe2/6vqffPJJW7hwoan0JdG5hPNM9I+R//znP+5ukOq669SpY+PGjXM1/pxLDszYE3iL4arg8uijj7q6G7XXXnvNhV39Ha10CGzbts0uu+wy9yBSUNqiiyDVbupBtaDpFpXqshR4mzVrZt27d3c/0myPAs37779fOsAivpeaudPDivo9oBrN+MC7efNmN3OjW5dB08xOrVq1XOAt7JjR8UILv4Ce71Cg6devn9sZ1frr7s7KlSvdLe3CziWcZ8I/9on24KuvvnLnA10I6eHnWbNm2aRJk9zsri6OOZekf/wJvMUwveaaa+zCCy+0jh07ut46SHVS05O3tOgL7Nixw6644gp3ZX766afHdlilDbqdHdTl/vTTT9a6dWs3m6NfZjpGgjpvPbikZfXwIy38AuPHj3cPJyrYqGnsFWzq16/v6rtbtWrljgM9ia129dVXu98hmtUp7JhRyQMt/AKq6Q/q+7U3ekuLavvffvttS3Qu4TwT/rFPtAf63a963bvvvju2mOr6dYdw7969nEsOwPATeIuBqiswPYAQvKVBV2mjR492JzVatAW+++47F1ZUyhBfnqC91i3q0047zYYNG+ZmffWWBj2wNm3aNNuwYYN7VZUeXgve0qCrepU70KInED/Dq70bMmSIm9HVLJ8udlTioGOjcuXKhR4z0VMpnXv09ddfuzHWTO4xxxzjLox0caw3uyQ6l3Ceifbxort7/fv3d3f/dHG7fv16d47Q745DDjmEc8kBGH4CbzFRdVWm0Kv6S8309erVq5hroluYBPTwmQJtMJMXbLtqrvSaMT2Rrbc26EGEBg0auHcs1q1b1y2mmT490KZ3Lnbo0ME96FahQoUw7T7bmqRA/sCrN3TouNCsnmZ59eq6oBQm0TGT5MexWJYL6MFmvcFFF8x6faXe464LILVE5xLOM1k+sJ6bp8kQPfisGd2KFSu6AKxzgxrnEk/cAroTeNNvyhoRQAABBBBAAAEEskiAwJtFg8GmIIAAAggggAACCKRfgMCbflPWiAACCCCAAAIIIJBFAgTeLBoMNgUBBBBAAAEEEEAg/QIE3vSbskYEEEAAAQQQQACBLBIg8GbRYLApCCCAAAIIIIAAAukXIPCm35Q1IoAAAggggAACCGSRAIE3iwaDTUEAAQQQQAABBBBIvwCBN/2mrBEBBBBAAAEEEEAgiwQIvFk0GGwKAggggAACCCCAQPoFCLzpN2WNCCCAAAIIIIAAAlkkQODNosFgUxBAAAEEEEAAAQTSL0DgTb8pa0QAAQQQQAABBBDIIgECbxYNBpuCAAIIIIAAAgggkH4BAm/6TVkjAggggAACCCCAQBYJEHizaDDYFAQQQAABBBBAAIH0CxB402/KGhFAAAEEEEAAAQSySIDAm0WDwaYggAACCCCAAAIIpF+AwJt+U9aIAAJpFli9erXdcsst9umnn1rXrl3tzjvvTPMnsLrRo0fb999/b3fccQcYCCCAQOQECLyRG1J2CIH0CHTo0MHq1q1rTz755D4rXLdunZ1//vn2zjvvpOeDkliLPq9z58525ZVXulBWvXr1JHoVvsiDDz5o3333nQ0aNMgtpD+17kaNGqV1vV4ry3DndAfeF154wb799lu79NJLY3vSs2dPu+yyy6xTp04Z3js+DgEESrsAgbe0HwHsPwKFCCjw7tixw4YNG2bnnHNObKmSCLzNmze3p59+2po0aZKW8VqxYoX98MMP1q5dO9u1a5cLYI8++qh34I1fb1o2NIMrSXfgveGGG6xly5b7BN7nnnvOWrdubUceeWQG94yPQgABBMwIvBwFCCBQoIAC7x//+Ed74IEH7NVXX43NqhYUeJ999lmbOHGibdy40c0KK+x06dIlKVkFznvuucdefPFFF7CbNm1qw4cPd+E2NzfXBg8ebKtWrbKqVatauXLl7O9///t+M7xax913321z5851s4oNGjSwadOm2dtvv23PP/+8XXDBBXb77be7Wd1//vOfFoS7W2+91c4991xbs2ZNbP0ql/jd735nmzZtMv38jTfesJo1a9pFF11kvXv3tjJlytjChQsTrjcoC9A69N9Lly61smXL2m9/+1u3zmCGWttRsWJF+/zzz23lypX2008/WZs2bdy26u8Laton/fzjjz+2evXq2U033eQC+yuvvGKjRo2yxYsXu20Mmj7zz3/+s51++ul233332csvv+zGqU6dOu7vg9nW+MC7YcMGO+WUU5zLQQcdFFvX0UcfbQsWLHCfu3XrVvd5b775pn3zzTd2zDHHuP//5S9/aUOHDnU+5cuXt4MPPtgZaxzPPvtsu/rqq+3MM89069Q+63M//PBDO/TQQ6179+7Wt29fZ6Wm5TUrPGvWLNM2ab969Ojh1qEmr7vuusteeukltw0K0v3797dTTz01qWOPhRBAoPQIEHhLz1izpwikJKDAO3nyZHvkkUdc6FEwUcsfeBWwBg4caPfff781a9bM3nrrLRfCNGOqmdmimoKqQqj+/PnPf+6CksLza6+9ZlWqVHHdf/3rX5tukRdWcqDQs2zZMhs5cqQLch999JGddNJJLpgqcNaqVcvVAB9++OGWk5MTC7xBMC1o/QrJ7du3tyuuuML++9//2rXXXuv+W8E32fWqFEPbrBC2e/du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" - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "fig = em.params_plot(results[\"scipy_neldermead\"])\n", - "fig.show(renderer=\"png\")" - ] - }, - { - "cell_type": "markdown", - "id": "61df05f0", - "metadata": {}, - "source": [ - "## Use advanced options of params plot" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "c09ded87", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAArwAAAH0CAYAAADfWf7fAAAgAElEQVR4Xuy9B3iUZdb//6X3EOMqoQqIEDpKDQEVUDqIL+ASWdTgSvvvQsRCXJcFFktwRcqroOy7BEUEFvhJF1BASgApSg1NerdQQugi/+vck3t4MpnJPJNnZjJ58n2uy0tI7vo5d8L3OXPuc/LduXPnDviQAAmQAAmQAAmQAAmQgE0J5KPgtalluS0SIAESIAESIAESIAFFgIKXB4EESIAESIAESIAESMDWBCh4bW1ebo4ESIAESIAESIAESICCl2eABEiABEiABEiABEjA1gQoeG1tXm6OBEiABEiABEiABEiAgpdngARIgARIgARIgARIwNYEKHhtbV5ujgRIgARIgARIgARIgIKXZ4AESIAESIAESIAESMDWBCh4bW1ebo4ESIAESIAESIAESICCl2eABEiABEiABEiABEjA1gQoeG1tXm6OBEiABEiABEiABEiAgpdngARIgARIgARIgARIwNYEKHhtbV5ujgRIgARIgARIgARIgIKXZ4AESIAESIAESIAESMDWBCh4bW1ebo4ESIAESIAESIAESICCl2eABEiABEiABEiABEjA1gQoeG1tXm6OBEiABEiABEiABEiAgpdngARIgARIgARIgARIwNYEKHhtbV5ujgRIgARIgARIgARIgIKXZ4AESIAESIAESIAESMDWBCh4bW1ebo4ESIAESIAESIAESICCl2eABEiABEiABEiABEjA1gQoeG1tXm6OBEiABEiABEiABEiAgpdngARIgARIgARIgARIwNYEKHhtbV5ujgRIgARIgARIgARIgIKXZ4AESIAESIAESIAESMDWBCh4bW1ebo4ESIAESIAESIAESICCl2eABEiABEiABEiABEjA1gQoeG1tXm6OBEiABEiABEiABEiAgpdngARIgARIgARIgARIwNYEKHhtbV5ujgRIgARIgARIgARIgIKXZ4AESIAESIAESIAESMDWBCh4bW1ebo4ESIAESIAESIAESICCl2eABEiABEiABEiABEjA1gQoeG1tXm6OBEiABEiABEiABEiAgpdngARIgARIgARIgARIwNYEKHhtbV5ujgRIgARIgARIgARIgIKXZ4AESIAESIAESIAESMDWBCh4bW1ebo4ESIAESIAESIAESICCl2eABEiABEiABEiABEjA1gQoeG1tXm6OBEiABEiABEiABEiAgpdngARIgARIgARIgARIwNYEKHhtbV5ujgRIgARIgARIgARIgIKXZ4AESIAESIAESIAESMDWBCh4bW1ebo4ESIAESIAESIAESICCl2eABEiABEiABEiABEjA1gQoeG1tXm6OBEiABEiABEiABEiAgpdngARIgARIgARIgARIwNYEKHhtbV5ujgRIgARIgARIgARIgIKXZ4AESIAESIAESIAESMDWBCh4bW1ebo4ESIAESIAESIAESICCl2eABEiABEiABEiABEjA1gQoeG1tXm6OBEiABEiABEiABEiAgpdngARIgARIgARIgARIwNYEKHhtbV5ujgRIgARIgARIgARIgIKXZ4AESIAESIAESIAESMDWBCh4bW1ebo4ESIAESIAESIAESICCl2eABEiABEiABEiABEjA1gQoeG1tXm6OBEiABEiABEiABEiAgpdngARIgARIgARIgARIwNYEKHhtbV5ujgRIgARIgARIgARIgIKXZ4AESIAESIAESIAESMDWBCh4bW1ebo4ESIAESIAESIAESICCl2eABEiABEiABEiABEjA1gQoeG1tXm6OBEiABEiABEiABEiAgpdngARIgARIgARIgARIwNYEKHhtbV5ujgRIgARIgARIgARIgIKXZ4AESIAESIAESIAESMDWBCh4bW1ebo4ESIAESIAESIAESICCl2eABEiABEiABEiABEjA1gQoeG1tXm6OBEiABEiABEiABEiAgpdngARIgARIgARIgARIwNYEKHhtbV5ujgRIgARIgARIgARIgIKXZ4AESIAESIAESIAESMDWBCh4bW1ebo4ESIAESIAESIAESICCl2eABEiABEiABEiABEjA1gQoeG1tXm6OBEiABEiABEiABEiAgpdngARIgARIgARIgARIwNYEKHhtbV5ujgRIgARIgARIgARIgIKXZ4AESIAESIAESIAESMDWBCh4bW1ebo4ESIAESIAESIAESICCl2eABEiABEiABEiABEjA1gQoeG1tXm6OBEiABEiABEiABEiAgpdngARIgARIgARIgARIwNYEKHhtbV5ujgRIgARIgARIgARIgIKXZ4AESIAESIAESIAESMDWBCh4bW1ebo4ESIAESIAESIAESICCl2eABEiABEiABEiABEjA1gQoeG1tXm6OBEiABEiABEiABEiAgpdngARIgARIgARIgARIwNYEKHhtbV5ujgRIgARIgARIgARIgIKXZ4AESIAESIAESIAESMDWBCh4bW1ebo4ESIAESIAESIAESICCl2eABEiABEiABEiABEjA1gQoeG1tXm6OBEiABEiABEiABEiAgpdngARIgARIgARIgARIwNYEKHhtbV5ujgRIgARIgARIgARIgIKXZ4AESIAESIAESIAESMDWBCh4bW1ebo4ESIAESIAESIAESICC18IZeOihh3Dw4EELI7ArCZAACZAACZAACZBAoAlQ8FogTMFrAR67kgAJkAAJkAAJkECQCFDwWgBNwWsBHruSAAmQAAmQAAmQQJAIUPBaAE3BawEeu5IACZAACZAACZBAkAhQ8FoATcFrAR67kgAJkAAJkAAJkECQCFDwWgBNwWsBHruSAAmQAAmQAAmQQJAIUPBaAE3BawEeu5IACZAACZAACZBAkAhQ8FoATcFrAR67kgAJkAAJkAAJkECQCFDwWgBNwWsBHruSAAmQAAmQAAmQQJAIUPBaAE3BawEeu5IACZAACZAACZBAkAhQ8FoATcFrAR67kgAJkAAJkAAJkECQCFDwWgBNwWsBHruSAAmQAAmQAAmQQJAIUPBaAE3BawEeu5IACZAACZAACZBAkAhQ8FoATcFrAR67kgAJkAAJkAAJkECQCFDwWgBNwWsBHruSAAmQAAmQAAmQQJAIUPBaAG1F8G49t1XN3KhMIwsrYFcSIAESIAESIAESIAFvBCh4vRHK4vvZFbyn0k6h/bz2auQ5XeYgKiLKwirYlQRIgARIgARIgARIICsCFLwWzkd2Be/0lOl4b8t7aubxrcajTaU2FlbBriRAAiRAAiRAAiRAAhS8AToD2RW8PRb1wP7z+9WqBtYfiEENBgVohRyWBEiABEiABEiABEiAHl4LZyA7gtcYziBTt6rYChNbT7SwCnYlARIgARIgARIgARKgh9eHM7Bu3Tr07dsXGzZswH333Zdlz+wI3sTNiZixdwaq31MdBy4cQI2IGpjbZa4PK2RTEiABEiABEiABEiABXwjQw2uglZaWhueeew7Xr1/Hp59+GhDB225eO5xOO61id+NXx6vZdz2/yxebsS0JkAAJkAAJkAAJkIAPBCh4DbDeeOMNNG/eHFOmTMHUqVP9Lnj3nd+H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SgIkQAIkQAIkQAIkkF0IUPBml5XgPEiABEiABEiABEiABOJCgII3Llg5KAmQAAmQAAmQAAmQQHYhQMGbXVaC8yABEiABEiABEiABEogLAQreuGDloCRAAiRAAiRAAiRAAtmFAAVvdlkJzoMESIAESIAESIAESCAuBCh444KVg5IACZAACZAACZAACWQXAhS82WUlOA8SIIGgBNasWSODBw+Wbdu2Sfv27WXYsGGkFWMCw4cPl6NHj8rzzz8f45E5HAmQAAmceQIUvGd+DTgDEsiWBK688kqpUqWKfPjhhwHz++OPP6RTp06ycuXKLJs3znfNNddIjx49lCgrWbKkp3O//vrrcuTIERk0aJAaB//H2LVq1YrpuJ4Gy+LOsRa8X3zxhaSkpEi3bt38V3LXXXfJ3XffLa1atcriq+PpSIAEcjsBCt7cfgfw+kkgCAEI3sOHD8uQIUPk5ptv9h91JgRvw4YNZcqUKVKnTp2YrNeyZcvkxIkT0qJFCzl58qQSYO+++65nwWuOG5OJZuEgsRa8/fr1k0aNGgUI3s8++0wuu+wyqVq1ahZeGU9FAiRAAiIUvLwLSIAEHAlA8N5///0yZswYmTNnjj+q6iR4p06dKm+++abs2bNHRYUhdtq0aeOKLATnyy+/LDNmzFAC+6KLLpKnn35aidvNmzfLE088IatXr5bixYtLvnz55Ntvv80U4cUYL730ksycOVNFFWvUqCGTJk2SX375RaZNmya33nqrPPfccyqq+/PPP4sWd88884zccsstsn79ev/4sEtcd911snfvXsHnS5YskTJlykjnzp2lV69ekidPHpk/f37IcbUtAGPg34sXL5a8efPKVVddpcbUEWrMo1ChQrJr1y7573//K6mpqdKkSRM1V3zfqeGa8Pnvv/8u1apVk0ceeUQJ9tmzZ8uLL74oP/zwg5qjbjjn448/LjfccIO8+uqr8s0336h1qlixovq+jraagnfnzp1y9dVXKy758+f3j1WzZk357rvv1HkPHjyozrd06VJJTk6WunXrqq/PO+88eeqppxSfAgUKSEJCgmKMdbzpppvkvvvuk3bt2qkxcc0477p166REiRJy2223Sd++fRUrNByPqPDnn38umBOuq2vXrmoMNPAaMWKEfPXVV2oOENIPP/ywXHvtta7uPR5EAiSQewhQ8OaeteaVkkBEBCB4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IIjxUACBiocS8HESvNh0BwGJBxaIStgwsIkRDzzIggAGOjMDotW4ThwD/y0aBCwEMR4+4K9Fqjm7gF27dq1ijP/j4QbRZ3h7dXQ6nODFHMACG/mwWQ9WBghtr4VJ3P2E8CgSIIGcRICCNyetFudKAiRAAiRAAiRAAiQQMQEK3oiRsQMJkAAJkAAJkAAJkEBOIkDBm5NWi3MlARIgARIgARIgARKImAAFb8TI2IEESIAESIAESIAESCAnEaDgzUmrxbmSAAmQAAmQAAmQAAlETICCN2Jk7EACJEACJEACJEACJJCTCFDw5qTV4lxJgARIgARIgARIgAQiJkDBGzEydiABEiABEiABEiABEshJBCh4c9Jqca4kQAIkQAIkQAIkQAIRE6DgjRgZO5AACZAACZAACZAACeQkAhS8OWm1OFcSIAESIAESIAESIIGICVDwRoyMHUiABEiABEiABEiABHISAQrenLRanCsJkAAJkAAJkAAJkEDEBCh4I0bGDiRAAiRAAiRAAiRAAjmJAAVvTlotzpUESIAESIAESIAESCBiAhS8ESNjBxIgARIgARIgARIggZxEgII3J60W50oCJEACJEACJEACJBAxAQreiJGxAwmQAAmQAAmQAAmQQE4iQMGbk1aLcyUBEiABEiABEiABEoiYAAVvxMjYgQRIgARIgARIgARIICcRoODNSavFuZIACZAACZAACZAACURMgII3YmTsQAIkQAIkQAIkQAIkkJMIUPDmpNXiXEmABEiABEiABEiABCImQMEbMTJ2IAESIAESIAESIAESyEkEKHhz0mpxriRAAiRAAiRAAiRAAhEToOCNGBk7kAAJkAAJkAAJkAAJ5CQCFLw5abXqT6U2AAAAaklEQVQ4VxIgARIgARIgARIggYgJUPBGjIwdSIAESIAESIAESIAEchIBCt6ctFqcKwmQAAmQAAmQAAmQQMQEKHgjRsYOJEACJEACJEACJEACOYkABW9OWi3OlQRIgARIgARIgARIIGIC/w/HE88ua0co3AAAAABJRU5ErkJggg==" - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "fig = em.params_plot(\n", - " results[\"scipy_neldermead\"],\n", - " # cut off after 180 evaluations\n", - " max_evaluations=180,\n", - " # select only the last three parameters\n", - " selector=lambda x: x[2:],\n", - ")\n", - "fig.show(renderer=\"png\")" - ] - }, - { - "cell_type": "markdown", - "id": "7b663015", - "metadata": {}, - "source": [ - "## criterion_plot with multistart optimization" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "70099614", - "metadata": {}, - "outputs": [], - "source": [ - "def alpine(x):\n", - " return np.sum(np.abs(x * np.sin(x) + 0.1 * x))\n", - "\n", - "\n", - "res = em.minimize(\n", - " sphere,\n", - " params=np.arange(10),\n", - " soft_lower_bounds=np.full(10, -3),\n", - " soft_upper_bounds=np.full(10, 10),\n", - " algorithm=\"scipy_neldermead\",\n", - " multistart=True,\n", - " multistart_options={\"n_samples\": 1000, \"convergence.max_discoveries\": 10},\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "e21dcd65", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAArwAAAH0CAYAAADfWf7fAAAgAElEQVR4XuzdC3xU1b33/98kkzsh4ZIAQQKCEu6gRkEE44X0HNCK1VZbHquv2lZ7+vL0otY+qP1bTlufempbTttTTz2tTy/e+lR6QBQtqBBE0JLKLRC5iYQ74ZaQ+23+r9+a7GHPZHLdk8nM5LNfrxaTzNp77ffa6JfF2r/l8ng8HuFAAAEEEEAAAQQQQCBGBVwE3hgdWW4LAQQQQAABBBBAwAgQeHkQEEAAAQQQQAABBGJagMAb08PLzSGAAAIIIIAAAggQeHkGEEAAAQQQQAABBGJagMAb08PLzSGAAAIIIIAAAggQeHkGEEAAAQQQQAABBGJagMAb08PLzSGAAAIIIIAAAggQeHkGEEAAAQQQQAABBGJagMAb08PLzSGAAAIIIIAAAggQeHkGEEAAAQQQQAABBGJagMAb08PLzSGAAAIIIIAAAggQeHkGEEAAAQQQQAABBGJagMAb08PLzSGAAAIIIIAAAggQeHkGEEAAAQQQQAABBGJagMAb08PLzSGAAAIIIIAAAggQeHkGEEAAAQQQQAABBGJagMAb08PLzSGAAAIIIIAAAggQeHkGEEAAAQQQQAABBGJagMAb08PLzSGAAAIIIIAAAggQeHkGEEAAAQQQQAABBGJagMAb08PLzSGAAAIIIIAAAggQeHkGEEAAAQQQQAABBGJagMAb08PLzSGAAAIIIIAAAggQeHkGEEAAAQQQQAABBGJagMAb08PLzSGAAAIIIIAAAggQeHkGEEAAAQQQQAABBGJagMAb08PLzSGAAAIIIIAAAggQeHkGEEAAAQQQQAABBGJagMAb08PLzSGAAAIIIIAAAggQeHkGEEAAAQQQQAABBGJagMAb08PLzSGAAAIIIIAAAggQeHkGEEAAAQQQQAABBGJagMAb08PLzSGAAAIIIIAAAggQeHkGEEAAAQQQQAABBGJagMAb08PLzSGAAAIIIIAAAggQeHkGEEAAAQQQQAABBGJagMAb08PLzSGAAAIIIIAAAggQeHkGEEAAAQQQQAABBGJagMAb08PLzSGAAAIIIIAAAggQeHkGEEAAAQQQQAABBGJagMAb08PLzSGAAAIIIIAAAggQeHkGEEAAAQQQQAABBGJagMAb08PLzSGAAAIIIIAAAggQeHkGEEAAAQQQQAABBGJagMAb08PLzSGAAAIIIIAAAggQeHkGEEAAAQQQQAABBGJagMAb08PLzSGAAAIIIIAAAggQeHkGEEAAAQQQQAABBGJagMAb08PLzSGAAAIIIIAAAggQeHkGEEAAAQQQQAABBGJagMAb08PLzSGAAAIIIIAAAggQeHkGEEAAAQQQQAABBGJagMAb08PLzSGAAAIIIIAAAggQeHkGEEAAAQQQQAABBGJagMAb08PLzSGAAAIIIIAAAggQeHkGEEAAAQQQQAABBGJagMAb08PLzSGAAAIIIIAAAggQeHkGEEAAAQQQQAABBGJagMAb08PLzSGAAAIIIIAAAggQeHkGEEAAAQQQQAABBGJagMAb08PLzSGAAAIIIIAAAggQeHkGEEAAAQQQQAABBGJagMAb08PLzSGAAAIIIIAAAggQeHkGEEAAAQQQQAABBGJagMAb08PLzSGAAAIIIIAAAggQeHkGEEAAAQQQQAABBGJagMAb08PLzSGAAAIIIIAAAggQeHkGEEAAAQQQQAABBGJagMAb08PLzSGAAAIIIIAAAggQeHkGEEAAAQQQQAABBGJagMAb08PLzSGAAAIIIIAAAggQeHkGEEAAAQQQQAABBGJagMAb08PLzSGAAAIIIIAAAggQeHkGEEAAAQQQQAABBGJagMAb08PLzSGAAAIIIIAAAggQeHkGEEAAAQQQQAABBGJagMAb08PLzSGAAAIIIIAAAggQeHkGEEAAAQQQQAABBGJagMAb08PLzSGAAAIIIIAAAggQeHkGEEAAAQQQQAABBGJagMAb08PLzSGAAAIIIIAAAggQeHkGEEAAAQQQQAABBGJagMAb08PLzSGAAAIIIIAAAggQeHkGEEAAAQQQQAABBGJagMAb08PLzSGAAAIIIIAAAggQeHkGEEAAAQQQQAABBGJagMAb08PLzSGAAAIIIIAAAggQeHkGEEAAAQQQQAABBGJagMAb08PLzSGAAAIIIIAAAggQeHkGEEAAAQQQQAABBGJagMAb08PLzSGAAAIIIIAAAggQeHkGEEAAAQQQQAABBGJagMAb08PLzSGAAAIIIIAAAggQeHkGEEAAAQQQQAABBGJagMAb08PLzSGAAAIIIIAAAggQeHkGEEAAAQQQQAABBGJagMAb08PLzSGAAAIIIIAAAggQeHkGEEAAAQQQQAABBGJa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4D+NYoITzd2rW7K9pXCDFb34MLV8p444eyYBErASoOD1th4oeEVk6tSpsn37dvXbRVm6dKmK4Llz58akS5cGb4uPrUmABEiABEiABEigJghQ8IrIli1bZOjQoTJjxoxwloZOnTrJ8OHDKXhrYhXyHiRAAiRAAiRAAiSQQgIUvJVw582bJxMnTpSSkhLp27evTJgwQXLjBADQwpvClcmuSYAESIAESIAESCBJBCh4PYCk4PUAj01JgARIgARIgARIoIYIUPB6AE3B6wEem5IACZAACZAACZBADRGg4PUAmoLXAzw2JQESIAESIAESIIEaIkDB6wE0Ba8HeGxKAiRAAiRAAiRAAjVEgILXA2gKXg/w2JQESIAESIAESIAEaogABa8H0BS8HuCxKQmQAAmQAAmQAAnUEAEKXg+gKXg9wGNTEiABEiABEiABEqghAhS8HkBT8HqAx6YkQAIkQAIkQAIkUEMEKHg9gKbg9QCPTUmABEiABEiABEighghQ8HoATcHrAR6bkgAJkAAJkAAJkEANEaDg9QCagtcDPDYlARIgARIgARIggRoiQMHrATQFrwd4bEoCJEACJEACJEACNUSAgtcDaAheFhIgARJwQ6B3796ycOFCN01YlwRIgARk7dq1pOCBAAWvB3jTp0+XYDAow4YN89ALm8Yj8OKLL0pZWZlcffXV8aryugcCr7zyiuzevVtuuOEGD72waTwCc+bMkc2bN8uIESPiVeV1DwRef/11WblypYwcOdJDL2waj8C7774rixYtktGjR8eryuskcEgJUPB6wE/B6wGei6YUvC5geahKwesBnoumFLwuYHmoSsHrAZ6LphS8LmCx6iElQMHrAT8Frwd4LppS8LqA5aEqBa8HeC6aUvC6gOWhKgWvB3gumlLwuoDFqoeUAAWvB/wUvB7guWhKwesCloeqFLwe4LloSsHrApaHqhS8HuC5aErB6wIWqx5SAhS8HvBT8HqA56IpBa8LWB6qUvB6gOeiKQWvC1geqlLweoDnoikFrwtYrHpICVDwHlL8vDkJkAAJkAAJkAAJkECqCVDwppow+ycBEiABEiABEiABEjikBCh4Dyl+3pwESIAESIAESIAESCDVBCh4U02Y/ZMACZAACZAACZAACRxSAhS8hxQ/b04CJEACJEACJEACJJBqAhS8CRAOBALy0EMPybx58yQn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AiRAAiSQ0QQoeDN6evlwJEACJEACJEACJEACFLxcAyRAAiRAAiRAAiRAAhlNgII3o6eXD0cCJEACJEACJEACJEDByzVAAiRw2BNYunSpjB07VjZt2iQ/+9nP5KGHHjrsx5xuA3z44YeluLhYHnjggXQbOsdLAiRAAnEJUPDGRcQKJFA7CfTt21eOPvpo+fvf/14FwPr16+Xiiy+WL774osbA4H79+/eXa665RkVZkyZNPN37iSeekKKiIrn77ru1H/xE3506dUpqv546q+HGyRa8r776qhQWFsovf/nL8JMMGzZMfvWrX8k555xTw0/H25EACdR2AhS8tX0F8PlJIAoBCN79+/fLvffeK7/4xS/CtQ6F4D355JNlxowZcsIJJyRlvhYtWiSlpaXSp08fKSsrUwH27LPPeha81n6TMtAa7CTZgveWW26RHj16VBG8//znP6VXr17Stm3bGnwy3ooESIAERCh4uQpIgARsCUDw/vrXv5Y///nP8uabb4atqnaC95VXXpG//e1vsm3bNrUKQ+wMGjTIEVkIzkcffVRee+01Fdhdu3aV++67T8Xt2rVrZfTo0bJkyRJp2LChZGdny9tvv13Nwos+HnnkEZk7d65aFTt06CDTp0+XxYsXy6xZs+SSSy6R8ePHq1X3f//7nxhx97vf/U4GDx4sq1atCvcPd4lzzz1XvvvuO8H1jz76SJo3by6XXXaZ3HjjjeLz+eS9996L2a9xC0Af+POCBQskKytL+vXrp30aCzXGUa9ePdm6dat8/vnnUlFRIb1799ax4vd2Bc+E6+vWrZN27drJyJEjVbC/8cYbMmHCBJk/f76O0RTc86677pKBAwfKY489Jq+//rrOU5s2bfT3xtpqFbxbtmyRs846S7nUqVMn3FfHjh3lnXfe0fvu3r1b77dw4UIpKCiQLl266N+PPfZYueeee5RPTk6O1K1bVxljHn/+85/LddddJ+eff772iWfGfVeuXCmNGzeWIUOGyM0336ysUFAfVuF//etfgjHhua644grtAwW8fv/738u///1vHQOE9O233y4DBgxwtPZYiQRIoPYQoOCtPXPNJyUBVwQgeJ955hmZMmWKih4IE5RIwQuBdeedd8rjjz8u3bp1k08//VRFGCymsMzGKxCqEKH4+YMf/ECFEsTzu+++Kw0aNNDmP/zhDwWfyKO5HED0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2TJljJ/Y3MD6DN9eY52OJ3gxBrBAIB+C9eDKAKHt9WASZ/9CWIsESCCdCFDwptNscawkQAIkQAIkQAIkQAKuCVDwukbGBiRAAiRAAiRAAiRAAulEgII3nWaLYyUBEiABEiABEiABEnBNgILXNTI2IAESIAESIAESIAESSCcCFLzpNFscKwmQAAmQAAmQAAmQgGsCFLyukbEBCZAACZAACZAACZBAOhGg4E2n2eJYSYAESIAESIAESIAEXBOg4HWNjA1IgARIgARIgARIgATSiQAFbzrNFsdKAiRAAiRAAiRAAiTgmgAFr2tkbEACJEACJEACJEACJJBOBCh402m2OFYSIAESIAESIAESIAHXBCh4XSNjAxIgARIgARIgARIggXQiQMGbTrPFsZIACZAACZAACZAACbgmQMHrGhkbkAAJkAAJkAAJkAAJpBMBCt50mi2OlQRIgARIgARIgARIwDUBCl7XyNiABEiABEiABEiABEggnQhQ8KbTbHGsJEACJEACJEACJEACrglQ8LpGxgYkQAIkQAIkQAIkQALpRICCN51mi2MlARIgARIgARIgARJwTYCC1zUyNiABEiABEiABEiABEkgnAhS86TRbHCsJkAAJkAAJkAAJkIBrAhS8rpGxAQmQAAmQAAmQAAmQQDoRoOBNp9niWEmABEiABEiABEiABFwToOB1jYwNSIAESIAESIAESIAE0okABW86zRbHSgIkQAIkQAIkQAIk4JoABa9rZGxAAiRAAiRAAiRAAiSQTgQoeNNptjhWEiABEiABEiABEiAB1wQoeF0jYwMSIAESIAESIAESIIF0IkDBm06zxbGSAAmQAAmQAAmQAAm4JkDB6xoZG5AACZAACZAACZAACaQTAQredJotjpUESIAESIAESIAESMA1gf8D+frUuAW9h2gAAAAASUVORK5CYII=" - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "fig = em.criterion_plot(res, max_evaluations=3000)\n", - "fig.show(renderer=\"png\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "cf0d7376", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.10.8" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/docs/source/how_to_guides/optimization/index.md b/docs/source/how_to_guides/optimization/index.md deleted file mode 100644 index f80af474c..000000000 --- a/docs/source/how_to_guides/optimization/index.md +++ /dev/null @@ -1,21 +0,0 @@ -# Optimization - -```{toctree} ---- -maxdepth: 1 ---- -scipy_tutorial_2022 -how_to_specify_the_criterion_function -how_to_specify_parameters -how_to_specify_algorithm_and_algo_options -how_to_specify_bounds -how_to_specify_constraints -how_to_use_logging -how_to_handle_errors_during_optimization -how_to_scale_optimization_problems -how_to_do_multistart_optimizations -how_to_benchmark_optimization_algorithms -how_to_visualize_histories -how_to_visualize_an_optimization_problem -how_to_pick_an_optimizer -``` diff --git a/docs/source/how_to_guides/optimization/robinson-crusoe-covariance.csv b/docs/source/how_to_guides/optimization/robinson-crusoe-covariance.csv deleted file mode 100644 index 12465f9a1..000000000 --- a/docs/source/how_to_guides/optimization/robinson-crusoe-covariance.csv +++ /dev/null @@ -1,18 +0,0 @@ - -category,name,value -delta,delta,0.95 -wage_fishing,exp_fishing,0.1 -wage_fishing,contemplation_with_friday,0.4 -nonpec_fishing,constant,-1 -nonpec_friday,constant,-1 -nonpec_friday,not_fishing_last_period,-1 -nonpec_hammock,constant,2.5 -nonpec_hammock,not_fishing_last_period,-1 -shocks_cov, var_fishing,1 -shocks_cov,cov_friday_fishing,0 -shocks_cov,var_friday,1 -shocks_cov,cov_hammock_fishing,-0.2 -shocks_cov,cov_hammock_friday,0 -shocks_cov,var_hammock,1 -lagged_choice_1_hammock,constant,1 -meas_error,sd_fishing,1e-6 diff --git a/docs/source/how_to_guides/optimization/robinson-crusoe-sdcorr.csv b/docs/source/how_to_guides/optimization/robinson-crusoe-sdcorr.csv deleted file mode 100644 index 0f8221be6..000000000 --- a/docs/source/how_to_guides/optimization/robinson-crusoe-sdcorr.csv +++ /dev/null @@ -1,17 +0,0 @@ -category,name,value -delta,delta,0.95 -wage_fishing,exp_fishing,0.1 -wage_fishing,contemplation_with_friday,0.4 -nonpec_fishing,constant,-1.0 -nonpec_friday,constant,-1.0 -nonpec_friday,not_fishing_last_period,-1.0 -nonpec_hammock,constant,2.5 -nonpec_hammock,not_fishing_last_period,-1.0 -shocks_sdcorr,sd_fishing,1.0 -shocks_sdcorr,sd_friday,1.0 -shocks_sdcorr,sd_hammock,1.0 -shocks_sdcorr,corr_friday_fishing,0.0 -shocks_sdcorr,corr_hammock_fishing,-0.2 -shocks_sdcorr,corr_hammock_friday,0.0 -lagged_choice_1_hammock,constant,1.0 -meas_error,sd_fishing,1e-06 diff --git a/docs/source/how_to_guides/optimization/scipy_tutorial_2022.md b/docs/source/how_to_guides/optimization/scipy_tutorial_2022.md deleted file mode 100644 index 3e99040d0..000000000 --- a/docs/source/how_to_guides/optimization/scipy_tutorial_2022.md +++ /dev/null @@ -1,7 +0,0 @@ -(estimagic_scipy2022)= - -# estimagic tutorial at SciPy2022 conference - -
- IMAGE ALT TEXT -
diff --git a/docs/source/index.md b/docs/source/index.md index 12e3d31b8..6b8e1b9fb 100644 --- a/docs/source/index.md +++ b/docs/source/index.md @@ -1,3 +1,5 @@ +# +
@@ -10,14 +12,17 @@

-`estimagic` is a Python package for nonlinear optimization with or without constraints. -It is particularly suited to solve difficult nonlinear estimation problems. On top, it -provides functionality to perform statistical inference on estimated parameters. +*optimagic* is a Python package for numerical optimization. It is a unified interface to +optimizers from SciPy, NlOpt and many other Python packages. -For a complete introduction to optimization in estimagic, check out the -{ref}`estimagic_scipy2022` +*optimagic*'s `minimize` function works just like SciPy's, so you don't have to adjust +your code. You simply get more optimizers for free. On top you get powerful diagnostic +tools, parallel numerical derivatives and more. If you want to see what *optimagic* can +do, check out this [tutorial](tutorials/optimization_overview.ipynb) -If you want to learn more about estimagic, dive into one of the following topics +*optimagic* was formerly called *estimagic*, because it also provides functionality to +perform statistical inference on estimated parameters. *estimagic* is now a subpackage +of *optimagic*, which is documented [here](estimagic). `````{grid} 1 2 2 2 --- @@ -29,16 +34,16 @@ gutter: 3 :class-img-top: index-card-image :shadow: md -```{button-link} getting_started/index.html +```{button-link} tutorials/index.html --- click-parent: ref-type: ref class: stretched-link index-card-link sd-text-primary --- -Getting Started +Tutorials ``` -New users of estimagic should read this first. +New users of optimagic should read this first. ```` @@ -48,7 +53,7 @@ New users of estimagic should read this first. :class-img-top: index-card-image :shadow: md -```{button-link} how_to_guides/index.html +```{button-link} how_to/index.html --- click-parent: ref-type: ref @@ -67,7 +72,7 @@ Detailed instructions for specific and advanced tasks. :class-img-top: index-card-image :shadow: md -```{button-link} getting_started/installation.html +```{button-link} installation.html --- click-parent: ref-type: ref @@ -76,7 +81,7 @@ class: stretched-link index-card-link sd-text-primary Installation ``` -Installation instructions for estimagic and optional dependencies. +Installation instructions for optimagic and optional dependencies. ```` @@ -106,7 +111,7 @@ List of numerical optimizers and their optional parameters. :class-img-top: index-card-image :shadow: md -```{button-link} explanations/index.html +```{button-link} explanation/index.html --- click-parent: ref-type: ref @@ -125,7 +130,7 @@ Background information on key topics central to the package. :class-img-top: index-card-image :shadow: md -```{button-link} reference_guides/index.html +```{button-link} reference/index.html --- click-parent: ref-type: ref @@ -134,7 +139,7 @@ class: stretched-link index-card-link sd-text-primary API Reference ``` -Detailed description of the estimagic API. +Detailed description of the optimagic API. ```` @@ -154,7 +159,7 @@ class: stretched-link index-card-link sd-text-primary Videos ``` -Collection of tutorials, talks, and screencasts on estimagic. +Collection of tutorials, talks, and screencasts on optimagic. ```` @@ -165,47 +170,51 @@ Collection of tutorials, talks, and screencasts on estimagic. hidden: true maxdepth: 1 --- -getting_started/index -how_to_guides/index -explanations/index -reference_guides/index +tutorials/index +how_to/index +explanation/index +reference/index development/index videos algorithms +estimagic/index +installation ``` -## Highlights +______________________________________________________________________ -### Optimization +We thank all institutions that have funded or supported optimagic (formerly estimagic) -- estimagic wraps algorithms from *scipy.optimize*, *nlopt*, *pygmo* and more. See - {ref}`list_of_algorithms` -- estimagic implements constraints efficiently via reparametrization, so you can solve - constrained problems with any optimzer that supports bounds. See {ref}`constraints` -- The parameters of an optimization problem can be arbitrary pytrees. See {ref}`params`. -- The complete history of parameters and function evaluations can be saved in a database - for maximum reproducibility. See [How to use logging] -- Painless and efficient multistart optimization. See [How to do multistart] -- The progress of the optimization can be displayed in `criterion_plot` and - `params_plot` while the optimization is still running. +```{image} _static/images/aai-institute-logo.svg +--- +width: 185px +--- +``` -### Estimation and Inference +```{image} _static/images/numfocus_logo.png +--- +width: 200 +--- +``` + +```{image} _static/images/tra_logo.png +--- +width: 240px +--- +``` -- You can estimate a model using method of simulated moments (MSM), calculate standard - errors and do sensitivity analysis with just one function call. See [MSM Tutorial] -- Asymptotic standard errors for maximum likelihood estimation. -- estimagic also provides bootstrap confidence intervals and standard errors. Of course - the bootstrap procedures are parallelized. +```{image} _static/images/hoover_logo.png +--- +width: 192px +--- +``` -### Numerical differentiation +```{image} _static/images/transferlab-logo.svg +--- +width: 420px +--- +``` -- estimagic can calculate precise numerical derivatives using - [Richardson extrapolations](https://en.wikipedia.org/wiki/Richardson_extrapolation). -- Function evaluations needed for numerical derivatives can be done in parallel with - pre-implemented or user provided batch evaluators. +______________________________________________________________________ **Useful links for search:** {ref}`genindex` | {ref}`modindex` | {ref}`search` - -[how to do multistart]: how_to_guides/optimization/how_to_do_multistart_optimizations -[how to use logging]: how_to_guides/optimization/how_to_use_logging -[msm tutorial]: getting_started/estimation/first_msm_estimation_with_estimagic diff --git a/docs/source/installation.md b/docs/source/installation.md new file mode 100644 index 000000000..7902df829 --- /dev/null +++ b/docs/source/installation.md @@ -0,0 +1,61 @@ +# Installation + +## Basic installation + +The preferred way to install optimagic is via `conda` or `mamba`. To do so, open a +terminal and type: + +``` +conda install -c conda-forge optimagic +``` + +Alternatively, you can install optimagic via pip: + +``` +pip install estimagic +``` + +In both cases, you get optimagic and all of its mandatory dependencies. + +## Installing optional dependencies + +Only `scipy` is a mandatory dependency of optimagic. Other algorithms become available +if you install more packages. We make this optional because you will rarely need all of +them in the same project. + +For an overview of all optimizers and the packages you need to install to enable them, +see {ref}`list_of_algorithms`. + +To enable all algorithms at once, do the following: + +``` +conda -c conda-forge install nlopt +``` + +``` +pip install Py-BOBYQA +``` + +``` +pip install DFO-LS +``` + +``` +conda install -c conda-forge petsc4py +``` + +*Note*: `` `petsc4py` `` is not available on Windows. + +``` +conda install -c conda-forge cyipopt +``` + +``` +conda install -c conda-forge pygmo +``` + +``` +pip install fides>=0.7.4 +``` + +*Note*: Make sure you have at least `fides` 0.7.4. diff --git a/docs/source/reference_guides/algo_options.md b/docs/source/reference/algo_options.md similarity index 61% rename from docs/source/reference_guides/algo_options.md rename to docs/source/reference/algo_options.md index aa6cbc32d..367644521 100644 --- a/docs/source/reference_guides/algo_options.md +++ b/docs/source/reference/algo_options.md @@ -3,6 +3,6 @@ # The default algorithm options ```{eval-rst} -.. automodule:: estimagic.optimization.algo_options +.. automodule:: optimagic.optimization.algo_options :members: ``` diff --git a/docs/source/reference_guides/batch_evaluators.md b/docs/source/reference/batch_evaluators.md similarity index 62% rename from docs/source/reference_guides/batch_evaluators.md rename to docs/source/reference/batch_evaluators.md index dc27fd31c..845f056de 100644 --- a/docs/source/reference_guides/batch_evaluators.md +++ b/docs/source/reference/batch_evaluators.md @@ -3,6 +3,6 @@ # Batch evaluators ```{eval-rst} -.. automodule:: estimagic.batch_evaluators +.. automodule:: optimagic.batch_evaluators :members: ``` diff --git a/docs/source/reference_guides/index.md b/docs/source/reference/index.md similarity index 59% rename from docs/source/reference_guides/index.md rename to docs/source/reference/index.md index c4ef7b074..ad3ab03e4 100644 --- a/docs/source/reference_guides/index.md +++ b/docs/source/reference/index.md @@ -1,7 +1,7 @@ -# API +# optimagic API ```{eval-rst} -.. currentmodule:: estimagic +.. currentmodule:: optimagic ``` (maximize-and-minimize)= @@ -83,96 +83,6 @@ ``` -(estimation)= - -## Estimation - -```{eval-rst} -.. dropdown:: estimate_ml - - .. autofunction:: estimate_ml - -``` - -```{eval-rst} -.. dropdown:: estimate_msm - - .. autofunction:: estimate_msm - -``` - -```{eval-rst} -.. dropdown:: get_moments_cov - - .. autofunction:: get_moments_cov - -``` - -```{eval-rst} -.. dropdown:: lollipop_plot - - .. autofunction:: lollipop_plot - -``` - -```{eval-rst} -.. dropdown:: estimation_table - - .. autofunction:: estimation_table - -``` - -```{eval-rst} -.. dropdown:: render_html - - .. autofunction:: render_html - -``` - -```{eval-rst} -.. dropdown:: render_latex - - .. autofunction:: render_latex - -``` - -```{eval-rst} -.. dropdown:: LikelihoodResult - - .. autoclass:: LikelihoodResult - :members: - -``` - -```{eval-rst} -.. dropdown:: MomentsResult - - .. autoclass:: MomentsResult - :members: - - - -``` - -(bootstrap)= - -## Bootstrap - -```{eval-rst} -.. dropdown:: bootstrap - - .. autofunction:: bootstrap -``` - -```{eval-rst} -.. dropdown:: BootstrapResult - - .. autoclass:: BootstrapResult - :members: - - -``` - (benchmarking)= ## Benchmarks diff --git a/docs/source/reference_guides/utilities.md b/docs/source/reference/utilities.md similarity index 65% rename from docs/source/reference_guides/utilities.md rename to docs/source/reference/utilities.md index 8d19e47b8..842691bac 100644 --- a/docs/source/reference_guides/utilities.md +++ b/docs/source/reference/utilities.md @@ -3,6 +3,6 @@ # Utility functions ```{eval-rst} -.. automodule:: estimagic.utilities +.. automodule:: optimagic.utilities :members: ``` diff --git a/docs/source/tutorials/index.md b/docs/source/tutorials/index.md new file mode 100644 index 000000000..18c7760dd --- /dev/null +++ b/docs/source/tutorials/index.md @@ -0,0 +1,60 @@ +(tutorials)= + +# Tutorials + +This section provides an overview of optimagic. It's a good starting point if you are +new to optimagic. For more in-depth examples using advanced options, check out the +[how-to guides](how-to). + +`````{grid} 1 2 2 2 +--- +gutter: 3 +--- +````{grid-item-card} +:text-align: center +:img-top: ../_static/images/optimization.svg +:class-img-top: index-card-image +:shadow: md + +```{button-link} optimization_overview.html +--- +click-parent: +ref-type: ref +class: stretched-link index-card-link sd-text-primary +--- +Optimization +``` + +Learn numerical optimization with estimagic. + +```` + +````{grid-item-card} +:text-align: center +:img-top: ../_static/images/differentiation.svg +:class-img-top: index-card-image +:shadow: md + +```{button-link} numdiff_overview.html +--- +click-parent: +ref-type: ref +class: stretched-link index-card-link sd-text-primary +--- +Differentiation +``` + +Learn numerical differentiation with estimagic. + +```` + +````` + +```{toctree} +--- +hidden: true +maxdepth: 1 +--- +optimization_overview +numdiff_overview +``` diff --git a/docs/source/getting_started/first_derivative_with_estimagic.ipynb b/docs/source/tutorials/numdiff_overview.ipynb similarity index 95% rename from docs/source/getting_started/first_derivative_with_estimagic.ipynb rename to docs/source/tutorials/numdiff_overview.ipynb index 8be3d10fc..e20716d7a 100644 --- a/docs/source/getting_started/first_derivative_with_estimagic.ipynb +++ b/docs/source/tutorials/numdiff_overview.ipynb @@ -6,7 +6,7 @@ "source": [ "# Numerical differentiation\n", "\n", - "Using simple examples, This tutorial shows you how to numerical differentiation with estimagic. More details on the topics covered here can be found in the [how to guides](../how_to_guides/index.md)." + "Using simple examples, This tutorial shows you how to numerical differentiation with optimagic. More details on the topics covered here can be found in the [how to guides](../how_to/index.md)." ] }, { @@ -15,7 +15,7 @@ "metadata": {}, "outputs": [], "source": [ - "import estimagic as em\n", + "import optimagic as om\n", "import numpy as np\n", "import pandas as pd" ] @@ -54,7 +54,7 @@ } ], "source": [ - "fd = em.first_derivative(\n", + "fd = om.first_derivative(\n", " func=sphere,\n", " params=np.arange(5),\n", ")\n", @@ -90,7 +90,7 @@ } ], "source": [ - "sd = em.second_derivative(\n", + "sd = om.second_derivative(\n", " func=sphere,\n", " params=np.arange(5),\n", ")\n", @@ -104,7 +104,7 @@ "source": [ "## `params` do not have to be vectors\n", "\n", - "In estimagic, params can be arbitrary [pytrees](https://jax.readthedocs.io/en/latest/pytrees.html). Examples are (nested) dictionaries of numbers, arrays and pandas objects. " + "In optimagic, params can be arbitrary [pytrees](https://jax.readthedocs.io/en/latest/pytrees.html). Examples are (nested) dictionaries of numbers, arrays and pandas objects. " ] }, { @@ -139,7 +139,7 @@ } ], "source": [ - "fd = em.first_derivative(\n", + "fd = om.first_derivative(\n", " func=dict_sphere,\n", " params={\"a\": 0, \"b\": 1, \"c\": pd.Series([2, 3, 4])},\n", ")\n", @@ -221,7 +221,7 @@ } ], "source": [ - "sd = em.second_derivative(\n", + "sd = om.second_derivative(\n", " func=dict_sphere,\n", " params={\"a\": 0, \"b\": 1, \"c\": pd.Series([2, 3, 4])},\n", ")\n", @@ -343,7 +343,7 @@ } ], "source": [ - "fd = em.first_derivative(\n", + "fd = om.first_derivative(\n", " func=sphere, params=np.arange(5), method=\"backward\" # default: 'central'\n", ")\n", "\n", @@ -371,7 +371,7 @@ } ], "source": [ - "sd = em.second_derivative(\n", + "sd = om.second_derivative(\n", " func=sphere, params=np.arange(5), method=\"forward\" # default: 'central_cross'\n", ")\n", "\n", @@ -404,7 +404,7 @@ "source": [ "params = np.arange(5)\n", "\n", - "fd = em.first_derivative(\n", + "fd = om.first_derivative(\n", " func=sphere,\n", " params=params,\n", " lower_bounds=params, # forces first_derivative to use forward differences\n", @@ -435,7 +435,7 @@ } ], "source": [ - "sd = em.second_derivative(\n", + "sd = om.second_derivative(\n", " func=sphere,\n", " params=params,\n", " lower_bounds=params, # forces first_derivative to use forward differences\n", @@ -469,7 +469,7 @@ } ], "source": [ - "fd = em.first_derivative(\n", + "fd = om.first_derivative(\n", " func=sphere,\n", " params=np.arange(5),\n", " n_cores=4,\n", @@ -499,7 +499,7 @@ } ], "source": [ - "sd = em.second_derivative(\n", + "sd = om.second_derivative(\n", " func=sphere,\n", " params=params,\n", " n_cores=4,\n", diff --git a/docs/source/getting_started/first_optimization_with_estimagic.ipynb b/docs/source/tutorials/optimization_overview.ipynb similarity index 99% rename from docs/source/getting_started/first_optimization_with_estimagic.ipynb rename to docs/source/tutorials/optimization_overview.ipynb index a4435f91d..93cb7e5f9 100644 --- a/docs/source/getting_started/first_optimization_with_estimagic.ipynb +++ b/docs/source/tutorials/optimization_overview.ipynb @@ -6,7 +6,7 @@ "source": [ "# Numerical optimization\n", "\n", - "Using simple examples, this tutorial shows how to do an optimization with estimagic. More details on the topics covered here can be found in the [how to guides](../how_to_guides/index.md)." + "Using simple examples, this tutorial shows how to do an optimization with optimagic. More details on the topics covered here can be found in the [how to guides](../how_to/index.md)." ] }, { @@ -15,7 +15,7 @@ "metadata": {}, "outputs": [], "source": [ - "import estimagic as em\n", + "import optimagic as om\n", "import numpy as np\n", "import pandas as pd" ] @@ -54,7 +54,7 @@ } ], "source": [ - "res = em.minimize(\n", + "res = om.minimize(\n", " criterion=sphere,\n", " params=np.arange(5),\n", " algorithm=\"scipy_lbfgsb\",\n", @@ -69,7 +69,7 @@ "source": [ "## `params` do not have to be vectors\n", "\n", - "In estimagic, params can by arbitrary [pytrees](https://jax.readthedocs.io/en/latest/pytrees.html). Examples are (nested) dictionaries of numbers, arrays and pandas objects. " + "In optimagic, params can by arbitrary [pytrees](https://jax.readthedocs.io/en/latest/pytrees.html). Examples are (nested) dictionaries of numbers, arrays and pandas objects. " ] }, { @@ -104,7 +104,7 @@ } ], "source": [ - "res = em.minimize(\n", + "res = om.minimize(\n", " criterion=dict_sphere,\n", " params={\"a\": 0, \"b\": 1, \"c\": pd.Series([2, 3, 4])},\n", " algorithm=\"scipy_powell\",\n", @@ -151,7 +151,7 @@ } ], "source": [ - "res = em.minimize(\n", + "res = om.minimize(\n", " criterion=dict_sphere,\n", " params={\"a\": 0, \"b\": 1, \"c\": pd.Series([2, 3, 4])},\n", " algorithm=\"scipy_neldermead\",\n", @@ -180,7 +180,7 @@ } ], "source": [ - "fig = em.criterion_plot(res, max_evaluations=300)\n", + "fig = om.criterion_plot(res, max_evaluations=300)\n", "fig.show(renderer=\"png\")" ] }, @@ -198,7 +198,7 @@ } ], "source": [ - "fig = em.params_plot(\n", + "fig = om.params_plot(\n", " res,\n", " max_evaluations=300,\n", " # optionally select a subset of parameters to plot\n", @@ -246,7 +246,7 @@ } ], "source": [ - "res = em.minimize(\n", + "res = om.minimize(\n", " criterion=sphere,\n", " params=np.arange(5),\n", " algorithm=\"scipy_lbfgsb\",\n", @@ -281,7 +281,7 @@ } ], "source": [ - "res = em.minimize(\n", + "res = om.minimize(\n", " criterion=sphere,\n", " params=np.arange(5),\n", " algorithm=\"scipy_lbfgsb\",\n", @@ -317,7 +317,7 @@ } ], "source": [ - "res = em.minimize(\n", + "res = om.minimize(\n", " criterion=sphere,\n", " params=np.array([0.1, 0.5, 0.4, 4, 5]),\n", " algorithm=\"scipy_lbfgsb\",\n", @@ -331,9 +331,9 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "For a full overview of the constraints we support and the corresponding syntaxes, check out [the documentation](../how_to_guides/optimization/how_to_specify_constraints.md).\n", + "For a full overview of the constraints we support and the corresponding syntaxes, check out [the documentation](../how_to/how_to_constraints.md).\n", "\n", - "Note that `\"scipy_lbfgsb\"` is not a constrained optimizer. If you want to know how we achieve this, check out [the explanations](../explanations/optimization/implementation_of_constraints.md)." + "Note that `\"scipy_lbfgsb\"` is not a constrained optimizer. If you want to know how we achieve this, check out [the explanations](../explanation/implementation_of_constraints.md)." ] }, { @@ -372,7 +372,7 @@ } ], "source": [ - "res = em.maximize(\n", + "res = om.maximize(\n", " criterion=upside_down_sphere,\n", " params=np.arange(5),\n", " algorithm=\"scipy_bfgs\",\n", @@ -385,7 +385,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "estimagic got your back." + "optimagic got your back." ] }, { @@ -422,7 +422,7 @@ } ], "source": [ - "res = em.minimize(\n", + "res = om.minimize(\n", " criterion=sphere,\n", " params=np.arange(5),\n", " algorithm=\"scipy_lbfgsb\",\n", @@ -455,7 +455,7 @@ } ], "source": [ - "res = em.minimize(\n", + "res = om.minimize(\n", " criterion=sphere,\n", " params=np.arange(5),\n", " algorithm=\"scipy_lbfgsb\",\n", @@ -489,7 +489,7 @@ } ], "source": [ - "res = em.minimize(\n", + "res = om.minimize(\n", " criterion=sphere,\n", " params=np.arange(10),\n", " algorithm=\"scipy_neldermead\",\n", @@ -522,7 +522,7 @@ } ], "source": [ - "fig = em.criterion_plot(res)\n", + "fig = om.criterion_plot(res)\n", "fig.show(renderer=\"png\")" ] }, @@ -574,7 +574,7 @@ } ], "source": [ - "res = em.minimize(\n", + "res = om.minimize(\n", " criterion=general_sphere,\n", " params=np.arange(5),\n", " algorithm=\"pounders\",\n", @@ -597,7 +597,7 @@ "metadata": {}, "outputs": [], "source": [ - "res = em.minimize(\n", + "res = om.minimize(\n", " criterion=sphere,\n", " params=np.arange(5),\n", " algorithm=\"scipy_lbfgsb\",\n", @@ -630,7 +630,7 @@ } ], "source": [ - "reader = em.OptimizeLogReader(\"my_log.db\")\n", + "reader = om.OptimizeLogReader(\"my_log.db\")\n", "reader.read_history().keys()" ] }, @@ -638,7 +638,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "For more information on what you can do with the log file and LogReader object, check out [the logging tutorial](../how_to_guides/optimization/how_to_use_logging.ipynb)\n", + "For more information on what you can do with the log file and LogReader object, check out [the logging tutorial](../how_to/how_to_logging.ipynb)\n", "\n", "The persistent log file is always instantly synchronized when the optimizer tries a new parameter vector. This is very handy if an optimization has to be aborted and you want to extract the current status. It can be displayed in `criterion_plot` and `params_plot`, even while the optimization is running. " ] @@ -649,7 +649,7 @@ "source": [ "## Customize your optimizer\n", "\n", - "Most algorithms have a few optional arguments. Examples are convergence criteria or tuning parameters. You can find an overview of supported arguments [here](../how_to_guides/optimization/how_to_specify_algorithm_and_algo_options.md)." + "Most algorithms have a few optional arguments. Examples are convergence criteria or tuning parameters. You can find an overview of supported arguments [here](../how_to/how_to_specify_algorithm_and_algo_options.md)." ] }, { @@ -674,7 +674,7 @@ " \"stopping.max_iterations\": 100_000,\n", "}\n", "\n", - "res = em.minimize(\n", + "res = om.minimize(\n", " criterion=sphere,\n", " params=np.arange(5),\n", " algorithm=\"scipy_lbfgsb\",\n", diff --git a/docs/source/videos.md b/docs/source/videos.md index bb73e9606..098551dc4 100644 --- a/docs/source/videos.md +++ b/docs/source/videos.md @@ -2,7 +2,7 @@ # Videos -Check out our tutorials, talks and screencasts about estimagic. +Check out our tutorials, talks and screencasts about optimagic. ## Talks and tutorials @@ -44,7 +44,7 @@ taught at the University of Bonn by also [Janoś Gabler](https://github.com/janosg). You can find all screencasts of the course on the [course webite](https://effective-programming-practices.vercel.app/landing-page.html). -Here, we show the screencasts about numerical optimization and estimagic. +Here, we show the screencasts about numerical optimization and optimagic. ### Introduction to numerical optimization @@ -56,7 +56,7 @@ allowfullscreen> ``` -### Using estimagic’s minimize and maximize +### Using optimagic’s minimize and maximize ```{raw} html