lumix.linearization.engine.LXLinearizer¶
- class lumix.linearization.engine.LXLinearizer(model, solver_capability, config=None)[source]¶
Automatic linearization engine.
Transforms nonlinear expressions into linear equivalents by: - Detecting nonlinear terms in model - Checking solver capabilities - Applying appropriate linearization techniques - Adding auxiliary variables and constraints
Example
linearizer = LXLinearizer(model, solver_capability, config)
- if linearizer.needs_linearization():
linearized_model = linearizer.linearize_model()
- Parameters:
model (LXModel)
solver_capability (LXSolverCapability)
config (LXLinearizerConfig | None)
- __init__(model, solver_capability, config=None)[source]¶
Initialize linearization engine.
- Parameters:
model (
LXModel) – Model to linearizesolver_capability (
LXSolverCapability) – Solver capability informationconfig (
Optional[LXLinearizerConfig]) – Linearization configuration (default: LXLinearizerConfig())
Methods
__init__(model, solver_capability[, config])Initialize linearization engine.
Get linearization statistics.
Linearize the entire model.
Check if model contains nonlinear terms requiring linearization.
- __init__(model, solver_capability, config=None)[source]¶
Initialize linearization engine.
- Parameters:
model (
LXModel) – Model to linearizesolver_capability (
LXSolverCapability) – Solver capability informationconfig (
Optional[LXLinearizerConfig]) – Linearization configuration (default: LXLinearizerConfig())
- needs_linearization()[source]¶
Check if model contains nonlinear terms requiring linearization.
- Return type:
- Returns:
True if linearization is needed
- linearize_model()[source]¶
Linearize the entire model.
Creates a new model with: - All original variables and constraints - Auxiliary variables for linearized terms - Auxiliary constraints for linearization
- Return type:
- Returns:
Linearized model
Example
linearized = linearizer.linearize_model() solution = solver.solve(linearized)