OR-Tools  9.6
IntVarFilteredHeuristicabstract

Detailed Description

Generic filter-based heuristic applied to IntVars.

Definition at line 171 of file routing_search.h.

Public Member Functions

 IntVarFilteredHeuristic (Solver *solver, const std::vector< IntVar * > &vars, const std::vector< IntVar * > &secondary_vars, LocalSearchFilterManager *filter_manager)
 
virtual ~IntVarFilteredHeuristic ()=default
 
Assignment *const BuildSolution ()
 Builds a solution. More...
 
int64_t number_of_decisions () const
 Returns statistics on search, number of decisions sent to filters, number of decisions rejected by filters. More...
 
int64_t number_of_rejects () const
 
virtual std::string DebugString () const
 

Protected Member Functions

void ResetSolution ()
 Resets the data members for a new solution. More...
 
virtual void Initialize ()
 Initialize the heuristic; called before starting to build a new solution. More...
 
virtual bool InitializeSolution ()
 Virtual method to initialize the solution. More...
 
virtual bool BuildSolutionInternal ()=0
 Virtual method to redefine how to build a solution. More...
 
std::optional< int64_t > Evaluate (bool commit)
 Evaluates the modifications to the current solution. More...
 
virtual bool StopSearch ()
 Returns true if the search must be stopped. More...
 
void SetValue (int64_t index, int64_t value)
 Modifies the current solution by setting the variable of index 'index' to value 'value'. More...
 
int64_t Value (int64_t index) const
 Returns the value of the variable of index 'index' in the last committed solution. More...
 
bool Contains (int64_t index) const
 Returns true if the variable of index 'index' is in the current solution. More...
 
int Size () const
 Returns the number of variables the decision builder is trying to instantiate. More...
 
IntVarVar (int64_t index) const
 Returns the variable of index 'index'. More...
 
int64_t SecondaryVarIndex (int64_t index) const
 Returns the index of a secondary var. More...
 
bool HasSecondaryVars () const
 Returns true if there are secondary variables. More...
 
bool IsSecondaryVar (int64_t index) const
 Returns true if 'index' is a secondary variable index. More...
 
void SynchronizeFilters ()
 Synchronizes filters with an assignment (the current solution). More...
 

Protected Attributes

Assignment *const assignment_
 

Constructor & Destructor Documentation

◆ IntVarFilteredHeuristic()

IntVarFilteredHeuristic ( Solver solver,
const std::vector< IntVar * > &  vars,
const std::vector< IntVar * > &  secondary_vars,
LocalSearchFilterManager filter_manager 
)

Definition at line 271 of file routing_search.cc.

◆ ~IntVarFilteredHeuristic()

virtual ~IntVarFilteredHeuristic ( )
virtualdefault

Member Function Documentation

◆ BuildSolution()

Assignment *const BuildSolution ( )

Builds a solution.

Returns the resulting assignment if a solution was found, and nullptr otherwise.

Definition at line 303 of file routing_search.cc.

◆ BuildSolutionInternal()

virtual bool BuildSolutionInternal ( )
protectedpure virtual

◆ Contains()

bool Contains ( int64_t  index) const
inlineprotected

Returns true if the variable of index 'index' is in the current solution.

Definition at line 226 of file routing_search.h.

◆ DebugString()

◆ Evaluate()

std::optional< int64_t > Evaluate ( bool  commit)
protected

Evaluates the modifications to the current solution.

If these modifications are "filter-feasible" returns their corresponding cost computed by filters. If 'commit' is true, the modifications are committed to the current solution. In any case all modifications to the internal delta are cleared before returning.

Definition at line 353 of file routing_search.cc.

◆ HasSecondaryVars()

bool HasSecondaryVars ( ) const
inlineprotected

Returns true if there are secondary variables.

Definition at line 240 of file routing_search.h.

◆ Initialize()

virtual void Initialize ( )
inlineprotectedvirtual

Initialize the heuristic; called before starting to build a new solution.

Reimplemented in LocalCheapestInsertionFilteredHeuristic.

Definition at line 194 of file routing_search.h.

◆ InitializeSolution()

virtual bool InitializeSolution ( )
inlineprotectedvirtual

Virtual method to initialize the solution.

Definition at line 196 of file routing_search.h.

◆ IsSecondaryVar()

bool IsSecondaryVar ( int64_t  index) const
inlineprotected

Returns true if 'index' is a secondary variable index.

Definition at line 242 of file routing_search.h.

◆ number_of_decisions()

int64_t number_of_decisions ( ) const
inline

Returns statistics on search, number of decisions sent to filters, number of decisions rejected by filters.

Definition at line 185 of file routing_search.h.

◆ number_of_rejects()

int64_t number_of_rejects ( ) const
inline

Definition at line 186 of file routing_search.h.

◆ ResetSolution()

void ResetSolution ( )
protected

Resets the data members for a new solution.

Definition at line 293 of file routing_search.cc.

◆ SecondaryVarIndex()

int64_t SecondaryVarIndex ( int64_t  index) const
inlineprotected

Returns the index of a secondary var.

Definition at line 235 of file routing_search.h.

◆ SetValue()

void SetValue ( int64_t  index,
int64_t  value 
)
inlineprotected

Modifies the current solution by setting the variable of index 'index' to value 'value'.

Definition at line 211 of file routing_search.h.

◆ Size()

int Size ( ) const
inlineprotected

Returns the number of variables the decision builder is trying to instantiate.

Definition at line 231 of file routing_search.h.

◆ StopSearch()

virtual bool StopSearch ( )
inlineprotectedvirtual

Returns true if the search must be stopped.

Reimplemented in RoutingFilteredHeuristic.

Definition at line 208 of file routing_search.h.

◆ SynchronizeFilters()

void SynchronizeFilters ( )
protected

Synchronizes filters with an assignment (the current solution).

Definition at line 396 of file routing_search.cc.

◆ Value()

int64_t Value ( int64_t  index) const
inlineprotected

Returns the value of the variable of index 'index' in the last committed solution.

Definition at line 222 of file routing_search.h.

◆ Var()

IntVar* Var ( int64_t  index) const
inlineprotected

Returns the variable of index 'index'.

Definition at line 233 of file routing_search.h.

Member Data Documentation

◆ assignment_

Assignment* const assignment_
protected

Definition at line 246 of file routing_search.h.


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