OR-Tools  8.1
constraint_solver.cc File Reference

Go to the source code of this file.

Classes

class  Queue
 
struct  StateInfo
 
struct  StateMarker
 
struct  Trail
 
class  Search
 
class  Trace
 
class  LocalSearchMonitorMaster
 

Namespaces

 operations_research
 The vehicle routing library lets one model and solve generic vehicle routing problems ranging from the Traveling Salesman Problem to more complex problems such as the Capacitated Vehicle Routing Problem with Time Windows.
 

Macros

#define CP_TRY(search)
 
#define CP_ON_FAIL   else
 
#define CP_DO_FAIL(search)   longjmp(search->fail_buffer_, 1)
 

Functions

 ABSL_FLAG (bool, cp_trace_propagation, false, "Trace propagation events (constraint and demon executions," " variable modifications).")
 
 ABSL_FLAG (bool, cp_trace_search, false, "Trace search events")
 
 ABSL_FLAG (bool, cp_print_added_constraints, false, "show all constraints added to the solver.")
 
 ABSL_FLAG (bool, cp_print_model, false, "use PrintModelVisitor on model before solving.")
 
 ABSL_FLAG (bool, cp_model_stats, false, "use StatisticsModelVisitor on model before solving.")
 
 ABSL_FLAG (bool, cp_disable_solve, false, "Force failure at the beginning of a search.")
 
 ABSL_FLAG (std::string, cp_profile_file, "", "Export profiling overview to file.")
 
 ABSL_FLAG (bool, cp_print_local_search_profile, false, "Print local search profiling data after solving.")
 
 ABSL_FLAG (bool, cp_name_variables, false, "Force all variables to have names.")
 
 ABSL_FLAG (bool, cp_name_cast_variables, false, "Name variables casted from expressions")
 
 ABSL_FLAG (bool, cp_use_small_table, true, "Use small compact table constraint when possible.")
 
 ABSL_FLAG (bool, cp_use_cumulative_edge_finder, true, "Use the O(n log n) cumulative edge finding algorithm described " "in 'Edge Finding Filtering Algorithm for Discrete Cumulative " "Resources in O(kn log n)' by Petr Vilim, CP 2009.")
 
 ABSL_FLAG (bool, cp_use_cumulative_time_table, true, "Use a O(n^2) cumulative time table propagation algorithm.")
 
 ABSL_FLAG (bool, cp_use_cumulative_time_table_sync, false, "Use a synchronized O(n^2 log n) cumulative time table propagation " "algorithm.")
 
 ABSL_FLAG (bool, cp_use_sequence_high_demand_tasks, true, "Use a sequence constraints for cumulative tasks that have a " "demand greater than half of the capacity of the resource.")
 
 ABSL_FLAG (bool, cp_use_all_possible_disjunctions, true, "Post temporal disjunctions for all pairs of tasks sharing a " "cumulative resource and that cannot overlap because the sum of " "their demand exceeds the capacity.")
 
 ABSL_FLAG (int, cp_max_edge_finder_size, 50, "Do not post the edge finder in the cumulative constraints if " "it contains more than this number of tasks")
 
 ABSL_FLAG (bool, cp_diffn_use_cumulative, true, "Diffn constraint adds redundant cumulative constraint")
 
 ABSL_FLAG (bool, cp_use_element_rmq, true, "If true, rmq's will be used in element expressions.")
 
 ABSL_FLAG (int, cp_check_solution_period, 1, "Number of solutions explored between two solution checks during " "local search.")
 
 ABSL_FLAG (int64, cp_random_seed, 12345, "Random seed used in several (but not all) random number " "generators used by the CP solver. Use -1 to auto-generate an" "undeterministic random seed.")
 
void ConstraintSolverFailsHere ()
 
DemonProfiler * BuildDemonProfiler (Solver *const solver)
 
void DeleteDemonProfiler (DemonProfiler *const monitor)
 
void InstallDemonProfiler (DemonProfiler *const monitor)
 
LocalSearchProfiler * BuildLocalSearchProfiler (Solver *solver)
 
void DeleteLocalSearchProfiler (LocalSearchProfiler *monitor)
 
void InstallLocalSearchProfiler (LocalSearchProfiler *monitor)
 
void CleanVariableOnFail (IntVar *const var)
 
void RestoreBoolValue (IntVar *const var)
 
void InternalSaveBooleanVarValue (Solver *const solver, IntVar *const var)
 
bool LocalOptimumReached (Search *const search)
 
bool AcceptDelta (Search *const search, Assignment *delta, Assignment *deltadelta)
 
void AcceptNeighbor (Search *const search)
 
void AcceptUncheckedNeighbor (Search *const search)
 
PropagationMonitor * BuildTrace (Solver *const s)
 
LocalSearchMonitor * BuildLocalSearchMonitorMaster (Solver *const s)
 
ModelCache * BuildModelCache (Solver *const solver)
 
PropagationMonitor * BuildPrintTrace (Solver *const s)
 
std::ostream & operator<< (std::ostream &out, const Solver *const s)
 
std::ostream & operator<< (std::ostream &out, const BaseObject *const o)
 

Macro Definition Documentation

◆ CP_DO_FAIL

#define CP_DO_FAIL (   search)    longjmp(search->fail_buffer_, 1)

Definition at line 1106 of file constraint_solver.cc.

◆ CP_ON_FAIL

#define CP_ON_FAIL   else

Definition at line 1105 of file constraint_solver.cc.

◆ CP_TRY

#define CP_TRY (   search)
Value:
CHECK(!search->jmpbuf_filled_) << "Fail() called outside search"; \
search->jmpbuf_filled_ = true; \
if (setjmp(search->fail_buffer_) == 0)

Definition at line 1101 of file constraint_solver.cc.

Function Documentation

◆ ABSL_FLAG() [1/21]

ABSL_FLAG ( bool  ,
cp_diffn_use_cumulative  ,
true  ,
"Diffn constraint adds redundant cumulative constraint"   
)

◆ ABSL_FLAG() [2/21]

ABSL_FLAG ( bool  ,
cp_disable_solve  ,
false  ,
"Force failure at the beginning of a search."   
)

◆ ABSL_FLAG() [3/21]

ABSL_FLAG ( bool  ,
cp_model_stats  ,
false  ,
"use StatisticsModelVisitor on model before solving."   
)

◆ ABSL_FLAG() [4/21]

ABSL_FLAG ( bool  ,
cp_name_cast_variables  ,
false  ,
"Name variables casted from expressions"   
)

◆ ABSL_FLAG() [5/21]

ABSL_FLAG ( bool  ,
cp_name_variables  ,
false  ,
"Force all variables to have names."   
)

◆ ABSL_FLAG() [6/21]

ABSL_FLAG ( bool  ,
cp_print_added_constraints  ,
false  ,
"show all constraints added to the solver."   
)

◆ ABSL_FLAG() [7/21]

ABSL_FLAG ( bool  ,
cp_print_local_search_profile  ,
false  ,
"Print local search profiling data after solving."   
)

◆ ABSL_FLAG() [8/21]

ABSL_FLAG ( bool  ,
cp_print_model  ,
false  ,
"use PrintModelVisitor on model before solving."   
)

◆ ABSL_FLAG() [9/21]

ABSL_FLAG ( bool  ,
cp_trace_propagation  ,
false  ,
"Trace propagation events (constraint and demon executions," " variable modifications)."   
)

◆ ABSL_FLAG() [10/21]

ABSL_FLAG ( bool  ,
cp_trace_search  ,
false  ,
"Trace search events"   
)

◆ ABSL_FLAG() [11/21]

ABSL_FLAG ( bool  ,
cp_use_all_possible_disjunctions  ,
true  ,
"Post temporal disjunctions for all pairs of tasks sharing a " "cumulative resource and that cannot overlap because the sum of " "their demand exceeds the capacity."   
)

◆ ABSL_FLAG() [12/21]

ABSL_FLAG ( bool  ,
cp_use_cumulative_edge_finder  ,
true  ,
"Use the O(n log n) cumulative edge finding algorithm described " "in 'Edge Finding Filtering Algorithm for Discrete Cumulative " "Resources in O(kn log n)' by Petr  Vilim,
CP 2009."   
)

◆ ABSL_FLAG() [13/21]

ABSL_FLAG ( bool  ,
cp_use_cumulative_time_table  ,
true  ,
"Use a O(n^2) cumulative time table propagation algorithm."   
)

◆ ABSL_FLAG() [14/21]

ABSL_FLAG ( bool  ,
cp_use_cumulative_time_table_sync  ,
false  ,
"Use a synchronized O(n^2 log n) cumulative time table propagation " "algorithm."   
)

◆ ABSL_FLAG() [15/21]

ABSL_FLAG ( bool  ,
cp_use_element_rmq  ,
true  ,
"If  true,
rmq 's will be used in element expressions."   
)

◆ ABSL_FLAG() [16/21]

ABSL_FLAG ( bool  ,
cp_use_sequence_high_demand_tasks  ,
true  ,
"Use a sequence constraints for cumulative tasks that have a " "demand greater than half of the capacity of the resource."   
)

◆ ABSL_FLAG() [17/21]

ABSL_FLAG ( bool  ,
cp_use_small_table  ,
true  ,
"Use small compact table constraint when possible."   
)

◆ ABSL_FLAG() [18/21]

ABSL_FLAG ( int  ,
cp_check_solution_period  ,
,
"Number of solutions explored between two solution checks during " "local search."   
)

◆ ABSL_FLAG() [19/21]

ABSL_FLAG ( int  ,
cp_max_edge_finder_size  ,
50  ,
"Do not post the edge finder in the cumulative constraints if " "it contains more than this number of tasks"   
)

◆ ABSL_FLAG() [20/21]

ABSL_FLAG ( int64  ,
cp_random_seed  ,
12345  ,
"Random seed used in several (but not all) random number " "generators used by the CP solver. Use -1 to auto-generate an" "undeterministic random seed."   
)

◆ ABSL_FLAG() [21/21]

ABSL_FLAG ( std::string  ,
cp_profile_file  ,
""  ,
"Export profiling overview to file."   
)

◆ ConstraintSolverFailsHere()

void ConstraintSolverFailsHere ( )

Definition at line 95 of file constraint_solver.cc.

Variable Documentation

◆ compressed

std::string compressed

Definition at line 673 of file constraint_solver.cc.

◆ next

Block* next

Definition at line 674 of file constraint_solver.cc.

CHECK
#define CHECK(condition)
Definition: base/logging.h:495