lumix.goal_programming.solver.solve_goal_programming

lumix.goal_programming.solver.solve_goal_programming(model, optimizer, mode=LXGoalMode.WEIGHTED, **solver_params)[source]

High-level convenience function for goal programming.

Parameters:
  • model (LXModel[TypeVar(TModel)]) – LXModel with goal constraints (marked with .as_goal())

  • optimizer (LXOptimizer) – Configured optimizer

  • mode (LXGoalMode) – Goal programming mode (WEIGHTED or SEQUENTIAL)

  • **solver_params (Any) – Additional solver parameters

Return type:

LXSolution[TypeVar(TModel)]

Returns:

Solution based on selected mode

Example

>>> model = LXModel("production")
>>> model.add_constraint(
...     LXConstraint("demand_goal")
...     .expression(production_expr)
...     .ge()
...     .rhs(1000)
...     .as_goal(priority=1, weight=1.0)
... )
>>> optimizer = LXOptimizer().use_solver("gurobi")
>>> solution = solve_goal_programming(model, optimizer, mode=LXGoalMode.WEIGHTED)