14 #ifndef OR_TOOLS_SAT_LB_TREE_SEARCH_H_ 15 #define OR_TOOLS_SAT_LB_TREE_SEARCH_H_ 48 const std::function<
void()>& feasible_solution_observer);
53 Node(
Literal l, IntegerValue lb)
57 false_objective(lb) {}
60 void UpdateObjective() {
64 void UpdateTrueObjective(IntegerValue v) {
65 true_objective =
std::max(true_objective, v);
68 void UpdateFalseObjective(IntegerValue v) {
69 false_objective =
std::max(false_objective, v);
77 IntegerValue objective_lb;
81 IntegerValue true_objective;
82 IntegerValue false_objective;
105 bool NodeImprovesLowerBound(
const LbTreeSearch::Node& node);
115 IntegerVariable objective_var_;
118 std::vector<Node> nodes_;
121 std::vector<int> current_branch_;
130 #endif // OR_TOOLS_SAT_LB_TREE_SEARCH_H_ 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.
LbTreeSearch(Model *model)
SatSolver::Status Search(const std::function< void()> &feasible_solution_observer)
Collection of objects used to extend the Constraint Solver library.