-
Notifications
You must be signed in to change notification settings - Fork 96
Open
Description
from ConfigSpace.configuration_space import ConfigurationSpace, Configuration
from ConfigSpace.hyperparameters import CategoricalHyperparameter
from ConfigSpace.conditions import EqualsCondition, AndConjunction, OrConjunction
from ConfigSpace.util import get_one_exchange_neighbourhood
import numpy as np
rng = np.random.RandomState(1)
cs = ConfigurationSpace()
x_top = CategoricalHyperparameter("x_top", [0, 1, 2, 3])
x_m0 = CategoricalHyperparameter("x_m0", [0, 1])
x_m1 = CategoricalHyperparameter("x_m1", [0, 1])
x_m2 = CategoricalHyperparameter("x_m2", [0, 1])
y = CategoricalHyperparameter("y", [0, 1])
x_b = CategoricalHyperparameter("x_b", [0, 1])
cm0 = EqualsCondition(x_m0, x_top, 0)
cm1 = EqualsCondition(x_m1, x_top, 1)
cm2 = EqualsCondition(x_m2, x_top, 2)
cb0 = EqualsCondition(x_b, x_top, 0)
cb1 = EqualsCondition(x_b, x_m1, 0)
cb2 = EqualsCondition(x_b, x_m2, 0)
cor = OrConjunction(cb0, cb1, cb2)
cand = AndConjunction(
cor,
EqualsCondition(x_b, y, 0)
)
cs.add_hyperparameters([x_top, x_m0, x_m1, x_b, x_m2, y])
cs.add_conditions([cm0, cm1, cm2])
cs.add_condition(cand)
cfg = {"y": 0,
"x_top": 3,
"x_b": 0,
}
cfg = Configuration(cs, values=cfg)When a variable is conditioned by a nested condition (combined with AndConjunction and OrConjunction) while all its parents in the AndConjunction are inactivated, the variable will be incorrectly deactivated even if OrConjunction is satisfied
jbussemaker
Metadata
Metadata
Assignees
Labels
No labels