Constraint ¶
A symbolic constraint formed by comparing an expression to a constant.
A Constraint captures a relation of the form: expression comparator constant, where the comparator is one of: ==, <=, or >=.
While constraints are usually created by comparing an Expression to a scalar (e.g., expr == 3.0), they can also be constructed manually using this class.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
lhs | Expression | The left-hand side expression. | required |
rhs | float | The scalar right-hand side value. | required |
comparator | Comparator | The relation between lhs and rhs (e.g., | required |
Examples:
>>> from luna_quantum import Environment, Variable, Constraint, Comparator
>>> with Environment():
... x = Variable("x")
... c = Constraint(x + 2, 5.0, Comparator.Eq)
Or create via comparison:
comparator property ¶
comparator: Comparator
Get the comparator of the constraint
Returns:
| Type | Description |
|---|---|
Comparator | The comparator of the constraint. |
lhs property ¶
lhs: Expression
Get the left-hand side of the constraint
Returns:
| Type | Description |
|---|---|
Expression | The left-hand side expression. |
name property ¶
Get the name of the constraint.
Returns:
| Type | Description |
|---|---|
(str, optional) | Returns the name of the constraint as a string or None if it is unnamed. |
rhs property ¶
Get the right-hand side of the constraint
Returns:
| Type | Description |
|---|---|
float | The right-hand side expression. |
__init__ ¶
__init__(lhs: Expression, rhs: Expression, comparator: Comparator) -> None
__init__(lhs: Expression, rhs: Variable, comparator: Comparator) -> None
__init__(lhs: Expression, rhs: int, comparator: Comparator) -> None
__init__(lhs: Expression, rhs: float, comparator: Comparator) -> None
__init__(
lhs: Expression, rhs: Expression, comparator: Comparator, name: str
) -> None
__init__(
lhs: Expression, rhs: Variable, comparator: Comparator, name: str
) -> None
__init__(lhs: Expression, rhs: int, comparator: Comparator, name: str) -> None
__init__(
lhs: Expression, rhs: float, comparator: Comparator, name: str
) -> None
__init__(lhs: Variable, rhs: Expression, comparator: Comparator) -> None
__init__(lhs: Variable, rhs: Variable, comparator: Comparator) -> None
__init__(lhs: Variable, rhs: int, comparator: Comparator) -> None
__init__(lhs: Variable, rhs: float, comparator: Comparator) -> None
__init__(
lhs: Variable, rhs: Expression, comparator: Comparator, name: str
) -> None
__init__(
lhs: Variable, rhs: Variable, comparator: Comparator, name: str
) -> None
__init__(lhs: Variable, rhs: int, comparator: Comparator, name: str) -> None
__init__(lhs: Variable, rhs: float, comparator: Comparator, name: str) -> None
__init__(
lhs: Variable | Expression,
rhs: int | float | Expression | Variable,
comparator: Comparator,
name: str,
) -> None
Construct a new symbolic constraint.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
lhs | Expression | Variable | Left-hand side symbolic expression or variable. | required |
rhs | int | float | Expression | Variable | Scalar right-hand side constant. | required |
comparator | Comparator | Relational operator (e.g., Comparator.Eq, Comparator.Le). | required |
name | str | The name of the constraint | required |
Raises:
| Type | Description |
|---|---|
TypeError | If lhs is not an Expression or rhs is not a scalar float. |
IllegalConstraintNameError | If the constraint is tried to be created with an illegal name. |