From 4a3a0684ad2f582a1eebe4be1d3383b4a7fbee07 Mon Sep 17 00:00:00 2001 From: tychen1217 Date: Tue, 11 May 2021 15:32:14 -0400 Subject: [PATCH] update --- examples/notebooks/06_ellipse_MOO.ipynb | 1058 ++++++++--------------- 1 file changed, 380 insertions(+), 678 deletions(-) diff --git a/examples/notebooks/06_ellipse_MOO.ipynb b/examples/notebooks/06_ellipse_MOO.ipynb index a938a37..4c344b9 100644 --- a/examples/notebooks/06_ellipse_MOO.ipynb +++ b/examples/notebooks/06_ellipse_MOO.ipynb @@ -11,15 +11,25 @@ "$$ y_1 = x $$ \n", "$$ y_2 = \\sqrt{(1 - x^2/4)} $$\n", "\n", - "where \\( y_1^2 + y_2^2/4 = 1 \\). `x` is the only input parameter. `y1` and `y2` are two output reponses which cannot be optimized jointly. \n", + "where \n", + "\n", + "$$ y_1^2 + y_2^2/4 = 1 $$. \n", + "\n", + "`x` is the only input parameter. `y1` and `y2` are two output reponses which cannot be optimized jointly. \n", "\n", "Multi-objective optimization derives a set of solutions that define the tradeoff between competing objectives. The boundary defined by the entire feasible solution set is called the Pareto front. \n", "\n", "In `nextorch`, we implement weighted sum method to construct the Pareto front. It is commonly used for convex problems. A set of objectives are scalarized to a single objective by adding each objective pre-multiplied by a user-supplied weight. The weight of an objective is chosen in proportion to its relative importance. The optimization is simply performed with respected to the scalarized objective. By varying the weight combinations, we can construct the whole Pareto front. \n", "\n", "For this example, the scalarized objective can be written as,\n", + "\n", "$$ y = w_1 y_1 + w_2 y_2 $$\n", - "where the weights \\( w_1, w_2 \\in [0, 1] \\) and \\(w_1 + w_2 = 1 \\).\n", + "\n", + "where the weights \n", + "\n", + "$$ w_1, w_2 \\in [0, 1] $$\n", + "\n", + "$$w_1 + w_2 = 1 $$\n", "\n", "The details of this example is summarized in the table below:\n", "\n", @@ -68,7 +78,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -128,7 +138,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -166,7 +176,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -174,238 +184,238 @@ "output_type": "stream", "text": [ "Initializing 21 experiments\n", - "Iter 10/100: 5.723519325256348\n", - "Iter 20/100: 5.232956886291504\n", - "Iter 30/100: 4.613386154174805\n", - "Iter 40/100: 1.9704792499542236\n", - "Iter 50/100: 1.512966513633728\n", - "Iter 60/100: 1.4102624654769897\n", - "Iter 70/100: 1.3249999284744263\n", - "Iter 80/100: 1.2746305465698242\n", - "Iter 90/100: 1.2467479705810547\n", - "Iter 100/100: 1.225650668144226\n", + "Iter 10/100: 5.723519802093506\n", + "Iter 20/100: 5.23295783996582\n", + "Iter 30/100: 4.6133880615234375\n", + "Iter 40/100: 1.9704277515411377\n", + "Iter 50/100: 1.5127692222595215\n", + "Iter 60/100: 1.410210371017456\n", + "Iter 70/100: 1.32535719871521\n", + "Iter 80/100: 1.2745541334152222\n", + "Iter 90/100: 1.2467190027236938\n", + "Iter 100/100: 1.226029396057129\n", "Initializing experiments 4.76 % \n", - "Iter 10/100: 5.723519325256348\n", - "Iter 20/100: 5.232956886291504\n", - "Iter 30/100: 4.613386154174805\n", - "Iter 40/100: 1.9704792499542236\n", - "Iter 50/100: 1.512966513633728\n", - "Iter 60/100: 1.4102624654769897\n", - "Iter 70/100: 1.3249999284744263\n", - "Iter 80/100: 1.2746305465698242\n", - "Iter 90/100: 1.2467479705810547\n", - "Iter 100/100: 1.225650668144226\n", + "Iter 10/100: 5.723519802093506\n", + "Iter 20/100: 5.23295783996582\n", + "Iter 30/100: 4.6133880615234375\n", + "Iter 40/100: 1.9704277515411377\n", + "Iter 50/100: 1.5127692222595215\n", + "Iter 60/100: 1.410210371017456\n", + "Iter 70/100: 1.32535719871521\n", + "Iter 80/100: 1.2745541334152222\n", + "Iter 90/100: 1.2467190027236938\n", + "Iter 100/100: 1.226029396057129\n", "Initializing experiments 9.52 % \n", - "Iter 10/100: 5.723519325256348\n", - "Iter 20/100: 5.232956886291504\n", - "Iter 30/100: 4.613386154174805\n", - "Iter 40/100: 1.9704792499542236\n", - "Iter 50/100: 1.512966513633728\n", - "Iter 60/100: 1.4102624654769897\n", - "Iter 70/100: 1.3249999284744263\n", - "Iter 80/100: 1.2746305465698242\n", - "Iter 90/100: 1.2467479705810547\n", - "Iter 100/100: 1.225650668144226\n", + "Iter 10/100: 5.723519802093506\n", + "Iter 20/100: 5.23295783996582\n", + "Iter 30/100: 4.6133880615234375\n", + "Iter 40/100: 1.9704277515411377\n", + "Iter 50/100: 1.5127692222595215\n", + "Iter 60/100: 1.410210371017456\n", + "Iter 70/100: 1.32535719871521\n", + "Iter 80/100: 1.2745541334152222\n", + "Iter 90/100: 1.2467190027236938\n", + "Iter 100/100: 1.226029396057129\n", "Initializing experiments 14.29 % \n", - "Iter 10/100: 5.723519325256348\n", - "Iter 20/100: 5.232956886291504\n", - "Iter 30/100: 4.613386154174805\n", - "Iter 40/100: 1.9704792499542236\n", - "Iter 50/100: 1.512966513633728\n", - "Iter 60/100: 1.4102624654769897\n", - "Iter 70/100: 1.3249999284744263\n", - "Iter 80/100: 1.2746305465698242\n", - "Iter 90/100: 1.2467479705810547\n", - "Iter 100/100: 1.225650668144226\n", + "Iter 10/100: 5.723519802093506\n", + "Iter 20/100: 5.23295783996582\n", + "Iter 30/100: 4.6133880615234375\n", + "Iter 40/100: 1.9704277515411377\n", + "Iter 50/100: 1.5127692222595215\n", + "Iter 60/100: 1.410210371017456\n", + "Iter 70/100: 1.32535719871521\n", + "Iter 80/100: 1.2745541334152222\n", + "Iter 90/100: 1.2467190027236938\n", + "Iter 100/100: 1.226029396057129\n", "Initializing experiments 19.05 % \n", - "Iter 10/100: 5.723519325256348\n", - "Iter 20/100: 5.232956886291504\n", - "Iter 30/100: 4.613386154174805\n", - "Iter 40/100: 1.9704792499542236\n", - "Iter 50/100: 1.512966513633728\n", - "Iter 60/100: 1.4102624654769897\n", - "Iter 70/100: 1.3249999284744263\n", - "Iter 80/100: 1.2746305465698242\n", - "Iter 90/100: 1.2467479705810547\n", - "Iter 100/100: 1.225650668144226\n", + "Iter 10/100: 5.723519802093506\n", + "Iter 20/100: 5.23295783996582\n", + "Iter 30/100: 4.6133880615234375\n", + "Iter 40/100: 1.9704277515411377\n", + "Iter 50/100: 1.5127692222595215\n", + "Iter 60/100: 1.410210371017456\n", + "Iter 70/100: 1.32535719871521\n", + "Iter 80/100: 1.2745541334152222\n", + "Iter 90/100: 1.2467190027236938\n", + "Iter 100/100: 1.226029396057129\n", "Initializing experiments 23.81 % \n", - "Iter 10/100: 5.723519325256348\n", - "Iter 20/100: 5.232956886291504\n", - "Iter 30/100: 4.613386154174805\n", - "Iter 40/100: 1.9704792499542236\n", - "Iter 50/100: 1.512966513633728\n", - "Iter 60/100: 1.4102624654769897\n", - "Iter 70/100: 1.3249999284744263\n", - "Iter 80/100: 1.2746305465698242\n", - "Iter 90/100: 1.2467479705810547\n", - "Iter 100/100: 1.225650668144226\n", + "Iter 10/100: 5.723519802093506\n", + "Iter 20/100: 5.23295783996582\n", + "Iter 30/100: 4.6133880615234375\n", + "Iter 40/100: 1.9704277515411377\n", + "Iter 50/100: 1.5127692222595215\n", + "Iter 60/100: 1.410210371017456\n", + "Iter 70/100: 1.32535719871521\n", + "Iter 80/100: 1.2745541334152222\n", + "Iter 90/100: 1.2467190027236938\n", + "Iter 100/100: 1.226029396057129\n", "Initializing experiments 28.57 % \n", - "Iter 10/100: 5.723519325256348\n", - "Iter 20/100: 5.232956886291504\n", - "Iter 30/100: 4.613386154174805\n", - "Iter 40/100: 1.9704792499542236\n", - "Iter 50/100: 1.512966513633728\n", - "Iter 60/100: 1.4102624654769897\n", - "Iter 70/100: 1.3249999284744263\n", - "Iter 80/100: 1.2746305465698242\n", - "Iter 90/100: 1.2467479705810547\n", - "Iter 100/100: 1.225650668144226\n", + "Iter 10/100: 5.723519802093506\n", + "Iter 20/100: 5.23295783996582\n", + "Iter 30/100: 4.6133880615234375\n", + "Iter 40/100: 1.9704277515411377\n", + "Iter 50/100: 1.5127692222595215\n", + "Iter 60/100: 1.410210371017456\n", + "Iter 70/100: 1.32535719871521\n", + "Iter 80/100: 1.2745541334152222\n", + "Iter 90/100: 1.2467190027236938\n", + "Iter 100/100: 1.226029396057129\n", "Initializing experiments 33.33 % \n", - "Iter 10/100: 5.723519325256348\n", - "Iter 20/100: 5.232956886291504\n", - "Iter 30/100: 4.613386154174805\n", - "Iter 40/100: 1.9704792499542236\n", - "Iter 50/100: 1.512966513633728\n", - "Iter 60/100: 1.4102624654769897\n", - "Iter 70/100: 1.3249999284744263\n", - "Iter 80/100: 1.2746305465698242\n", - "Iter 90/100: 1.2467479705810547\n", - "Iter 100/100: 1.225650668144226\n", + "Iter 10/100: 5.723519802093506\n", + "Iter 20/100: 5.23295783996582\n", + "Iter 30/100: 4.6133880615234375\n", + "Iter 40/100: 1.9704277515411377\n", + "Iter 50/100: 1.5127692222595215\n", + "Iter 60/100: 1.410210371017456\n", + "Iter 70/100: 1.32535719871521\n", + "Iter 80/100: 1.2745541334152222\n", + "Iter 90/100: 1.2467190027236938\n", + "Iter 100/100: 1.226029396057129\n", "Initializing experiments 38.10 % \n", - "Iter 10/100: 5.723519325256348\n", - "Iter 20/100: 5.232956886291504\n", - "Iter 30/100: 4.613386154174805\n", - "Iter 40/100: 1.9704792499542236\n", - "Iter 50/100: 1.512966513633728\n", - "Iter 60/100: 1.4102624654769897\n", - "Iter 70/100: 1.3249999284744263\n", - "Iter 80/100: 1.2746305465698242\n", - "Iter 90/100: 1.2467479705810547\n", - "Iter 100/100: 1.225650668144226\n", + "Iter 10/100: 5.723519802093506\n", + "Iter 20/100: 5.23295783996582\n", + "Iter 30/100: 4.6133880615234375\n", + "Iter 40/100: 1.9704277515411377\n", + "Iter 50/100: 1.5127692222595215\n", + "Iter 60/100: 1.410210371017456\n", + "Iter 70/100: 1.32535719871521\n", + "Iter 80/100: 1.2745541334152222\n", + "Iter 90/100: 1.2467190027236938\n", + "Iter 100/100: 1.226029396057129\n", "Initializing experiments 42.86 % \n", - "Iter 10/100: 5.723519325256348\n", - "Iter 20/100: 5.232956886291504\n", - "Iter 30/100: 4.613386154174805\n", - "Iter 40/100: 1.9704792499542236\n", - "Iter 50/100: 1.512966513633728\n", - "Iter 60/100: 1.4102624654769897\n", - "Iter 70/100: 1.3249999284744263\n", - "Iter 80/100: 1.2746305465698242\n", - "Iter 90/100: 1.2467479705810547\n", - "Iter 100/100: 1.225650668144226\n", + "Iter 10/100: 5.723519802093506\n", + "Iter 20/100: 5.23295783996582\n", + "Iter 30/100: 4.6133880615234375\n", + "Iter 40/100: 1.9704277515411377\n", + "Iter 50/100: 1.5127692222595215\n", + "Iter 60/100: 1.410210371017456\n", + "Iter 70/100: 1.32535719871521\n", + "Iter 80/100: 1.2745541334152222\n", + "Iter 90/100: 1.2467190027236938\n", + "Iter 100/100: 1.226029396057129\n", "Initializing experiments 47.62 % \n", - "Iter 10/100: 5.723519325256348\n", - "Iter 20/100: 5.232956886291504\n", - "Iter 30/100: 4.613386154174805\n", - "Iter 40/100: 1.9704792499542236\n", - "Iter 50/100: 1.512966513633728\n", - "Iter 60/100: 1.4102624654769897\n", - "Iter 70/100: 1.3249999284744263\n", - "Iter 80/100: 1.2746305465698242\n", - "Iter 90/100: 1.2467479705810547\n", - "Iter 100/100: 1.225650668144226\n", + "Iter 10/100: 5.723519802093506\n", + "Iter 20/100: 5.23295783996582\n", + "Iter 30/100: 4.6133880615234375\n", + "Iter 40/100: 1.9704277515411377\n", + "Iter 50/100: 1.5127692222595215\n", + "Iter 60/100: 1.410210371017456\n", + "Iter 70/100: 1.32535719871521\n", + "Iter 80/100: 1.2745541334152222\n", + "Iter 90/100: 1.2467190027236938\n", + "Iter 100/100: 1.226029396057129\n", "Initializing experiments 52.38 % \n", - "Iter 10/100: 5.723519325256348\n", - "Iter 20/100: 5.232956886291504\n", - "Iter 30/100: 4.613386154174805\n", - "Iter 40/100: 1.9704792499542236\n", - "Iter 50/100: 1.512966513633728\n", - "Iter 60/100: 1.4102624654769897\n", - "Iter 70/100: 1.3249999284744263\n", - "Iter 80/100: 1.2746305465698242\n", - "Iter 90/100: 1.2467479705810547\n", - "Iter 100/100: 1.225650668144226\n", + "Iter 10/100: 5.723519802093506\n", + "Iter 20/100: 5.23295783996582\n", + "Iter 30/100: 4.6133880615234375\n", + "Iter 40/100: 1.9704277515411377\n", + "Iter 50/100: 1.5127692222595215\n", + "Iter 60/100: 1.410210371017456\n", + "Iter 70/100: 1.32535719871521\n", + "Iter 80/100: 1.2745541334152222\n", + "Iter 90/100: 1.2467190027236938\n", + "Iter 100/100: 1.226029396057129\n", "Initializing experiments 57.14 % \n", - "Iter 10/100: 5.723519325256348\n", - "Iter 20/100: 5.232956886291504\n", - "Iter 30/100: 4.613386154174805\n", - "Iter 40/100: 1.9704792499542236\n", - "Iter 50/100: 1.512966513633728\n", - "Iter 60/100: 1.4102624654769897\n", - "Iter 70/100: 1.3249999284744263\n", - "Iter 80/100: 1.2746305465698242\n", - "Iter 90/100: 1.2467479705810547\n", - "Iter 100/100: 1.225650668144226\n", + "Iter 10/100: 5.723519802093506\n", + "Iter 20/100: 5.23295783996582\n", + "Iter 30/100: 4.6133880615234375\n", + "Iter 40/100: 1.9704277515411377\n", + "Iter 50/100: 1.5127692222595215\n", + "Iter 60/100: 1.410210371017456\n", + "Iter 70/100: 1.32535719871521\n", + "Iter 80/100: 1.2745541334152222\n", + "Iter 90/100: 1.2467190027236938\n", + "Iter 100/100: 1.226029396057129\n", "Initializing experiments 61.90 % \n", - "Iter 10/100: 5.723519325256348\n", - "Iter 20/100: 5.232956886291504\n", - "Iter 30/100: 4.613386154174805\n", - "Iter 40/100: 1.9704792499542236\n", - "Iter 50/100: 1.512966513633728\n", - "Iter 60/100: 1.4102624654769897\n", - "Iter 70/100: 1.3249999284744263\n", - "Iter 80/100: 1.2746305465698242\n", - "Iter 90/100: 1.2467479705810547\n", - "Iter 100/100: 1.225650668144226\n", + "Iter 10/100: 5.723519802093506\n", + "Iter 20/100: 5.23295783996582\n", + "Iter 30/100: 4.6133880615234375\n", + "Iter 40/100: 1.9704277515411377\n", + "Iter 50/100: 1.5127692222595215\n", + "Iter 60/100: 1.410210371017456\n", + "Iter 70/100: 1.32535719871521\n", + "Iter 80/100: 1.2745541334152222\n", + "Iter 90/100: 1.2467190027236938\n", + "Iter 100/100: 1.226029396057129\n", "Initializing experiments 66.67 % \n", - "Iter 10/100: 5.723519325256348\n", - "Iter 20/100: 5.232956886291504\n", - "Iter 30/100: 4.613386154174805\n", - "Iter 40/100: 1.9704792499542236\n", - "Iter 50/100: 1.512966513633728\n", - "Iter 60/100: 1.4102624654769897\n", - "Iter 70/100: 1.3249999284744263\n", - "Iter 80/100: 1.2746305465698242\n", - "Iter 90/100: 1.2467479705810547\n", - "Iter 100/100: 1.225650668144226\n", + "Iter 10/100: 5.723519802093506\n", + "Iter 20/100: 5.23295783996582\n", + "Iter 30/100: 4.6133880615234375\n", + "Iter 40/100: 1.9704277515411377\n", + "Iter 50/100: 1.5127692222595215\n", + "Iter 60/100: 1.410210371017456\n", + "Iter 70/100: 1.32535719871521\n", + "Iter 80/100: 1.2745541334152222\n", + "Iter 90/100: 1.2467190027236938\n", + "Iter 100/100: 1.226029396057129\n", "Initializing experiments 71.43 % \n", - "Iter 10/100: 5.723519325256348\n", - "Iter 20/100: 5.232956886291504\n", - "Iter 30/100: 4.613386154174805\n", - "Iter 40/100: 1.9704792499542236\n", - "Iter 50/100: 1.512966513633728\n", - "Iter 60/100: 1.4102624654769897\n", - "Iter 70/100: 1.3249999284744263\n", - "Iter 80/100: 1.2746305465698242\n", - "Iter 90/100: 1.2467479705810547\n", - "Iter 100/100: 1.225650668144226\n", + "Iter 10/100: 5.723519802093506\n", + "Iter 20/100: 5.23295783996582\n", + "Iter 30/100: 4.6133880615234375\n", + "Iter 40/100: 1.9704277515411377\n", + "Iter 50/100: 1.5127692222595215\n", + "Iter 60/100: 1.410210371017456\n", + "Iter 70/100: 1.32535719871521\n", + "Iter 80/100: 1.2745541334152222\n", + "Iter 90/100: 1.2467190027236938\n", + "Iter 100/100: 1.226029396057129\n", "Initializing experiments 76.19 % \n", - "Iter 10/100: 5.723519325256348\n", - "Iter 20/100: 5.232956886291504\n", - "Iter 30/100: 4.613386154174805\n", - "Iter 40/100: 1.9704792499542236\n", - "Iter 50/100: 1.512966513633728\n", - "Iter 60/100: 1.4102624654769897\n", - "Iter 70/100: 1.3249999284744263\n", - "Iter 80/100: 1.2746305465698242\n", - "Iter 90/100: 1.2467479705810547\n", - "Iter 100/100: 1.225650668144226\n", + "Iter 10/100: 5.723519802093506\n", + "Iter 20/100: 5.23295783996582\n", + "Iter 30/100: 4.6133880615234375\n", + "Iter 40/100: 1.9704277515411377\n", + "Iter 50/100: 1.5127692222595215\n", + "Iter 60/100: 1.410210371017456\n", + "Iter 70/100: 1.32535719871521\n", + "Iter 80/100: 1.2745541334152222\n", + "Iter 90/100: 1.2467190027236938\n", + "Iter 100/100: 1.226029396057129\n", "Initializing experiments 80.95 % \n", - "Iter 10/100: 5.723519325256348\n", - "Iter 20/100: 5.232956886291504\n", - "Iter 30/100: 4.613386154174805\n", - "Iter 40/100: 1.9704792499542236\n", - "Iter 50/100: 1.512966513633728\n", - "Iter 60/100: 1.4102624654769897\n", - "Iter 70/100: 1.3249999284744263\n", - "Iter 80/100: 1.2746305465698242\n", - "Iter 90/100: 1.2467479705810547\n", - "Iter 100/100: 1.225650668144226\n", + "Iter 10/100: 5.723519802093506\n", + "Iter 20/100: 5.23295783996582\n", + "Iter 30/100: 4.6133880615234375\n", + "Iter 40/100: 1.9704277515411377\n", + "Iter 50/100: 1.5127692222595215\n", + "Iter 60/100: 1.410210371017456\n", + "Iter 70/100: 1.32535719871521\n", + "Iter 80/100: 1.2745541334152222\n", + "Iter 90/100: 1.2467190027236938\n", + "Iter 100/100: 1.226029396057129\n", "Initializing experiments 85.71 % \n", - "Iter 10/100: 5.723519325256348\n", - "Iter 20/100: 5.232956886291504\n", - "Iter 30/100: 4.613386154174805\n", - "Iter 40/100: 1.9704792499542236\n", - "Iter 50/100: 1.512966513633728\n", - "Iter 60/100: 1.4102624654769897\n", - "Iter 70/100: 1.3249999284744263\n", - "Iter 80/100: 1.2746305465698242\n", - "Iter 90/100: 1.2467479705810547\n", - "Iter 100/100: 1.225650668144226\n", + "Iter 10/100: 5.723519802093506\n", + "Iter 20/100: 5.23295783996582\n", + "Iter 30/100: 4.6133880615234375\n", + "Iter 40/100: 1.9704277515411377\n", + "Iter 50/100: 1.5127692222595215\n", + "Iter 60/100: 1.410210371017456\n", + "Iter 70/100: 1.32535719871521\n", + "Iter 80/100: 1.2745541334152222\n", + "Iter 90/100: 1.2467190027236938\n", + "Iter 100/100: 1.226029396057129\n", "Initializing experiments 90.48 % \n", - "Iter 10/100: 5.723519325256348\n", - "Iter 20/100: 5.232956886291504\n", - "Iter 30/100: 4.613386154174805\n", - "Iter 40/100: 1.9704792499542236\n", - "Iter 50/100: 1.512966513633728\n", - "Iter 60/100: 1.4102624654769897\n", - "Iter 70/100: 1.3249999284744263\n", - "Iter 80/100: 1.2746305465698242\n", - "Iter 90/100: 1.2467479705810547\n", - "Iter 100/100: 1.225650668144226\n", + "Iter 10/100: 5.723519802093506\n", + "Iter 20/100: 5.23295783996582\n", + "Iter 30/100: 4.6133880615234375\n", + "Iter 40/100: 1.9704277515411377\n", + "Iter 50/100: 1.5127692222595215\n", + "Iter 60/100: 1.410210371017456\n", + "Iter 70/100: 1.32535719871521\n", + "Iter 80/100: 1.2745541334152222\n", + "Iter 90/100: 1.2467190027236938\n", + "Iter 100/100: 1.226029396057129\n", "Initializing experiments 95.24 % \n", - "Iter 10/100: 5.723519325256348\n", - "Iter 20/100: 5.232956886291504\n", - "Iter 30/100: 4.613386154174805\n", - "Iter 40/100: 1.9704792499542236\n", - "Iter 50/100: 1.512966513633728\n", - "Iter 60/100: 1.4102624654769897\n", - "Iter 70/100: 1.3249999284744263\n", - "Iter 80/100: 1.2746305465698242\n", - "Iter 90/100: 1.2467479705810547\n", - "Iter 100/100: 1.225650668144226\n", + "Iter 10/100: 5.723519802093506\n", + "Iter 20/100: 5.23295783996582\n", + "Iter 30/100: 4.6133880615234375\n", + "Iter 40/100: 1.9704277515411377\n", + "Iter 50/100: 1.5127692222595215\n", + "Iter 60/100: 1.410210371017456\n", + "Iter 70/100: 1.32535719871521\n", + "Iter 80/100: 1.2745541334152222\n", + "Iter 90/100: 1.2467190027236938\n", + "Iter 100/100: 1.226029396057129\n", "Initializing experiments 100.00 % \n", - "Initializing 21 Experiments takes 0.20 minutes.\n" + "Initializing 21 Experiments takes 0.23 minutes.\n" ] } ], @@ -452,7 +462,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -460,435 +470,127 @@ "output_type": "stream", "text": [ "Running 21 experiments\n", - "Iter 10/100: 0.6268913745880127\n", - "Iter 20/100: 0.6080061197280884\n", - "Iter 30/100: 0.5958243608474731\n", - "Iter 40/100: 0.5888171195983887\n", - "Iter 50/100: 0.5849026441574097\n", - "Iter 60/100: 0.5811474323272705\n", - "Iter 70/100: 0.5798935294151306\n", - "Iter 80/100: 0.5778980255126953\n", - "Iter 90/100: 0.5769942998886108\n", - "Iter 100/100: 0.5764856338500977\n", - "Iter 10/100: -0.033872902393341064\n", - "Iter 20/100: -0.035207390785217285\n", - "Iter 10/100: -0.5689945220947266\n", - "Iter 10/100: -1.0354827642440796\n", - "Iter 10/100: -0.7298715114593506\n", - "Iter 20/100: -0.7343025207519531\n", - "Iter 30/100: -0.7352707386016846\n", - "Iter 40/100: -0.736293613910675\n", - "Iter 10/100: 1.179687738418579\n", - "Iter 10/100: 0.6049109697341919\n", - "Iter 10/100: 0.4921404719352722\n", - "Iter 10/100: 0.27244991064071655\n", - "Iter 10/100: 0.07394039630889893\n", + "Iter 10/100: 0.5434869527816772\n", + "Iter 20/100: 0.508520781993866\n", + "Iter 30/100: 0.47558531165122986\n", + "Iter 40/100: 0.45306968688964844\n", + "Iter 50/100: 0.43230125308036804\n", + "Iter 60/100: 0.4158894121646881\n", + "Iter 70/100: 0.40274715423583984\n", + "Iter 80/100: 0.3892427086830139\n", + "Iter 90/100: 0.37743932008743286\n", "Running experiments 4.76 % \n", - "Iter 10/100: 1.3681230545043945\n", - "Iter 20/100: 1.3586927652359009\n", - "Iter 30/100: 1.3537731170654297\n", - "Iter 40/100: 1.352138638496399\n", - "Iter 50/100: 1.3514869213104248\n", - "Iter 10/100: 0.8155776262283325\n", - "Iter 10/100: 1.7196650505065918\n", - "Iter 10/100: 2.4868662357330322\n", - "Iter 10/100: 1.5287680625915527\n", - "Iter 20/100: 1.5199191570281982\n", - "Iter 30/100: 1.5157474279403687\n", - "Iter 40/100: 1.5145695209503174\n", - "Iter 50/100: 1.513535737991333\n", - "Iter 10/100: 2.4401402473449707\n", - "Iter 10/100: 2.483118772506714\n", - "Iter 10/100: 2.41619873046875\n", - "Iter 10/100: 2.748636245727539\n", - "Iter 10/100: 2.7472567558288574\n", + "Iter 10/100: 1.3625149726867676\n", + "Iter 20/100: 1.3488014936447144\n", + "Iter 30/100: 1.3398540019989014\n", + "Iter 40/100: 1.3346573114395142\n", + "Iter 10/100: 3.4873924255371094\n", + "Iter 10/100: 2.468198299407959\n", "Running experiments 9.52 % \n", - "Iter 10/100: 1.3681230545043945\n", - "Iter 20/100: 1.3586927652359009\n", - "Iter 30/100: 1.3537731170654297\n", - "Iter 40/100: 1.352138638496399\n", - "Iter 50/100: 1.3514869213104248\n", - "Iter 10/100: 2.789281129837036\n", - "Iter 10/100: 1.7267776727676392\n", - "Iter 20/100: 1.7209595441818237\n", - "Iter 10/100: 2.4154062271118164\n", - "Iter 10/100: 1.542515754699707\n", - "Iter 20/100: 1.5408105850219727\n", - "Iter 30/100: 1.5386906862258911\n", - "Iter 40/100: 1.53743577003479\n", - "Iter 10/100: 1.5403797626495361\n", - "Iter 20/100: 1.538644790649414\n", - "Iter 10/100: 2.112180233001709\n", - "Iter 10/100: 2.628101110458374\n", - "Iter 20/100: 2.5909998416900635\n", - "Iter 30/100: 2.578831195831299\n", - "Iter 40/100: 2.572089672088623\n", - "Iter 50/100: 2.567328453063965\n", - "Iter 60/100: 2.563506841659546\n", - "Iter 70/100: 2.5607194900512695\n", - "Iter 80/100: 2.558917999267578\n", - "Iter 90/100: 2.558002471923828\n", - "Iter 100/100: 2.5575718879699707\n", - "Iter 10/100: 2.9274649620056152\n", - "Iter 10/100: 2.4166951179504395\n", - "Iter 20/100: 2.415344476699829\n", + "Iter 10/100: 1.3625149726867676\n", + "Iter 20/100: 1.3488014936447144\n", + "Iter 30/100: 1.3398540019989014\n", + "Iter 40/100: 1.3346573114395142\n", "Running experiments 14.29 % \n", - "Iter 10/100: 1.3681230545043945\n", - "Iter 20/100: 1.3586927652359009\n", - "Iter 30/100: 1.3537731170654297\n", - "Iter 40/100: 1.352138638496399\n", - "Iter 50/100: 1.3514869213104248\n", - "Iter 10/100: 2.769921064376831\n", - "Iter 10/100: 1.7090351581573486\n", - "Iter 20/100: 1.702911138534546\n", - "Iter 10/100: 2.4478719234466553\n", - "Iter 10/100: 2.8395092487335205\n", - "Iter 10/100: 3.24279522895813\n", - "Iter 10/100: 2.5399632453918457\n", - "Iter 10/100: 2.473897695541382\n", - "Iter 10/100: 2.5387892723083496\n", - "Iter 20/100: 2.4894556999206543\n", - "Iter 10/100: 2.7112488746643066\n", + "Iter 10/100: 1.3625149726867676\n", + "Iter 20/100: 1.3488014936447144\n", + "Iter 30/100: 1.3398540019989014\n", + "Iter 40/100: 1.3346573114395142\n", "Running experiments 19.05 % \n", - "Iter 10/100: 1.3681230545043945\n", - "Iter 20/100: 1.3586927652359009\n", - "Iter 30/100: 1.3537731170654297\n", - "Iter 40/100: 1.352138638496399\n", - "Iter 50/100: 1.3514869213104248\n", - "Iter 10/100: 2.7814598083496094\n", - "Iter 10/100: 1.7192211151123047\n", - "Iter 20/100: 1.7133400440216064\n", - "Iter 10/100: 2.4759836196899414\n", - "Iter 10/100: 3.5647873878479004\n", - "Iter 10/100: 3.1777310371398926\n", - "Iter 10/100: 2.4729650020599365\n", - "Iter 20/100: 2.2763559818267822\n", - "Iter 30/100: 2.2522568702697754\n", - "Iter 40/100: 2.238328456878662\n", - "Iter 50/100: 2.234583616256714\n", - "Iter 60/100: 2.2320148944854736\n", - "Iter 70/100: 2.22957181930542\n", - "Iter 80/100: 2.227994918823242\n", - "Iter 90/100: 2.226848840713501\n", - "Iter 100/100: 2.2261598110198975\n", - "Iter 10/100: 2.1462018489837646\n", - "Iter 20/100: 2.1421027183532715\n", - "Iter 30/100: 2.1401827335357666\n", - "Iter 40/100: 2.139723300933838\n", - "Iter 10/100: 1.9046040773391724\n", - "Iter 10/100: 2.9751038551330566\n", + "Iter 10/100: 1.3625149726867676\n", + "Iter 20/100: 1.3488014936447144\n", + "Iter 30/100: 1.3398540019989014\n", + "Iter 40/100: 1.3346573114395142\n", + "Iter 10/100: 3.581068515777588\n", "Running experiments 23.81 % \n", - "Iter 10/100: 1.3681230545043945\n", - "Iter 20/100: 1.3586927652359009\n", - "Iter 30/100: 1.3537731170654297\n", - "Iter 40/100: 1.352138638496399\n", - "Iter 50/100: 1.3514869213104248\n", - "Iter 10/100: 2.7780044078826904\n", - "Iter 10/100: 3.0044591426849365\n", - "Iter 10/100: 2.4457812309265137\n", - "Iter 10/100: 2.596292018890381\n", - "Iter 10/100: 3.3305370807647705\n", - "Iter 10/100: 2.9120380878448486\n", - "Iter 10/100: 2.926837921142578\n", - "Iter 10/100: 2.863844394683838\n", - "Iter 10/100: 2.6104302406311035\n", + "Iter 10/100: 1.3625149726867676\n", + "Iter 20/100: 1.3488014936447144\n", + "Iter 30/100: 1.3398540019989014\n", + "Iter 40/100: 1.3346573114395142\n", + "Iter 10/100: 3.6242969036102295\n", "Running experiments 28.57 % \n", - "Iter 10/100: 1.3681230545043945\n", - "Iter 20/100: 1.3586927652359009\n", - "Iter 30/100: 1.3537731170654297\n", - "Iter 40/100: 1.352138638496399\n", - "Iter 50/100: 1.3514869213104248\n", - "Iter 10/100: 2.777333974838257\n", - "Iter 10/100: 3.0174543857574463\n", - "Iter 10/100: 2.3316104412078857\n", - "Iter 10/100: 2.5962324142456055\n", - "Iter 10/100: 3.4061484336853027\n", - "Iter 10/100: 3.1886844635009766\n", - "Iter 10/100: 2.891042470932007\n", - "Iter 10/100: 2.877913236618042\n", - "Iter 20/100: 2.8402981758117676\n", - "Iter 30/100: 2.833698272705078\n", - "Iter 40/100: 2.8293933868408203\n", - "Iter 50/100: 2.8244190216064453\n", - "Iter 60/100: 2.8211092948913574\n", - "Iter 70/100: 2.819352626800537\n", - "Iter 80/100: 2.8169162273406982\n", - "Iter 10/100: 3.0020718574523926\n", + "Iter 10/100: 1.3625149726867676\n", + "Iter 20/100: 1.3488014936447144\n", + "Iter 30/100: 1.3398540019989014\n", + "Iter 40/100: 1.3346573114395142\n", + "Iter 10/100: 3.6242969036102295\n", "Running experiments 33.33 % \n", - "Iter 10/100: 1.3681230545043945\n", - "Iter 20/100: 1.3586927652359009\n", - "Iter 30/100: 1.3537731170654297\n", - "Iter 40/100: 1.352138638496399\n", - "Iter 50/100: 1.3514869213104248\n", - "Iter 10/100: 2.7892043590545654\n", - "Iter 10/100: 3.0478978157043457\n", - "Iter 10/100: 2.551042318344116\n", - "Iter 10/100: 2.626089334487915\n", - "Iter 10/100: 2.461735248565674\n", - "Iter 10/100: 3.337958812713623\n", - "Iter 10/100: 3.056097984313965\n", - "Iter 10/100: 3.017251968383789\n", - "Iter 20/100: 2.9695611000061035\n", - "Iter 30/100: 2.951559066772461\n", - "Iter 40/100: 2.950082778930664\n", - "Iter 10/100: 2.954923152923584\n", - "Iter 20/100: 2.92142391204834\n", - "Iter 30/100: 2.896855592727661\n", + "Iter 10/100: 1.3625149726867676\n", + "Iter 20/100: 1.3488014936447144\n", + "Iter 30/100: 1.3398540019989014\n", + "Iter 40/100: 1.3346573114395142\n", + "Iter 10/100: 3.6235032081604004\n", "Running experiments 38.10 % \n", - "Iter 10/100: 1.3681230545043945\n", - "Iter 20/100: 1.3586927652359009\n", - "Iter 30/100: 1.3537731170654297\n", - "Iter 40/100: 1.352138638496399\n", - "Iter 50/100: 1.3514869213104248\n", - "Iter 10/100: 2.7898929119110107\n", - "Iter 10/100: 3.0660386085510254\n", - "Iter 10/100: 2.954897165298462\n", - "Iter 10/100: 3.544516086578369\n", - "Iter 10/100: 3.2459211349487305\n", - "Iter 10/100: 3.0157065391540527\n", - "Iter 10/100: 3.147580862045288\n", - "Iter 10/100: 3.0844779014587402\n", - "Iter 10/100: 3.1201767921447754\n", - "Iter 20/100: 3.1036906242370605\n", - "Iter 30/100: 3.0996851921081543\n", - "Iter 40/100: 3.0983850955963135\n", - "Iter 50/100: 3.0979690551757812\n", + "Iter 10/100: 1.3625149726867676\n", + "Iter 20/100: 1.3488014936447144\n", + "Iter 30/100: 1.3398540019989014\n", + "Iter 40/100: 1.3346573114395142\n", "Running experiments 42.86 % \n", - "Iter 10/100: 1.3681230545043945\n", - "Iter 20/100: 1.3586927652359009\n", - "Iter 30/100: 1.3537731170654297\n", - "Iter 40/100: 1.352138638496399\n", - "Iter 50/100: 1.3514869213104248\n", - "Iter 10/100: 2.781121253967285\n", - "Iter 10/100: 3.0721194744110107\n", - "Iter 10/100: 2.955472469329834\n", - "Iter 10/100: 2.7760562896728516\n", - "Iter 10/100: 3.632838726043701\n", - "Iter 10/100: 3.2214460372924805\n", - "Iter 10/100: 3.2633461952209473\n", - "Iter 10/100: 3.038285732269287\n", - "Iter 10/100: 2.681096076965332\n", + "Iter 10/100: 1.3625149726867676\n", + "Iter 20/100: 1.3488014936447144\n", + "Iter 30/100: 1.3398540019989014\n", + "Iter 40/100: 1.3346573114395142\n", + "Iter 10/100: 3.6235032081604004\n", "Running experiments 47.62 % \n", - "Iter 10/100: 1.3681230545043945\n", - "Iter 20/100: 1.3586927652359009\n", - "Iter 30/100: 1.3537731170654297\n", - "Iter 40/100: 1.352138638496399\n", - "Iter 50/100: 1.3514869213104248\n", - "Iter 10/100: 2.8079586029052734\n", - "Iter 10/100: 3.836313486099243\n", - "Iter 10/100: 3.4828009605407715\n", - "Iter 10/100: 3.4022176265716553\n", - "Iter 10/100: 3.486083984375\n", - "Iter 20/100: 3.48447847366333\n", - "Iter 30/100: 3.479761838912964\n", - "Iter 40/100: 3.4785962104797363\n", - "Iter 10/100: 3.472905158996582\n", - "Iter 10/100: 3.2008843421936035\n", - "Iter 10/100: 3.035731315612793\n", - "Iter 10/100: 2.7422890663146973\n", + "Iter 10/100: 1.3625149726867676\n", + "Iter 20/100: 1.3488014936447144\n", + "Iter 30/100: 1.3398540019989014\n", + "Iter 40/100: 1.3346573114395142\n", + "Iter 10/100: 3.6235032081604004\n", "Running experiments 52.38 % \n", - "Iter 10/100: 1.3681230545043945\n", - "Iter 20/100: 1.3586927652359009\n", - "Iter 30/100: 1.3537731170654297\n", - "Iter 40/100: 1.352138638496399\n", - "Iter 50/100: 1.3514869213104248\n", - "Iter 10/100: 4.06950569152832\n", - "Iter 10/100: 3.6170923709869385\n", - "Iter 10/100: 3.533524990081787\n", - "Iter 10/100: 3.428652763366699\n", - "Iter 10/100: 3.5267417430877686\n", - "Iter 10/100: 3.1383538246154785\n", - "Iter 10/100: 3.1159915924072266\n", - "Iter 10/100: 3.0063669681549072\n", - "Iter 10/100: 2.904860496520996\n", + "Iter 10/100: 1.3625149726867676\n", + "Iter 20/100: 1.3488014936447144\n", + "Iter 30/100: 1.3398540019989014\n", + "Iter 40/100: 1.3346573114395142\n", + "Iter 10/100: 3.6251935958862305\n", "Running experiments 57.14 % \n", - "Iter 10/100: 1.3681230545043945\n", - "Iter 20/100: 1.3586927652359009\n", - "Iter 30/100: 1.3537731170654297\n", - "Iter 40/100: 1.352138638496399\n", - "Iter 50/100: 1.3514869213104248\n", - "Iter 10/100: 2.838865041732788\n", - "Iter 10/100: 3.8905038833618164\n", - "Iter 10/100: 3.390104293823242\n", - "Iter 10/100: 3.4545814990997314\n", - "Iter 10/100: 3.359753370285034\n", - "Iter 10/100: 3.237459659576416\n", - "Iter 10/100: 3.2138137817382812\n", - "Iter 10/100: 3.0301969051361084\n", - "Iter 10/100: 2.8893938064575195\n", + "Iter 10/100: 1.3625149726867676\n", + "Iter 20/100: 1.3488014936447144\n", + "Iter 30/100: 1.3398540019989014\n", + "Iter 40/100: 1.3346573114395142\n", "Running experiments 61.90 % \n", - "Iter 10/100: 1.3681230545043945\n", - "Iter 20/100: 1.3586927652359009\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Iter 30/100: 1.3537731170654297\n", - "Iter 40/100: 1.352138638496399\n", - "Iter 50/100: 1.3514869213104248\n", - "Iter 10/100: 2.800448417663574\n", - "Iter 10/100: 3.886262893676758\n", - "Iter 10/100: 3.473564624786377\n", - "Iter 10/100: 3.4460833072662354\n", - "Iter 10/100: 3.5070271492004395\n", - "Iter 10/100: 3.3479881286621094\n", - "Iter 10/100: 3.0629563331604004\n", - "Iter 20/100: 3.0442161560058594\n", - "Iter 30/100: 3.037635564804077\n", - "Iter 40/100: 3.034855842590332\n", - "Iter 50/100: 3.030916452407837\n", - "Iter 10/100: 3.1717333793640137\n", - "Iter 10/100: 2.8420987129211426\n", + "Iter 10/100: 1.3625149726867676\n", + "Iter 20/100: 1.3488014936447144\n", + "Iter 30/100: 1.3398540019989014\n", + "Iter 40/100: 1.3346573114395142\n", "Running experiments 66.67 % \n", - "Iter 10/100: 1.3681230545043945\n", - "Iter 20/100: 1.3586927652359009\n", - "Iter 30/100: 1.3537731170654297\n", - "Iter 40/100: 1.352138638496399\n", - "Iter 50/100: 1.3514869213104248\n", - "Iter 10/100: 2.788439989089966\n", - "Iter 10/100: 3.896430015563965\n", - "Iter 10/100: 3.4940977096557617\n", - "Iter 10/100: 3.4543910026550293\n", - "Iter 10/100: 3.4991044998168945\n", - "Iter 10/100: 3.2644803524017334\n", - "Iter 10/100: 3.2192249298095703\n", - "Iter 10/100: 3.1409623622894287\n", - "Iter 10/100: 2.9604482650756836\n", + "Iter 10/100: 1.3625149726867676\n", + "Iter 20/100: 1.3488014936447144\n", + "Iter 30/100: 1.3398540019989014\n", + "Iter 40/100: 1.3346573114395142\n", "Running experiments 71.43 % \n", - "Iter 10/100: 1.3681230545043945\n", - "Iter 20/100: 1.3586927652359009\n", - "Iter 30/100: 1.3537731170654297\n", - "Iter 40/100: 1.352138638496399\n", - "Iter 50/100: 1.3514869213104248\n", - "Iter 10/100: 2.812633991241455\n", - "Iter 10/100: 3.9290518760681152\n", - "Iter 10/100: 3.6359188556671143\n", - "Iter 10/100: 3.5034542083740234\n", - "Iter 10/100: 3.306576728820801\n", - "Iter 10/100: 3.1367831230163574\n", - "Iter 10/100: 3.207547426223755\n", - "Iter 10/100: 3.0444588661193848\n", - "Iter 10/100: 2.860292911529541\n", + "Iter 10/100: 1.3625149726867676\n", + "Iter 20/100: 1.3488014936447144\n", + "Iter 30/100: 1.3398540019989014\n", + "Iter 40/100: 1.3346573114395142\n", "Running experiments 76.19 % \n", - "Iter 10/100: 1.3681230545043945\n", - "Iter 20/100: 1.3586927652359009\n", - "Iter 30/100: 1.3537731170654297\n", - "Iter 40/100: 1.352138638496399\n", - "Iter 50/100: 1.3514869213104248\n", - "Iter 10/100: 2.8298826217651367\n", - "Iter 10/100: 3.958524703979492\n", - "Iter 10/100: 3.6835851669311523\n", - "Iter 10/100: 2.5124759674072266\n", - "Iter 20/100: 2.5177619457244873\n", - "Iter 10/100: 2.4178683757781982\n", - "Iter 20/100: 2.408752202987671\n", - "Iter 30/100: 2.403759479522705\n", - "Iter 40/100: 2.400031328201294\n", - "Iter 50/100: 2.398237705230713\n", - "Iter 60/100: 2.3973488807678223\n", - "Iter 10/100: 2.266380786895752\n", - "Iter 20/100: 2.2650389671325684\n", - "Iter 10/100: 3.4356789588928223\n", - "Iter 10/100: 3.0803236961364746\n", - "Iter 10/100: 2.926217555999756\n", + "Iter 10/100: 1.3625149726867676\n", + "Iter 20/100: 1.3488014936447144\n", + "Iter 30/100: 1.3398540019989014\n", + "Iter 40/100: 1.3346573114395142\n", + "Iter 10/100: 1.8618404865264893\n", + "Iter 10/100: 3.462953567504883\n", "Running experiments 80.95 % \n", - "Iter 10/100: 1.3681230545043945\n", - "Iter 20/100: 1.3586927652359009\n", - "Iter 30/100: 1.3537731170654297\n", - "Iter 40/100: 1.352138638496399\n", - "Iter 50/100: 1.3514869213104248\n", - "Iter 10/100: 2.976198196411133\n", - "Iter 20/100: 2.875149726867676\n", - "Iter 10/100: 3.892584800720215\n", - "Iter 10/100: 3.7442803382873535\n", - "Iter 10/100: 3.1225321292877197\n", - "Iter 20/100: 2.7445387840270996\n", - "Iter 30/100: 2.6207287311553955\n", - "Iter 10/100: 2.384814500808716\n", - "Iter 20/100: 2.3814537525177\n", - "Iter 30/100: 2.3775887489318848\n", - "Iter 40/100: 2.3756942749023438\n", - "Iter 50/100: 2.3743114471435547\n", - "Iter 10/100: 2.3439431190490723\n", - "Iter 20/100: 2.340921640396118\n", - "Iter 10/100: 2.2235496044158936\n", - "Iter 20/100: 2.2206082344055176\n", - "Iter 30/100: 2.219822645187378\n", - "Iter 10/100: 3.54522705078125\n", - "Iter 10/100: 3.143770694732666\n", + "Iter 10/100: 1.3625149726867676\n", + "Iter 20/100: 1.3488014936447144\n", + "Iter 30/100: 1.3398540019989014\n", + "Iter 40/100: 1.3346573114395142\n", "Running experiments 85.71 % \n", - "Iter 10/100: 1.3681230545043945\n", - "Iter 20/100: 1.3586927652359009\n", - "Iter 30/100: 1.3537731170654297\n", - "Iter 40/100: 1.352138638496399\n", - "Iter 50/100: 1.3514869213104248\n", - "Iter 10/100: 4.068588733673096\n", - "Iter 10/100: 1.6629219055175781\n", - "Iter 20/100: 1.6554893255233765\n", - "Iter 30/100: 1.6533725261688232\n", - "Iter 10/100: 3.40107798576355\n", - "Iter 10/100: 3.1657941341400146\n", - "Iter 10/100: 2.8043935298919678\n", - "Iter 10/100: 1.680610179901123\n", - "Iter 20/100: 1.5768804550170898\n", - "Iter 10/100: 1.4434278011322021\n", - "Iter 20/100: 1.43757164478302\n", - "Iter 30/100: 1.4347002506256104\n", - "Iter 40/100: 1.4332106113433838\n", - "Iter 50/100: 1.4317655563354492\n", - "Iter 10/100: 1.352169156074524\n", - "Iter 20/100: 1.3501579761505127\n", - "Iter 10/100: 3.148590326309204\n", - "Iter 20/100: 3.129290819168091\n", + "Iter 10/100: 1.3625149726867676\n", + "Iter 20/100: 1.3488014936447144\n", + "Iter 30/100: 1.3398540019989014\n", + "Iter 40/100: 1.3346573114395142\n", + "Iter 10/100: 3.4349498748779297\n", + "Iter 10/100: 1.3757820129394531\n", "Running experiments 90.48 % \n", - "Iter 10/100: 1.4217357635498047\n", - "Iter 20/100: 1.4102212190628052\n", - "Iter 30/100: 1.4077873229980469\n", - "Iter 40/100: 1.4063196182250977\n", - "Iter 50/100: 1.4066364765167236\n", - "Iter 10/100: 4.039428234100342\n", - "Iter 10/100: 2.766660213470459\n", - "Iter 10/100: 4.0896806716918945\n", - "Iter 10/100: 3.7715249061584473\n", - "Iter 10/100: 3.5718278884887695\n", - "Iter 10/100: 3.422545909881592\n", - "Iter 10/100: 3.235086441040039\n", - "Iter 10/100: 2.1950721740722656\n", - "Iter 20/100: 1.6078789234161377\n", - "Iter 30/100: 1.5823323726654053\n", - "Iter 10/100: 1.5318920612335205\n", - "Iter 20/100: 1.523069143295288\n", - "Iter 30/100: 1.5181326866149902\n", - "Iter 40/100: 1.5155069828033447\n", - "Iter 50/100: 1.5139343738555908\n", - "Iter 60/100: 1.513096809387207\n", - "Iter 70/100: 1.5124356746673584\n", + "Iter 10/100: 1.4361984729766846\n", + "Iter 20/100: 1.4225883483886719\n", + "Iter 10/100: 1.9328839778900146\n", + "Iter 10/100: 3.8848330974578857\n", "Running experiments 95.24 % \n", - "Iter 10/100: 1.5138039588928223\n", - "Iter 20/100: 1.4890148639678955\n", - "Iter 30/100: 1.4850513935089111\n", - "Iter 40/100: 1.4841172695159912\n", - "Iter 50/100: 1.4832696914672852\n", - "Iter 10/100: 4.0583086013793945\n", - "Iter 10/100: 3.0592734813690186\n", - "Iter 10/100: 2.788975954055786\n", - "Iter 20/100: 2.7865052223205566\n", - "Iter 30/100: 2.786017894744873\n", - "Iter 40/100: 2.784902572631836\n", - "Iter 50/100: 2.783916711807251\n", - "Iter 10/100: 4.026205539703369\n", - "Iter 10/100: 3.710700511932373\n", - "Iter 20/100: 3.703223466873169\n", - "Iter 30/100: 3.6957249641418457\n", - "Iter 10/100: 3.511491537094116\n", - "Iter 10/100: 3.331939220428467\n", - "Iter 10/100: 3.179959774017334\n", - "Iter 20/100: 3.17014741897583\n", - "Iter 10/100: 3.0055501461029053\n", + "Iter 10/100: 3.950112819671631\n", "Running experiments 100.00 % \n", - "Optimizing 21 Experiments takes 0.84 minutes.\n" + "Optimizing 21 Experiments takes 0.75 minutes.\n" ] } ], @@ -908,14 +610,14 @@ "metadata": {}, "source": [ "## 6. Visualize the Pareto front\n", - "We can get the Pareto set directly from the `MOOExperiment` object by using `MOOExperiment.get_optim`.\n", + "We can get the Pareto set directly from the `WeightedMOOExperiment` object by using `WeightedMOOExperiment.get_optim`.\n", "\n", "To visualize the Pareto front, `y1` values are plotted against `y2` values. The scatter points resemble an ellispe shape, incidating the method is able to map out the entire front. " ] }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -948,7 +650,7 @@ " \n", " \n", " \n", - " 0\n", + " 0\n", " 0.00\n", " 1.00\n", " 0.00\n", @@ -956,15 +658,15 @@ " 1.00\n", " \n", " \n", - " 1\n", + " 1\n", " 0.05\n", " 0.95\n", - " 0.27\n", - " 0.27\n", + " 0.26\n", + " 0.26\n", " 0.99\n", " \n", " \n", - " 2\n", + " 2\n", " 0.10\n", " 0.90\n", " 0.20\n", @@ -972,7 +674,7 @@ " 0.98\n", " \n", " \n", - " 3\n", + " 3\n", " 0.15\n", " 0.85\n", " 0.33\n", @@ -980,7 +682,7 @@ " 0.94\n", " \n", " \n", - " 4\n", + " 4\n", " 0.20\n", " 0.80\n", " 0.41\n", @@ -988,23 +690,23 @@ " 0.91\n", " \n", " \n", - " 5\n", + " 5\n", " 0.25\n", " 0.75\n", - " 0.51\n", - " 1.02\n", - " 0.86\n", + " 1.14\n", + " 1.14\n", + " 0.82\n", " \n", " \n", - " 6\n", + " 6\n", " 0.30\n", " 0.70\n", - " 1.33\n", - " 1.33\n", - " 0.75\n", + " 1.26\n", + " 1.26\n", + " 0.78\n", " \n", " \n", - " 7\n", + " 7\n", " 0.35\n", " 0.65\n", " 0.73\n", @@ -1012,7 +714,7 @@ " 0.68\n", " \n", " \n", - " 8\n", + " 8\n", " 0.40\n", " 0.60\n", " 1.58\n", @@ -1020,31 +722,31 @@ " 0.61\n", " \n", " \n", - " 9\n", + " 9\n", " 0.45\n", " 0.55\n", - " 0.84\n", + " 1.68\n", " 1.68\n", " 0.54\n", " \n", " \n", - " 10\n", + " 10\n", " 0.50\n", " 0.50\n", - " 1.75\n", - " 1.75\n", - " 0.48\n", + " 1.77\n", + " 1.77\n", + " 0.46\n", " \n", " \n", - " 11\n", + " 11\n", " 0.55\n", " 0.45\n", - " 1.84\n", - " 1.84\n", - " 0.39\n", + " 1.87\n", + " 1.87\n", + " 0.35\n", " \n", " \n", - " 12\n", + " 12\n", " 0.60\n", " 0.40\n", " 0.95\n", @@ -1052,7 +754,7 @@ " 0.30\n", " \n", " \n", - " 13\n", + " 13\n", " 0.65\n", " 0.35\n", " 0.95\n", @@ -1060,7 +762,7 @@ " 0.30\n", " \n", " \n", - " 14\n", + " 14\n", " 0.70\n", " 0.30\n", " 0.95\n", @@ -1068,15 +770,15 @@ " 0.30\n", " \n", " \n", - " 15\n", + " 15\n", " 0.75\n", " 0.25\n", - " 1.99\n", - " 1.99\n", - " 0.09\n", + " 0.95\n", + " 1.91\n", + " 0.30\n", " \n", " \n", - " 16\n", + " 16\n", " 0.80\n", " 0.20\n", " 2.00\n", @@ -1084,15 +786,15 @@ " 0.00\n", " \n", " \n", - " 17\n", + " 17\n", " 0.85\n", " 0.15\n", - " 2.00\n", - " 2.00\n", - " 0.00\n", + " 1.98\n", + " 1.98\n", + " 0.15\n", " \n", " \n", - " 18\n", + " 18\n", " 0.90\n", " 0.10\n", " 2.00\n", @@ -1100,7 +802,7 @@ " 0.00\n", " \n", " \n", - " 19\n", + " 19\n", " 0.95\n", " 0.05\n", " 2.00\n", @@ -1108,7 +810,7 @@ " 0.00\n", " \n", " \n", - " 20\n", + " 20\n", " 1.00\n", " 0.00\n", " 2.00\n", @@ -1122,23 +824,23 @@ "text/plain": [ " $\\rm w_1$ $\\rm w_2$ x $\\rm y_1$ $\\rm y_2$\n", "0 0.00 1.00 0.00 0.00 1.00\n", - "1 0.05 0.95 0.27 0.27 0.99\n", + "1 0.05 0.95 0.26 0.26 0.99\n", "2 0.10 0.90 0.20 0.40 0.98\n", "3 0.15 0.85 0.33 0.66 0.94\n", "4 0.20 0.80 0.41 0.83 0.91\n", - "5 0.25 0.75 0.51 1.02 0.86\n", - "6 0.30 0.70 1.33 1.33 0.75\n", + "5 0.25 0.75 1.14 1.14 0.82\n", + "6 0.30 0.70 1.26 1.26 0.78\n", "7 0.35 0.65 0.73 1.47 0.68\n", "8 0.40 0.60 1.58 1.58 0.61\n", - "9 0.45 0.55 0.84 1.68 0.54\n", - "10 0.50 0.50 1.75 1.75 0.48\n", - "11 0.55 0.45 1.84 1.84 0.39\n", + "9 0.45 0.55 1.68 1.68 0.54\n", + "10 0.50 0.50 1.77 1.77 0.46\n", + "11 0.55 0.45 1.87 1.87 0.35\n", "12 0.60 0.40 0.95 1.91 0.30\n", "13 0.65 0.35 0.95 1.91 0.30\n", "14 0.70 0.30 0.95 1.91 0.30\n", - "15 0.75 0.25 1.99 1.99 0.09\n", + "15 0.75 0.25 0.95 1.91 0.30\n", "16 0.80 0.20 2.00 2.00 0.00\n", - "17 0.85 0.15 2.00 2.00 0.00\n", + "17 0.85 0.15 1.98 1.98 0.15\n", "18 0.90 0.10 2.00 2.00 0.00\n", "19 0.95 0.05 2.00 2.00 0.00\n", "20 1.00 0.00 2.00 2.00 0.00" @@ -1149,7 +851,7 @@ }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAa8AAAGRCAYAAADSGzzcAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAAAqw0lEQVR4nO3deZBlZ3nn+e9z7pp77apSCUlIaGEb5G6CTd2ARFiD7e4OaINnPGGMGffQjBmDGRNtwnaPJc8Q7ojpwGrAGDweUAMTE+NpD2Y8xkZuEEILChubRbJKUq3aas+qysrMyvXed/44N0ulVGVVLjfz3pP5/UTcOJn3nPveN0+dyl++97znOZFSQpKkIsk63QFJkpbK8JIkFY7hJUkqHMNLklQ4hpckqXAML0lS4RhekqTC6Xh4RcTWiPhXEfG1iNgXERMRMRIRD0bEL0fEkvoYEVdFxBcj4nBETEXEoYi4OyI2r9bPIElaW9Hpi5Qj4kPAHwJHgPuAZ4ArgH8JDAF/Crw3LaKjEXE98DCwA/g68ATwBuA24Eng1pTS8Cr8GJKkNdQN4XU70Af8RUqpecHzO4G/AV4GvCel9KeLaOubwB3AR1JKn7ng+U8BHwO+kFL6UJt/BEnSGut4eF1KRPwm8EngsymlX73MttcB+4FDwPXzgnCAfGQXwI6U0viqdVqStOo6fs7rMmZay9lFbHt7a3nvhcEFkFIaBR4CeoE3ta97kqROKHe6AwuJiDLwi61v/2oRL7mptXxqgfV7yT9SvBH41rz3utzw83lg3yL6IEnKvQI4kVL6idVovGvDC/h3wGuAb6SUvrmI7Yday5EF1s89v2mpHRkaGtp9yy237F7q6yRpo/rhD3/IyMhCv45XrivDKyI+Avw6+WzB97Wr2dbyJaOslFLMf+6Cvnznlltuedt3vvOdNnVDkta/t7/97dx///2r9olV153ziogPA/8BeBy4LaV0apEvnYv4oQXWD87bTpJUUF0VXhHxa8BngcfIg+voEl7+ZGt54wLrb2gtFzonJkkqiK4Jr4j4DeD3gR+SB9fxJTZxX2t5x/yqHK2p8rcCE8AjK+yqJKnDuiK8IuLfkk/Q+DvgHSmlk5fYthIRN7eqaZyXUtoP3AtcC3x43svuIr8Q+ste4yVJxdfxCRsR8X7gd4EG8ADwkYiXzJ84lFK6p/X1bmAP8DR5UF3oV8jLQ306It7R2u6N5OWhngJ+q/0/gSRprXU8vICXt5Yl4NcW2OZ+4J7LNZRS2h8RrycPw3cCP01eWePTwF1LmPwhSepiHQ+vlNKdwJ1L2P4QL0x7v9j6Z4EPrLRfkqTu1RXnvCRJWgrDS5JUOIaXJKlwDC9JUuEYXpKkwjG8JEmFY3hJkgrH8JIkFY7hJUkqHMNLklQ4hpckqXAML0lS4RhekqTCMbwkSYVjeEmSCsfwkiQVjuElSSocw0uSVDiGlySpcAwvSVLhGF6SpMIxvCRJhWN4SZIKx/CSJBWO4SVJKhzDS5JUOIaXJKlwDC9JUuEYXpKkwjG8JEmFY3hJkgrH8JIkFY7hJUkqHMNLklQ4hpckqXAML0lS4RhekqTCMbwkSYVjeEmSCsfwkiQVjuElSSocw0uSVDiGlySpcAwvSVLhGF6SpMIxvCRJhWN4SZIKx/CSJBWO4SVJKhzDS5JUOIaXJKlwDC9JUuEYXpKkwjG8JEmFY3hJkgrH8JIkFY7hJUkqHMNLklQ4hpckqXAML0lS4RhekqTCMbwkSYVjeEmSCsfwkiQVjuElSSocw0uSVDiGlySpcDoeXhHxnoj4TEQ8EBFnIyJFxFeX0c6h1msv9ji6Gn2XJHVGudMdAH4beB0wBjwH3LyCtkaAuy/y/NgK2pQkdZluCK+PkYfWPuBtwH0raOtMSunOdnRKktS9Oh5eKaXzYRURneyKJKkgOh5ebVaLiF8ArgbGgR8D300pNTrbLUlSO6238NoJfGXecwcj4gMppfsXelFEpNXtliSpnTo+27CNvgS8gzzA+oDXAl8ArgX+MiJe17muSZLaad2EV0rprpTSt1NKx1JK51JKj6WUPgR8CugB7rzEa2OhB7DgiE2S1BnrJrwu4fOt5Vs72gtJUttshPA63lr2dbQXkqS22Qjh9ebW8kBHeyFJaptChVdEVCLi5oi4ft7zr46ILRfZ/hrgs61vl1xySpLUnTo+VT4i3gW8q/XtztbyzRFxT+vrkymlj7e+3g3sAZ4mn0U4573AJyLiPuAgMApcD/wMUAe+Afz7VfkBJElrruPhBdwCvH/ec9e1HpAH1ce5tPuAm4CfIP+YsA84AzxIft3XV1JKXsslSetEx8OrVYvwzkVuewh4SQ2p1gXITmmXpA2iUOe8JEkCw0uSVECGlySpcAwvSVLhGF6SpMIxvCRJhWN4SZIKx/CSJBWO4SVJKhzDS5JUOIaXJKlwDC9JUuEYXpKkwjG8JEmFY3hJkgrH8JIkFY7hJUkqHMNLklQ4hpckqXAML0lS4RhekqTCMbwkSYVjeEmSCsfwkiQVjuElSSocw0uSVDiGlySpcAwvSVLhGF6SpMIxvCRJhWN4SZIKx/CSJBWO4SVJKhzDS5JUOIaXJKlwDC9JUuEYXpKkwjG8JEmFY3hJkgrH8JIkFY7hJUkqHMNLklQ4hpckqXAML0lS4RhekqTCMbwkSYVjeEmSCsfwkiQVjuElSSocw0uSVDiGlySpcAwvSVLhGF6SpMIxvCRJhWN4SZIKx/CSJBWO4SVJKhzDS5JUOIaXJKlwDC9JUuEYXpKkwjG8JEmFY3hJkgrH8JIkFc6ywisiNkXEz0TEWyIi5q3ri4j/qT3dkyTppZYcXhHxamAP8HXgQeBvI+KaCzbpB36nPd2TJOmlljPy+j3ge8AQsBs4ADwUETcspwMR8Z6I+ExEPBARZyMiRcRXl9nWVRHxxYg4HBFTEXEoIu6OiM3LaU+S1J3Ky3jNm4DbUkrjwDjwcxHxKeA7EXEbMLLE9n4beB0wBjwH3LyMPhER1wMPAzvIR4VPAG8APgq8MyJuTSkNL6dtSVJ3Wc7IqwakC59IKf2PwJ8A9wOvXGJ7HwNuBAaB/34Z/ZnzOfLg+khK6V0ppU+klG4Hfh+4Cfjkcht+5tQ5/vcHDrLnyFlSSpd/gSRpVS0nvJ4EXj//yZTSx8gD7OtLaSyldF9KaW9aQSpExHXAHcAh4A/mrf4d8hHi+yKib7nvcfDkGH/03QN87QfPG2CS1GHL+djwa8DPA1+evyKl9NGIKLOyEdRy3N5a3ptSas7r02hEPEQebm8CvrXUxrMItvbX2NxMPLD3JK+6cpCbdw6uvNerIKXEE0dHeXjfMCfGJtneX+ctr9jKzTsHmDcxVJIKa8kjr5TS76WUfuoS6z+cUlrr68duai2fWmD93tbyxoutbE0SuegDeNvcdlkW9FVLPLS3O0+dpZT42g+e53/77gEOnhyjmRwxSlqfLjvyiogdKaXja9GZFRhqLReaLDL3/KblNN5sNjl+eoyIYKaReOrIaR5/dhOlDEpZRrmcUYogy4Isgiy44OsgWt+XIojz29FaF5Sy9oyInjg6yoN7T7J7Uw9Zq82eSmnFI0ZHc5K6zWI+Nnw2Iv4M+EJK6dur3J/VMvcb9qJDj5TSgr+BI+I7zcTbJqZmKJcyxiZn2dZf59nhMVJKNFP+yz0lSKT8jS74hf6SN04JCNL5dYlEHoKlLF70KGdZHnqloJJlZBGUS9n50CyVMsrZC6H5148doRyJ6dkGkfedLCCyoLeS8dDe4SWH19xo7sG9J+mtluitlTl4cozHDo/wT2/Yxrt/YrcBJmnNLSa8ngLeC7wnIvYDXwDu6bJp53Mjq6EF1g/O227JsghKWYnZNMst12xiqLe63KZe4sLwuzAMp2Yb+fNzIUl68fet7eaice/h06QUzEzNtAK0FZkJZppNfjw+wf1batQqJerVEj2VEvVqmWq5RKWUUS4FlXLW+joPy9UazUnSSlw2vFJKr42ItwAfJA+x/xX4XyLi/yEfjX13lfu4GE+2lhc9pwXMXUC90DmxS0opMTY5SzMavOrKQXZv6llOMwuK1keLEJRW0M6OwV6OnZ2gXnvpP+v0uWm29NUBODc1y+jENI1motFMpJQIAiKPu7lTY9VyxsP7h5manOL0aKJUylojxDzo6uXgwadOGl6S1tyiZhumlB4GHo6IjwK/SB5kPw/81xHxFPB54MsppdOr1tNLu6+1vCMisgtnHEbEAHArMAE8stw32NZf5x+9fDO7N/V07cdkN+8a4OlT4/Q1IbtgykyzCVONxKt3D1KrLD4eG80mo5MzlLJgcnqW5txIrxVu080mPxqf4Nubawz0VhisV+irV+iplvPRXaVEuWTtZ0ntt6Sp8imlEeAzwGdao7H/Dvg54FPA70XEnwCfTSl9v+09BSKiAlwPzKSU9l/Qr/0RcS/5dPgPt/o45y6gj3yUOL6c9901VOef3LiVLf315Xd+DVy1uYdXXTnI44fPUi9nVCslpmcaTM42lzViLGUZm3trHDs7QeUio7mZiRm299cpl4Kz49MMn51kttFsnczLh3HVckZ/vUJ/vcJAb5Xeaqn1sWWZWjlblT8EnGAirX/Luc5rzjBwGpgEeoAq+ajsfRHx58B/m1I6dblGIuJdwLta3+5sLd8cEfe0vj6ZUvp46+vd5EWBnwaundfUr5CXh/p0RLyjtd0bgdvIPy78rSX9dAUUEbz5uq1cvaWXPYdHGZmc5orBHl555cCyR4yXGs1NzjZ51e5BquUS1fLFR3SzjSZTsw3Gzszkk1zm+tpa9tXLDNSr9PdUGKhXzo/Y6tUSpWzpozYnmEgbw5LCqzXy+VngXwNvJf8d9BTwPwP3ALcA/wb4F+SVLn5+Ec3eArx/3nPXtR6QB9XHuYzW6Ov1wO8C7wR+GjgCfBq4azFBuh5EBFdt7uWqzb1taW+lo7lya/JHz0XmtzRTYrbR5PT4FMfPTjDbSGQXnHerV/JR22BPHm491TL1Sj5yqy4wanOCibQxLCq8IuIV5Oe5fgnYCjSAPwM+l1K6sGLFd8gL9P4n8gC5rJTSncCdi9z2EC/80X6x9c8CH1hMW1qc1RjNzckiLjtqm5xpMDoxznSj2TrXll9kkEXko7aeCgM9VfrrFWqVjPufOE5PJTsfXOff64ILzA0vqfgWc5Hyfyb/6C2Aw+SjrD9KKR2+xMv+Dnh3W3qojmv3aG6xLjlqayZmGk1OjU1x9MwEzWYTIviHZ4ZppsTU5HRr2n+JWrVEuZR/FHlibHJNfwZJq2MxI6/byWfzfQ74s5RSYxGv+XPyoJNWRZYFtaz0ktmTOwZ7ODpyjlIWzDaaTM80GJ3Iz7SNT86ya3Mvjz49zOb+Gv2t2ZEVZ0RKhbOY8HplSunJy2/2gpTSY8Bjy+uStHxzE0z6CcqlYO7CuWYTzjLLzTsHOHL6HIdOjJ2/jru3VmbLQI0t/TUG6lX66uUFP8q8GGc3SmtvMRcpLym4pE661ASTV+8e4tptfS8KlJTyjx+Pj0zw3MmxvDJJgp5qiS39NbYM1BnoqdBXq1z0GjlnN0qdsZKp8lLXWeoEk7hw0sgFEydnZpucHJ3i+VPn8rO9CaqVjK39dbYM1BnsqdBXK3Pg5LizG6UOMLy07rRjgkmlnFEpZwz0VM4/N9Oa1n/0zLnzJbS+d2CY6ckZxiYyquUS5XKJUqtYsrMbpdVjeEmLVCnlRYv76y8E2sRsgywLzoxNni+blWVBT61ClDKOjJzrUG+l9c3wklZgc09ePqvvghFas5mYmJphdGKGrf01/vpHz7Jrcy/bBnsY6q3SU/W/nbRS/i+SVuBi5bOyLChTohmz/OOXb6FeKfP8qXMcPD4KBL21Mjs39bB9sIfBngp1w0xaMv/XSCuwmPJZEcFQ+YUrradnGzx7cowDx0YJEr21Cjs39bJtsM5Qb3VJlf+ljcrwklZgOeWz5pfEmppp8MzJUQ4cO0sCBuoVdm3uYctAHmaXu+bM68y0ERle0gqtdHZjrfLiSiFTMw0OHBtl79ERSMFgb4UrNvWytb/OYG/lRWHmdWbaqAwvqctcGGYpJaZmm+w/epa9zREABnsr7Nrcx5b+GodHJr3OTBuS4SV1sYjI7292YZjNNNh75AzNZuKhfcNMTc0ydi6jVi1TKZfIvM5MG4DhJRVIRFCvls/PUJxuNilnwZnxSRgDIuirlenrrdFjFX2tY5bTlgpsU0+NRjPlgVYrU6tkTEzPcvzUGM8cPQONJmfGp2jOlQSR1glHXlKBzb/OLCKoVkp5Ff2pWXb0lXlgzxF6qmWu3T7AFZt6X1TySioqw0sqsMtV0X/llUNEBNOzDZ48fIY9z59mqLfKNdsH2DHUY7UPFZZHrlRgi73OrFousXUgn/QxOT3Lo8+cgpTYMlDn2u0DbBusL+keZlKnGV5SwS31OrO5CR8pJc5NzfJ3B04QBFdu6eWqrf1sHahRyjwdru5meEkbVETQV6/QV6/QbCZOjk7y/Klxylnwsu0DXLm5l019NTIvclYXMrwkkWXBYE8VeqDRbPLcyTEOHhulXs645ooBdg7lEz2s1qFuYXhJepFSlrGprwbkd5Tee3iEp54/Q3+9yjU7BtgxVKev5oxFdZbhJWlBlXLG1oE6AJMzDf7hmVM8mhLbBupcvb2f7YM9VsFXRxhekhZlrkxVSomJ6QY/ODhMAFds6uXqbX1sHahTLjnRQ2vD8JK0JBH5DTV7a2WaKXFmfIpjZ8bJIrhqWz+7t/Sxqa9GKfP8mFaP4SVp2bIIBnoqDPRUaDSbHDl9jqdPjFItl7hmez+7Nvcx6EQPrQLDS1JblLKMod78jtEzjSYHjo2y78gIPbUKL9/RzxVDvfTVneih9jC8JLVdpZSxpT+fsTg10+Dx507z+LNnGOqrcO2OQbYP9py/zct83hlai2F4SVpV+c01ewCYmJ7lhwdPEgTbB/MZi9sGe6i0Jnp4Z2gtluElac30VMv0VPOJHqOTM3x//0lKAbu29PKyrQMcG53yztBaFMNL0prLIuivV+ivV2g0E8dHJnl+eJzv7T9Fc6bBTKNKNUrnR1neGVrzGV6SOqqUxfmJHhONBrONJseGxyiVMvp7qvT3VCmVMnprZe8MrfO8olBS19jck0/yqNfKZBmMjE3y/MmznB6dYPTcNNv76x3uobqF4SWpa9y8a4DJ2SbNZj71vl4rU6uUODs+xeHhUa7oLzE2OdPpbqoLGF6SusbcnaGHx6cYnZhharbJ2OQsY9MN/ouXbaKUEt9+9Hl+cPAkZ89Nd7q76iDPeUnqGou5M3QzJY6dOcdzw2Ps2tTLK3YNna+Cr43D8JLUVS53Z+gsgk19NVJKnBqb4oE9R9g2UOfGKzexpb/mdWAbhOElqZAigsHWLMWxyRkeeuIoW/pr3HjlJrYN1r0D9DpneEkqvLlrxsanZnhk7zEG61Vu2j3EjqFeq9uvU4aXpHWjr1ahr1ZhYnqW7+87QW+tzE27N7Frcy+lLLNu4jpieElad+bKUE3ONPj7gyfpebbEDVcO8bfPnOF7+09ZN3EdMLwkrVv53Z97mJ5t8NePHuahfcNcs32Agd4KpSyzbmKBeZ2XpHWvWi5x9Ow0vbUSZ8cnOXxilJGxSRrN5ovqJqo4HHlJ2hBGJqepV8vUyhnNlDg7NsnZ8Sk2D9TpqZasm1gwjrwkbQhD9SrTMw0gv1asVitTKWcMnz3Hc8dH6Fvg5pjqToaXpA3hwrqJc7IsqFUqTM42qUWDv9133NqJBWF4SdoQLlY3cXRihuHxKV571SZes3sTp8amuO/R59nz3GmmZxud7rIuwXNekjaExdRNHOqt0mgm9h89yzMnxnjV1ZvZvaXPah1dyPCStGFcrm4i5DfH3DZYZ3q2wQ8PnuTA0bO85uotbB3wXmLdxPCSpIuolktsH+xhfGqGB584wlVb+7l59yb6ahUAq3V0mOElSZfQV6vQWy1zYmSCw6fOceOuQa7dMcBfPHqUB/eetFpHhxheknQZ0boNS6PZZO/Rs3xv3wn+9ukRXr5jgFIpn/dmtY615WxDSVqkUpaxbaDOoRPnmJ6e4cSZcaamZ8+vt1rH2jG8JGmJxmZmGeit0mg2OXpqlOGRczQa+QVkvbWy1TrWgOElSUs0V62jUi5Rr5YZn5zhyPAo5yanOTc1y/Z+ZyauNsNLkpbowmodEUG9WqKUBcdOjXP8zDhvvG5zp7u47hlekrREF6vWcW66wfhMg6s31TlycozhUT86XE3ONpSkJbpctY7JmQYPPXGUG3YNccOuIcolxwntZnhJ0jJcqlpHT7VMrVxi39ERjp2Z4JaXb2VTX60DvVy//HNAklZBlgXbB3toNJs8sOco+46M0GimTndr3TC8JGkV9dUrbOmvsuf503zvyaOMTnjLlXbwY0NJWmWlLGP7YA+jE9Pc//hhXvOyzVy9fYAA6yMuk+ElSWtkoKdKT6PJj58+xZHT53h6ZIq/OXja+ojL4MeGkrSGyqWMHUM9PHH4LH/1g2fZVCuxpa9KT6XE1v4aV23q4YG9J3ny2Ginu9rVDC9J6oDnzkzSWy1zavQcw2deKC9lfcTFMbwkqQNGJqep18rUq2Umpmc5MjzG9Exe5Nf6iJfXNeEVEVdFxBcj4nBETEXEoYi4OyIWXWel9Zq0wOPoavZfkpZirj5iRFCrlsgyODo8xviE9REXoysmbETE9cDDwA7g68ATwBuAjwLvjIhbU0qLHUOPAHdf5PmxNnRVktri5l0DPH1qnL4mZFl+LiyL4PjpcaZS8N+86epOd7GrdUV4AZ8jD66PpJQ+M/dkRHwK+BjwSeBDi2zrTErpzrb3UJLaaK4+4uOHz1IvZ1QrJaZnGkzMNLhmcy/jY5NMz/ZTLZc63dWu1PGPDSPiOuAO4BDwB/NW/w4wDrwvIvrWuGuStGrm6iO+8zU7uWKwhyzgisEefuq1u/jJ1+zk+NlJHtpzlLFJL2q+mG4Yed3eWt6bUmpeuCKlNBoRD5GH25uAby2ivVpE/AJwNXnw/Rj4bkqp0cY+S9KKXao+4taBOqMTM3z38cO8/vrt7Bh66TYbWTeE102t5VMLrN9LHl43srjw2gl8Zd5zByPiAyml+y/2goiw4JikrjPQU2FqJuORp47zmpdt5todAzx5bMyKHHRHeA21liMLrJ97ftMi2voS8ADwD8AocB3wPwAfBP4yIt6cUvrR8rsqSWurVimxdaDGo8+c4i9+fJgDpybpq5U3fEWOjp/zWoS5f43Ljo5SSnellL6dUjqWUjqXUnospfQh4FNAD3DnAq+LhR7ARUdrkrRWSlnGVCPx/YPDlFODoZ7Khq/I0Q3hNTeyGlpg/eC87Zbj863lW1fQhiR1zJNHxxioV2g2E0eHR5lqXdC8UStydEN4Pdla3rjA+htay4XOiS3G8dbSGYuSCmlkcppqpUS1UiLLgmPDY0xO5TMRN2JFjm4Ir/tayzsi4kX9iYgB4FZgAnhkBe/x5tbywArakKSOmavIAfkFzZVyxvHT40xOzWzIihwdD6+U0n7gXuBa4MPzVt9FPlr6ckppHCAiKhFxc6sqx3kR8eqI2DK//Yi4Bvhs69uvtrn7krQmbt41wORsk2brgqJSK8COnRrn9PgUt96wtbMdXGPdMNsQ4FfIy0N9OiLeAewB3gjcRv5x4W9dsO3u1vqnyQNvznuBT0TEfcBB8tmG1wM/A9SBbwD/flV/CklaJQtV5Dg3PcvLt/Wxradbfp2vja74aVNK+yPi9cDvAu8Efho4AnwauCuldGoRzdxHfs3YT5B/TNgHnAEeJL/u6yspJa/nklRIcxU5rt7Sy57Do4xMTnPFYA+vvHKArX1VHtl3gjfdsINtgz2d7uqa6IrwAkgpPQt8YBHbHeKF6fMXPn8/TmuXtI5dqiJHRPDI3uMbJsA6fs5LkrRy9UqJ/nqFR/Ye5+TZiU53Z9UZXpK0TmykADO8JGkd2SgBZnhJ0jqzEQKsayZsSJLap17Jb2L5yN7jvOkV2zlxbnZdVaM3vCRpnapXSqSU+MNvP8Wx8Vk29dXWTTV6PzaUpHXs5Ng0h06eo9xs0lvJ1k01esNLktaxJ46M0lMtUa1knDg9zkSrmG/Rq9EbXpK0js1Vo5+rhXji9DjTrdupFLkaveElSevYhdXoS6WMcjnjxJlzNJrNQlejN7wkaR2bX42+XMpoNBMnz5xjbGq2sNXoDS9JWsfmqtEPj08xOjHD1GyT6dkGh8+M86or+rnpioFOd3FZnCovSevYxarR7xzq5W07+6mVg9PjU2wp4EeHhpckrXMLVaOfmJ7l+/tO8NZX7aJeLVYc+LGhJG1QPdUyjWbih4eGaRbsdoeGlyRtYJv7axwfmWDf0ZFOd2VJDC9J2uC2DtTZ8+wZTowUp4iv4SVJG1wpC4b6qvz9gZNMTM92ujuLYnhJkvIiviR+cPAkjWb3n/8q1vQSSdKq2dRX48TZCZ54bpiHDo7wn/7+Oc6cm2ZTb5X3/KOr+OV/ci2lUqnT3QQML0nSBTb3VfmtP/0x+09PkmUlKuXg2Mgkd39rL/c9eZyv/vIbuiLA/NhQknTef95znGfOTLK5mtFfK1Erl+ivlxmql/jRcyN86eGnO91FwPCSJF3g4f3DlCMgglKzCa3rv7Iso5IFf/L9Zzvcw5zhJUk6b3xqllIpD68gkaXm+XWVcnDm3HQHe/cCw0uSdF5frUyjkY+2EpCldH70NTOb2NRb7WDvXmB4SZLOe8v1W5lNkFKCCAAiNWk2m8w0Ez/3+pd1uIc5w0uSdN4dr7qCl2/rZXy6yeR0g+lmk5npBiOTs7zuqiE+8JZrOt1FwPCSJF0gyzJ+/Sdv5F23XMmmvipZZAz1VvjQP72ua6bJg9d5SZLmybKMO169kztevROA0YkZhvqqXRNc4MhLknQZ/fUyR0+fY3xqptNdOc/wkiRdUkRQyoLnT413uivnGV6SpMsa7K1y4OhZGs3m5TdeA4aXJOmyKqWMmUbieJfc88vwkiQtSm+txIFjZzvdDcDwkiQtUl+twqmxKc52QYkow0uStGjlLOOZ4bFOd8PwkiQt3mBvhWeOjzI92+hoPwwvSdKilbKMRoJjHZ64YXhJkpZkoF5m/5GzefHeDjG8JElLUq+WGZ2c5vT4VMf6YHhJkpasWi5x6MRox97f8JIkLdlAT4XDw+eYnJ7tyPsbXpKkJctaN6o8croz9Q4NL0nSsgz2Vth39CyN5tpP3DC8JEnLUi2XmJxuMDw6uebvbXhJkpatXi1zsAP1Dg0vSdKy9dfLHD87yfjk2t6o0vCSJC1bfqNKeG6N6x0aXpKkFRnsqXLw+CizjbW7UaXhJUlakXLrRpUn1rDeoeElSVqxvlqZfcdG1uz9DC9J0or11sqcGZ9mZI1uVGl4SZLaolzKeGaN6h2W1+RdJEnr3kC9wt/sP8H3Dp7hmVPnKA3t2L1a72V4SZJWLKXE3xw6xY+eOc22wR4AsnKtd7Xez/CSJK3Yc6cn2HP4LNv760RKZAGpObtqVy57zkuStGJPHBmlVs6oVDJmG02aq3zJl+ElSVqxkclpqpUSAFkWNFY5vQwvSdKKDdWrTM80gHzWYTOt7m1SDC9J0ordvGuAydn848IIWOXsMrwkSSt31eYeXnXlIMPjU4xNzpJSIrJyZbXez9mGkqQViwjefN1Wrt7Sy57D+YXKaXZ61e5S6chLktQWEcFVm3v5yVdfwZa+Ko2x4aOr9V6GlyRpVURkq5YxhpckaVUYXpKkQokIItsA4RURV0XEFyPicERMRcShiLg7IjZ3oh1J0vIFEFlp1SYFdsVsw4i4HngY2AF8HXgCeAPwUeCdEXFrSml4rdqRJK1QQGRZabWa75aR1+fIA+cjKaV3pZQ+kVK6Hfh94Cbgk2vcjiRpGWZnZ/nj7x7gwIlxylte9prVep+Oh1dEXAfcARwC/mDe6t8BxoH3RUTfWrQjSVqe2dlZfuNPH+N7B0/RTIlYxffqeHgBt7eW96aUXlTJMaU0CjwE9AJvWqN2JEnLcM/Dz3BmcpZS5Oe8VjO9uuGc102t5VMLrN9LPqK6EfjWarQTEZeswvX4PzzKJz74X1EudUPWS1J32nts7PyIa+LYAbJqz6rFVzeE11BrObLA+rnnN61ROy8xevYse/cf3Me8EZ2WbnLkxI0A9aHtC/2RoSVwf7aX+3NlSkNX3BAACZpT56I5dW7V3qsbwuty5pJ7pTWKF2wnpbTgXwdzo7KJ08duWOH7iwv255njN11uW12e+7O93J/tc7lPtFaqGz4HmxsRDS2wfnDedqvdjiSpy3VDeD3ZWt64wPq5Ec/lhvHtakeS1OUirfYdwy7XgfzC4n3kU9yvv3CmYEQMAEfIQ3Z7Sml8tdu5SLsJLv3RohbP/dle7s/2cn+2z2rvy46PvFJK+4F7gWuBD89bfRfQB3x5LnAiohIRN7fCatntSJKKq+MjL7hoWac9wBuB28g/5nvLXFmniLgWOAg8nVK6drntLKFv/iXWRu7P9nJ/tpf7s33W/cgLzo+aXg/cQx42vw5cD3waePNiA6dd7UiSultXjLwkSVqKrhh5SZK0FIaXJKlwDC9JUuEYXpKkwtmQ4RURV0XEFyPicERMRcShiLg7IjZ3op2ia8d+aL0mLfA4upr97xYR8Z6I+ExEPBARZ1s/+1eX2daGPzbbtT89NiEitkbEv4qIr0XEvoiYiIiRiHgwIn45IpaUJe04PotQmLetLnIt2BPAG4CPAu+MiFsXM6W+Xe0UXZv3wwhw90WeH2tDV4vgt4HXkf+8zwE3L6cRj83z2rI/Wzb6sfle4A/JKxXdBzwDXAH8S+CPgZ+KiPemRUxfb9vxmVLaUA/gm+SV5X913vOfaj3/+bVsp+iPNu7PQ8ChTv88Hd6Xt5HX4Azg7a3999VO/ZsU/dHG/emxmd/s958D2bznd5IHWQJ+dpFtteX43FDXeUXEdcB+Ll3/MIAd6dJ1FNvSTtG1cz9ExCGANK9qykYVEW8n/wv3/0gp/cISXuexeRHL3Z+t1x4Cj82FRMRvAp8EPptS+tXLbNu243OjnfO6vbW8N827sWRKaRR4COgF3rRG7RRdu/dDLSJ+ISJ+MyI+GhG3RUSpjf3dCDw2V4fH5sJmWsvZRWzbtuNzo4XX3A3mFrotyt7WcqHbqrS7naJr937YCXyF/K+4u4FvA3sj4m3L7eAG5LG5Ojw2LyIiysAvtr79q0W8pG3H50YLr7kbVS50Q8q55zetUTtF18798CXgHeS/JPqA1wJfIL9LwF9GxOuW3cuNxWOz/Tw2F/bvgNcA30gpfXMR27ft+Nxwsw0vY6768UpPBLarnaJb9H5IKd0176nHgA9FxBh5geU7gXe3tXcbk8fmEnlsXlxEfIT8538CeF+7mm0tL3t8brSR11yqDy2wfnDedqvdTtGtxX74fGv51hW0sZF4bK6dDXtsRsSHgf8APA7cllI6tciXtu343Gjh9WRrudDnqTe0lgt9HtvudopuLfbD8daybwVtbCQem2tnQx6bEfFrwGfJR6C3pZSWcqF2247PjRZe97WWd8y/Irw1TfNWYAJ4ZI3aKbq12A9vbi0PrKCNjcRjc+1suGMzIn4D+H3gh+TBdfzSr3iJth2fGyq8Un6zynvJT7R+eN7qu8j/gvry3PUFEVGJiJtbV4Qvu531ql37MyJeHRFb5rcfEdeQ/4UHsKwySeuVx2Z7eWxeXkT8W/IJGn8HvCOldPIS26768bmhLlKGi5Ym2UN+1+XbyIeqb0mt0iQRcS1wEHh6/gWKS2lnPWvH/oyIO4FPkP9VdhAYJb8D9s8AdeAbwLtTStNr8TN1SkS8C3hX69udwH9J/lf9A63nTqaUPt7a9lo8Ni+pHfvTYzMXEe8nv0N9A/gMFz8ndSildE9r+2tZ7eOz02VHOvEAXkY+/fUIMA08TX7yccu87a4ln/VyaCXtrPfHSvcn8Dbg/ySftXSG/KLHE8Bfk19DEp3+GddoP97Z2j8LPQ5dsK3H5hrsT4/NRe/LBHxnLY/PDTfykiQV34Y65yVJWh8ML0lS4RhekqTCMbwkSYVjeEmSCsfwkiQVjuElSSocw0uSVDiGlySpcAwvqUu1CpumiPj2JbZ5NCJmImLnWvZN6jTDS+pSKaUnyAvC3hYRL7n/UUS8hfwW7F9PS7unklR4hpfU3T7XWn7wIuvmnvvCGvVF6hoW5pW6WESUyStu14DdKaWp1vObgMOtxw3J/8jaYBx5SV0spTQL/DGwFfjZC1a9D+gB/ujC4IqIt0bE/xsRz7fOl/3SmnZYWiOGl9T9/giYBf71Bc99kPw+SF+at20/8BjwUfLbqUvrUrnTHZB0aSml5yPiz4F3R8Qrgc3kEzX+r5TSiXnbfoP87r5ExD1r3VdprRheUjF8Dng3+Yhrc+s5J2powzK8pGL4FvAU8H6gDjyVUrqvs12SOsdzXlIBtCZlfJ581NWDoy5tcIaXVBz3AE1gCviPne2K1FmGl1QcryP/P/t/p5SGO90ZqZM85yUVx79pLT+70AYR0Q+8ovVtBlwdEbcAp1JKz6xu96S1Y4UNqYtFxGuBfwb8Y/KLlP+/lNI/v8T2byevhzjff0wp/dIqdFHqCMNL6mKtChlfAs4C3wR+JaV0sqOdkrqA4SVJKhwnbEiSCsfwkiQVjuElSSocw0uSVDiGlySpcAwvSVLhGF6SpMIxvCRJhfP/AwhGGjC4vtQvAAAAAElFTkSuQmCC\n", + "image/png": "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\n", "text/plain": [ "
" ]