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

__init__()[source]

Initialize GLPK solver.

Return type:

None

Methods

__init__()

Initialize GLPK solver.

build_model(model)

Build GLPK native model from LXModel.

get_solver_model()

Get underlying GLPK model for advanced usage.

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

Solve optimization model with GLPK.

__init__()[source]

Initialize GLPK solver.

Return type:

None

build_model(model)[source]

Build GLPK native model from LXModel.

Parameters:

model (LXModel) – LumiX model to build

Return type:

Any

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 solve

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

LXSolution

Returns:

Solution object with results

get_solver_model()[source]

Get underlying GLPK model for advanced usage.

Return type:

Any

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”)