C++ Reference: integer_search

This documentation is automatically generated.

This file contains all the top-level logic responsible for driving the search of a satisfiability integer problem. What decision we take next, which new Literal associated to an IntegerLiteral we create and when we restart.

For an optimization problem, our algorithm solves a sequence of decision problem using this file as an entry point. Note that some heuristics here still use the objective if there is one in order to orient the search towards good feasible solution though.

Function Type Arguments Comments
AtMinValue

Return type: LiteralIndex

Arguments: IntegerVariable var, IntegerTrail* integer_trail, IntegerEncoder* integer_encoder

BranchDown

Return type: LiteralIndex

Arguments: IntegerVariable var, IntegerValue value, Model* model

BranchUp

Return type: LiteralIndex

Arguments: IntegerVariable var, IntegerValue value, Model* model

ConfigureSearchHeuristics

Return type: void

Arguments: Model* model

FirstUnassignedVarAtItsMinHeuristic

Return type: std::function<LiteralIndex()>

Arguments: const std::vector<IntegerVariable>& vars, Model* model

FollowHint

Return type: std::function<LiteralIndex()>

Arguments: const std::vector<BooleanOrIntegerVariable>& vars, const std::vector<IntegerValue>& values, Model* model

GreaterOrEqualToMiddleValue

Return type: LiteralIndex

Arguments: IntegerVariable var, Model* model

IntegerValueSelectionHeuristic

Return type: std::function<LiteralIndex()>

Arguments: std::function<LiteralIndex()> var_selection_heuristic, Model* model

LinearizedPartIsLarge

Return type: bool

Arguments: Model* model

PseudoCost

Return type: std::function<LiteralIndex()>

Arguments: Model* model

ResetAndSolveIntegerProblem

Return type: SatSolver::Status

Arguments: const std::vector<Literal>& assumptions, Model* model

RestartEveryKFailures

Return type: std::function<bool()>

Arguments: int k, SatSolver* solver

SatSolverHeuristic

Return type: std::function<LiteralIndex()>

Arguments: Model* model

SatSolverRestartPolicy

Return type: std::function<bool()>

Arguments: Model* model

SequentialSearch

Return type: std::function<LiteralIndex()>

Arguments: std::vector<std::function<LiteralIndex()>> heuristics

SequentialValueSelection

Return type: std::function<LiteralIndex()>

Arguments: std::vector<std::function<LiteralIndex(IntegerVariable)>> value_selection_heuristics, std::function<LiteralIndex()> var_selection_heuristic, Model* model

SolveIntegerProblem

Return type: SatSolver::Status

Arguments: Model* model

SolveIntegerProblemWithLazyEncoding

Return type: SatSolver::Status

Arguments: Model* model

SplitAroundGivenValue

Return type: LiteralIndex

Arguments: IntegerVariable positive_var, IntegerValue value, Model* model

SplitAroundLpValue

Return type: LiteralIndex

Arguments: IntegerVariable var, Model* model

SplitDomainUsingBestSolutionValue

Return type: LiteralIndex

Arguments: IntegerVariable var, Model* model

UnassignedVarWithLowestMinAtItsMinHeuristic

Return type: std::function<LiteralIndex()>

Arguments: const std::vector<IntegerVariable>& vars, Model* model