Linearization constraint
LinearizationConstraint
¶
Bases: Constraint
Implements the linearization from Section 5.1 of the paper, which replaces the cubic term with binary variables:
\[X_{ijkl}^z \;\widehat{=}\; y_{ij}^z \cdot x_{ik} \cdot x_{jl}\]
Used in both PS-HLP and PPC-HLP .
Requires:
- [AllocationVariable][bilevelpy.models.vars.hlp_vars.AllocationVariable]
- ClientDecisionVariable
- LinearXYVariable
build(model, **kwargs)
¶
Adds the following constraints to the model:
\[y_{ij}^z = \sum_{k \in V} \sum_{l \in V}
X_{ijkm}^z \quad \forall i,j \in V, z \in \Gamma_{ij}\]
\[\sum_{l \in V} X_{ijkm}^z \leq x_{ik}
\quad \forall i,j,k \in V, z \in \Gamma_{ij}\]
\[\sum_{k \in V} X_{ijkm}^z \leq x_{jl}
\quad \forall i,j,l \in V, z \in \Gamma_{ij}\]