From 4572eb083a7b21097bf69babd9ebc234120a8d83 Mon Sep 17 00:00:00 2001 From: Thibaut Klenke Date: Wed, 31 Dec 2025 13:56:07 +0100 Subject: [PATCH 01/16] First dacboenv compatibility --- dacbench/benchmarks/__init__.py | 12 +++ dacbench/benchmarks/dacbo_benchmark.py | 82 +++++++++++++++++++ dacbench/envs/dacbo.py | 28 +++++++ .../instance_sets/dacbo/bbob_2_default.csv | 3 + pyproject.toml | 2 +- 5 files changed, 126 insertions(+), 1 deletion(-) create mode 100644 dacbench/benchmarks/dacbo_benchmark.py create mode 100644 dacbench/envs/dacbo.py create mode 100644 dacbench/instance_sets/dacbo/bbob_2_default.csv diff --git a/dacbench/benchmarks/__init__.py b/dacbench/benchmarks/__init__.py index 726dc1740..23e323d50 100644 --- a/dacbench/benchmarks/__init__.py +++ b/dacbench/benchmarks/__init__.py @@ -51,3 +51,15 @@ "Theory Benchmark not installed. If you want to use this benchmark, " "please follow the installation guide." ) + +dacbo_spec = importlib.util.find_spec("dacboenv") +found = dacbo_spec is not None +if found: + from dacbench.benchmarks.dacbo_benchmark import DACBOBenchmark + + __all__.append("DACBOBenchmark") +else: + warnings.warn( # noqa: B028 + "DACBOEnv not installed. If you want to use this benchmark, " + "please follow the installation guide." + ) diff --git a/dacbench/benchmarks/dacbo_benchmark.py b/dacbench/benchmarks/dacbo_benchmark.py new file mode 100644 index 000000000..b32873377 --- /dev/null +++ b/dacbench/benchmarks/dacbo_benchmark.py @@ -0,0 +1,82 @@ +"""DACBOEnv Benchmark.""" + +from __future__ import annotations + +from pathlib import Path + +import pandas as pd + +from dacbench.abstract_benchmark import AbstractBenchmark, objdict +from dacbench.envs.dacbo import DACBOEnv + +INFO = { + "identifier": "DACBO", + "name": "DACBO", + "reward": "DACBO Rewards", + "state_description": [ + "incumbent_change_observation", + "trials_passed_observation", + "trials_left_observation", + "ubr_observation", + "modelfit_observation", + "dimensions_observation", + "continuous_hp_observation", + "categorical_hp_observation", + "ordinal_hp_observation", + "int_hp_observation", + "tsp_observation", + "knn_entropy_observation", + "skewness_observation", + "kurtosis_observation", + "mean_observation", + "std_observation", + "variability_observation", + ], +} + +DACBO_DEFAULTS = objdict( + { + "reward_range": (float("-inf"), float("inf")), + "seed": 0, + "instance_set_path": "bbob_2_default.csv", + "benchmark_info": INFO, + } +) + + +class DACBOBenchmark(AbstractBenchmark): + """DACBOEnv benchmark.""" + + def __init__(self, config_path=None, config=None): + """Init DACBOEnv benchmark.""" + super().__init__(config_path, config) + + if not self.config: + self.config = objdict(DACBO_DEFAULTS.copy()) + + for key in DACBO_DEFAULTS: + if key not in self.config: + self.config[key] = DACBO_DEFAULTS[key] + + def get_environment(self): + """Returns the internal env.""" + return DACBOEnv(self.config) + + def read_instance_set(self): + """Reads the instance set.""" + assert self.config.instance_set_path + if Path(self.config.instance_set_path).is_file(): + path = self.config.instance_set_path + else: + path = ( + Path(__file__).resolve().parent + / "../instance_sets/dacbo/" + / self.config.instance_set_path + ) + + instance_df = pd.read_csv(path) + self.config["instance_set"] = { + 0: instance_df["task_id"].tolist() + } # Instance selection is handled by the internal env + + assert len(self.config["instance_set"][0]) > 0, "ERROR: empty instance set" diff --git a/dacbench/envs/dacbo.py b/dacbench/envs/dacbo.py new file mode 100644 index 000000000..af8406fe2 --- /dev/null +++ b/dacbench/envs/dacbo.py @@ -0,0 +1,28 @@ +"""DACBO Env.""" + +from __future__ import annotations + +from dacboenv.dacboenv import DACBOEnv as DEnv + +from dacbench.abstract_env import AbstractEnv + + +class DACBOEnv(AbstractEnv): + """DACBO env.""" + + def __init__(self, config): + """Init DACBO env.""" + self._env = DEnv(task_ids=config["instance_set"][0], **config) + self.reset() + config["cutoff"] = 1e6 + config["observation_space"] = self._env.observation_space + config["action_space"] = self._env.action_space + super().__init__(config) + + def step(self, action): + """Takes one env step.""" + return self._env.step(action) + + def reset(self, seed=None): + """Resets the internal env.""" + return self._env.reset() diff --git a/dacbench/instance_sets/dacbo/bbob_2_default.csv b/dacbench/instance_sets/dacbo/bbob_2_default.csv new file mode 100644 index 000000000..f4ed7db31 --- /dev/null +++ b/dacbench/instance_sets/dacbo/bbob_2_default.csv @@ -0,0 +1,3 @@ +task_id, +bbob/2/1/0 +bbob/2/20/0 \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml index 9c2b8ce73..88b72b779 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -27,7 +27,7 @@ classifiers = [ ] requires-python = ">=3.10" dependencies = [ - "gymnasium<=0.29.1", + "gymnasium>=1.1.1", "imageio~=2.35.1", "numpy==1.26.4", "pandas==2.2.3", From 02ce9e62851766f84ca74e6a39005ed5477ef6f9 Mon Sep 17 00:00:00 2001 From: Thibaut Klenke Date: Thu, 1 Jan 2026 11:04:53 +0100 Subject: [PATCH 02/16] Handle BO runs as episodes --- dacbench/envs/dacbo.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/dacbench/envs/dacbo.py b/dacbench/envs/dacbo.py index af8406fe2..f8538f12e 100644 --- a/dacbench/envs/dacbo.py +++ b/dacbench/envs/dacbo.py @@ -14,14 +14,17 @@ def __init__(self, config): """Init DACBO env.""" self._env = DEnv(task_ids=config["instance_set"][0], **config) self.reset() - config["cutoff"] = 1e6 + config["cutoff"] = float("inf") # Not used. DACBO handles BO runs internally config["observation_space"] = self._env.observation_space config["action_space"] = self._env.action_space super().__init__(config) def step(self, action): """Takes one env step.""" - return self._env.step(action) + state, reward, terminated, truncated, info = self._env.step(action) + if truncated: # Reset BO loop, select new instance + self._env.reset() + return state, reward, terminated, truncated, info def reset(self, seed=None): """Resets the internal env.""" From be7d8eaf1a32fe901d8fd3b63cad6a1ad25174fb Mon Sep 17 00:00:00 2001 From: Thibaut Klenke Date: Thu, 1 Jan 2026 11:17:08 +0100 Subject: [PATCH 03/16] Refine benchmark info --- dacbench/benchmarks/dacbo_benchmark.py | 21 +++------------------ 1 file changed, 3 insertions(+), 18 deletions(-) diff --git a/dacbench/benchmarks/dacbo_benchmark.py b/dacbench/benchmarks/dacbo_benchmark.py index b32873377..393192aa7 100644 --- a/dacbench/benchmarks/dacbo_benchmark.py +++ b/dacbench/benchmarks/dacbo_benchmark.py @@ -4,6 +4,7 @@ from pathlib import Path +import dacboenv import pandas as pd from dacbench.abstract_benchmark import AbstractBenchmark, objdict @@ -12,25 +13,9 @@ INFO = { "identifier": "DACBO", "name": "DACBO", - "reward": "DACBO Rewards", + "reward": "Incumbent cost", "state_description": [ - "incumbent_change_observation", - "trials_passed_observation", - "trials_left_observation", - "ubr_observation", - "modelfit_observation", - "dimensions_observation", - "continuous_hp_observation", - "categorical_hp_observation", - "ordinal_hp_observation", - "int_hp_observation", - "tsp_observation", - "knn_entropy_observation", - "skewness_observation", - "kurtosis_observation", - "mean_observation", - "std_observation", - "variability_observation", + obs.name for obs in dacboenv.env.observation.ALL_OBSERVATIONS ], } From d6b3925ed20a5d21a056fbb4258df5ef330444d4 Mon Sep 17 00:00:00 2001 From: Thibaut Klenke Date: Thu, 1 Jan 2026 11:53:44 +0100 Subject: [PATCH 04/16] Refine config defaults --- dacbench/benchmarks/dacbo_benchmark.py | 9 ++++++++- dacbench/envs/dacbo.py | 3 ++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/dacbench/benchmarks/dacbo_benchmark.py b/dacbench/benchmarks/dacbo_benchmark.py index 393192aa7..14bc48ad6 100644 --- a/dacbench/benchmarks/dacbo_benchmark.py +++ b/dacbench/benchmarks/dacbo_benchmark.py @@ -5,7 +5,9 @@ from pathlib import Path import dacboenv +import numpy as np import pandas as pd +from dacboenv.env.action import AcqParameterActionSpace from dacbench.abstract_benchmark import AbstractBenchmark, objdict from dacbench.envs.dacbo import DACBOEnv @@ -21,9 +23,14 @@ DACBO_DEFAULTS = objdict( { - "reward_range": (float("-inf"), float("inf")), + "reward_range": [-np.inf, np.inf], "seed": 0, "instance_set_path": "bbob_2_default.csv", + "observation_keys": None, + "action_space_class": AcqParameterActionSpace, + "action_space_kwargs": None, + "reward_keys": None, + "inner_seeds": None, "benchmark_info": INFO, } ) diff --git a/dacbench/envs/dacbo.py b/dacbench/envs/dacbo.py index f8538f12e..d93fe76a5 100644 --- a/dacbench/envs/dacbo.py +++ b/dacbench/envs/dacbo.py @@ -2,6 +2,7 @@ from __future__ import annotations +import numpy as np from dacboenv.dacboenv import DACBOEnv as DEnv from dacbench.abstract_env import AbstractEnv @@ -14,7 +15,7 @@ def __init__(self, config): """Init DACBO env.""" self._env = DEnv(task_ids=config["instance_set"][0], **config) self.reset() - config["cutoff"] = float("inf") # Not used. DACBO handles BO runs internally + config["cutoff"] = np.inf # Not used. DACBO handles BO runs internally config["observation_space"] = self._env.observation_space config["action_space"] = self._env.action_space super().__init__(config) From a24da3c91ceadb58b312ac7fcffb53db71003720 Mon Sep 17 00:00:00 2001 From: Thibaut Klenke Date: Thu, 1 Jan 2026 12:08:46 +0100 Subject: [PATCH 05/16] DACBO example notebook --- examples/benchmark_notebooks/dacbo.ipynb | 600 +++++++++++++++++++++++ 1 file changed, 600 insertions(+) create mode 100644 examples/benchmark_notebooks/dacbo.ipynb diff --git a/examples/benchmark_notebooks/dacbo.ipynb b/examples/benchmark_notebooks/dacbo.ipynb new file mode 100644 index 000000000..2a089c681 --- /dev/null +++ b/examples/benchmark_notebooks/dacbo.ipynb @@ -0,0 +1,600 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "from rich.pretty import pprint" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## The DACBO Benchmark\n", + "Let's take a look at DACBO. This is a benchmark for controlling hyperparameters of a Bayesian Optimization (BO) loop. First, let's make an instance of the benchmark:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from dacbench.benchmarks import DACBOBenchmark\n", + "bench = DACBOBenchmark()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now let's take a look at the elements of the config in this benchmark:" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
[\n",
+       "'reward_range',\n",
+       "'seed',\n",
+       "'instance_set_path',\n",
+       "'observation_keys',\n",
+       "'action_space_class',\n",
+       "'action_space_kwargs',\n",
+       "'reward_keys',\n",
+       "'inner_seeds',\n",
+       "'benchmark_info'\n",
+       "]\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[1m[\u001b[0m\n", + "\u001b[2;32m│ \u001b[0m\u001b[32m'reward_range'\u001b[0m,\n", + "\u001b[2;32m│ \u001b[0m\u001b[32m'seed'\u001b[0m,\n", + "\u001b[2;32m│ \u001b[0m\u001b[32m'instance_set_path'\u001b[0m,\n", + "\u001b[2;32m│ \u001b[0m\u001b[32m'observation_keys'\u001b[0m,\n", + "\u001b[2;32m│ \u001b[0m\u001b[32m'action_space_class'\u001b[0m,\n", + "\u001b[2;32m│ \u001b[0m\u001b[32m'action_space_kwargs'\u001b[0m,\n", + "\u001b[2;32m│ \u001b[0m\u001b[32m'reward_keys'\u001b[0m,\n", + "\u001b[2;32m│ \u001b[0m\u001b[32m'inner_seeds'\u001b[0m,\n", + "\u001b[2;32m│ \u001b[0m\u001b[32m'benchmark_info'\u001b[0m\n", + "\u001b[1m]\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "pprint(list(bench.config.keys()))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The 'benchmark_info' tells us some things about this benchmark already:" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
{\n",
+       "'identifier': 'DACBO',\n",
+       "'name': 'DACBO',\n",
+       "'reward': 'Incumbent cost',\n",
+       "'state_description': [\n",
+       "│   │   'incumbent_changes',\n",
+       "│   │   'trials_passed',\n",
+       "│   │   'trials_left',\n",
+       "│   │   'ubr',\n",
+       "│   │   'searchspace_dim',\n",
+       "│   │   'continuous_hps',\n",
+       "│   │   'categorical_hps',\n",
+       "│   │   'ordinal_hps',\n",
+       "│   │   'int_hps',\n",
+       "│   │   'tsp',\n",
+       "│   │   'knn_entropy',\n",
+       "│   │   'y_skewness',\n",
+       "│   │   'y_kurtosis',\n",
+       "│   │   'y_mean',\n",
+       "│   │   'y_std',\n",
+       "│   │   'y_variability',\n",
+       "│   │   'tsp_best',\n",
+       "│   │   'knn_entropy_best',\n",
+       "│   │   'y_skewness_best',\n",
+       "│   │   'y_kurtosis_best',\n",
+       "│   │   'y_mean_best',\n",
+       "│   │   'y_std_best',\n",
+       "│   │   'y_variability_best',\n",
+       "│   │   'budget_percentage',\n",
+       "│   │   'inc_improvement_scaled',\n",
+       "│   │   'has_categorical_hps',\n",
+       "│   │   'knn_difference',\n",
+       "│   │   'ubr_difference',\n",
+       "│   │   'acq_value_EI',\n",
+       "│   │   'acq_value_PI',\n",
+       "│   │   'previous_param'\n",
+       "]\n",
+       "}\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[1m{\u001b[0m\n", + "\u001b[2;32m│ \u001b[0m\u001b[32m'identifier'\u001b[0m: \u001b[32m'DACBO'\u001b[0m,\n", + "\u001b[2;32m│ \u001b[0m\u001b[32m'name'\u001b[0m: \u001b[32m'DACBO'\u001b[0m,\n", + "\u001b[2;32m│ \u001b[0m\u001b[32m'reward'\u001b[0m: \u001b[32m'Incumbent cost'\u001b[0m,\n", + "\u001b[2;32m│ \u001b[0m\u001b[32m'state_description'\u001b[0m: \u001b[1m[\u001b[0m\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[32m'incumbent_changes'\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[32m'trials_passed'\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[32m'trials_left'\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[32m'ubr'\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[32m'searchspace_dim'\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[32m'continuous_hps'\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[32m'categorical_hps'\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[32m'ordinal_hps'\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[32m'int_hps'\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[32m'tsp'\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[32m'knn_entropy'\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[32m'y_skewness'\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[32m'y_kurtosis'\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[32m'y_mean'\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[32m'y_std'\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[32m'y_variability'\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[32m'tsp_best'\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[32m'knn_entropy_best'\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[32m'y_skewness_best'\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[32m'y_kurtosis_best'\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[32m'y_mean_best'\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[32m'y_std_best'\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[32m'y_variability_best'\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[32m'budget_percentage'\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[32m'inc_improvement_scaled'\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[32m'has_categorical_hps'\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[32m'knn_difference'\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[32m'ubr_difference'\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[32m'acq_value_EI'\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[32m'acq_value_PI'\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[32m'previous_param'\u001b[0m\n", + "\u001b[2;32m│ \u001b[0m\u001b[1m]\u001b[0m\n", + "\u001b[1m}\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "pprint(bench.config[\"benchmark_info\"])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The reward in this task has the following reward range:" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
[-inf, inf]\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[1m[\u001b[0m-inf, inf\u001b[1m]\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "pprint(bench.config[\"reward_range\"])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The config also contains some standard keys like the seed, instance set, list of observation keys, action space class, inner seeds to be used, etc. By default, the agent controls the $\\beta$ parameter in the Upper Confidence Bound (UCB) acquisition function of the BO loop. For further configuration details, please refer to the dacboenv package." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## DACBO Instances\n", + "Now let's take a look at how a DACBO instance looks. To do so, we first read the default instance set and look at its only element:" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
'bbob_2_default.csv'\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[32m'bbob_2_default.csv'\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
['bbob/2/1/0', 'bbob/2/20/0']\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[1m[\u001b[0m\u001b[32m'bbob/2/1/0'\u001b[0m, \u001b[32m'bbob/2/20/0'\u001b[0m\u001b[1m]\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "pprint(bench.config[\"instance_set_path\"])\n", + "bench.read_instance_set()\n", + "pprint(bench.config.instance_set[0])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As in the instance selection is handled internally by the DACBO environment, we only provide a list of target functions to be considered as offered by CARP-S as a single instance. A DACBO instance consists of an inner seed and a target function. By default, 3 inner seeds are chosen at random an the cross product of these seeds and all selected target functions is evaluated in a round robin manner." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Running DACBO\n", + "Lastly, let's look at the DACBO benchmark in action. Because some observations rely on reference incumbent values, we first run SMAC to create a baseline. Additionally, the first BO run's initial design is evaluated upon resetting." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
[12:08:01] INFO     Loading performance data from                                      reference_performance.py:243\n",
+       "                    reference_performance/reference_performance.parquet                                            \n",
+       "
\n" + ], + "text/plain": [ + "\u001b[2;36m[12:08:01]\u001b[0m\u001b[2;36m \u001b[0m\u001b[34mINFO \u001b[0m Loading performance data from \u001b]8;id=478165;file:///scratch/hpc-prf-intexml/tklenke/repos/dacboenv/dacboenv/utils/reference_performance.py\u001b\\\u001b[2mreference_performance.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=780670;file:///scratch/hpc-prf-intexml/tklenke/repos/dacboenv/dacboenv/utils/reference_performance.py#243\u001b\\\u001b[2m243\u001b[0m\u001b]8;;\u001b\\\n", + "\u001b[2;36m \u001b[0m reference_performance/reference_performance.parquet \u001b[2m \u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[WARNING][target_function_runner.py:74] The argument budget is not set by SMAC: Consider removing it from the target function.\n", + "[WARNING][target_function_runner.py:74] The argument instance is not set by SMAC: Consider removing it from the target function.\n", + "[WARNING][target_function_runner.py:74] The argument cutoff is not set by SMAC: Consider removing it from the target function.\n", + "[INFO][abstract_initial_design.py:139] Using 16 initial design configurations and 0 additional configurations.\n", + "[INFO][abstract_intensifier.py:307] Using only one seed for deterministic scenario.\n", + "[INFO][abstract_intensifier.py:517] Added config 8b5eb2 as new incumbent because there are no incumbents yet.\n", + "[INFO][abstract_intensifier.py:596] Added config e81dca and rejected config 8b5eb2 as incumbent because it is not better than the incumbents on 1 instances: \n", + "[INFO][abstract_intensifier.py:596] Added config de4ce3 and rejected config e81dca as incumbent because it is not better than the incumbents on 1 instances: \n", + "[INFO][abstract_intensifier.py:596] Added config 0f2ba1 and rejected config de4ce3 as incumbent because it is not better than the incumbents on 1 instances: \n", + "[INFO][abstract_intensifier.py:596] Added config 7b208a and rejected config 0f2ba1 as incumbent because it is not better than the incumbents on 1 instances: \n", + "[WARNING][target_function_runner.py:74] The argument budget is not set by SMAC: Consider removing it from the target function.\n", + "[WARNING][target_function_runner.py:74] The argument instance is not set by SMAC: Consider removing it from the target function.\n", + "[WARNING][target_function_runner.py:74] The argument cutoff is not set by SMAC: Consider removing it from the target function.\n", + "[INFO][abstract_initial_design.py:139] Using 16 initial design configurations and 0 additional configurations.\n", + "[INFO][abstract_intensifier.py:307] Using only one seed for deterministic scenario.\n", + "[INFO][abstract_intensifier.py:517] Added config 8b5eb2 as new incumbent because there are no incumbents yet.\n", + "[INFO][abstract_intensifier.py:596] Added config 46821d and rejected config 8b5eb2 as incumbent because it is not better than the incumbents on 1 instances: \n" + ] + }, + { + "data": { + "text/html": [ + "
(\n",
+       "{\n",
+       "│   │   'incumbent_changes': array([0.], dtype=float32),\n",
+       "│   │   'trials_passed': array([0.], dtype=float32),\n",
+       "│   │   'trials_left': array([-1.], dtype=float32),\n",
+       "│   │   'ubr': array([-1.], dtype=float32),\n",
+       "│   │   'searchspace_dim': array([0.], dtype=float32),\n",
+       "│   │   'continuous_hps': array([0.], dtype=float32),\n",
+       "│   │   'categorical_hps': array([0.], dtype=float32),\n",
+       "│   │   'ordinal_hps': array([0.], dtype=float32),\n",
+       "│   │   'int_hps': array([0.], dtype=float32),\n",
+       "│   │   'tsp': array([-1.], dtype=float32),\n",
+       "│   │   'knn_entropy': array([0.], dtype=float32),\n",
+       "│   │   'y_skewness': array([0.], dtype=float32),\n",
+       "│   │   'y_kurtosis': array([0.], dtype=float32),\n",
+       "│   │   'y_mean': array([0.], dtype=float32),\n",
+       "│   │   'y_std': array([-1.], dtype=float32),\n",
+       "│   │   'y_variability': array([-1.], dtype=float32),\n",
+       "│   │   'tsp_best': array([-1.], dtype=float32),\n",
+       "│   │   'knn_entropy_best': array([0.], dtype=float32),\n",
+       "│   │   'y_skewness_best': array([0.], dtype=float32),\n",
+       "│   │   'y_kurtosis_best': array([0.], dtype=float32),\n",
+       "│   │   'y_mean_best': array([0.], dtype=float32),\n",
+       "│   │   'y_std_best': array([-1.], dtype=float32),\n",
+       "│   │   'y_variability_best': array([-1.], dtype=float32),\n",
+       "│   │   'budget_percentage': array([0.], dtype=float32),\n",
+       "│   │   'inc_improvement_scaled': array([0.], dtype=float32),\n",
+       "│   │   'has_categorical_hps': array([0.], dtype=float32),\n",
+       "│   │   'knn_difference': array([0.], dtype=float32),\n",
+       "│   │   'ubr_difference': array([0.], dtype=float32),\n",
+       "│   │   'acq_value_EI': array([0.], dtype=float32),\n",
+       "│   │   'acq_value_PI': array([0.], dtype=float32),\n",
+       "│   │   'previous_param': array([10.], dtype=float32),\n",
+       "│   │   'gp_hp_k1__k1__constant_value0_observation': array([0.], dtype=float32),\n",
+       "│   │   'gp_hp_k1__k2__length_scale0_observation': array([0.], dtype=float32),\n",
+       "│   │   'gp_hp_k1__k2__length_scale1_observation': array([0.], dtype=float32),\n",
+       "│   │   'gp_hp_k2__noise_level0_observation': array([0.], dtype=float32)\n",
+       "},\n",
+       "{}\n",
+       ")\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[1m(\u001b[0m\n", + "\u001b[2;32m│ \u001b[0m\u001b[1m{\u001b[0m\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[32m'incumbent_changes'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[32m'trials_passed'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[32m'trials_left'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m-1\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[32m'ubr'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m-1\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[32m'searchspace_dim'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[32m'continuous_hps'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[32m'categorical_hps'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[32m'ordinal_hps'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[32m'int_hps'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[32m'tsp'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m-1\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[32m'knn_entropy'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[32m'y_skewness'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[32m'y_kurtosis'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[32m'y_mean'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[32m'y_std'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m-1\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[32m'y_variability'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m-1\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[32m'tsp_best'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m-1\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[32m'knn_entropy_best'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[32m'y_skewness_best'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[32m'y_kurtosis_best'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[32m'y_mean_best'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[32m'y_std_best'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m-1\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[32m'y_variability_best'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m-1\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[32m'budget_percentage'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[32m'inc_improvement_scaled'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[32m'has_categorical_hps'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[32m'knn_difference'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[32m'ubr_difference'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[32m'acq_value_EI'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[32m'acq_value_PI'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[32m'previous_param'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m10\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[32m'gp_hp_k1__k1__constant_value0_observation'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[32m'gp_hp_k1__k2__length_scale0_observation'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[32m'gp_hp_k1__k2__length_scale1_observation'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[32m'gp_hp_k2__noise_level0_observation'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m\n", + "\u001b[2;32m│ \u001b[0m\u001b[1m}\u001b[0m,\n", + "\u001b[2;32m│ \u001b[0m\u001b[1m{\u001b[0m\u001b[1m}\u001b[0m\n", + "\u001b[1m)\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "env = bench.get_environment()\n", + "pprint(env.reset())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If we take a step, we see the updated state:" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[INFO][abstract_intensifier.py:596] Added config 6bb167 and rejected config 46821d as incumbent because it is not better than the incumbents on 1 instances: \n", + "[INFO][dacboenv.py:359] Step: 1, instance: (39590, 'bbob/2/20/0') Reward: -187.08337915468118, terminated: False, truncated: False, info: {}\n" + ] + }, + { + "data": { + "text/html": [ + "
{\n",
+       "'incumbent_changes': array([3.], dtype=float32),\n",
+       "'trials_passed': array([17.], dtype=float32),\n",
+       "'trials_left': array([60.], dtype=float32),\n",
+       "'ubr': array([47989.965], dtype=float32),\n",
+       "'searchspace_dim': array([2.], dtype=float32),\n",
+       "'continuous_hps': array([2.], dtype=float32),\n",
+       "'categorical_hps': array([0.], dtype=float32),\n",
+       "'ordinal_hps': array([0.], dtype=float32),\n",
+       "'int_hps': array([0.], dtype=float32),\n",
+       "'tsp': array([4.407388], dtype=float32),\n",
+       "'knn_entropy': array([0.54839134], dtype=float32),\n",
+       "'y_skewness': array([2.1103723], dtype=float32),\n",
+       "'y_kurtosis': array([4.0757565], dtype=float32),\n",
+       "'y_mean': array([35196.844], dtype=float32),\n",
+       "'y_std': array([50527.785], dtype=float32),\n",
+       "'y_variability': array([1.2443994], dtype=float32),\n",
+       "'tsp_best': array([0.], dtype=float32),\n",
+       "'knn_entropy_best': array([-0.27582544], dtype=float32),\n",
+       "'y_skewness_best': array([0.], dtype=float32),\n",
+       "'y_kurtosis_best': array([0.], dtype=float32),\n",
+       "'y_mean_best': array([187.08337], dtype=float32),\n",
+       "'y_std_best': array([0.], dtype=float32),\n",
+       "'y_variability_best': array([2.020312], dtype=float32),\n",
+       "'budget_percentage': array([0.22077923], dtype=float32),\n",
+       "'inc_improvement_scaled': array([0.01305182], dtype=float32),\n",
+       "'has_categorical_hps': array([0.], dtype=float32),\n",
+       "'knn_difference': array([0.], dtype=float32),\n",
+       "'ubr_difference': array([0.], dtype=float32),\n",
+       "'acq_value_EI': array([0.20158173], dtype=float32),\n",
+       "'acq_value_PI': array([0.5000079], dtype=float32),\n",
+       "'previous_param': array([-0.37298787], dtype=float32),\n",
+       "'gp_hp_k1__k1__constant_value0_observation': array([0.46420226], dtype=float32),\n",
+       "'gp_hp_k1__k2__length_scale0_observation': array([0.0858638], dtype=float32),\n",
+       "'gp_hp_k1__k2__length_scale1_observation': array([-0.5649307], dtype=float32),\n",
+       "'gp_hp_k2__noise_level0_observation': array([-25.], dtype=float32)\n",
+       "}\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[1m{\u001b[0m\n", + "\u001b[2;32m│ \u001b[0m\u001b[32m'incumbent_changes'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m3\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", + "\u001b[2;32m│ \u001b[0m\u001b[32m'trials_passed'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m17\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", + "\u001b[2;32m│ \u001b[0m\u001b[32m'trials_left'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m60\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", + "\u001b[2;32m│ \u001b[0m\u001b[32m'ubr'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m47989.965\u001b[0m\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", + "\u001b[2;32m│ \u001b[0m\u001b[32m'searchspace_dim'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m2\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", + "\u001b[2;32m│ \u001b[0m\u001b[32m'continuous_hps'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m2\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", + "\u001b[2;32m│ \u001b[0m\u001b[32m'categorical_hps'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", + "\u001b[2;32m│ \u001b[0m\u001b[32m'ordinal_hps'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", + "\u001b[2;32m│ \u001b[0m\u001b[32m'int_hps'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", + "\u001b[2;32m│ \u001b[0m\u001b[32m'tsp'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m4.407388\u001b[0m\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", + "\u001b[2;32m│ \u001b[0m\u001b[32m'knn_entropy'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0.54839134\u001b[0m\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", + "\u001b[2;32m│ \u001b[0m\u001b[32m'y_skewness'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m2.1103723\u001b[0m\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", + "\u001b[2;32m│ \u001b[0m\u001b[32m'y_kurtosis'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m4.0757565\u001b[0m\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", + "\u001b[2;32m│ \u001b[0m\u001b[32m'y_mean'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m35196.844\u001b[0m\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", + "\u001b[2;32m│ \u001b[0m\u001b[32m'y_std'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m50527.785\u001b[0m\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", + "\u001b[2;32m│ \u001b[0m\u001b[32m'y_variability'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m1.2443994\u001b[0m\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", + "\u001b[2;32m│ \u001b[0m\u001b[32m'tsp_best'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", + "\u001b[2;32m│ \u001b[0m\u001b[32m'knn_entropy_best'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m-0.27582544\u001b[0m\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", + "\u001b[2;32m│ \u001b[0m\u001b[32m'y_skewness_best'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", + "\u001b[2;32m│ \u001b[0m\u001b[32m'y_kurtosis_best'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", + "\u001b[2;32m│ \u001b[0m\u001b[32m'y_mean_best'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m187.08337\u001b[0m\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", + "\u001b[2;32m│ \u001b[0m\u001b[32m'y_std_best'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", + "\u001b[2;32m│ \u001b[0m\u001b[32m'y_variability_best'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m2.020312\u001b[0m\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", + "\u001b[2;32m│ \u001b[0m\u001b[32m'budget_percentage'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0.22077923\u001b[0m\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", + "\u001b[2;32m│ \u001b[0m\u001b[32m'inc_improvement_scaled'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0.01305182\u001b[0m\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", + "\u001b[2;32m│ \u001b[0m\u001b[32m'has_categorical_hps'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", + "\u001b[2;32m│ \u001b[0m\u001b[32m'knn_difference'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", + "\u001b[2;32m│ \u001b[0m\u001b[32m'ubr_difference'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", + "\u001b[2;32m│ \u001b[0m\u001b[32m'acq_value_EI'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0.20158173\u001b[0m\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", + "\u001b[2;32m│ \u001b[0m\u001b[32m'acq_value_PI'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0.5000079\u001b[0m\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", + "\u001b[2;32m│ \u001b[0m\u001b[32m'previous_param'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m-0.37298787\u001b[0m\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", + "\u001b[2;32m│ \u001b[0m\u001b[32m'gp_hp_k1__k1__constant_value0_observation'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0.46420226\u001b[0m\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", + "\u001b[2;32m│ \u001b[0m\u001b[32m'gp_hp_k1__k2__length_scale0_observation'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0.0858638\u001b[0m\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", + "\u001b[2;32m│ \u001b[0m\u001b[32m'gp_hp_k1__k2__length_scale1_observation'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m-0.5649307\u001b[0m\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", + "\u001b[2;32m│ \u001b[0m\u001b[32m'gp_hp_k2__noise_level0_observation'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m-25\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m\n", + "\u001b[1m}\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "action = env.action_space.sample()\n", + "state, reward, terminated, truncated, info = env.step(action)\n", + "pprint(state)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Furthermore, we also get a reward and a truncation signal. Truncation will be set to true after a single BO run has finished and the next instance will be selected internally." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
'Reward -187.08337915468118'\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[32m'Reward -187.08337915468118'\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
'Truncated False'\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[32m'Truncated False'\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "pprint(f\"Reward {reward}\")\n", + "pprint(f\"Truncated {truncated}\")" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "DACBench", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.14" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From aea7c46d3e96e9222a43b01868b1802d95641aaa Mon Sep 17 00:00:00 2001 From: Thibaut Klenke Date: Fri, 2 Jan 2026 14:36:57 +0100 Subject: [PATCH 06/16] Update dacbo defaults and instance format --- dacbench/benchmarks/dacbo_benchmark.py | 19 +++++++++++++------ .../instance_sets/dacbo/bbob_2_default.csv | 3 --- .../instance_sets/dacbo/bbob_2_default.yaml | 2 ++ 3 files changed, 15 insertions(+), 9 deletions(-) delete mode 100644 dacbench/instance_sets/dacbo/bbob_2_default.csv create mode 100644 dacbench/instance_sets/dacbo/bbob_2_default.yaml diff --git a/dacbench/benchmarks/dacbo_benchmark.py b/dacbench/benchmarks/dacbo_benchmark.py index 14bc48ad6..879f8649b 100644 --- a/dacbench/benchmarks/dacbo_benchmark.py +++ b/dacbench/benchmarks/dacbo_benchmark.py @@ -6,7 +6,7 @@ import dacboenv import numpy as np -import pandas as pd +import yaml from dacboenv.env.action import AcqParameterActionSpace from dacbench.abstract_benchmark import AbstractBenchmark, objdict @@ -25,12 +25,16 @@ { "reward_range": [-np.inf, np.inf], "seed": 0, - "instance_set_path": "bbob_2_default.csv", - "observation_keys": None, + "instance_set_path": "bbob_2_default.yaml", + "observation_keys": [ + "ubr_difference", + "acq_value_EI", + "acq_value_PI", + "previous_param", + ], "action_space_class": AcqParameterActionSpace, "action_space_kwargs": None, "reward_keys": None, - "inner_seeds": None, "benchmark_info": INFO, } ) @@ -66,9 +70,12 @@ def read_instance_set(self): / self.config.instance_set_path ) - instance_df = pd.read_csv(path) + with open(path) as f: + instance_data = yaml.safe_load(f) + print(instance_data) self.config["instance_set"] = { - 0: instance_df["task_id"].tolist() + 0: instance_data["task_ids"] } # Instance selection is handled by the internal env + self.config["inner_seeds"] = instance_data.get("inner_seeds", None) assert len(self.config["instance_set"][0]) > 0, "ERROR: empty instance set" diff --git a/dacbench/instance_sets/dacbo/bbob_2_default.csv b/dacbench/instance_sets/dacbo/bbob_2_default.csv deleted file mode 100644 index f4ed7db31..000000000 --- a/dacbench/instance_sets/dacbo/bbob_2_default.csv +++ /dev/null @@ -1,3 +0,0 @@ -task_id, -bbob/2/1/0 -bbob/2/20/0 \ No newline at end of file diff --git a/dacbench/instance_sets/dacbo/bbob_2_default.yaml b/dacbench/instance_sets/dacbo/bbob_2_default.yaml new file mode 100644 index 000000000..464e3a030 --- /dev/null +++ b/dacbench/instance_sets/dacbo/bbob_2_default.yaml @@ -0,0 +1,2 @@ +task_ids: ["bbob/2/1/0", "bbob/2/20/0"] +inner_seeds: [1, 2, 3] \ No newline at end of file From b618fce1f6475e1742f34e8e4a9b5e7bd0e077c7 Mon Sep 17 00:00:00 2001 From: Thibaut Klenke Date: Sun, 4 Jan 2026 15:47:08 +0100 Subject: [PATCH 07/16] DACBO: Update defaults --- dacbench/benchmarks/dacbo_benchmark.py | 32 +++++++++++++++++++++++++- dacbench/envs/dacbo.py | 4 +++- 2 files changed, 34 insertions(+), 2 deletions(-) diff --git a/dacbench/benchmarks/dacbo_benchmark.py b/dacbench/benchmarks/dacbo_benchmark.py index 879f8649b..e50c17b7e 100644 --- a/dacbench/benchmarks/dacbo_benchmark.py +++ b/dacbench/benchmarks/dacbo_benchmark.py @@ -2,16 +2,45 @@ from __future__ import annotations +from importlib.resources import files from pathlib import Path import dacboenv import numpy as np import yaml from dacboenv.env.action import AcqParameterActionSpace +from omegaconf import OmegaConf from dacbench.abstract_benchmark import AbstractBenchmark, objdict from dacbench.envs.dacbo import DACBOEnv + +def load_default_optimizer(): + """Handles dacboenv configs to configure WEI as default.""" + dacboenv_path = files("dacboenv") + base = OmegaConf.load(dacboenv_path / "configs/env/opt/base.yaml") + base.dacboenv.optimizer_cfg.smac_cfg.smac_kwargs = None + override = OmegaConf.load( + dacboenv_path / "configs/env/action/wei_alpha_continuous.yaml" + ) + cfg = OmegaConf.merge(base, override) + cfg = OmegaConf.create({"optimizer": cfg.dacboenv.optimizer_cfg}) + + def replace_refs(node): + if isinstance(node, str): + return node.replace("dacboenv.optimizer_cfg", "optimizer") + if isinstance(node, dict): + return {k: replace_refs(v) for k, v in node.items()} + if isinstance(node, list): + return [replace_refs(v) for v in node] + return node + + cfg = OmegaConf.create(replace_refs(OmegaConf.to_container(cfg, resolve=False))) + cfg.outdir = "runs/SMAC-DACBO/${benchmark_id}/${task_id}/${seed}" + + return cfg + + INFO = { "identifier": "DACBO", "name": "DACBO", @@ -26,6 +55,7 @@ "reward_range": [-np.inf, np.inf], "seed": 0, "instance_set_path": "bbob_2_default.yaml", + "optimizer_cfg": load_default_optimizer(), "observation_keys": [ "ubr_difference", "acq_value_EI", @@ -33,7 +63,7 @@ "previous_param", ], "action_space_class": AcqParameterActionSpace, - "action_space_kwargs": None, + "action_space_kwargs": {"bounds": [0, 1], "adjustment_type": "continuous"}, "reward_keys": None, "benchmark_info": INFO, } diff --git a/dacbench/envs/dacbo.py b/dacbench/envs/dacbo.py index d93fe76a5..5277190a6 100644 --- a/dacbench/envs/dacbo.py +++ b/dacbench/envs/dacbo.py @@ -15,7 +15,9 @@ def __init__(self, config): """Init DACBO env.""" self._env = DEnv(task_ids=config["instance_set"][0], **config) self.reset() - config["cutoff"] = np.inf # Not used. DACBO handles BO runs internally + config[ + "cutoff" + ] = np.inf # Not used. DACBO handles BO runs (i.e. episodes) internally config["observation_space"] = self._env.observation_space config["action_space"] = self._env.action_space super().__init__(config) From 050759a0c90d72117fc604a2c90f9ec0be852a62 Mon Sep 17 00:00:00 2001 From: Thibaut Klenke Date: Sun, 4 Jan 2026 15:47:37 +0100 Subject: [PATCH 08/16] DACBO: Requirements --- other_requirements/dacbo.json | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 other_requirements/dacbo.json diff --git a/other_requirements/dacbo.json b/other_requirements/dacbo.json new file mode 100644 index 000000000..b09397c4b --- /dev/null +++ b/other_requirements/dacbo.json @@ -0,0 +1,5 @@ +{ + "dacbo": [ + "dacboenv" + ] +} \ No newline at end of file From 0177ca47e19b4fa6b65966bb811552d2def5d23a Mon Sep 17 00:00:00 2001 From: Thibaut Klenke Date: Sun, 4 Jan 2026 15:49:31 +0100 Subject: [PATCH 09/16] DACBO: Update example notebook --- examples/benchmark_notebooks/dacbo.ipynb | 186 +++++------------------ 1 file changed, 35 insertions(+), 151 deletions(-) diff --git a/examples/benchmark_notebooks/dacbo.ipynb b/examples/benchmark_notebooks/dacbo.ipynb index 2a089c681..fb0954740 100644 --- a/examples/benchmark_notebooks/dacbo.ipynb +++ b/examples/benchmark_notebooks/dacbo.ipynb @@ -46,11 +46,11 @@ "'reward_range',\n", "'seed',\n", "'instance_set_path',\n", + "'optimizer_cfg',\n", "'observation_keys',\n", "'action_space_class',\n", "'action_space_kwargs',\n", "'reward_keys',\n", - "'inner_seeds',\n", "'benchmark_info'\n", "]\n", "\n" @@ -60,11 +60,11 @@ "\u001b[2;32m│ \u001b[0m\u001b[32m'reward_range'\u001b[0m,\n", "\u001b[2;32m│ \u001b[0m\u001b[32m'seed'\u001b[0m,\n", "\u001b[2;32m│ \u001b[0m\u001b[32m'instance_set_path'\u001b[0m,\n", + "\u001b[2;32m│ \u001b[0m\u001b[32m'optimizer_cfg'\u001b[0m,\n", "\u001b[2;32m│ \u001b[0m\u001b[32m'observation_keys'\u001b[0m,\n", "\u001b[2;32m│ \u001b[0m\u001b[32m'action_space_class'\u001b[0m,\n", "\u001b[2;32m│ \u001b[0m\u001b[32m'action_space_kwargs'\u001b[0m,\n", "\u001b[2;32m│ \u001b[0m\u001b[32m'reward_keys'\u001b[0m,\n", - "\u001b[2;32m│ \u001b[0m\u001b[32m'inner_seeds'\u001b[0m,\n", "\u001b[2;32m│ \u001b[0m\u001b[32m'benchmark_info'\u001b[0m\n", "\u001b[1m]\u001b[0m\n" ] @@ -215,7 +215,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "The config also contains some standard keys like the seed, instance set, list of observation keys, action space class, inner seeds to be used, etc. By default, the agent controls the $\\beta$ parameter in the Upper Confidence Bound (UCB) acquisition function of the BO loop. For further configuration details, please refer to the dacboenv package." + "The config also contains some standard keys like the seed, instance set, list of observation keys, action space class, HP search ranges, etc. By default, the agent controls the parameter $\\alpha\\in [0,1]$ in the Weighted Expected Improvement (WEI) acquisition function of the BO loop. For further configuration details, please refer to the dacboenv package." ] }, { @@ -234,16 +234,23 @@ { "data": { "text/html": [ - "
'bbob_2_default.csv'\n",
+       "
'bbob_2_default.yaml'\n",
        "
\n" ], "text/plain": [ - "\u001b[32m'bbob_2_default.csv'\u001b[0m\n" + "\u001b[32m'bbob_2_default.yaml'\u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'task_ids': ['bbob/2/1/0', 'bbob/2/20/0'], 'inner_seeds': [1, 2, 3]}\n" + ] + }, { "data": { "text/html": [ @@ -268,7 +275,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "As in the instance selection is handled internally by the DACBO environment, we only provide a list of target functions to be considered as offered by CARP-S as a single instance. A DACBO instance consists of an inner seed and a target function. By default, 3 inner seeds are chosen at random an the cross product of these seeds and all selected target functions is evaluated in a round robin manner." + "As in the instance selection is handled internally by the DACBO environment, we only provide a list of target functions to be considered as offered by CARP-S as well as a list of inner seeds. A DACBO instance consists of a single inner seed and a target function. By default, the cross product of the selected inner seeds seeds and target functions is evaluated in a round robin manner." ] }, { @@ -287,12 +294,12 @@ { "data": { "text/html": [ - "
[12:08:01] INFO     Loading performance data from                                      reference_performance.py:243\n",
+       "
[15:45:26] INFO     Loading performance data from                                      reference_performance.py:243\n",
        "                    reference_performance/reference_performance.parquet                                            \n",
        "
\n" ], "text/plain": [ - "\u001b[2;36m[12:08:01]\u001b[0m\u001b[2;36m \u001b[0m\u001b[34mINFO \u001b[0m Loading performance data from \u001b]8;id=478165;file:///scratch/hpc-prf-intexml/tklenke/repos/dacboenv/dacboenv/utils/reference_performance.py\u001b\\\u001b[2mreference_performance.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=780670;file:///scratch/hpc-prf-intexml/tklenke/repos/dacboenv/dacboenv/utils/reference_performance.py#243\u001b\\\u001b[2m243\u001b[0m\u001b]8;;\u001b\\\n", + "\u001b[2;36m[15:45:26]\u001b[0m\u001b[2;36m \u001b[0m\u001b[34mINFO \u001b[0m Loading performance data from \u001b]8;id=305269;file:///scratch/hpc-prf-intexml/tklenke/repos/dacboenv/dacboenv/utils/reference_performance.py\u001b\\\u001b[2mreference_performance.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=481734;file:///scratch/hpc-prf-intexml/tklenke/repos/dacboenv/dacboenv/utils/reference_performance.py#243\u001b\\\u001b[2m243\u001b[0m\u001b]8;;\u001b\\\n", "\u001b[2;36m \u001b[0m reference_performance/reference_performance.parquet \u001b[2m \u001b[0m\n" ] }, @@ -308,18 +315,20 @@ "[WARNING][target_function_runner.py:74] The argument cutoff is not set by SMAC: Consider removing it from the target function.\n", "[INFO][abstract_initial_design.py:139] Using 16 initial design configurations and 0 additional configurations.\n", "[INFO][abstract_intensifier.py:307] Using only one seed for deterministic scenario.\n", - "[INFO][abstract_intensifier.py:517] Added config 8b5eb2 as new incumbent because there are no incumbents yet.\n", - "[INFO][abstract_intensifier.py:596] Added config e81dca and rejected config 8b5eb2 as incumbent because it is not better than the incumbents on 1 instances: \n", - "[INFO][abstract_intensifier.py:596] Added config de4ce3 and rejected config e81dca as incumbent because it is not better than the incumbents on 1 instances: \n", - "[INFO][abstract_intensifier.py:596] Added config 0f2ba1 and rejected config de4ce3 as incumbent because it is not better than the incumbents on 1 instances: \n", - "[INFO][abstract_intensifier.py:596] Added config 7b208a and rejected config 0f2ba1 as incumbent because it is not better than the incumbents on 1 instances: \n", + "[INFO][abstract_intensifier.py:517] Added config e9bc68 as new incumbent because there are no incumbents yet.\n", + "[INFO][abstract_intensifier.py:596] Added config 268bf5 and rejected config e9bc68 as incumbent because it is not better than the incumbents on 1 instances: \n", + "[INFO][abstract_intensifier.py:596] Added config a4ff80 and rejected config 268bf5 as incumbent because it is not better than the incumbents on 1 instances: \n", + "[INFO][abstract_intensifier.py:596] Added config 208457 and rejected config a4ff80 as incumbent because it is not better than the incumbents on 1 instances: \n", + "[INFO][abstract_intensifier.py:596] Added config c81044 and rejected config 208457 as incumbent because it is not better than the incumbents on 1 instances: \n", + "[INFO][abstract_intensifier.py:596] Added config 02dd32 and rejected config c81044 as incumbent because it is not better than the incumbents on 1 instances: \n", "[WARNING][target_function_runner.py:74] The argument budget is not set by SMAC: Consider removing it from the target function.\n", "[WARNING][target_function_runner.py:74] The argument instance is not set by SMAC: Consider removing it from the target function.\n", "[WARNING][target_function_runner.py:74] The argument cutoff is not set by SMAC: Consider removing it from the target function.\n", "[INFO][abstract_initial_design.py:139] Using 16 initial design configurations and 0 additional configurations.\n", "[INFO][abstract_intensifier.py:307] Using only one seed for deterministic scenario.\n", - "[INFO][abstract_intensifier.py:517] Added config 8b5eb2 as new incumbent because there are no incumbents yet.\n", - "[INFO][abstract_intensifier.py:596] Added config 46821d and rejected config 8b5eb2 as incumbent because it is not better than the incumbents on 1 instances: \n" + "[INFO][abstract_intensifier.py:517] Added config e9bc68 as new incumbent because there are no incumbents yet.\n", + "[INFO][abstract_intensifier.py:596] Added config a4ff80 and rejected config e9bc68 as incumbent because it is not better than the incumbents on 1 instances: \n", + "[INFO][abstract_intensifier.py:596] Added config 61205b and rejected config a4ff80 as incumbent because it is not better than the incumbents on 1 instances: \n" ] }, { @@ -327,41 +336,10 @@ "text/html": [ "
(\n",
        "{\n",
-       "│   │   'incumbent_changes': array([0.], dtype=float32),\n",
-       "│   │   'trials_passed': array([0.], dtype=float32),\n",
-       "│   │   'trials_left': array([-1.], dtype=float32),\n",
-       "│   │   'ubr': array([-1.], dtype=float32),\n",
-       "│   │   'searchspace_dim': array([0.], dtype=float32),\n",
-       "│   │   'continuous_hps': array([0.], dtype=float32),\n",
-       "│   │   'categorical_hps': array([0.], dtype=float32),\n",
-       "│   │   'ordinal_hps': array([0.], dtype=float32),\n",
-       "│   │   'int_hps': array([0.], dtype=float32),\n",
-       "│   │   'tsp': array([-1.], dtype=float32),\n",
-       "│   │   'knn_entropy': array([0.], dtype=float32),\n",
-       "│   │   'y_skewness': array([0.], dtype=float32),\n",
-       "│   │   'y_kurtosis': array([0.], dtype=float32),\n",
-       "│   │   'y_mean': array([0.], dtype=float32),\n",
-       "│   │   'y_std': array([-1.], dtype=float32),\n",
-       "│   │   'y_variability': array([-1.], dtype=float32),\n",
-       "│   │   'tsp_best': array([-1.], dtype=float32),\n",
-       "│   │   'knn_entropy_best': array([0.], dtype=float32),\n",
-       "│   │   'y_skewness_best': array([0.], dtype=float32),\n",
-       "│   │   'y_kurtosis_best': array([0.], dtype=float32),\n",
-       "│   │   'y_mean_best': array([0.], dtype=float32),\n",
-       "│   │   'y_std_best': array([-1.], dtype=float32),\n",
-       "│   │   'y_variability_best': array([-1.], dtype=float32),\n",
-       "│   │   'budget_percentage': array([0.], dtype=float32),\n",
-       "│   │   'inc_improvement_scaled': array([0.], dtype=float32),\n",
-       "│   │   'has_categorical_hps': array([0.], dtype=float32),\n",
-       "│   │   'knn_difference': array([0.], dtype=float32),\n",
        "│   │   'ubr_difference': array([0.], dtype=float32),\n",
        "│   │   'acq_value_EI': array([0.], dtype=float32),\n",
        "│   │   'acq_value_PI': array([0.], dtype=float32),\n",
-       "│   │   'previous_param': array([10.], dtype=float32),\n",
-       "│   │   'gp_hp_k1__k1__constant_value0_observation': array([0.], dtype=float32),\n",
-       "│   │   'gp_hp_k1__k2__length_scale0_observation': array([0.], dtype=float32),\n",
-       "│   │   'gp_hp_k1__k2__length_scale1_observation': array([0.], dtype=float32),\n",
-       "│   │   'gp_hp_k2__noise_level0_observation': array([0.], dtype=float32)\n",
+       "│   │   'previous_param': array([0.5], dtype=float32)\n",
        "},\n",
        "{}\n",
        ")\n",
@@ -370,41 +348,10 @@
       "text/plain": [
        "\u001b[1m(\u001b[0m\n",
        "\u001b[2;32m│   \u001b[0m\u001b[1m{\u001b[0m\n",
-       "\u001b[2;32m│   │   \u001b[0m\u001b[32m'incumbent_changes'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n",
-       "\u001b[2;32m│   │   \u001b[0m\u001b[32m'trials_passed'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n",
-       "\u001b[2;32m│   │   \u001b[0m\u001b[32m'trials_left'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m-1\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n",
-       "\u001b[2;32m│   │   \u001b[0m\u001b[32m'ubr'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m-1\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n",
-       "\u001b[2;32m│   │   \u001b[0m\u001b[32m'searchspace_dim'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n",
-       "\u001b[2;32m│   │   \u001b[0m\u001b[32m'continuous_hps'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n",
-       "\u001b[2;32m│   │   \u001b[0m\u001b[32m'categorical_hps'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n",
-       "\u001b[2;32m│   │   \u001b[0m\u001b[32m'ordinal_hps'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n",
-       "\u001b[2;32m│   │   \u001b[0m\u001b[32m'int_hps'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n",
-       "\u001b[2;32m│   │   \u001b[0m\u001b[32m'tsp'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m-1\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n",
-       "\u001b[2;32m│   │   \u001b[0m\u001b[32m'knn_entropy'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n",
-       "\u001b[2;32m│   │   \u001b[0m\u001b[32m'y_skewness'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n",
-       "\u001b[2;32m│   │   \u001b[0m\u001b[32m'y_kurtosis'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n",
-       "\u001b[2;32m│   │   \u001b[0m\u001b[32m'y_mean'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n",
-       "\u001b[2;32m│   │   \u001b[0m\u001b[32m'y_std'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m-1\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n",
-       "\u001b[2;32m│   │   \u001b[0m\u001b[32m'y_variability'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m-1\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n",
-       "\u001b[2;32m│   │   \u001b[0m\u001b[32m'tsp_best'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m-1\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n",
-       "\u001b[2;32m│   │   \u001b[0m\u001b[32m'knn_entropy_best'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n",
-       "\u001b[2;32m│   │   \u001b[0m\u001b[32m'y_skewness_best'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n",
-       "\u001b[2;32m│   │   \u001b[0m\u001b[32m'y_kurtosis_best'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n",
-       "\u001b[2;32m│   │   \u001b[0m\u001b[32m'y_mean_best'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n",
-       "\u001b[2;32m│   │   \u001b[0m\u001b[32m'y_std_best'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m-1\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n",
-       "\u001b[2;32m│   │   \u001b[0m\u001b[32m'y_variability_best'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m-1\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n",
-       "\u001b[2;32m│   │   \u001b[0m\u001b[32m'budget_percentage'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n",
-       "\u001b[2;32m│   │   \u001b[0m\u001b[32m'inc_improvement_scaled'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n",
-       "\u001b[2;32m│   │   \u001b[0m\u001b[32m'has_categorical_hps'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n",
-       "\u001b[2;32m│   │   \u001b[0m\u001b[32m'knn_difference'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n",
        "\u001b[2;32m│   │   \u001b[0m\u001b[32m'ubr_difference'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n",
        "\u001b[2;32m│   │   \u001b[0m\u001b[32m'acq_value_EI'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n",
        "\u001b[2;32m│   │   \u001b[0m\u001b[32m'acq_value_PI'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n",
-       "\u001b[2;32m│   │   \u001b[0m\u001b[32m'previous_param'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m10\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n",
-       "\u001b[2;32m│   │   \u001b[0m\u001b[32m'gp_hp_k1__k1__constant_value0_observation'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n",
-       "\u001b[2;32m│   │   \u001b[0m\u001b[32m'gp_hp_k1__k2__length_scale0_observation'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n",
-       "\u001b[2;32m│   │   \u001b[0m\u001b[32m'gp_hp_k1__k2__length_scale1_observation'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n",
-       "\u001b[2;32m│   │   \u001b[0m\u001b[32m'gp_hp_k2__noise_level0_observation'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m\n",
+       "\u001b[2;32m│   │   \u001b[0m\u001b[32m'previous_param'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0.5\u001b[0m\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m\n",
        "\u001b[2;32m│   \u001b[0m\u001b[1m}\u001b[0m,\n",
        "\u001b[2;32m│   \u001b[0m\u001b[1m{\u001b[0m\u001b[1m}\u001b[0m\n",
        "\u001b[1m)\u001b[0m\n"
@@ -435,89 +382,26 @@
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "[INFO][abstract_intensifier.py:596] Added config 6bb167 and rejected config 46821d as incumbent because it is not better than the incumbents on 1 instances: \n",
-      "[INFO][dacboenv.py:359] Step: 1, instance: (39590, 'bbob/2/20/0') Reward: -187.08337915468118, terminated: False, truncated: False, info: {}\n"
+      "[INFO][dacboenv.py:359] Step: 1, instance: (1, 'bbob/2/20/0') Reward: -428.27284142743866, terminated: False, truncated: False, info: {}\n"
      ]
     },
     {
      "data": {
       "text/html": [
        "
{\n",
-       "'incumbent_changes': array([3.], dtype=float32),\n",
-       "'trials_passed': array([17.], dtype=float32),\n",
-       "'trials_left': array([60.], dtype=float32),\n",
-       "'ubr': array([47989.965], dtype=float32),\n",
-       "'searchspace_dim': array([2.], dtype=float32),\n",
-       "'continuous_hps': array([2.], dtype=float32),\n",
-       "'categorical_hps': array([0.], dtype=float32),\n",
-       "'ordinal_hps': array([0.], dtype=float32),\n",
-       "'int_hps': array([0.], dtype=float32),\n",
-       "'tsp': array([4.407388], dtype=float32),\n",
-       "'knn_entropy': array([0.54839134], dtype=float32),\n",
-       "'y_skewness': array([2.1103723], dtype=float32),\n",
-       "'y_kurtosis': array([4.0757565], dtype=float32),\n",
-       "'y_mean': array([35196.844], dtype=float32),\n",
-       "'y_std': array([50527.785], dtype=float32),\n",
-       "'y_variability': array([1.2443994], dtype=float32),\n",
-       "'tsp_best': array([0.], dtype=float32),\n",
-       "'knn_entropy_best': array([-0.27582544], dtype=float32),\n",
-       "'y_skewness_best': array([0.], dtype=float32),\n",
-       "'y_kurtosis_best': array([0.], dtype=float32),\n",
-       "'y_mean_best': array([187.08337], dtype=float32),\n",
-       "'y_std_best': array([0.], dtype=float32),\n",
-       "'y_variability_best': array([2.020312], dtype=float32),\n",
-       "'budget_percentage': array([0.22077923], dtype=float32),\n",
-       "'inc_improvement_scaled': array([0.01305182], dtype=float32),\n",
-       "'has_categorical_hps': array([0.], dtype=float32),\n",
-       "'knn_difference': array([0.], dtype=float32),\n",
        "'ubr_difference': array([0.], dtype=float32),\n",
-       "'acq_value_EI': array([0.20158173], dtype=float32),\n",
-       "'acq_value_PI': array([0.5000079], dtype=float32),\n",
-       "'previous_param': array([-0.37298787], dtype=float32),\n",
-       "'gp_hp_k1__k1__constant_value0_observation': array([0.46420226], dtype=float32),\n",
-       "'gp_hp_k1__k2__length_scale0_observation': array([0.0858638], dtype=float32),\n",
-       "'gp_hp_k1__k2__length_scale1_observation': array([-0.5649307], dtype=float32),\n",
-       "'gp_hp_k2__noise_level0_observation': array([-25.], dtype=float32)\n",
+       "'acq_value_EI': array([0.], dtype=float32),\n",
+       "'acq_value_PI': array([0.], dtype=float32),\n",
+       "'previous_param': array([0.5118216], dtype=float32)\n",
        "}\n",
        "
\n" ], "text/plain": [ "\u001b[1m{\u001b[0m\n", - "\u001b[2;32m│ \u001b[0m\u001b[32m'incumbent_changes'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m3\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", - "\u001b[2;32m│ \u001b[0m\u001b[32m'trials_passed'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m17\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", - "\u001b[2;32m│ \u001b[0m\u001b[32m'trials_left'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m60\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", - "\u001b[2;32m│ \u001b[0m\u001b[32m'ubr'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m47989.965\u001b[0m\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", - "\u001b[2;32m│ \u001b[0m\u001b[32m'searchspace_dim'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m2\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", - "\u001b[2;32m│ \u001b[0m\u001b[32m'continuous_hps'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m2\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", - "\u001b[2;32m│ \u001b[0m\u001b[32m'categorical_hps'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", - "\u001b[2;32m│ \u001b[0m\u001b[32m'ordinal_hps'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", - "\u001b[2;32m│ \u001b[0m\u001b[32m'int_hps'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", - "\u001b[2;32m│ \u001b[0m\u001b[32m'tsp'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m4.407388\u001b[0m\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", - "\u001b[2;32m│ \u001b[0m\u001b[32m'knn_entropy'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0.54839134\u001b[0m\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", - "\u001b[2;32m│ \u001b[0m\u001b[32m'y_skewness'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m2.1103723\u001b[0m\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", - "\u001b[2;32m│ \u001b[0m\u001b[32m'y_kurtosis'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m4.0757565\u001b[0m\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", - "\u001b[2;32m│ \u001b[0m\u001b[32m'y_mean'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m35196.844\u001b[0m\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", - "\u001b[2;32m│ \u001b[0m\u001b[32m'y_std'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m50527.785\u001b[0m\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", - "\u001b[2;32m│ \u001b[0m\u001b[32m'y_variability'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m1.2443994\u001b[0m\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", - "\u001b[2;32m│ \u001b[0m\u001b[32m'tsp_best'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", - "\u001b[2;32m│ \u001b[0m\u001b[32m'knn_entropy_best'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m-0.27582544\u001b[0m\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", - "\u001b[2;32m│ \u001b[0m\u001b[32m'y_skewness_best'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", - "\u001b[2;32m│ \u001b[0m\u001b[32m'y_kurtosis_best'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", - "\u001b[2;32m│ \u001b[0m\u001b[32m'y_mean_best'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m187.08337\u001b[0m\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", - "\u001b[2;32m│ \u001b[0m\u001b[32m'y_std_best'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", - "\u001b[2;32m│ \u001b[0m\u001b[32m'y_variability_best'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m2.020312\u001b[0m\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", - "\u001b[2;32m│ \u001b[0m\u001b[32m'budget_percentage'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0.22077923\u001b[0m\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", - "\u001b[2;32m│ \u001b[0m\u001b[32m'inc_improvement_scaled'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0.01305182\u001b[0m\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", - "\u001b[2;32m│ \u001b[0m\u001b[32m'has_categorical_hps'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", - "\u001b[2;32m│ \u001b[0m\u001b[32m'knn_difference'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", "\u001b[2;32m│ \u001b[0m\u001b[32m'ubr_difference'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", - "\u001b[2;32m│ \u001b[0m\u001b[32m'acq_value_EI'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0.20158173\u001b[0m\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", - "\u001b[2;32m│ \u001b[0m\u001b[32m'acq_value_PI'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0.5000079\u001b[0m\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", - "\u001b[2;32m│ \u001b[0m\u001b[32m'previous_param'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m-0.37298787\u001b[0m\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", - "\u001b[2;32m│ \u001b[0m\u001b[32m'gp_hp_k1__k1__constant_value0_observation'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0.46420226\u001b[0m\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", - "\u001b[2;32m│ \u001b[0m\u001b[32m'gp_hp_k1__k2__length_scale0_observation'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0.0858638\u001b[0m\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", - "\u001b[2;32m│ \u001b[0m\u001b[32m'gp_hp_k1__k2__length_scale1_observation'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m-0.5649307\u001b[0m\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", - "\u001b[2;32m│ \u001b[0m\u001b[32m'gp_hp_k2__noise_level0_observation'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m-25\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m\n", + "\u001b[2;32m│ \u001b[0m\u001b[32m'acq_value_EI'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", + "\u001b[2;32m│ \u001b[0m\u001b[32m'acq_value_PI'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", + "\u001b[2;32m│ \u001b[0m\u001b[32m'previous_param'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0.5118216\u001b[0m\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m\n", "\u001b[1m}\u001b[0m\n" ] }, @@ -546,11 +430,11 @@ { "data": { "text/html": [ - "
'Reward -187.08337915468118'\n",
+       "
'Reward -428.27284142743866'\n",
        "
\n" ], "text/plain": [ - "\u001b[32m'Reward -187.08337915468118'\u001b[0m\n" + "\u001b[32m'Reward -428.27284142743866'\u001b[0m\n" ] }, "metadata": {}, From 2ef2ccbf37c92ccc2b75c1aa14b9a9cf330dd42f Mon Sep 17 00:00:00 2001 From: Thibaut Klenke Date: Mon, 5 Jan 2026 16:35:59 +0100 Subject: [PATCH 10/16] DACBO: Set default reward to symlogregret --- dacbench/benchmarks/dacbo_benchmark.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dacbench/benchmarks/dacbo_benchmark.py b/dacbench/benchmarks/dacbo_benchmark.py index e50c17b7e..0d24b008b 100644 --- a/dacbench/benchmarks/dacbo_benchmark.py +++ b/dacbench/benchmarks/dacbo_benchmark.py @@ -64,7 +64,7 @@ def replace_refs(node): ], "action_space_class": AcqParameterActionSpace, "action_space_kwargs": {"bounds": [0, 1], "adjustment_type": "continuous"}, - "reward_keys": None, + "reward_keys": ["symlogregret"], "benchmark_info": INFO, } ) From 6ad67f4d64154dd38b06f0228e951858787fcdd9 Mon Sep 17 00:00:00 2001 From: Thibaut Klenke Date: Mon, 5 Jan 2026 16:41:42 +0100 Subject: [PATCH 11/16] DACBO: Update benchmark info --- dacbench/benchmarks/dacbo_benchmark.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/dacbench/benchmarks/dacbo_benchmark.py b/dacbench/benchmarks/dacbo_benchmark.py index 0d24b008b..560a90c98 100644 --- a/dacbench/benchmarks/dacbo_benchmark.py +++ b/dacbench/benchmarks/dacbo_benchmark.py @@ -44,10 +44,17 @@ def replace_refs(node): INFO = { "identifier": "DACBO", "name": "DACBO", - "reward": "Incumbent cost", - "state_description": [ + "reward": f"""Default: [symlogregret]. Other options: {[ + rew.name for rew in dacboenv.env.reward.ALL_REWARDS + ]}""", + "state_description": f"""Default: {[ + "ubr_difference", + "acq_value_EI", + "acq_value_PI", + "previous_param", + ]}. Other options: {[ obs.name for obs in dacboenv.env.observation.ALL_OBSERVATIONS - ], + ]}""", } DACBO_DEFAULTS = objdict( From 404a63d199f41b4ea938e1f9bc0dd9e10d69a110 Mon Sep 17 00:00:00 2001 From: Thibaut Klenke Date: Mon, 5 Jan 2026 16:43:25 +0100 Subject: [PATCH 12/16] DACBO: Update example notebook --- examples/benchmark_notebooks/dacbo.ipynb | 82 +++--------------------- 1 file changed, 9 insertions(+), 73 deletions(-) diff --git a/examples/benchmark_notebooks/dacbo.ipynb b/examples/benchmark_notebooks/dacbo.ipynb index fb0954740..22241eb50 100644 --- a/examples/benchmark_notebooks/dacbo.ipynb +++ b/examples/benchmark_notebooks/dacbo.ipynb @@ -95,40 +95,8 @@ "
{\n",
        "'identifier': 'DACBO',\n",
        "'name': 'DACBO',\n",
-       "'reward': 'Incumbent cost',\n",
-       "'state_description': [\n",
-       "│   │   'incumbent_changes',\n",
-       "│   │   'trials_passed',\n",
-       "│   │   'trials_left',\n",
-       "│   │   'ubr',\n",
-       "│   │   'searchspace_dim',\n",
-       "│   │   'continuous_hps',\n",
-       "│   │   'categorical_hps',\n",
-       "│   │   'ordinal_hps',\n",
-       "│   │   'int_hps',\n",
-       "│   │   'tsp',\n",
-       "│   │   'knn_entropy',\n",
-       "│   │   'y_skewness',\n",
-       "│   │   'y_kurtosis',\n",
-       "│   │   'y_mean',\n",
-       "│   │   'y_std',\n",
-       "│   │   'y_variability',\n",
-       "│   │   'tsp_best',\n",
-       "│   │   'knn_entropy_best',\n",
-       "│   │   'y_skewness_best',\n",
-       "│   │   'y_kurtosis_best',\n",
-       "│   │   'y_mean_best',\n",
-       "│   │   'y_std_best',\n",
-       "│   │   'y_variability_best',\n",
-       "│   │   'budget_percentage',\n",
-       "│   │   'inc_improvement_scaled',\n",
-       "│   │   'has_categorical_hps',\n",
-       "│   │   'knn_difference',\n",
-       "│   │   'ubr_difference',\n",
-       "│   │   'acq_value_EI',\n",
-       "│   │   'acq_value_PI',\n",
-       "│   │   'previous_param'\n",
-       "]\n",
+       "'reward': \"Default: [symlogregret]. Other options: ['trajectory_auc', 'incumbent_cost', 'incumbent_improvement', 'sqrt_incumbent_improvement', 'trajectory_auc_alt', 'episode_finished', 'episode_finished_scaled', 'symlogregret']\",\n",
+       "'state_description': \"Default: ['ubr_difference', 'acq_value_EI', 'acq_value_PI', 'previous_param']. Other options: ['incumbent_changes', 'trials_passed', 'trials_left', 'ubr', 'searchspace_dim', 'continuous_hps', 'categorical_hps', 'ordinal_hps', 'int_hps', 'tsp', 'knn_entropy', 'y_skewness', 'y_kurtosis', 'y_mean', 'y_std', 'y_variability', 'tsp_best', 'knn_entropy_best', 'y_skewness_best', 'y_kurtosis_best', 'y_mean_best', 'y_std_best', 'y_variability_best', 'budget_percentage', 'inc_improvement_scaled', 'has_categorical_hps', 'knn_difference', 'ubr_difference', 'acq_value_EI', 'acq_value_PI', 'previous_param']\"\n",
        "}\n",
        "
\n" ], @@ -136,40 +104,8 @@ "\u001b[1m{\u001b[0m\n", "\u001b[2;32m│ \u001b[0m\u001b[32m'identifier'\u001b[0m: \u001b[32m'DACBO'\u001b[0m,\n", "\u001b[2;32m│ \u001b[0m\u001b[32m'name'\u001b[0m: \u001b[32m'DACBO'\u001b[0m,\n", - "\u001b[2;32m│ \u001b[0m\u001b[32m'reward'\u001b[0m: \u001b[32m'Incumbent cost'\u001b[0m,\n", - "\u001b[2;32m│ \u001b[0m\u001b[32m'state_description'\u001b[0m: \u001b[1m[\u001b[0m\n", - "\u001b[2;32m│ │ \u001b[0m\u001b[32m'incumbent_changes'\u001b[0m,\n", - "\u001b[2;32m│ │ \u001b[0m\u001b[32m'trials_passed'\u001b[0m,\n", - "\u001b[2;32m│ │ \u001b[0m\u001b[32m'trials_left'\u001b[0m,\n", - "\u001b[2;32m│ │ \u001b[0m\u001b[32m'ubr'\u001b[0m,\n", - "\u001b[2;32m│ │ \u001b[0m\u001b[32m'searchspace_dim'\u001b[0m,\n", - "\u001b[2;32m│ │ \u001b[0m\u001b[32m'continuous_hps'\u001b[0m,\n", - "\u001b[2;32m│ │ \u001b[0m\u001b[32m'categorical_hps'\u001b[0m,\n", - "\u001b[2;32m│ │ \u001b[0m\u001b[32m'ordinal_hps'\u001b[0m,\n", - "\u001b[2;32m│ │ \u001b[0m\u001b[32m'int_hps'\u001b[0m,\n", - "\u001b[2;32m│ │ \u001b[0m\u001b[32m'tsp'\u001b[0m,\n", - "\u001b[2;32m│ │ \u001b[0m\u001b[32m'knn_entropy'\u001b[0m,\n", - "\u001b[2;32m│ │ \u001b[0m\u001b[32m'y_skewness'\u001b[0m,\n", - "\u001b[2;32m│ │ \u001b[0m\u001b[32m'y_kurtosis'\u001b[0m,\n", - "\u001b[2;32m│ │ \u001b[0m\u001b[32m'y_mean'\u001b[0m,\n", - "\u001b[2;32m│ │ \u001b[0m\u001b[32m'y_std'\u001b[0m,\n", - "\u001b[2;32m│ │ \u001b[0m\u001b[32m'y_variability'\u001b[0m,\n", - "\u001b[2;32m│ │ \u001b[0m\u001b[32m'tsp_best'\u001b[0m,\n", - "\u001b[2;32m│ │ \u001b[0m\u001b[32m'knn_entropy_best'\u001b[0m,\n", - "\u001b[2;32m│ │ \u001b[0m\u001b[32m'y_skewness_best'\u001b[0m,\n", - "\u001b[2;32m│ │ \u001b[0m\u001b[32m'y_kurtosis_best'\u001b[0m,\n", - "\u001b[2;32m│ │ \u001b[0m\u001b[32m'y_mean_best'\u001b[0m,\n", - "\u001b[2;32m│ │ \u001b[0m\u001b[32m'y_std_best'\u001b[0m,\n", - "\u001b[2;32m│ │ \u001b[0m\u001b[32m'y_variability_best'\u001b[0m,\n", - "\u001b[2;32m│ │ \u001b[0m\u001b[32m'budget_percentage'\u001b[0m,\n", - "\u001b[2;32m│ │ \u001b[0m\u001b[32m'inc_improvement_scaled'\u001b[0m,\n", - "\u001b[2;32m│ │ \u001b[0m\u001b[32m'has_categorical_hps'\u001b[0m,\n", - "\u001b[2;32m│ │ \u001b[0m\u001b[32m'knn_difference'\u001b[0m,\n", - "\u001b[2;32m│ │ \u001b[0m\u001b[32m'ubr_difference'\u001b[0m,\n", - "\u001b[2;32m│ │ \u001b[0m\u001b[32m'acq_value_EI'\u001b[0m,\n", - "\u001b[2;32m│ │ \u001b[0m\u001b[32m'acq_value_PI'\u001b[0m,\n", - "\u001b[2;32m│ │ \u001b[0m\u001b[32m'previous_param'\u001b[0m\n", - "\u001b[2;32m│ \u001b[0m\u001b[1m]\u001b[0m\n", + "\u001b[2;32m│ \u001b[0m\u001b[32m'reward'\u001b[0m: \u001b[32m\"Default: \u001b[0m\u001b[32m[\u001b[0m\u001b[32msymlogregret\u001b[0m\u001b[32m]\u001b[0m\u001b[32m. Other options: \u001b[0m\u001b[32m[\u001b[0m\u001b[32m'trajectory_auc', 'incumbent_cost', 'incumbent_improvement', 'sqrt_incumbent_improvement', 'trajectory_auc_alt', 'episode_finished', 'episode_finished_scaled', 'symlogregret'\u001b[0m\u001b[32m]\u001b[0m\u001b[32m\"\u001b[0m,\n", + "\u001b[2;32m│ \u001b[0m\u001b[32m'state_description'\u001b[0m: \u001b[32m\"Default: \u001b[0m\u001b[32m[\u001b[0m\u001b[32m'ubr_difference', 'acq_value_EI', 'acq_value_PI', 'previous_param'\u001b[0m\u001b[32m]\u001b[0m\u001b[32m. Other options: \u001b[0m\u001b[32m[\u001b[0m\u001b[32m'incumbent_changes', 'trials_passed', 'trials_left', 'ubr', 'searchspace_dim', 'continuous_hps', 'categorical_hps', 'ordinal_hps', 'int_hps', 'tsp', 'knn_entropy', 'y_skewness', 'y_kurtosis', 'y_mean', 'y_std', 'y_variability', 'tsp_best', 'knn_entropy_best', 'y_skewness_best', 'y_kurtosis_best', 'y_mean_best', 'y_std_best', 'y_variability_best', 'budget_percentage', 'inc_improvement_scaled', 'has_categorical_hps', 'knn_difference', 'ubr_difference', 'acq_value_EI', 'acq_value_PI', 'previous_param'\u001b[0m\u001b[32m]\u001b[0m\u001b[32m\"\u001b[0m\n", "\u001b[1m}\u001b[0m\n" ] }, @@ -294,12 +230,12 @@ { "data": { "text/html": [ - "
[15:45:26] INFO     Loading performance data from                                      reference_performance.py:243\n",
+       "
[16:42:17] INFO     Loading performance data from                                      reference_performance.py:243\n",
        "                    reference_performance/reference_performance.parquet                                            \n",
        "
\n" ], "text/plain": [ - "\u001b[2;36m[15:45:26]\u001b[0m\u001b[2;36m \u001b[0m\u001b[34mINFO \u001b[0m Loading performance data from \u001b]8;id=305269;file:///scratch/hpc-prf-intexml/tklenke/repos/dacboenv/dacboenv/utils/reference_performance.py\u001b\\\u001b[2mreference_performance.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=481734;file:///scratch/hpc-prf-intexml/tklenke/repos/dacboenv/dacboenv/utils/reference_performance.py#243\u001b\\\u001b[2m243\u001b[0m\u001b]8;;\u001b\\\n", + "\u001b[2;36m[16:42:17]\u001b[0m\u001b[2;36m \u001b[0m\u001b[34mINFO \u001b[0m Loading performance data from \u001b]8;id=989648;file:///scratch/hpc-prf-intexml/tklenke/repos/dacboenv/dacboenv/utils/reference_performance.py\u001b\\\u001b[2mreference_performance.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=651810;file:///scratch/hpc-prf-intexml/tklenke/repos/dacboenv/dacboenv/utils/reference_performance.py#243\u001b\\\u001b[2m243\u001b[0m\u001b]8;;\u001b\\\n", "\u001b[2;36m \u001b[0m reference_performance/reference_performance.parquet \u001b[2m \u001b[0m\n" ] }, @@ -382,7 +318,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "[INFO][dacboenv.py:359] Step: 1, instance: (1, 'bbob/2/20/0') Reward: -428.27284142743866, terminated: False, truncated: False, info: {}\n" + "[INFO][dacboenv.py:359] Step: 1, instance: (1, 'bbob/2/20/0') Reward: -3.388035897692391, terminated: False, truncated: False, info: {}\n" ] }, { @@ -430,11 +366,11 @@ { "data": { "text/html": [ - "
'Reward -428.27284142743866'\n",
+       "
'Reward -3.388035897692391'\n",
        "
\n" ], "text/plain": [ - "\u001b[32m'Reward -428.27284142743866'\u001b[0m\n" + "\u001b[32m'Reward -3.388035897692391'\u001b[0m\n" ] }, "metadata": {}, From d4c8cd921d674249b64853624dbc0a4eda7acc41 Mon Sep 17 00:00:00 2001 From: Thibaut Klenke Date: Mon, 5 Jan 2026 18:24:29 +0100 Subject: [PATCH 13/16] DACBO: Update instance set, include task ids into config --- dacbench/benchmarks/dacbo_benchmark.py | 14 ++++++++++---- dacbench/envs/dacbo.py | 2 +- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/dacbench/benchmarks/dacbo_benchmark.py b/dacbench/benchmarks/dacbo_benchmark.py index 560a90c98..af6f349f4 100644 --- a/dacbench/benchmarks/dacbo_benchmark.py +++ b/dacbench/benchmarks/dacbo_benchmark.py @@ -3,6 +3,7 @@ from __future__ import annotations from importlib.resources import files +from itertools import product from pathlib import Path import dacboenv @@ -110,9 +111,14 @@ def read_instance_set(self): with open(path) as f: instance_data = yaml.safe_load(f) print(instance_data) - self.config["instance_set"] = { - 0: instance_data["task_ids"] - } # Instance selection is handled by the internal env + self.config["task_ids"] = instance_data["task_ids"] self.config["inner_seeds"] = instance_data.get("inner_seeds", None) + self.config["instance_set"] = dict( + enumerate( + product( + instance_data.get("inner_seeds", None), instance_data["task_ids"] + ) + ) + ) # Not used. Instance selection is handled by the internal env - assert len(self.config["instance_set"][0]) > 0, "ERROR: empty instance set" + assert len(self.config["instance_set"]) > 0, "ERROR: empty instance set" diff --git a/dacbench/envs/dacbo.py b/dacbench/envs/dacbo.py index 5277190a6..7702f1050 100644 --- a/dacbench/envs/dacbo.py +++ b/dacbench/envs/dacbo.py @@ -13,7 +13,7 @@ class DACBOEnv(AbstractEnv): def __init__(self, config): """Init DACBO env.""" - self._env = DEnv(task_ids=config["instance_set"][0], **config) + self._env = DEnv(**config) self.reset() config[ "cutoff" From f3ceb8e7fa329633022262d739ea957510780700 Mon Sep 17 00:00:00 2001 From: Thibaut Klenke Date: Mon, 5 Jan 2026 18:25:41 +0100 Subject: [PATCH 14/16] DACBO: Update example notebook --- examples/benchmark_notebooks/dacbo.ipynb | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/examples/benchmark_notebooks/dacbo.ipynb b/examples/benchmark_notebooks/dacbo.ipynb index 22241eb50..535f5278d 100644 --- a/examples/benchmark_notebooks/dacbo.ipynb +++ b/examples/benchmark_notebooks/dacbo.ipynb @@ -159,7 +159,7 @@ "metadata": {}, "source": [ "## DACBO Instances\n", - "Now let's take a look at how a DACBO instance looks. To do so, we first read the default instance set and look at its only element:" + "Now let's take a look at how a DACBO instance looks. To do so, we first read the default instance set and look one element:" ] }, { @@ -190,11 +190,11 @@ { "data": { "text/html": [ - "
['bbob/2/1/0', 'bbob/2/20/0']\n",
+       "
(1, 'bbob/2/1/0')\n",
        "
\n" ], "text/plain": [ - "\u001b[1m[\u001b[0m\u001b[32m'bbob/2/1/0'\u001b[0m, \u001b[32m'bbob/2/20/0'\u001b[0m\u001b[1m]\u001b[0m\n" + "\u001b[1m(\u001b[0m\u001b[1;36m1\u001b[0m, \u001b[32m'bbob/2/1/0'\u001b[0m\u001b[1m)\u001b[0m\n" ] }, "metadata": {}, @@ -211,7 +211,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "As in the instance selection is handled internally by the DACBO environment, we only provide a list of target functions to be considered as offered by CARP-S as well as a list of inner seeds. A DACBO instance consists of a single inner seed and a target function. By default, the cross product of the selected inner seeds seeds and target functions is evaluated in a round robin manner." + "As in the instance selection is handled internally by the DACBO environment, we only provide a list of target functions to be considered as offered by CARP-S as well as a list of inner seeds. A DACBO instance consists of a single inner seed and a target function. By default, the cross product of the selected inner seeds seeds and target functions is evaluated in a round robin manner. Note that the internal DACBO environment uses the instance set as provided from the `.yaml` configuration file, not directly from the DACBench config object." ] }, { @@ -230,12 +230,12 @@ { "data": { "text/html": [ - "
[16:42:17] INFO     Loading performance data from                                      reference_performance.py:243\n",
+       "
[18:24:48] INFO     Loading performance data from                                      reference_performance.py:243\n",
        "                    reference_performance/reference_performance.parquet                                            \n",
        "
\n" ], "text/plain": [ - "\u001b[2;36m[16:42:17]\u001b[0m\u001b[2;36m \u001b[0m\u001b[34mINFO \u001b[0m Loading performance data from \u001b]8;id=989648;file:///scratch/hpc-prf-intexml/tklenke/repos/dacboenv/dacboenv/utils/reference_performance.py\u001b\\\u001b[2mreference_performance.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=651810;file:///scratch/hpc-prf-intexml/tklenke/repos/dacboenv/dacboenv/utils/reference_performance.py#243\u001b\\\u001b[2m243\u001b[0m\u001b]8;;\u001b\\\n", + "\u001b[2;36m[18:24:48]\u001b[0m\u001b[2;36m \u001b[0m\u001b[34mINFO \u001b[0m Loading performance data from \u001b]8;id=299609;file:///scratch/hpc-prf-intexml/tklenke/repos/dacboenv/dacboenv/utils/reference_performance.py\u001b\\\u001b[2mreference_performance.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=531642;file:///scratch/hpc-prf-intexml/tklenke/repos/dacboenv/dacboenv/utils/reference_performance.py#243\u001b\\\u001b[2m243\u001b[0m\u001b]8;;\u001b\\\n", "\u001b[2;36m \u001b[0m reference_performance/reference_performance.parquet \u001b[2m \u001b[0m\n" ] }, From 0ad74830d4eced1b7c1fd41d2d594fb2c7fd567b Mon Sep 17 00:00:00 2001 From: Thibaut Klenke Date: Tue, 6 Jan 2026 14:53:37 +0100 Subject: [PATCH 15/16] DACBO: Use all BBOB 2D as default --- .../instance_sets/dacbo/bbob_2_default.yaml | 27 +++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/dacbench/instance_sets/dacbo/bbob_2_default.yaml b/dacbench/instance_sets/dacbo/bbob_2_default.yaml index 464e3a030..16c539e6e 100644 --- a/dacbench/instance_sets/dacbo/bbob_2_default.yaml +++ b/dacbench/instance_sets/dacbo/bbob_2_default.yaml @@ -1,2 +1,25 @@ -task_ids: ["bbob/2/1/0", "bbob/2/20/0"] -inner_seeds: [1, 2, 3] \ No newline at end of file +task_ids: + - "bbob/2/1/0" + - "bbob/2/2/0" + - "bbob/2/3/0" + - "bbob/2/4/0" + - "bbob/2/5/0" + - "bbob/2/6/0" + - "bbob/2/7/0" + - "bbob/2/8/0" + - "bbob/2/9/0" + - "bbob/2/10/0" + - "bbob/2/11/0" + - "bbob/2/12/0" + - "bbob/2/13/0" + - "bbob/2/14/0" + - "bbob/2/15/0" + - "bbob/2/16/0" + - "bbob/2/17/0" + - "bbob/2/18/0" + - "bbob/2/19/0" + - "bbob/2/20/0" +inner_seeds: + - 1 + - 2 + - 3 \ No newline at end of file From 890793756fa4b3ebe075de1723d25d45de02efd4 Mon Sep 17 00:00:00 2001 From: Thibaut Klenke Date: Tue, 6 Jan 2026 15:38:36 +0100 Subject: [PATCH 16/16] DACBO: Update example notebook --- examples/benchmark_notebooks/dacbo.ipynb | 27 +++++++++++++----------- 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/examples/benchmark_notebooks/dacbo.ipynb b/examples/benchmark_notebooks/dacbo.ipynb index 535f5278d..9e12209ae 100644 --- a/examples/benchmark_notebooks/dacbo.ipynb +++ b/examples/benchmark_notebooks/dacbo.ipynb @@ -184,7 +184,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "{'task_ids': ['bbob/2/1/0', 'bbob/2/20/0'], 'inner_seeds': [1, 2, 3]}\n" + "{'task_ids': ['bbob/2/1/0', 'bbob/2/2/0', 'bbob/2/3/0', 'bbob/2/4/0', 'bbob/2/5/0', 'bbob/2/6/0', 'bbob/2/7/0', 'bbob/2/8/0', 'bbob/2/9/0', 'bbob/2/10/0', 'bbob/2/11/0', 'bbob/2/12/0', 'bbob/2/13/0', 'bbob/2/14/0', 'bbob/2/15/0', 'bbob/2/16/0', 'bbob/2/17/0', 'bbob/2/18/0', 'bbob/2/19/0', 'bbob/2/20/0'], 'inner_seeds': [1, 2, 3]}\n" ] }, { @@ -230,12 +230,12 @@ { "data": { "text/html": [ - "
[18:24:48] INFO     Loading performance data from                                      reference_performance.py:243\n",
+       "
[15:04:32] INFO     Loading performance data from                                      reference_performance.py:243\n",
        "                    reference_performance/reference_performance.parquet                                            \n",
        "
\n" ], "text/plain": [ - "\u001b[2;36m[18:24:48]\u001b[0m\u001b[2;36m \u001b[0m\u001b[34mINFO \u001b[0m Loading performance data from \u001b]8;id=299609;file:///scratch/hpc-prf-intexml/tklenke/repos/dacboenv/dacboenv/utils/reference_performance.py\u001b\\\u001b[2mreference_performance.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=531642;file:///scratch/hpc-prf-intexml/tklenke/repos/dacboenv/dacboenv/utils/reference_performance.py#243\u001b\\\u001b[2m243\u001b[0m\u001b]8;;\u001b\\\n", + "\u001b[2;36m[15:04:32]\u001b[0m\u001b[2;36m \u001b[0m\u001b[34mINFO \u001b[0m Loading performance data from \u001b]8;id=17500;file:///scratch/hpc-prf-intexml/tklenke/repos/dacboenv/dacboenv/utils/reference_performance.py\u001b\\\u001b[2mreference_performance.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=14152;file:///scratch/hpc-prf-intexml/tklenke/repos/dacboenv/dacboenv/utils/reference_performance.py#243\u001b\\\u001b[2m243\u001b[0m\u001b]8;;\u001b\\\n", "\u001b[2;36m \u001b[0m reference_performance/reference_performance.parquet \u001b[2m \u001b[0m\n" ] }, @@ -263,8 +263,10 @@ "[INFO][abstract_initial_design.py:139] Using 16 initial design configurations and 0 additional configurations.\n", "[INFO][abstract_intensifier.py:307] Using only one seed for deterministic scenario.\n", "[INFO][abstract_intensifier.py:517] Added config e9bc68 as new incumbent because there are no incumbents yet.\n", - "[INFO][abstract_intensifier.py:596] Added config a4ff80 and rejected config e9bc68 as incumbent because it is not better than the incumbents on 1 instances: \n", - "[INFO][abstract_intensifier.py:596] Added config 61205b and rejected config a4ff80 as incumbent because it is not better than the incumbents on 1 instances: \n" + "[INFO][abstract_intensifier.py:596] Added config 268bf5 and rejected config e9bc68 as incumbent because it is not better than the incumbents on 1 instances: \n", + "[INFO][abstract_intensifier.py:596] Added config a4ff80 and rejected config 268bf5 as incumbent because it is not better than the incumbents on 1 instances: \n", + "[INFO][abstract_intensifier.py:596] Added config 208457 and rejected config a4ff80 as incumbent because it is not better than the incumbents on 1 instances: \n", + "[INFO][abstract_intensifier.py:596] Added config c81044 and rejected config 208457 as incumbent because it is not better than the incumbents on 1 instances: \n" ] }, { @@ -318,7 +320,8 @@ "name": "stdout", "output_type": "stream", "text": [ - "[INFO][dacboenv.py:359] Step: 1, instance: (1, 'bbob/2/20/0') Reward: -3.388035897692391, terminated: False, truncated: False, info: {}\n" + "[INFO][abstract_intensifier.py:596] Added config 928ddd and rejected config c81044 as incumbent because it is not better than the incumbents on 1 instances: \n", + "[INFO][dacboenv.py:359] Step: 1, instance: (1, 'bbob/2/2/0') Reward: -5.258719929137845, terminated: False, truncated: False, info: {}\n" ] }, { @@ -326,8 +329,8 @@ "text/html": [ "
{\n",
        "'ubr_difference': array([0.], dtype=float32),\n",
-       "'acq_value_EI': array([0.], dtype=float32),\n",
-       "'acq_value_PI': array([0.], dtype=float32),\n",
+       "'acq_value_EI': array([34.897663], dtype=float32),\n",
+       "'acq_value_PI': array([0.4999992], dtype=float32),\n",
        "'previous_param': array([0.5118216], dtype=float32)\n",
        "}\n",
        "
\n" @@ -335,8 +338,8 @@ "text/plain": [ "\u001b[1m{\u001b[0m\n", "\u001b[2;32m│ \u001b[0m\u001b[32m'ubr_difference'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", - "\u001b[2;32m│ \u001b[0m\u001b[32m'acq_value_EI'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", - "\u001b[2;32m│ \u001b[0m\u001b[32m'acq_value_PI'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m.\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", + "\u001b[2;32m│ \u001b[0m\u001b[32m'acq_value_EI'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m34.897663\u001b[0m\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", + "\u001b[2;32m│ \u001b[0m\u001b[32m'acq_value_PI'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0.4999992\u001b[0m\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m,\n", "\u001b[2;32m│ \u001b[0m\u001b[32m'previous_param'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0.5118216\u001b[0m\u001b[1m]\u001b[0m, \u001b[33mdtype\u001b[0m=\u001b[35mfloat32\u001b[0m\u001b[1m)\u001b[0m\n", "\u001b[1m}\u001b[0m\n" ] @@ -366,11 +369,11 @@ { "data": { "text/html": [ - "
'Reward -3.388035897692391'\n",
+       "
'Reward -5.258719929137845'\n",
        "
\n" ], "text/plain": [ - "\u001b[32m'Reward -3.388035897692391'\u001b[0m\n" + "\u001b[32m'Reward -5.258719929137845'\u001b[0m\n" ] }, "metadata": {},