14#ifndef OR_TOOLS_BOP_BOP_FS_H_
15#define OR_TOOLS_BOP_BOP_FS_H_
20#include "absl/random/bit_gen_ref.h"
21#include "absl/strings/string_view.h"
23#include "ortools/bop/bop_parameters.pb.h"
63 int64_t state_update_stamp_;
64 std::unique_ptr<sat::SatSolver> sat_solver_;
82 absl::BitGenRef random);
95 absl::BitGenRef random_;
128 double ComputeLowerBoundUsingStrongBranching(
LearnedInfo* learned_info,
133 bool CostIsWorseThanSolution(
double scaled_cost,
double tolerance)
const;
135 const BopParameters parameters_;
136 int64_t state_update_stamp_;
137 bool lp_model_loaded_;
138 int num_full_solves_;
143 int num_fixed_variables_;
144 bool problem_already_solved_;
145 double scaled_solution_cost_;
const std::string & name() const
Returns the name given at construction.
~BopRandomFirstSolutionGenerator() override
BopRandomFirstSolutionGenerator(absl::string_view name, const BopParameters ¶meters, sat::SatSolver *sat_propagator, absl::BitGenRef random)
Status Optimize(const BopParameters ¶meters, const ProblemState &problem_state, LearnedInfo *learned_info, TimeLimit *time_limit) override
bool ShouldBeRun(const ProblemState &problem_state) const override
Only run the RandomFirstSolution when there is an objective to minimize.
Status Optimize(const BopParameters ¶meters, const ProblemState &problem_state, LearnedInfo *learned_info, TimeLimit *time_limit) override
bool ShouldBeRun(const ProblemState &problem_state) const override
Policy
The different guiding heuristics.
~GuidedSatFirstSolutionGenerator() override
GuidedSatFirstSolutionGenerator(absl::string_view name, Policy policy)
~LinearRelaxation() override
Status Optimize(const BopParameters ¶meters, const ProblemState &problem_state, LearnedInfo *learned_info, TimeLimit *time_limit) override
LinearRelaxation(const BopParameters ¶meters, absl::string_view name)
bool ShouldBeRun(const ProblemState &problem_state) const override
A full-fledged linear programming solver.
ProblemStatus
Different statuses for a given problem.
In SWIG mode, we don't want anything besides these top-level includes.