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. Construction raises ValueError when the kind discriminator is unknown or the requested bound cannot be normalized for the selected variable kind.
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: ScalarLike | LinearLike | Parameter) Linear#
- __add__(rhs: Quadratic) Quadratic
- __add__(rhs: Polynomial) Polynomial
- __add__(rhs: Function) Function
- __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: ScalarLike) Linear#
- __mul__(rhs: LinearLike | Parameter) Quadratic
- __mul__(rhs: Quadratic | Polynomial) Polynomial
- __mul__(rhs: Function) Function
- __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: ScalarLike | LinearLike | Parameter) Linear#
- __radd__(lhs: Quadratic) Quadratic
- __radd__(lhs: Polynomial) Polynomial
- __radd__(lhs: Function) Function
- __repr__() str#
- __rmul__(lhs: ScalarLike) Linear#
- __rmul__(lhs: LinearLike | Parameter) Quadratic
- __rmul__(lhs: Quadratic | Polynomial) Polynomial
- __rmul__(lhs: Function) Function
- __rsub__(lhs: ScalarLike | LinearLike | Parameter) Linear#
- __rsub__(lhs: Quadratic) Quadratic
- __rsub__(lhs: Polynomial) Polynomial
- __rsub__(lhs: Function) Function
- __sub__(rhs: ScalarLike | LinearLike | Parameter) Linear#
- __sub__(rhs: Quadratic) Quadratic
- __sub__(rhs: Polynomial) Polynomial
- __sub__(rhs: Function) Function
- 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.
- 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#
- 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.