14#ifndef OR_TOOLS_SAT_DIFFN_CUTS_H_
15#define OR_TOOLS_SAT_DIFFN_CUTS_H_
31 SchedulingConstraintHelper* x_helper, SchedulingConstraintHelper* y_helper,
49 SchedulingConstraintHelper* x_helper, SchedulingConstraintHelper* y_helper,
50 SchedulingDemandHelper* x_demands_helper,
51 SchedulingDemandHelper* y_demands_helper,
52 const std::vector<std::vector<LiteralValueValue>>& energies, Model*
model);
67 IntegerValue
y_min = IntegerValue(0);
68 IntegerValue
y_max = IntegerValue(0);
CutGenerator CreateNoOverlap2dCompletionTimeCutGenerator(SchedulingConstraintHelper *x_helper, SchedulingConstraintHelper *y_helper, Model *model)
CutGenerator CreateNoOverlap2dEnergyCutGenerator(SchedulingConstraintHelper *x_helper, SchedulingConstraintHelper *y_helper, SchedulingDemandHelper *x_demands_helper, SchedulingDemandHelper *y_demands_helper, const std::vector< std::vector< LiteralValueValue > > &energies, Model *model)
In SWIG mode, we don't want anything besides these top-level includes.
Internal methods and data structures, useful for testing.
std::vector< LiteralValueValue > decomposed_energy
IntegerValue x_start_min
Cache of the intervals bound on the x direction.
IntegerValue y_min
Useful for no_overlap_2d or cumulative.
DiffnBaseEvent(int t, SchedulingConstraintHelper *x_helper)
IntegerValue energy_min
The energy min of this event.
std::string DebugString() const
DiffnCtEvent(int t, SchedulingConstraintHelper *x_helper)
AffineExpression x_end
The lp value of the end of the x interval.