lumix.solvers.cplex_solver.LXCPLEXSolver¶
- class lumix.solvers.cplex_solver.LXCPLEXSolver[source]¶
CPLEX solver implementation for LumiX.
Supports: - Linear Programming (LP) - Mixed-Integer Programming (MIP) - Binary variables - Single and indexed variable families - Single and indexed constraint families - Multi-model expressions
TODO: Future improvements: - Quadratic objective support (when library adds support) - SOCP support (when library adds support) - Warm start from previous solution - Sensitivity analysis (dual values, reduced costs) - Solution pool for MIP problems - Lazy constraint callbacks - User cut callbacks - IIS computation for infeasible models - Conflict refinement - SOS1/SOS2 constraints - Indicator constraints - Piecewise linear functions
Methods
__init__()Initialize CPLEX solver.
build_model(model)Build CPLEX native model from LXModel.
Get underlying CPLEX model for advanced usage.
solve(model[, time_limit, gap_tolerance, ...])Solve optimization model with CPLEX.
- build_model(model)[source]¶
Build CPLEX native model from LXModel.
- Parameters:
model (
LXModel) – LumiX model to build- Return type:
- Returns:
CPLEX Cplex instance
- Raises:
ValueError – If model contains unsupported features
- solve(model, time_limit=None, gap_tolerance=None, enable_sensitivity=False, **solver_params)[source]¶
Solve optimization model with CPLEX.
- Parameters:
model (
LXModel) – LumiX model to solvetime_limit (
Optional[float]) – Time limit in seconds (None = no limit)gap_tolerance (
Optional[float]) – MIP gap tolerance (None = solver default, typically 0.0001)**solver_params (Any) – Additional CPLEX-specific parameters Examples: - threads: Number of parallel threads (int) - mip_emphasis: MIP emphasis (0=balanced, 1=feasibility, 2=optimality, 3=bound, 4=hidden) - preprocessing_presolve: Presolve level (0=off, 1=on) - lpmethod: Algorithm for LP (0=auto, 1=primal, 2=dual, 3=network, 4=barrier) - output_clonelog: Show solver output (0=off, 1=on)
enable_sensitivity (bool)
**solver_params
- Return type:
- Returns:
Solution object with results
- TODO: Add support for additional features:
Warm start from previous solution
Solution pool for MIP
Callback functions
- get_solver_model()[source]¶
Get underlying CPLEX model for advanced usage.
- Return type:
- Returns:
CPLEX Cplex instance
- Raises:
RuntimeError – If model hasn’t been built yet
Examples
# Access CPLEX model for advanced features cplex_model = solver.get_solver_model() cplex_model.parameters.threads.set(4) # Set thread count cplex_model.parameters.timelimit.set(300) # Set time limit