Running BOA Optimization Directly in Python#
This notebook demonstrates how to:
Write a basic Wrapper in Python and launch a optimization from Python. If you wanted to launch it from command line, you would do a similar thing of defining the Wrapper, and then put in your configuration file the information about where the wrapper is, and use BOA’s CLI tools. See Running an Experiment from Command Line (Python Wrapper) for more information.
1import pathlib
2import shutil
3
4from IPython.display import Code
5from wrapper import Wrapper
6
7import boa
[WARNING 08-09 18:49:37] ax.service.utils.with_db_settings_base: Ax currently requires a sqlalchemy version below 2.0. This will be addressed in a future release. Disabling SQL storage in Ax for now, if you would like to use SQL storage please install Ax with mysql extras via `pip install ax-platform[mysql]`.
Show code cell content
1# Remove old runs to have a clean slate for this example
2old_runs = pathlib.Path().resolve().glob("boa_runs*")
3for path in old_runs:
4 shutil.rmtree(path)
Loading the Config File#
1config_path = pathlib.Path().resolve() / "single_config.yaml"
Here we can see what the configuration file looks like
1Code(config_path)
# Single objective optimization config
optimization_options:
objective_options:
objectives:
- name: Cosine8
trials: 50
append_timestamp: False
parameters:
x0:
type: range
bounds: [0.0, 1.0]
x1:
type: range
bounds: [0.0, 1.0]
x2:
type: range
bounds: [0.0, 1.0]
x3:
type: range
bounds: [0.0, 1.0]
x4:
type: range
bounds: [0.0, 1.0]
x5:
type: range
bounds: [0.0, 1.0]
x6:
type: range
bounds: [0.0, 1.0]
x7:
type: range
bounds: [0.0, 1.0]
# These are all defaults, so we don't need to specify them in this case
#script_options:
# wrapper_path: ./wrapper.py
# wrapper_name: Wrapper
# working_dir: .
# experiment_dir: ... # this is where boa will write logs to by default
# if not specified it will be working_dir/experiment_name
# append_timestamp: True
# This last option appends a timestamp to our output experiment directory.
# This is also the default (True)
we need the config normalized, which modifies the parameter section into a less user friendly form, but what the downstream libraries need
1config = boa.load_jsonlike(config_path)
Define Our Wrapper#
We define our wrapper in wrapper.py and use a synthetic function that stands in for any black box model call
1Code(Wrapper.path())
import numpy as np
from ax.utils.measurement.synthetic_functions import from_botorch
from botorch.test_functions.synthetic import Cosine8
import boa
cosine8 = from_botorch(Cosine8())
def black_box_model(X) -> float:
result = -cosine8(X)
return result
class Wrapper(boa.BaseWrapper):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.data = {}
def run_model(self, trial) -> None:
X = np.array([parameter for parameter in trial.arm.parameters.values()])
# This is a silly toy function, in reality,
# you could instead import your model main() function and use that, and then collect the results.
# You could also call an external script to start a model run from Bash or elsewhere.
self.data[trial.index] = black_box_model(X)
def set_trial_status(self, trial) -> None:
data_exists = self.data.get(trial.index)
if data_exists:
trial.mark_completed()
def fetch_trial_data(self, trial, *args, **kwargs):
return self.data[trial.index]
Initialize our Setup#
1controller = boa.Controller(config_path=config_path, wrapper=Wrapper)
2
3controller.initialize_scheduler()
[INFO 08-09 18:49:38] ax.service.utils.instantiation: Inferred value type of ParameterType.FLOAT for parameter x0. If that is not the expected value type, you can explicity specify 'value_type' ('int', 'float', 'bool' or 'str') in parameter dict.
[INFO 08-09 18:49:38] ax.service.utils.instantiation: Inferred value type of ParameterType.FLOAT for parameter x1. If that is not the expected value type, you can explicity specify 'value_type' ('int', 'float', 'bool' or 'str') in parameter dict.
[INFO 08-09 18:49:38] ax.service.utils.instantiation: Inferred value type of ParameterType.FLOAT for parameter x2. If that is not the expected value type, you can explicity specify 'value_type' ('int', 'float', 'bool' or 'str') in parameter dict.
[INFO 08-09 18:49:38] ax.service.utils.instantiation: Inferred value type of ParameterType.FLOAT for parameter x3. If that is not the expected value type, you can explicity specify 'value_type' ('int', 'float', 'bool' or 'str') in parameter dict.
[INFO 08-09 18:49:38] ax.service.utils.instantiation: Inferred value type of ParameterType.FLOAT for parameter x4. If that is not the expected value type, you can explicity specify 'value_type' ('int', 'float', 'bool' or 'str') in parameter dict.
[INFO 08-09 18:49:38] ax.service.utils.instantiation: Inferred value type of ParameterType.FLOAT for parameter x5. If that is not the expected value type, you can explicity specify 'value_type' ('int', 'float', 'bool' or 'str') in parameter dict.
[INFO 08-09 18:49:38] ax.service.utils.instantiation: Inferred value type of ParameterType.FLOAT for parameter x6. If that is not the expected value type, you can explicity specify 'value_type' ('int', 'float', 'bool' or 'str') in parameter dict.
[INFO 08-09 18:49:38] ax.service.utils.instantiation: Inferred value type of ParameterType.FLOAT for parameter x7. If that is not the expected value type, you can explicity specify 'value_type' ('int', 'float', 'bool' or 'str') in parameter dict.
[INFO 08-09 18:49:38] ax.service.utils.instantiation: Created search space: SearchSpace(parameters=[RangeParameter(name='x0', parameter_type=FLOAT, range=[0.0, 1.0]), RangeParameter(name='x1', parameter_type=FLOAT, range=[0.0, 1.0]), RangeParameter(name='x2', parameter_type=FLOAT, range=[0.0, 1.0]), RangeParameter(name='x3', parameter_type=FLOAT, range=[0.0, 1.0]), RangeParameter(name='x4', parameter_type=FLOAT, range=[0.0, 1.0]), RangeParameter(name='x5', parameter_type=FLOAT, range=[0.0, 1.0]), RangeParameter(name='x6', parameter_type=FLOAT, range=[0.0, 1.0]), RangeParameter(name='x7', parameter_type=FLOAT, range=[0.0, 1.0])], parameter_constraints=[]).
[INFO 08-09 18:49:38] ax.modelbridge.dispatch_utils: Using Models.GPEI since there are more ordered parameters than there are categories for the unordered categorical parameters.
[INFO 08-09 18:49:38] ax.modelbridge.dispatch_utils: Calculating the number of remaining initialization trials based on num_initialization_trials=None max_initialization_trials=None num_tunable_parameters=8 num_trials=None use_batch_trials=False
[INFO 08-09 18:49:38] ax.modelbridge.dispatch_utils: calculated num_initialization_trials=16
[INFO 08-09 18:49:38] ax.modelbridge.dispatch_utils: num_completed_initialization_trials=0 num_remaining_initialization_trials=16
[INFO 08-09 18:49:38] ax.modelbridge.dispatch_utils: Using Bayesian Optimization generation strategy: GenerationStrategy(name='Sobol+GPEI', steps=[Sobol for 16 trials, GPEI for subsequent trials]). Iterations after 16 will take longer to generate due to model-fitting.
[INFO 08-09 18:49:38] Scheduler: `Scheduler` requires experiment to have immutable search space and optimization config. Setting property immutable_search_space_and_opt_config to `True` on experiment.
(Scheduler(experiment=Experiment(boa_runs), generation_strategy=GenerationStrategy(name='Sobol+GPEI', steps=[Sobol for 16 trials, GPEI for subsequent trials]), options=SchedulerOptions(max_pending_trials=10, trial_type=<TrialType.TRIAL: 0>, batch_size=None, total_trials=None, tolerated_trial_failure_rate=0.5, min_failed_trials_for_failure_rate_check=5, log_filepath=None, logging_level=20, ttl_seconds_for_trials=None, init_seconds_between_polls=1, min_seconds_before_poll=1.0, seconds_between_polls_backoff_factor=1.5, timeout_hours=None, run_trials_in_batches=False, debug_log_run_metadata=False, early_stopping_strategy=None, global_stopping_strategy=None, suppress_storage_errors_after_retries=False)),
<wrapper.Wrapper at 0x7f541ddb1bd0>)
Run our Experiment#
The Controller will save our scheduler to JSON after it completes the run so we can reload it at a later time for analysis or to resume our experiment
1scheduler = controller.run()
[INFO 2023-08-09 18:49:38,676 MainProcess] boa:
##############################################
BOA Experiment Run
Output Experiment Dir: /home/docs/checkouts/readthedocs.org/user_builds/boa-framework/checkouts/0.8.7/docs/examples/boa_runs_20230809T184938
Start Time: 20230809T184938
Version: 0.8.8.dev0+gd6e453f.d20230809
##############################################
[INFO 08-09 18:49:38] Scheduler: Running trials [0]...
[INFO 08-09 18:49:39] Scheduler: Running trials [1]...
[INFO 08-09 18:49:40] Scheduler: Running trials [2]...
[INFO 08-09 18:49:41] Scheduler: Running trials [3]...
[INFO 08-09 18:49:41] Scheduler: Running trials [4]...
[INFO 08-09 18:49:42] Scheduler: Running trials [5]...
[INFO 08-09 18:49:43] Scheduler: Running trials [6]...
[INFO 08-09 18:49:44] Scheduler: Running trials [7]...
[INFO 08-09 18:49:45] Scheduler: Running trials [8]...
[INFO 08-09 18:49:46] Scheduler: Running trials [9]...
[INFO 08-09 18:49:47] Scheduler: Retrieved COMPLETED trials: 0 - 9.
[INFO 08-09 18:49:47] Scheduler: Fetching data for trials: 0 - 9.
[ERROR 2023-08-09 18:49:47,901 MainProcess] boa: Object <wrapper.Wrapper object at 0x7f541ddb1bd0> passed to `object_to_json` (of type <class 'wrapper.Wrapper'>, module: wrapper) is not registered with a corresponding encoder in ENCODER_REGISTRY.
[INFO 2023-08-09 18:49:47,919 MainProcess] boa: Saved JSON-serialized state of optimization to `/home/docs/checkouts/readthedocs.org/user_builds/boa-framework/checkouts/0.8.7/docs/examples/boa_runs_20230809T184938/scheduler.json`.
Boa version: 0.8.8.dev0+gd6e453f.d20230809
[INFO 2023-08-09 18:49:47,939 MainProcess] boa: Saved optimization parametrization and objective to `/home/docs/checkouts/readthedocs.org/user_builds/boa-framework/checkouts/0.8.7/docs/examples/boa_runs_20230809T184938/optimization.csv`.
[INFO 2023-08-09 18:49:47,955 MainProcess] boa: Trials so far: 10
Running trials:
Will Produce next trials from generation step: Sobol
Best trial so far: {3: {'Cosine8': 1.139333772574159}}
[INFO 08-09 18:49:47] Scheduler: Running trials [10]...
[INFO 08-09 18:49:48] Scheduler: Running trials [11]...
[INFO 08-09 18:49:49] Scheduler: Running trials [12]...
[INFO 08-09 18:49:50] Scheduler: Running trials [13]...
[INFO 08-09 18:49:51] Scheduler: Running trials [14]...
[INFO 08-09 18:49:52] Scheduler: Running trials [15]...
[INFO 08-09 18:49:54] Scheduler: Running trials [16]...
[INFO 08-09 18:49:55] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-09 18:49:57] Scheduler: Running trials [17]...
[INFO 08-09 18:49:58] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-09 18:50:01] Scheduler: Running trials [18]...
[INFO 08-09 18:50:01] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-09 18:50:01] Scheduler: Generated all trials that can be generated currently. Max parallelism currently reached.
[INFO 08-09 18:50:01] Scheduler: Retrieved COMPLETED trials: 10 - 18.
[INFO 08-09 18:50:01] Scheduler: Fetching data for trials: 10 - 18.
[ERROR 2023-08-09 18:50:01,107 MainProcess] boa: Object <wrapper.Wrapper object at 0x7f541ddb1bd0> passed to `object_to_json` (of type <class 'wrapper.Wrapper'>, module: wrapper) is not registered with a corresponding encoder in ENCODER_REGISTRY.
[INFO 2023-08-09 18:50:01,133 MainProcess] boa: Saved JSON-serialized state of optimization to `/home/docs/checkouts/readthedocs.org/user_builds/boa-framework/checkouts/0.8.7/docs/examples/boa_runs_20230809T184938/scheduler.json`.
Boa version: 0.8.8.dev0+gd6e453f.d20230809
[INFO 2023-08-09 18:50:01,154 MainProcess] boa: Saved optimization parametrization and objective to `/home/docs/checkouts/readthedocs.org/user_builds/boa-framework/checkouts/0.8.7/docs/examples/boa_runs_20230809T184938/optimization.csv`.
[INFO 2023-08-09 18:50:01,173 MainProcess] boa: Trials so far: 19
Running trials:
Will Produce next trials from generation step: GPEI
Best trial so far: {17: {'Cosine8': 1.119930932920257}}
[INFO 08-09 18:50:02] Scheduler: Running trials [19]...
[INFO 08-09 18:50:02] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-09 18:50:04] Scheduler: Running trials [20]...
[INFO 08-09 18:50:05] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-09 18:50:07] Scheduler: Running trials [21]...
[INFO 08-09 18:50:08] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-09 18:50:08] Scheduler: Generated all trials that can be generated currently. Max parallelism currently reached.
[INFO 08-09 18:50:08] Scheduler: Retrieved COMPLETED trials: 19 - 21.
[INFO 08-09 18:50:08] Scheduler: Fetching data for trials: 19 - 21.
[ERROR 2023-08-09 18:50:08,294 MainProcess] boa: Object <wrapper.Wrapper object at 0x7f541ddb1bd0> passed to `object_to_json` (of type <class 'wrapper.Wrapper'>, module: wrapper) is not registered with a corresponding encoder in ENCODER_REGISTRY.
[INFO 2023-08-09 18:50:08,321 MainProcess] boa: Saved JSON-serialized state of optimization to `/home/docs/checkouts/readthedocs.org/user_builds/boa-framework/checkouts/0.8.7/docs/examples/boa_runs_20230809T184938/scheduler.json`.
Boa version: 0.8.8.dev0+gd6e453f.d20230809
[INFO 2023-08-09 18:50:08,342 MainProcess] boa: Saved optimization parametrization and objective to `/home/docs/checkouts/readthedocs.org/user_builds/boa-framework/checkouts/0.8.7/docs/examples/boa_runs_20230809T184938/optimization.csv`.
[INFO 2023-08-09 18:50:08,362 MainProcess] boa: Trials so far: 22
Running trials:
Will Produce next trials from generation step: GPEI
Best trial so far: {21: {'Cosine8': 1.0600801864551574}}
[INFO 08-09 18:50:10] Scheduler: Running trials [22]...
[INFO 08-09 18:50:11] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-09 18:50:13] Scheduler: Running trials [23]...
[INFO 08-09 18:50:14] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-09 18:50:17] Scheduler: Running trials [24]...
[INFO 08-09 18:50:18] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-09 18:50:18] Scheduler: Generated all trials that can be generated currently. Max parallelism currently reached.
[INFO 08-09 18:50:18] Scheduler: Retrieved COMPLETED trials: 22 - 24.
[INFO 08-09 18:50:18] Scheduler: Fetching data for trials: 22 - 24.
[ERROR 2023-08-09 18:50:18,441 MainProcess] boa: Object <wrapper.Wrapper object at 0x7f541ddb1bd0> passed to `object_to_json` (of type <class 'wrapper.Wrapper'>, module: wrapper) is not registered with a corresponding encoder in ENCODER_REGISTRY.
[INFO 2023-08-09 18:50:18,472 MainProcess] boa: Saved JSON-serialized state of optimization to `/home/docs/checkouts/readthedocs.org/user_builds/boa-framework/checkouts/0.8.7/docs/examples/boa_runs_20230809T184938/scheduler.json`.
Boa version: 0.8.8.dev0+gd6e453f.d20230809
[INFO 2023-08-09 18:50:18,493 MainProcess] boa: Saved optimization parametrization and objective to `/home/docs/checkouts/readthedocs.org/user_builds/boa-framework/checkouts/0.8.7/docs/examples/boa_runs_20230809T184938/optimization.csv`.
[INFO 2023-08-09 18:50:18,514 MainProcess] boa: Trials so far: 25
Running trials:
Will Produce next trials from generation step: GPEI
Best trial so far: {22: {'Cosine8': 0.7891321801673586}}
[INFO 08-09 18:50:19] Scheduler: Running trials [25]...
[INFO 08-09 18:50:20] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-09 18:50:22] Scheduler: Running trials [26]...
[INFO 08-09 18:50:23] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-09 18:50:27] Scheduler: Running trials [27]...
[INFO 08-09 18:50:28] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-09 18:50:28] Scheduler: Generated all trials that can be generated currently. Max parallelism currently reached.
[INFO 08-09 18:50:28] Scheduler: Retrieved COMPLETED trials: 25 - 27.
[INFO 08-09 18:50:28] Scheduler: Fetching data for trials: 25 - 27.
[ERROR 2023-08-09 18:50:28,620 MainProcess] boa: Object <wrapper.Wrapper object at 0x7f541ddb1bd0> passed to `object_to_json` (of type <class 'wrapper.Wrapper'>, module: wrapper) is not registered with a corresponding encoder in ENCODER_REGISTRY.
[INFO 2023-08-09 18:50:28,652 MainProcess] boa: Saved JSON-serialized state of optimization to `/home/docs/checkouts/readthedocs.org/user_builds/boa-framework/checkouts/0.8.7/docs/examples/boa_runs_20230809T184938/scheduler.json`.
Boa version: 0.8.8.dev0+gd6e453f.d20230809
[INFO 2023-08-09 18:50:28,674 MainProcess] boa: Saved optimization parametrization and objective to `/home/docs/checkouts/readthedocs.org/user_builds/boa-framework/checkouts/0.8.7/docs/examples/boa_runs_20230809T184938/optimization.csv`.
[INFO 2023-08-09 18:50:28,695 MainProcess] boa: Trials so far: 28
Running trials:
Will Produce next trials from generation step: GPEI
Best trial so far: {25: {'Cosine8': 0.5134810649383581}}
[INFO 08-09 18:50:29] Scheduler: Running trials [28]...
[INFO 08-09 18:50:30] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-09 18:50:32] Scheduler: Running trials [29]...
[INFO 08-09 18:50:33] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-09 18:50:35] Scheduler: Running trials [30]...
[INFO 08-09 18:50:36] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-09 18:50:36] Scheduler: Generated all trials that can be generated currently. Max parallelism currently reached.
[INFO 08-09 18:50:36] Scheduler: Retrieved COMPLETED trials: 28 - 30.
[INFO 08-09 18:50:36] Scheduler: Fetching data for trials: 28 - 30.
[ERROR 2023-08-09 18:50:36,322 MainProcess] boa: Object <wrapper.Wrapper object at 0x7f541ddb1bd0> passed to `object_to_json` (of type <class 'wrapper.Wrapper'>, module: wrapper) is not registered with a corresponding encoder in ENCODER_REGISTRY.
[INFO 2023-08-09 18:50:36,357 MainProcess] boa: Saved JSON-serialized state of optimization to `/home/docs/checkouts/readthedocs.org/user_builds/boa-framework/checkouts/0.8.7/docs/examples/boa_runs_20230809T184938/scheduler.json`.
Boa version: 0.8.8.dev0+gd6e453f.d20230809
[INFO 2023-08-09 18:50:36,380 MainProcess] boa: Saved optimization parametrization and objective to `/home/docs/checkouts/readthedocs.org/user_builds/boa-framework/checkouts/0.8.7/docs/examples/boa_runs_20230809T184938/optimization.csv`.
[INFO 2023-08-09 18:50:36,553 MainProcess] boa: Trials so far: 31
Running trials:
Will Produce next trials from generation step: GPEI
Best trial so far: {28: {'Cosine8': 0.4484207544388502}}
[INFO 08-09 18:50:37] Scheduler: Running trials [31]...
[INFO 08-09 18:50:38] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-09 18:50:39] Scheduler: Running trials [32]...
[INFO 08-09 18:50:40] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-09 18:50:42] Scheduler: Running trials [33]...
[INFO 08-09 18:50:43] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-09 18:50:43] Scheduler: Generated all trials that can be generated currently. Max parallelism currently reached.
[INFO 08-09 18:50:43] Scheduler: Retrieved COMPLETED trials: 31 - 33.
[INFO 08-09 18:50:43] Scheduler: Fetching data for trials: 31 - 33.
[ERROR 2023-08-09 18:50:43,238 MainProcess] boa: Object <wrapper.Wrapper object at 0x7f541ddb1bd0> passed to `object_to_json` (of type <class 'wrapper.Wrapper'>, module: wrapper) is not registered with a corresponding encoder in ENCODER_REGISTRY.
[INFO 2023-08-09 18:50:43,276 MainProcess] boa: Saved JSON-serialized state of optimization to `/home/docs/checkouts/readthedocs.org/user_builds/boa-framework/checkouts/0.8.7/docs/examples/boa_runs_20230809T184938/scheduler.json`.
Boa version: 0.8.8.dev0+gd6e453f.d20230809
[INFO 2023-08-09 18:50:43,299 MainProcess] boa: Saved optimization parametrization and objective to `/home/docs/checkouts/readthedocs.org/user_builds/boa-framework/checkouts/0.8.7/docs/examples/boa_runs_20230809T184938/optimization.csv`.
[INFO 2023-08-09 18:50:43,321 MainProcess] boa: Trials so far: 34
Running trials:
Will Produce next trials from generation step: GPEI
Best trial so far: {31: {'Cosine8': 0.44785990722258595}}
[INFO 08-09 18:50:45] Scheduler: Running trials [34]...
[INFO 08-09 18:50:45] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-09 18:50:45] Scheduler: Running trials [35]...
[INFO 08-09 18:50:45] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-09 18:50:48] Scheduler: Running trials [36]...
[INFO 08-09 18:50:49] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-09 18:50:49] Scheduler: Generated all trials that can be generated currently. Max parallelism currently reached.
[INFO 08-09 18:50:49] Scheduler: Retrieved COMPLETED trials: 34 - 36.
[INFO 08-09 18:50:49] Scheduler: Fetching data for trials: 34 - 36.
[ERROR 2023-08-09 18:50:49,216 MainProcess] boa: Object <wrapper.Wrapper object at 0x7f541ddb1bd0> passed to `object_to_json` (of type <class 'wrapper.Wrapper'>, module: wrapper) is not registered with a corresponding encoder in ENCODER_REGISTRY.
[INFO 2023-08-09 18:50:49,260 MainProcess] boa: Saved JSON-serialized state of optimization to `/home/docs/checkouts/readthedocs.org/user_builds/boa-framework/checkouts/0.8.7/docs/examples/boa_runs_20230809T184938/scheduler.json`.
Boa version: 0.8.8.dev0+gd6e453f.d20230809
[INFO 2023-08-09 18:50:49,284 MainProcess] boa: Saved optimization parametrization and objective to `/home/docs/checkouts/readthedocs.org/user_builds/boa-framework/checkouts/0.8.7/docs/examples/boa_runs_20230809T184938/optimization.csv`.
[INFO 2023-08-09 18:50:49,309 MainProcess] boa: Trials so far: 37
Running trials:
Will Produce next trials from generation step: GPEI
Best trial so far: {34: {'Cosine8': 0.4333101574167575}}
[INFO 08-09 18:50:50] Scheduler: Running trials [37]...
[INFO 08-09 18:50:51] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-09 18:50:51] Scheduler: Running trials [38]...
[INFO 08-09 18:50:52] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-09 18:50:54] Scheduler: Running trials [39]...
[INFO 08-09 18:50:55] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-09 18:50:55] Scheduler: Generated all trials that can be generated currently. Max parallelism currently reached.
[INFO 08-09 18:50:55] Scheduler: Retrieved COMPLETED trials: 37 - 39.
[INFO 08-09 18:50:55] Scheduler: Fetching data for trials: 37 - 39.
[ERROR 2023-08-09 18:50:55,458 MainProcess] boa: Object <wrapper.Wrapper object at 0x7f541ddb1bd0> passed to `object_to_json` (of type <class 'wrapper.Wrapper'>, module: wrapper) is not registered with a corresponding encoder in ENCODER_REGISTRY.
[INFO 2023-08-09 18:50:55,502 MainProcess] boa: Saved JSON-serialized state of optimization to `/home/docs/checkouts/readthedocs.org/user_builds/boa-framework/checkouts/0.8.7/docs/examples/boa_runs_20230809T184938/scheduler.json`.
Boa version: 0.8.8.dev0+gd6e453f.d20230809
[INFO 2023-08-09 18:50:55,526 MainProcess] boa: Saved optimization parametrization and objective to `/home/docs/checkouts/readthedocs.org/user_builds/boa-framework/checkouts/0.8.7/docs/examples/boa_runs_20230809T184938/optimization.csv`.
[INFO 2023-08-09 18:50:55,553 MainProcess] boa: Trials so far: 40
Running trials:
Will Produce next trials from generation step: GPEI
Best trial so far: {39: {'Cosine8': 0.4060596443560801}}
[INFO 08-09 18:50:57] Scheduler: Running trials [40]...
[INFO 08-09 18:50:58] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-09 18:50:58] Scheduler: Running trials [41]...
[INFO 08-09 18:50:59] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-09 18:51:00] Scheduler: Running trials [42]...
[INFO 08-09 18:51:01] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-09 18:51:01] Scheduler: Generated all trials that can be generated currently. Max parallelism currently reached.
[INFO 08-09 18:51:01] Scheduler: Retrieved COMPLETED trials: 40 - 42.
[INFO 08-09 18:51:01] Scheduler: Fetching data for trials: 40 - 42.
[ERROR 2023-08-09 18:51:01,077 MainProcess] boa: Object <wrapper.Wrapper object at 0x7f541ddb1bd0> passed to `object_to_json` (of type <class 'wrapper.Wrapper'>, module: wrapper) is not registered with a corresponding encoder in ENCODER_REGISTRY.
[INFO 2023-08-09 18:51:01,124 MainProcess] boa: Saved JSON-serialized state of optimization to `/home/docs/checkouts/readthedocs.org/user_builds/boa-framework/checkouts/0.8.7/docs/examples/boa_runs_20230809T184938/scheduler.json`.
Boa version: 0.8.8.dev0+gd6e453f.d20230809
[INFO 2023-08-09 18:51:01,149 MainProcess] boa: Saved optimization parametrization and objective to `/home/docs/checkouts/readthedocs.org/user_builds/boa-framework/checkouts/0.8.7/docs/examples/boa_runs_20230809T184938/optimization.csv`.
[INFO 2023-08-09 18:51:01,175 MainProcess] boa: Trials so far: 43
Running trials:
Will Produce next trials from generation step: GPEI
Best trial so far: {41: {'Cosine8': 0.3674066161218279}}
[INFO 08-09 18:51:05] Scheduler: Running trials [43]...
[INFO 08-09 18:51:06] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-09 18:51:06] Scheduler: Running trials [44]...
[INFO 08-09 18:51:07] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-09 18:51:11] Scheduler: Running trials [45]...
[INFO 08-09 18:51:12] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-09 18:51:12] Scheduler: Generated all trials that can be generated currently. Max parallelism currently reached.
[INFO 08-09 18:51:12] Scheduler: Retrieved COMPLETED trials: 43 - 45.
[INFO 08-09 18:51:12] Scheduler: Fetching data for trials: 43 - 45.
[ERROR 2023-08-09 18:51:12,278 MainProcess] boa: Object <wrapper.Wrapper object at 0x7f541ddb1bd0> passed to `object_to_json` (of type <class 'wrapper.Wrapper'>, module: wrapper) is not registered with a corresponding encoder in ENCODER_REGISTRY.
[INFO 2023-08-09 18:51:12,329 MainProcess] boa: Saved JSON-serialized state of optimization to `/home/docs/checkouts/readthedocs.org/user_builds/boa-framework/checkouts/0.8.7/docs/examples/boa_runs_20230809T184938/scheduler.json`.
Boa version: 0.8.8.dev0+gd6e453f.d20230809
[INFO 2023-08-09 18:51:12,355 MainProcess] boa: Saved optimization parametrization and objective to `/home/docs/checkouts/readthedocs.org/user_builds/boa-framework/checkouts/0.8.7/docs/examples/boa_runs_20230809T184938/optimization.csv`.
[INFO 2023-08-09 18:51:12,384 MainProcess] boa: Trials so far: 46
Running trials:
Will Produce next trials from generation step: GPEI
Best trial so far: {44: {'Cosine8': 0.10010380031288793}}
[INFO 08-09 18:51:12] Scheduler: Running trials [46]...
[INFO 08-09 18:51:13] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-09 18:51:14] Scheduler: Running trials [47]...
[INFO 08-09 18:51:15] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-09 18:51:15] Scheduler: Running trials [48]...
[INFO 08-09 18:51:16] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-09 18:51:16] Scheduler: Generated all trials that can be generated currently. Max parallelism currently reached.
[INFO 08-09 18:51:16] Scheduler: Retrieved COMPLETED trials: 46 - 48.
[INFO 08-09 18:51:16] Scheduler: Fetching data for trials: 46 - 48.
[ERROR 2023-08-09 18:51:16,449 MainProcess] boa: Object <wrapper.Wrapper object at 0x7f541ddb1bd0> passed to `object_to_json` (of type <class 'wrapper.Wrapper'>, module: wrapper) is not registered with a corresponding encoder in ENCODER_REGISTRY.
[INFO 2023-08-09 18:51:16,502 MainProcess] boa: Saved JSON-serialized state of optimization to `/home/docs/checkouts/readthedocs.org/user_builds/boa-framework/checkouts/0.8.7/docs/examples/boa_runs_20230809T184938/scheduler.json`.
Boa version: 0.8.8.dev0+gd6e453f.d20230809
[INFO 2023-08-09 18:51:16,528 MainProcess] boa: Saved optimization parametrization and objective to `/home/docs/checkouts/readthedocs.org/user_builds/boa-framework/checkouts/0.8.7/docs/examples/boa_runs_20230809T184938/optimization.csv`.
[INFO 2023-08-09 18:51:16,556 MainProcess] boa: Trials so far: 49
Running trials:
Will Produce next trials from generation step: GPEI
Best trial so far: {46: {'Cosine8': 0.033642697566612145}}
[INFO 08-09 18:51:17] Scheduler: Running trials [49]...
[INFO 08-09 18:51:18] Scheduler: Retrieved COMPLETED trials: [49].
[INFO 08-09 18:51:18] Scheduler: Fetching data for trials: [49].
[ERROR 2023-08-09 18:51:18,162 MainProcess] boa: Object <wrapper.Wrapper object at 0x7f541ddb1bd0> passed to `object_to_json` (of type <class 'wrapper.Wrapper'>, module: wrapper) is not registered with a corresponding encoder in ENCODER_REGISTRY.
[INFO 2023-08-09 18:51:18,215 MainProcess] boa: Saved JSON-serialized state of optimization to `/home/docs/checkouts/readthedocs.org/user_builds/boa-framework/checkouts/0.8.7/docs/examples/boa_runs_20230809T184938/scheduler.json`.
Boa version: 0.8.8.dev0+gd6e453f.d20230809
[INFO 2023-08-09 18:51:18,241 MainProcess] boa: Saved optimization parametrization and objective to `/home/docs/checkouts/readthedocs.org/user_builds/boa-framework/checkouts/0.8.7/docs/examples/boa_runs_20230809T184938/optimization.csv`.
[INFO 2023-08-09 18:51:18,270 MainProcess] boa: Trials so far: 50
Running trials:
Will Produce next trials from generation step: GPEI
Best trial so far: {46: {'Cosine8': 0.033642697566612145}}
[ERROR 2023-08-09 18:51:18,272 MainProcess] boa: Object <wrapper.Wrapper object at 0x7f541ddb1bd0> passed to `object_to_json` (of type <class 'wrapper.Wrapper'>, module: wrapper) is not registered with a corresponding encoder in ENCODER_REGISTRY.
[INFO 2023-08-09 18:51:18,325 MainProcess] boa: Saved JSON-serialized state of optimization to `/home/docs/checkouts/readthedocs.org/user_builds/boa-framework/checkouts/0.8.7/docs/examples/boa_runs_20230809T184938/scheduler.json`.
Boa version: 0.8.8.dev0+gd6e453f.d20230809
[INFO 2023-08-09 18:51:18,352 MainProcess] boa: Saved optimization parametrization and objective to `/home/docs/checkouts/readthedocs.org/user_builds/boa-framework/checkouts/0.8.7/docs/examples/boa_runs_20230809T184938/optimization.csv`.
[INFO 2023-08-09 18:51:18,382 MainProcess] boa: Trials so far: 50
Running trials:
Will Produce next trials from generation step: GPEI
Best trial so far: {46: {'Cosine8': 0.033642697566612145}}
[INFO 2023-08-09 18:51:18,415 MainProcess] boa:
##############################################
Trials Completed!
BOA Experiment Run
Output Experiment Dir: /home/docs/checkouts/readthedocs.org/user_builds/boa-framework/checkouts/0.8.7/docs/examples/boa_runs_20230809T184938
Start Time: 20230809T184938
Version: 0.8.8.dev0+gd6e453f.d20230809
End Time: 20230809T185118
Total Run Time: 99.7071886062622
trial_index arm_name trial_status generation_method Cosine8 x0 \
0 0 0_0 COMPLETED Sobol 2.368137 0.431459
1 1 1_0 COMPLETED Sobol 2.822905 0.188310
2 2 2_0 COMPLETED Sobol 3.488775 0.930525
3 3 3_0 COMPLETED Sobol 1.139334 0.559315
4 4 4_0 COMPLETED Sobol 3.582889 0.917229
5 5 5_0 COMPLETED Sobol 2.209168 0.800889
6 6 6_0 COMPLETED Sobol 2.195702 0.038064
7 7 7_0 COMPLETED Sobol 2.689708 0.677535
8 8 8_0 COMPLETED Sobol 3.508412 0.874944
9 9 9_0 COMPLETED Sobol 1.930996 0.708690
10 10 10_0 COMPLETED Sobol 3.011259 0.125592
11 11 11_0 COMPLETED Sobol 3.972670 0.630921
12 12 12_0 COMPLETED Sobol 2.231633 0.424195
13 13 13_0 COMPLETED Sobol 4.498118 0.878783
14 14 14_0 COMPLETED Sobol 3.331654 0.950268
15 15 15_0 COMPLETED Sobol 3.565959 0.281290
16 16 16_0 COMPLETED GPEI 1.147322 0.579700
17 17 17_0 COMPLETED GPEI 1.119931 0.514860
18 18 18_0 COMPLETED GPEI 1.473470 0.612300
19 19 19_0 COMPLETED GPEI 1.246557 0.480360
20 20 20_0 COMPLETED GPEI 1.398898 0.620449
21 21 21_0 COMPLETED GPEI 1.060080 0.450491
22 22 22_0 COMPLETED GPEI 0.789132 0.397399
23 23 23_0 COMPLETED GPEI 1.401199 0.557059
24 24 24_0 COMPLETED GPEI 1.260583 0.488108
25 25 25_0 COMPLETED GPEI 0.513481 0.328905
26 26 26_0 COMPLETED GPEI 0.935839 0.393187
27 27 27_0 COMPLETED GPEI 0.953354 0.280627
28 28 28_0 COMPLETED GPEI 0.448421 0.235399
29 29 29_0 COMPLETED GPEI 0.557716 0.230265
30 30 30_0 COMPLETED GPEI 0.557355 0.266178
31 31 31_0 COMPLETED GPEI 0.447860 0.301382
32 32 32_0 COMPLETED GPEI 0.619006 0.239016
33 33 33_0 COMPLETED GPEI 0.537638 0.231312
34 34 34_0 COMPLETED GPEI 0.433310 0.255166
35 35 35_0 COMPLETED GPEI 0.448225 0.268892
36 36 36_0 COMPLETED GPEI 0.451554 0.312852
37 37 37_0 COMPLETED GPEI 0.427049 0.279280
38 38 38_0 COMPLETED GPEI 0.712863 0.241684
39 39 39_0 COMPLETED GPEI 0.406060 0.276560
40 40 40_0 COMPLETED GPEI 0.381352 0.292145
41 41 41_0 COMPLETED GPEI 0.367407 0.291848
42 42 42_0 COMPLETED GPEI 0.757600 0.109327
43 43 43_0 COMPLETED GPEI 0.256143 0.293408
44 44 44_0 COMPLETED GPEI 0.100104 0.240765
45 45 45_0 COMPLETED GPEI 0.541730 0.205763
46 46 46_0 COMPLETED GPEI 0.033643 0.247998
47 47 47_0 COMPLETED GPEI 0.042564 0.284165
48 48 48_0 COMPLETED GPEI 1.338695 0.097207
49 49 49_0 COMPLETED GPEI 0.033809 0.281694
x1 x2 x3 x4 x5 x6 x7
0 0.565196 0.320986 0.164172 0.157201 0.541701 0.881504 0.617115
1 0.760479 0.669785 0.229112 0.671413 0.627168 0.609755 0.283077
2 0.356864 0.257859 0.848385 0.027798 0.157581 0.854155 0.988215
3 0.367590 0.643154 0.032624 0.262107 0.410050 0.358996 0.355218
4 0.409746 0.915470 0.196030 0.905865 0.754559 0.406096 0.502514
5 0.230676 0.430923 0.498896 0.431820 0.647356 0.625375 0.436704
6 0.637573 0.691860 0.645273 0.074491 0.094132 0.866959 0.245969
7 0.234415 0.031333 0.716090 0.857769 0.014124 0.874205 0.541169
8 0.306928 0.844124 0.092013 0.966390 0.398547 0.652999 0.651327
9 0.345320 0.221752 0.389283 0.440753 0.428804 0.670051 0.744031
10 0.968248 0.628229 0.728698 0.053144 0.569340 0.448255 0.623230
11 0.976650 0.322401 0.523545 0.963801 0.827975 0.559857 0.395731
12 0.341336 0.960093 0.232612 0.763928 0.488456 0.253254 0.296344
13 0.353171 0.369309 0.869050 0.834640 0.582557 0.956472 0.930709
14 0.840187 0.697848 0.079461 0.035252 0.878097 0.261376 0.739025
15 0.209356 0.725647 0.700901 0.932619 0.324803 0.942735 0.563048
16 0.333877 0.516672 0.115449 0.268069 0.378525 0.402897 0.428903
17 0.386807 0.727777 0.037840 0.182198 0.417041 0.389393 0.274692
18 0.401101 0.609322 0.000000 0.281480 0.501097 0.233041 0.408192
19 0.355345 0.643004 0.195945 0.249456 0.418756 0.411554 0.307941
20 0.327343 0.589717 0.045143 0.165116 0.400954 0.489560 0.306032
21 0.410031 0.679059 0.089688 0.191613 0.294023 0.366677 0.428248
22 0.340121 0.620194 0.000000 0.210682 0.347707 0.352939 0.362303
23 0.450647 0.716903 0.109045 0.236096 0.270713 0.361873 0.335269
24 0.340205 0.779967 0.075434 0.207915 0.394221 0.404509 0.496391
25 0.369759 0.483169 0.000000 0.223757 0.377908 0.380570 0.388649
26 0.258842 0.603958 0.018251 0.165500 0.314164 0.258328 0.325279
27 0.336317 0.697607 0.000000 0.253646 0.295845 0.398298 0.277614
28 0.368436 0.352921 0.006331 0.203385 0.382463 0.356061 0.408866
29 0.421233 0.445082 0.000000 0.146554 0.431781 0.351846 0.318567
30 0.322103 0.317719 0.003257 0.302112 0.344005 0.390454 0.478727
31 0.396669 0.286598 0.000000 0.209294 0.346582 0.378899 0.345910
32 0.323222 0.394377 0.008585 0.188030 0.441192 0.389366 0.460045
33 0.419543 0.404275 0.000000 0.263295 0.373383 0.316040 0.435503
34 0.394498 0.359042 0.000000 0.191078 0.336181 0.381564 0.391337
35 0.355156 0.325855 0.013952 0.242938 0.380099 0.345931 0.322112
36 0.386726 0.303379 0.000000 0.165755 0.347180 0.333441 0.437270
37 0.374145 0.338686 0.039069 0.194413 0.346362 0.348331 0.375076
38 0.358784 0.223165 0.121424 0.187262 0.303273 0.335790 0.394173
39 0.365293 0.344679 0.000000 0.194878 0.351514 0.344389 0.363160
40 0.385751 0.364424 0.000315 0.183925 0.360026 0.344424 0.352975
41 0.350101 0.341838 0.002833 0.166188 0.355066 0.366283 0.354407
42 0.364264 0.565580 0.031441 0.042831 0.478067 0.472796 0.131009
43 0.357061 0.366018 0.000000 0.047407 0.366480 0.383191 0.245904
44 0.333111 0.364256 0.000000 0.000000 0.363829 0.411027 0.051899
45 0.234569 0.322614 0.000000 0.000000 0.371807 0.481368 0.238580
46 0.370265 0.374607 0.000000 0.000000 0.351482 0.387443 0.000000
47 0.320606 0.325428 0.000000 0.000000 0.386023 0.368643 0.000000
48 0.185675 0.490071 0.011924 0.147759 0.420084 0.571072 0.716350
49 0.387464 0.312875 0.000000 0.000000 0.367146 0.376081 0.000000
##############################################
Get the Best Trial and Output All Trials#
best_fitted_trials uses the data to do a fitting from all trials and with the noise levels you provided (or if no noise levels was provided, it assumed an unknown level of noise and inferred the noise level from the trial runs)
1trial = scheduler.best_fitted_trials()
2trial
{49: {'params': {'x0': 0.2479982632185312,
'x1': 0.37026515687514544,
'x2': 0.3746071626372858,
'x3': 0.0,
'x4': 0.0,
'x5': 0.3514818953591097,
'x6': 0.38744258289961475,
'x7': 0.0},
'means': {'Cosine8': 0.03365632411068287},
'cov_matrix': {'Cosine8': {'Cosine8': 1.4509720092554109e-06}}}}
if you need the exact points of the best trial, maybe because you need the trial number of the best trial to plot results, or for any other reason, best_raw_trails does not do any fitting
1trial = scheduler.best_raw_trials()
2trial
{46: {'params': {'x0': 0.2479982632185312,
'x1': 0.37026515687514544,
'x2': 0.3746071626372858,
'x3': 0.0,
'x4': 0.0,
'x5': 0.3514818953591097,
'x6': 0.38744258289961475,
'x7': 0.0},
'means': {'Cosine8': 0.033642697566612145},
'cov_matrix': {'Cosine8': {'Cosine8': 0.0}}}}
Output a DataFrame of All Trials#
1boa.scheduler_to_df(scheduler)
| trial_index | arm_name | trial_status | generation_method | Cosine8 | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 0 | 0_0 | COMPLETED | Sobol | 2.368137 | 0.431459 | 0.565196 | 0.320986 | 0.164172 | 0.157201 | 0.541701 | 0.881504 | 0.617115 |
| 1 | 1 | 1_0 | COMPLETED | Sobol | 2.822905 | 0.188310 | 0.760479 | 0.669785 | 0.229112 | 0.671413 | 0.627168 | 0.609755 | 0.283077 |
| 2 | 2 | 2_0 | COMPLETED | Sobol | 3.488775 | 0.930525 | 0.356864 | 0.257859 | 0.848385 | 0.027798 | 0.157581 | 0.854155 | 0.988215 |
| 3 | 3 | 3_0 | COMPLETED | Sobol | 1.139334 | 0.559315 | 0.367590 | 0.643154 | 0.032624 | 0.262107 | 0.410050 | 0.358996 | 0.355218 |
| 4 | 4 | 4_0 | COMPLETED | Sobol | 3.582889 | 0.917229 | 0.409746 | 0.915470 | 0.196030 | 0.905865 | 0.754559 | 0.406096 | 0.502514 |
| 5 | 5 | 5_0 | COMPLETED | Sobol | 2.209168 | 0.800889 | 0.230676 | 0.430923 | 0.498896 | 0.431820 | 0.647356 | 0.625375 | 0.436704 |
| 6 | 6 | 6_0 | COMPLETED | Sobol | 2.195702 | 0.038064 | 0.637573 | 0.691860 | 0.645273 | 0.074491 | 0.094132 | 0.866959 | 0.245969 |
| 7 | 7 | 7_0 | COMPLETED | Sobol | 2.689708 | 0.677535 | 0.234415 | 0.031333 | 0.716090 | 0.857769 | 0.014124 | 0.874205 | 0.541169 |
| 8 | 8 | 8_0 | COMPLETED | Sobol | 3.508412 | 0.874944 | 0.306928 | 0.844124 | 0.092013 | 0.966390 | 0.398547 | 0.652999 | 0.651327 |
| 9 | 9 | 9_0 | COMPLETED | Sobol | 1.930996 | 0.708690 | 0.345320 | 0.221752 | 0.389283 | 0.440753 | 0.428804 | 0.670051 | 0.744031 |
| 10 | 10 | 10_0 | COMPLETED | Sobol | 3.011259 | 0.125592 | 0.968248 | 0.628229 | 0.728698 | 0.053144 | 0.569340 | 0.448255 | 0.623230 |
| 11 | 11 | 11_0 | COMPLETED | Sobol | 3.972670 | 0.630921 | 0.976650 | 0.322401 | 0.523545 | 0.963801 | 0.827975 | 0.559857 | 0.395731 |
| 12 | 12 | 12_0 | COMPLETED | Sobol | 2.231633 | 0.424195 | 0.341336 | 0.960093 | 0.232612 | 0.763928 | 0.488456 | 0.253254 | 0.296344 |
| 13 | 13 | 13_0 | COMPLETED | Sobol | 4.498118 | 0.878783 | 0.353171 | 0.369309 | 0.869050 | 0.834640 | 0.582557 | 0.956472 | 0.930709 |
| 14 | 14 | 14_0 | COMPLETED | Sobol | 3.331654 | 0.950268 | 0.840187 | 0.697848 | 0.079461 | 0.035252 | 0.878097 | 0.261376 | 0.739025 |
| 15 | 15 | 15_0 | COMPLETED | Sobol | 3.565959 | 0.281290 | 0.209356 | 0.725647 | 0.700901 | 0.932619 | 0.324803 | 0.942735 | 0.563048 |
| 16 | 16 | 16_0 | COMPLETED | GPEI | 1.147322 | 0.579700 | 0.333877 | 0.516672 | 0.115449 | 0.268069 | 0.378525 | 0.402897 | 0.428903 |
| 17 | 17 | 17_0 | COMPLETED | GPEI | 1.119931 | 0.514860 | 0.386807 | 0.727777 | 0.037840 | 0.182198 | 0.417041 | 0.389393 | 0.274692 |
| 18 | 18 | 18_0 | COMPLETED | GPEI | 1.473470 | 0.612300 | 0.401101 | 0.609322 | 0.000000 | 0.281480 | 0.501097 | 0.233041 | 0.408192 |
| 19 | 19 | 19_0 | COMPLETED | GPEI | 1.246557 | 0.480360 | 0.355345 | 0.643004 | 0.195945 | 0.249456 | 0.418756 | 0.411554 | 0.307941 |
| 20 | 20 | 20_0 | COMPLETED | GPEI | 1.398898 | 0.620449 | 0.327343 | 0.589717 | 0.045143 | 0.165116 | 0.400954 | 0.489560 | 0.306032 |
| 21 | 21 | 21_0 | COMPLETED | GPEI | 1.060080 | 0.450491 | 0.410031 | 0.679059 | 0.089688 | 0.191613 | 0.294023 | 0.366677 | 0.428248 |
| 22 | 22 | 22_0 | COMPLETED | GPEI | 0.789132 | 0.397399 | 0.340121 | 0.620194 | 0.000000 | 0.210682 | 0.347707 | 0.352939 | 0.362303 |
| 23 | 23 | 23_0 | COMPLETED | GPEI | 1.401199 | 0.557059 | 0.450647 | 0.716903 | 0.109045 | 0.236096 | 0.270713 | 0.361873 | 0.335269 |
| 24 | 24 | 24_0 | COMPLETED | GPEI | 1.260583 | 0.488108 | 0.340205 | 0.779967 | 0.075434 | 0.207915 | 0.394221 | 0.404509 | 0.496391 |
| 25 | 25 | 25_0 | COMPLETED | GPEI | 0.513481 | 0.328905 | 0.369759 | 0.483169 | 0.000000 | 0.223757 | 0.377908 | 0.380570 | 0.388649 |
| 26 | 26 | 26_0 | COMPLETED | GPEI | 0.935839 | 0.393187 | 0.258842 | 0.603958 | 0.018251 | 0.165500 | 0.314164 | 0.258328 | 0.325279 |
| 27 | 27 | 27_0 | COMPLETED | GPEI | 0.953354 | 0.280627 | 0.336317 | 0.697607 | 0.000000 | 0.253646 | 0.295845 | 0.398298 | 0.277614 |
| 28 | 28 | 28_0 | COMPLETED | GPEI | 0.448421 | 0.235399 | 0.368436 | 0.352921 | 0.006331 | 0.203385 | 0.382463 | 0.356061 | 0.408866 |
| 29 | 29 | 29_0 | COMPLETED | GPEI | 0.557716 | 0.230265 | 0.421233 | 0.445082 | 0.000000 | 0.146554 | 0.431781 | 0.351846 | 0.318567 |
| 30 | 30 | 30_0 | COMPLETED | GPEI | 0.557355 | 0.266178 | 0.322103 | 0.317719 | 0.003257 | 0.302112 | 0.344005 | 0.390454 | 0.478727 |
| 31 | 31 | 31_0 | COMPLETED | GPEI | 0.447860 | 0.301382 | 0.396669 | 0.286598 | 0.000000 | 0.209294 | 0.346582 | 0.378899 | 0.345910 |
| 32 | 32 | 32_0 | COMPLETED | GPEI | 0.619006 | 0.239016 | 0.323222 | 0.394377 | 0.008585 | 0.188030 | 0.441192 | 0.389366 | 0.460045 |
| 33 | 33 | 33_0 | COMPLETED | GPEI | 0.537638 | 0.231312 | 0.419543 | 0.404275 | 0.000000 | 0.263295 | 0.373383 | 0.316040 | 0.435503 |
| 34 | 34 | 34_0 | COMPLETED | GPEI | 0.433310 | 0.255166 | 0.394498 | 0.359042 | 0.000000 | 0.191078 | 0.336181 | 0.381564 | 0.391337 |
| 35 | 35 | 35_0 | COMPLETED | GPEI | 0.448225 | 0.268892 | 0.355156 | 0.325855 | 0.013952 | 0.242938 | 0.380099 | 0.345931 | 0.322112 |
| 36 | 36 | 36_0 | COMPLETED | GPEI | 0.451554 | 0.312852 | 0.386726 | 0.303379 | 0.000000 | 0.165755 | 0.347180 | 0.333441 | 0.437270 |
| 37 | 37 | 37_0 | COMPLETED | GPEI | 0.427049 | 0.279280 | 0.374145 | 0.338686 | 0.039069 | 0.194413 | 0.346362 | 0.348331 | 0.375076 |
| 38 | 38 | 38_0 | COMPLETED | GPEI | 0.712863 | 0.241684 | 0.358784 | 0.223165 | 0.121424 | 0.187262 | 0.303273 | 0.335790 | 0.394173 |
| 39 | 39 | 39_0 | COMPLETED | GPEI | 0.406060 | 0.276560 | 0.365293 | 0.344679 | 0.000000 | 0.194878 | 0.351514 | 0.344389 | 0.363160 |
| 40 | 40 | 40_0 | COMPLETED | GPEI | 0.381352 | 0.292145 | 0.385751 | 0.364424 | 0.000315 | 0.183925 | 0.360026 | 0.344424 | 0.352975 |
| 41 | 41 | 41_0 | COMPLETED | GPEI | 0.367407 | 0.291848 | 0.350101 | 0.341838 | 0.002833 | 0.166188 | 0.355066 | 0.366283 | 0.354407 |
| 42 | 42 | 42_0 | COMPLETED | GPEI | 0.757600 | 0.109327 | 0.364264 | 0.565580 | 0.031441 | 0.042831 | 0.478067 | 0.472796 | 0.131009 |
| 43 | 43 | 43_0 | COMPLETED | GPEI | 0.256143 | 0.293408 | 0.357061 | 0.366018 | 0.000000 | 0.047407 | 0.366480 | 0.383191 | 0.245904 |
| 44 | 44 | 44_0 | COMPLETED | GPEI | 0.100104 | 0.240765 | 0.333111 | 0.364256 | 0.000000 | 0.000000 | 0.363829 | 0.411027 | 0.051899 |
| 45 | 45 | 45_0 | COMPLETED | GPEI | 0.541730 | 0.205763 | 0.234569 | 0.322614 | 0.000000 | 0.000000 | 0.371807 | 0.481368 | 0.238580 |
| 46 | 46 | 46_0 | COMPLETED | GPEI | 0.033643 | 0.247998 | 0.370265 | 0.374607 | 0.000000 | 0.000000 | 0.351482 | 0.387443 | 0.000000 |
| 47 | 47 | 47_0 | COMPLETED | GPEI | 0.042564 | 0.284165 | 0.320606 | 0.325428 | 0.000000 | 0.000000 | 0.386023 | 0.368643 | 0.000000 |
| 48 | 48 | 48_0 | COMPLETED | GPEI | 1.338695 | 0.097207 | 0.185675 | 0.490071 | 0.011924 | 0.147759 | 0.420084 | 0.571072 | 0.716350 |
| 49 | 49 | 49_0 | COMPLETED | GPEI | 0.033809 | 0.281694 | 0.387464 | 0.312875 | 0.000000 | 0.000000 | 0.367146 | 0.376081 | 0.000000 |