OR-Tools  9.3
scheduling_cuts.cc File Reference

Go to the source code of this file.

Classes

struct  EnergyEvent
 
struct  PrecedenceEvent
 
struct  CtEvent
 

Namespaces

namespace  operations_research
 Collection of objects used to extend the Constraint Solver library.
 
namespace  operations_research::sat
 

Functions

void GenerateEnergeticCuts (const std::string &cut_name, const absl::StrongVector< IntegerVariable, double > &lp_values, std::vector< EnergyEvent > events, const AffineExpression capacity, bool events_are_2d, Model *model, LinearConstraintManager *manager)
 
void AppendVariablesToCumulativeCut (const AffineExpression &capacity, const std::vector< AffineExpression > &demands, IntegerTrail *integer_trail, CutGenerator *result)
 
double ComputeEnergyLp (const EnergyEvent &e, const absl::StrongVector< IntegerVariable, double > &lp_values, IntegerTrail *integer_trail)
 
CutGenerator CreateCumulativeEnergyCutGenerator (const std::vector< IntervalVariable > &intervals, const AffineExpression &capacity, const std::vector< AffineExpression > &demands, const std::vector< LinearExpression > &energies, Model *model)
 
CutGenerator CreateNoOverlapEnergyCutGenerator (const std::vector< IntervalVariable > &intervals, Model *model)
 
void GenerateNoOverlap2dEnergyCut (const std::vector< LinearExpression > &energies, absl::Span< int > rectangles, const std::string &cut_name, const absl::StrongVector< IntegerVariable, double > &lp_values, Model *model, IntegerTrail *integer_trail, IntegerEncoder *encoder, LinearConstraintManager *manager, SchedulingConstraintHelper *x_helper, SchedulingConstraintHelper *y_helper)
 
CutGenerator CreateNoOverlap2dEnergyCutGenerator (const std::vector< IntervalVariable > &x_intervals, const std::vector< IntervalVariable > &y_intervals, Model *model)
 
CutGenerator CreateCumulativeTimeTableCutGenerator (const std::vector< IntervalVariable > &intervals, const AffineExpression &capacity, const std::vector< AffineExpression > &demands, Model *model)
 
void GeneratePrecedenceCuts (const std::string &cut_name, const absl::StrongVector< IntegerVariable, double > &lp_values, std::vector< PrecedenceEvent > events, IntegerValue capacity_max, Model *model, LinearConstraintManager *manager)
 
CutGenerator CreateCumulativePrecedenceCutGenerator (const std::vector< IntervalVariable > &intervals, const AffineExpression &capacity, const std::vector< AffineExpression > &demands, Model *model)
 
CutGenerator CreateNoOverlapPrecedenceCutGenerator (const std::vector< IntervalVariable > &intervals, Model *model)
 
void GenerateCompletionTimeCuts (const std::string &cut_name, const absl::StrongVector< IntegerVariable, double > &lp_values, std::vector< CtEvent > events, bool use_lifting, Model *model, LinearConstraintManager *manager)
 
CutGenerator CreateNoOverlapCompletionTimeCutGenerator (const std::vector< IntervalVariable > &intervals, Model *model)
 
CutGenerator CreateCumulativeCompletionTimeCutGenerator (const std::vector< IntervalVariable > &intervals, const AffineExpression &capacity, const std::vector< AffineExpression > &demands, const std::vector< LinearExpression > &energies, Model *model)
 
CutGenerator CreateNoOverlap2dCompletionTimeCutGenerator (const std::vector< IntervalVariable > &x_intervals, const std::vector< IntervalVariable > &y_intervals, Model *model)