14 #ifndef OR_TOOLS_SAT_PROBING_H_
15 #define OR_TOOLS_SAT_PROBING_H_
22 #include "absl/strings/str_cat.h"
23 #include "absl/types/span.h"
80 absl::Span<const BooleanVariable> bool_vars);
98 bool ProbeOneVariableInternal(BooleanVariable
b);
116 std::vector<Literal> to_fix_at_true_;
117 std::vector<IntegerLiteral> new_integer_bounds_;
118 std::vector<std::pair<Literal, Literal>> new_binary_clauses_;
121 int num_new_holes_ = 0;
122 int num_new_binary_ = 0;
123 int num_new_integer_bounds_ = 0;
124 int num_new_literals_fixed_ = 0;
126 std::function<void(
Literal decision)> callback_ =
nullptr;
A simple class to enforce both an elapsed time limit and a deterministic time limit in the same threa...
Class that owns everything related to a particular optimization model.
void SetPropagationCallback(std::function< void(Literal decision)> f)
int num_new_binary_clauses() const
bool ProbeOneVariable(BooleanVariable b)
bool ProbeBooleanVariables(double deterministic_time_limit)
int num_new_literals_fixed() const
bool LookForTrivialSatSolution(double deterministic_time_limit, Model *model)
bool FailedLiteralProbingRound(ProbingOptions options, Model *model)
Collection of objects used to extend the Constraint Solver library.
std::string ToString() const
double deterministic_limit
bool subsume_with_binary_clause
bool extract_binary_clauses