ContinuousLinearConstraint

class baybe.constraints.continuous.ContinuousLinearConstraint[source]

Bases: ContinuousConstraint

Class for continuous linear constraints.

Continuous linear constraints use parameter lists and coefficients to define in-/equality constraints over a continuous parameter space.

Public methods

__init__(parameters, operator[, ...])

Method generated by attrs for class ContinuousLinearConstraint.

from_dict(dictionary)

Create an object from its dictionary representation.

from_json(source, /)

Create an object from its JSON representation.

summary()

Return a custom summarization of the constraint.

to_botorch(parameters[, idx_offset, ...])

Cast the constraint in a format required by botorch.

to_dict()

Create an object's dictionary representation.

to_json([sink, overwrite])

Create an object's JSON representation.

Public attributes and properties

operator

Defines the operator used in the equation.

coefficients

In-/equality coefficient for each entry in parameters.

rhs

Right-hand side value of the in-/equality.

is_interpoint

Flag for defining an interpoint constraint.

eval_during_augmentation

Class variable encoding whether the constraint could be considered during data augmentation.

eval_during_creation

Class variable encoding whether the condition is evaluated during creation.

eval_during_modeling

Class variable encoding whether the condition is evaluated during modeling.

is_continuous

Boolean indicating if this is a constraint over continuous parameters.

is_discrete

Boolean indicating if this is a constraint over discrete parameters.

is_eq

Whether this constraint models an equality (assumed inequality otherwise).

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], operator: str, coefficients=NOTHING, rhs=0.0, interpoint: bool = False)

Method generated by attrs for class ContinuousLinearConstraint.

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 (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:

_T

Returns:

The reconstructed object.

summary()

Return a custom summarization of the constraint.

Return type:

dict

to_botorch(parameters: Iterable[NumericalContinuousParameter], idx_offset: int = 0, *, batch_size: int | None = None, flatten: bool = False)[source]

Cast the constraint in a format required by botorch.

Used in calling optimize_acqf_* functions, for details see botorch.optim.optimize.optimize_acqf()

Parameters:
  • parameters (Iterable[NumericalContinuousParameter]) – The parameter objects of the continuous space.

  • idx_offset (int) – An offset added to the provided parameter indices. This is useful when the parameters are represented as part of a larger input tensor and do not start at index zero.

  • batch_size (int | None) – The batch size used for the recommendation. Necessary for interpoint constraints and flattened representation, where the indices need to be created for all elements of the batch.

  • flatten (bool) – If True, the constraint is returned in a “flattened” format, where each element of the batch is assumed to be represented via its own dimension in an augmented input tensor. This is useful for routines that do not natively support batch dimensions, such as botorch.utils.sampling.get_polytope_samples().

Raises:

ValueError – When a batch size is provided but not required, or vice versa.

Return type:

list[ConstraintTuple]

Returns:

A collection of tuples representing the constraint in BoTorch format.

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 (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.

coefficients: tuple[float, ...]

In-/equality coefficient for each entry in parameters.

eval_during_augmentation: ClassVar[bool] = False

Class variable encoding whether the constraint could be considered during data augmentation.

eval_during_creation: ClassVar[bool] = False

Class variable encoding whether the condition is evaluated during creation.

eval_during_modeling: ClassVar[bool] = True

Class variable encoding whether the condition is evaluated during modeling.

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.

property is_eq

Whether this constraint models an equality (assumed inequality otherwise).

is_interpoint: bool

Flag for defining an interpoint constraint.

While intrapoint constraints impose conditions on each individual point of a batch, interpoint constraints do so across the points of the batch. That is, an interpoint constraint of the form x <= 100 encodes that the sum of the values of the parameter x across all points in the batch must be less than or equal to 100.

numerical_only: ClassVar[bool] = True

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

operator: str

Defines the operator used in the equation. Internally this will negate rhs and coefficients for <=.

parameters: list[str]

The list of parameters used for the constraint.

rhs: float

Right-hand side value of the in-/equality.