Randomly sampling 13 times is enough to discover a configuration with negative memory:
from hpobench.container.benchmarks.surrogates.yahpo_gym import YAHPOGymBenchmark
scenario = 'rbv2_super'
instance = 6
rng = 9
benchmark = YAHPOGymBenchmark(scenario=scenario, instance=str(instance), rng=rng)
configspace = benchmark.get_configuration_space(rng)
fidelityspace = benchmark.get_fidelity_space(rng)
main_fidelity = fidelityspace.get_hyperparameters()[0]
if isinstance(main_fidelity, CSH.OrdinalHyperparameter):
R = self.main_fidelity.sequence[-1]
elif isinstance(self.main_fidelity,(
CSH.UniformFloatHyperparameter,
CSH.UniformIntegerHyperparameter
)):
R = self.main_fidelity.upper
else:
raise NotImplementedError("Fidelity type not implemented")
config = configspace.sample_configuration()
fidelity = {main_fidelity.name: R}
num_tries = 0
while benchmark.objective_function(config, fidelity)['info']['objectives']['memory'] > 0.:
num_tries += 1
config = configspace.sample_configuration()
assert num_tries <= 100, 'Stop inf loop'
Randomly sampling 13 times is enough to discover a configuration with negative memory: