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