Recursive linearization constraint
RecursiveLinearizationConstraint
¶
Bases: Constraint
Recursive (merged-client) linearization for the PC-HLP model.
Reproduces the cubic term:
\[X_{ijkl}^z \;\widehat{=}\; y_{ij}^z \cdot x_{ik} \cdot x_{jl}\]
Same structure as LinearizationConstraint
but operates on aggregated client keys from
BilevelDataCol.CLIENT_KEY.
Requires:
- [AllocationVariable][bilevelpy.models.vars.hlp_vars.AllocationVariable]
- RecursiveClientDecisionVariable
- RecursiveLinearXYVariable
build(model, **kwargs)
¶
Adds the following constraint to the model:
\[y_{ij}^z = \sum_{k,l \in V} X_{ijkm}^z \quad \forall (i,j,z) \in K\]
\[\sum_{l} X_{ijkm}^z \leq x_{ik} \quad \sum_{k} X_{ijkm}^z \leq x_{jl}\]