lumix.goal_programming.relaxation.RelaxedConstraint

class lumix.goal_programming.relaxation.RelaxedConstraint(constraint, pos_deviation, neg_deviation, goal_metadata, goal_instances)[source]

Result of relaxing a constraint for goal programming.

Contains the relaxed constraint (now an equality with deviation variables), the deviation variables themselves, and the goal instances that serve as the data source for deviation variables.

Parameters:
__init__(constraint, pos_deviation, neg_deviation, goal_metadata, goal_instances)[source]

Initialize relaxed constraint.

Parameters:
  • constraint (LXConstraint[TypeVar(TModel)]) – The relaxed constraint (LHS + neg_dev - pos_dev == RHS)

  • pos_deviation (LXVariable[LXGoal, float]) – Positive deviation variable family (indexed by Goals)

  • neg_deviation (LXVariable[LXGoal, float]) – Negative deviation variable family (indexed by Goals)

  • goal_metadata (LXGoalMetadata) – Goal metadata (priority, weight, undesired deviations)

  • goal_instances (List[LXGoal]) – Goal instances serving as data source for deviations

Methods

__init__(constraint, pos_deviation, ...)

Initialize relaxed constraint.

get_undesired_variables()

Get list of undesired deviation variables to minimize.

__init__(constraint, pos_deviation, neg_deviation, goal_metadata, goal_instances)[source]

Initialize relaxed constraint.

Parameters:
  • constraint (LXConstraint[TypeVar(TModel)]) – The relaxed constraint (LHS + neg_dev - pos_dev == RHS)

  • pos_deviation (LXVariable[LXGoal, float]) – Positive deviation variable family (indexed by Goals)

  • neg_deviation (LXVariable[LXGoal, float]) – Negative deviation variable family (indexed by Goals)

  • goal_metadata (LXGoalMetadata) – Goal metadata (priority, weight, undesired deviations)

  • goal_instances (List[LXGoal]) – Goal instances serving as data source for deviations

__deepcopy__(memo)[source]

Custom deepcopy that handles constraint and deviation variables.

Parameters:

memo – Dictionary for tracking circular references during deepcopy

Returns:

Deep copy of this relaxed constraint

get_undesired_variables()[source]

Get list of undesired deviation variables to minimize.

Return type:

List[LXVariable[LXGoal, float]]

Returns:

List of deviation variables to include in objective