lumix.solvers.glpk_solver.LXGLPKSolver¶
- class lumix.solvers.glpk_solver.LXGLPKSolver[source]¶
GLPK (GNU Linear Programming Kit) solver implementation for LumiX.
Supports: - Linear Programming (LP) - Mixed-Integer Linear Programming (MILP) - Binary and Integer variables - Single and indexed variable families - Single and indexed constraint families - Multi-model expressions - Sensitivity analysis (dual values, reduced costs)
TODO: Future improvements: - Warm start from previous solution (if GLPK adds support) - Advanced solver parameters passthrough - Interior point method options - Branch-and-cut callback support
Methods
__init__()Initialize GLPK solver.
build_model(model)Build GLPK native model from LXModel.
Get underlying GLPK model for advanced usage.
solve(model[, time_limit, gap_tolerance, ...])Solve optimization model with GLPK.
- build_model(model)[source]¶
Build GLPK native model from LXModel.
- Parameters:
model (
LXModel) – LumiX model to build- Return type:
- Returns:
GLPK problem pointer
- 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 GLPK.
- 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)enable_sensitivity (
bool) – Enable sensitivity analysis**solver_params (
Any) – Additional GLPK-specific parameters Examples: - msg_lev: Message level (glpk.GLP_MSG_OFF, GLP_MSG_ERR, GLP_MSG_ON, GLP_MSG_ALL) - presolve: Enable presolve (True/False) - method: LP method (glpk.GLP_PRIMAL, GLP_DUAL, GLP_DUALP)
- Return type:
- Returns:
Solution object with results
- get_solver_model()[source]¶
Get underlying GLPK model for advanced usage.
- Return type:
- Returns:
GLPK problem pointer
- Raises:
RuntimeError – If model hasn’t been built yet
Examples
# Access GLPK model for advanced features glpk_model = solver.get_solver_model() glpk.glp_set_obj_name(glpk_model, “MyObjective”)