Google OR-Tools v9.15
a fast and portable software suite for combinatorial optimization
Loading...
Searching...
No Matches
operations_research::sat::ProductDetector Class Reference

Detailed Description

Definition at line 271 of file implied_bounds.h.

#include <implied_bounds.h>

Public Member Functions

 ProductDetector (Model *model)
 ~ProductDetector ()
void ProcessTernaryClause (absl::Span< const Literal > ternary_clause)
void ProcessTernaryExactlyOne (absl::Span< const Literal > ternary_exo)
void ProcessBinaryClause (absl::Span< const Literal > binary_clause)
void ProcessImplicationGraph (BinaryImplicationGraph *graph)
void ProcessTrailAtLevelOne ()
void ProcessConditionalEquality (Literal l, IntegerVariable x, IntegerVariable y)
void ProcessConditionalZero (Literal l, IntegerVariable p)
LiteralIndex GetProduct (Literal a, Literal b) const
IntegerVariable GetProduct (Literal a, IntegerVariable b) const
bool ProductIsLinearizable (IntegerVariable a, IntegerVariable b) const
LinearExpression LinearizeProduct (IntegerVariable a, IntegerVariable b)
LinearExpression ProductLowerBound (IntegerVariable a, IntegerVariable b)
void InitializeBooleanRLTCuts (absl::Span< const IntegerVariable > lp_vars, const util_intops::StrongVector< IntegerVariable, double > &lp_values)
const absl::flat_hash_map< IntegerVariable, std::vector< IntegerVariable > > & BoolRLTCandidates () const
IntegerVariable LiteralProductUpperBound (IntegerVariable a, IntegerVariable b) const

Constructor & Destructor Documentation

◆ ProductDetector()

operations_research::sat::ProductDetector::ProductDetector ( Model * model)
explicit

Definition at line 550 of file implied_bounds.cc.

◆ ~ProductDetector()

operations_research::sat::ProductDetector::~ProductDetector ( )

Definition at line 563 of file implied_bounds.cc.

Member Function Documentation

◆ BoolRLTCandidates()

const absl::flat_hash_map< IntegerVariable, std::vector< IntegerVariable > > & operations_research::sat::ProductDetector::BoolRLTCandidates ( ) const
inline

Definition at line 331 of file implied_bounds.h.

◆ GetProduct() [1/2]

IntegerVariable operations_research::sat::ProductDetector::GetProduct ( Literal a,
IntegerVariable b ) const

Definition at line 753 of file implied_bounds.cc.

◆ GetProduct() [2/2]

LiteralIndex operations_research::sat::ProductDetector::GetProduct ( Literal a,
Literal b ) const

Definition at line 702 of file implied_bounds.cc.

◆ InitializeBooleanRLTCuts()

void operations_research::sat::ProductDetector::InitializeBooleanRLTCuts ( absl::Span< const IntegerVariable > lp_vars,
const util_intops::StrongVector< IntegerVariable, double > & lp_values )

Definition at line 861 of file implied_bounds.cc.

◆ LinearizeProduct()

LinearExpression operations_research::sat::ProductDetector::LinearizeProduct ( IntegerVariable a,
IntegerVariable b )

◆ LiteralProductUpperBound()

IntegerVariable operations_research::sat::ProductDetector::LiteralProductUpperBound ( IntegerVariable a,
IntegerVariable b ) const
inline

Definition at line 339 of file implied_bounds.h.

◆ ProcessBinaryClause()

void operations_research::sat::ProductDetector::ProcessBinaryClause ( absl::Span< const Literal > binary_clause)

Definition at line 640 of file implied_bounds.cc.

◆ ProcessConditionalEquality()

void operations_research::sat::ProductDetector::ProcessConditionalEquality ( Literal l,
IntegerVariable x,
IntegerVariable y )

Definition at line 772 of file implied_bounds.cc.

◆ ProcessConditionalZero()

void operations_research::sat::ProductDetector::ProcessConditionalZero ( Literal l,
IntegerVariable p )

Definition at line 806 of file implied_bounds.cc.

◆ ProcessImplicationGraph()

void operations_research::sat::ProductDetector::ProcessImplicationGraph ( BinaryImplicationGraph * graph)

Definition at line 672 of file implied_bounds.cc.

◆ ProcessTernaryClause()

void operations_research::sat::ProductDetector::ProcessTernaryClause ( absl::Span< const Literal > ternary_clause)

Definition at line 583 of file implied_bounds.cc.

◆ ProcessTernaryExactlyOne()

void operations_research::sat::ProductDetector::ProcessTernaryExactlyOne ( absl::Span< const Literal > ternary_exo)

Definition at line 622 of file implied_bounds.cc.

◆ ProcessTrailAtLevelOne()

void operations_research::sat::ProductDetector::ProcessTrailAtLevelOne ( )

Definition at line 684 of file implied_bounds.cc.

◆ ProductIsLinearizable()

bool operations_research::sat::ProductDetector::ProductIsLinearizable ( IntegerVariable a,
IntegerVariable b ) const

Definition at line 727 of file implied_bounds.cc.

◆ ProductLowerBound()

LinearExpression operations_research::sat::ProductDetector::ProductLowerBound ( IntegerVariable a,
IntegerVariable b )

The documentation for this class was generated from the following files: