DiscreteBatchConstraint

class baybe.constraints.discrete.DiscreteBatchConstraint[source]

Bases: DiscreteConstraint

Constraint ensuring recommendations in a batch share certain parameter values.

When this constraint is active, the recommender internally subsets the candidate set (one subset for each unique value of the constrained parameter), obtains a full batch recommendation from each subset, and returns the batch with the highest joint acquisition value.

This constraint is not supported by all recommenders. It is not applied during search space creation (all parameter values remain in the search space).

Example

If parameter Temperature has values [50, 100, 150] and a batch of 10 is requested, the recommender will generate three candidate batches (one all-50, one all-100, one all-150) and return the best one.

Notes

This constraint can lead to overhead in the computation since optimization results in individual optimizations over several subsets. If there are multiple subset-generating constraints active, this can drastically increase the computational cost due to the combinatorial explosion.

Public methods

__init__(parameters)

Method generated by attrs for class DiscreteBatchConstraint.

from_dict(dictionary)

Create an object from its dictionary representation.

from_json(source, /)

Create an object from its JSON representation.

subset_masks(candidates_exp, /)

Return Boolean masks defining the subsets for this constraint.

summary()

Return a custom summarization of the constraint.

to_dict()

Create an object's dictionary representation.

to_json([sink, overwrite])

Create an object's JSON representation.

Public attributes and properties

is_continuous

Boolean indicating if this is a constraint over continuous parameters.

is_discrete

Boolean indicating if this is a constraint over discrete parameters.

numerical_only

Class variable encoding whether the constraint is valid only for numerical parameters.

parameters

The list of parameters used for the constraint.

__init__(parameters: list[str])

Method generated by attrs for class DiscreteBatchConstraint.

For details on the parameters, see Public attributes and properties.

classmethod from_dict(dictionary: dict)

Create an object from its dictionary representation.

Parameters:

dictionary (dict) – The dictionary representation.

Return type:

TypeVar(_T, bound= SerialMixin)

Returns:

The reconstructed object.

classmethod from_json(source: str | Path | SupportsRead[str], /)

Create an object from its JSON representation.

Parameters:

source (Union[str, Path, SupportsRead[str]]) –

The JSON source. Can be:

  • A string containing JSON content.

  • A file path or Path object pointing to a JSON file.

  • A file-like object with a read() method.

Raises:

ValueError – If source is not one of the allowed types.

Return type:

TypeVar(_T, bound= SerialMixin)

Returns:

The reconstructed object.

subset_masks(candidates_exp: DataFrame, /)[source]

Return Boolean masks defining the subsets for this constraint.

Each mask selects the rows in candidates_exp that belong to one subset, i.e. share the same value for the constrained parameter.

Parameters:

candidates_exp (DataFrame) – The experimental representation of candidate points.

Return type:

list[ndarray[tuple[int, ...], dtype[bool]]]

Returns:

A list of Boolean masks, one per unique value of the constrained parameter.

summary()

Return a custom summarization of the constraint.

Return type:

dict

to_dict()

Create an object’s dictionary representation.

Return type:

dict

Returns:

The dictionary representation of the object.

to_json(sink: str | Path | SupportsWrite[str] | None = None, /, *, overwrite: bool = False, **kwargs: Any)

Create an object’s JSON representation.

Parameters:
  • sink (Union[str, Path, SupportsWrite[str], None]) –

    The JSON sink. Can be:

    • None (only returns the JSON string).

    • A file path or Path object pointing to a location where to write the JSON content.

    • A file-like object with a write() method.

  • overwrite (bool) – Boolean flag indicating if to overwrite the file if it already exists. Only relevant if sink is a file path or Path object.

  • **kwargs (Any) – Additional keyword arguments to pass to json.dumps().

Raises:

FileExistsError – If sink points to an already existing file but overwrite is False.

Return type:

str

Returns:

The JSON representation as a string.

property is_continuous: bool

Boolean indicating if this is a constraint over continuous parameters.

property is_discrete: bool

Boolean indicating if this is a constraint over discrete parameters.

numerical_only: ClassVar[bool] = False

Class variable encoding whether the constraint is valid only for numerical parameters.

parameters: list[str]

The list of parameters used for the constraint.