lumix.solvers.gurobi_solver.LXGurobiSolver

class lumix.solvers.gurobi_solver.LXGurobiSolver[source]

Gurobi 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

__init__()[source]

Initialize Gurobi solver.

Return type:

None

Methods

__init__()

Initialize Gurobi solver.

build_model(model)

Build Gurobi native model from LXModel.

get_solver_model()

Get underlying Gurobi model for advanced usage.

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

Solve optimization model with Gurobi.

__init__()[source]

Initialize Gurobi solver.

Return type:

None

build_model(model)[source]

Build Gurobi native model from LXModel.

Parameters:

model – LumiX model to build

Returns:

Gurobi Model instance

Raises:

ValueError – If model contains unsupported features

Return type:

gp.Model

solve(model, time_limit=None, gap_tolerance=None, enable_sensitivity=False, **solver_params)[source]

Solve optimization model with Gurobi.

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 Gurobi-specific parameters Examples: - Threads: Number of parallel threads (int) - MIPFocus: MIP focus (1=feasibility, 2=optimality, 3=bound) - Presolve: Presolve level (-1=auto, 0=off, 1=conservative, 2=aggressive) - Method: Algorithm for continuous models (-1=auto, 0=primal, 1=dual, 2=barrier) - LogToConsole: 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 Gurobi model for advanced usage.

Returns:

Gurobi Model instance

Raises:

RuntimeError – If model hasn’t been built yet

Return type:

gp.Model

Examples

# Access Gurobi model for advanced features gurobi_model = solver.get_solver_model() gurobi_model.setParam(GRB.Param.OutputFlag, 1) # Enable output gurobi_model.setParam(GRB.Param.Threads, 4) # Set thread count