Google OR-Tools v9.11
a fast and portable software suite for combinatorial optimization
Loading...
Searching...
No Matches
operations_research::sat::AllIntervalsHelper Class Reference

#include <disjunctive.h>

Inheritance diagram for operations_research::sat::AllIntervalsHelper:
operations_research::sat::SchedulingConstraintHelper operations_research::sat::PropagatorInterface

Public Member Functions

 AllIntervalsHelper (Model *model)
 
- Public Member Functions inherited from operations_research::sat::SchedulingConstraintHelper
 SchedulingConstraintHelper (const std::vector< IntervalVariable > &tasks, Model *model)
 
 SchedulingConstraintHelper (int num_tasks, Model *model)
 
bool Propagate () final
 
bool IncrementalPropagate (const std::vector< int > &watch_indices) final
 
void RegisterWith (GenericLiteralWatcher *watcher)
 
ABSL_MUST_USE_RESULT bool ResetFromSubset (const SchedulingConstraintHelper &other, absl::Span< const int > tasks)
 
int NumTasks () const
 Returns the number of task.
 
void SetTimeDirection (bool is_forward)
 
bool CurrentTimeIsForward () const
 
ABSL_MUST_USE_RESULT bool SynchronizeAndSetTimeDirection (bool is_forward)
 
IntegerValue SizeMin (int t) const
 
IntegerValue SizeMax (int t) const
 
IntegerValue StartMin (int t) const
 
IntegerValue EndMin (int t) const
 
IntegerValue StartMax (int t) const
 
IntegerValue EndMax (int t) const
 
IntegerValue LevelZeroStartMin (int t) const
 
IntegerValue LevelZeroStartMax (int t) const
 
IntegerValue LevelZeroEndMax (int t) const
 
IntegerValue ShiftedStartMin (int t) const
 
IntegerValue ShiftedEndMax (int t) const
 
bool StartIsFixed (int t) const
 
bool EndIsFixed (int t) const
 
bool SizeIsFixed (int t) const
 
bool IsOptional (int t) const
 
bool IsPresent (int t) const
 
bool IsAbsent (int t) const
 
bool IsOptional (LiteralIndex lit) const
 Same if one already have the presence LiteralIndex of a task.
 
bool IsPresent (LiteralIndex lit) const
 
bool IsAbsent (LiteralIndex lit) const
 
IntegerValue GetCurrentMinDistanceBetweenTasks (int a, int b, bool add_reason_if_after=false)
 
bool PropagatePrecedence (int a, int b)
 
IntegerValue GetMinOverlap (int t, IntegerValue start, IntegerValue end) const
 
std::string TaskDebugString (int t) const
 Returns a string with the current task bounds.
 
absl::Span< const TaskTimeTaskByIncreasingStartMin ()
 
absl::Span< const TaskTimeTaskByDecreasingEndMax ()
 
absl::Span< const TaskTimeTaskByIncreasingNegatedStartMax ()
 
absl::Span< const TaskTimeTaskByIncreasingEndMin ()
 
absl::Span< const CachedTaskBoundsTaskByIncreasingShiftedStartMin ()
 
const std::vector< ProfileEvent > & GetEnergyProfile ()
 
void ClearReason ()
 Functions to clear and then set the current reason.
 
void AddPresenceReason (int t)
 
void AddAbsenceReason (int t)
 
void AddSizeMinReason (int t)
 
void AddSizeMinReason (int t, IntegerValue lower_bound)
 
void AddSizeMaxReason (int t, IntegerValue upper_bound)
 
void AddStartMinReason (int t, IntegerValue lower_bound)
 
void AddStartMaxReason (int t, IntegerValue upper_bound)
 
void AddEndMinReason (int t, IntegerValue lower_bound)
 
void AddEndMaxReason (int t, IntegerValue upper_bound)
 
void AddShiftedEndMaxReason (int t, IntegerValue upper_bound)
 
void AddEnergyAfterReason (int t, IntegerValue energy_min, IntegerValue time)
 
void AddEnergyMinInIntervalReason (int t, IntegerValue min, IntegerValue max)
 
void AddReasonForBeingBefore (int before, int after)
 Produces a relaxed reason for StartMax(before) < EndMin(after).
 
std::vector< Literal > * MutableLiteralReason ()
 
std::vector< IntegerLiteral > * MutableIntegerReason ()
 
ABSL_MUST_USE_RESULT bool IncreaseStartMin (int t, IntegerValue value)
 
ABSL_MUST_USE_RESULT bool IncreaseEndMin (int t, IntegerValue value)
 
ABSL_MUST_USE_RESULT bool DecreaseEndMax (int t, IntegerValue value)
 
ABSL_MUST_USE_RESULT bool PushLiteral (Literal l)
 
ABSL_MUST_USE_RESULT bool PushTaskAbsence (int t)
 
ABSL_MUST_USE_RESULT bool PushTaskPresence (int t)
 
ABSL_MUST_USE_RESULT bool PushIntegerLiteral (IntegerLiteral lit)
 
ABSL_MUST_USE_RESULT bool ReportConflict ()
 
ABSL_MUST_USE_RESULT bool PushIntegerLiteralIfTaskPresent (int t, IntegerLiteral lit)
 
absl::Span< const IntervalVariable > IntervalVariables () const
 Returns the underlying affine expressions.
 
absl::Span< const AffineExpressionStarts () const
 
absl::Span< const AffineExpressionEnds () const
 
absl::Span< const AffineExpressionSizes () const
 
Literal PresenceLiteral (int index) const
 
void WatchAllTasks (int id, bool watch_max_side=true)
 
void SetOtherHelper (SchedulingConstraintHelper *other_helper, absl::Span< const int > map_to_other_helper, IntegerValue event)
 
bool HasOtherHelper () const
 
void ClearOtherHelper ()
 
void ImportOtherReasons (const SchedulingConstraintHelper &other_helper)
 
bool InPropagationLoop () const
 
int CurrentDecisionLevel () const
 
- Public Member Functions inherited from operations_research::sat::PropagatorInterface
 PropagatorInterface ()=default
 
virtual ~PropagatorInterface ()=default
 

Detailed Description

Singleton model class which is just a SchedulingConstraintHelper will all the intervals.

Definition at line 260 of file disjunctive.h.

Constructor & Destructor Documentation

◆ AllIntervalsHelper()

operations_research::sat::AllIntervalsHelper::AllIntervalsHelper ( Model * model)
inlineexplicit

Definition at line 262 of file disjunctive.h.


The documentation for this class was generated from the following file: