SMAC3 icon indicating copy to clipboard operation
SMAC3 copied to clipboard

intial designs raise an error if the generated vector conflicts the forbidden clauses

Open dengdifan opened this issue 4 years ago • 5 comments

Description

If forbidden clauses exist in smac's configspace and initial design generators generates a vector that conflicts the forbidden clauses, rather then ignore and skip that, SMAC will raise an error

Steps/Code to Reproduce

from ConfigSpace import CategoricalHyperparameter
from ConfigSpace.forbidden import ForbiddenEqualsClause

from ConfigSpace.configuration_space import ConfigurationSpace
from smac.scenario.scenario import Scenario
from smac.facade.smac_hpo_facade import SMAC4HPO

cs = ConfigurationSpace()
hp = CategoricalHyperparameter('hp1', choices=['True', 'False'])
hp_forbidden = ForbiddenEqualsClause(hp, 'False')
cs.add_hyperparameter(hp)
cs.add_forbidden_clause(hp_forbidden)

scenario = Scenario({"run_obj": "quality",
                     "cs": cs,
                     })

smac = SMAC4HPO(scenario=scenario,)

smac.optimize()

Actual Results

SMAC raise an error: ConfigSpace.exceptions.ForbiddenValueError: Given vector violates forbidden clause Forbidden: hp1 == 'False'

Versions

0.12.3

dengdifan avatar Oct 02 '20 14:10 dengdifan

Im facing the issue with ForbiddenEqualsClause the raised error is identical.

Versions smac: 0.13.1 ConfigSpace: 0.4.18

HadiKutabi avatar Jul 14 '21 11:07 HadiKutabi

weirdly, you may get past this bug if you used facade SMAC4AC

HadiKutabi avatar Jul 14 '21 12:07 HadiKutabi

@HadiKutabi SMAC4AC and SMAC4HPO use different initial designs. In fact, SMAC4AC is only running the default configuration, which by definition should not be forbidden.

mlindauer avatar Jul 15 '21 06:07 mlindauer

@mlindauer Thanks for the info!

HadiKutabi avatar Jul 15 '21 10:07 HadiKutabi

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

stale[bot] avatar Jun 17 '22 21:06 stale[bot]

By now, if the initial design generator generates a vector that conflicts the forbidden clauses, that vector will be ignored and skipped.

sarah-segel avatar May 04 '23 11:05 sarah-segel