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
Methods
__init__()Initialize Gurobi solver.
build_model(model)Build Gurobi native model from LXModel.
Get underlying Gurobi model for advanced usage.
solve(model[, time_limit, gap_tolerance, ...])Solve optimization model with Gurobi.
- 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 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 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:
- 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