14 #ifndef OR_TOOLS_SAT_CUMULATIVE_ENERGY_H_
15 #define OR_TOOLS_SAT_CUMULATIVE_ENERGY_H_
44 SchedulingConstraintHelper* helper,
45 SchedulingDemandHelper* demands,
67 std::vector<int> task_to_start_event_;
70 std::vector<TaskTime> start_event_task_time_;
71 std::vector<bool> start_event_is_present_;
84 const std::vector<int>& subtasks,
85 const std::vector<IntegerValue>& offsets,
94 const IntegerVariable var_to_push_;
96 const std::vector<int> subtasks_;
99 std::vector<bool> is_in_subtasks_;
100 std::vector<IntegerValue> task_offsets_;
104 std::vector<std::pair<IntegerValue, IntegerValue>> energy_changes_;
CumulativeEnergyConstraint(AffineExpression capacity, SchedulingConstraintHelper *helper, SchedulingDemandHelper *demands, Model *model)
void RegisterWith(GenericLiteralWatcher *watcher)
CumulativeIsAfterSubsetConstraint(IntegerVariable var, AffineExpression capacity, const std::vector< int > &subtasks, const std::vector< IntegerValue > &offsets, SchedulingConstraintHelper *helper, SchedulingDemandHelper *demands, Model *model)
void RegisterWith(GenericLiteralWatcher *watcher)
Class that owns everything related to a particular optimization model.
void AddCumulativeOverloadChecker(AffineExpression capacity, SchedulingConstraintHelper *helper, SchedulingDemandHelper *demands, Model *model)
Collection of objects used to extend the Constraint Solver library.