DecisionVariable#
- class DecisionVariable#
Decision variable in an optimization problem.
This class represents a variable that will be optimized in a mathematical programming problem. It supports various types (binary, integer, continuous, semi-integer, semi-continuous) and can be used in arithmetic expressions to build objective functions and constraints.
Note that this object overloads
==for creating a constraint, not for equality comparison.Examples#
>>> x = DecisionVariable.integer(1) >>> x == 1 # Returns Constraint, not bool Constraint(...)
For object equality comparison, use the
equals_to()method or compare IDs:>>> y = DecisionVariable.integer(2) >>> x.id == y.id False
- __add__(rhs: int | float | DecisionVariable | Parameter | Linear) Linear#
- __add__(rhs: Quadratic) Quadratic
- __add__(rhs: Polynomial) Polynomial
- __copy__() DecisionVariable#
- __eq__(other: ToFunction) Constraint#
Create an equality constraint: self == other → Constraint with EqualToZero
- __ge__(other: ToFunction) Constraint#
Create a greater-than-or-equal constraint: self >= other → Constraint
- __le__(other: ToFunction) Constraint#
Create a less-than-or-equal constraint: self <= other → Constraint
- __mul__(rhs: int | float) Linear#
- __mul__(rhs: DecisionVariable | Parameter | Linear) Quadratic
- __mul__(rhs: Quadratic | Polynomial) Polynomial
- __neg__() Linear#
Negation operator: -x → Linear(-1 * x)
- __new__(id: int, kind: int, bound: Bound, name: Optional[str] = None, subscripts: Sequence[int] = [], parameters: Mapping[str, str] = {}, description: Optional[str] = None) DecisionVariable#
- __radd__(lhs: int | float | DecisionVariable | Parameter | Linear) Linear#
- __radd__(lhs: Quadratic) Quadratic
- __radd__(lhs: Polynomial) Polynomial
- __repr__() str#
- __rmul__(lhs: int | float) Linear#
- __rmul__(lhs: DecisionVariable | Parameter | Linear) Quadratic
- __rmul__(lhs: Quadratic | Polynomial) Polynomial
- __rsub__(lhs: int | float | DecisionVariable | Parameter | Linear) Linear#
- __rsub__(lhs: Quadratic) Quadratic
- __rsub__(lhs: Polynomial) Polynomial
- __sub__(rhs: int | float | DecisionVariable | Parameter | Linear) Linear#
- __sub__(rhs: Quadratic) Quadratic
- __sub__(rhs: Polynomial) Polynomial
- binary(id: int, name: Optional[str] = None, subscripts: Sequence[int] = [], parameters: Mapping[str, str] = {}, description: Optional[str] = None) DecisionVariable#
- continuous(id: int, lower: float = float('-inf'), upper: float = float('inf'), name: Optional[str] = None, subscripts: Sequence[int] = [], parameters: Mapping[str, str] = {}, description: Optional[str] = None) DecisionVariable#
- equals_to(other: DecisionVariable) bool#
Compare two DecisionVariable objects for equality.
This is different from
__eq__which creates a Constraint. Use this method when you want to check if two variables represent the same variable.
- from_bytes(bytes: bytes) DecisionVariable#
- integer(id: int, lower: float = float('-inf'), upper: float = float('inf'), name: Optional[str] = None, subscripts: Sequence[int] = [], parameters: Mapping[str, str] = {}, description: Optional[str] = None) DecisionVariable#
- semi_continuous(id: int, lower: float = float('-inf'), upper: float = float('inf'), name: Optional[str] = None, subscripts: Sequence[int] = [], parameters: Mapping[str, str] = {}, description: Optional[str] = None) DecisionVariable#
- semi_integer(id: int, lower: float = float('-inf'), upper: float = float('inf'), name: Optional[str] = None, subscripts: Sequence[int] = [], parameters: Mapping[str, str] = {}, description: Optional[str] = None) DecisionVariable#
- to_bytes() bytes#
- BINARY: int#
- CONTINUOUS: int#
- INTEGER: int#
- SEMI_CONTINUOUS: int#
- SEMI_INTEGER: int#
- property bound: Bound#
Read-only property.
- property description: str#
Read-only property.
- property id: int#
Read-only property.
- property kind: int#
Read-only property.
- property name: str#
Read-only property.
- property parameters: dict[str, str]#
Read-only property.
- property subscripts: list[int]#
Read-only property.