 |
OR-Tools
8.0
|
Go to the documentation of this file.
23 #ifndef OR_TOOLS_SAT_INTEGER_SEARCH_H_
24 #define OR_TOOLS_SAT_INTEGER_SEARCH_H_
82 const std::vector<Literal>& assumptions,
Model*
model);
127 const std::vector<IntegerVariable>& vars,
Model*
model);
134 const std::vector<IntegerVariable>& vars,
Model*
model);
146 const std::vector<BooleanOrIntegerVariable>& vars,
147 const std::vector<IntegerValue>& values,
Model*
model);
153 std::vector<std::function<LiteralIndex()>> heuristics);
162 std::vector<std::function<LiteralIndex(IntegerVariable)>>
163 value_selection_heuristics,
164 std::function<LiteralIndex()> var_selection_heuristic,
Model*
model);
170 std::function<LiteralIndex()> var_selection_heuristic,
Model*
model);
191 const std::vector<std::function<LiteralIndex()>>& input_heuristics,
197 const std::vector<std::function<LiteralIndex()>>& incomplete_heuristics,
198 const std::function<LiteralIndex()>& completion_heuristic);
203 #endif // OR_TOOLS_SAT_INTEGER_SEARCH_H_
std::vector< std::function< bool()> > callbacks
std::function< LiteralIndex()> IntegerValueSelectionHeuristic(std::function< LiteralIndex()> var_selection_heuristic, Model *model)
std::function< bool()> RestartEveryKFailures(int k, SatSolver *solver)
std::function< LiteralIndex()> FollowHint(const std::vector< BooleanOrIntegerVariable > &vars, const std::vector< IntegerValue > &values, Model *model)
const IntegerVariable kNoIntegerVariable(-1)
LiteralIndex BranchDown(IntegerVariable var, IntegerValue value, Model *model)
LiteralIndex SplitAroundLpValue(IntegerVariable var, Model *model)
SatSolver::Status SolveIntegerProblem(Model *model)
LiteralIndex AtMinValue(IntegerVariable var, IntegerTrail *integer_trail, IntegerEncoder *integer_encoder)
The vehicle routing library lets one model and solve generic vehicle routing problems ranging from th...
std::function< LiteralIndex()> FirstUnassignedVarAtItsMinHeuristic(const std::vector< IntegerVariable > &vars, Model *model)
std::vector< std::function< LiteralIndex()> > CompleteHeuristics(const std::vector< std::function< LiteralIndex()>> &incomplete_heuristics, const std::function< LiteralIndex()> &completion_heuristic)
std::vector< std::function< bool()> > restart_policies
std::vector< std::function< LiteralIndex()> > decision_policies
LiteralIndex GreaterOrEqualToMiddleValue(IntegerVariable var, Model *model)
LiteralIndex SplitDomainUsingBestSolutionValue(IntegerVariable var, Model *model)
SatSolver::Status ResetAndSolveIntegerProblem(const std::vector< Literal > &assumptions, Model *model)
LiteralIndex BranchUp(IntegerVariable var, IntegerValue value, Model *model)
std::function< bool()> SatSolverRestartPolicy(Model *model)
Class that owns everything related to a particular optimization model.
std::vector< std::function< LiteralIndex()> > AddModelHeuristics(const std::vector< std::function< LiteralIndex()>> &input_heuristics, Model *model)
const BooleanVariable kNoBooleanVariable(-1)
std::function< LiteralIndex()> SequentialValueSelection(std::vector< std::function< LiteralIndex(IntegerVariable)>> value_selection_heuristics, std::function< LiteralIndex()> var_selection_heuristic, Model *model)
std::function< LiteralIndex()> hint_search
std::function< LiteralIndex()> SequentialSearch(std::vector< std::function< LiteralIndex()>> heuristics)
std::function< LiteralIndex()> PseudoCost(Model *model)
bool LinearizedPartIsLarge(Model *model)
std::function< LiteralIndex()> SatSolverHeuristic(Model *model)
LiteralIndex SplitAroundGivenValue(IntegerVariable positive_var, IntegerValue value, Model *model)
void ConfigureSearchHeuristics(Model *model)
std::function< LiteralIndex()> UnassignedVarWithLowestMinAtItsMinHeuristic(const std::vector< IntegerVariable > &vars, Model *model)
std::function< LiteralIndex()> fixed_search
SatSolver::Status SolveIntegerProblemWithLazyEncoding(Model *model)