{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Fast Computation for Multi-objective Optimization\n", "\n", "In the [previous tutorial](./tutorial_multi_objective.ipynb), we independently modeled each objective function using Gaussian process and directly maximized the Pareto hypervolume. However, this approach becomes computationally expensive when the number of objective functions increases.\n", "\n", "In this tutorial, we will learn how to speed up multi-objective optimization by unifying multiple objective functions into a single objective function, and performing Bayesian optimization on that unified objective.\n", "\n", "## Unification of Multi-objective Optimization\n", "\n", "Let the $i$-th data point (feature vector) be $\\vec{x}_i$, and its objective values be $\\vec{y}_i = (y_{i,1}, y_{i,2}, \\dots, y_{i,p})$.\n", "We construct a new unified objective $z_i$ from $\\vec{y}_i$. We model the function from $\\vec{x}_i$ to $z_i$, $z_i = g(\\vec{x}_i)$, by Gaussian process regression and perform Bayesian optimization on it.\n", "\n", "In the current version of PHYSBO, two methods are provided to construct $z_i$ from $\\vec{y}_i$: the Non-dominated Sorting (NDS) method and the ParEGO method." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Non-dominated Sorting Method\n", "\n", "#### Definition\n", "\n", "Non-dominated Sorting (NDS) is a method where the training data $\\vec{y}_i$ are ranked using non-dominated sorting, and a new objective function is created based on these ranks. The rank is recursively defined as follows:\n", "\n", "1. Points that are on the Pareto front of the entire training dataset are assigned a rank of $r_i = 1$.\n", "2. After removing the points with rank $r_i = 1$, the points on the next Pareto front are assigned a rank of $r_i = 2$.\n", "3. Similarly, after removing all points with ranks $r_i = 1,2,\\dots,k-1$, the points on the next Pareto front are assigned a rank of $r_i = k$.\n", "4. This process is repeated until the maximum rank $r_\\text{max}$ is reached. Any remaining points are assigned $r_i = \\infty$.\n", "\n", "Based on the rank $r_i$, the new objective function $z_i$ is defined as follows and is maximized:\n", "\n", "$$\n", "z_i = \\frac{1}{r_i}\n", "$$\n", "\n", "#### How to Use in PHYSBO\n", "\n", "In PHYSBO, the NDS method is implemented as the `physbo.search.unify.NDS` class.\n", "\n", "``` python\n", "unify_method = physbo.search.unify.NDS(rank_max=10)\n", "```\n", "\n", "Any points with ranks above `rank_max` are handled as $z_i = 0$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### ParEGO Method\n", "\n", "#### Definition\n", "\n", "The ParEGO method converts multi-objective optimization into single-objective optimization by taking a weighted sum and a weighted maximum of the objective function values.\n", "Let the weights for the objectives be $\\vec{w} = (w_1, w_2, \\dots, w_p)$, and let the coefficients for sum and max be $\\rho_\\text{sum}$ and $\\rho_\\text{max}$, respectively. Then, the new unified objective function is defined as:\n", "\n", "$$\n", "z_i = \\rho_\\text{sum} \\sum_{j} w_j y_{i,j} + \\rho_\\text{max} \\max_{j} w_j y_{i,j}\n", "$$\n", "\n", "#### Usage in PHYSBO\n", "\n", "In PHYSBO, the ParEGO method is implemented as the `physbo.search.unify.ParEGO` class.\n", "\n", "``` python\n", "unify_method = physbo.search.unify.ParEGO(weight_sum=0.05, weight_max=1.0, weights=None, weights_discrete=0)\n", "```\n", "\n", "`weight_sum` and `weight_max` correspond to $\\rho_\\text{sum}$ and $\\rho_\\text{max}$, respectively. \n", "`weights` specifies the weight vector $\\vec{w}$.\n", "\n", "- The weights $\\vec{w}$ are automatically normalized so that $\\sum_{j} w_j = 1$.\n", "- If `weights = None`, weights are randomly generated at each Bayesian optimization step.\n", " - If `weights_discrete` is set to an integer $s>0$, each weight is generated as $w_j = \\frac{a_j}{s}$.\n", " - Here $a_j$ is an integer from $0$ to $s$, and $\\sum_{j} a_j = s$.\n", " - If $s=0$, weights are sampled uniformly at random from $[0,1)$ and then normalized so that their sum is 1.\n", "\n", "Also, for each objective $j$, $y_{i,j}$ is normalized to the range $[-1, 0]$ using the minimum and maximum values in the training data." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Tutorial\n", "\n", "### Preparations" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "ExecuteTime": { "end_time": "2021-01-05T06:06:13.657438Z", "start_time": "2021-01-05T06:06:13.061216Z" } }, "outputs": [], "source": [ "import time\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import pandas as pd\n", "import physbo\n", "%matplotlib inline\n", "\n", "seed = 12345\n", "num_random_search = 10\n", "num_bayes_search = 40" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Test Functions\n", "\n", "In this tutorial, we continue to use VLMOP2, which is a benchmark function for multi-objective optimization.\n", "PHYSBO provides several multi-objective benchmark functions, including VLMOP2, under `physbo.test_functions.multi_objective`." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "ExecuteTime": { "end_time": "2021-01-05T06:06:13.662277Z", "start_time": "2021-01-05T06:06:13.658957Z" } }, "outputs": [], "source": [ "sim_fn = physbo.test_functions.multi_objective.VLMOP2(dim=2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Preparing Candidate Data for Search\n", "\n", "The `sim_fn` object contains `min_X` and `max_X`, which specify the minimum and maximum values of the search space.\n", "Using these, you can generate a grid of candidate points with `physbo.search.utility.make_grid`." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "test_X = physbo.search.utility.make_grid(\n", " min_X=sim_fn.min_X, max_X=sim_fn.max_X, num_X=101\n", ")\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### simulator" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "ExecuteTime": { "end_time": "2021-01-05T06:06:13.699166Z", "start_time": "2021-01-05T06:06:13.694489Z" } }, "outputs": [], "source": [ "simu = physbo.search.utility.Simulator(test_X=test_X, test_function=sim_fn)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### HVPI\n", "\n", "As a comparison, we perform Bayesian optimization using HVPI." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "4.116348028182983" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "policy = physbo.search.discrete_multi.Policy(test_X=test_X, num_objectives=2)\n", "policy.set_seed(seed)\n", "\n", "policy.random_search(max_num_probes=num_random_search, simulator=simu, is_disp=False)\n", "time_start = time.time()\n", "res_HVPI = policy.bayes_search(\n", " max_num_probes=num_bayes_search,\n", " simulator=simu,\n", " score=\"HVPI\",\n", " interval=10,\n", " is_disp=False,\n", ")\n", "time_HVPI = time.time() - time_start\n", "time_HVPI" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 1.0, 'HVPI')" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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a+ecc06v6+y22279+t2pyxPvv/9+0Ds1xb8/6KCD+vU7S1m2Wfh+zbxRta2tLbhM2tMlobfeest+8pOfBDes7rvvvsEyv+l1+fLlwaUk73iC4mSROha8kUq3995727vvvksMRcrBCzg/LjJ72p922mk2adIkW7ZsGVkUKYuUjRs3Bh1+hg4dGlwlqKysJIMs7bjjjlZeXh60r+n8+572uy/PZf18oojLk5122il4FMKuu+4avBkefvjhzqLN/y/L74vIpYdrXGSbxcSJE4Mzan7/w6GHHtrZIPkZHr/fsKd7f1xm70c/6FNnhlCcLLz7/5gxY4Kewulef/31YJgLFCcHP7P01a9+tcsyH2LBz4qefPLJxFDELFJtg9+P5bd6+FlSH/IC2Rs4cGCwv7299R6mzve5f+8933vKyl+fM2dO5zLvUezLC67gXSewjb/+9a9BT64rr7wyUVNTE3ztj40bN3aus9deeyWWLFnS+f3//b//NzF8+PDE//7v/yb+/Oc/J6ZNm5bYddddEy0tLezh7XDCCSckDj744MRTTz2VeOyxxxKf/vSnE2effXbn66tXrw6y8Nfdli1bEnvssUdi0qRJwbI333wzcf311wc9xn7961+TRRGzcDfccEOitrY2cc899yTeeOONoKdqVVVVkAuKl0MmeqeGk0VDQ0PQK3L//fcPjgHvKZx6tLW15WmrSt+dd94ZjP5w6623Br2EL7jggqD9XbduXfD6l7/85cS8efM613/88ccTFRUVQVvwyiuvJL73ve8lKisrEy+++GLBt5UiLgT/+I//GHzIZT6WLl36STBmwRAk6cOMXH755YmRI0cGb65jjz028dprr4Wx+SXlo48+Cj4UvZj2YuDcc8/tUkyvXLlym2xef/31xPTp0xM777xzYvDgwYkDDjhgmyFHUJwsnHf7HzduXJDFxIkTE8uXL2f3h5BDOoq4cLLw5+7aFn/4usjej3/848Quu+wSDM/iQ448+eSTna8dffTRQTueOZTLnnvuGay/7777Fu1/6sv8P4U/3wcAAIB8oncqAABABFHEAQAARBBFHAAAQARRxAEAAEQQRRwAAEAEUcQBAABEEEUcAABABFHEAQAARBBFHIBY8TlX58+fv93rbK9bb711m0njASAXFHEASsKqVavsn/7pn2zMmDHBJNZ/93d/Z7Nnz7aPPvoo59/1zDPP2AUXXJC3beuuKDzzzDPt9ddfz9vf6E5ra6udc845wYT0FRUVnRN6AygNFHEAIu/tt9+2ww47zN544w1btGiRvfnmm3bLLbfYww8/bBMnTrT169fn9Pt22mknGzx4sBVSdXW17bzzzgX9G+3t7cHf+cY3vmFTp04t6N8CUHwUcQAi76KLLgrOvv3+97+3o48+2nbZZRc78cQT7Q9/+IOtWbPGvvOd73RZf+PGjXb22WfbkCFDbOzYsXbTTTf1euasvr7evvrVrwbFXW1trR1zzDH2//7f/+vyM7/61a/sM5/5jFVVVdmOO+5op556arB88uTJ9te//tUuvfRSKysrCx6Zl1P9jJwvf/XVV7v8zhtuuMF23333zu9feuml4N9VU1NjI0eOtC9/+cv24Ycf9rhf/N/3H//xH3b++efbqFGj+rFnASijiAMQaX6W7Xe/+519/etfD846pfPCZdasWXbXXXdZIpHoXP7DH/7QDjzwQHvhhRds3rx5wWXXhx56qMe/cfrpp9sHH3xgv/3tb+25556zQw45xI499tjOM3y//vWvg6LtpJNOCn6nnwE8/PDDg9eWLFli48aNs+9///u2du3a4JFpzz33DM4k3nHHHV2W+/czZ87sLCS9eDz44IPt2WeftQcffNDef/99O+OMM7ZzDwKIqoqwNwAAtodfQvUCbe+99+72dV++YcMG+9vf/tZ5+fJzn/tcULylCqjHH388OOv1hS98YZuff+yxx+zpp58OirhBgwYFy66//nq77777bPHixcG9c1dddZWdddZZduWVV3b+nBeJbocddrDy8nIbOnRor2fDvNj8yU9+Yj/4wQ86z855wfg///M/wff+mhdwV199defP/OIXv7C6urpgXf93AIgXzsQBKAnpZ9r64vfJZX7/yiuvdLuuXzZtamqyT33qU8FlzNRj5cqV9tZbbwXr/OlPfwrOzG0PLwLfeecde/LJJzvPwvkZvwkTJnRux9KlS7tsQ+q11HYAiBfOxAGItD322CO4n8yLsNR9aOl8+YgRI4L72frDC7jRo0fbsmXLtnktdU9b5mXc/vCzdH65dOHChfbZz342eL7wwgu7bMfJJ59s11577TY/69sHIH44Ewcg0vwMmV8Gvfnmm62lpaXLa+vWrQvOaPlwHqkOBS51tiv9+54ux/rZMP89PkSHF4zpD+/A4A444IDgPrieeKcL7ynal9T9eytWrAh63PrZufTtePnll4NOF5nb4R0YAMQPRRyAyPP7xTZv3mzHH3+8Pfroo8GYcX7jvxd33vvU71lL5/fAXXfddcG9ZN4z9Z577gk6N3THh+bwy60+xpr3fvVLnk888UTQ49U7GLjvfe97wdAm/uxn/l588cUuZ8y88PLt8p6yvfUmnT59etBz1s/ATZkyJRjzLr0Hrnek8F61Po6dX0L1Dh3nnnturwXiX/7yl+Byr/9sQ0ND8LU/AJSABACUgHfeeSfxj//4j4mRI0cmKisrE3V1dYlLLrkk8eGHH3ZZ7+/+7u8SV155ZeL0009PDB48ODFq1KjEggULtlnnhhtu6Py+sbEx+F1jxozp/N2zZs1KvPvuu53r/PKXv0wcdNBBiYEDByZ23HHHxPTp0ztfW7FiReKAAw5IDBo0yG/cC5b913/9V2LYsGHb/DvOOOOMYJ1f/OIX27z2+uuvJ0499dTE8OHDE9XV1YkJEyYk5syZk+jo6Ohxv/i/xX9f5gNA9JX5f8IuJAFAid9j5r1EfWw4AFBFxwYA+Fhzc3NwqdXHX9t3333ZLwCkcU8cAHzspz/9adCZYM6cOdsMQwIAaricCgAAEEGciQMAAIggijgAAIAIoogDAACIIIo4AACACKKIAwAAiCCKOAAAgAiiiAMAAIggijgAAACLnv8PD06S2iFclysAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(figsize=(7, 7))\n", "physbo.search.utility.plot_pareto_front_all(\n", " res_HVPI, ax=ax, steps_end=num_random_search, style_common={\"marker\": \"+\"}\n", ")\n", "physbo.search.utility.plot_pareto_front_all(\n", " res_HVPI, ax=ax, steps_begin=num_random_search\n", ")\n", "ax.set_title(\"HVPI\")" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "np.float64(0.3285497837573861)" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "VID_HVPI = res_HVPI.pareto.volume_in_dominance([-1,-1],[0,0])\n", "VID_HVPI" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Bayesian Optimization with Unified Objective\n", "\n", "Use the `physbo.search.discrete_unified.Policy` class as `Policy` class.\n", "\n", "As with other `Policy` classes, you can create initial data using `random_search` etc., and perform Bayesian optimization with the `bayes_search` method.\n", "The difference from other `Policy` classes is as follows.\n", "\n", "#### Unification of Objective Function\n", "\n", "The algorithm used for unification is specified by the `unify_method` argument of the `bayes_search` method.\n", "PHYSBO provides `physbo.search.unify.ParEGO` and `physbo.search.unify.NDS`.\n", "\n", "#### Acquisition Function\n", "\n", "The acquisition function is the same as that for single-objective optimization.\n", "\n", "- PI (Probability of Improvement)\n", "- EI (Expected Improvement)\n", "- TS (Thompson Sampling)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### NDS" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "ExecuteTime": { "end_time": "2021-01-05T06:08:41.237335Z", "start_time": "2021-01-05T06:06:29.201353Z" }, "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "1.7336242198944092" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "policy = physbo.search.discrete_unified.Policy(test_X=test_X, num_objectives=2)\n", "policy.set_seed(seed)\n", "\n", "unify_method = physbo.search.unify.NDS(num_objectives=2)\n", "\n", "policy.random_search(max_num_probes=num_random_search, simulator=simu, is_disp=False)\n", "time_start = time.time()\n", "res_NDS = policy.bayes_search(\n", " max_num_probes=num_bayes_search,\n", " simulator=simu,\n", " unify_method=unify_method,\n", " score=\"EI\",\n", " interval=10,\n", " is_disp=False,\n", ")\n", "time_NDS = time.time() - time_start\n", "time_NDS" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Plotting Pareto Front" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "ExecuteTime": { "end_time": "2021-01-05T06:08:41.386473Z", "start_time": "2021-01-05T06:08:41.239067Z" } }, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 1.0, 'NDS')" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnkAAAJwCAYAAAD1BndpAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAaTpJREFUeJzt/Ql8leWd//9/QlgChE1F1rRoXXCtVqvVSgVh3FqLRtxg3MaKf6ZasP6nQ6dapR11tHYAq/06tnXU1q0iWMe2Tt2oqLjU6lSte1EhgFaBsIUl4fwen/t44snJOclJuE/u97nv1/PxiEnuc+fkzvXOiR+u676uqyKVSqUMAAAAsdIt6gsAAABA+CjyAAAAYogiDwAAIIYo8gAAAGKIIg8AACCGKPIAAABiiCIPAAAghijyAAAAYogiDwAAIIYo8gAAAGKIIg8ACrj11lutoqLCqqqqrK6urtXjY8eOtX333bf581GjRgXn+1u3bt1s4MCBtt9++9nUqVPt2Wefzfs91q9fb5dffnnwPH379rUdd9zRDjjgAJs+fbotX76cbAB0WvfOfykAJMPmzZvtP/7jP+wnP/lJu+d6gXbJJZcEH69bt85ee+01u/fee+1nP/uZXXzxxfaf//mfzedu3brVvvKVr9jrr79uZ599tl100UVB0ffqq6/anXfeaSeddJINHz68pD8bgPiiyAOAIgo3L9K++93vtlt0jRgxwv7xH/+xxbFrrrnGJk+ebLNnz7bdd9/dpk2bFhy///777cUXX7Q77rgjeDzbpk2bbMuWLWQDoNMYrgWAdvzbv/2bNTU1Bb15ndG7d2/75S9/aTvssINdeeWVlkqlguPvvPNO8P7LX/5yq6/xIeL+/fuTDYBOo8gDgHbssssudtZZZwW9eZ29T666ujoYfvV7+/76178Gxz772c8G72+//fbmwg8AwkKRBwBF+N73vmeNjY3B0GtnZSZpZHrwTjzxRNtzzz3t+9//flBInnvuuXbLLbfYhx9+SCYAthtFHgAUYdddd7UzzzzTbr75ZluxYkWne/MyEzIyw7g+6/Zf/uVfmmfznnfeeTZs2LBgEoZP+ACAzqLIA4AiXXrppUFvXmfvzfOZs65fv37NxwYMGGDXXnutvfvuu8HbL37xi6B374YbbrAf/vCHZAOg0yjyAKADvXk+c7azvXmvvPJK8H633XbL+7jfo/dP//RP9tRTTwVr7PmsWwDoLIo8AOhEb15H783zXrwFCxZYTU2N7bXXXm2eO2jQIPvc5z7X6WFhAHAUeQDQAV58eW/ef/3Xf9nKlSuL+pqGhobgfr5Vq1YFEzh8Rwz3f//3f/bRRx+1Ov+9994LZuD6sC0AdBaLIQNAB3mh5uvevfHGG7bPPvu0eMyXSPnVr37V3HvnxZrveOEFoe+EccEFFzSf+/DDDwdbmn3961+3L33pS8HEjL/97W/BDFufdHHFFVeQDYBOo8gDgA7ye+q8N++2225r9dhLL70U9Np5b51PsPDh2RNOOMG+8Y1v2CGHHNLi3JNPPjmYafuHP/zBHnvssaCnz4dq/TwvCMeNG0c2ADqtIsUKnAAAALHDPXkAAAAxRJEHAAAQQxR5AAAAMUSRBwAAEEMUeQAAADFEkQcAABBDrJPXjm3bttny5cuD9a4yq9QDAACUgq9s5+tnDh8+3Lp1276+OIq8dniB54uZAgAAdJWlS5fayJEjt+s5KPLa4T14mcbu37+/lcrq1auDle6hh2x0kY0ustFFNtrZVFZWBp1Lmfpje1DktSMzROsFXimLvL59+wbBQg/Z6CIbXWSji2y0s9mwYUPwcRi3iDHxQsTGjRujvgQUQDa6yEYX2egim+RkQ5EnorGxMepLQAFko4tsdJGNLrJJTjYUeSIYqtVFNrrIRhfZ6CKb5GRDkSeiuro66ktAAWSji2x0kY0usklONhR5Iurr66O+BBRANrrIRhfZ6CKb5GRDkQcAABBDFHkiqqqqor4EFEA2ushGF9noIpvkZEORJ2J7ty5B6ZCNLrLRRTa6yCY52VBZiGDdIl1ko4tsdJGNLrLRxTp5AAAAaBc9eSLC2KMOpUE2ushGF9noIpvkZEORJ2LTpk1RXwIKIBtdZKOLbHSRTXKyocgTsXXr1qgvAQWQjS6y0UU2usgmOdlQ5IlgtpMustFFNrrIRhfZ6GJ2bUz1798/6ktAAWSji2x0kY0usklONmXXk3fjjTfaqFGjggUDDz30UHvuuefaPP/ee++10aNHB+fvt99+9rvf/c4UrVmzJupLQAFko4tsdJGNLrJJTjZlVeTdc8899u1vf9suv/xy+/Of/2yf//zn7ZhjjrEPP/ww7/lPP/20nXHGGXbeeefZiy++aCeeeGLw9sorr1jZaWoyW7jQ7K670u/9cwAAgAIqUqlUysqE99x98YtftBtuuCH4fNu2bVZTU2MXXXSRzZw5s9X5p512mm3YsMEefPDB5mNf+tKX7IADDrCbbrqpqO+5du1aGzBgQLBpcCm7uBsaGqx37975H5w/32z6dLNlyz49NnKk2dy5ZrW1JbsmFJENIkU2ushGF9loZ+OTL8KqO8qmJ2/Lli32wgsv2IQJE1rcoOifL168OO/X+PHs8533/BU6323evDko7LLfukJlZWXhAm/SpJYFnqurSx/3xxFNNogc2egiG11kk5xsuluZ+Oijj6ypqcmGDBnS4rh//vrrr+f9mpUrV+Y9348XcvXVV9usWbNaHV+9enXw/b26Xr9+ffBx9+7drU+fPs2FYKa3xytxl32uB1ddXR1U5s7vEayoqGg+13sle/bsaY2NjcG5viDimo8/tgEXXeTdrVaRe0GplKUqKiz1rW9Zxde/bmvWrQsO9+rVK7gu78F0/j29QPY3/34DBw4MfpbMuT169AiuMfdcN2jQoOD+AO/s9Wvzt8y5ffv2Da7Vi+LMuf6z+c/hz+k/37pPrsnP9TbIrP/j1+Bt5ufmtqF/7Mcz53akvf1fPL4lTKYNc9vb/1GQ2TIm+1w/7p9n7oXwc/3rM23o39uP+b+u/Fy/puw2LLa9c9vQz/XnzG7DYts7uw1z2zu3Df1cf6xQG/r3y9feuW24Pe3tv8/+PTJt2FZ7Z5+b73c2u739e/vPk93eHfmdzZzbkd/Z9tq7VH8jcts7+BuR1YbFtndX/Y3w7+3nJ+FvRG57q/+N8OfMXHPc/0ZU52lv5b8RmetM3HDt8uXLbcSIEcF9docddljz8e985zv2xz/+0Z599tlWX+Ph3XbbbcF9eRk//elPgyLugw8+yPt9PNxMwM4b3oeESz1c67+g/guV4bfcvfyThXbAxePa/+JHHjEbP75k15Z0udlAB9noIhtdZKOdjRe0iRuu3WmnnYIfPLc488+HDh2a92v8eEfOz/wrwBs1+62rtzLxEdhRo8yuuXhFcV986qkM25YQWwDpIhtdZKOLbHQldlsz75U76KCD7NFHH20+5t2f/nl2z142P559vnv44YcLnh+lTDdu9i14K2xYcV+8apXZySebzZtX2otMKLYA0kU2ushGF9noSvS2Zr58ys9+9rNgCPa1116zadOmBePu5557bvD4WWedZd/97nebz58+fbo99NBD9uMf/zi4b++KK66wP/3pT3bhhReaGr+3wIdofRJtZgB9kY2xpTbStrW+Iy+/00/3hQFLep1JxBZAushGF9noIhtdid7WzJdEue666+z73/9+sAzKSy+9FBRxmckV77//vq1Y8ekQ5+GHH2533nmn3XzzzcGaevPmzbP777/f9t13X1PjN1ouWtRyEu02q7TpNveTj4vgVSJDtyXJBprIRhfZ6CKb5GRTNhMvotJV6+Q5X+d48uTWx0+y+fYzO992tFXFPVFNjdmSJT4XO/RrBAAA5VF3lFVPXtxn1AwrcAveAqu1U+zXxT/Z0qUWdAsitGygiWx0kY0usklONhR5QsaMSW9kka+39o82Nrg/r+hu16xhawAAkDwUeSJ86RYfXfWdylxuoZeqqLQZn9yfV5RC3YLoVDbQRDa6yEYX2SQnG4o8Eb7qtfOtaH0llBEjWj7uPXxT7qu1Cp89W8y9dh99VKIrTW420EM2ushGF9kkJxuKPBGZLVgyhd6775o9/rjZnXem3/s8Cj8eLKJ3xx3tP+G3v52ebYtQs4EWstFFNrrIJjnZ0EUhyjvrxo4t8GDOfrxtTr4o+CQAACDO6MkT4ZsoF+u53xQ5qYLJF12eDboW2egiG11kk5xsKPJEbNmypajzfNuzf51T5KQKJl90aTboemSji2x0kU1ysqHIEw7Wb6lbuDC9SLK/91N827Mn2tnuLOVTc31BZF+TBSXJBhrIRhfZ6CKb5GTDPXmiW5l4j50XdNnbnO20U2bSbHq7s3k2KSj0umWtnuefV/inc+aw40WJsoEOstFFNrrIJjnZ0JMnYuDAgS0KPJ9Em13g5a6K4rtgTLJ5Vmct11pZZiPtyRnzPpmKi7CzgRay0UU2usgmOdlQ5IlYs2ZN8xCt9+AVs6OwF3qj7F0ba4/bGXZn8H4XW2JNEynwSpEN9JCNLrLRRTbJyYbhWhGpT6o6X/UktwevLdusMtjyzHkvry+azK14pckGeshGF9noIpvkZENPnoiePXtu16onmWF8bsUrXTbQQza6yEYX2SQnG4o8sWCLXfVk8OCWn3sPnm+Hxq14pcsGeshGF9noIhtdFHkxtX79+uC9D7V6wVZogk1mdRQf0s277RlKlg30kI0ustFFNsnJhnvyBLczmzs3PbvWC7rs4fnsIVnvXGLHMgAAUAjDtSL69u3b/LH3yPnQ64iWq6MwJCuQDbSQjS6y0UU2ycmGnjwRjY2NLcbivdCbODE929YnY/i9ej6U6z19iDYb6CAbXWSji2y0swkTRZ6IzZs3W58+fVoc84KOIVnNbKCBbHSRjS6y0c6mMsTeHIZrAQAAYoiePBGDBg0q3ZP7NhqM+2pmg+1CNrrIRhfZaGezdu3a0J6Pnry4bzPjG+GOGmU2bpzZ5Mnp9/65H0e02WC7kY0ustFFNsnJhiIvztvMeCHna7Hk7pNWV5c+TqEXXTYIBdnoIhtdZKOLbc1iqkePHuEP0U6f3nKhvYzMsRkz0ueha7NBaMhGF9noIpvkZENPnoiqqqpwn9Dvwcvtwcst9JYuTZ+Hrs0GoSEbXWSji2ySkw1Fnoh169aF+4S+uF6Y5yVY6NkgNGSji2x0kU1ysqHIiytfPTnM8wAAQFmhyIvrNjO+PcbIkZ9ueJvLj9fUpM9D12aD0JCNLrLRRTbJyYYiT0RT2BMgfMXsuXPTH+cWepnP58xhn7QoskFoyEYX2egim+RkQ5EnYtOmTeE/qW+AO2+e2YgRLY97D58f98cRTTYIBdnoIhtdZJOcbNjxIu68kJs4kR0vAABImIoUqyK2ybcXGTBggNXX11v//v1LFoTHUFHo/jlEimx0kY0ustFFNtrZ+AzbsOoOhmtFhLlXHcJFNrrIRhfZ6CKb5GRDkSdi27ZtUV8CCiAbXWSji2x0kU1ysqHIE9zKZMOG9ARYf/OPES22ANJFNrrIRhfZ6GJbs5himxldZKOLbHSRjS6y0cW2ZjHlN1p6r13mLSPfMXR9NtBENrrIRhfZJCcbllARUl3d+tiQIZ9+nEp16eUAAIAyxj15Ivr06RP1JaAAstFFNrrIRhfZJCcbevKEZtSsX5/+2IdmMz14H3zge9lFemmJx0w0XWSji2x0kY0uZtfGeCsTL+Yybxn5jqHrs4EmstFFNrrIJjnZMFwLAAAQQxR5InwLkwzvtfNJFv5GD55WNtBCNrrIRhfZJCcbijwR6zM35EEO2egiG11ko4tskpMNRZ6IpqamqC8BBZCNLrLRRTa6yCY52VDkiejenYnOqshGF9noIhtdZJOcbCjyRLBukS6y0UU2ushGF9kkJxuKPBFr166N+hJQANnoIhtdZKOLbJKTDUUeAABADHEjmIjevXvnPe73YC5aZLZihdmwYWZjxphVVnb55SVaoWwQPbLRRTa6yEY7my1btoT2fBR5wubPN5s+3WzZsk+PjRxpNneuWW1tlFcGAADUUeSJWL++wZ55pqq5x+7vfzc77bT0gsjZ6urMJk0ymzePQq+rNDQ0WFVVVZd9PxSPbHSRjS6y0c6mMsThOoo8kR67iy4aYMuXf3rMM84t8Jwfq6gwmzHDbOLEkIZuGRMGACB2mHghUOB5z9zy5RUtjre1HqIXekuXpu/VC+UCRo0yGzfObPLk9Hv/3I8jwBZAushGF9noIhtdbGsWI17I+T136R67lkVeMXxoN5QKM/umP+efn3yy2Q9+0Ha1mRBsAaSLbHSRjS6y0cW2ZjHiPXG59VVH+L17IVWY+V1+Ob16bAEkje2ZdJGNLrLRxbZmMdLZnji/J6+mJr2cSskrTD/He/sSPHwb5k2wCBfZ6CIbXWSTnGy4Jy9CnemJ8wLPzZmznZMuOlph+kyPhA7dVldXR30JKIBsdJGNLrJJTjYUeRHynjhf9y5TuOWTW8j5+aEsn9KRCjPUmR7lp76+PupLQAFko4tsdJFNcrJhCZUIeQHnCxv7aGhFRcpSqU+rvUzhd/fdZjvtVIIdLzIVpi+819Z9eaHO9AAAAF2FnryIeY+c98wNH57K22PnBeDYsWZnnJF+H9pwfabC7LKZHuWLhZB1kY0ustFFNsnJhp48kULvmGO22PPPV3XtHrWZCvNb30r36BXi3YpedW7XTI/yVdHWeDoiRTa6yEYX2SQnG3ryRGzZ0lCaHrtiCr333jObNavEMz3Ke5sZaCIbXWSji2ySkw1FHtLF2/e/b3bffekeu5LM9AAAAF2pIpUq9q77ZFq7dm2wzYjPeOnfv39JF0CUWLuIfWx1s0ErZKOLbHSRjXY2GzZsCK3u4J48ERs3brR+/fpp9Or5eDH0skErZKOLbHSRjXY2YWK4VkRjY2PUl4ACyEYX2egiG11kk5xsKPJEMByoi2x0kY0ustFFNrrY1iymGA7URTa6yEYX2egim+RkQ0+eiDVr1kR9CSiAbHSRjS6y0UU2ycmGIg8AACCGKPJEsM2MLrLRRTa6yEYX2SQnG4o8Ed26EYUqstFFNrrIRhfZJCcbKouYro1T0sWSFy40u+uu9Hv/PObKJpsEIhtdZKOLbJKTDYsho3jz55tNn262bFnLbc/mzmXbMwAAxNCTJ0J+SrsXeJMmtSzwXF1d+rg/HlPy2SQY2egiG11ko4slVGJq06ZNJsuHZL0HL982x5ljM2bEduhWOpuEIxtdZKOLbJKTDT15IrZu3WqyFi1q3YOXW+gtXZo+L4aks0k4stFFNrrIJjnZUOSJkJ7ttGJFuOeVGelsEo5sdJGNLrLRxezamOrfv7/JGjYs3PPKjHQ2CUc2ushGF9kkJxu6KERIbzMzZkx6Fm1FRf7H/XhNTfq8GJLOJuHIRhfZ6CIbXWxrhq5XWZleJsXlFnqZz+fMSZ8HAAAk0JMnolevXiatttZs3jyzESNaHvcePj/uj8eUfDYJRja6yEYX2SQnGxZDFtG9exlE4YXcxInpWbQ+ycLvwfMh2pj34JVFNglFNrrIRhfZaGfT2NgY3vOF9kzYLhs2bLCePXvqt6IXdGPHWpKUTTYJRDa6yEYX2WhnUxlixwlFHraPL4CcsJ49AADKAffkiaiurray41uZjRplNm6c2eTJ6ff+ecy2OCvLbBKCbHSRjS6ySU42ZVPkrVq1yqZMmRKsITNw4EA777zzbP369W2ef9FFF9mee+5pvXv3ts985jP2rW99y+rr603Rli1brKwkaC/bsssmQchGF9noIpvkZFM2RZ4XeK+++qo9/PDD9uCDD9oTTzxhU6dOLXj+8uXLg7frrrvOXnnlFbv11lvtoYceCopDRWX1okvYXrZllU3CkI0ustFFNsnJpiKVyvd/ai2vvfaa7b333vb888/bwQcfHBzzgu3444+3ZcuW2fDhw4t6nnvvvdf+8R//MbixsdDsos2bNwdvGWvXrrWampqgB7CUq4T7AojeQ1kWFi5MD8225/HHYzFJo6yySRiy0UU2ushGOxvf2mzAgAGh1B1lMfFi8eLFwf9kMwWemzBhQtAQzz77rJ100klFPU+mwdqaPn711VfbrFmzWh1fvXq1NTU1BQ3vw8T+sT9Pnz59gkLQ+bCwa2hoCN5nn+uzZXysPTNcXFVVZRUVFc3n+nWtW7cumDrt5/br16955Ws/13/WjRs3Bp/7Y5s2bQo2Mvbj/rWZc32NHb8uL2Sdf0//l4G/+ffzdvSfJXNujx49moe9s891gwYNCp7X/x3gs0v9zc/t8fbbVsxdA+vfftu2fv7z1rdv36AN/JqdX4O32bZt21q1oX/sxzPndqS9vR28jTJtmNve2W2YfW5uG/q5/vWZNvT29mvItLdfU3YbFtve2W2YOdefM/OPikLt7bwN/Voz52a3oWfo1+y/P/na0M/1xwq1oX+/fO2d24bb095t/c7ma+/Mufl+Z3Pb2z/Obu9i2zC7vXPbsK3f2fbau5R/I7LbW/lvRKYN/Xqy29t/tnxtGIe/EdntXQ5/I7xNkvI3YktOe6v/jch8nJievKuuuspuu+02e+ONN1oc33nnnYOCbNq0ae0+x0cffWQHHXRQ0JN35ZVXFjwvqp48/wX1X6iykLCevLLKJmHIRhfZ6CIb7Wy8oA2rJy/Se/JmzpwZVNZtvb3++uvb/X28UPvqV78aDPleccUVbZ7r/wrwRs1+Q46E72ULAEA5iHS49pJLLrFzzjmnzXN23XVXGzp0qH344YctjnuXqs+g9cfa4t2lxx57bNC9u2DBgqAbVVFZbTOT2cvWZ9F6QZfdGRzDvWzLKpuEIRtdZKOLbLSzic2OF4MHDw7e2nPYYYcF4+IvvPBCMOTqHnvssWCM+9BDD22zB++YY44JGu2BBx4IxshVqRaf7e5l67Nss5dR8R4+L/BitJdt2WWTIGSji2x0kY12NmEWeWWxhMpee+0V9Madf/759txzz9lTTz1lF154oZ1++unNM2vr6ups9OjRweOZAu/oo48Obr78xS9+EXy+cuXK4M1vdlTT1pp/sryQe/fd9L13d96Zfr9kSawKvLLNJiHIRhfZ6CKb5GRTFrNr3R133BEUduPHjw9m3px88sl2/fXXNz/us2x8YkZmps6f//znYOat22233Vo815IlS2yU78yA7ZfAvWwBACgHZTG7NkreAxjWLJe2eJFKF7omstFFNrrIRhfZaGfjS9DEYnYtPsUK5LrIRhfZ6CIbXWSjK7HbmsUdLzpdZKOLbHSRjS6y0UWRBwAAgHbRkyeCHRV0kY0ustFFNrrIJjnZUOSJyOzRBz1ko4tsdJGNLrJJTjYUeSKY5KyLbHSRjS6y0UU2ycmmbNbJi7uePXtabPni04sWma1YYTZsWHpP2zLa8izW2ZQ5stFFNrrIRjubMDdsoCdPRGxfdPPnm/nC0+PGmU2enH7vn/vxMhHbbGKAbHSRjS6ySU42FHkiYrnNjBdykya13NvW1dWlj5dJoRfLbGKCbHSRjS6ySU42FHkoDe9unj7dbzBo/Vjm2IwZ6fMAAEDoKPJE9O3b12LF78HL7cHLLfSWLk2fJy522cQI2egiG11kk5xsKPJENDY2Wqz4JIswz4tQ7LKJEbLRRTa6yCY52VDkidi8ebPFis+iDfO8CMUumxghG11ko4tskpMNRR5Kw5dJGTnSUhUV+R/34zU16fMAAEDoKPJExG6bmcpKe+aMucGtd9usZaGXynw+Z05ZrJcXu2xihGx0kY0ustHFtmYxVV9fb3Hiq6Mcfl2tTbJ5VmcjWjy21EbaM///eWa1tVYO4pZNnJCNLrLRRTbJyYYdL0Rs27bN4rh6ygKrtd/YRBtji2yYrbAVNsyetDE2/O5KW3J1WXTkxSqbuCEbXWSji2y0s6kM8X+MFHkievToYXFdPWWbVdofbWyLczKrp4xteVhSnLKJG7LRRTa6yEY7mzCLcO7JE1FVVWVxEaPVU2KXTdyQjS6y0UU2ycmGIk/EunXrLC5itHpK7LKJG7LRRTa6yCY52VDkoVSrpwSrpOTD6ikAAJQeRZ6IOG0z4/eMzp2b/ji30Ksor9VTYpdN3JCNLrLRRTa62NYsppp8SmqM+Ooo8+aZjWi5ekrQwzevfFZPiWU2cUI2ushGF9kkJxtm14rYtGmT9e7d2+LEC7mJE9OzaH2Shd+D50O55dKDF+ds4oJsdJGNLrLRzoYlVFA2vKArh2VSAACIG+7JEzFw4MCoLwEFkI0ustFFNrrIJjnZUOSJWLt2bdSXgALIRhfZ6CIbXWSTnGwo8kSwzYwustFFNrrIRhfZJCcbijwR3bszB0YV2egiG11ko4tskpMNRZ6IPn36RH0JKIBsdJGNLrLRRTbJyYYiTwT3SOgiG11ko4tsdJGNLu7JAwAAQLvoyRNB97kustFFNrrIRhfZ6GK4NqaY7aSLbHSRjS6y0UU2uphdG+OtTKCJbHSRjS6y0UU2ycmG4VoAAIAYosgTMWDAgKgvAQWQjS6y0UU2usgmOdlQ5IlYv3591JeAAshGF9noIhtdZJOcbCjyRDQ1NUV9CSiAbHSRjS6y0UU2ycmGIk8E28zoIhtdZKOLbHSRjS62NYsp1i3SRTa6yEYX2egiG12skxdTbDOji2x0kY0ustFFNrrY1gwAAADt4p48Eb179476ElAA2egiG11ko4tskpMNRR4AAEAMUeSJaGhoiPoSUADZ6CIbXWSji2ySkw1FHgAAQAxR5Ino379/1JeAAshGF9noIhtdZJOcbCjyRGzcuDHqS0ABZKOLbHSRjS6ySU42FHkiGhsbo74EFEA2ushGF9noIpvkZEORJ6KysjLqS0ABZKOLbHSRjS6ySU42FHkiqquro74EFEA2ushGF9noIpvkZEORJ6K+vj7qS0ABZKOLbHSRjS6ySU42FHkAAAAxRJEnoqqqKupLQAFko4tsdJGNLrJJTjYUeSK6dSMKVWSji2x0kY0usklONlQWIli3SBfZ6CIbXWSji2x0sU4eAAAA2kVPngi2mdFFNrrIRhfZ6CIbXWxrFlN0n+siG11ko4tsdJFNcrLpHuqzIZStTJqazBYtMluxwmzYMLMxY3wVbBo3KmwBpItsdJGNLrLRzibMXS8o8sRm1MyfbzZ9utmyZZ8+NnKk2dy5ZrW10V1fkjETTRfZ6CIbXWSji9m1MR6H9wJv0qSWBZ6rq0sf98cRTTbQRDa6yEYX2ejinryY+vjjNUEPXirV+rHMsRkz0kO5aIc30sKFZnfdlX6/nY22Zs0amlwU2egiG11kk5xsmF0rYvHi7q168HILvaVL0/fqoQ3e3TlqlNm4cWaTJ6ff++d0gwIAEoYiT8SqVb2KOs8nY6CAEo13swWQLrLRRTa6yEYX25rF1PDhFUWd57NtkYcPyZZovDvMmU4IF9noIhtdZJOcbOjJE3HggeuDWbQVBWo9P15Tk15OBXn4OHaJxrs3bNhAk4siG11ko4tskpMNRZ4IL959mRSXW+hlPp8zh/Xytnscm/FuAEBCUOSJ6NevX7AO3rx5ZiNGtHzMe/j8OOvkhTCO3Ynxbs8GmshGF9noIpvkZFORSuW7iQkZa9eutQEDBlh9fX1J1xZav369VVdXBx+z40UneKP5LFqfZJHvV9q7Q71aXrKkw92h2dlAC9noIhtdZKOdzbZt20KrO9jxQsTWrVubP/YaZOzYSC+nfMe7fRatF3TZhd52jndnZwMtZKOLbHSRjXY2YU6+YLhWBNvMhKBE491ko4tsdJGNLrJJTjYM14oM1yJEjHcDAMpUmHUHw7UiVq9ebYMGDYr6MuIh5PFustFFNrrIRhfZaGfDcC0AAADaxD15Inr1Km5bM3Q9stFFNrrIRhfZJCcbijwR3bszcq6KbHSRjS6y0UU2ycmGIk8E28zoIhtdZKOLbHSRjS62NQMAAEC76MkTwY4KushGF9noIhtdZJOcbCjyRGzZsiXqS0ABZKOLbHSRjS6ySU42FHkieNHpIhtdZKOLbHSRjS6KvJiqyOyvCjlko4tsdJGNLrJJTjb05IkYOHBg1JeAAshGF9noIhtdZJOcbCjyhLYygSay0UU2ushGF9kkJxuKPAAAgBgqmyJv1apVNmXKFOvfv3/QnXneeefZ+vXri/raVCplxx13XDDWff/995uinj17Rn0JKIBsdJGNLrLRRTbJyaZsijwv8F599VV7+OGH7cEHH7QnnnjCpk6dWtTXzpkzR/5GU150ushGF9noIhtdZKMrkUXea6+9Zg899JD9/Oc/t0MPPdSOOOII+8lPfmJ33323LV++vM2vfemll+zHP/6x3XLLLaas2F5JdD2y0UU2ushGF9kkJ5uyKPIWL14cDNEefPDBzccmTJhg3bp1s2effbbg123cuNEmT55sN954ow0dOrSo77V582Zbu3ZtizcAAIBy093KwMqVK23nnXducax79+62ww47BI8VcvHFF9vhhx9uEydOLPp7XX311TZr1qy8M16amppswIABQaXtH/s19OnTp7kQ7N27d/C+oaEheJ99bmVlZbBdSX19ffBYVVVVMIScOde/dt26ddbY2Bic269fP1uzZk3zuV7QetHq/LFNmzbZ1q1bg+N+n2Lm3F69egXXldnk2L+nL67ob/79vFjOzN7xc3v06NH8L4fsc92gQYOC5/V7Gr0L2d8y5/bt2ze4Vi+KM+f6z7Zt27bgOf2a/efJnOtt4Nfs/Bq8zfzc3Db0j/145tyOtLe3g7dRpg1z2zu7DbPPzW1DP9e/PtOG/rlfQ6a9/Zqy27DY9s5tQz/XnzO7DYtt7+w2zG3v3Db0c/2xQm3o3y9fe+e24fa0d1u/s7ntnX1uvt/Z7Pb2z/3j7PbuyO9s5tyO/M62196l+huR297qfyP8Y7+eJPyNyG1v9b8R/nXeJkn4G1Gdp72V/0b412baJAwVKb/6iMycOdOuueaadodq58+fb7fddpu98cYbLR7zws8LsmnTprX6ugceeMAuueQSe/HFF5v3gvOAFyxYYCeeeGLB7+fhZgJ23vA1NTXBL6b/0pWKh+pBQw/Z6CIbXWSji2x0ZYpiLwTDqDsi7cnzIuycc85p85xdd901GGr98MMPWxz3RvAZt4WGYR977DF75513Wi0sePLJJ9uYMWNs4cKFeb/O/xXgb13NC0uKPE1ko4tsdJGNLrLRzsZ7LcMSaZE3ePDg4K09hx12WNBl+sILL9hBBx3UXMR596dPxCjUS/iNb3yjxbH99tvPZs+ebSeccEJIPwEAAICmSIdrO8LXufvggw/spptuCsbhzz333GAixp133hk8XldXZ+PHj7fbb7/dDjnkkLzPUcxwbS4frg2r2xQAAKCr6o6ymF3r7rjjDhs9enRQyB1//PHBMio333xz8+Ne+Pk9e2HesNiVMjeYQg/Z6CIbXWSji2ySk01ZzK51PpM202uXz6hRo4IZMG1R7rTMd21NTWaLFpmtWGE2bJjZmDFmIQ7VYzuygQay0UU2usgmOdmUTZGXtFWu5883mz7dbNmyT4+NHGk2d65ZbW3XX1+SsTq8LrLRRTa6yEY7G19aJSxlM1ybpBedF3iTJrUs8FxdXfq4P45osoEWstFFNrrIRlcitzVLgsxijF7Aew9evh7bzLEZM9LnoWuzgR6y0UU2ushGVyK3NUsSvwcvtwcvt9BbujR9HgAAQCEUeSJ8ixTnkyyKUex5CC8b6CEbXWSji2ySkw1FngjfwcP5LNpiFHsewssGeshGF9noIpvkZNOhIu93v/tdsIvEd77zHXv99ddbPOabAx911FGhXlySZPbL9WVSfBZtRUX+8/x4TU36PHRtNtBDNrrIRhfZJCeboos8X6Pu61//uq1cudIWL15sBx54YLBAccaWLVvsj3/8Y6gXl0S+Dp4vk+JyC73M53PmsF4eAAAIqcj70Y9+ZP/5n/9pDz74oC1atMhuu+02u+CCC+wXv/hFsU+BNgwcOLD5Y18Hb948sxEjWp7jPXx+nHXyossGWshGF9noIpvkZFP0YshvvfWWnXDCCc2fn3rqqTZ48OCgd8+3FDvppJNCvbCk7lWX4YXcxInseKGYDXSQjS6y0UU22tlUFLpfq5RFnm+S+8EHH9guu+zSfGzcuHFBz97XvvY1W9bWuh9o17Zt2/IO3Y4dS+MpZgMNZKOLbHSRjXY2lSHuX1r0cO0hhxxiv//971sdP/LII+1//ud/bI7fKIZO69GjB60nimx0kY0ustFFNsnJpugi7+KLL7aqqqq8j40dOzYo9M4666wwry1RCrUtokc2ushGF9noIpvkZFORSuXbQAu59y7U19cHQ9al4kvQDBo0iIYXRDa6yEYX2egiG+1sfLg2rLqj6HvyALTBNxP2veZ8KxJfqdoXMgzxvgoAADqKHS9E9OnTJ+pLQGezmT/fbNQon4lkNnly+r1/7sdRUrxudJGNLrJJTjYUeSKY7VSm2XghN2mSWe7s8rq69HEKveiyQaTIRhfZJCcbijwRmzZtivoS0NFsfIh2+nSzfLe1Zo7NmJE+DyXB60YX2egim+Rk0+ki7+2337b//d//tYaGhuBz5m8gcfwevLbWh/RCb+nS9HkAAHSxDhd5H3/8sU2YMMH22GMPO/74422F32huZuedd55dcsklpbjGRGCbmTLM5pPf/XYVex46jNeNLrLRRTbJyabDRZ6vl9e9e3d7//33W9wgeNppp9lDDz0U6sUlybp166K+BHQwm6adhxXXZj7bFiXB60YX2egim+Rk0+Ei7w9/+INdc801NnLkyBbHd999d3vvvffCvLZEaeK+rbLKxudT7Hr2GFtqI22bFdhn0PcfrKlJL6eCLssGGshGF9kkJ5sOF3kbNmzIO8V31apV1qtXr7CuK3G8dxTlkU1mQu37dZU23eYGx1oVepkNpn27P9bL67JsoINsdJFNcrLpcJE3ZswYu/3225s/r6ioCKb8XnvttTbO1wdDp7BuUXlkkzuhdoHV2iSbZ3U2osXXpEaMNJs3z6y2tqsvN1F43egiG11kk5xsOlwyejE3fvx4+9Of/mRbtmyx73znO/bqq68GPXlPPfVUqBeXtO3T2NZMP5t8E2q90PuNTbQxtsiG2QpbYcPsilvH2Njx7HjRldlAC9noIhvtbHxbs8iKvH333dfefPNNu+GGG6xfv362fv16q62ttW9+85s2jBvMEXOFJspus0r7o4399LwPu+6aAADIp1ODv75x7ve+973OfCkK6N27N21TBtnsvHNxX8O/d7oGrxtdZKOLbLSz8VHSyO7J22233eyKK66wt956K7SLAItJK8ss9O0TLs45p+1zmVDbtViEXRfZ6CKb5GTT4SLPh2V/+9vf2p577mlf/OIXbe7cubZy5cpQLyqJ2GZGO5tCW9RmY0Jt1+N1o4tsdJGNrsi3NfPFkJ9//nl7/fXXgx0vbrzxRqupqbGjjz66xaxbIC7a2qI224gRTKgFAOioSIXQN/jMM8/YtGnT7C9/+UvsFln0mS5+D2J9fb3179+/ZN/Hl6Hp1q3TWwmjhB57bJuNH99+No88YjZ+PFF0JV43ushGF9loZ+MTWsOqO7arqnjuuedsxowZdtJJJwUzbk855ZTtupgk81Ch6d13i+s+/5AZtV2O140ustFFNsnJpsNFnhdzl19+ue2xxx725S9/2V577bVgm7MPPvjA7r777lAvLkni1gMaJ4MHF5cNM2q7Hq8bXWSji2ySk02Hl1AZPXp0MOHCJ2CcfvrpNmTIkFAvKKnCXPwQ4TriiJT5Vs11dfnvy/MJF/44W9R2PV43ushGF9kkJ5sOF3lvvPGG7b777qFeBMyqq6tpBlEDBlTb3Lnp2bVe0GUXesyojRavG11ko4tstLMJc8i2w8O1FHil4TdYQjcb34LWt6L1GbTZvAePLWqjw+tGF9noIpvkZFNUT94OO+wQ3Iu30047BftEVmS6L/LwPWyBOPJCb+LE9P61vr2Z34PnQ7SMtAMAFBVV5M2ePTvYpzbzcVtFHjqHbWbKIxsv6MZ+ukUtIsbrRhfZ6CKb5GxrVlSRd/bZZzd/fE57+zoBAAAgct06M/PjwzwLgn388cfM2NkODQ0N2/PlKCGy0UU2ushGF9kkJ5sOF3mFNsjYvHmz9ezZM4xrAgAAQFctoXL99dcH7/1+vJ///OctpmD74n1PPPFEsIYeOqeUW6Zh+5CNLrLRRTa6yEY7mw0bNnR9kecTLjI9eTfddFOLoVnvwRs1alRwHJ2zcePG5skt0EI2ushGF9noIhvtbMJUdJG3ZMmS4P24ceNs/vz5wVIqCE9jYyPNKYpsdJGNLrLRRTba2YS560WHd7x4/PHHQ/vm+BTbzOgiG11ko4tsdJFNcrLp8MSLk08+2a655ppWx6+99lo75ZRTwrquxGGbGV1ko4tsdJGNLrJJTjYdLvJ8gsXxxx/f6vhxxx0XPIbOYZsZXWSji2x0kY0usklONh0u8nzj3HxLpfTo0cPWrl0b1nUBAACgK4u8/fbbz+65555Wx++++27be++9t+daEq2qqirqS0ABZKOLbHSRjS6ySU42HZ54cdlll1ltba298847dtRRRwXHHn30Ubvrrrvs3nvvDfXikqRbtw7X2+giZKOLbHSRjS6ySU42HS7yTjjhBLv//vvtqquusnnz5gWb6e6///72yCOP2JFHHhnqxSVtbZxevXpFfRnIg2x0kY0ustFFNtrZRLqEivvqV78avAEAAEBTp/oF16xZE2xt9m//9m+2atWq4Nif//xnq6urC/v6EoPdLnSRjS6y0UU2usgmOdl0uMj7y1/+YnvssUewVt6PfvSjoOBzvgvGd7/73VAvLkk2bdoU9SWgALLRRTa6yEYX2SQnmw4Xed/+9rftnHPOsbfeeqvFLBBfO4918jpv69at2/HVKCWy0UU2ushGF9kkJ5sOF3nPP/+8XXDBBa2OjxgxwlauXBnWdSUOs510kY0ustFFNrrIJjnZdPjZfAZovkWP33zzTRs8eHBY15U4/fv3j/oSUADZ6CIbXWSji2ySk02Hi7yvf/3r9oMf/KC5S7GiosLef/99+9d//ddgX1t0TubeRughG11ko4tsdJFNcrLpcJH34x//ONjabOedd7aGhoZgbbzddtstmBFy5ZVXhnpxAAAA6KJ18gYMGGAPP/ywPfnkk8FMWy/4vvCFL9iECRM6eQlwbDOji2x0kY0ustFFNtrZhDn5olOLIbsjjjgieEM4wlzhGuEiG11ko4tsdJGNdjZdXuRdf/31NnXq1KDC9I/bUl1dbfvss48deuihYV1jImzYsMF69uwZ9WUgD7LRRTa6yEYX2Whn0+Xbms2ePdumTJkSFHn+cVs2b95sH374oV188cXBYskAAADoehWpVCoV9pP6PXuTJ0+2v//971bufLkYvw+xvr6+pNPOGxsbrXv3To+eo4TIRhfZ6CIbXWSjnc3GjRtDqzvCXXXvE36v3qWXXlqKp44ttpnRRTa6yEYX2egiG12Rb2vmHn30Ufva175mn/vc54I3//iRRx5pfrx37942ffr0MK8z9thmRhfZ6CIbXWSji2x0Rb6t2U9/+lM79thjg3XxvJDzN+9O9L1rb7zxxlAvLkl8UWloIhtdZKOLbHSRTXKy6fA9eSNHjrSZM2fahRde2OK4F3hXXXWV1dXVWZx01T15AAAAa0OsO7p1ZssN78nLdfTRRwcXhM5ZvXo1TSeKbHSRjS6y0UU2ycmmU3vXLliwoNXx3/zmN8G9eQAAAIhe0YshZ+y9997BHrULFy60ww47LDj2zDPP2FNPPWWXXHJJ6a405nr16hX1JaAAstFFNrrIRhfZaGfjy6h06T15u+yyS3FPVlFhf/vb3yxOuuqevC1btrDjhSiy0UU2ushGF9loZ+PLqIRVdxTVk7dkyZLt+iZoH9vM6CIbXWSji2x0kU1ytjXr9GLIH330UfAGAAAAPd06OrP2m9/8pu200042ZMiQ4M0/9uVU/DF0XnV1Nc0nimx0kY0ustFFNsnJpujNUletWhVMtPB18KZMmWJ77bVXcPyvf/2r3XrrrcEuGE8//bQNGjQo1AtM0jh8jx49or4M5EE2ushGF9noIhvtbCIp8n7wgx8EEwPeeeedoAcv9zFfJ8/fz549O9QLTFKwffv2jfoykAfZ6CIbXWSji2y0s4nknrz777/frrvuulYFnhs6dKhde+21edfPQ3HYZkYX2egiG11ko4tskpNN0UXeihUrbJ999in4+L777msrV64M67oSZ+DAgVFfAgogG11ko4tsdJFNcrIpusjzCRbvvvtum8us7LDDDmFdV+IwcUUX2egiG11ko4tskpNN0UXeMcccY9/73vfy3hS4efNmu+yyy/LuaYviFLEmNSJCNrrIRhfZ6CKb5GTToYkXBx98sO2+++7BMiqjR48OLua1116zn/70p0Gh98tf/jLUi0sSn9QCTWSji2x0kY0ustHOpqmpqeuLvJEjR9rixYvtn//5n+273/1uc7XpNwn+wz/8g91www1WU1MT2oUlDS86XWSji2x0kY0ustHOpqGhoeuLvMwetr///e9t9erV9tZbbwXHdtttN+7FC8H69etZY1AU2egiG11ko4tstLMJcwmVDhV5Gb7g8SGHHBLaRQAAACBcnd67FuFiIWRdZKOLbHSRjS6ySU42FHkiGhsbo74EFEA2ushGF9noIpvkZEORJ8JnJ0MT2egiG11ko4tskpNN2RR5q1atsilTplj//v2DFaHPO++84AbF9viM4KOOOiroAvWv/cpXvhLqzBUAAABFZVPkeYH36quv2sMPP2wPPvigPfHEEzZ16tR2CzxfoPnoo4+25557zp5//nm78MILrVs3vR/bJ7NAE9noIhtdZKOLbJKTTUWqDJa+9gWX995776BI8wWZ3UMPPWTHH3+8LVu2zIYPH5736770pS8Fa/j98Ic/7FBXaXZ36dq1a4P1/+rr64OewFJuZcJ+gprIRhfZ6CIbXWSjnY13RA0YMCCUuqNTS6h0Ne+R8wIoU+C5CRMmBA3x7LPP2kknndTqaz788MPgMe8BPPzww+2dd94Jdum48sor7Ygjjij4va6++mqbNWtWq+O+NqCvQu0N78PE/nH3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XWSTnGwo8kSwzYwustFFNrrIRhfZ6GJbs5himxldZKOLbHSRjS6y0cW2ZjHFNjO6yEYX2egiG11kk5xsuof6bDGUSqWC92vXri3p9/HnpwtdE9noIhtdZKOLbMojm0z9sT0o8tqxbt264H1NTc12NzYAAECx9ceAAQNse1SkwigVY2zbtm22fPly69evn1VUVJSscvcicunSpaxfJIZsdJGNLrLRRTb62bz//vtBvTF8+HDr1m375sfSk9cOb+CRI0daVy2CyCKVmshGF9noIhtdZKPLe+/CqgVYQgUAACCGKPIAAABiiCJPQK9evezyyy8P3kML2egiG11ko4tskpUNEy8AAABiiJ48AACAGKLIAwAAiCGKPAAAgBiiyAMAAIghirwIXHnllXb44Ydbnz59bODAgUV9jW9M8v3vf9+GDRtmvXv3tgkTJthbb71V8mtNmlWrVtmUKVOChSg9m/POO8/Wr1/f5tesXLnSzjzzTBs6dKj17dvXvvCFL9h9993XZdecFJ3Jxi1evNiOOuqoIBv/2q985SvW0NDQJdecFJ3NJvO37bjjjgtW+L///vtLfq1J09Fs/PyLLrrI9txzz+D/NZ/5zGfsW9/6ltXX13fpdcfRjTfeaKNGjbKqqio79NBD7bnnnmvz/HvvvddGjx4dnL/ffvvZ7373uw5/T4q8CGzZssVOOeUUmzZtWtFfc+2119r1119vN910kz377LPB/7COOeYY27RpU0mvNWn8j+Grr75qDz/8sD344IP2xBNP2NSpU9v8mrPOOsveeOMNe+CBB+zll1+22tpaO/XUU+3FF1/ssutOgs5k4wXesccea0cffXTwB/X555+3Cy+8cLu3CsL2Z5MxZ86ckm0ZiY5n49t4+tt1111nr7zyit1666320EMPBcUhOu+ee+6xb3/728ESKX/+85/t85//fPD/8A8//DDv+U8//bSdccYZQbv7/0tOPPHE4M0z6RDfuxbR+O///u/UgAED2j1v27ZtqaFDh6Z+9KMfNR9bs2ZNqlevXqm77rqrxFeZHH/96199H+fU888/33zs97//faqioiJVV1dX8Ov69u2buv3221sc22GHHVI/+9nPSnq9SdLZbA499NDUpZde2kVXmUydzca9+OKLqREjRqRWrFgRPMeCBQu64IqTY3uyyfbrX/861bNnz9TWrVtLdKXxd8ghh6S++c1vNn/e1NSUGj58eOrqq6/Oe/6pp56a+upXv9rq79kFF1zQoe/LP2fLwJIlS4IhQR+izd7bzrt7vacC4fC29OGMgw8+uPmYt7n3+njvaSE+9O7/SvNhjm3bttndd98d9LCOHTuWaCLMxv+F7I/tvPPOQUZDhgyxI4880p588klyEXjdbNy40SZPnhwMYfmtDtDJJpcP1fpwb/fubHff2dG7F154ocX/wz0D/7zQ/8P9ePb5znv+Ovr/fIq8MuAFnvP/SWXzzzOPIZx29oIgm/9R22GHHdps51//+te2detW23HHHYOVyi+44AJbsGCB7bbbbsQSYTZ/+9vfgvdXXHGFnX/++cGQk98vOX78eO5nFXjdXHzxxUHxPXHixDAvByFkk+2jjz6yH/7wh0UPvyN/GzY1NXXo/+F+PIz/51PkhWTmzJnBfSVtvb3++uthfTsIZXPZZZfZmjVr7JFHHrE//elPwX0Xfk+e35+H6LLxXlXnRfe5555rBx54oM2ePTu4ofyWW24hmgiz8ftXH3vsseB+POj+/2bt2rX21a9+1fbee+/gH0soP/S9huSSSy6xc845p81zdt111049d2Yo44MPPghm12b45wcccECnnjNJis3G2zn3JtjGxsZgGLbQcNI777xjN9xwQ3Az7D777BMc8xtqFy1aFAxD+UQZRJNN5rXi/4PKttdee9n7779PLBFm4wWev3ZyVxc4+eSTbcyYMbZw4ULyiSibjHXr1gWTlvr16xeMTPTo0YNMOmmnnXayysrK4P/Z2fzzQjn48Y6cXwhFXkgGDx4cvJXCLrvsEgT76KOPNhd1/i8sv6eiIzN0k6rYbA477LCgR87vnTjooIOa/2fkPUJ+/2Oh+4pc7mxNf0FnepIQTTa+VMHw4cODmc/Z3nzzzWDJDkSXjfdEfeMb32hxzJeI8J7WE044gWgizCbz/xe//8tvP/FeV1/CA53Xs2fPoP39/+E+Q9Z5Bv65z/YvlJ0/PmPGjOZjPkPaj3dIJyeKYDu89957wayyWbNmpaqrq4OP/W3dunXN5+y5556p+fPnN3/+H//xH6mBAwemfvOb36T+8pe/pCZOnJjaZZddUg0NDWQRomOPPTZ14IEHpp599tnUk08+mdp9991TZ5xxRvPjy5YtC7Lxx92WLVtSu+22W2rMmDHBsbfffjt13XXXBbPXfvvb35JNhNm42bNnp/r375+69957U2+99VYw07aqqirICdFmk4vZtRrZ1NfXB7M499tvv+B14jOfM2+NjY0lusr4u/vuu4MVMW699dZg1vPUqVOD/6evXLkyePzMM89MzZw5s/n8p556KtW9e/fg/yevvfZa6vLLL0/16NEj9fLLL3fo+1LkReDss88O/qDlvj3++OOfBmMWLLGSvYzKZZddlhoyZEjwizJ+/PjUG2+8EcXlx9rHH38c/AH04tuLg3PPPbdF8b1kyZJWWb355pup2tra1M4775zq06dPav/992+1pAqiycb5EgUjR44MsjnssMNSixYtIg6RbLJR5Glk4+/z/f/J3/xcdN5PfvKT1Gc+85lgORpfUuWZZ55pfuzII48MaoPcpWv22GOP4Px99tmnUx0HFf6f7eiFBAAAgCBm1wIAAMQQRR4AAEAMUeQBAADEEEUeAABADFHkAQAAxBBFHgAAQAxR5AEAAMQQRR4AAEAMUeQBSBTf03bOnDnbfc72uvXWW23gwIEl/R4Ako0iD0AsLF261P7pn/7Jhg8fHmwI/tnPftamT59uH3/8cYef6/nnn7epU6eGdm35isbTTjvN3nzzTSulTZs22TnnnGP77befde/evXlzdADJQJEHoOz97W9/s4MPPtjeeustu+uuu+ztt9+2m266yR599FE77LDDbNWqVR16vsGDB1ufPn2slHr37m0777xzSb9HU1NT8H2+9a1v2YQJE0r6vQDoocgDUPa++c1vBr13f/jDH+zII4+0z3zmM3bcccfZI488YnV1dfa9732vxfnr1q2zM844w/r27WsjRoywG2+8sc2etzVr1tg3vvGNoPjr37+/HXXUUfZ///d/Lb7mf/7nf+yLX/yiVVVV2U477WQnnXRScHzs2LH23nvv2cUXX2wVFRXBW+5wrffo+fHXX3+9xXPOnj3bPve5zzV//sorrwQ/V3V1tQ0ZMsTOPPNM++ijjwq2i/98/+///T87//zzbejQoZ1oWQDljCIPQFnzXrr//d//tX/+538Oeq2yeWEzZcoUu+eeeyyVSjUf/9GPfmSf//zn7cUXX7SZM2cGw7oPP/xwwe9xyimn2Icffmi///3v7YUXXrAvfOELNn78+OYewt/+9rdBUXf88ccHz+k9iIccckjw2Pz5823kyJH2gx/8wFasWBG85dpjjz2Cnsg77rijxXH/fPLkyc2FpheXBx54oP3pT3+yhx56yD744AM79dRTt7MFAcRV96gvAAC2hw/RegG311575X3cj69evdr+/ve/Nw+PfvnLXw6Ku0yB9dRTTwW9Zv/wD//Q6uuffPJJe+6554Iir1evXsGx6667zu6//36bN29ecO/elVdeaaeffrrNmjWr+eu8iHQ77LCDVVZWWr9+/drsTfNi9IYbbrAf/vCHzb17XlD+6le/Cj73x7zAu+qqq5q/5pZbbrGamprgXP85ACAbPXkAYiG7p649fp9e7uevvfZa3nN9WHb9+vW24447BsOkmbclS5bYO++8E5zz0ksvBT1728OLxHfffdeeeeaZ5l487zEcPXp083U8/vjjLa4h81jmOgAgGz15AMrabrvtFtzP5kVa5j64bH580KBBwf10neEF3rBhw2zhwoWtHsvcU5c7TNwZ3svnw7F33nmnfelLXwreT5s2rcV1nHDCCXbNNde0+lq/PgDIRU8egLLmPWw+zPrTn/7UGhoaWjy2cuXKoEfMlyvJTHhwmd6y7M8LDfd6b5o/jy9B4gVl9ptPsHD7779/cB9eIT4pxGe6tidz/+DixYuDGcPeu5d9Ha+++mowKST3OnyCBQDkosgDUPb8frXNmzfbMcccY0888USwZp5PTPDiz2fP+j1z2fwevGuvvTa4l81n1t57773B5It8fOkRH871NeZ89q4PqT799NPBjF2fAOEuv/zyYOkWf+89hy+//HKLHjcvzPy6fKZvW7Nha2trg5m/3oM3bty4YM2/7BnEPtHDZwX7On4+ROsTTs4999w2C8i//vWvwXCyf219fX3wsb8BSIAUAMTAu+++mzr77LNTQ4YMSfXo0SNVU1OTuuiii1IfffRRi/M++9nPpmbNmpU65ZRTUn369EkNHTo0NXfu3FbnzJ49u/nztWvXBs81fPjw5ueeMmVK6v33328+57777ksdcMABqZ49e6Z22mmnVG1tbfNjixcvTu2///6pXr16+Y2DwbH//u//Tg0YMKDVz3HqqacG59xyyy2tHnvzzTdTJ510UmrgwIGp3r17p0aPHp2aMWNGatu2bQXbxX8Wf77cNwDxV+H/ibrQBAAlfo+bz3L1tfEAoFwx8QIAPrFx48ZgKNfXn9tnn31oFwBljXvyAOATN998czDZYcaMGa2WWQGAcsNwLQAAQAzRkwcAABBDFHkAAAAxRJEHAAAQQxR5AAAAMUSRBwAAEEMUeQAAADFEkQcAABBDFHkAAAAWP/8fffnDUpbt48IAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(figsize=(7, 7))\n", "physbo.search.utility.plot_pareto_front_all(\n", " res_NDS, ax=ax, steps_end=num_random_search, style_common={\"marker\": \"+\"}\n", ")\n", "physbo.search.utility.plot_pareto_front_all(\n", " res_NDS, ax=ax, steps_begin=num_random_search\n", ")\n", "ax.set_title(\"NDS\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Volume of Dominance Region" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "ExecuteTime": { "end_time": "2021-01-05T06:08:41.402348Z", "start_time": "2021-01-05T06:08:41.394521Z" } }, "outputs": [ { "data": { "text/plain": [ "np.float64(0.30923409715730354)" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "VID_NDS = res_NDS.pareto.volume_in_dominance([-1,-1],[0,0])\n", "VID_NDS" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### ParEGO" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "ExecuteTime": { "end_time": "2021-01-05T06:06:29.019463Z", "start_time": "2021-01-05T06:06:14.668034Z" } }, "outputs": [ { "data": { "text/plain": [ "1.8328649997711182" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "policy = physbo.search.discrete_unified.Policy(test_X=test_X, num_objectives=2)\n", "policy.set_seed(seed)\n", "\n", "unify_method = physbo.search.unify.ParEGO(num_objectives=2)\n", "\n", "res_random = policy.random_search(\n", " max_num_probes=num_random_search, simulator=simu, is_disp=False\n", ")\n", "time_start = time.time()\n", "res_ParEGO = policy.bayes_search(\n", " max_num_probes=num_bayes_search,\n", " simulator=simu,\n", " unify_method=unify_method,\n", " score=\"EI\",\n", " interval=10,\n", " is_disp=False,\n", ")\n", "time_ParEGO = time.time() - time_start\n", "time_ParEGO" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Plotting Pareto Front" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "ExecuteTime": { "end_time": "2021-01-05T06:06:29.190434Z", "start_time": "2021-01-05T06:06:29.020967Z" } }, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 1.0, 'ParEGO')" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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AJCslStX2vDhwztdhyKuC74HLt6ZRUVFliobN25sMcUOwkEOOshCB1loIIdoZFFeXh7sPIrXH52hiOtC/BCqF3CpLOJ8uhyfhBvhIgcdZKGDLDSQQ7SyyEjiFC4ubBBRVVUVdhNADlLYJnSQhQZy0FElMmZTxImor68PuwkgBylsEzrIQgM56KgXGbMp4kRwKFUDOeggCx1koYEcdGSKnP5EESeisLAw7CaAHKSwTeggCw3koKNQZMymiBNRVlYWdhNADlLYJnSQhQZy0FEmMmZTxAEAAKQhijgReXl5YTcB5CCFbUIHWWggBx15ImM2RZyIrqbWQO8gBx1koYMsNJCDjn4iY7ZGKyBzz5moIwcdZKGDLDSQg44qkTGbIg4AACANUcSJSGaONKQeOeggCx1koYEcdAwQGbMp4kTU1NSE3QSQgxS2CR1koYEcdNSIjNkUcSLq6urCbgLIQQrbhA6y0EAOOupExmyKOBEqV7pEHTnoIAsdZKGBHHT0ExmzNVoBKyoqohcEkIMOstBBFhrIQUeRyJhNESeitLQ07CaAHKSwTeggCw3koKNUZMzOCrsB6EJDg9nChWZr1pgNHWo2dqxZZibdBgBAxKXdnrjbb7/dRo4cGUx5MWbMGFuyZEmn6z/66KM2evToYP199tnHnn76aUubKTzmzTMbOdLsyCPNzj676atf1nzllU3FHXonB4SCLHSQhQZy0JEnMlakVRH38MMP2+WXX25XXXWV/fWvf7X99tvPjjvuOFu/fn2767/yyiv27W9/284//3x788037ZRTTgke77zzjqnJbL13bd48i51+usVWrWq5vLra7JprLFZY2FTkIbU5IDRkoYMsNJCDjkyRsSIjFovFLE34nrevfvWrdttttwU/NzY22ogRI+ziiy+2mTNntln/zDPPtE2bNtlTTz3VvOxrX/ua7b///nbnnXcm9TfLy8utuLjYysrKUnoi48aNG23gwIFNPzQ0WGnJSCuqXNVhlR0PLePxx80mTkxZu6KmRQ4IFVnoIAsN5BCNLMq7UXekzZ642tpae+ONN2z8+PEtLvH1nxcvXtzu7/jyxPWd77nraH23efPmoAMTH73tzskLraSTAs5lfPG1bvJ3OLQKAEAEpc2FDZ999pk1NDTY4MGDWyz3n9977712f2ft2rXtru/LO3L99dfbrFmz2q26/e97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VVcFX0EOYJtQwueTBnLQkSs0ZnNhAwAAQBpiTxwAAEAaoogDAABIQxRxAAAAaYgiDgAAIA1RxIXg2muvtcMOO8wKCgqspKQk6Ts4X3nllTZ06FDLz8+38ePH2wcffJDytvZ1GzZssMmTJwc3bPQszj//fKusrOz0d9auXWvnnHOODRkyxPr3728HHnigPf74473W5r5qS7JwixcvtqOOOirIwn/3G9/4hlVXV/dKm/uiLc0h/jl1wgknBLPbzJ8/P+Vt7eu6m4Wvf/HFF9vuu+8ejBM77rijXXLJJTKTtaeT22+/3UaOHGl5eXk2ZswYW7JkSafrP/roozZ69Ohg/X322ceefvrpXmknRVwIamtr7YwzzrBp06Yl/Ts33nij3XrrrXbnnXfaa6+9FgxYxx13nNXU1KS0rX2df0C+++679swzz9hTTz1lL730kk2dOrXT3zn33HNt+fLl9uSTT9rbb79tEydOtEmTJtmbb77Za+3ui7YkCy/gjj/+eDv22GODD9mlS5faRRdd1OVUNejZHOLmzp2bsukJo6i7WfgUkf6YPXu2vfPOO3bPPffYggULguIPyXv44Yft8ssvD24j8te//tX222+/YLxdv359u+u/8sor9u1vfzvoZx8HTjnllODhGaScz52KcNx9992x4uLiLtdrbGyMDRkyJHbTTTc1LystLY3l5ubGHnzwwRS3su/6+9//7vMGx5YuXdq87I9//GMsIyMjtnr16g5/r3///rH77ruvxbJBgwbFfv3rX6e0vX3ZlmYxZsyY2M9//vNeamXft6U5uDfffDO2ww47xNasWRO8xhNPPNELLe67tiaLRI888kgsJycnVldXl6KW9j2HHHJI7MILL2z+uaGhITZs2LDY9ddf3+76kyZNip100kltPpu+//3vp7yt/O9qGlixYkVwCM8PoSbOq+a7eH1PBLaM950fojj44IObl3kf+14c39vZET8U7v+n5ocuGhsb7aGHHgr2iI4bN44oejEL/79if2777bcPMhk8eLAdccQR9vLLL5NDL+bgqqqq7Oyzzw4OQflpBggvi9b8UKofjs3KYqr0ZI+UvfHGGy3GW+9z/7mj8daXJ67vfM9db4zPFHFpwAs454NUIv85/hy2rF+9AEjkH3SDBg3qtF8feeQRq6urs2222Sa4Y/f3v/99e+KJJ2zUqFHE0ItZ/OMf/wi+Xn311XbBBRcEh438/MSjjz6a80V7MQd32WWXBYX0hAkTtvRPo4eySPTZZ5/ZNddck/ThcFjQZw0NDd0ab315WOMzRVwPmTlzZnAuSGeP9957r6f+HELM4oorrrDS0lJ79tln7fXXXw/OnfBz4vz8OPReFr4X1HkRfd5559kBBxxgc+bMCU7q/u1vf0sUvZSDnxv6/PPPB+fDQWesKC8vt5NOOsn23HPP4H900Dexf7WHzJgxw6ZMmdLpOjvvvPMWvXb88MS6deuCq1Pj/Of9999/i16zL0s2C+/X1ieq1tfXB4dJOzok9NFHH9ltt90WnLC61157Bcv8pNeFCxcGh5L8whP0ThbxbcEHqUR77LGHffLJJ8TQSzl4AefbResr7U877TQbO3asvfjii2TRS1nEVVRUBBf8DBgwIDhKkJ2dTQZJ2nbbbS0zMzMYXxP5zx31uy/vzvo9iSKuh2y33XbBIxV22mmn4M3w3HPPNRdt/n9Zfl5Ed65wjYpkszj00EODPWp+/sNBBx3UPCD5Hh4/37Cjc39c66sffaOP7xlC72Thl/8PGzYsuFI40fvvvx/c5gK9k4PvWfre977XYpnfYsH3ip588snE0ItZxMcGPx/LT/XwvaR+ywskLycnJ+hvH2/9ClPnfe4/+5XvHWXlz0+fPr15mV9R7MtTLuWXTqCNf/7zn8GVXLNmzYoVFhYG3/ujoqKieZ3dd989Nm/evOaf/+M//iNWUlIS+/3vfx/729/+FpswYUJsp512ilVXV9PDW+H444+PHXDAAbHXXnst9vLLL8d23XXX2Le//e3m51etWhVk4c+72tra2KhRo2Jjx44Nln344Yex2bNnB1eM/eEPfyCLXszCzZkzJ1ZUVBR79NFHYx988EFwpWpeXl6QC3ovh9a4OjWcLMrKyoKrIvfZZ59gG/ArheOP+vr6HmpV3/fQQw8Fd3+45557gquEp06dGoy/a9euDZ4/55xzYjNnzmxef9GiRbGsrKxgLFi2bFnsqquuimVnZ8fefvvtlLeVIi4E3/nOd4IPudaPF1544ctgzIJbkCTeZuSKK66IDR48OHhzHX300bHly5eH0fw+5fPPPw8+FL2Y9mLgvPPOa1FMr1ixok0277//fmzixImx7bffPlZQUBDbd99929xyBL2ThfPL/ocPHx5kceihh8YWLlxI94eQQyKKuHCy8K/tjS3+8HWRvP/8z/+M7bjjjsHtWfyWI6+++mrzc0cccUQwjre+lctuu+0WrL/XXnv12v/UZ/h/Ur+/DwAAAD2Jq1MBAADSEEUcAABAGqKIAwAASEMUcQAAAGmIIg4AACANUcQBAACkIYo4AACANEQRBwAAkIYo4gBEis+5Onfu3K1eZ2vdc889bSaNB4DuoIgD0CesXLnSvvvd79qwYcOCSay/8pWv2KWXXmqff/55t19r6dKlNnXq1B5rW3tF4Zlnnmnvv/9+j/2N9tTU1NiUKVOCCemzsrKaJ/QG0DdQxAFIe//4xz/s4IMPtg8++MAefPBB+/DDD+3OO++05557zg499FDbsGFDt15vu+22s4KCAkul/Px823777VP6NxoaGoK/c8kll9j48eNT+rcA9D6KOABp78ILLwz2vv35z3+2I444wnbccUc74YQT7Nlnn7XVq1fbz372sxbrV1RU2Le//W3r37+/7bDDDnb77bd3uuestLTUvve97wXFXVFRkR111FH2f//3fy1+53//93/tq1/9quXl5dm2225rp556arB83Lhx9s9//tMuu+wyy8jICB6tD6f6Hjlf/t5777V4zTlz5tguu+zS/PM777wT/LsKCwtt8ODBds4559hnn33WYb/4v++//uu/7IILLrAhQ4ZsQc8CUEYRByCt+V62P/3pT/aDH/wg2OuUyAuXyZMn28MPP2yxWKx5+U033WT77befvfnmmzZz5szgsOszzzzT4d8444wzbP369fbHP/7R3njjDTvwwAPt6KOPbt7D94c//CEo2k488cTgNX0P4CGHHBI8N2/ePBs+fLj94he/sDVr1gSP1nbbbbdgT+L999/fYrn/fPbZZzcXkl48HnDAAfb666/bggULbN26dTZp0qSt7EEA6Sor7AYAwNbwQ6heoO2xxx7tPu/LN27caP/617+aD19+/etfD4q3eAG1aNGiYK/XMccc0+b3X375ZVuyZElQxOXm5gbLZs+ebfPnz7fHHnssOHfu2muvtbPOOstmzZrV/HteJLpBgwZZZmamDRgwoNO9YV5s3nbbbXbNNdc0753zgvF3v/td8LM/5wXcdddd1/w7v/3tb23EiBHBuv7vABAt7IkD0Cck7mnrip8n1/rnZcuWtbuuHzatrKy0bbbZJjiMGX+sWLHCPvroo2Cdt956K9gztzW8CPz444/t1Vdfbd4L53v8Ro8e3dyOF154oUUb4s/F2wEgWtgTByCtjRo1KjifzIuw+HloiXz5wIEDg/PZtoQXcEOHDrUXX3yxzXPxc9paH8bdEr6Xzg+XPvDAA/a1r30t+Dpt2rQW7Tj55JPthhtuaPO73j4A0cOeOABpzfeQ+WHQO+64w6qrq1s8t3bt2mCPlt/OI35BgYvv7Ur8uaPDsb43zF/Hb9HhBWPiwy9gcPvuu29wHlxH/KILv1K0K/Hz9xYvXhxccet75xLb8e677wYXXbRuh1/AACB6KOIApD0/X2zz5s123HHH2UsvvRTcM85P/Pfizq8+9XPWEvk5cDfeeGNwLplfmfroo48GFze0x2/N4Ydb/R5rfvWrH/J85ZVXgite/QIDd9VVVwW3NvGvvufv7bffbrHHzAsvb5dfKdvZ1aQTJ04Mrpz1PXBHHnlkcM+7xCtw/UIKv6rW72Pnh1D9go7zzjuv0wLx73//e3C413+3rKws+N4fAPqAGAD0AR9//HHsO9/5Tmzw4MGx7Ozs2IgRI2IXX3xx7LPPPmux3le+8pXYrFmzYmeccUasoKAgNmTIkNgtt9zSZp05c+Y0/1xeXh681rBhw5pfe/LkybFPPvmkeZ3HH388tv/++8dycnJi2267bWzixInNzy1evDi27777xnJzc/3EvWDZ3XffHSsuLm7z75g0aVKwzm9/+9s2z73//vuxU089NVZSUhLLz8+PjR49OjZ9+vRYY2Njh/3i/xZ/vdYPAOkvw/8TdiEJAEr8HDO/StTvDQcAqriwAQC+UFVVFRxq9fuv7bXXXvQLAGmcEwcAX7jrrruCiwmmT5/e5jYkAKCGw6kAAABpiD1xAAAAaYgiDgAAIA1RxAEAAKQhijgAAIA0RBEHAACQhijiAAAA0hBFHAAAQBqiiAMAALD08/8DvlpAsXJRcisAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(figsize=(7, 7))\n", "physbo.search.utility.plot_pareto_front_all(\n", " res_ParEGO, ax=ax, steps_end=num_random_search, style_common={\"marker\": \"+\"}\n", ")\n", "physbo.search.utility.plot_pareto_front_all(\n", " res_ParEGO, ax=ax, steps_begin=num_random_search\n", ")\n", "ax.set_title(\"ParEGO\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Volume of Dominance Region" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "ExecuteTime": { "end_time": "2021-01-05T06:06:29.196389Z", "start_time": "2021-01-05T06:06:29.191710Z" } }, "outputs": [ { "data": { "text/plain": [ "np.float64(0.18004551161609372)" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "VID_ParEGO = res_ParEGO.pareto.volume_in_dominance([-1,-1],[0,0])\n", "VID_ParEGO" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Comparison of Results" ] }, { "cell_type": "code", "execution_count": 14, "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", "
AlgorithmComputation TimeVolume of Dominance Region
0NDS1.7336240.309234
1ParEGO1.8328650.180046
2HVPI4.1163480.328550
\n", "
" ], "text/plain": [ " Algorithm Computation Time Volume of Dominance Region\n", "0 NDS 1.733624 0.309234\n", "1 ParEGO 1.832865 0.180046\n", "2 HVPI 4.116348 0.328550" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# make table\n", "df = pd.DataFrame({\n", " \"Algorithm\": [\"NDS\", \"ParEGO\", \"HVPI\"],\n", " \"Computation Time\": [time_NDS, time_ParEGO, time_HVPI],\n", " \"Volume of Dominance Region\": [VID_NDS, VID_ParEGO, VID_HVPI]\n", "})\n", "df\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "NDS achieves a comparable result in terms of the volume of the dominance region to HVPI, but with a shorter computation time.\n", "\n", "On the other hand, while ParEGO has the shortest computation time, the volume of the dominance region it achieves is smaller.\n", "\n", "Depending on the optimization problem, the algorithm that produces the best results may vary as seen below." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Another Benchmark Function\n", "\n", "We now perform Bayesian optimization using the Kita-Yabumoto-Mori-Nishikawa function:\n", "\n", "$$\n", "\\begin{cases}\n", "f_1(x, y) = -x^2 + y^2 \\\\\n", "f_2(x, y) = 0.5x + y + 1 \\\\\n", "\\end{cases}\n", "$$\n", "\n", "Furthermore, $x$ and $y$ have the following constraints:\n", "\n", "$$\n", "\\begin{cases}\n", "g_1(x, y) = 6.5 - x/6 - y \\ge 0 \\\\\n", "g_2(x, y) = 7.5 - x/2 - y \\ge 0 \\\\\n", "g_3(x, y) = 30 - 5x - y \\ge 0 \\\\\n", "\\end{cases}\n", "$$\n", "\n", "\n", "Kita, H., Yabumoto, Y., Mori, N., Nishikawa, Y. (1996). Multi-objective optimization by means of the thermodynamical genetic algorithm. In: Voigt, HM., Ebeling, W., Rechenberg, I., Schwefel, HP. (eds) Parallel Problem Solving from Nature — PPSN IV. PPSN 1996. Lecture Notes in Computer Science, vol 1141. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-61723-X_1014\n", "\n" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "fn_KYMN = physbo.test_functions.multi_objective.KitaYabumotoMoriNishikawa()\n", "test_X_KYMN = physbo.search.utility.make_grid(\n", " min_X=fn_KYMN.min_X, max_X=fn_KYMN.max_X, num_X=101, constraint=fn_KYMN.constraint\n", ")\n", "simu_KYMN = physbo.search.utility.Simulator(test_X=test_X_KYMN, test_function=fn_KYMN)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### HVPI" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 1.0, 'HVPI')" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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7lU3c+ZM0+ApnWXikksu6Y5tRAjU1tYGvQmhRG5kRq25i/FJbpFv6i688EIZP368LFu2rMWVQXrvOu5Tl77q6+uD3oRQIjcyo9bcxfgkt8g3da+99pqcddZZrZZvs802snr1ar+2CyHDlXXkRq25jTFKZtRa9KXc1OXk5LR5k+GlS5dK3759/douhExxcXHQmxBK5EZm1Jq7GJ/kFvmm7thjj5Urr7yyebd0RkaGfPrpp3LxxRebeWGRnrxzK0Fu1JqbGKNkRq1FX8pN3XXXXWemCuvXr59s3LhRDjnkENlhhx3MlVVXX31192wlAAAA/L1PXUlJicydO1defvllcyWsNnh77723jBo1KtWXQoQwnQ65UWtuY4ySGbUWfV26+bA68MADzQNQmZmZBNEF5EZmtlBrZEatRV9STd2NN94oZ555pvlLTz/vSGFhoey6666y3377+bWNCIENGzZIz549g96M0CE3MqPW3MX4JLdINnWzZs2ScePGmaZOP+/Ipk2b5Msvv5QLLrjA3JwYAAAA3S8jFovF/H5RPefu5JNPlq+++krCRm/XoucNVlRUcDl7ChoaGiQrq8tH89MWuZEZteYuxie5ha3v6NLcr53Rc+1+/etfd8dLw1FMp0Nu1JrbGKNkRq1FX5eaunnz5snRRx8t22+/vXno588++2zz83l5eXL++ef7uZ1wHNPpkBu15jbGKJlRa9GXclN3yy23yPe//31zXzpt3PShuwt17tebb765e7YSztObUIPcqDV3MUbJjFqLvpTPqRs4cKBMmTJFfvGLX7RYrg3dtGnTZOXKlRJmnFMHAADS4pw6nWpG99QlOuKII8wGIT2tX78+6E0IJXIjM2rNXYxPckuLuV8fffTRVssff/xxc25dUFasWCFnnHGGDBkyxJzTp+f6XX755VJXVxfYNgEAADh382HP8OHDzRyvL7zwguy///5m2cKFC+WVV16RyZMnS1A++OADaWpqkttvv93MRfvuu+/KhAkTzM0jf/e73wW2XekiJycn6E0IJXIjM2rNXYxPcovkOXW69yupF8vIkI8//lhcoTc/vvXWW1PaJs6p6xrdI8qMEuRmA7VGbrZQa+Rmg599R1J76pYvXy5hpAFttdVWnc6AoY/4cJE6ptPpGnIjM1uoNTKj1qKvy1MArF271nzs06ePuOjDDz+Um266qdND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GAAAAO2jqQMAAIgAmjoAAIAIoKkDAACIAJq6OE8++aTst99+kpeXJ7169ZLjjz++RVh6O5WjjjpK8vPzzb3wLrroImloaJB0NnjwYMnIyGjxuOaaa1qs884778hBBx0kubm5ZuYJveUMNs87vOeee5rMvFv0kFn7jj32WHPXda2jAQMGmNsXffHFF+TWjhUrVsgZZ5whQ4YMMe9p22+/vbnCrq6ujsw6ofc8PeCAA8x7fWlpaZvr8O9BazfffLP5N0HHqP5bmjghQLp76aWX5JhjjpGtt97avO8/9thjLZ7X61b1Th/6/qZjdtSoUbJs2bKUfgZN3f88/PDD5h+J008/Xd5++2155ZVX5OSTT24OSu+Npw2dviHOnz/f3F7l7rvvNv8D0p3eNmbVqlXNj1/+8pctpifSewjq1GuLFi2SmTNnyhVXXCF33HGHpLtf/epXZnAnIrO2HXroofLggw/KkiVLzHj96KOP5MQTTyS3dnzwwQfS1NQkt99+u7z33nsya9Ysue222+T//u//yKwT+j4/duxYc4ustvDvQWuzZ882U27qHw5vvPGGfOtb35LRo0ebCQGw2YYNG0wu2vy2RXd43HjjjWac/uc//zG3ZtMMa2trJWl6S5N0V19fH9tmm21id955Z7vr/Otf/4r16NEjtnr16uZlt956a6y4uDi2adOmWLrabrvtYrNmzWr3+VtuuSXWq1evFhldfPHFsZ133jmWzrSehg0bFnvvvff0lkKxN998s/k5MkvO448/HsvIyIjV1dWRW5Kuvfba2JAhQ6i1JN11112xkpKSVsv596C1fffdNzZx4sTmrxsbG2Nbb711bPr06cnGnVZEJPboo482f93U1BTr379/bObMmc3LysvLYzk5ObH7778/6ddlT52I+ati5cqVZt41vamx7vo88sgj5d13321ufhcsWCC77767lJWVNS/TDlr3quhfwelMD7f27t3bZKd74uIPSWtuBx98sPTs2bNFbrq3Zf369ZKOdE7iCRMmyF//+ldzeCcRmXVOZ5f529/+Zg6RZWdnk1sKE4fHTxpOrXUN/x603rOpR2L0cKFH/z3VrzUrdG758uVmJqz4DHUOej2MnUqGNHUi8vHHH5sw9LCgTi2mM1PoOXU6U4X+46E07PiGTnlf63Pp6rzzzpMHHnjAzOxx1llnybRp08xhRQ+5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f5ZBgwaZdfX3AIBE7KkDEDrxe+I6o+fZJX69ePHiNtfVw6zV1dXSu3dvc9jTeyxfvlw++ugjs85bb71l9txtCW0KV6xYIQsXLmzeS6d7BIcNG9a8Hc8//3yLbfCe87YDABKxpw5AaOywww7mfDRtyrzz2OLp8l69epnz4bpCG7oBAwbICy+80Oo575y4xMO+XaF78fTw6n333Sff+c53zMdzzjmnxXYcc8wxMmPGjFbfq9sHAG1hTx2A0NA9aHrY9JZbbpGNGze2eG716tVmj5fePsS7QEF5e8Piv27v8K3uLdPX0VuCaAMZ/9ALItQee+xhzqNrj17EoVeidsY7/2/BggXmil7dexe/He+99565iCNxO/SCCABoC00dgFDR8802bdoko0ePlpdeesncs04vJNBmT69u1XPe4uk5dNdee605F02vfH3ooYfMxRJt0VuB6OFZvcebXl2rh0jnz59vrqjVCxbU5Zdfbm6loh91z+B///vfFnvUtBHT7dIrcTu6WnXMmDHmylzdQ3fooYeae+7FX+GrF2boVbt6Hz095KoXiJx++ukdNozvv/++OTys31tRUWE+1weANBEDgJBZsWJF7LTTTouVlZXFsrOzY4MGDYr98pe/jK1du7bFetttt11s6tSpsbFjx8by8/Nj/fv3j/3+979vtc6sWbOav66srDSvtfXWWze/9rhx42Kffvpp8zoPP/xwbM8994z17Nkz1qdPn9iYMWOan1uwYEFsjz32iOXk5OiJf2bZXXfdFSspKWn1e5x00klmnT//+c+tnlu6dGnshBNOiJWWlsby8vJiw4YNi02aNCnW1NTUbi76u+jrJT4ApIcM/U/QjSUABEXPUdOrUPXedAAQZlwoASAt1dTUmEOzev+3XXfdNejNAYAtxjl1ANLSHXfcYS5OmDRpUqvbngBAGHH4FQAAIALYUwcAABABNHUAAAARQFMHAAAQATR1AAAAEUBTBwAAEAE0dQAAABFAUwcAABABNHUAAAASfv8Ppxn1YysTNyIAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "policy = physbo.search.discrete_multi.Policy(test_X=test_X_KYMN, num_objectives=2)\n", "policy.set_seed(seed)\n", "\n", "policy.random_search(max_num_probes=num_random_search, simulator=simu_KYMN, is_disp=False)\n", "time_start = time.time()\n", "res_KYMN_HVPI = policy.bayes_search(\n", " max_num_probes=num_bayes_search,\n", " simulator=simu_KYMN,\n", " score=\"HVPI\",\n", " interval=10,\n", " is_disp=False,\n", ")\n", "time_KYMN_HVPI = time.time() - time_start\n", "VID_KYMN_HVPI = res_KYMN_HVPI.pareto.volume_in_dominance(\n", " fn_KYMN.reference_min, fn_KYMN.reference_max\n", ")\n", "VID_KYMN_HVPI\n", "fig, ax = plt.subplots(figsize=(7, 7))\n", "physbo.search.utility.plot_pareto_front_all(\n", " res_KYMN_HVPI, ax=ax, steps_end=num_random_search, style_common={\"marker\": \"+\"}\n", ")\n", "physbo.search.utility.plot_pareto_front_all(\n", " res_KYMN_HVPI, ax=ax, steps_begin=num_random_search\n", ")\n", "ax.set_xlim(-60, 10)\n", "ax.set_ylim(-10, 8)\n", "ax.set_title(\"HVPI\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### ParEGO" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 1.0, 'ParEGO')" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnUAAAJwCAYAAADvOpfnAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAYSxJREFUeJzt3Ql4VOX1x/ETspNAgoCIEAXc941qtVJBqUvdUdTCX0WtK1ZQa9VaF1xARAXctdaldcMi1VarggvuVsVdATeogICCCUkgISSZ/3Pe9I6TySTMhJv3bt/P84xJ7txJbn6eO5zc5X2zYrFYTAAAABBonbzeAAAAAGw4mjoAAIAQoKkDAAAIAZo6AACAEKCpAwAACAGaOgAAgBCgqQMAAAgBmjoAAIAQoKkDAAAIAZo6AACAEKCpAxA6DzzwgGRlZcUfBQUFsvXWW8u5554ry5cvd+3nJP6M5MdZZ53VYv3XXntNjjvuOOnTp4/k5eVJSUmJ7LXXXnL11Ven3C6dxfFvf/ub/PKXv5TS0lLp3Lmz7LTTTmb91atXu/Z7AAiHLOZ+BRDGpu6UU04xzU///v2ltrZWXn/9ddMgbb755vLpp5+aBmlDafP2q1/9Sk466aQWz2kTueeee8a/vuKKK+Saa66RAQMGyAknnGA+6nbNmTNHnnjiCenRo4d8/fXX8fUbGhpkxIgR8vjjj8ugQYNk2LBhZpu1MXzkkUdk++23lxdeeEF69eq1wb8HgJDQpg4AwuT++++P6dvbu+++22z5BRdcYJY/8sgj7f7eDQ0NsZqaGvO5fq/Ro0ev9zWPPfaYWfe4446LrV27tsXzFRUVsSuvvLLZsvHjx5vX/P73v2+x/j//+c9Yp06dYgcffHC7fw8A4cPpVwCRsf/++5uPCxYskBtvvFH22Wcf6d69uxQWFsoee+wh06dPT3k0Tk/bPvzww7LDDjtIfn6+PPfccxn9XD1Kp0fi/vKXv5jTrsn0NOxVV10V/7qmpkYmTZpkjvZNmDChxfqHH364nHzyyWY73n777Yy2BUB40dQBiAzn9KY2clOnTpXddtvNnKIdP3685OTkyPDhw+WZZ55p8bqXXnpJzj//fDn++OPN6/r16xd/Tk+hrlixosWjrq7OPP/FF1+Yx1FHHSXFxcVpbaeeKi4vLzenX3W7UnFO+T799NPtygJA+KR+twCAEFi1apVpsLTxeuONN0wDp0flDjvsMNMU6ecOPRq3++67y8033yyHHnpos+8zf/58+eSTT8x1bMn06Js+kj366KPm2rl58+aZr3fcccdmz+vZ25UrVzZbpjdDaBP3+eefm6932WWXVn8357m5c+emmQaAsKOpAxBaQ4cObfa13iShp1H17tNEelRMb0zQGxK0GUu23377pWzo1JFHHmkawmR6l6qqrKw0H5OP0mnD2bNnz2bL3n33XRk4cKBUVVWZr7t06dLq7+Y853x/AKCpAxBat99+u7kuTY9+6V2i22yzjXTq1Cl+2vLaa6+VDz/8UNauXdvsGrpkegdta/r27duieUzVfFVXVzdbrk3erFmzzOczZ84019Alv8Zp7lJJp/EDEC00dQBCS4cU0SNfyXRYkCOOOMKM/3bHHXdI7969JTc3V+6//34zXEiyxNO0mdp2223NRx1GJZE2mk4zuHjx4mbPbbfddubjxx9/bK7FS0WfU60dQQQQPdwoASBydFw4HZD4+eefl1NPPVUOOeSQNo+2bQg9OrjVVlvJk08+mfaAwfvuu6+5vk4bTD0tnMpf//pX81GvDwQARVMHIHKys7PNadbEhmnhwoWm8eoIOlyJ3rBx+umny7p161o83zTk3U90kOHf//735gaNyy67rMX6eoeuDrB80EEHyc9//vMO2WYAwcPpVwCRo3e36l2uBx98sBk25PvvvzfX32255Zbx05rp0uFKHnrooRbL9Ro+nW1C6c/Q06865tw777xj7orV6/T0yJ0u15sz9Nq4bt26xV9/ySWXyAcffCATJ06Ut956S4455hhzGliHO9Gfp6doH3zwQRfSABAWTBMGILTThDl3k6Zy3333yfXXXy/ffvutabAuvvhic7Ru3LhxzY6c6RG90aNHy2233dbie6S6qSLxjtnZs2c3W/bKK6+Y76PDq+iRO23S9EYObTJ1rthNNtmk2fqNjY3mNOu9995rhlTRse+22GILM3/shRdeKEVFRe1IB0BY0dQBAACEANfUAQAAhABNHQAAQAjQ1AEAAIRAqJo6HZ7g8ssvNxc96wXIekHxNddc02K4AAAAgLAJ1ZAmeuv/nXfeaW7z32GHHeS9994zd8CVlJTIeeed5/XmAQAAdJhQ3f2qI6vr2FB/+ctf4sucsZ1SjSMFAAAQFqE6UrfPPvvIPffcYwYD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bW7FihXmlHSqfyOj/O9jJpycNjTDUDd1l1xySYuL+JMfznUn6rLLLpNjjjlG9thjD7n//vvN83//+98latLNTek1FNr87rzzzqZRuemmm8w/HHoTQJSkm5lmU1VVJZdeeqnXmxy4WlN6c9IHH3wgM2fONFMDnnTSSaZRjpJMM1N6JuLggw8214npUeIoak9uQNAEZu7X9rjwwgvNUZG2DBgwwFzcr7bffvv4cp2DTZ/TowFqk002aXEnj55Gc56LYm6p6KFiPf2qd95ts802JhsnpzDnlm5mL730kjmUnjzHnx61GzlypLkBJyqZtafWevToYR5bb721bLfdduZu6rffftvM9xyV3DLNTO8Q1ptM9FR18g1KUclsQ9/XkkXp34N06D6pf2SlqqUo5tEeTk6amV4C5tCvdZSEdIW6qevZs6d5rI8emdN/ZPU6r3333dcsW7dunWlM9K5Npf9o6G3ueiePDmeiZs2aJV27dm3WDEYpt1R0aA69lsLJSHPTI6Cap3Ptk+amDZ+e4o5aZnpn07XXXtvsH1y9xlDvHNOGOEqZbWitOUfYnaPCUcktk8z0CJ02dM7ZB903E0Ulsw2ttWRR+vcgHXrNtNbYiy++GB8KTPdP/frcc8/1evMCQYce0sZOM3OaOL1mX++Cbe0u7JRcv6UjoMaMGWPugH3++edj8+bNi5122mmxjTfeOPbjjz+a5+vr62M77rhj7MADD4x9+OGHseeeey7Ws2fP2KWXXhqLqjfffNPc+ap5fP3117GHHnrIZHLSSSc1u3unV69esRNPPDH26aefxh577LFY586dY3fffben2+4XCxYsaHH3K5m19Pbbb8duvfVWk9PChQtjL774YmyfffaJbbHFFrHa2lpyS2Hx4sWxLbfcMnbAAQeYz5cuXRp/UGtt++9//2tqbdy4cbHi4mLzuT6qqqrM8/x70JK+t+udmg888EDs888/j51xxhmx0tLSZiNGRF1VVVW8lvR9/+abbzafa72p66+/3mSmd/Z//PHHsSOPPNLcrV5TU5P2z6Cp+x8dFuHCCy80jVyXLl1iQ4cONU1IIv3H5JBDDokVFhbGevToYdbX4VCias6cObG99trL3PJfUFAQ22677WLjx4+P/yPr+Oijj2L77ruv2eG1cdbCRetNHZm1pG9wQ4YMiW200Uamjvr16xc766yzTLNCbq0Px6G1lepBZm07+eSTU+b28ssvx9fh34OW9A+vzTbbLJaXl2eGONE/xvATrZ9UdaX15gxrcvnll5sDIfo+p3+QzZ8/P5aJLP1Pxx1QBAAAgA2hvvsVAAAgKmjqAAAAQoCmDgAAIARo6gAAAEKApg4AACAEaOoAAABCgKYOAAAgBGjqAAAAQoCmDkBo9evXT6ZMmbLB62yoBx54QEpLSzv0ZwAATR2AwFm0aJGceuqpsummm5rJxDfffHMZM2aMrFy5MuPv9e6778oZZ5zh2ralahKPP/54+eKLL6Qj1dbWyqhRo2SnnXaSnJyc+MTqAKKDpg5AoHzzzTcycOBA+fLLL+XRRx+Vr776Su666y558cUXZe+995Yff/wxo+/Xs2dP6dy5s3SkwsJC2XjjjTv0ZzQ0NJifc95558nQoUM79GcB8CeaOgCBMnr0aHN0bubMmbLffvvJZpttJocccoi88MILsmTJErnsssuarV9VVSW/+c1vpKioSPr06SO33357m0fWKioq5Le//a1p9rp27Sr777+/fPTRR81e869//Ut+9rOfSUFBgfTo0UOOPvpos3zw4MHy3//+V84//3zJysoyj+TTr3rETpfPmzev2fecPHmybLHFFvGvP/30U/N7FRcXS69eveTEE0+UFStWtJqL/n533nmnnH766bLJJpu0I1kAQUdTByAw9Cjc888/L+ecc445KpVIG5mRI0fKtGnTJBaLxZdPmjRJdtllF/nggw/kkksuMadpZ82a1erPGD58uHz//ffy7LPPypw5c2T33XeXAw44IH4E8JlnnjFN3K9//WvzPfUI4Z577mmemzFjhvTt21euvvpqWbp0qXkk23rrrc2RxocffrjZcv16xIgR8cZSm8nddttN3nvvPXnuuedk+fLlctxxx21gggDCLMfrDQCAdOkpV23Ytttuu5TP6/Ly8nL54Ycf4qc7f/GLX5hmzmmo3njjDXNU7Fe/+lWL17/++uvyzjvvmKYuPz/fLLvxxhvlySeflOnTp5tr76677jo54YQTZNy4cfHXadOoNtpoI8nOzpYuXbq0ebRMm8/bbrtNrrnmmvjRO20gH3roIfO1PqcN3fjx4+Ovue+++6SsrMysq78HACTjSB2AwEk8Erc+ep1d8tdz585Nua6eZq2urpbu3bub057OY8GCBfL111+bdT788ENz5G5DaFO4cOFCefvtt+NH6fSI4LbbbhvfjpdffrnZNjjPOdsBAMk4UgcgMLbccktzPZo2Zc51bIl0ebdu3cz1cO2hDV3v3r1l9uzZLZ5zrolLPu3bHnoUT0+vPvLII/Lzn//cfDz77LObbcfhhx8uEydObPFa3T4ASIUjdQACQ4+g6WnTO+64Q2pqapo9t2zZMnPES4cPcW5QUM7RsMSvWzt9q0fL9PvokCDaQCY+9IYItfPOO5vr6FqjN3Honajr41z/99Zbb5k7evXoXeJ2fPbZZ+YmjuTt0BsiACAVmjoAgaLXm61du1YOOuggefXVV82YdXojgTZ7enerXvOWSK+hu+GGG8y1aHrn69///ndzs0QqOhSInp7VMd707lo9Rfrmm2+aO2r1hgV15ZVXmqFU9KMeGfzkk0+aHVHTRky3S+/Ebetu1WHDhpk7c/UI3ZAhQ8yYe4l3+OqNGXrXro6jp6dc9QaRU045pc2G8fPPPzenh/W1q1atMp/rA0BExAAgYBYuXBg7+eSTY7169Yrl5ubGysrKYr/73e9iK1asaLbe5ptvHhs3blxs+PDhsc6dO8c22WST2NSpU1usM3ny5PjXlZWV5nttuumm8e89cuTI2Lfffhtf54knnojtuuuusby8vFiPHj1iw4YNiz/31ltvxXbeeedYfn6+Xvhnlt1///2xkpKSFr/HcccdZ9a57777Wjz3xRdfxI4++uhYaWlprLCwMLbtttvGxo4dG2tsbGw1F/1d9PslPwBEQ5b+x+vGEgC8oteo6V2oOjYdAAQZN0oAiKQ1a9aYU7M6/tsOO+zg9eYAwAbjmjoAkXTPPfeYmxPGjh3bYtgTAAgiTr8CAACEAEfqAAAAQoCmDgAAIARo6gAAAEKApg4AACAEaOoAAABCgKYOAAAgBGjqAAAAQoCmDgAAQILv/wHYgLJO14id9gAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "policy = physbo.search.discrete_unified.Policy(test_X=test_X_KYMN, num_objectives=2)\n", "policy.set_seed(seed)\n", "\n", "unify_method = physbo.search.unify.ParEGO(num_objectives=2)\n", "\n", "policy.random_search(max_num_probes=num_random_search, simulator=simu_KYMN, is_disp=False)\n", "time_start = time.time()\n", "res_KYMN_ParEGO = policy.bayes_search(\n", " max_num_probes=num_bayes_search,\n", " simulator=simu_KYMN,\n", " unify_method=unify_method,\n", " score=\"EI\",\n", " interval=10,\n", " is_disp=False,\n", ")\n", "time_KYMN_ParEGO = time.time() - time_start\n", "VID_KYMN_ParEGO = res_KYMN_ParEGO.pareto.volume_in_dominance(\n", " fn_KYMN.reference_min, fn_KYMN.reference_max\n", ")\n", "VID_KYMN_ParEGO\n", "fig, ax = plt.subplots(figsize=(7, 7))\n", "physbo.search.utility.plot_pareto_front_all(\n", " res_KYMN_ParEGO, ax=ax, steps_end=num_random_search, style_common={\"marker\": \"+\"}\n", ")\n", "physbo.search.utility.plot_pareto_front_all(\n", " res_KYMN_ParEGO, ax=ax, steps_begin=num_random_search\n", ")\n", "ax.set_xlim(-60, 10)\n", "ax.set_ylim(-10, 8)\n", "ax.set_title(\"ParEGO\")\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### NDS" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 1.0, 'NDS')" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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x/pcR2bOnGmOAqarrKzMw1YCAAC09+mnn0p5ebmEtqmbNm2azJo1q9N1li1bJnvssUfetuHiiy+W888/v/Xj9evXyw477GBuuuhpuHH6K0Ob4JUrVzI+EblRawHEPkpm1Fpw6RnC7bffXgYNGtTjr+VrU3fBBRfIpEmTOl1np512yupr6Q0S//nPf9osW7NmTetzHenbt695pNOGjgEUc6N5kVnuyI3MXKHWyIxaC65evXqFu6kbOnSoedigd8XqsCcff/yxGc5ELVy40LyI7bXXXla+BwAAQFCF5po6PR362Wefmbc6fMkrr7xilu+yyy7mVv0jjjjCNG8nn3yyXHvtteY6ul/84hcyefLkjEfiAAAAoiQ0Td1ll10mf/zjH1s/9u5mXbRokYwZM8bcefn3v//d3O2qR+1KSkrk1FNPlSuuuCKn76MN4PTp02kEySzvqDUyc4VaIzNqLR77Z0HCxj20AAAA8FVoBh8GAABAx2jqAAAAIoCmDgAAIAJo6gAAACKApi7FP/7xDznwwAOlX79+MnDgQDn++OPbhKXDqRx99NHSv39/MxbehRdeKE1NTRJno0aNkoKCgjaPa665ps06//3vf2X06NFSXFxsZp7QIWeQnHd43333NZl5Q/SQWceOPfZYM+q61tHw4cPN8EUfffQRuXVgxYoVcvrpp8uOO+5oXtN23nlnc4ddY2MjmXVBxzw9+OCDzWt9RUVFxnX4fdDeLbfcYn4n6D6qv0vTJwSIu6eeekqOOeYY2W677czr/oMPPtjmeb1vVUf60Nc33WcPP/xweeedd3L6HjR1/3P//febXxKnnXaavPrqq/LMM8/IhAkTWoPSsfG0odMXxGeffdYMr3LXXXeZ/4C402FjqqurWx8//elP20xPpGMI6tRrL774olx33XVy+eWXy29+8xuJu5/97Gdm505HZpmNHTtW/vrXv8pbb71l9tf33ntPxo8fT24dePPNN6WlpUXuuOMOef311+XGG2+U22+/XX7+85+TWRf0df7EE080Q2Rlwu+D9u69914z5ab+4fDSSy/JF77wBTnyyCPNhABI2rBhg8lFm99M9IDHr3/9a7Of/vvf/zZDs2mGDQ0NkjUd0iTutmzZkhgxYkTit7/9bYfr/POf/0z06tUrsXr16tZlt912W6KsrCyxefPmRFztsMMOiRtvvLHD52+99dbEwIED22R00UUXJXbfffdEnGk97bHHHonXX39dhxRKvPzyy63PkVl2HnrooURBQUGisbGR3LJ07bXXJnbccUdqLUt/+MMfEuXl5e2W8/ugvQMOOCAxefLk1o+bm5sT2223XWLmzJnZxh0rIpJ44IEHWj9uaWlJbLvttonrrruuddn69esTffv2TcybNy/rr8uROhHzV0VVVZWZd00HNdZDn0cddZS89tprrc3v0qVLZZ999pFhw4a1LtMOWo+q6F/BcaanWwcPHmyy0yNxqaekNbevfe1r0qdPnza56dGWdevWSRzpnMRnnHGG/PnPfzand9KRWdd0dpm//OUv5hRZ7969yS2HicNTJw2n1rqH3wftj2zqmRg9XejR36f6sWaFri1fvtzMhJWaoc5Br6exc8mQpk5E3n//fROGnhbUqcV0Zgq9pk5nqtBfHkrDTm3olPexPhdX5557rtxzzz1mZo+zzjpLrr76anNa0UNubekfaJMmTZIf//jHsv/++2fMlMw6dtFFF5lTEvpHhF7T9NBDD5Fblt5991256aabzH5KrfUM+2hba9euNaekM/2OjPPvx1x4OfU0w0g3ddOmTWt3EX/6w7vuRF1yySVywgknyH777Sd/+MMfzPP33XefxE22uSm9hkKb389//vOmUbn++uvNLw69CSBOss1Ms6mrq5OLL77Y700OXa0pvTnp5ZdflkcffdRMDXjKKaeYRjlOcs1M6ZmIb37zm+Y6MT1KHEfdyQ0Im9DM/dodF1xwgTkq0pmddtrJXNyv9tprr9blOgebPqdHA9S2227b7k4ePY3mPRfH3DLRQ8V6+lXvvNt9991NNl5OUc4t28yeeOIJcyg9fY4/PWo3ceJEcwNOXDLrTq0NGTLEPHbbbTfZc889zd3Uzz33nJnvOS655ZqZ3iGsN5noqer0G5TikllPX9fSxen3QTZ0n9Q/sjLVUhzz6A4vJ81MLwHz6Mc6SkK2It3UDR061Dy6okfm9JesXud1yCGHmGVbtmwxjYnetan0l4be5q538uhwJmrhwoVSVlbWphmMU26Z6NAcei2Fl5HmpkdANU/v2ifNTRs+PcUdt8z0zqYrr7yyzS9cvcZQ7xzThjhOmfW01rwj7N5R4bjklktmeoROGzrv7IPum6nikllPay1dnH4fZEOvmdYae/zxx1uHAtP9Uz/+yU9+4vfmhYIOPaSNnWbmNXF6zb7eBdvRXdgZWb+lI6SmTJli7oD917/+lXjzzTcTp59+emKbbbZJfPbZZ+b5pqamxN5775044ogjEq+88krikUceSQwdOjRx8cUXJ+Lq2WefNXe+ah7vvfde4u677zaZnHLKKW3u3hk2bFji5JNPTrz22muJe+65J9G/f//EHXfc4eu2B8Xy5cvb3f1KZu0999xziZtuusnktGLFisTjjz+eOPjggxM777xzoqGhgdwyWLVqVWKXXXZJHHbYYeb96urq1ge11rkPPvjA1NqMGTMSpaWl5n191NXVmef5fdCevrbrnZp33XVX4o033kiceeaZiYqKijYjRsRdXV1day3p6/4NN9xg3td6U9dcc43JTO/s/+9//5s47rjjzN3qmzZtyvp70NT9jw6LcMEFF5hGbsCAAYnDDz/cNCGp9JfJUUcdlejXr19iyJAhZn0dDiWuXnzxxcSBBx5obvkvLi5O7Lnnnomrr7669Zes59VXX00ccsghZofXxlkLFx03dWTWnr7AjR07NjFo0CBTR6NGjUr8+Mc/Ns0KuXU8HIfWVqYHmXXu1FNPzZjbokWLWtfh90F7+ofX9ttvn+jTp48Z4kT/GMNWWj+Z6krrzRvW5NJLLzUHQvR1Tv8ge+uttxK5KNB/8ndAEQAAAC5E+u5XAACAuKCpAwAAiACaOgAAgAigqQMAAIgAmjoAAIAIoKkDAACIAJo6AACACKCpAwAAiACaOgCRNWrUKJk9e3aP1+mpu+66SyoqKvL6PQCApg5A6KxcuVJ++MMfynbbbWcmE99hhx1kypQp8umnn+b8tZ5//nk588wzrW1bpibxe9/7nrz99tuSTw0NDTJp0iTZZ599pKioqHVidQDxQVMHIFTef/992X///eWdd96RefPmybvvviu33367PP7443LQQQfJZ599ltPXGzp0qPTv31/yqV+/frLNNtvk9Xs0Nzeb73PuuefK4YcfntfvBSCYaOoAhMrkyZPN0blHH31UDj30UNl+++3lqKOOkscee0yqqqrkkksuabN+XV2dnHTSSVJSUiIjRoyQW265pdMja+vXr5cf/ehHptkrKyuTr3/96/Lqq6+2+Zy//e1v8uUvf1mKi4tlyJAh8p3vfMcsHzNmjHzwwQdy3nnnSUFBgXmkn37VI3a6/M0332zzNW+88UbZeeedWz9+7bXXzM9VWloqw4YNk5NPPlnWrl3bYS768912221yxhlnyLbbbtuNZAGEHU0dgNDQo3D/+te/5JxzzjFHpVJpIzNx4kS59957JZFItC6/7rrr5Atf+IK8/PLLMm3aNHOaduHChR1+jxNPPFE+/vhjefjhh+XFF1+UL33pS3LYYYe1HgH8xz/+YZq4b33rW+Zr6hHCAw44wDy3YMECGTlypFxxxRVSXV1tHul22203c6TxL3/5S5vl+vGECRNaG0ttJr/4xS/KCy+8II888oisWbNGvvvd7/YwQQBRVuT3BgBAtvSUqzZse+65Z8bndfm6devkk08+aT3d+dWvftU0c15D9cwzz5ijYt/4xjfaff7TTz8t//nPf0xT17dvX7PsV7/6lTz44IMyf/58c+3dVVddJd///vdlxowZrZ+nTaMaNGiQFBYWyoABAzo9WqbN58033yy//OUvW4/eaQN59913m4/1OW3orr766tbP+f3vfy+VlZVmXf05ACAdR+oAhE7qkbiu6HV26R8vW7Ys47p6mrW+vl4GDx5sTnt6j+XLl8t7771n1nnllVfMkbue0KZwxYoV8txzz7UepdMjgnvssUfrdixatKjNNnjPedsBAOk4UgcgNHbZZRdzPZo2Zd51bKl0+cCBA831cN2hDd3w4cNl8eLF7Z7zrolLP+3bHXoUT0+vzp07V77yla+Yt2effXab7TjmmGNk1qxZ7T5Xtw8AMuFIHYDQ0CNoetr01ltvlU2bNrV5bvXq1eaIlw4f4t2goLyjYakfd3T6Vo+W6dfRIUG0gUx96A0R6vOf/7y5jq4jehOH3onaFe/6v6VLl5o7evXoXep2vP766+YmjvTt0BsiACATmjoAoaLXm23evFmOPPJIeeqpp8yYdXojgTZ7enerXvOWSq+hu/baa821aHrn63333WdulshEhwLR07M6xpveXaunSJ999llzR63esKCmT59uhlLRt3pk8P/+7//aHFHTRky3S+/E7exu1XHjxpk7c/UI3dixY82Ye6l3+OqNGXrXro6jp6dc9QaR0047rdOG8Y033jCnh/Vza2pqzPv6ABATCQAImRUrViROPfXUxLBhwxK9e/dOVFZWJn76058m1q5d22a9HXbYITFjxozEiSeemOjfv39i2223TcyZM6fdOjfeeGPrx7W1teZrbbfddq1fe+LEiYkPP/ywdZ37778/se+++yb69OmTGDJkSGLcuHGtzy1dujTx+c9/PtG3b1+98M8s+8Mf/pAoLy9v93N897vfNev8/ve/b/fc22+/nfjOd76TqKioSPTr1y+xxx57JKZOnZpoaWnpMBf9WfTrpT8AxEOB/uN3YwkAftFr1PQuVB2bDgDCjBslAMTSxo0bzalZHf/tc5/7nN+bAwA9xjV1AGLpN7/5jbk5YerUqe2GPQGAMOL0KwAAQARwpA4AACACaOoAAAAigKYOAAAgAmjqAAAAIoCmDgAAIAJo6gAAACKApg4AACACaOoAAAAk/P4/EUr5E+dx83wAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "policy = physbo.search.discrete_unified.Policy(test_X=test_X_KYMN, num_objectives=2)\n", "policy.set_seed(seed)\n", "\n", "unify_method = physbo.search.unify.NDS(num_objectives=2)\n", "\n", "policy.random_search(max_num_probes=num_random_search, simulator=simu_KYMN, is_disp=False)\n", "time_start = time.time()\n", "res_KYMN_NDS = policy.bayes_search(\n", " max_num_probes=num_bayes_search,\n", " simulator=simu_KYMN,\n", " unify_method=unify_method,\n", " score=\"EI\",\n", " interval=10,\n", " is_disp=False,\n", ")\n", "time_KYMN_NDS = time.time() - time_start\n", "VID_KYMN_NDS = res_KYMN_NDS.pareto.volume_in_dominance(\n", " fn_KYMN.reference_min, fn_KYMN.reference_max\n", ")\n", "VID_KYMN_NDS\n", "fig, ax = plt.subplots(figsize=(7, 7))\n", "physbo.search.utility.plot_pareto_front_all(\n", " res_KYMN_NDS, ax=ax, steps_end=num_random_search, style_common={\"marker\": \"+\"}\n", ")\n", "physbo.search.utility.plot_pareto_front_all(\n", " res_KYMN_NDS, ax=ax, steps_begin=num_random_search\n", ")\n", "ax.set_xlim(-60, 10)\n", "ax.set_ylim(-10, 8)\n", "ax.set_title(\"NDS\")\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Comparison of Results" ] }, { "cell_type": "code", "execution_count": 19, "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", "
AlgorithmComputation TimeVolume of Dominance Region
0NDS1.795565970.781427
1ParEGO1.856020975.909589
2HVPI3.944062932.139351
\n", "
" ], "text/plain": [ " Algorithm Computation Time Volume of Dominance Region\n", "0 NDS 1.795565 970.781427\n", "1 ParEGO 1.856020 975.909589\n", "2 HVPI 3.944062 932.139351" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pd.DataFrame({\n", " \"Algorithm\": [\"NDS\", \"ParEGO\", \"HVPI\"],\n", " \"Computation Time\": [time_KYMN_NDS, time_KYMN_ParEGO, time_KYMN_HVPI],\n", " \"Volume of Dominance Region\": [VID_KYMN_NDS, VID_KYMN_ParEGO, VID_KYMN_HVPI]\n", "})\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In this case, ParEGO works better than NDS and HVPI." ] } ], "metadata": { "kernelspec": { "display_name": ".venv", "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.11.14" } }, "nbformat": 4, "nbformat_minor": 4 }