lumix.solvers.ortools_solver.LXORToolsSolver

class lumix.solvers.ortools_solver.LXORToolsSolver[source]

OR-Tools 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 (if OR-Tools adds support) - SOS1/SOS2 constraints (native OR-Tools support available) - Indicator constraints (native OR-Tools support available) - Warm start from previous solution - Sensitivity analysis (dual values, reduced costs) - Parallel solving with threads parameter - Advanced solver parameters passthrough - Solution pool for MIP problems - Custom branching priorities - Lazy constraint callbacks (if OR-Tools adds support)

__init__()[source]

Initialize OR-Tools solver.

Return type:

None

Methods

__init__()

Initialize OR-Tools solver.

build_model(model)

Build OR-Tools native model from LXModel.

get_solver_model()

Get underlying OR-Tools solver for advanced usage.

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

Solve optimization model with OR-Tools.

__init__()[source]

Initialize OR-Tools solver.

Return type:

None

build_model(model)[source]

Build OR-Tools native model from LXModel.

Parameters:

model (LXModel) – LumiX model to build

Return type:

Solver

Returns:

OR-Tools Solver 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 OR-Tools.

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)

  • **solver_params (Any) – Additional solver-specific parameters

  • enable_sensitivity (bool)

  • **solver_params

Return type:

LXSolution

Returns:

Solution object with results

TODO: Add support for additional parameters:
  • threads: Number of parallel threads

  • presolve: Enable/disable presolve

  • log_level: Logging verbosity

  • solution_pool_size: Number of solutions to keep (MIP)

get_solver_model()[source]

Get underlying OR-Tools solver for advanced usage.

Return type:

Solver

Returns:

OR-Tools Solver instance

Raises:

RuntimeError – If model hasn’t been built yet

Examples

# Access OR-Tools solver for advanced features solver = ortools_solver.get_solver_model() solver.EnableOutput() # Enable solver output solver.SetNumThreads(4) # Set thread count