Google OR-Tools v9.15
a fast and portable software suite for combinatorial optimization
Loading...
Searching...
No Matches
cp_model_utils.h File Reference
#include <algorithm>
#include <cstdint>
#include <limits>
#include <string>
#include <vector>
#include "ortools/base/helpers.h"
#include "absl/flags/declare.h"
#include "absl/functional/function_ref.h"
#include "absl/log/check.h"
#include "absl/status/status.h"
#include "absl/strings/match.h"
#include "absl/strings/string_view.h"
#include "absl/types/span.h"
#include "google/protobuf/message.h"
#include "google/protobuf/text_format.h"
#include "ortools/base/base_export.h"
#include "ortools/base/hash.h"
#include "ortools/base/options.h"
#include "ortools/sat/cp_model.pb.h"
#include "ortools/util/bitset.h"
#include "ortools/util/sorted_interval_list.h"

Go to the source code of this file.

Classes

struct  operations_research::sat::IndexReferences

Namespaces

namespace  operations_research
 OR-Tools root namespace.
namespace  operations_research::sat

Functions

OR_DLL ABSL_DECLARE_FLAG (bool, cp_model_dump_models)
OR_DLL ABSL_DECLARE_FLAG (std::string, cp_model_dump_prefix)
OR_DLL ABSL_DECLARE_FLAG (bool, cp_model_dump_problematic_lns)
OR_DLL ABSL_DECLARE_FLAG (bool, cp_model_dump_submodels)
int operations_research::sat::NegatedRef (int ref)
int operations_research::sat::PositiveRef (int ref)
bool operations_research::sat::RefIsPositive (int ref)
bool operations_research::sat::HasEnforcementLiteral (const ConstraintProto &ct)
int operations_research::sat::EnforcementLiteral (const ConstraintProto &ct)
int64_t operations_research::sat::LinearExpressionGcd (const LinearExpressionProto &expr, int64_t gcd)
void operations_research::sat::DivideLinearExpression (int64_t divisor, LinearExpressionProto *expr)
void operations_research::sat::SetToNegatedLinearExpression (const LinearExpressionProto &input_expr, LinearExpressionProto *output_negated_expr)
IndexReferences operations_research::sat::GetReferencesUsedByConstraint (const ConstraintProto &ct)
void operations_research::sat::GetReferencesUsedByConstraint (const ConstraintProto &ct, std::vector< int > *variables, std::vector< int > *literals)
void operations_research::sat::ApplyToAllVariableIndices (absl::FunctionRef< void(int *)> f, ConstraintProto *ct)
void operations_research::sat::ApplyToAllLiteralIndices (absl::FunctionRef< void(int *)> f, ConstraintProto *ct)
void operations_research::sat::ApplyToAllIntervalIndices (absl::FunctionRef< void(int *)> f, ConstraintProto *ct)
absl::string_view operations_research::sat::ConstraintCaseName (ConstraintProto::ConstraintCase constraint_case)
std::vector< int > operations_research::sat::UsedVariables (const ConstraintProto &ct)
std::vector< int > operations_research::sat::UsedIntervals (const ConstraintProto &ct)
void operations_research::sat::InsertVariablesFromInterval (const CpModelProto &model_proto, int index, Bitset64< int > &output)
void operations_research::sat::RemoveVariablesFromInterval (const CpModelProto &model_proto, int index, Bitset64< int > &output)
template<typename ProtoWithDomain>
bool operations_research::sat::DomainInProtoContains (const ProtoWithDomain &proto, int64_t value)
template<typename ProtoWithDomain>
void operations_research::sat::FillDomainInProto (const Domain &domain, ProtoWithDomain *proto)
template<typename ProtoWithDomain>
void operations_research::sat::FillDomainInProto (int64_t lb, int64_t ub, ProtoWithDomain *proto)
template<typename ProtoWithDomain>
void operations_research::sat::FillDomainInProto (int64_t value, ProtoWithDomain *proto)
template<typename ProtoWithDomain>
Domain operations_research::sat::ReadDomainFromProto (const ProtoWithDomain &proto)
template<typename ProtoWithDomain>
std::vector< int64_t > operations_research::sat::AllValuesInDomain (const ProtoWithDomain &proto)
double operations_research::sat::ScaleObjectiveValue (const CpObjectiveProto &proto, int64_t value)
int64_t operations_research::sat::ScaleInnerObjectiveValue (const CpObjectiveProto &proto, int64_t value)
double operations_research::sat::UnscaleObjectiveValue (const CpObjectiveProto &proto, double value)
int64_t operations_research::sat::ComputeInnerObjective (const CpObjectiveProto &objective, absl::Span< const int64_t > solution)
bool operations_research::sat::ExpressionContainsSingleRef (const LinearExpressionProto &expr)
bool operations_research::sat::ExpressionIsAffine (const LinearExpressionProto &expr)
int operations_research::sat::GetSingleRefFromExpression (const LinearExpressionProto &expr)
int64_t operations_research::sat::AffineExpressionValueAt (const LinearExpressionProto &expr, int64_t value)
int64_t operations_research::sat::GetInnerVarValue (const LinearExpressionProto &expr, int64_t value)
bool operations_research::sat::AffineExpressionContainsVar (const LinearExpressionProto &expr, int var)
void operations_research::sat::AddLinearExpressionToLinearConstraint (const LinearExpressionProto &expr, int64_t coefficient, LinearConstraintProto *linear)
void operations_research::sat::AddWeightedLiteralToLinearConstraint (int lit, int64_t coeff, LinearConstraintProto *linear, int64_t *offset)
void operations_research::sat::LiteralsToLinear (absl::Span< const int > literals, int64_t lb, int64_t ub, LinearConstraintProto *linear)
bool operations_research::sat::SafeAddLinearExpressionToLinearConstraint (const LinearExpressionProto &expr, int64_t coefficient, LinearConstraintProto *linear)
bool operations_research::sat::IsAffineIntAbs (const ConstraintProto &ct)
bool operations_research::sat::LinearExpressionProtosAreEqual (const LinearExpressionProto &a, const LinearExpressionProto &b, int64_t b_scaling)
template<class ExpressionList>
bool operations_research::sat::ExpressionsContainsOnlyOneVar (const ExpressionList &exprs)
template<class T>
uint64_t operations_research::sat::FingerprintRepeatedField (const google::protobuf::RepeatedField< T > &sequence, uint64_t seed)
template<class T>
uint64_t operations_research::sat::FingerprintSingleField (const T &field, uint64_t seed)
uint64_t operations_research::sat::FingerprintExpression (const LinearExpressionProto &lin, uint64_t seed)
uint64_t operations_research::sat::FingerprintModel (const CpModelProto &model, uint64_t seed)
void operations_research::sat::SetupTextFormatPrinter (google::protobuf::TextFormat::Printer *printer)
template<class M>
bool operations_research::sat::WriteModelProtoToFile (const M &proto, absl::string_view filename)
bool operations_research::sat::operator== (const BoolArgumentProto &lhs, const BoolArgumentProto &rhs)
template<typename H>
operations_research::sat::AbslHashValue (H h, const BoolArgumentProto &m)
bool operations_research::sat::operator== (const LinearConstraintProto &lhs, const LinearConstraintProto &rhs)
template<typename H>
operations_research::sat::AbslHashValue (H h, const LinearConstraintProto &m)
bool operations_research::sat::ConvertCpModelProtoToCnf (const CpModelProto &cp_model, std::string *out)
bool operations_research::sat::ConvertCpModelProtoToWCnf (const CpModelProto &cp_model, std::string *out)
int operations_research::sat::CombineSeed (int base_seed, int64_t delta)

Variables

constexpr uint64_t operations_research::sat::kDefaultFingerprintSeed = 0xa5b85c5e198ed849

Function Documentation

◆ ABSL_DECLARE_FLAG() [1/4]

OR_DLL ABSL_DECLARE_FLAG ( bool ,
cp_model_dump_models  )

◆ ABSL_DECLARE_FLAG() [2/4]

OR_DLL ABSL_DECLARE_FLAG ( bool ,
cp_model_dump_problematic_lns  )

◆ ABSL_DECLARE_FLAG() [3/4]

OR_DLL ABSL_DECLARE_FLAG ( bool ,
cp_model_dump_submodels  )

◆ ABSL_DECLARE_FLAG() [4/4]

OR_DLL ABSL_DECLARE_FLAG ( std::string ,
cp_model_dump_prefix  )