Google OR-Tools v9.11
a fast and portable software suite for combinatorial optimization
Loading...
Searching...
No Matches
sat_solver.h File Reference
#include <cstdint>
#include <functional>
#include <limits>
#include <memory>
#include <ostream>
#include <string>
#include <utility>
#include <vector>
#include "absl/base/attributes.h"
#include "absl/container/flat_hash_map.h"
#include "absl/log/check.h"
#include "absl/strings/string_view.h"
#include "absl/types/span.h"
#include "ortools/base/hash.h"
#include "ortools/base/logging.h"
#include "ortools/base/timer.h"
#include "ortools/base/types.h"
#include "ortools/sat/clause.h"
#include "ortools/sat/drat_proof_handler.h"
#include "ortools/sat/model.h"
#include "ortools/sat/pb_constraint.h"
#include "ortools/sat/restart.h"
#include "ortools/sat/sat_base.h"
#include "ortools/sat/sat_decision.h"
#include "ortools/sat/sat_parameters.pb.h"
#include "ortools/util/bitset.h"
#include "ortools/util/logging.h"
#include "ortools/util/stats.h"
#include "ortools/util/strong_integers.h"
#include "ortools/util/time_limit.h"

Go to the source code of this file.

Classes

class  operations_research::sat::SatSolver
 
struct  operations_research::sat::SatSolver::Decision
 
struct  operations_research::sat::SatSolver::Counters
 

Namespaces

namespace  operations_research
 In SWIG mode, we don't want anything besides these top-level includes.
 
namespace  operations_research::sat
 

Functions

void operations_research::sat::MinimizeCore (SatSolver *solver, std::vector< Literal > *core)
 
std::function< void(Model *)> operations_research::sat::BooleanLinearConstraint (int64_t lower_bound, int64_t upper_bound, std::vector< LiteralWithCoeff > *cst)
 
std::function< void(Model *)> operations_research::sat::CardinalityConstraint (int64_t lower_bound, int64_t upper_bound, const std::vector< Literal > &literals)
 
std::function< void(Model *)> operations_research::sat::ExactlyOneConstraint (const std::vector< Literal > &literals)
 
std::function< void(Model *)> operations_research::sat::AtMostOneConstraint (const std::vector< Literal > &literals)
 
std::function< void(Model *)> operations_research::sat::ClauseConstraint (absl::Span< const Literal > literals)
 
std::function< void(Model *)> operations_research::sat::Implication (Literal a, Literal b)
 a => b.
 
std::function< void(Model *)> operations_research::sat::Equality (Literal a, Literal b)
 a == b.
 
std::function< void(Model *)> operations_research::sat::ReifiedBoolOr (const std::vector< Literal > &literals, Literal r)
 r <=> (at least one literal is true). This is a reified clause.
 
std::function< void(Model *)> operations_research::sat::EnforcedClause (absl::Span< const Literal > enforcement_literals, absl::Span< const Literal > clause)
 enforcement_literals => clause.
 
std::function< void(Model *)> operations_research::sat::ReifiedBoolAnd (const std::vector< Literal > &literals, Literal r)
 
std::function< void(Model *)> operations_research::sat::ReifiedBoolLe (Literal a, Literal b, Literal r)
 r <=> (a <= b).
 
std::function< int64_t(const Model &)> operations_research::sat::Value (Literal l)
 This checks that the variable is fixed.
 
std::function< int64_t(const Model &)> operations_research::sat::Value (BooleanVariable b)
 This checks that the variable is fixed.
 
std::function< void(Model *)> operations_research::sat::ExcludeCurrentSolutionAndBacktrack ()
 
std::string operations_research::sat::SatStatusString (SatSolver::Status status)
 Returns a string representation of a SatSolver::Status.
 
std::ostream & operations_research::sat::operator<< (std::ostream &os, SatSolver::Status status)
 

Variables

const int operations_research::sat::kUnsatTrailIndex = -1
 A constant used by the EnqueueDecision*() API.