DecisionVariable

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#
__deepcopy__(_memo: Any) 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.

property substituted_value: Optional[float]#

Read-only property.