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

__init__()[source]

Initialize CPLEX solver.

Return type:

None

Methods

__init__()

Initialize CPLEX solver.

build_model(model)

Build CPLEX native model from LXModel.

get_solver_model()

Get underlying CPLEX model for advanced usage.

solve(model[, time_limit, gap_tolerance, ...])

Solve optimization model with CPLEX.

__init__()[source]

Initialize CPLEX solver.

Return type:

None

build_model(model)[source]

Build CPLEX native model from LXModel.

Parameters:

model (LXModel) – LumiX model to build

Return type:

None

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 solve

  • time_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:

LXSolution

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:

None

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