From 318dd81ac80968de7555968f3f760296ed0a1ae9 Mon Sep 17 00:00:00 2001 From: Sam Daulton Date: Thu, 5 Dec 2024 16:25:20 -0800 Subject: [PATCH] fix get_default_partitioning_alpha for >7 objectives Summary: This ensures the approximation hyperparameter (alpha) for approximate box decompositions is less than 1. Differential Revision: D66834901 --- botorch/acquisition/multi_objective/utils.py | 2 +- test/acquisition/multi_objective/test_utils.py | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/botorch/acquisition/multi_objective/utils.py b/botorch/acquisition/multi_objective/utils.py index ca45c869e6..172dd16cd0 100644 --- a/botorch/acquisition/multi_objective/utils.py +++ b/botorch/acquisition/multi_objective/utils.py @@ -60,7 +60,7 @@ def get_default_partitioning_alpha(num_objectives: int) -> float: BotorchWarning, stacklevel=3, ) - return 10 ** (-8 + num_objectives) + return 10 ** (-2 if num_objectives >= 6 else -3) def prune_inferior_points_multi_objective( diff --git a/test/acquisition/multi_objective/test_utils.py b/test/acquisition/multi_objective/test_utils.py index 793c936b61..99a16cb2ae 100644 --- a/test/acquisition/multi_objective/test_utils.py +++ b/test/acquisition/multi_objective/test_utils.py @@ -32,8 +32,8 @@ class TestUtils(BotorchTestCase): def test_get_default_partitioning_alpha(self): - for m in range(2, 7): - expected_val = 0.0 if m < 5 else 10 ** (-8 + m) + for m in range(2, 9): + expected_val = 0.0 if m < 5 else 10 ** (-2 if m >= 6 else -3) self.assertEqual( expected_val, get_default_partitioning_alpha(num_objectives=m) ) @@ -41,7 +41,7 @@ def test_get_default_partitioning_alpha(self): # remove the filter to ensure a warning is issued as expected. warnings.resetwarnings() with warnings.catch_warnings(record=True) as ws: - self.assertEqual(0.1, get_default_partitioning_alpha(num_objectives=7)) + self.assertEqual(0.01, get_default_partitioning_alpha(num_objectives=7)) self.assertEqual(len(ws), 1)