lumix.goal_programming.objective_builder.build_sequential_objectives

lumix.goal_programming.objective_builder.build_sequential_objectives(relaxed_constraints)[source]

Build sequential objectives for lexicographic goal programming.

Creates one objective per priority level. These are solved sequentially: 1. Solve priority 1, record optimal deviation values 2. Fix priority 1 deviations, solve priority 2 3. Continue for all priorities

Parameters:

relaxed_constraints (List[RelaxedConstraint]) – List of relaxed constraints with deviation variables

Return type:

List[Tuple[int, LXLinearExpression]]

Returns:

List of (priority, objective_expression) tuples, sorted by priority

Example

>>> objectives = build_sequential_objectives(relaxed)
>>> # [(1, expr_p1), (2, expr_p2), (3, expr_p3)]
>>> # Solve P1 first, then P2, then P3