Running a Multi Objective Optimization Directly in Python#

This notebook demonstrates how to:

Write a basic Wrapper in Python and launch a multi objective 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
5
6import boa
7from boa.scripts.moo import Wrapper
[WARNING 08-11 16:37:36] 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]`.
Hide code cell content
1# Remove old runs to have a clean slate for this example
2old_runs = pathlib.Path().resolve().glob("moo_run*")
3for path in old_runs:
4    shutil.rmtree(path, ignore_errors=True)

Loading the MOO Config File#

1config_path = pathlib.Path().resolve().parent.parent / "boa/scripts/moo.yaml"

Here we can see what the configuration file looks like

1Code(config_path)
# MultiObjective Optimization config
optimization_options:
    objective_options:
        objective_thresholds:
            - branin >= -18.0
            - currin >= -6.0
        objectives:
            - name: branin
              lower_is_better: False
              noise_sd: 0
            - name: currin
              lower_is_better: False
              noise_sd: 0

    experiment:
        name: "moo_run"
    trials: 50

parameters:
    x0:
        type: range
        bounds: [0, 1]
        value_type: float
    x1:
        type: range
        bounds: [0, 1]
        value_type: float
1config = boa.load_jsonlike(config_path)

The 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())
from pathlib import Path

import torch

from boa.controller import Controller
from boa.metrics.synthetic_funcs import get_synth_func
from boa.utils import torch_device
from boa.wrappers.base_wrapper import BaseWrapper

tkwargs = {
    "device": torch_device(),
}
Problem = get_synth_func("BraninCurrin")

problem = Problem(negate=True).to(**tkwargs)


class Wrapper(BaseWrapper):
    def run_model(self, trial) -> None:
        pass

    def set_trial_status(self, trial) -> None:
        trial.mark_completed()

    def fetch_trial_data(self, trial, metric_properties, metric_name, *args, **kwargs):
        evaluation = problem(torch.tensor([trial.arm.parameters["x0"], trial.arm.parameters["x1"]]))
        a = float(evaluation[0])
        b = float(evaluation[1])
        return {"branin": a, "currin": b}


def main():
    config_path = Path(__file__).resolve().parent / "moo.yaml"
    wrapper = Wrapper(config_path=config_path)
    controller = Controller(wrapper=wrapper)
    controller.initialize_scheduler()
    return controller.run()


if __name__ == "__main__":
    main()

The Setup#

1controller = boa.Controller(config_path=config_path, wrapper=Wrapper)
2
3controller.initialize_scheduler()
[INFO 08-11 16:37: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])], parameter_constraints=[]).
[INFO 08-11 16:37:38] ax.modelbridge.dispatch_utils: Using Models.MOO since there are more ordered parameters than there are categories for the unordered categorical parameters.
[INFO 08-11 16:37: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=2 num_trials=None use_batch_trials=False
[INFO 08-11 16:37:38] ax.modelbridge.dispatch_utils: calculated num_initialization_trials=5
[INFO 08-11 16:37:38] ax.modelbridge.dispatch_utils: num_completed_initialization_trials=0 num_remaining_initialization_trials=5
[INFO 08-11 16:37:38] ax.modelbridge.dispatch_utils: Using Bayesian Optimization generation strategy: GenerationStrategy(name='Sobol+MOO', steps=[Sobol for 5 trials, MOO for subsequent trials]). Iterations after 5 will take longer to generate due to model-fitting.
[INFO 08-11 16:37: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(moo_run), generation_strategy=GenerationStrategy(name='Sobol+MOO', steps=[Sobol for 5 trials, MOO 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)),
 <boa.scripts.moo.Wrapper at 0x7fded1b4d9f0>)

Start 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-11 16:37:38,336 MainProcess] boa: 

##############################################


BOA Experiment Run
Output Experiment Dir: /home/docs/checkouts/readthedocs.org/user_builds/pyboa/checkouts/0.8.8/docs/examples/moo_run_20230811T163738
Start Time: 20230811T163738
Version: 0.8.9.dev0+gad156f0.d20230811

##############################################
[INFO 08-11 16:37:38] Scheduler: Running trials [0]...
[INFO 08-11 16:37:39] Scheduler: Running trials [1]...
[INFO 08-11 16:37:40] Scheduler: Running trials [2]...
[INFO 08-11 16:37:41] Scheduler: Running trials [3]...
[INFO 08-11 16:37:42] Scheduler: Running trials [4]...
[INFO 08-11 16:37:43] Scheduler: Generated all trials that can be generated currently. Model requires more data to generate more trials.
[INFO 08-11 16:37:43] Scheduler: Retrieved COMPLETED trials: 0 - 4.
[INFO 08-11 16:37:43] Scheduler: Fetching data for trials: 0 - 4.
[ERROR 2023-08-11 16:37:43,463 MainProcess] boa: Object <boa.scripts.moo.Wrapper object at 0x7fded1b4d9f0> passed to `object_to_json` (of type <class 'boa.scripts.moo.Wrapper'>, module: boa.scripts.moo) is not registered with a corresponding encoder in ENCODER_REGISTRY.
[INFO 2023-08-11 16:37:43,477 MainProcess] boa: Saved JSON-serialized state of optimization to `/home/docs/checkouts/readthedocs.org/user_builds/pyboa/checkouts/0.8.8/docs/examples/moo_run_20230811T163738/scheduler.json`.
Boa version: 0.8.9.dev0+gad156f0.d20230811
[INFO 2023-08-11 16:37:43,498 MainProcess] boa: Saved optimization parametrization and objective to `/home/docs/checkouts/readthedocs.org/user_builds/pyboa/checkouts/0.8.8/docs/examples/moo_run_20230811T163738/optimization.csv`.
[INFO 2023-08-11 16:37:43,595 MainProcess] boa: Trials so far: 5
Running trials: 
Will Produce next trials from generation step: Sobol
Best trial so far: {}
[INFO 08-11 16:37:44] Scheduler: Running trials [5]...
[INFO 08-11 16:37:45] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-11 16:37:46] Scheduler: Running trials [6]...
[INFO 08-11 16:37:47] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-11 16:37:47] Scheduler: Running trials [7]...
[INFO 08-11 16:37:48] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-11 16:37:48] Scheduler: Generated all trials that can be generated currently. Max parallelism currently reached.
[INFO 08-11 16:37:48] Scheduler: Retrieved COMPLETED trials: 5 - 7.
[INFO 08-11 16:37:48] Scheduler: Fetching data for trials: 5 - 7.
[ERROR 2023-08-11 16:37:48,995 MainProcess] boa: Object <boa.scripts.moo.Wrapper object at 0x7fded1b4d9f0> passed to `object_to_json` (of type <class 'boa.scripts.moo.Wrapper'>, module: boa.scripts.moo) is not registered with a corresponding encoder in ENCODER_REGISTRY.
[INFO 2023-08-11 16:37:49,011 MainProcess] boa: Saved JSON-serialized state of optimization to `/home/docs/checkouts/readthedocs.org/user_builds/pyboa/checkouts/0.8.8/docs/examples/moo_run_20230811T163738/scheduler.json`.
Boa version: 0.8.9.dev0+gad156f0.d20230811
[INFO 2023-08-11 16:37:49,033 MainProcess] boa: Saved optimization parametrization and objective to `/home/docs/checkouts/readthedocs.org/user_builds/pyboa/checkouts/0.8.8/docs/examples/moo_run_20230811T163738/optimization.csv`.
[INFO 2023-08-11 16:37:49,117 MainProcess] boa: Trials so far: 8
Running trials: 
Will Produce next trials from generation step: MOO
Best trial so far: {}
[INFO 08-11 16:37:49] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-11 16:37:49] Scheduler: Running trials [8]...
[INFO 08-11 16:37:50] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-11 16:37:51] Scheduler: Running trials [9]...
[INFO 08-11 16:37:52] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-11 16:37:53] Scheduler: Running trials [10]...
[INFO 08-11 16:37:54] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-11 16:37:54] Scheduler: Generated all trials that can be generated currently. Max parallelism currently reached.
[INFO 08-11 16:37:54] Scheduler: Retrieved COMPLETED trials: 8 - 10.
[INFO 08-11 16:37:54] Scheduler: Fetching data for trials: 8 - 10.
[ERROR 2023-08-11 16:37:54,364 MainProcess] boa: Object <boa.scripts.moo.Wrapper object at 0x7fded1b4d9f0> passed to `object_to_json` (of type <class 'boa.scripts.moo.Wrapper'>, module: boa.scripts.moo) is not registered with a corresponding encoder in ENCODER_REGISTRY.
[INFO 2023-08-11 16:37:54,387 MainProcess] boa: Saved JSON-serialized state of optimization to `/home/docs/checkouts/readthedocs.org/user_builds/pyboa/checkouts/0.8.8/docs/examples/moo_run_20230811T163738/scheduler.json`.
Boa version: 0.8.9.dev0+gad156f0.d20230811
[INFO 2023-08-11 16:37:54,408 MainProcess] boa: Saved optimization parametrization and objective to `/home/docs/checkouts/readthedocs.org/user_builds/pyboa/checkouts/0.8.8/docs/examples/moo_run_20230811T163738/optimization.csv`.
[INFO 2023-08-11 16:37:54,488 MainProcess] boa: Trials so far: 11
Running trials: 
Will Produce next trials from generation step: MOO
Best trial so far: {}
[INFO 08-11 16:37:54] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-11 16:37:55] Scheduler: Running trials [11]...
[INFO 08-11 16:37:56] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-11 16:37:56] Scheduler: Running trials [12]...
[INFO 08-11 16:37:56] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-11 16:37:57] Scheduler: Running trials [13]...
[INFO 08-11 16:37:58] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-11 16:37:58] Scheduler: Generated all trials that can be generated currently. Max parallelism currently reached.
[INFO 08-11 16:37:58] Scheduler: Retrieved COMPLETED trials: 11 - 13.
[INFO 08-11 16:37:58] Scheduler: Fetching data for trials: 11 - 13.
[ERROR 2023-08-11 16:37:58,400 MainProcess] boa: Object <boa.scripts.moo.Wrapper object at 0x7fded1b4d9f0> passed to `object_to_json` (of type <class 'boa.scripts.moo.Wrapper'>, module: boa.scripts.moo) is not registered with a corresponding encoder in ENCODER_REGISTRY.
[INFO 2023-08-11 16:37:58,427 MainProcess] boa: Saved JSON-serialized state of optimization to `/home/docs/checkouts/readthedocs.org/user_builds/pyboa/checkouts/0.8.8/docs/examples/moo_run_20230811T163738/scheduler.json`.
Boa version: 0.8.9.dev0+gad156f0.d20230811
[INFO 2023-08-11 16:37:58,449 MainProcess] boa: Saved optimization parametrization and objective to `/home/docs/checkouts/readthedocs.org/user_builds/pyboa/checkouts/0.8.8/docs/examples/moo_run_20230811T163738/optimization.csv`.
[INFO 2023-08-11 16:37:58,537 MainProcess] boa: Trials so far: 14
Running trials: 
Will Produce next trials from generation step: MOO
Best trial so far: {13: {'branin': -17.508296966552734, 'currin': -1.180408000946045}}
[INFO 08-11 16:37:58] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-11 16:37:59] Scheduler: Running trials [14]...
[INFO 08-11 16:38:00] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-11 16:38:01] Scheduler: Running trials [15]...
[INFO 08-11 16:38:01] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-11 16:38:02] Scheduler: Running trials [16]...
[INFO 08-11 16:38:03] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-11 16:38:03] Scheduler: Generated all trials that can be generated currently. Max parallelism currently reached.
[INFO 08-11 16:38:03] Scheduler: Retrieved COMPLETED trials: 14 - 16.
[INFO 08-11 16:38:03] Scheduler: Fetching data for trials: 14 - 16.
[ERROR 2023-08-11 16:38:03,643 MainProcess] boa: Object <boa.scripts.moo.Wrapper object at 0x7fded1b4d9f0> passed to `object_to_json` (of type <class 'boa.scripts.moo.Wrapper'>, module: boa.scripts.moo) is not registered with a corresponding encoder in ENCODER_REGISTRY.
[INFO 2023-08-11 16:38:03,675 MainProcess] boa: Saved JSON-serialized state of optimization to `/home/docs/checkouts/readthedocs.org/user_builds/pyboa/checkouts/0.8.8/docs/examples/moo_run_20230811T163738/scheduler.json`.
Boa version: 0.8.9.dev0+gad156f0.d20230811
[INFO 2023-08-11 16:38:03,696 MainProcess] boa: Saved optimization parametrization and objective to `/home/docs/checkouts/readthedocs.org/user_builds/pyboa/checkouts/0.8.8/docs/examples/moo_run_20230811T163738/optimization.csv`.
[INFO 2023-08-11 16:38:03,814 MainProcess] boa: Trials so far: 17
Running trials: 
Will Produce next trials from generation step: MOO
Best trial so far: {13: {'branin': -17.508296966552734, 'currin': -1.180408000946045}}
[INFO 08-11 16:38:03] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-11 16:38:04] Scheduler: Running trials [17]...
[INFO 08-11 16:38:04] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-11 16:38:06] Scheduler: Running trials [18]...
[INFO 08-11 16:38:07] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-11 16:38:07] Scheduler: Running trials [19]...
[INFO 08-11 16:38:08] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-11 16:38:08] Scheduler: Generated all trials that can be generated currently. Max parallelism currently reached.
[INFO 08-11 16:38:08] Scheduler: Retrieved COMPLETED trials: 17 - 19.
[INFO 08-11 16:38:08] Scheduler: Fetching data for trials: 17 - 19.
[ERROR 2023-08-11 16:38:08,953 MainProcess] boa: Object <boa.scripts.moo.Wrapper object at 0x7fded1b4d9f0> passed to `object_to_json` (of type <class 'boa.scripts.moo.Wrapper'>, module: boa.scripts.moo) is not registered with a corresponding encoder in ENCODER_REGISTRY.
[INFO 2023-08-11 16:38:08,999 MainProcess] boa: Saved JSON-serialized state of optimization to `/home/docs/checkouts/readthedocs.org/user_builds/pyboa/checkouts/0.8.8/docs/examples/moo_run_20230811T163738/scheduler.json`.
Boa version: 0.8.9.dev0+gad156f0.d20230811
[INFO 2023-08-11 16:38:09,022 MainProcess] boa: Saved optimization parametrization and objective to `/home/docs/checkouts/readthedocs.org/user_builds/pyboa/checkouts/0.8.8/docs/examples/moo_run_20230811T163738/optimization.csv`.
[INFO 2023-08-11 16:38:09,149 MainProcess] boa: Trials so far: 20
Running trials: 
Will Produce next trials from generation step: MOO
Best trial so far: {13: {'branin': -17.508296966552734, 'currin': -1.180408000946045},
 17: {'branin': -5.456631660461426, 'currin': -3.1790568828582764},
 18: {'branin': -10.850420951843262, 'currin': -2.118943214416504},
 19: {'branin': -3.690049171447754, 'currin': -4.2110724449157715}}
[INFO 08-11 16:38:09] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-11 16:38:10] Scheduler: Running trials [20]...
[INFO 08-11 16:38:11] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-11 16:38:12] Scheduler: Running trials [21]...
[INFO 08-11 16:38:13] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-11 16:38:15] Scheduler: Running trials [22]...
[INFO 08-11 16:38:16] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-11 16:38:16] Scheduler: Generated all trials that can be generated currently. Max parallelism currently reached.
[INFO 08-11 16:38:16] Scheduler: Retrieved COMPLETED trials: 20 - 22.
[INFO 08-11 16:38:16] Scheduler: Fetching data for trials: 20 - 22.
[ERROR 2023-08-11 16:38:16,288 MainProcess] boa: Object <boa.scripts.moo.Wrapper object at 0x7fded1b4d9f0> passed to `object_to_json` (of type <class 'boa.scripts.moo.Wrapper'>, module: boa.scripts.moo) is not registered with a corresponding encoder in ENCODER_REGISTRY.
[INFO 2023-08-11 16:38:16,330 MainProcess] boa: Saved JSON-serialized state of optimization to `/home/docs/checkouts/readthedocs.org/user_builds/pyboa/checkouts/0.8.8/docs/examples/moo_run_20230811T163738/scheduler.json`.
Boa version: 0.8.9.dev0+gad156f0.d20230811
[INFO 2023-08-11 16:38:16,355 MainProcess] boa: Saved optimization parametrization and objective to `/home/docs/checkouts/readthedocs.org/user_builds/pyboa/checkouts/0.8.8/docs/examples/moo_run_20230811T163738/optimization.csv`.
[INFO 2023-08-11 16:38:16,485 MainProcess] boa: Trials so far: 23
Running trials: 
Will Produce next trials from generation step: MOO
Best trial so far: {13: {'branin': -17.508296966552734, 'currin': -1.180408000946045},
 17: {'branin': -5.456631660461426, 'currin': -3.1790568828582764},
 18: {'branin': -10.850420951843262, 'currin': -2.118943214416504},
 19: {'branin': -3.690049171447754, 'currin': -4.2110724449157715},
 20: {'branin': -4.101330757141113, 'currin': -3.619260549545288},
 21: {'branin': -14.053752899169922, 'currin': -1.6379365921020508},
 22: {'branin': -7.977751731872559, 'currin': -2.6222782135009766}}
[INFO 08-11 16:38:16] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-11 16:38:17] Scheduler: Running trials [23]...
[INFO 08-11 16:38:18] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-11 16:38:20] Scheduler: Running trials [24]...
[INFO 08-11 16:38:21] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-11 16:38:22] Scheduler: Running trials [25]...
[INFO 08-11 16:38:23] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-11 16:38:23] Scheduler: Generated all trials that can be generated currently. Max parallelism currently reached.
[INFO 08-11 16:38:23] Scheduler: Retrieved COMPLETED trials: 23 - 25.
[INFO 08-11 16:38:23] Scheduler: Fetching data for trials: 23 - 25.
[ERROR 2023-08-11 16:38:23,555 MainProcess] boa: Object <boa.scripts.moo.Wrapper object at 0x7fded1b4d9f0> passed to `object_to_json` (of type <class 'boa.scripts.moo.Wrapper'>, module: boa.scripts.moo) is not registered with a corresponding encoder in ENCODER_REGISTRY.
[INFO 2023-08-11 16:38:23,602 MainProcess] boa: Saved JSON-serialized state of optimization to `/home/docs/checkouts/readthedocs.org/user_builds/pyboa/checkouts/0.8.8/docs/examples/moo_run_20230811T163738/scheduler.json`.
Boa version: 0.8.9.dev0+gad156f0.d20230811
[INFO 2023-08-11 16:38:23,625 MainProcess] boa: Saved optimization parametrization and objective to `/home/docs/checkouts/readthedocs.org/user_builds/pyboa/checkouts/0.8.8/docs/examples/moo_run_20230811T163738/optimization.csv`.
[INFO 2023-08-11 16:38:23,787 MainProcess] boa: Trials so far: 26
Running trials: 
Will Produce next trials from generation step: MOO
Best trial so far: {13: {'branin': -17.508296966552734, 'currin': -1.180408000946045},
 17: {'branin': -5.456631660461426, 'currin': -3.1790568828582764},
 18: {'branin': -10.850420951843262, 'currin': -2.118943214416504},
 19: {'branin': -3.690049171447754, 'currin': -4.2110724449157715},
 20: {'branin': -4.101330757141113, 'currin': -3.619260549545288},
 21: {'branin': -14.053752899169922, 'currin': -1.6379365921020508},
 22: {'branin': -7.977751731872559, 'currin': -2.6222782135009766},
 23: {'branin': -1.812485694885254, 'currin': -4.517035484313965},
 24: {'branin': -12.423710823059082, 'currin': -1.8745335340499878},
 25: {'branin': -6.6635589599609375, 'currin': -2.891352415084839}}
[INFO 08-11 16:38:23] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-11 16:38:25] Scheduler: Running trials [26]...
[INFO 08-11 16:38:26] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-11 16:38:27] Scheduler: Running trials [27]...
[INFO 08-11 16:38:27] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-11 16:38:29] Scheduler: Running trials [28]...
[INFO 08-11 16:38:30] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-11 16:38:30] Scheduler: Generated all trials that can be generated currently. Max parallelism currently reached.
[INFO 08-11 16:38:30] Scheduler: Retrieved COMPLETED trials: 26 - 28.
[INFO 08-11 16:38:30] Scheduler: Fetching data for trials: 26 - 28.
[ERROR 2023-08-11 16:38:30,483 MainProcess] boa: Object <boa.scripts.moo.Wrapper object at 0x7fded1b4d9f0> passed to `object_to_json` (of type <class 'boa.scripts.moo.Wrapper'>, module: boa.scripts.moo) is not registered with a corresponding encoder in ENCODER_REGISTRY.
[INFO 2023-08-11 16:38:30,534 MainProcess] boa: Saved JSON-serialized state of optimization to `/home/docs/checkouts/readthedocs.org/user_builds/pyboa/checkouts/0.8.8/docs/examples/moo_run_20230811T163738/scheduler.json`.
Boa version: 0.8.9.dev0+gad156f0.d20230811
[INFO 2023-08-11 16:38:30,559 MainProcess] boa: Saved optimization parametrization and objective to `/home/docs/checkouts/readthedocs.org/user_builds/pyboa/checkouts/0.8.8/docs/examples/moo_run_20230811T163738/optimization.csv`.
[INFO 2023-08-11 16:38:30,718 MainProcess] boa: Trials so far: 29
Running trials: 
Will Produce next trials from generation step: MOO
Best trial so far: {13: {'branin': -17.508296966552734, 'currin': -1.180408000946045},
 17: {'branin': -5.456631660461426, 'currin': -3.1790568828582764},
 18: {'branin': -10.850420951843262, 'currin': -2.118943214416504},
 20: {'branin': -4.101330757141113, 'currin': -3.619260549545288},
 21: {'branin': -14.053752899169922, 'currin': -1.6379365921020508},
 22: {'branin': -7.977751731872559, 'currin': -2.6222782135009766},
 23: {'branin': -1.812485694885254, 'currin': -4.517035484313965},
 24: {'branin': -12.423710823059082, 'currin': -1.8745335340499878},
 25: {'branin': -6.6635589599609375, 'currin': -2.891352415084839},
 26: {'branin': -2.915264129638672, 'currin': -4.022140979766846},
 27: {'branin': -0.952265739440918, 'currin': -5.013603210449219},
 28: {'branin': -9.38033676147461, 'currin': -2.365352153778076}}
[INFO 08-11 16:38:30] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-11 16:38:32] Scheduler: Running trials [29]...
[INFO 08-11 16:38:33] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-11 16:38:35] Scheduler: Running trials [30]...
[INFO 08-11 16:38:36] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-11 16:38:38] Scheduler: Running trials [31]...
[INFO 08-11 16:38:39] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-11 16:38:39] Scheduler: Generated all trials that can be generated currently. Max parallelism currently reached.
[INFO 08-11 16:38:39] Scheduler: Retrieved COMPLETED trials: 29 - 31.
[INFO 08-11 16:38:39] Scheduler: Fetching data for trials: 29 - 31.
[ERROR 2023-08-11 16:38:39,696 MainProcess] boa: Object <boa.scripts.moo.Wrapper object at 0x7fded1b4d9f0> passed to `object_to_json` (of type <class 'boa.scripts.moo.Wrapper'>, module: boa.scripts.moo) is not registered with a corresponding encoder in ENCODER_REGISTRY.
[INFO 2023-08-11 16:38:39,752 MainProcess] boa: Saved JSON-serialized state of optimization to `/home/docs/checkouts/readthedocs.org/user_builds/pyboa/checkouts/0.8.8/docs/examples/moo_run_20230811T163738/scheduler.json`.
Boa version: 0.8.9.dev0+gad156f0.d20230811
[INFO 2023-08-11 16:38:39,777 MainProcess] boa: Saved optimization parametrization and objective to `/home/docs/checkouts/readthedocs.org/user_builds/pyboa/checkouts/0.8.8/docs/examples/moo_run_20230811T163738/optimization.csv`.
[INFO 2023-08-11 16:38:39,965 MainProcess] boa: Trials so far: 32
Running trials: 
Will Produce next trials from generation step: MOO
Best trial so far: {13: {'branin': -17.508296966552734, 'currin': -1.180408000946045},
 17: {'branin': -5.456631660461426, 'currin': -3.1790568828582764},
 18: {'branin': -10.850420951843262, 'currin': -2.118943214416504},
 20: {'branin': -4.101330757141113, 'currin': -3.619260549545288},
 21: {'branin': -14.053752899169922, 'currin': -1.6379365921020508},
 22: {'branin': -7.977751731872559, 'currin': -2.6222782135009766},
 23: {'branin': -1.812485694885254, 'currin': -4.517035484313965},
 24: {'branin': -12.423710823059082, 'currin': -1.8745335340499878},
 25: {'branin': -6.6635589599609375, 'currin': -2.891352415084839},
 26: {'branin': -2.915264129638672, 'currin': -4.022140979766846},
 27: {'branin': -0.952265739440918, 'currin': -5.013603210449219},
 28: {'branin': -9.38033676147461, 'currin': -2.365352153778076},
 29: {'branin': -15.753107070922852, 'currin': -1.4061617851257324},
 31: {'branin': -4.728094577789307, 'currin': -3.3888683319091797}}
[INFO 08-11 16:38:39] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-11 16:38:41] Scheduler: Running trials [32]...
[INFO 08-11 16:38:42] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-11 16:38:43] Scheduler: Running trials [33]...
[INFO 08-11 16:38:44] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-11 16:38:46] Scheduler: Running trials [34]...
[INFO 08-11 16:38:47] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-11 16:38:47] Scheduler: Generated all trials that can be generated currently. Max parallelism currently reached.
[INFO 08-11 16:38:47] Scheduler: Retrieved COMPLETED trials: 32 - 34.
[INFO 08-11 16:38:47] Scheduler: Fetching data for trials: 32 - 34.
[ERROR 2023-08-11 16:38:47,416 MainProcess] boa: Object <boa.scripts.moo.Wrapper object at 0x7fded1b4d9f0> passed to `object_to_json` (of type <class 'boa.scripts.moo.Wrapper'>, module: boa.scripts.moo) is not registered with a corresponding encoder in ENCODER_REGISTRY.
[INFO 2023-08-11 16:38:47,479 MainProcess] boa: Saved JSON-serialized state of optimization to `/home/docs/checkouts/readthedocs.org/user_builds/pyboa/checkouts/0.8.8/docs/examples/moo_run_20230811T163738/scheduler.json`.
Boa version: 0.8.9.dev0+gad156f0.d20230811
[INFO 2023-08-11 16:38:47,505 MainProcess] boa: Saved optimization parametrization and objective to `/home/docs/checkouts/readthedocs.org/user_builds/pyboa/checkouts/0.8.8/docs/examples/moo_run_20230811T163738/optimization.csv`.
[INFO 2023-08-11 16:38:47,669 MainProcess] boa: Trials so far: 35
Running trials: 
Will Produce next trials from generation step: MOO
Best trial so far: {13: {'branin': -17.508296966552734, 'currin': -1.180408000946045},
 17: {'branin': -5.456631660461426, 'currin': -3.1790568828582764},
 18: {'branin': -10.850420951843262, 'currin': -2.118943214416504},
 20: {'branin': -4.101330757141113, 'currin': -3.619260549545288},
 21: {'branin': -14.053752899169922, 'currin': -1.6379365921020508},
 22: {'branin': -7.977751731872559, 'currin': -2.6222782135009766},
 23: {'branin': -1.812485694885254, 'currin': -4.517035484313965},
 24: {'branin': -12.423710823059082, 'currin': -1.8745335340499878},
 25: {'branin': -6.6635589599609375, 'currin': -2.891352415084839},
 26: {'branin': -2.915264129638672, 'currin': -4.022140979766846},
 27: {'branin': -0.952265739440918, 'currin': -5.013603210449219},
 28: {'branin': -9.38033676147461, 'currin': -2.365352153778076},
 29: {'branin': -15.753107070922852, 'currin': -1.4061617851257324},
 31: {'branin': -4.728094577789307, 'currin': -3.3888683319091797},
 32: {'branin': -2.3074898719787598, 'currin': -4.2647199630737305},
 33: {'branin': -1.3240127563476562, 'currin': -4.739828109741211},
 34: {'branin': -3.5054941177368164, 'currin': -3.803755760192871}}
[INFO 08-11 16:38:47] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-11 16:38:49] Scheduler: Running trials [35]...
[INFO 08-11 16:38:50] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-11 16:38:51] Scheduler: Running trials [36]...
[INFO 08-11 16:38:52] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-11 16:38:53] Scheduler: Running trials [37]...
[INFO 08-11 16:38:55] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-11 16:38:55] Scheduler: Generated all trials that can be generated currently. Max parallelism currently reached.
[INFO 08-11 16:38:55] Scheduler: Retrieved COMPLETED trials: 35 - 37.
[INFO 08-11 16:38:55] Scheduler: Fetching data for trials: 35 - 37.
[ERROR 2023-08-11 16:38:55,043 MainProcess] boa: Object <boa.scripts.moo.Wrapper object at 0x7fded1b4d9f0> passed to `object_to_json` (of type <class 'boa.scripts.moo.Wrapper'>, module: boa.scripts.moo) is not registered with a corresponding encoder in ENCODER_REGISTRY.
[INFO 2023-08-11 16:38:55,109 MainProcess] boa: Saved JSON-serialized state of optimization to `/home/docs/checkouts/readthedocs.org/user_builds/pyboa/checkouts/0.8.8/docs/examples/moo_run_20230811T163738/scheduler.json`.
Boa version: 0.8.9.dev0+gad156f0.d20230811
[INFO 2023-08-11 16:38:55,136 MainProcess] boa: Saved optimization parametrization and objective to `/home/docs/checkouts/readthedocs.org/user_builds/pyboa/checkouts/0.8.8/docs/examples/moo_run_20230811T163738/optimization.csv`.
[INFO 2023-08-11 16:38:55,347 MainProcess] boa: Trials so far: 38
Running trials: 
Will Produce next trials from generation step: MOO
Best trial so far: {13: {'branin': -17.508296966552734, 'currin': -1.180408000946045},
 17: {'branin': -5.456631660461426, 'currin': -3.1790568828582764},
 18: {'branin': -10.850420951843262, 'currin': -2.118943214416504},
 20: {'branin': -4.101330757141113, 'currin': -3.619260549545288},
 21: {'branin': -14.053752899169922, 'currin': -1.6379365921020508},
 22: {'branin': -7.977751731872559, 'currin': -2.6222782135009766},
 23: {'branin': -1.812485694885254, 'currin': -4.517035484313965},
 24: {'branin': -12.423710823059082, 'currin': -1.8745335340499878},
 25: {'branin': -6.6635589599609375, 'currin': -2.891352415084839},
 26: {'branin': -2.915264129638672, 'currin': -4.022140979766846},
 27: {'branin': -0.952265739440918, 'currin': -5.013603210449219},
 28: {'branin': -9.38033676147461, 'currin': -2.365352153778076},
 29: {'branin': -15.753107070922852, 'currin': -1.4061617851257324},
 31: {'branin': -4.728094577789307, 'currin': -3.3888683319091797},
 32: {'branin': -2.3074898719787598, 'currin': -4.2647199630737305},
 33: {'branin': -1.3240127563476562, 'currin': -4.739828109741211},
 34: {'branin': -3.5054941177368164, 'currin': -3.803755760192871},
 35: {'branin': -11.629340171813965, 'currin': -1.9957454204559326},
 36: {'branin': -0.6664524078369141, 'currin': -5.237106800079346},
 37: {'branin': -6.045016765594482, 'currin': -3.032231569290161}}
[INFO 08-11 16:38:55] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-11 16:38:56] Scheduler: Running trials [38]...
[INFO 08-11 16:38:56] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-11 16:38:58] Scheduler: Running trials [39]...
[INFO 08-11 16:38:59] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-11 16:39:00] Scheduler: Running trials [40]...
[INFO 08-11 16:39:01] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-11 16:39:01] Scheduler: Generated all trials that can be generated currently. Max parallelism currently reached.
[INFO 08-11 16:39:01] Scheduler: Retrieved COMPLETED trials: 38 - 40.
[INFO 08-11 16:39:01] Scheduler: Fetching data for trials: 38 - 40.
[ERROR 2023-08-11 16:39:01,729 MainProcess] boa: Object <boa.scripts.moo.Wrapper object at 0x7fded1b4d9f0> passed to `object_to_json` (of type <class 'boa.scripts.moo.Wrapper'>, module: boa.scripts.moo) is not registered with a corresponding encoder in ENCODER_REGISTRY.
[INFO 2023-08-11 16:39:01,801 MainProcess] boa: Saved JSON-serialized state of optimization to `/home/docs/checkouts/readthedocs.org/user_builds/pyboa/checkouts/0.8.8/docs/examples/moo_run_20230811T163738/scheduler.json`.
Boa version: 0.8.9.dev0+gad156f0.d20230811
[INFO 2023-08-11 16:39:01,829 MainProcess] boa: Saved optimization parametrization and objective to `/home/docs/checkouts/readthedocs.org/user_builds/pyboa/checkouts/0.8.8/docs/examples/moo_run_20230811T163738/optimization.csv`.
[INFO 2023-08-11 16:39:02,009 MainProcess] boa: Trials so far: 41
Running trials: 
Will Produce next trials from generation step: MOO
Best trial so far: {13: {'branin': -17.508296966552734, 'currin': -1.180408000946045},
 17: {'branin': -5.456631660461426, 'currin': -3.1790568828582764},
 18: {'branin': -10.850420951843262, 'currin': -2.118943214416504},
 20: {'branin': -4.101330757141113, 'currin': -3.619260549545288},
 21: {'branin': -14.053752899169922, 'currin': -1.6379365921020508},
 22: {'branin': -7.977751731872559, 'currin': -2.6222782135009766},
 23: {'branin': -1.812485694885254, 'currin': -4.517035484313965},
 24: {'branin': -12.423710823059082, 'currin': -1.8745335340499878},
 25: {'branin': -6.6635589599609375, 'currin': -2.891352415084839},
 26: {'branin': -2.915264129638672, 'currin': -4.022140979766846},
 27: {'branin': -0.952265739440918, 'currin': -5.013603210449219},
 28: {'branin': -9.38033676147461, 'currin': -2.365352153778076},
 29: {'branin': -15.753107070922852, 'currin': -1.4061617851257324},
 31: {'branin': -4.728094577789307, 'currin': -3.3888683319091797},
 32: {'branin': -2.3074898719787598, 'currin': -4.2647199630737305},
 33: {'branin': -1.3240127563476562, 'currin': -4.739828109741211},
 34: {'branin': -3.5054941177368164, 'currin': -3.803755760192871},
 35: {'branin': -11.629340171813965, 'currin': -1.9957454204559326},
 36: {'branin': -0.6664524078369141, 'currin': -5.237106800079346},
 37: {'branin': -6.045016765594482, 'currin': -3.032231569290161},
 38: {'branin': -7.30975866317749, 'currin': -2.754783868789673},
 39: {'branin': -0.4651317596435547, 'currin': -5.456742763519287},
 40: {'branin': -16.62240982055664, 'currin': -1.2927361726760864}}
[INFO 08-11 16:39:02] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-11 16:39:03] Scheduler: Running trials [41]...
[INFO 08-11 16:39:04] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-11 16:39:05] Scheduler: Running trials [42]...
[INFO 08-11 16:39:06] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-11 16:39:08] Scheduler: Running trials [43]...
[INFO 08-11 16:39:09] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-11 16:39:09] Scheduler: Generated all trials that can be generated currently. Max parallelism currently reached.
[INFO 08-11 16:39:09] Scheduler: Retrieved COMPLETED trials: 41 - 43.
[INFO 08-11 16:39:09] Scheduler: Fetching data for trials: 41 - 43.
[ERROR 2023-08-11 16:39:09,228 MainProcess] boa: Object <boa.scripts.moo.Wrapper object at 0x7fded1b4d9f0> passed to `object_to_json` (of type <class 'boa.scripts.moo.Wrapper'>, module: boa.scripts.moo) is not registered with a corresponding encoder in ENCODER_REGISTRY.
[INFO 2023-08-11 16:39:09,304 MainProcess] boa: Saved JSON-serialized state of optimization to `/home/docs/checkouts/readthedocs.org/user_builds/pyboa/checkouts/0.8.8/docs/examples/moo_run_20230811T163738/scheduler.json`.
Boa version: 0.8.9.dev0+gad156f0.d20230811
[INFO 2023-08-11 16:39:09,332 MainProcess] boa: Saved optimization parametrization and objective to `/home/docs/checkouts/readthedocs.org/user_builds/pyboa/checkouts/0.8.8/docs/examples/moo_run_20230811T163738/optimization.csv`.
[INFO 2023-08-11 16:39:09,532 MainProcess] boa: Trials so far: 44
Running trials: 
Will Produce next trials from generation step: MOO
Best trial so far: {13: {'branin': -17.508296966552734, 'currin': -1.180408000946045},
 17: {'branin': -5.456631660461426, 'currin': -3.1790568828582764},
 18: {'branin': -10.850420951843262, 'currin': -2.118943214416504},
 20: {'branin': -4.101330757141113, 'currin': -3.619260549545288},
 21: {'branin': -14.053752899169922, 'currin': -1.6379365921020508},
 22: {'branin': -7.977751731872559, 'currin': -2.6222782135009766},
 23: {'branin': -1.812485694885254, 'currin': -4.517035484313965},
 24: {'branin': -12.423710823059082, 'currin': -1.8745335340499878},
 25: {'branin': -6.6635589599609375, 'currin': -2.891352415084839},
 26: {'branin': -2.915264129638672, 'currin': -4.022140979766846},
 27: {'branin': -0.952265739440918, 'currin': -5.013603210449219},
 28: {'branin': -9.38033676147461, 'currin': -2.365352153778076},
 29: {'branin': -15.753107070922852, 'currin': -1.4061617851257324},
 31: {'branin': -4.728094577789307, 'currin': -3.3888683319091797},
 32: {'branin': -2.3074898719787598, 'currin': -4.2647199630737305},
 33: {'branin': -1.3240127563476562, 'currin': -4.739828109741211},
 34: {'branin': -3.5054941177368164, 'currin': -3.803755760192871},
 35: {'branin': -11.629340171813965, 'currin': -1.9957454204559326},
 36: {'branin': -0.6664524078369141, 'currin': -5.237106800079346},
 37: {'branin': -6.045016765594482, 'currin': -3.032231569290161},
 38: {'branin': -7.30975866317749, 'currin': -2.754783868789673},
 39: {'branin': -0.4651317596435547, 'currin': -5.456742763519287},
 40: {'branin': -16.62240982055664, 'currin': -1.2927361726760864},
 41: {'branin': -5.08248233795166, 'currin': -3.281667947769165},
 42: {'branin': -10.107715606689453, 'currin': -2.240945816040039},
 43: {'branin': -8.670125961303711, 'currin': -2.492302656173706}}
[INFO 08-11 16:39:09] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-11 16:39:11] Scheduler: Running trials [44]...
[INFO 08-11 16:39:12] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-11 16:39:13] Scheduler: Running trials [45]...
[INFO 08-11 16:39:13] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-11 16:39:14] Scheduler: Running trials [46]...
[INFO 08-11 16:39:15] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-11 16:39:15] Scheduler: Generated all trials that can be generated currently. Max parallelism currently reached.
[INFO 08-11 16:39:15] Scheduler: Retrieved COMPLETED trials: 44 - 46.
[INFO 08-11 16:39:15] Scheduler: Fetching data for trials: 44 - 46.
[ERROR 2023-08-11 16:39:15,733 MainProcess] boa: Object <boa.scripts.moo.Wrapper object at 0x7fded1b4d9f0> passed to `object_to_json` (of type <class 'boa.scripts.moo.Wrapper'>, module: boa.scripts.moo) is not registered with a corresponding encoder in ENCODER_REGISTRY.
[INFO 2023-08-11 16:39:15,815 MainProcess] boa: Saved JSON-serialized state of optimization to `/home/docs/checkouts/readthedocs.org/user_builds/pyboa/checkouts/0.8.8/docs/examples/moo_run_20230811T163738/scheduler.json`.
Boa version: 0.8.9.dev0+gad156f0.d20230811
[INFO 2023-08-11 16:39:15,843 MainProcess] boa: Saved optimization parametrization and objective to `/home/docs/checkouts/readthedocs.org/user_builds/pyboa/checkouts/0.8.8/docs/examples/moo_run_20230811T163738/optimization.csv`.
[INFO 2023-08-11 16:39:16,034 MainProcess] boa: Trials so far: 47
Running trials: 
Will Produce next trials from generation step: MOO
Best trial so far: {13: {'branin': -17.508296966552734, 'currin': -1.180408000946045},
 17: {'branin': -5.456631660461426, 'currin': -3.1790568828582764},
 18: {'branin': -10.850420951843262, 'currin': -2.118943214416504},
 20: {'branin': -4.101330757141113, 'currin': -3.619260549545288},
 21: {'branin': -14.053752899169922, 'currin': -1.6379365921020508},
 22: {'branin': -7.977751731872559, 'currin': -2.6222782135009766},
 23: {'branin': -1.812485694885254, 'currin': -4.517035484313965},
 24: {'branin': -12.423710823059082, 'currin': -1.8745335340499878},
 25: {'branin': -6.6635589599609375, 'currin': -2.891352415084839},
 26: {'branin': -2.915264129638672, 'currin': -4.022140979766846},
 27: {'branin': -0.952265739440918, 'currin': -5.013603210449219},
 28: {'branin': -9.38033676147461, 'currin': -2.365352153778076},
 29: {'branin': -15.753107070922852, 'currin': -1.4061617851257324},
 31: {'branin': -4.728094577789307, 'currin': -3.3888683319091797},
 32: {'branin': -2.3074898719787598, 'currin': -4.2647199630737305},
 33: {'branin': -1.3240127563476562, 'currin': -4.739828109741211},
 34: {'branin': -3.5054941177368164, 'currin': -3.803755760192871},
 35: {'branin': -11.629340171813965, 'currin': -1.9957454204559326},
 36: {'branin': -0.6664524078369141, 'currin': -5.237106800079346},
 37: {'branin': -6.045016765594482, 'currin': -3.032231569290161},
 38: {'branin': -7.30975866317749, 'currin': -2.754783868789673},
 39: {'branin': -0.4651317596435547, 'currin': -5.456742763519287},
 40: {'branin': -16.62240982055664, 'currin': -1.2927361726760864},
 41: {'branin': -5.08248233795166, 'currin': -3.281667947769165},
 42: {'branin': -10.107715606689453, 'currin': -2.240945816040039},
 43: {'branin': -8.670125961303711, 'currin': -2.492302656173706},
 44: {'branin': -1.5569028854370117, 'currin': -4.607703685760498},
 45: {'branin': -13.231683731079102, 'currin': -1.7553508281707764},
 46: {'branin': -2.0187549591064453, 'currin': -4.388962268829346}}
[INFO 08-11 16:39:16] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-11 16:39:17] Scheduler: Running trials [47]...
[INFO 08-11 16:39:17] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-11 16:39:18] Scheduler: Running trials [48]...
[INFO 08-11 16:39:19] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 08-11 16:39:21] Scheduler: Running trials [49]...
[INFO 08-11 16:39:22] Scheduler: Retrieved COMPLETED trials: 47 - 49.
[INFO 08-11 16:39:22] Scheduler: Fetching data for trials: 47 - 49.
[ERROR 2023-08-11 16:39:22,191 MainProcess] boa: Object <boa.scripts.moo.Wrapper object at 0x7fded1b4d9f0> passed to `object_to_json` (of type <class 'boa.scripts.moo.Wrapper'>, module: boa.scripts.moo) is not registered with a corresponding encoder in ENCODER_REGISTRY.
[INFO 2023-08-11 16:39:22,278 MainProcess] boa: Saved JSON-serialized state of optimization to `/home/docs/checkouts/readthedocs.org/user_builds/pyboa/checkouts/0.8.8/docs/examples/moo_run_20230811T163738/scheduler.json`.
Boa version: 0.8.9.dev0+gad156f0.d20230811
[INFO 2023-08-11 16:39:22,307 MainProcess] boa: Saved optimization parametrization and objective to `/home/docs/checkouts/readthedocs.org/user_builds/pyboa/checkouts/0.8.8/docs/examples/moo_run_20230811T163738/optimization.csv`.
[INFO 2023-08-11 16:39:22,521 MainProcess] boa: Trials so far: 50
Running trials: 
Will Produce next trials from generation step: MOO
Best trial so far: {13: {'branin': -17.508296966552734, 'currin': -1.180408000946045},
 17: {'branin': -5.456631660461426, 'currin': -3.1790568828582764},
 18: {'branin': -10.850420951843262, 'currin': -2.118943214416504},
 20: {'branin': -4.101330757141113, 'currin': -3.619260549545288},
 21: {'branin': -14.053752899169922, 'currin': -1.6379365921020508},
 22: {'branin': -7.977751731872559, 'currin': -2.6222782135009766},
 23: {'branin': -1.812485694885254, 'currin': -4.517035484313965},
 24: {'branin': -12.423710823059082, 'currin': -1.8745335340499878},
 25: {'branin': -6.6635589599609375, 'currin': -2.891352415084839},
 26: {'branin': -2.915264129638672, 'currin': -4.022140979766846},
 27: {'branin': -0.952265739440918, 'currin': -5.013603210449219},
 28: {'branin': -9.38033676147461, 'currin': -2.365352153778076},
 29: {'branin': -15.753107070922852, 'currin': -1.4061617851257324},
 31: {'branin': -4.728094577789307, 'currin': -3.3888683319091797},
 32: {'branin': -2.3074898719787598, 'currin': -4.2647199630737305},
 33: {'branin': -1.3240127563476562, 'currin': -4.739828109741211},
 34: {'branin': -3.5054941177368164, 'currin': -3.803755760192871},
 35: {'branin': -11.629340171813965, 'currin': -1.9957454204559326},
 36: {'branin': -0.6664524078369141, 'currin': -5.237106800079346},
 37: {'branin': -6.045016765594482, 'currin': -3.032231569290161},
 38: {'branin': -7.30975866317749, 'currin': -2.754783868789673},
 39: {'branin': -0.4651317596435547, 'currin': -5.456742763519287},
 40: {'branin': -16.62240982055664, 'currin': -1.2927361726760864},
 41: {'branin': -5.08248233795166, 'currin': -3.281667947769165},
 42: {'branin': -10.107715606689453, 'currin': -2.240945816040039},
 43: {'branin': -8.670125961303711, 'currin': -2.492302656173706},
 44: {'branin': -1.5569028854370117, 'currin': -4.607703685760498},
 45: {'branin': -13.231683731079102, 'currin': -1.7553508281707764},
 46: {'branin': -2.0187549591064453, 'currin': -4.388962268829346},
 47: {'branin': -3.8031392097473145, 'currin': -3.69888973236084},
 48: {'branin': -14.896923065185547, 'currin': -1.5211905241012573},
 49: {'branin': -2.606822967529297, 'currin': -4.141735076904297}}
[ERROR 2023-08-11 16:39:22,523 MainProcess] boa: Object <boa.scripts.moo.Wrapper object at 0x7fded1b4d9f0> passed to `object_to_json` (of type <class 'boa.scripts.moo.Wrapper'>, module: boa.scripts.moo) is not registered with a corresponding encoder in ENCODER_REGISTRY.
[INFO 2023-08-11 16:39:22,609 MainProcess] boa: Saved JSON-serialized state of optimization to `/home/docs/checkouts/readthedocs.org/user_builds/pyboa/checkouts/0.8.8/docs/examples/moo_run_20230811T163738/scheduler.json`.
Boa version: 0.8.9.dev0+gad156f0.d20230811
[INFO 2023-08-11 16:39:22,640 MainProcess] boa: Saved optimization parametrization and objective to `/home/docs/checkouts/readthedocs.org/user_builds/pyboa/checkouts/0.8.8/docs/examples/moo_run_20230811T163738/optimization.csv`.
[INFO 08-11 16:39:22] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
[INFO 2023-08-11 16:39:22,677 MainProcess] boa: Trials so far: 50
Running trials: 
Will Produce next trials from generation step: MOO
Best trial so far: {13: {'branin': -17.508296966552734, 'currin': -1.180408000946045},
 17: {'branin': -5.456631660461426, 'currin': -3.1790568828582764},
 18: {'branin': -10.850420951843262, 'currin': -2.118943214416504},
 20: {'branin': -4.101330757141113, 'currin': -3.619260549545288},
 21: {'branin': -14.053752899169922, 'currin': -1.6379365921020508},
 22: {'branin': -7.977751731872559, 'currin': -2.6222782135009766},
 23: {'branin': -1.812485694885254, 'currin': -4.517035484313965},
 24: {'branin': -12.423710823059082, 'currin': -1.8745335340499878},
 25: {'branin': -6.6635589599609375, 'currin': -2.891352415084839},
 26: {'branin': -2.915264129638672, 'currin': -4.022140979766846},
 27: {'branin': -0.952265739440918, 'currin': -5.013603210449219},
 28: {'branin': -9.38033676147461, 'currin': -2.365352153778076},
 29: {'branin': -15.753107070922852, 'currin': -1.4061617851257324},
 31: {'branin': -4.728094577789307, 'currin': -3.3888683319091797},
 32: {'branin': -2.3074898719787598, 'currin': -4.2647199630737305},
 33: {'branin': -1.3240127563476562, 'currin': -4.739828109741211},
 34: {'branin': -3.5054941177368164, 'currin': -3.803755760192871},
 35: {'branin': -11.629340171813965, 'currin': -1.9957454204559326},
 36: {'branin': -0.6664524078369141, 'currin': -5.237106800079346},
 37: {'branin': -6.045016765594482, 'currin': -3.032231569290161},
 38: {'branin': -7.30975866317749, 'currin': -2.754783868789673},
 39: {'branin': -0.4651317596435547, 'currin': -5.456742763519287},
 40: {'branin': -16.62240982055664, 'currin': -1.2927361726760864},
 41: {'branin': -5.08248233795166, 'currin': -3.281667947769165},
 42: {'branin': -10.107715606689453, 'currin': -2.240945816040039},
 43: {'branin': -8.670125961303711, 'currin': -2.492302656173706},
 44: {'branin': -1.5569028854370117, 'currin': -4.607703685760498},
 45: {'branin': -13.231683731079102, 'currin': -1.7553508281707764},
 46: {'branin': -2.0187549591064453, 'currin': -4.388962268829346},
 47: {'branin': -3.8031392097473145, 'currin': -3.69888973236084},
 48: {'branin': -14.896923065185547, 'currin': -1.5211905241012573},
 49: {'branin': -2.606822967529297, 'currin': -4.141735076904297}}
[INFO 2023-08-11 16:39:22,710 MainProcess] boa: 

##############################################

Trials Completed!
BOA Experiment Run
Output Experiment Dir: /home/docs/checkouts/readthedocs.org/user_builds/pyboa/checkouts/0.8.8/docs/examples/moo_run_20230811T163738
Start Time: 20230811T163738
Version: 0.8.9.dev0+gad156f0.d20230811
End Time: 20230811T163922
Total Run Time: 104.34189820289612

    trial_index arm_name trial_status generation_method      branin  \
0             0      0_0    COMPLETED             Sobol   -2.193543   
1             1      1_0    COMPLETED             Sobol  -63.826210   
2             2      2_0    COMPLETED             Sobol -100.926003   
3             3      3_0    COMPLETED             Sobol  -58.000885   
4             4      4_0    COMPLETED             Sobol  -26.762484   
5             5      5_0    COMPLETED               MOO  -17.288162   
6             6      6_0    COMPLETED               MOO   -8.931918   
7             7      7_0    COMPLETED               MOO  -93.663002   
8             8      8_0    COMPLETED               MOO   -9.932772   
9             9      9_0    COMPLETED               MOO -145.872208   
10           10     10_0    COMPLETED               MOO  -30.126415   
11           11     11_0    COMPLETED               MOO  -18.562027   
12           12     12_0    COMPLETED               MOO  -52.582935   
13           13     13_0    COMPLETED               MOO  -17.508297   
14           14     14_0    COMPLETED               MOO  -31.839594   
15           15     15_0    COMPLETED               MOO  -23.409067   
16           16     16_0    COMPLETED               MOO  -43.511116   
17           17     17_0    COMPLETED               MOO   -5.456632   
18           18     18_0    COMPLETED               MOO  -10.850421   
19           19     19_0    COMPLETED               MOO   -3.690049   
20           20     20_0    COMPLETED               MOO   -4.101331   
21           21     21_0    COMPLETED               MOO  -14.053753   
22           22     22_0    COMPLETED               MOO   -7.977752   
23           23     23_0    COMPLETED               MOO   -1.812486   
24           24     24_0    COMPLETED               MOO  -12.423711   
25           25     25_0    COMPLETED               MOO   -6.663559   
26           26     26_0    COMPLETED               MOO   -2.915264   
27           27     27_0    COMPLETED               MOO   -0.952266   
28           28     28_0    COMPLETED               MOO   -9.380337   
29           29     29_0    COMPLETED               MOO  -15.753107   
30           30     30_0    COMPLETED               MOO   -0.987803   
31           31     31_0    COMPLETED               MOO   -4.728095   
32           32     32_0    COMPLETED               MOO   -2.307490   
33           33     33_0    COMPLETED               MOO   -1.324013   
34           34     34_0    COMPLETED               MOO   -3.505494   
35           35     35_0    COMPLETED               MOO  -11.629340   
36           36     36_0    COMPLETED               MOO   -0.666452   
37           37     37_0    COMPLETED               MOO   -6.045017   
38           38     38_0    COMPLETED               MOO   -7.309759   
39           39     39_0    COMPLETED               MOO   -0.465132   
40           40     40_0    COMPLETED               MOO  -16.622410   
41           41     41_0    COMPLETED               MOO   -5.082482   
42           42     42_0    COMPLETED               MOO  -10.107716   
43           43     43_0    COMPLETED               MOO   -8.670126   
44           44     44_0    COMPLETED               MOO   -1.556903   
45           45     45_0    COMPLETED               MOO  -13.231684   
46           46     46_0    COMPLETED               MOO   -2.018755   
47           47     47_0    COMPLETED               MOO   -3.803139   
48           48     48_0    COMPLETED               MOO  -14.896923   
49           49     49_0    COMPLETED               MOO   -2.606823   

       currin  is_feasible        x0        x1  
0   -9.131011        False  0.940524  0.224564  
1  -12.030728        False  0.157166  0.214496  
2   -7.237036        False  0.064131  0.312555  
3   -6.389218        False  0.824799  0.525802  
4   -7.304705        False  0.308640  0.626811  
5   -8.091130        False  0.461521  0.444864  
6  -10.190450        False  0.986451  0.000000  
7   -5.238615        False  0.329519  0.979883  
8   -7.367684        False  1.000000  0.388637  
9   -4.005316        False  1.000000  1.000000  
10 -12.322750        False  0.418845  0.000000  
11 -10.723989        False  0.704596  0.000000  
12  -6.222844        False  0.482649  0.670020  
13  -1.180408         True  0.000000  1.000000  
14  -1.329088        False  0.000000  0.854346  
15  -1.249744        False  0.000000  0.927901  
16  -1.425069        False  0.000000  0.775915  
17  -3.179057         True  0.052035  1.000000  
18  -2.118943         True  0.023237  1.000000  
19  -4.211072         True  0.087733  1.000000  
20  -3.619261         True  0.065816  1.000000  
21  -1.637937         True  0.011216  1.000000  
22  -2.622278         True  0.036365  1.000000  
23  -4.517035         True  0.091021  0.934117  
24  -1.874534         True  0.017084  1.000000  
25  -2.891352         True  0.043746  1.000000  
26  -4.022141         True  0.075574  0.960453  
27  -5.013603         True  0.105973  0.892540  
28  -2.365352         True  0.029572  1.000000  
29  -1.406162         True  0.005521  1.000000  
30  -5.322257         True  0.119465  0.879292  
31  -3.388868         True  0.058342  0.999175  
32  -4.264720         True  0.082243  0.942423  
33  -4.739828         True  0.096504  0.909374  
34  -3.803756         True  0.069440  0.973640  
35  -1.995745         True  0.020122  1.000000  
36  -5.237107         True  0.112349  0.869902  
37  -3.032232         True  0.047747  1.000000  
38  -2.754784         True  0.039961  1.000000  
39  -5.456743         True  0.117836  0.844044  
40  -1.292736         True  0.002746  1.000000  
41  -3.281668         True  0.055113  1.000000  
42  -2.240946         True  0.026355  1.000000  
43  -2.492303         True  0.032901  1.000000  
44  -4.607704         True  0.091681  0.914053  
45  -1.755351         True  0.014119  1.000000  
46  -4.388962         True  0.085419  0.930753  
47  -3.698890         True  0.066627  0.980597  
48  -1.521191         True  0.008342  1.000000  
49  -4.141735         True  0.078586  0.949509  

##############################################

Get the Best Trial#

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
[INFO 08-11 16:39:22] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
{13: {'params': {'x0': 0.0, 'x1': 1.0},
  'means': {'branin': -17.50612871647819, 'currin': -1.1801004499675236},
  'cov_matrix': {'branin': {'branin': 0.0001283381228454453, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 4.598433885954105e-06}}},
 17: {'params': {'x0': 0.05203450605953412, 'x1': 1.0},
  'means': {'branin': -5.456585654804062, 'currin': -3.1790542798088843},
  'cov_matrix': {'branin': {'branin': 5.3601544617240775e-05, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 1.647453183727012e-06}}},
 18: {'params': {'x0': 0.023237135349614718, 'x1': 1.0},
  'means': {'branin': -10.850276443946116, 'currin': -2.1188885736790257},
  'cov_matrix': {'branin': {'branin': 4.657063419877354e-05, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 1.3791263092877084e-06}}},
 20: {'params': {'x0': 0.0658158366594332, 'x1': 1.0},
  'means': {'branin': -4.1028417232353895, 'currin': -3.6192209444417784},
  'cov_matrix': {'branin': {'branin': 0.000149647401654041, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 4.1190543202483394e-06}}},
 21: {'params': {'x0': 0.011215603413767292, 'x1': 1.0},
  'means': {'branin': -14.053895050706299, 'currin': -1.638076602913097},
  'cov_matrix': {'branin': {'branin': 4.596235566125557e-05, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 1.5192865205099992e-06}}},
 22: {'params': {'x0': 0.03636469865528415, 'x1': 1.0},
  'means': {'branin': -7.977789373910746, 'currin': -2.622258888857921},
  'cov_matrix': {'branin': {'branin': 5.137751821083932e-05, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 1.519926541878023e-06}}},
 23: {'params': {'x0': 0.09102111616476667, 'x1': 0.934116582546777},
  'means': {'branin': -1.8130137235232553, 'currin': -4.517543043095001},
  'cov_matrix': {'branin': {'branin': 0.0001568060406409213, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 3.828899400329084e-06}}},
 24: {'params': {'x0': 0.01708388128533853, 'x1': 1.0},
  'means': {'branin': -12.423269439950067, 'currin': -1.8745527183124584},
  'cov_matrix': {'branin': {'branin': 4.540382237555237e-05, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 1.4083579607912953e-06}}},
 25: {'params': {'x0': 0.04374628938171563, 'x1': 1.0},
  'means': {'branin': -6.663644311536508, 'currin': -2.8913564761680233},
  'cov_matrix': {'branin': {'branin': 5.593159307004619e-05, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 1.6186170141005387e-06}}},
 26: {'params': {'x0': 0.07557399963886184, 'x1': 0.9604531907396057},
  'means': {'branin': -2.9157589436116726, 'currin': -4.022216859022937},
  'cov_matrix': {'branin': {'branin': 9.944290651413058e-05, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 2.1162329523662616e-06}}},
 27: {'params': {'x0': 0.10597263172039384, 'x1': 0.8925403944662526},
  'means': {'branin': -0.9531718459777849, 'currin': -5.013621011690963},
  'cov_matrix': {'branin': {'branin': 0.0001447951236311089, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 3.755154684957933e-06}}},
 28: {'params': {'x0': 0.02957204520974565, 'x1': 1.0},
  'means': {'branin': -9.380388586188698, 'currin': -2.365298470098763},
  'cov_matrix': {'branin': {'branin': 4.834749169429364e-05, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 1.4364897576292863e-06}}},
 29: {'params': {'x0': 0.0055211189688683104, 'x1': 1.0},
  'means': {'branin': -15.754477057135967, 'currin': -1.4063013792016368},
  'cov_matrix': {'branin': {'branin': 5.091487199600687e-05, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 1.5416137005207738e-06}}},
 31: {'params': {'x0': 0.05834153023782312, 'x1': 0.9991747886097033},
  'means': {'branin': -4.7273800377120185, 'currin': -3.388853334693998},
  'cov_matrix': {'branin': {'branin': 6.69563541879663e-05, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 1.864998873966795e-06}}},
 32: {'params': {'x0': 0.08224276040284126, 'x1': 0.942422952768897},
  'means': {'branin': -2.307060420072938, 'currin': -4.2647403984305505},
  'cov_matrix': {'branin': {'branin': 7.400971863460959e-05, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 1.8675551050391696e-06}}},
 33: {'params': {'x0': 0.09650359917465445, 'x1': 0.9093742663445639},
  'means': {'branin': -1.3233054402673528, 'currin': -4.739833447870833},
  'cov_matrix': {'branin': {'branin': 0.00010435169237901257, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 2.6316398992426973e-06}}},
 34: {'params': {'x0': 0.06943995566372359, 'x1': 0.9736395703099116},
  'means': {'branin': -3.5056040757862643, 'currin': -3.803793459068938},
  'cov_matrix': {'branin': {'branin': 8.459370571915386e-05, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 2.4593442477408413e-06}}},
 35: {'params': {'x0': 0.020121745427913274, 'x1': 1.0},
  'means': {'branin': -11.62900951044052, 'currin': -1.995717493179788},
  'cov_matrix': {'branin': {'branin': 4.609451324146071e-05, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 1.375508249079011e-06}}},
 36: {'params': {'x0': 0.11234941277601834, 'x1': 0.8699017556766556},
  'means': {'branin': -0.6660112255476829, 'currin': -5.236771335536666},
  'cov_matrix': {'branin': {'branin': 0.00015806521795040443, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 3.787719150625096e-06}}},
 37: {'params': {'x0': 0.04774672444463946, 'x1': 1.0},
  'means': {'branin': -6.045105640679866, 'currin': -3.0322364587051216},
  'cov_matrix': {'branin': {'branin': 5.6625149376261205e-05, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 1.6375470694589571e-06}}},
 38: {'params': {'x0': 0.03996098452781553, 'x1': 1.0},
  'means': {'branin': -7.309809884597281, 'currin': -2.7547793961815437},
  'cov_matrix': {'branin': {'branin': 5.340893628881923e-05, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 1.572337277593867e-06}}},
 39: {'params': {'x0': 0.11783575021336015, 'x1': 0.8440443364894583},
  'means': {'branin': -0.4656128282247689, 'currin': -5.456868521740408},
  'cov_matrix': {'branin': {'branin': 0.00016883327895710241, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 7.076124175865344e-06}}},
 40: {'params': {'x0': 0.0027455685218516056, 'x1': 1.0},
  'means': {'branin': -16.623200268956026, 'currin': -1.2927333100816574},
  'cov_matrix': {'branin': {'branin': 5.356686380435479e-05, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 2.1363142521125607e-06}}},
 41: {'params': {'x0': 0.05511253317860454, 'x1': 1.0},
  'means': {'branin': -5.082255577770631, 'currin': -3.2816565883583677},
  'cov_matrix': {'branin': {'branin': 5.6493018374053116e-05, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 1.7252077982645935e-06}}},
 42: {'params': {'x0': 0.0263546645956135, 'x1': 1.0},
  'means': {'branin': -10.10770965153859, 'currin': -2.240884488653711},
  'cov_matrix': {'branin': {'branin': 4.7240180908928485e-05, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 1.4037155034662112e-06}}},
 43: {'params': {'x0': 0.032901205897832915, 'x1': 1.0},
  'means': {'branin': -8.670176989219758, 'currin': -2.4922654705300538},
  'cov_matrix': {'branin': {'branin': 4.9766112220200774e-05, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 1.4742813555383564e-06}}},
 44: {'params': {'x0': 0.09168115288618003, 'x1': 0.9140534069660875},
  'means': {'branin': -1.557052526340934, 'currin': -4.607372250065823},
  'cov_matrix': {'branin': {'branin': 0.00011191467466689531, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 2.972615870816276e-06}}},
 45: {'params': {'x0': 0.014118986676679964, 'x1': 1.0},
  'means': {'branin': -13.231369684301999, 'currin': -1.755431254498077},
  'cov_matrix': {'branin': {'branin': 4.4807260657425975e-05, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 1.4708610089804302e-06}}},
 46: {'params': {'x0': 0.0854193006653092, 'x1': 0.9307528158024131},
  'means': {'branin': -2.018709144849028, 'currin': -4.388784205706403},
  'cov_matrix': {'branin': {'branin': 0.0001020187750126395, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 2.193950701105459e-06}}},
 47: {'params': {'x0': 0.06662741330447378, 'x1': 0.980596996858974},
  'means': {'branin': -3.8022588755837106, 'currin': -3.6989327019048055},
  'cov_matrix': {'branin': {'branin': 0.00010626647110481345, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 2.4624156994936675e-06}}},
 48: {'params': {'x0': 0.008342318515166378, 'x1': 1.0},
  'means': {'branin': -14.897785501660042, 'currin': -1.5213626904489184},
  'cov_matrix': {'branin': {'branin': 4.9508426004883646e-05, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 1.509448577952391e-06}}},
 49: {'params': {'x0': 0.07858564508878803, 'x1': 0.9495088262544781},
  'means': {'branin': -2.6070300466653897, 'currin': -4.141687316811918},
  'cov_matrix': {'branin': {'branin': 8.110052015324177e-05, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 2.045701748959918e-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
[INFO 08-11 16:39:22] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
{13: {'params': {'x0': 0.0, 'x1': 1.0},
  'means': {'branin': -17.508296966552734, 'currin': -1.180408000946045},
  'cov_matrix': {'branin': {'branin': 0.0, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 0.0}}},
 17: {'params': {'x0': 0.05203450605953412, 'x1': 1.0},
  'means': {'branin': -5.456631660461426, 'currin': -3.1790568828582764},
  'cov_matrix': {'branin': {'branin': 0.0, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 0.0}}},
 18: {'params': {'x0': 0.023237135349614718, 'x1': 1.0},
  'means': {'branin': -10.850420951843262, 'currin': -2.118943214416504},
  'cov_matrix': {'branin': {'branin': 0.0, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 0.0}}},
 20: {'params': {'x0': 0.0658158366594332, 'x1': 1.0},
  'means': {'branin': -4.101330757141113, 'currin': -3.619260549545288},
  'cov_matrix': {'branin': {'branin': 0.0, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 0.0}}},
 21: {'params': {'x0': 0.011215603413767292, 'x1': 1.0},
  'means': {'branin': -14.053752899169922, 'currin': -1.6379365921020508},
  'cov_matrix': {'branin': {'branin': 0.0, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 0.0}}},
 22: {'params': {'x0': 0.03636469865528415, 'x1': 1.0},
  'means': {'branin': -7.977751731872559, 'currin': -2.6222782135009766},
  'cov_matrix': {'branin': {'branin': 0.0, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 0.0}}},
 23: {'params': {'x0': 0.09102111616476667, 'x1': 0.934116582546777},
  'means': {'branin': -1.812485694885254, 'currin': -4.517035484313965},
  'cov_matrix': {'branin': {'branin': 0.0, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 0.0}}},
 24: {'params': {'x0': 0.01708388128533853, 'x1': 1.0},
  'means': {'branin': -12.423710823059082, 'currin': -1.8745335340499878},
  'cov_matrix': {'branin': {'branin': 0.0, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 0.0}}},
 25: {'params': {'x0': 0.04374628938171563, 'x1': 1.0},
  'means': {'branin': -6.6635589599609375, 'currin': -2.891352415084839},
  'cov_matrix': {'branin': {'branin': 0.0, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 0.0}}},
 26: {'params': {'x0': 0.07557399963886184, 'x1': 0.9604531907396057},
  'means': {'branin': -2.915264129638672, 'currin': -4.022140979766846},
  'cov_matrix': {'branin': {'branin': 0.0, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 0.0}}},
 27: {'params': {'x0': 0.10597263172039384, 'x1': 0.8925403944662526},
  'means': {'branin': -0.952265739440918, 'currin': -5.013603210449219},
  'cov_matrix': {'branin': {'branin': 0.0, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 0.0}}},
 28: {'params': {'x0': 0.02957204520974565, 'x1': 1.0},
  'means': {'branin': -9.38033676147461, 'currin': -2.365352153778076},
  'cov_matrix': {'branin': {'branin': 0.0, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 0.0}}},
 29: {'params': {'x0': 0.0055211189688683104, 'x1': 1.0},
  'means': {'branin': -15.753107070922852, 'currin': -1.4061617851257324},
  'cov_matrix': {'branin': {'branin': 0.0, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 0.0}}},
 31: {'params': {'x0': 0.05834153023782312, 'x1': 0.9991747886097033},
  'means': {'branin': -4.728094577789307, 'currin': -3.3888683319091797},
  'cov_matrix': {'branin': {'branin': 0.0, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 0.0}}},
 32: {'params': {'x0': 0.08224276040284126, 'x1': 0.942422952768897},
  'means': {'branin': -2.3074898719787598, 'currin': -4.2647199630737305},
  'cov_matrix': {'branin': {'branin': 0.0, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 0.0}}},
 33: {'params': {'x0': 0.09650359917465445, 'x1': 0.9093742663445639},
  'means': {'branin': -1.3240127563476562, 'currin': -4.739828109741211},
  'cov_matrix': {'branin': {'branin': 0.0, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 0.0}}},
 34: {'params': {'x0': 0.06943995566372359, 'x1': 0.9736395703099116},
  'means': {'branin': -3.5054941177368164, 'currin': -3.803755760192871},
  'cov_matrix': {'branin': {'branin': 0.0, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 0.0}}},
 35: {'params': {'x0': 0.020121745427913274, 'x1': 1.0},
  'means': {'branin': -11.629340171813965, 'currin': -1.9957454204559326},
  'cov_matrix': {'branin': {'branin': 0.0, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 0.0}}},
 36: {'params': {'x0': 0.11234941277601834, 'x1': 0.8699017556766556},
  'means': {'branin': -0.6664524078369141, 'currin': -5.237106800079346},
  'cov_matrix': {'branin': {'branin': 0.0, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 0.0}}},
 37: {'params': {'x0': 0.04774672444463946, 'x1': 1.0},
  'means': {'branin': -6.045016765594482, 'currin': -3.032231569290161},
  'cov_matrix': {'branin': {'branin': 0.0, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 0.0}}},
 38: {'params': {'x0': 0.03996098452781553, 'x1': 1.0},
  'means': {'branin': -7.30975866317749, 'currin': -2.754783868789673},
  'cov_matrix': {'branin': {'branin': 0.0, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 0.0}}},
 39: {'params': {'x0': 0.11783575021336015, 'x1': 0.8440443364894583},
  'means': {'branin': -0.4651317596435547, 'currin': -5.456742763519287},
  'cov_matrix': {'branin': {'branin': 0.0, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 0.0}}},
 40: {'params': {'x0': 0.0027455685218516056, 'x1': 1.0},
  'means': {'branin': -16.62240982055664, 'currin': -1.2927361726760864},
  'cov_matrix': {'branin': {'branin': 0.0, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 0.0}}},
 41: {'params': {'x0': 0.05511253317860454, 'x1': 1.0},
  'means': {'branin': -5.08248233795166, 'currin': -3.281667947769165},
  'cov_matrix': {'branin': {'branin': 0.0, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 0.0}}},
 42: {'params': {'x0': 0.0263546645956135, 'x1': 1.0},
  'means': {'branin': -10.107715606689453, 'currin': -2.240945816040039},
  'cov_matrix': {'branin': {'branin': 0.0, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 0.0}}},
 43: {'params': {'x0': 0.032901205897832915, 'x1': 1.0},
  'means': {'branin': -8.670125961303711, 'currin': -2.492302656173706},
  'cov_matrix': {'branin': {'branin': 0.0, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 0.0}}},
 44: {'params': {'x0': 0.09168115288618003, 'x1': 0.9140534069660875},
  'means': {'branin': -1.5569028854370117, 'currin': -4.607703685760498},
  'cov_matrix': {'branin': {'branin': 0.0, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 0.0}}},
 45: {'params': {'x0': 0.014118986676679964, 'x1': 1.0},
  'means': {'branin': -13.231683731079102, 'currin': -1.7553508281707764},
  'cov_matrix': {'branin': {'branin': 0.0, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 0.0}}},
 46: {'params': {'x0': 0.0854193006653092, 'x1': 0.9307528158024131},
  'means': {'branin': -2.0187549591064453, 'currin': -4.388962268829346},
  'cov_matrix': {'branin': {'branin': 0.0, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 0.0}}},
 47: {'params': {'x0': 0.06662741330447378, 'x1': 0.980596996858974},
  'means': {'branin': -3.8031392097473145, 'currin': -3.69888973236084},
  'cov_matrix': {'branin': {'branin': 0.0, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 0.0}}},
 48: {'params': {'x0': 0.008342318515166378, 'x1': 1.0},
  'means': {'branin': -14.896923065185547, 'currin': -1.5211905241012573},
  'cov_matrix': {'branin': {'branin': 0.0, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 0.0}}},
 49: {'params': {'x0': 0.07858564508878803, 'x1': 0.9495088262544781},
  'means': {'branin': -2.606822967529297, 'currin': -4.141735076904297},
  'cov_matrix': {'branin': {'branin': 0.0, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 0.0}}}}

Output All Trials#

1boa.scheduler_to_df(scheduler)
trial_index arm_name trial_status generation_method branin currin is_feasible x0 x1
0 0 0_0 COMPLETED Sobol -2.193543 -9.131011 False 0.940524 0.224564
1 1 1_0 COMPLETED Sobol -63.826210 -12.030728 False 0.157166 0.214496
2 2 2_0 COMPLETED Sobol -100.926003 -7.237036 False 0.064131 0.312555
3 3 3_0 COMPLETED Sobol -58.000885 -6.389218 False 0.824799 0.525802
4 4 4_0 COMPLETED Sobol -26.762484 -7.304705 False 0.308640 0.626811
5 5 5_0 COMPLETED MOO -17.288162 -8.091130 False 0.461521 0.444864
6 6 6_0 COMPLETED MOO -8.931918 -10.190450 False 0.986451 0.000000
7 7 7_0 COMPLETED MOO -93.663002 -5.238615 False 0.329519 0.979883
8 8 8_0 COMPLETED MOO -9.932772 -7.367684 False 1.000000 0.388637
9 9 9_0 COMPLETED MOO -145.872208 -4.005316 False 1.000000 1.000000
10 10 10_0 COMPLETED MOO -30.126415 -12.322750 False 0.418845 0.000000
11 11 11_0 COMPLETED MOO -18.562027 -10.723989 False 0.704596 0.000000
12 12 12_0 COMPLETED MOO -52.582935 -6.222844 False 0.482649 0.670020
13 13 13_0 COMPLETED MOO -17.508297 -1.180408 True 0.000000 1.000000
14 14 14_0 COMPLETED MOO -31.839594 -1.329088 False 0.000000 0.854346
15 15 15_0 COMPLETED MOO -23.409067 -1.249744 False 0.000000 0.927901
16 16 16_0 COMPLETED MOO -43.511116 -1.425069 False 0.000000 0.775915
17 17 17_0 COMPLETED MOO -5.456632 -3.179057 True 0.052035 1.000000
18 18 18_0 COMPLETED MOO -10.850421 -2.118943 True 0.023237 1.000000
19 19 19_0 COMPLETED MOO -3.690049 -4.211072 True 0.087733 1.000000
20 20 20_0 COMPLETED MOO -4.101331 -3.619261 True 0.065816 1.000000
21 21 21_0 COMPLETED MOO -14.053753 -1.637937 True 0.011216 1.000000
22 22 22_0 COMPLETED MOO -7.977752 -2.622278 True 0.036365 1.000000
23 23 23_0 COMPLETED MOO -1.812486 -4.517035 True 0.091021 0.934117
24 24 24_0 COMPLETED MOO -12.423711 -1.874534 True 0.017084 1.000000
25 25 25_0 COMPLETED MOO -6.663559 -2.891352 True 0.043746 1.000000
26 26 26_0 COMPLETED MOO -2.915264 -4.022141 True 0.075574 0.960453
27 27 27_0 COMPLETED MOO -0.952266 -5.013603 True 0.105973 0.892540
28 28 28_0 COMPLETED MOO -9.380337 -2.365352 True 0.029572 1.000000
29 29 29_0 COMPLETED MOO -15.753107 -1.406162 True 0.005521 1.000000
30 30 30_0 COMPLETED MOO -0.987803 -5.322257 True 0.119465 0.879292
31 31 31_0 COMPLETED MOO -4.728095 -3.388868 True 0.058342 0.999175
32 32 32_0 COMPLETED MOO -2.307490 -4.264720 True 0.082243 0.942423
33 33 33_0 COMPLETED MOO -1.324013 -4.739828 True 0.096504 0.909374
34 34 34_0 COMPLETED MOO -3.505494 -3.803756 True 0.069440 0.973640
35 35 35_0 COMPLETED MOO -11.629340 -1.995745 True 0.020122 1.000000
36 36 36_0 COMPLETED MOO -0.666452 -5.237107 True 0.112349 0.869902
37 37 37_0 COMPLETED MOO -6.045017 -3.032232 True 0.047747 1.000000
38 38 38_0 COMPLETED MOO -7.309759 -2.754784 True 0.039961 1.000000
39 39 39_0 COMPLETED MOO -0.465132 -5.456743 True 0.117836 0.844044
40 40 40_0 COMPLETED MOO -16.622410 -1.292736 True 0.002746 1.000000
41 41 41_0 COMPLETED MOO -5.082482 -3.281668 True 0.055113 1.000000
42 42 42_0 COMPLETED MOO -10.107716 -2.240946 True 0.026355 1.000000
43 43 43_0 COMPLETED MOO -8.670126 -2.492303 True 0.032901 1.000000
44 44 44_0 COMPLETED MOO -1.556903 -4.607704 True 0.091681 0.914053
45 45 45_0 COMPLETED MOO -13.231684 -1.755351 True 0.014119 1.000000
46 46 46_0 COMPLETED MOO -2.018755 -4.388962 True 0.085419 0.930753
47 47 47_0 COMPLETED MOO -3.803139 -3.698890 True 0.066627 0.980597
48 48 48_0 COMPLETED MOO -14.896923 -1.521191 True 0.008342 1.000000
49 49 49_0 COMPLETED MOO -2.606823 -4.141735 True 0.078586 0.949509