14#ifndef OR_TOOLS_BOP_BOP_FS_H_
15#define OR_TOOLS_BOP_BOP_FS_H_
25#include "ortools/bop/bop_parameters.pb.h"
30#include "ortools/sat/boolean_problem.pb.h"
67 int64_t state_update_stamp_;
68 std::unique_ptr<sat::SatSolver> sat_solver_;
86 absl::BitGenRef random);
99 absl::BitGenRef random_;
132 double ComputeLowerBoundUsingStrongBranching(
LearnedInfo* learned_info,
137 bool CostIsWorseThanSolution(
double scaled_cost,
double tolerance)
const;
139 const BopParameters parameters_;
140 int64_t state_update_stamp_;
141 bool lp_model_loaded_;
142 int num_full_solves_;
147 int num_fixed_variables_;
148 bool problem_already_solved_;
149 double scaled_solution_cost_;
A simple class to enforce both an elapsed time limit and a deterministic time limit in the same threa...
const std::string & name() const
bool ShouldBeRun(const ProblemState &problem_state) const override
Status Optimize(const BopParameters ¶meters, const ProblemState &problem_state, LearnedInfo *learned_info, TimeLimit *time_limit) override
~BopRandomFirstSolutionGenerator() override
BopRandomFirstSolutionGenerator(const std::string &name, const BopParameters ¶meters, sat::SatSolver *sat_propagator, absl::BitGenRef random)
bool ShouldBeRun(const ProblemState &problem_state) const override
GuidedSatFirstSolutionGenerator(const std::string &name, Policy policy)
~GuidedSatFirstSolutionGenerator() override
Status Optimize(const BopParameters ¶meters, const ProblemState &problem_state, LearnedInfo *learned_info, TimeLimit *time_limit) override
bool ShouldBeRun(const ProblemState &problem_state) const override
Status Optimize(const BopParameters ¶meters, const ProblemState &problem_state, LearnedInfo *learned_info, TimeLimit *time_limit) override
LinearRelaxation(const BopParameters ¶meters, const std::string &name)
~LinearRelaxation() override
ModelSharedTimeLimit * time_limit
Collection of objects used to extend the Constraint Solver library.