Your first Bayesian optimization with Blop#
In this tutorial, you will learn the three core concepts of Blop: DOFs (the parameters you can adjust), objectives (what you want to optimize), and the Agent (which coordinates the optimization). We’ll optimize a simple mathematical function using simulated devices—the same patterns apply to real hardware.
Setup#
First, let’s import what we need and start the data infrastructure:
import logging
import time
from typing import Any
from blop.ax import Agent, RangeDOF, Objective
from bluesky.protocols import NamedMovable, Readable, Status, Hints, HasHints, HasParent
from bluesky.run_engine import RunEngine
from bluesky_tiled_plugins import TiledWriter
from tiled.client import from_uri
from tiled.client.container import Container
from tiled.server import SimpleTiledServer
# Suppress noisy logs from httpx
logging.getLogger("httpx").setLevel(logging.WARNING)
[WARNING 04-19 07:10:30] ax.storage.sqa_store.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]`.
# Start a local Tiled server for data storage
tiled_server = SimpleTiledServer()
# Set up the Bluesky RunEngine and connect it to Tiled
RE = RunEngine({})
tiled_client = from_uri(tiled_server.uri)
tiled_writer = TiledWriter(tiled_client)
RE.subscribe(tiled_writer)
Tiled version 0.2.9
0
Creating simulated devices#
Bluesky controls devices through protocols. For this tutorial, we create simple simulated “movable” devices. In real experiments, you would use Ophyd devices or similar—the code below is just boilerplate to simulate hardware:
class AlwaysSuccessfulStatus(Status):
def add_callback(self, callback) -> None:
callback(self)
def exception(self, timeout = 0.0):
return None
@property
def done(self) -> bool:
return True
@property
def success(self) -> bool:
return True
class ReadableSignal(Readable, HasHints, HasParent):
def __init__(self, name: str) -> None:
self._name = name
self._value = 0.0
@property
def name(self) -> str:
return self._name
@property
def hints(self) -> Hints:
return {"fields": [self._name], "dimensions": [], "gridding": "rectilinear"}
@property
def parent(self) -> Any | None:
return None
def read(self):
return {self._name: {"value": self._value, "timestamp": time.time()}}
def describe(self):
return {self._name: {"source": self._name, "dtype": "number", "shape": []}}
class MovableSignal(ReadableSignal, NamedMovable):
def __init__(self, name: str, initial_value: float = 0.0) -> None:
super().__init__(name)
self._value: float = initial_value
def set(self, value: float) -> Status:
self._value = value
return AlwaysSuccessfulStatus()
Defining DOFs and objectives#
DOFs (degrees of freedom) are the parameters the optimizer can adjust. Objectives are what you want to optimize. Here we define two DOFs (x1 and x2) that can range from -5 to 5, and one objective (the Himmelblau function) that we want to minimize:
x1 = MovableSignal("x1", initial_value=0.1)
x2 = MovableSignal("x2", initial_value=0.23)
dofs = [
RangeDOF(actuator=x1, bounds=(-5, 5), parameter_type="float"),
RangeDOF(actuator=x2, bounds=(-5, 5), parameter_type="float"),
]
objectives = [
Objective(name="himmelblau_2d", minimize=True),
]
sensors = []
Writing the evaluation function#
The evaluation function computes objective values from experimental data. After each run, Blop calls this function with the run’s unique ID and the suggestions that were tried. It returns the computed objective values:
class Himmelblau2DEvaluation():
def __init__(self, tiled_client: Container):
self.tiled_client = tiled_client
def __call__(self, uid: str, suggestions: list[dict]) -> list[dict]:
run = self.tiled_client[uid]
outcomes = []
x1_data = run["primary/x1"].read()
x2_data = run["primary/x2"].read()
for suggestion in suggestions:
suggestion_id = suggestion["_id"]
x1 = x1_data[suggestion_id % len(x1_data)]
x2 = x2_data[suggestion_id % len(x2_data)]
# Himmelblau function: has four global minima where value = 0
outcomes.append({
"himmelblau_2d": (x1 ** 2 + x2 - 11) ** 2 + (x1 + x2 ** 2 - 7) ** 2,
"_id": suggestion_id
})
return outcomes
Running the optimization#
The Agent brings everything together. Create one with your DOFs, objectives, and evaluation function, then run the optimization:
agent = Agent(
sensors=sensors,
dofs=dofs,
objectives=objectives,
evaluation_function=Himmelblau2DEvaluation(tiled_client=tiled_client),
name="simple-experiment",
description="A simple experiment optimizing the Himmelblau function",
)
RE(agent.optimize(30))
╭───────────────────────────────────────────────── Optimization ──────────────────────────────────────────────────╮ │ Optimizer AxOptimizer │ │ Actuators x1, x2 │ │ Sensors N/A │ │ Iterations 30 │ │ Run UID 549dbbdc-4df7-4dc8-a98a-3c488870dc74 │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
[INFO 04-19 07:10:35] ax.api.client: GenerationStrategy(name='Center+Sobol+MBM:fast', nodes=[CenterGenerationNode(next_node_name='Sobol'), GenerationNode(name='Sobol', generator_specs=[GeneratorSpec(generator_enum=Sobol, generator_key_override=None)], transition_criteria=[MinTrials(transition_to='MBM'), MinTrials(transition_to='MBM')], suggested_experiment_status=ExperimentStatus.INITIALIZATION, pausing_criteria=[MaxTrialsAwaitingData(threshold=5)]), GenerationNode(name='MBM', generator_specs=[GeneratorSpec(generator_enum=BoTorch, generator_key_override=None)], transition_criteria=None, suggested_experiment_status=ExperimentStatus.OPTIMIZATION, pausing_criteria=None)]) chosen based on user input and problem structure.
[INFO 04-19 07:10:35] ax.api.client: Generated new trial 0 with parameters {'x1': 0.0, 'x2': 0.0} using GenerationNode CenterOfSearchSpace.
/home/runner/work/blop/blop/.pixi/envs/docs/lib/python3.13/site-packages/ax/core/data.py:365: FutureWarning: DataFrameGroupBy.apply operated on the grouping columns. This behavior is deprecated, and in a future version of pandas the grouping columns will be excluded from the operation. Either pass `include_groups=False` to exclude the groupings or explicitly select the grouping columns after groupby to silence this warning.
self.full_df.groupby(self.DEDUPLICATE_BY_COLUMNS).apply(
[INFO 04-19 07:10:35] ax.api.client: Trial 0 marked COMPLETED.
/home/runner/work/blop/blop/.pixi/envs/docs/lib/python3.13/site-packages/ax/core/data.py:365: FutureWarning: DataFrameGroupBy.apply operated on the grouping columns. This behavior is deprecated, and in a future version of pandas the grouping columns will be excluded from the operation. Either pass `include_groups=False` to exclude the groupings or explicitly select the grouping columns after groupby to silence this warning.
self.full_df.groupby(self.DEDUPLICATE_BY_COLUMNS).apply(
[INFO 04-19 07:10:35] ax.api.client: Generated new trial 1 with parameters {'x1': -1.46277, 'x2': -0.305821} using GenerationNode Sobol.
/home/runner/work/blop/blop/.pixi/envs/docs/lib/python3.13/site-packages/ax/core/data.py:365: FutureWarning: DataFrameGroupBy.apply operated on the grouping columns. This behavior is deprecated, and in a future version of pandas the grouping columns will be excluded from the operation. Either pass `include_groups=False` to exclude the groupings or explicitly select the grouping columns after groupby to silence this warning.
self.full_df.groupby(self.DEDUPLICATE_BY_COLUMNS).apply(
[INFO 04-19 07:10:36] ax.api.client: Trial 1 marked COMPLETED.
/home/runner/work/blop/blop/.pixi/envs/docs/lib/python3.13/site-packages/ax/core/data.py:365: FutureWarning: DataFrameGroupBy.apply operated on the grouping columns. This behavior is deprecated, and in a future version of pandas the grouping columns will be excluded from the operation. Either pass `include_groups=False` to exclude the groupings or explicitly select the grouping columns after groupby to silence this warning.
self.full_df.groupby(self.DEDUPLICATE_BY_COLUMNS).apply(
[INFO 04-19 07:10:36] ax.api.client: Generated new trial 2 with parameters {'x1': 0.172018, 'x2': 1.804107} using GenerationNode Sobol.
/home/runner/work/blop/blop/.pixi/envs/docs/lib/python3.13/site-packages/ax/core/data.py:365: FutureWarning: DataFrameGroupBy.apply operated on the grouping columns. This behavior is deprecated, and in a future version of pandas the grouping columns will be excluded from the operation. Either pass `include_groups=False` to exclude the groupings or explicitly select the grouping columns after groupby to silence this warning.
self.full_df.groupby(self.DEDUPLICATE_BY_COLUMNS).apply(
[INFO 04-19 07:10:36] ax.api.client: Trial 2 marked COMPLETED.
/home/runner/work/blop/blop/.pixi/envs/docs/lib/python3.13/site-packages/ax/core/data.py:365: FutureWarning: DataFrameGroupBy.apply operated on the grouping columns. This behavior is deprecated, and in a future version of pandas the grouping columns will be excluded from the operation. Either pass `include_groups=False` to exclude the groupings or explicitly select the grouping columns after groupby to silence this warning.
self.full_df.groupby(self.DEDUPLICATE_BY_COLUMNS).apply(
[INFO 04-19 07:10:36] ax.api.client: Generated new trial 3 with parameters {'x1': 3.342968, 'x2': -4.777821} using GenerationNode Sobol.
/home/runner/work/blop/blop/.pixi/envs/docs/lib/python3.13/site-packages/ax/core/data.py:365: FutureWarning: DataFrameGroupBy.apply operated on the grouping columns. This behavior is deprecated, and in a future version of pandas the grouping columns will be excluded from the operation. Either pass `include_groups=False` to exclude the groupings or explicitly select the grouping columns after groupby to silence this warning.
self.full_df.groupby(self.DEDUPLICATE_BY_COLUMNS).apply(
[INFO 04-19 07:10:36] ax.api.client: Trial 3 marked COMPLETED.
/home/runner/work/blop/blop/.pixi/envs/docs/lib/python3.13/site-packages/ax/core/data.py:365: FutureWarning: DataFrameGroupBy.apply operated on the grouping columns. This behavior is deprecated, and in a future version of pandas the grouping columns will be excluded from the operation. Either pass `include_groups=False` to exclude the groupings or explicitly select the grouping columns after groupby to silence this warning.
self.full_df.groupby(self.DEDUPLICATE_BY_COLUMNS).apply(
[INFO 04-19 07:10:36] ax.api.client: Generated new trial 4 with parameters {'x1': -4.550976, 'x2': 3.26976} using GenerationNode Sobol.
/home/runner/work/blop/blop/.pixi/envs/docs/lib/python3.13/site-packages/ax/core/data.py:365: FutureWarning: DataFrameGroupBy.apply operated on the grouping columns. This behavior is deprecated, and in a future version of pandas the grouping columns will be excluded from the operation. Either pass `include_groups=False` to exclude the groupings or explicitly select the grouping columns after groupby to silence this warning.
self.full_df.groupby(self.DEDUPLICATE_BY_COLUMNS).apply(
[INFO 04-19 07:10:37] ax.api.client: Trial 4 marked COMPLETED.
/home/runner/work/blop/blop/.pixi/envs/docs/lib/python3.13/site-packages/ax/core/data.py:365: FutureWarning: DataFrameGroupBy.apply operated on the grouping columns. This behavior is deprecated, and in a future version of pandas the grouping columns will be excluded from the operation. Either pass `include_groups=False` to exclude the groupings or explicitly select the grouping columns after groupby to silence this warning.
self.full_df.groupby(self.DEDUPLICATE_BY_COLUMNS).apply(
[INFO 04-19 07:10:37] ax.api.client: Generated new trial 5 with parameters {'x1': 1.994311, 'x2': 2.040236} using GenerationNode MBM.
/home/runner/work/blop/blop/.pixi/envs/docs/lib/python3.13/site-packages/ax/core/data.py:365: FutureWarning: DataFrameGroupBy.apply operated on the grouping columns. This behavior is deprecated, and in a future version of pandas the grouping columns will be excluded from the operation. Either pass `include_groups=False` to exclude the groupings or explicitly select the grouping columns after groupby to silence this warning.
self.full_df.groupby(self.DEDUPLICATE_BY_COLUMNS).apply(
[INFO 04-19 07:10:37] ax.api.client: Trial 5 marked COMPLETED.
/home/runner/work/blop/blop/.pixi/envs/docs/lib/python3.13/site-packages/ax/core/data.py:365: FutureWarning: DataFrameGroupBy.apply operated on the grouping columns. This behavior is deprecated, and in a future version of pandas the grouping columns will be excluded from the operation. Either pass `include_groups=False` to exclude the groupings or explicitly select the grouping columns after groupby to silence this warning.
self.full_df.groupby(self.DEDUPLICATE_BY_COLUMNS).apply(
[INFO 04-19 07:10:38] ax.api.client: Generated new trial 6 with parameters {'x1': 3.258101, 'x2': 2.56765} using GenerationNode MBM.
/home/runner/work/blop/blop/.pixi/envs/docs/lib/python3.13/site-packages/ax/core/data.py:365: FutureWarning: DataFrameGroupBy.apply operated on the grouping columns. This behavior is deprecated, and in a future version of pandas the grouping columns will be excluded from the operation. Either pass `include_groups=False` to exclude the groupings or explicitly select the grouping columns after groupby to silence this warning.
self.full_df.groupby(self.DEDUPLICATE_BY_COLUMNS).apply(
[INFO 04-19 07:10:38] ax.api.client: Trial 6 marked COMPLETED.
/home/runner/work/blop/blop/.pixi/envs/docs/lib/python3.13/site-packages/ax/core/data.py:365: FutureWarning: DataFrameGroupBy.apply operated on the grouping columns. This behavior is deprecated, and in a future version of pandas the grouping columns will be excluded from the operation. Either pass `include_groups=False` to exclude the groupings or explicitly select the grouping columns after groupby to silence this warning.
self.full_df.groupby(self.DEDUPLICATE_BY_COLUMNS).apply(
[INFO 04-19 07:10:38] ax.api.client: Generated new trial 7 with parameters {'x1': 2.283576, 'x2': 4.090999} using GenerationNode MBM.
/home/runner/work/blop/blop/.pixi/envs/docs/lib/python3.13/site-packages/ax/core/data.py:365: FutureWarning: DataFrameGroupBy.apply operated on the grouping columns. This behavior is deprecated, and in a future version of pandas the grouping columns will be excluded from the operation. Either pass `include_groups=False` to exclude the groupings or explicitly select the grouping columns after groupby to silence this warning.
self.full_df.groupby(self.DEDUPLICATE_BY_COLUMNS).apply(
[INFO 04-19 07:10:39] ax.api.client: Trial 7 marked COMPLETED.
/home/runner/work/blop/blop/.pixi/envs/docs/lib/python3.13/site-packages/ax/core/data.py:365: FutureWarning: DataFrameGroupBy.apply operated on the grouping columns. This behavior is deprecated, and in a future version of pandas the grouping columns will be excluded from the operation. Either pass `include_groups=False` to exclude the groupings or explicitly select the grouping columns after groupby to silence this warning.
self.full_df.groupby(self.DEDUPLICATE_BY_COLUMNS).apply(
[INFO 04-19 07:10:39] ax.api.client: Generated new trial 8 with parameters {'x1': 5.0, 'x2': 1.936674} using GenerationNode MBM.
/home/runner/work/blop/blop/.pixi/envs/docs/lib/python3.13/site-packages/ax/core/data.py:365: FutureWarning: DataFrameGroupBy.apply operated on the grouping columns. This behavior is deprecated, and in a future version of pandas the grouping columns will be excluded from the operation. Either pass `include_groups=False` to exclude the groupings or explicitly select the grouping columns after groupby to silence this warning.
self.full_df.groupby(self.DEDUPLICATE_BY_COLUMNS).apply(
[INFO 04-19 07:10:39] ax.api.client: Trial 8 marked COMPLETED.
/home/runner/work/blop/blop/.pixi/envs/docs/lib/python3.13/site-packages/ax/core/data.py:365: FutureWarning: DataFrameGroupBy.apply operated on the grouping columns. This behavior is deprecated, and in a future version of pandas the grouping columns will be excluded from the operation. Either pass `include_groups=False` to exclude the groupings or explicitly select the grouping columns after groupby to silence this warning.
self.full_df.groupby(self.DEDUPLICATE_BY_COLUMNS).apply(
[INFO 04-19 07:10:40] ax.api.client: Generated new trial 9 with parameters {'x1': 2.579135, 'x2': 2.61432} using GenerationNode MBM.
/home/runner/work/blop/blop/.pixi/envs/docs/lib/python3.13/site-packages/ax/core/data.py:365: FutureWarning: DataFrameGroupBy.apply operated on the grouping columns. This behavior is deprecated, and in a future version of pandas the grouping columns will be excluded from the operation. Either pass `include_groups=False` to exclude the groupings or explicitly select the grouping columns after groupby to silence this warning.
self.full_df.groupby(self.DEDUPLICATE_BY_COLUMNS).apply(
[INFO 04-19 07:10:40] ax.api.client: Trial 9 marked COMPLETED.
/home/runner/work/blop/blop/.pixi/envs/docs/lib/python3.13/site-packages/ax/core/data.py:365: FutureWarning: DataFrameGroupBy.apply operated on the grouping columns. This behavior is deprecated, and in a future version of pandas the grouping columns will be excluded from the operation. Either pass `include_groups=False` to exclude the groupings or explicitly select the grouping columns after groupby to silence this warning.
self.full_df.groupby(self.DEDUPLICATE_BY_COLUMNS).apply(
[INFO 04-19 07:10:40] ax.api.client: Generated new trial 10 with parameters {'x1': 2.808129, 'x2': 1.997349} using GenerationNode MBM.
/home/runner/work/blop/blop/.pixi/envs/docs/lib/python3.13/site-packages/ax/core/data.py:365: FutureWarning: DataFrameGroupBy.apply operated on the grouping columns. This behavior is deprecated, and in a future version of pandas the grouping columns will be excluded from the operation. Either pass `include_groups=False` to exclude the groupings or explicitly select the grouping columns after groupby to silence this warning.
self.full_df.groupby(self.DEDUPLICATE_BY_COLUMNS).apply(
[INFO 04-19 07:10:40] ax.api.client: Trial 10 marked COMPLETED.
/home/runner/work/blop/blop/.pixi/envs/docs/lib/python3.13/site-packages/ax/core/data.py:365: FutureWarning: DataFrameGroupBy.apply operated on the grouping columns. This behavior is deprecated, and in a future version of pandas the grouping columns will be excluded from the operation. Either pass `include_groups=False` to exclude the groupings or explicitly select the grouping columns after groupby to silence this warning.
self.full_df.groupby(self.DEDUPLICATE_BY_COLUMNS).apply(
[INFO 04-19 07:10:41] ax.api.client: Generated new trial 11 with parameters {'x1': -2.021407, 'x2': 2.78554} using GenerationNode MBM.
/home/runner/work/blop/blop/.pixi/envs/docs/lib/python3.13/site-packages/ax/core/data.py:365: FutureWarning: DataFrameGroupBy.apply operated on the grouping columns. This behavior is deprecated, and in a future version of pandas the grouping columns will be excluded from the operation. Either pass `include_groups=False` to exclude the groupings or explicitly select the grouping columns after groupby to silence this warning.
self.full_df.groupby(self.DEDUPLICATE_BY_COLUMNS).apply(
[INFO 04-19 07:10:41] ax.api.client: Trial 11 marked COMPLETED.
/home/runner/work/blop/blop/.pixi/envs/docs/lib/python3.13/site-packages/ax/core/data.py:365: FutureWarning: DataFrameGroupBy.apply operated on the grouping columns. This behavior is deprecated, and in a future version of pandas the grouping columns will be excluded from the operation. Either pass `include_groups=False` to exclude the groupings or explicitly select the grouping columns after groupby to silence this warning.
self.full_df.groupby(self.DEDUPLICATE_BY_COLUMNS).apply(
[INFO 04-19 07:10:41] ax.api.client: Generated new trial 12 with parameters {'x1': -1.805891, 'x2': 4.277156} using GenerationNode MBM.
/home/runner/work/blop/blop/.pixi/envs/docs/lib/python3.13/site-packages/ax/core/data.py:365: FutureWarning: DataFrameGroupBy.apply operated on the grouping columns. This behavior is deprecated, and in a future version of pandas the grouping columns will be excluded from the operation. Either pass `include_groups=False` to exclude the groupings or explicitly select the grouping columns after groupby to silence this warning.
self.full_df.groupby(self.DEDUPLICATE_BY_COLUMNS).apply(
[INFO 04-19 07:10:42] ax.api.client: Trial 12 marked COMPLETED.
/home/runner/work/blop/blop/.pixi/envs/docs/lib/python3.13/site-packages/ax/core/data.py:365: FutureWarning: DataFrameGroupBy.apply operated on the grouping columns. This behavior is deprecated, and in a future version of pandas the grouping columns will be excluded from the operation. Either pass `include_groups=False` to exclude the groupings or explicitly select the grouping columns after groupby to silence this warning.
self.full_df.groupby(self.DEDUPLICATE_BY_COLUMNS).apply(
[INFO 04-19 07:10:42] ax.api.client: Generated new trial 13 with parameters {'x1': -2.699169, 'x2': 1.725894} using GenerationNode MBM.
/home/runner/work/blop/blop/.pixi/envs/docs/lib/python3.13/site-packages/ax/core/data.py:365: FutureWarning: DataFrameGroupBy.apply operated on the grouping columns. This behavior is deprecated, and in a future version of pandas the grouping columns will be excluded from the operation. Either pass `include_groups=False` to exclude the groupings or explicitly select the grouping columns after groupby to silence this warning.
self.full_df.groupby(self.DEDUPLICATE_BY_COLUMNS).apply(
[INFO 04-19 07:10:42] ax.api.client: Trial 13 marked COMPLETED.
/home/runner/work/blop/blop/.pixi/envs/docs/lib/python3.13/site-packages/ax/core/data.py:365: FutureWarning: DataFrameGroupBy.apply operated on the grouping columns. This behavior is deprecated, and in a future version of pandas the grouping columns will be excluded from the operation. Either pass `include_groups=False` to exclude the groupings or explicitly select the grouping columns after groupby to silence this warning.
self.full_df.groupby(self.DEDUPLICATE_BY_COLUMNS).apply(
[INFO 04-19 07:10:43] ax.api.client: Generated new trial 14 with parameters {'x1': 2.751742, 'x2': 2.279163} using GenerationNode MBM.
/home/runner/work/blop/blop/.pixi/envs/docs/lib/python3.13/site-packages/ax/core/data.py:365: FutureWarning: DataFrameGroupBy.apply operated on the grouping columns. This behavior is deprecated, and in a future version of pandas the grouping columns will be excluded from the operation. Either pass `include_groups=False` to exclude the groupings or explicitly select the grouping columns after groupby to silence this warning.
self.full_df.groupby(self.DEDUPLICATE_BY_COLUMNS).apply(
[INFO 04-19 07:10:43] ax.api.client: Trial 14 marked COMPLETED.
/home/runner/work/blop/blop/.pixi/envs/docs/lib/python3.13/site-packages/ax/core/data.py:365: FutureWarning: DataFrameGroupBy.apply operated on the grouping columns. This behavior is deprecated, and in a future version of pandas the grouping columns will be excluded from the operation. Either pass `include_groups=False` to exclude the groupings or explicitly select the grouping columns after groupby to silence this warning.
self.full_df.groupby(self.DEDUPLICATE_BY_COLUMNS).apply(
[INFO 04-19 07:10:43] ax.api.client: Generated new trial 15 with parameters {'x1': -5.0, 'x2': -3.302609} using GenerationNode MBM.
/home/runner/work/blop/blop/.pixi/envs/docs/lib/python3.13/site-packages/ax/core/data.py:365: FutureWarning: DataFrameGroupBy.apply operated on the grouping columns. This behavior is deprecated, and in a future version of pandas the grouping columns will be excluded from the operation. Either pass `include_groups=False` to exclude the groupings or explicitly select the grouping columns after groupby to silence this warning.
self.full_df.groupby(self.DEDUPLICATE_BY_COLUMNS).apply(
[INFO 04-19 07:10:44] ax.api.client: Trial 15 marked COMPLETED.
/home/runner/work/blop/blop/.pixi/envs/docs/lib/python3.13/site-packages/ax/core/data.py:365: FutureWarning: DataFrameGroupBy.apply operated on the grouping columns. This behavior is deprecated, and in a future version of pandas the grouping columns will be excluded from the operation. Either pass `include_groups=False` to exclude the groupings or explicitly select the grouping columns after groupby to silence this warning.
self.full_df.groupby(self.DEDUPLICATE_BY_COLUMNS).apply(
[INFO 04-19 07:10:44] ax.api.client: Generated new trial 16 with parameters {'x1': -3.105834, 'x2': -5.0} using GenerationNode MBM.
/home/runner/work/blop/blop/.pixi/envs/docs/lib/python3.13/site-packages/ax/core/data.py:365: FutureWarning: DataFrameGroupBy.apply operated on the grouping columns. This behavior is deprecated, and in a future version of pandas the grouping columns will be excluded from the operation. Either pass `include_groups=False` to exclude the groupings or explicitly select the grouping columns after groupby to silence this warning.
self.full_df.groupby(self.DEDUPLICATE_BY_COLUMNS).apply(
[INFO 04-19 07:10:44] ax.api.client: Trial 16 marked COMPLETED.
/home/runner/work/blop/blop/.pixi/envs/docs/lib/python3.13/site-packages/ax/core/data.py:365: FutureWarning: DataFrameGroupBy.apply operated on the grouping columns. This behavior is deprecated, and in a future version of pandas the grouping columns will be excluded from the operation. Either pass `include_groups=False` to exclude the groupings or explicitly select the grouping columns after groupby to silence this warning.
self.full_df.groupby(self.DEDUPLICATE_BY_COLUMNS).apply(
[INFO 04-19 07:10:45] ax.api.client: Generated new trial 17 with parameters {'x1': -5.0, 'x2': -0.832645} using GenerationNode MBM.
/home/runner/work/blop/blop/.pixi/envs/docs/lib/python3.13/site-packages/ax/core/data.py:365: FutureWarning: DataFrameGroupBy.apply operated on the grouping columns. This behavior is deprecated, and in a future version of pandas the grouping columns will be excluded from the operation. Either pass `include_groups=False` to exclude the groupings or explicitly select the grouping columns after groupby to silence this warning.
self.full_df.groupby(self.DEDUPLICATE_BY_COLUMNS).apply(
[INFO 04-19 07:10:45] ax.api.client: Trial 17 marked COMPLETED.
/home/runner/work/blop/blop/.pixi/envs/docs/lib/python3.13/site-packages/ax/core/data.py:365: FutureWarning: DataFrameGroupBy.apply operated on the grouping columns. This behavior is deprecated, and in a future version of pandas the grouping columns will be excluded from the operation. Either pass `include_groups=False` to exclude the groupings or explicitly select the grouping columns after groupby to silence this warning.
self.full_df.groupby(self.DEDUPLICATE_BY_COLUMNS).apply(
[INFO 04-19 07:10:45] ax.api.client: Generated new trial 18 with parameters {'x1': -1.693701, 'x2': 1.961709} using GenerationNode MBM.
/home/runner/work/blop/blop/.pixi/envs/docs/lib/python3.13/site-packages/ax/core/data.py:365: FutureWarning: DataFrameGroupBy.apply operated on the grouping columns. This behavior is deprecated, and in a future version of pandas the grouping columns will be excluded from the operation. Either pass `include_groups=False` to exclude the groupings or explicitly select the grouping columns after groupby to silence this warning.
self.full_df.groupby(self.DEDUPLICATE_BY_COLUMNS).apply(
[INFO 04-19 07:10:45] ax.api.client: Trial 18 marked COMPLETED.
/home/runner/work/blop/blop/.pixi/envs/docs/lib/python3.13/site-packages/ax/core/data.py:365: FutureWarning: DataFrameGroupBy.apply operated on the grouping columns. This behavior is deprecated, and in a future version of pandas the grouping columns will be excluded from the operation. Either pass `include_groups=False` to exclude the groupings or explicitly select the grouping columns after groupby to silence this warning.
self.full_df.groupby(self.DEDUPLICATE_BY_COLUMNS).apply(
[INFO 04-19 07:10:46] ax.api.client: Generated new trial 19 with parameters {'x1': -2.77376, 'x2': 3.036547} using GenerationNode MBM.
/home/runner/work/blop/blop/.pixi/envs/docs/lib/python3.13/site-packages/ax/core/data.py:365: FutureWarning: DataFrameGroupBy.apply operated on the grouping columns. This behavior is deprecated, and in a future version of pandas the grouping columns will be excluded from the operation. Either pass `include_groups=False` to exclude the groupings or explicitly select the grouping columns after groupby to silence this warning.
self.full_df.groupby(self.DEDUPLICATE_BY_COLUMNS).apply(
[INFO 04-19 07:10:46] ax.api.client: Trial 19 marked COMPLETED.
/home/runner/work/blop/blop/.pixi/envs/docs/lib/python3.13/site-packages/ax/core/data.py:365: FutureWarning: DataFrameGroupBy.apply operated on the grouping columns. This behavior is deprecated, and in a future version of pandas the grouping columns will be excluded from the operation. Either pass `include_groups=False` to exclude the groupings or explicitly select the grouping columns after groupby to silence this warning.
self.full_df.groupby(self.DEDUPLICATE_BY_COLUMNS).apply(
[INFO 04-19 07:10:46] ax.api.client: Generated new trial 20 with parameters {'x1': -2.671723, 'x2': 2.808608} using GenerationNode MBM.
/home/runner/work/blop/blop/.pixi/envs/docs/lib/python3.13/site-packages/ax/core/data.py:365: FutureWarning: DataFrameGroupBy.apply operated on the grouping columns. This behavior is deprecated, and in a future version of pandas the grouping columns will be excluded from the operation. Either pass `include_groups=False` to exclude the groupings or explicitly select the grouping columns after groupby to silence this warning.
self.full_df.groupby(self.DEDUPLICATE_BY_COLUMNS).apply(
[INFO 04-19 07:10:47] ax.api.client: Trial 20 marked COMPLETED.
/home/runner/work/blop/blop/.pixi/envs/docs/lib/python3.13/site-packages/ax/core/data.py:365: FutureWarning: DataFrameGroupBy.apply operated on the grouping columns. This behavior is deprecated, and in a future version of pandas the grouping columns will be excluded from the operation. Either pass `include_groups=False` to exclude the groupings or explicitly select the grouping columns after groupby to silence this warning.
self.full_df.groupby(self.DEDUPLICATE_BY_COLUMNS).apply(
[INFO 04-19 07:10:47] ax.api.client: Generated new trial 21 with parameters {'x1': 4.738383, 'x2': 5.0} using GenerationNode MBM.
/home/runner/work/blop/blop/.pixi/envs/docs/lib/python3.13/site-packages/ax/core/data.py:365: FutureWarning: DataFrameGroupBy.apply operated on the grouping columns. This behavior is deprecated, and in a future version of pandas the grouping columns will be excluded from the operation. Either pass `include_groups=False` to exclude the groupings or explicitly select the grouping columns after groupby to silence this warning.
self.full_df.groupby(self.DEDUPLICATE_BY_COLUMNS).apply(
[INFO 04-19 07:10:47] ax.api.client: Trial 21 marked COMPLETED.
/home/runner/work/blop/blop/.pixi/envs/docs/lib/python3.13/site-packages/ax/core/data.py:365: FutureWarning: DataFrameGroupBy.apply operated on the grouping columns. This behavior is deprecated, and in a future version of pandas the grouping columns will be excluded from the operation. Either pass `include_groups=False` to exclude the groupings or explicitly select the grouping columns after groupby to silence this warning.
self.full_df.groupby(self.DEDUPLICATE_BY_COLUMNS).apply(
[INFO 04-19 07:10:48] ax.api.client: Generated new trial 22 with parameters {'x1': -5.0, 'x2': -5.0} using GenerationNode MBM.
/home/runner/work/blop/blop/.pixi/envs/docs/lib/python3.13/site-packages/ax/core/data.py:365: FutureWarning: DataFrameGroupBy.apply operated on the grouping columns. This behavior is deprecated, and in a future version of pandas the grouping columns will be excluded from the operation. Either pass `include_groups=False` to exclude the groupings or explicitly select the grouping columns after groupby to silence this warning.
self.full_df.groupby(self.DEDUPLICATE_BY_COLUMNS).apply(
[INFO 04-19 07:10:48] ax.api.client: Trial 22 marked COMPLETED.
/home/runner/work/blop/blop/.pixi/envs/docs/lib/python3.13/site-packages/ax/core/data.py:365: FutureWarning: DataFrameGroupBy.apply operated on the grouping columns. This behavior is deprecated, and in a future version of pandas the grouping columns will be excluded from the operation. Either pass `include_groups=False` to exclude the groupings or explicitly select the grouping columns after groupby to silence this warning.
self.full_df.groupby(self.DEDUPLICATE_BY_COLUMNS).apply(
[INFO 04-19 07:10:48] ax.api.client: Generated new trial 23 with parameters {'x1': -2.996459, 'x2': -2.575693} using GenerationNode MBM.
/home/runner/work/blop/blop/.pixi/envs/docs/lib/python3.13/site-packages/ax/core/data.py:365: FutureWarning: DataFrameGroupBy.apply operated on the grouping columns. This behavior is deprecated, and in a future version of pandas the grouping columns will be excluded from the operation. Either pass `include_groups=False` to exclude the groupings or explicitly select the grouping columns after groupby to silence this warning.
self.full_df.groupby(self.DEDUPLICATE_BY_COLUMNS).apply(
[INFO 04-19 07:10:49] ax.api.client: Trial 23 marked COMPLETED.
/home/runner/work/blop/blop/.pixi/envs/docs/lib/python3.13/site-packages/ax/core/data.py:365: FutureWarning: DataFrameGroupBy.apply operated on the grouping columns. This behavior is deprecated, and in a future version of pandas the grouping columns will be excluded from the operation. Either pass `include_groups=False` to exclude the groupings or explicitly select the grouping columns after groupby to silence this warning.
self.full_df.groupby(self.DEDUPLICATE_BY_COLUMNS).apply(
[INFO 04-19 07:10:49] ax.api.client: Generated new trial 24 with parameters {'x1': -1.442255, 'x2': -2.893144} using GenerationNode MBM.
/home/runner/work/blop/blop/.pixi/envs/docs/lib/python3.13/site-packages/ax/core/data.py:365: FutureWarning: DataFrameGroupBy.apply operated on the grouping columns. This behavior is deprecated, and in a future version of pandas the grouping columns will be excluded from the operation. Either pass `include_groups=False` to exclude the groupings or explicitly select the grouping columns after groupby to silence this warning.
self.full_df.groupby(self.DEDUPLICATE_BY_COLUMNS).apply(
[INFO 04-19 07:10:49] ax.api.client: Trial 24 marked COMPLETED.
/home/runner/work/blop/blop/.pixi/envs/docs/lib/python3.13/site-packages/ax/core/data.py:365: FutureWarning: DataFrameGroupBy.apply operated on the grouping columns. This behavior is deprecated, and in a future version of pandas the grouping columns will be excluded from the operation. Either pass `include_groups=False` to exclude the groupings or explicitly select the grouping columns after groupby to silence this warning.
self.full_df.groupby(self.DEDUPLICATE_BY_COLUMNS).apply(
[INFO 04-19 07:10:49] ax.api.client: Generated new trial 25 with parameters {'x1': -3.554112, 'x2': 5.0} using GenerationNode MBM.
/home/runner/work/blop/blop/.pixi/envs/docs/lib/python3.13/site-packages/ax/core/data.py:365: FutureWarning: DataFrameGroupBy.apply operated on the grouping columns. This behavior is deprecated, and in a future version of pandas the grouping columns will be excluded from the operation. Either pass `include_groups=False` to exclude the groupings or explicitly select the grouping columns after groupby to silence this warning.
self.full_df.groupby(self.DEDUPLICATE_BY_COLUMNS).apply(
[INFO 04-19 07:10:50] ax.api.client: Trial 25 marked COMPLETED.
/home/runner/work/blop/blop/.pixi/envs/docs/lib/python3.13/site-packages/ax/core/data.py:365: FutureWarning: DataFrameGroupBy.apply operated on the grouping columns. This behavior is deprecated, and in a future version of pandas the grouping columns will be excluded from the operation. Either pass `include_groups=False` to exclude the groupings or explicitly select the grouping columns after groupby to silence this warning.
self.full_df.groupby(self.DEDUPLICATE_BY_COLUMNS).apply(
[INFO 04-19 07:10:50] ax.api.client: Generated new trial 26 with parameters {'x1': 3.195389, 'x2': -0.808776} using GenerationNode MBM.
/home/runner/work/blop/blop/.pixi/envs/docs/lib/python3.13/site-packages/ax/core/data.py:365: FutureWarning: DataFrameGroupBy.apply operated on the grouping columns. This behavior is deprecated, and in a future version of pandas the grouping columns will be excluded from the operation. Either pass `include_groups=False` to exclude the groupings or explicitly select the grouping columns after groupby to silence this warning.
self.full_df.groupby(self.DEDUPLICATE_BY_COLUMNS).apply(
[INFO 04-19 07:10:50] ax.api.client: Trial 26 marked COMPLETED.
/home/runner/work/blop/blop/.pixi/envs/docs/lib/python3.13/site-packages/ax/core/data.py:365: FutureWarning: DataFrameGroupBy.apply operated on the grouping columns. This behavior is deprecated, and in a future version of pandas the grouping columns will be excluded from the operation. Either pass `include_groups=False` to exclude the groupings or explicitly select the grouping columns after groupby to silence this warning.
self.full_df.groupby(self.DEDUPLICATE_BY_COLUMNS).apply(
[INFO 04-19 07:10:51] ax.api.client: Generated new trial 27 with parameters {'x1': 2.839812, 'x2': 0.090217} using GenerationNode MBM.
/home/runner/work/blop/blop/.pixi/envs/docs/lib/python3.13/site-packages/ax/core/data.py:365: FutureWarning: DataFrameGroupBy.apply operated on the grouping columns. This behavior is deprecated, and in a future version of pandas the grouping columns will be excluded from the operation. Either pass `include_groups=False` to exclude the groupings or explicitly select the grouping columns after groupby to silence this warning.
self.full_df.groupby(self.DEDUPLICATE_BY_COLUMNS).apply(
[INFO 04-19 07:10:51] ax.api.client: Trial 27 marked COMPLETED.
/home/runner/work/blop/blop/.pixi/envs/docs/lib/python3.13/site-packages/ax/core/data.py:365: FutureWarning: DataFrameGroupBy.apply operated on the grouping columns. This behavior is deprecated, and in a future version of pandas the grouping columns will be excluded from the operation. Either pass `include_groups=False` to exclude the groupings or explicitly select the grouping columns after groupby to silence this warning.
self.full_df.groupby(self.DEDUPLICATE_BY_COLUMNS).apply(
[INFO 04-19 07:10:51] ax.api.client: Generated new trial 28 with parameters {'x1': 2.418339, 'x2': -1.371797} using GenerationNode MBM.
/home/runner/work/blop/blop/.pixi/envs/docs/lib/python3.13/site-packages/ax/core/data.py:365: FutureWarning: DataFrameGroupBy.apply operated on the grouping columns. This behavior is deprecated, and in a future version of pandas the grouping columns will be excluded from the operation. Either pass `include_groups=False` to exclude the groupings or explicitly select the grouping columns after groupby to silence this warning.
self.full_df.groupby(self.DEDUPLICATE_BY_COLUMNS).apply(
[INFO 04-19 07:10:52] ax.api.client: Trial 28 marked COMPLETED.
/home/runner/work/blop/blop/.pixi/envs/docs/lib/python3.13/site-packages/ax/core/data.py:365: FutureWarning: DataFrameGroupBy.apply operated on the grouping columns. This behavior is deprecated, and in a future version of pandas the grouping columns will be excluded from the operation. Either pass `include_groups=False` to exclude the groupings or explicitly select the grouping columns after groupby to silence this warning.
self.full_df.groupby(self.DEDUPLICATE_BY_COLUMNS).apply(
[INFO 04-19 07:10:52] ax.api.client: Generated new trial 29 with parameters {'x1': 5.0, 'x2': -1.812762} using GenerationNode MBM.
/home/runner/work/blop/blop/.pixi/envs/docs/lib/python3.13/site-packages/ax/core/data.py:365: FutureWarning: DataFrameGroupBy.apply operated on the grouping columns. This behavior is deprecated, and in a future version of pandas the grouping columns will be excluded from the operation. Either pass `include_groups=False` to exclude the groupings or explicitly select the grouping columns after groupby to silence this warning.
self.full_df.groupby(self.DEDUPLICATE_BY_COLUMNS).apply(
[INFO 04-19 07:10:52] ax.api.client: Trial 29 marked COMPLETED.
──────────────────────────────────────────────── Iteration 1 / 30 ─────────────────────────────────────────────────
Acquire UID 4d5f6ec1-431a-4a6a-909c-515e8cc5fb6d
┏━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━┳━━━━┳━━━━━━━━━━━━━━━┓ ┃ Event ┃ Suggestion ID ┃ x1 ┃ x2 ┃ himmelblau_2d ┃ ┡━━━━━━━╇━━━━━━━━━━━━━━━╇━━━━╇━━━━╇━━━━━━━━━━━━━━━┩ │ 0 │ 0 │ 0 │ 0 │ 170 │ └───────┴───────────────┴────┴────┴───────────────┘
himmelblau_2d min: 170 max: 170 mean: 170 (1 pts sampled)
──────────────────────────────────────────────── Iteration 2 / 30 ─────────────────────────────────────────────────
Acquire UID 8d4dc7bf-6e9e-4df7-93e5-d03a3ab6eeef
┏━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓ ┃ Event ┃ Suggestion ID ┃ x1 ┃ x2 ┃ himmelblau_2d ┃ ┡━━━━━━━╇━━━━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩ │ 0 │ 1 │ -1.46277 │ -0.305821 │ 154.062 │ └───────┴───────────────┴──────────┴───────────┴───────────────┘
himmelblau_2d min: 154.062 max: 170 mean: 162.031 (2 pts sampled)
──────────────────────────────────────────────── Iteration 3 / 30 ─────────────────────────────────────────────────
Acquire UID 948035ec-9085-490f-a401-c0336d109100
┏━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━━━━┓ ┃ Event ┃ Suggestion ID ┃ x1 ┃ x2 ┃ himmelblau_2d ┃ ┡━━━━━━━╇━━━━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━━━━┩ │ 0 │ 2 │ 0.172018 │ 1.80411 │ 96.7887 │ └───────┴───────────────┴──────────┴─────────┴───────────────┘
himmelblau_2d min: 96.7887 max: 170 mean: 140.284 (3 pts sampled)
──────────────────────────────────────────────── Iteration 4 / 30 ─────────────────────────────────────────────────
Acquire UID 94f280cd-3af6-43c1-988b-a426474feaf6
┏━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━━━━━━┓ ┃ Event ┃ Suggestion ID ┃ x1 ┃ x2 ┃ himmelblau_2d ┃ ┡━━━━━━━╇━━━━━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━━━━━━┩ │ 0 │ 3 │ 3.34297 │ -4.77782 │ 388.691 │ └───────┴───────────────┴─────────┴──────────┴───────────────┘
himmelblau_2d min: 96.7887 max: 388.691 mean: 202.386 (4 pts sampled)
──────────────────────────────────────────────── Iteration 5 / 30 ─────────────────────────────────────────────────
Acquire UID 178e3df8-1552-43be-b185-2e5d155e19c8
┏━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━━━━┓ ┃ Event ┃ Suggestion ID ┃ x1 ┃ x2 ┃ himmelblau_2d ┃ ┡━━━━━━━╇━━━━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━━━━┩ │ 0 │ 4 │ -4.55098 │ 3.26976 │ 169.249 │ └───────┴───────────────┴──────────┴─────────┴───────────────┘
himmelblau_2d min: 96.7887 max: 388.691 mean: 195.758 (5 pts sampled)
──────────────────────────────────────────────── Iteration 6 / 30 ─────────────────────────────────────────────────
Acquire UID 4db695e5-246b-4cb0-bc60-4845126a3811
┏━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━━━━┓ ┃ Event ┃ Suggestion ID ┃ x1 ┃ x2 ┃ himmelblau_2d ┃ ┡━━━━━━━╇━━━━━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━━━━┩ │ 0 │ 5 │ 1.99431 │ 2.04024 │ 25.5361 │ └───────┴───────────────┴─────────┴─────────┴───────────────┘
himmelblau_2d min: 25.5361 max: 388.691 mean: 167.388 (6 pts sampled)
──────────────────────────────────────────────── Iteration 7 / 30 ─────────────────────────────────────────────────
Acquire UID 9f65bdca-60c4-4240-81f9-3983ab9a1f63
┏━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━━━━┓ ┃ Event ┃ Suggestion ID ┃ x1 ┃ x2 ┃ himmelblau_2d ┃ ┡━━━━━━━╇━━━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━━━━┩ │ 0 │ 6 │ 3.2581 │ 2.56765 │ 12.8927 │ └───────┴───────────────┴────────┴─────────┴───────────────┘
himmelblau_2d min: 12.8927 max: 388.691 mean: 145.317 (7 pts sampled)
──────────────────────────────────────────────── Iteration 8 / 30 ─────────────────────────────────────────────────
Acquire UID 77310974-372a-4c5e-8a28-081515ce37ff
┏━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━┳━━━━━━━━━━━━━━━┓ ┃ Event ┃ Suggestion ID ┃ x1 ┃ x2 ┃ himmelblau_2d ┃ ┡━━━━━━━╇━━━━━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━╇━━━━━━━━━━━━━━━┩ │ 0 │ 7 │ 2.28358 │ 4.091 │ 147.347 │ └───────┴───────────────┴─────────┴───────┴───────────────┘
himmelblau_2d min: 12.8927 max: 388.691 mean: 145.571 (8 pts sampled)
──────────────────────────────────────────────── Iteration 9 / 30 ─────────────────────────────────────────────────
Acquire UID d6a82182-adaf-4deb-a3f6-df161e742cbc
┏━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━┳━━━━━━━━━┳━━━━━━━━━━━━━━━┓ ┃ Event ┃ Suggestion ID ┃ x1 ┃ x2 ┃ himmelblau_2d ┃ ┡━━━━━━━╇━━━━━━━━━━━━━━━╇━━━━╇━━━━━━━━━╇━━━━━━━━━━━━━━━┩ │ 0 │ 8 │ 5 │ 1.93667 │ 257.043 │ └───────┴───────────────┴────┴─────────┴───────────────┘
himmelblau_2d min: 12.8927 max: 388.691 mean: 157.957 (9 pts sampled)
──────────────────────────────────────────────── Iteration 10 / 30 ────────────────────────────────────────────────
Acquire UID c71f8c1e-7039-48a0-a2ed-b082ece3482b
┏━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━━━━┓ ┃ Event ┃ Suggestion ID ┃ x1 ┃ x2 ┃ himmelblau_2d ┃ ┡━━━━━━━╇━━━━━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━━━━┩ │ 0 │ 9 │ 2.57913 │ 2.61432 │ 8.83232 │ └───────┴───────────────┴─────────┴─────────┴───────────────┘
himmelblau_2d min: 8.83232 max: 388.691 mean: 143.044 (10 pts sampled)
──────────────────────────────────────────────── Iteration 11 / 30 ────────────────────────────────────────────────
Acquire UID 47953dd6-40a8-4a55-b36e-56b874a40961
┏━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━━━━┓ ┃ Event ┃ Suggestion ID ┃ x1 ┃ x2 ┃ himmelblau_2d ┃ ┡━━━━━━━╇━━━━━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━━━━┩ │ 0 │ 10 │ 2.80813 │ 1.99735 │ 1.28883 │ └───────┴───────────────┴─────────┴─────────┴───────────────┘
himmelblau_2d min: 1.28883 max: 388.691 mean: 130.157 (11 pts sampled)
──────────────────────────────────────────────── Iteration 12 / 30 ────────────────────────────────────────────────
Acquire UID 8f5c44e7-fa61-4bb8-97f9-2445953f47b4
┏━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━━━━┓ ┃ Event ┃ Suggestion ID ┃ x1 ┃ x2 ┃ himmelblau_2d ┃ ┡━━━━━━━╇━━━━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━━━━┩ │ 0 │ 11 │ -2.02141 │ 2.78554 │ 18.6365 │ └───────┴───────────────┴──────────┴─────────┴───────────────┘
himmelblau_2d min: 1.28883 max: 388.691 mean: 120.864 (12 pts sampled)
──────────────────────────────────────────────── Iteration 13 / 30 ────────────────────────────────────────────────
Acquire UID b9494a86-02f9-4c4a-aa07-e385ba58fea3
┏━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━━━━┓ ┃ Event ┃ Suggestion ID ┃ x1 ┃ x2 ┃ himmelblau_2d ┃ ┡━━━━━━━╇━━━━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━━━━┩ │ 0 │ 12 │ -1.80589 │ 4.27716 │ 102.008 │ └───────┴───────────────┴──────────┴─────────┴───────────────┘
himmelblau_2d min: 1.28883 max: 388.691 mean: 119.414 (13 pts sampled)
──────────────────────────────────────────────── Iteration 14 / 30 ────────────────────────────────────────────────
Acquire UID f2b60c3d-169e-4b12-a3a3-3edbf705d532
┏━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━━━━┓ ┃ Event ┃ Suggestion ID ┃ x1 ┃ x2 ┃ himmelblau_2d ┃ ┡━━━━━━━╇━━━━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━━━━┩ │ 0 │ 13 │ -2.69917 │ 1.72589 │ 49.1191 │ └───────┴───────────────┴──────────┴─────────┴───────────────┘
himmelblau_2d min: 1.28883 max: 388.691 mean: 114.392 (14 pts sampled)
──────────────────────────────────────────────── Iteration 15 / 30 ────────────────────────────────────────────────
Acquire UID b83fc1f0-4c1f-4498-bf6b-60b8afd3e72f
┏━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━━━━┓ ┃ Event ┃ Suggestion ID ┃ x1 ┃ x2 ┃ himmelblau_2d ┃ ┡━━━━━━━╇━━━━━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━━━━┩ │ 0 │ 14 │ 2.75174 │ 2.27916 │ 2.21516 │ └───────┴───────────────┴─────────┴─────────┴───────────────┘
himmelblau_2d min: 1.28883 max: 388.691 mean: 106.914 (15 pts sampled)
──────────────────────────────────────────────── Iteration 16 / 30 ────────────────────────────────────────────────
Acquire UID 3cf12ba6-02c7-4c60-bec4-11609c23e110
┏━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━┳━━━━━━━━━━┳━━━━━━━━━━━━━━━┓ ┃ Event ┃ Suggestion ID ┃ x1 ┃ x2 ┃ himmelblau_2d ┃ ┡━━━━━━━╇━━━━━━━━━━━━━━━╇━━━━╇━━━━━━━━━━╇━━━━━━━━━━━━━━━┩ │ 0 │ 15 │ -5 │ -3.30261 │ 115.628 │ └───────┴───────────────┴────┴──────────┴───────────────┘
himmelblau_2d min: 1.28883 max: 388.691 mean: 107.459 (16 pts sampled)
──────────────────────────────────────────────── Iteration 17 / 30 ────────────────────────────────────────────────
Acquire UID 7c54c9cd-72a0-498b-a451-6dc762dc3f17
┏━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━┳━━━━━━━━━━━━━━━┓ ┃ Event ┃ Suggestion ID ┃ x1 ┃ x2 ┃ himmelblau_2d ┃ ┡━━━━━━━╇━━━━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━╇━━━━━━━━━━━━━━━┩ │ 0 │ 16 │ -3.10583 │ -5 │ 262.207 │ └───────┴───────────────┴──────────┴────┴───────────────┘
himmelblau_2d min: 1.28883 max: 388.691 mean: 116.561 (17 pts sampled)
──────────────────────────────────────────────── Iteration 18 / 30 ────────────────────────────────────────────────
Acquire UID 0031dc25-8cc0-4180-ba09-626827fe5483
┏━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓ ┃ Event ┃ Suggestion ID ┃ x1 ┃ x2 ┃ himmelblau_2d ┃ ┡━━━━━━━╇━━━━━━━━━━━━━━━╇━━━━╇━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩ │ 0 │ 17 │ -5 │ -0.832645 │ 301.221 │ └───────┴───────────────┴────┴───────────┴───────────────┘
himmelblau_2d min: 1.28883 max: 388.691 mean: 126.82 (18 pts sampled)
──────────────────────────────────────────────── Iteration 19 / 30 ────────────────────────────────────────────────
Acquire UID a575e59b-254b-467d-b1d8-619e49de90f9
┏━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━━━━┓ ┃ Event ┃ Suggestion ID ┃ x1 ┃ x2 ┃ himmelblau_2d ┃ ┡━━━━━━━╇━━━━━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━━━━┩ │ 0 │ 18 │ -1.6937 │ 1.96171 │ 61.5427 │ └───────┴───────────────┴─────────┴─────────┴───────────────┘
himmelblau_2d min: 1.28883 max: 388.691 mean: 123.385 (19 pts sampled)
──────────────────────────────────────────────── Iteration 20 / 30 ────────────────────────────────────────────────
Acquire UID b44413de-ea52-4478-bccc-368f99792a16
┏━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━━━━┓ ┃ Event ┃ Suggestion ID ┃ x1 ┃ x2 ┃ himmelblau_2d ┃ ┡━━━━━━━╇━━━━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━━━━┩ │ 0 │ 19 │ -2.77376 │ 3.03655 │ 0.378709 │ └───────┴───────────────┴──────────┴─────────┴───────────────┘
himmelblau_2d min: 0.378709 max: 388.691 mean: 117.234 (20 pts sampled)
──────────────────────────────────────────────── Iteration 21 / 30 ────────────────────────────────────────────────
Acquire UID c6f4a365-6fd8-4144-84b6-306ea96edf52
┏━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━━━━┓ ┃ Event ┃ Suggestion ID ┃ x1 ┃ x2 ┃ himmelblau_2d ┃ ┡━━━━━━━╇━━━━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━━━━┩ │ 0 │ 20 │ -2.67172 │ 2.80861 │ 4.2901 │ └───────┴───────────────┴──────────┴─────────┴───────────────┘
himmelblau_2d min: 0.378709 max: 388.691 mean: 111.856 (21 pts sampled)
──────────────────────────────────────────────── Iteration 22 / 30 ────────────────────────────────────────────────
Acquire UID 59bfe362-c5bd-4e44-8508-a0c8d7dfe9c6
┏━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━┳━━━━┳━━━━━━━━━━━━━━━┓ ┃ Event ┃ Suggestion ID ┃ x1 ┃ x2 ┃ himmelblau_2d ┃ ┡━━━━━━━╇━━━━━━━━━━━━━━━╇━━━━━━━━━╇━━━━╇━━━━━━━━━━━━━━━┩ │ 0 │ 21 │ 4.73838 │ 5 │ 787.711 │ └───────┴───────────────┴─────────┴────┴───────────────┘
himmelblau_2d min: 0.378709 max: 787.711 mean: 142.577 (22 pts sampled)
──────────────────────────────────────────────── Iteration 23 / 30 ────────────────────────────────────────────────
Acquire UID 92f43469-3061-40dc-bca2-0e120a028b90
┏━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━┳━━━━┳━━━━━━━━━━━━━━━┓ ┃ Event ┃ Suggestion ID ┃ x1 ┃ x2 ┃ himmelblau_2d ┃ ┡━━━━━━━╇━━━━━━━━━━━━━━━╇━━━━╇━━━━╇━━━━━━━━━━━━━━━┩ │ 0 │ 22 │ -5 │ -5 │ 250 │ └───────┴───────────────┴────┴────┴───────────────┘
himmelblau_2d min: 0.378709 max: 787.711 mean: 147.247 (23 pts sampled)
──────────────────────────────────────────────── Iteration 24 / 30 ────────────────────────────────────────────────
Acquire UID d921ab5f-bad7-46ed-9cc0-31457cd87960
┏━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━━━━━━┓ ┃ Event ┃ Suggestion ID ┃ x1 ┃ x2 ┃ himmelblau_2d ┃ ┡━━━━━━━╇━━━━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━━━━━━┩ │ 0 │ 23 │ -2.99646 │ -2.57569 │ 32.4366 │ └───────┴───────────────┴──────────┴──────────┴───────────────┘
himmelblau_2d min: 0.378709 max: 787.711 mean: 142.464 (24 pts sampled)
──────────────────────────────────────────────── Iteration 25 / 30 ────────────────────────────────────────────────
Acquire UID eb0e7423-0d85-48a5-8242-a74eec280b49
┏━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━━━━━━┓ ┃ Event ┃ Suggestion ID ┃ x1 ┃ x2 ┃ himmelblau_2d ┃ ┡━━━━━━━╇━━━━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━━━━━━┩ │ 0 │ 24 │ -1.44226 │ -2.89314 │ 139.553 │ └───────┴───────────────┴──────────┴──────────┴───────────────┘
himmelblau_2d min: 0.378709 max: 787.711 mean: 142.347 (25 pts sampled)
──────────────────────────────────────────────── Iteration 26 / 30 ────────────────────────────────────────────────
Acquire UID a295ba01-c52f-4fca-806d-951f086e6ba2
┏━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━┳━━━━━━━━━━━━━━━┓ ┃ Event ┃ Suggestion ID ┃ x1 ┃ x2 ┃ himmelblau_2d ┃ ┡━━━━━━━╇━━━━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━╇━━━━━━━━━━━━━━━┩ │ 0 │ 25 │ -3.55411 │ 5 │ 252.663 │ └───────┴───────────────┴──────────┴────┴───────────────┘
himmelblau_2d min: 0.378709 max: 787.711 mean: 146.59 (26 pts sampled)
──────────────────────────────────────────────── Iteration 27 / 30 ────────────────────────────────────────────────
Acquire UID d23ad581-8e0a-4a4c-bcba-b501bc5ff949
┏━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓ ┃ Event ┃ Suggestion ID ┃ x1 ┃ x2 ┃ himmelblau_2d ┃ ┡━━━━━━━╇━━━━━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩ │ 0 │ 26 │ 3.19539 │ -0.808776 │ 12.4801 │ └───────┴───────────────┴─────────┴───────────┴───────────────┘
himmelblau_2d min: 0.378709 max: 787.711 mean: 141.623 (27 pts sampled)
──────────────────────────────────────────────── Iteration 28 / 30 ────────────────────────────────────────────────
Acquire UID 532ee23f-0847-4edb-86ee-7fb82498a725
┏━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓ ┃ Event ┃ Suggestion ID ┃ x1 ┃ x2 ┃ himmelblau_2d ┃ ┡━━━━━━━╇━━━━━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩ │ 0 │ 27 │ 2.83981 │ 0.0902171 │ 25.335 │ └───────┴───────────────┴─────────┴───────────┴───────────────┘
himmelblau_2d min: 0.378709 max: 787.711 mean: 137.47 (28 pts sampled)
──────────────────────────────────────────────── Iteration 29 / 30 ────────────────────────────────────────────────
Acquire UID 333d47b3-cada-4254-b37d-613edab033bf
┏━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━━━━┓ ┃ Event ┃ Suggestion ID ┃ x1 ┃ x2 ┃ himmelblau_2d ┃ ┡━━━━━━━╇━━━━━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━━━━┩ │ 0 │ 28 │ 2.41834 │ -1.3718 │ 49.8443 │ └───────┴───────────────┴─────────┴─────────┴───────────────┘
himmelblau_2d min: 0.378709 max: 787.711 mean: 134.448 (29 pts sampled)
──────────────────────────────────────────────── Iteration 30 / 30 ────────────────────────────────────────────────
Acquire UID 5761f488-30ca-4bd3-8237-27ed7c0467aa
┏━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━┳━━━━━━━━━━┳━━━━━━━━━━━━━━━┓ ┃ Event ┃ Suggestion ID ┃ x1 ┃ x2 ┃ himmelblau_2d ┃ ┡━━━━━━━╇━━━━━━━━━━━━━━━╇━━━━╇━━━━━━━━━━╇━━━━━━━━━━━━━━━┩ │ 0 │ 29 │ 5 │ -1.81276 │ 150.183 │ └───────┴───────────────┴────┴──────────┴───────────────┘
himmelblau_2d min: 0.378709 max: 787.711 mean: 134.973 (30 pts sampled)
Summary Statistics ┏━━━━━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━┓ ┃ Name ┃ Type ┃ Min ┃ Max ┃ Mean ┃ Std ┃ Count ┃ ┡━━━━━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━┩ │ x1 │ param │ -5 │ 5 │ -0.113205 │ 3.28442 │ 30 │ │ x2 │ param │ -5 │ 5 │ 0.686829 │ 2.95016 │ 30 │ │ himmelblau_2d │ outcome │ 0.378709 │ 787.711 │ 134.973 │ 162.619 │ 30 │ └───────────────┴─────────┴──────────┴─────────┴───────────┴─────────┴───────┘
────────────────────────────────────────────── Optimization Complete ──────────────────────────────────────────────
('549dbbdc-4df7-4dc8-a98a-3c488870dc74',
'4d5f6ec1-431a-4a6a-909c-515e8cc5fb6d',
'8d4dc7bf-6e9e-4df7-93e5-d03a3ab6eeef',
'948035ec-9085-490f-a401-c0336d109100',
'94f280cd-3af6-43c1-988b-a426474feaf6',
'178e3df8-1552-43be-b185-2e5d155e19c8',
'4db695e5-246b-4cb0-bc60-4845126a3811',
'9f65bdca-60c4-4240-81f9-3983ab9a1f63',
'77310974-372a-4c5e-8a28-081515ce37ff',
'd6a82182-adaf-4deb-a3f6-df161e742cbc',
'c71f8c1e-7039-48a0-a2ed-b082ece3482b',
'47953dd6-40a8-4a55-b36e-56b874a40961',
'8f5c44e7-fa61-4bb8-97f9-2445953f47b4',
'b9494a86-02f9-4c4a-aa07-e385ba58fea3',
'f2b60c3d-169e-4b12-a3a3-3edbf705d532',
'b83fc1f0-4c1f-4498-bf6b-60b8afd3e72f',
'3cf12ba6-02c7-4c60-bec4-11609c23e110',
'7c54c9cd-72a0-498b-a451-6dc762dc3f17',
'0031dc25-8cc0-4180-ba09-626827fe5483',
'a575e59b-254b-467d-b1d8-619e49de90f9',
'b44413de-ea52-4478-bccc-368f99792a16',
'c6f4a365-6fd8-4144-84b6-306ea96edf52',
'59bfe362-c5bd-4e44-8508-a0c8d7dfe9c6',
'92f43469-3061-40dc-bca2-0e120a028b90',
'd921ab5f-bad7-46ed-9cc0-31457cd87960',
'eb0e7423-0d85-48a5-8242-a74eec280b49',
'a295ba01-c52f-4fca-806d-951f086e6ba2',
'd23ad581-8e0a-4a4c-bcba-b501bc5ff949',
'532ee23f-0847-4edb-86ee-7fb82498a725',
'333d47b3-cada-4254-b37d-613edab033bf',
'5761f488-30ca-4bd3-8237-27ed7c0467aa')
Viewing the results#
After optimization, visualize what the Agent learned and see the best parameters found:
agent.plot_objective("x1", "x2", "himmelblau_2d")
agent.ax_client.summarize()
/home/runner/work/blop/blop/.pixi/envs/docs/lib/python3.13/site-packages/ax/core/data.py:365: FutureWarning: DataFrameGroupBy.apply operated on the grouping columns. This behavior is deprecated, and in a future version of pandas the grouping columns will be excluded from the operation. Either pass `include_groups=False` to exclude the groupings or explicitly select the grouping columns after groupby to silence this warning.
self.full_df.groupby(self.DEDUPLICATE_BY_COLUMNS).apply(
himmelblau_2d (Mean) vs. x1, x2
The contour plot visualizes the predicted outcomes for himmelblau_2d across a two-dimensional parameter space, with other parameters held fixed at their best trial value (Arm 14_0). This plot helps in identifying regions of optimal performance and understanding how changes in the selected parameters influence the predicted outcomes. Contour lines represent levels of constant predicted values, providing insights into the gradient and potential optima within the parameter space.
| trial_index | arm_name | trial_status | generation_node | himmelblau_2d | x1 | x2 | |
|---|---|---|---|---|---|---|---|
| 0 | 0 | 0_0 | COMPLETED | CenterOfSearchSpace | 170.000000 | 0.000000 | 0.000000 |
| 1 | 1 | 1_0 | COMPLETED | Sobol | 154.062088 | -1.462770 | -0.305821 |
| 2 | 2 | 2_0 | COMPLETED | Sobol | 96.788716 | 0.172018 | 1.804107 |
| 3 | 3 | 3_0 | COMPLETED | Sobol | 388.691442 | 3.342968 | -4.777821 |
| 4 | 4 | 4_0 | COMPLETED | Sobol | 169.249038 | -4.550976 | 3.269760 |
| 5 | 5 | 5_0 | COMPLETED | MBM | 25.536063 | 1.994311 | 2.040236 |
| 6 | 6 | 6_0 | COMPLETED | MBM | 12.892739 | 3.258101 | 2.567650 |
| 7 | 7 | 7_0 | COMPLETED | MBM | 147.347397 | 2.283576 | 4.090999 |
| 8 | 8 | 8_0 | COMPLETED | MBM | 257.042528 | 5.000000 | 1.936674 |
| 9 | 9 | 9_0 | COMPLETED | MBM | 8.832324 | 2.579135 | 2.614320 |
| 10 | 10 | 10_0 | COMPLETED | MBM | 1.288826 | 2.808129 | 1.997349 |
| 11 | 11 | 11_0 | COMPLETED | MBM | 18.636539 | -2.021407 | 2.785540 |
| 12 | 12 | 12_0 | COMPLETED | MBM | 102.008128 | -1.805891 | 4.277156 |
| 13 | 13 | 13_0 | COMPLETED | MBM | 49.119060 | -2.699169 | 1.725894 |
| 14 | 14 | 14_0 | COMPLETED | MBM | 2.215163 | 2.751742 | 2.279163 |
| 15 | 15 | 15_0 | COMPLETED | MBM | 115.628344 | -5.000000 | -3.302609 |
| 16 | 16 | 16_0 | COMPLETED | MBM | 262.206889 | -3.105834 | -5.000000 |
| 17 | 17 | 17_0 | COMPLETED | MBM | 301.220768 | -5.000000 | -0.832645 |
| 18 | 18 | 18_0 | COMPLETED | MBM | 61.542683 | -1.693701 | 1.961709 |
| 19 | 19 | 19_0 | COMPLETED | MBM | 0.378709 | -2.773760 | 3.036547 |
| 20 | 20 | 20_0 | COMPLETED | MBM | 4.290097 | -2.671723 | 2.808608 |
| 21 | 21 | 21_0 | COMPLETED | MBM | 787.711381 | 4.738383 | 5.000000 |
| 22 | 22 | 22_0 | COMPLETED | MBM | 250.000000 | -5.000000 | -5.000000 |
| 23 | 23 | 23_0 | COMPLETED | MBM | 32.436579 | -2.996459 | -2.575693 |
| 24 | 24 | 24_0 | COMPLETED | MBM | 139.553188 | -1.442255 | -2.893144 |
| 25 | 25 | 25_0 | COMPLETED | MBM | 252.663313 | -3.554112 | 5.000000 |
| 26 | 26 | 26_0 | COMPLETED | MBM | 12.480051 | 3.195389 | -0.808776 |
| 27 | 27 | 27_0 | COMPLETED | MBM | 25.334977 | 2.839812 | 0.090217 |
| 28 | 28 | 28_0 | COMPLETED | MBM | 49.844282 | 2.418339 | -1.371797 |
| 29 | 29 | 29_0 | COMPLETED | MBM | 150.182841 | 5.000000 | -1.812762 |
The Himmelblau function has four global minima (all with value 0). The summarize output shows which one(s) the optimizer found.
What you learned#
You now understand the three core concepts of Blop:
DOFs: The parameters the optimizer adjusts (here,
x1andx2with bounds)Objectives: What you’re optimizing (here, minimizing the Himmelblau function)
Agent: Coordinates the optimization loop between Bluesky and the evaluation function
Next steps#
For a more comprehensive tutorial with multiple objectives and diagnostic tools, see Optimizing KB Mirrors.