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

Detailed Description

Definition at line 180 of file clause.h.

#include <clause.h>

Inheritance diagram for operations_research::sat::ClauseManager:
operations_research::sat::SatPropagator

Classes

struct  Watcher

Public Member Functions

 ClauseManager (Model *model)
 ClauseManager (const ClauseManager &)=delete
ClauseManageroperator= (const ClauseManager &)=delete
 ~ClauseManager () override
void Resize (int num_variables)
bool Propagate (Trail *trail) final
absl::Span< const LiteralReason (const Trail &trail, int trail_index, int64_t conflict_id) const final
void Reimply (Trail *trail, int old_trail_index) final
SatClauseReasonClause (int trail_index) const
SatClauseReasonClauseOrNull (BooleanVariable var) const
bool ClauseIsUsedAsReason (SatClause *clause) const
bool AddClause (ClauseId id, absl::Span< const Literal > literals, Trail *trail, int lbd)
bool AddClause (absl::Span< const Literal > literals)
SatClauseAddRemovableClause (ClauseId id, absl::Span< const Literal > literals, Trail *trail, int lbd)
absl::Span< const int64_t > DeletionCounters () const
void LazyDelete (SatClause *clause, DeletionSourceForStat source)
void CleanUpWatchers ()
void Attach (SatClause *clause, Trail *trail)
void DeleteRemovedClauses ()
int64_t num_clauses () const
const std::vector< SatClause * > & AllClausesInCreationOrder () const
bool IsRemovable (SatClause *const clause) const
int64_t num_removable_clauses () const
absl::flat_hash_map< SatClause *, ClauseInfo > * mutable_clauses_info ()
int LbdOrZeroIfNotRemovable (SatClause *const clause) const
void KeepClauseForever (SatClause *const clause)
void RescaleClauseActivities (double scaling_factor)
void ChangeLbdIfBetter (SatClause *clause, int new_lbd)
int64_t num_inspected_clauses () const
int64_t num_inspected_clause_literals () const
int64_t literal_size () const
int64_t num_watched_clauses () const
int64_t num_lbd_promotions () const
ClauseId GetClauseId (const SatClause *clause) const
void SetClauseId (const SatClause *clause, ClauseId id)
SatClauseNextNewClauseToMinimize ()
SatClauseNextClauseToMinimize ()
SatClauseNextClauseToProbe ()
absl::Span< SatClause * > LastNClauses (int n)
void ResetToProbeIndex ()
int64_t NumToMinimizeIndexResets () const
void EnsureNewClauseIndexInitialized ()
void DetachAllClauses ()
void AttachAllClauses ()
ABSL_MUST_USE_RESULT bool InprocessingRewriteClause (SatClause *clause, absl::Span< const Literal > new_clause, absl::Span< const ClauseId > clause_ids={})
bool RemoveFixedLiteralsAndTestIfTrue (SatClause *clause)
ABSL_MUST_USE_RESULT bool InprocessingAddUnitClause (ClauseId unit_clause_id, Literal true_literal)
ABSL_MUST_USE_RESULT bool InprocessingFixLiteral (Literal true_literal, absl::Span< const ClauseId > clause_ids={})
SatClauseInprocessingAddClause (absl::Span< const Literal > new_clause)
const std::vector< Watcher > & WatcherListOnFalse (Literal false_literal) const
void SetAddClauseCallback (absl::AnyInvocable< void(int lbd, ClauseId id, absl::Span< const Literal >)> add_clause_callback)
absl::AnyInvocable< void(int lbd, ClauseId id, absl::Span< const Literal >)> TakeAddClauseCallback ()
ClauseId ReasonClauseId (Literal literal) const
void AppendClauseIdsFixing (absl::Span< const Literal > literals, std::vector< ClauseId > *clause_ids, LiteralIndex decision=kNoLiteralIndex, std::optional< absl::FunctionRef< ClauseId(int, int)> > root_literals={})
Public Member Functions inherited from operations_research::sat::SatPropagator
 SatPropagator (const std::string &name)
 SatPropagator (const SatPropagator &)=delete
SatPropagatoroperator= (const SatPropagator &)=delete
virtual ~SatPropagator ()=default
void SetPropagatorId (int id)
int PropagatorId () const
virtual void Untrail (const Trail &, int trail_index)
bool PropagatePreconditionsAreSatisfied (const Trail &trail) const
bool PropagationIsDone (const Trail &trail) const
const std::string & name () const
virtual bool IsEmpty () const

Additional Inherited Members

Protected Attributes inherited from operations_research::sat::SatPropagator
const std::string name_
int propagator_id_
int propagation_trail_index_

Constructor & Destructor Documentation

◆ ClauseManager() [1/2]

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

Definition at line 105 of file clause.cc.

◆ ClauseManager() [2/2]

operations_research::sat::ClauseManager::ClauseManager ( const ClauseManager & )
delete

◆ ~ClauseManager()

operations_research::sat::ClauseManager::~ClauseManager ( )
override

Definition at line 122 of file clause.cc.

Member Function Documentation

◆ AddClause() [1/2]

bool operations_research::sat::ClauseManager::AddClause ( absl::Span< const Literal > literals)

Definition at line 318 of file clause.cc.

◆ AddClause() [2/2]

bool operations_research::sat::ClauseManager::AddClause ( ClauseId id,
absl::Span< const Literal > literals,
Trail * trail,
int lbd )

Definition at line 322 of file clause.cc.

◆ AddRemovableClause()

SatClause * operations_research::sat::ClauseManager::AddRemovableClause ( ClauseId id,
absl::Span< const Literal > literals,
Trail * trail,
int lbd )

Definition at line 333 of file clause.cc.

◆ AllClausesInCreationOrder()

const std::vector< SatClause * > & operations_research::sat::ClauseManager::AllClausesInCreationOrder ( ) const
inline

Definition at line 246 of file clause.h.

◆ AppendClauseIdsFixing()

void operations_research::sat::ClauseManager::AppendClauseIdsFixing ( absl::Span< const Literal > literals,
std::vector< ClauseId > * clause_ids,
LiteralIndex decision = kNoLiteralIndex,
std::optional< absl::FunctionRef< ClauseId(int, int)> > root_literals = {} )

Definition at line 756 of file clause.cc.

◆ Attach()

void operations_research::sat::ClauseManager::Attach ( SatClause * clause,
Trail * trail )

Definition at line 407 of file clause.cc.

◆ AttachAllClauses()

void operations_research::sat::ClauseManager::AttachAllClauses ( )

Definition at line 457 of file clause.cc.

◆ ChangeLbdIfBetter()

void operations_research::sat::ClauseManager::ChangeLbdIfBetter ( SatClause * clause,
int new_lbd )

Definition at line 498 of file clause.cc.

◆ ClauseIsUsedAsReason()

bool operations_research::sat::ClauseManager::ClauseIsUsedAsReason ( SatClause * clause) const

Definition at line 312 of file clause.cc.

◆ CleanUpWatchers()

void operations_research::sat::ClauseManager::CleanUpWatchers ( )

Definition at line 631 of file clause.cc.

◆ DeleteRemovedClauses()

void operations_research::sat::ClauseManager::DeleteRemovedClauses ( )

Definition at line 648 of file clause.cc.

◆ DeletionCounters()

absl::Span< const int64_t > operations_research::sat::ClauseManager::DeletionCounters ( ) const
inline

Definition at line 222 of file clause.h.

◆ DetachAllClauses()

void operations_research::sat::ClauseManager::DetachAllClauses ( )

Definition at line 446 of file clause.cc.

◆ EnsureNewClauseIndexInitialized()

void operations_research::sat::ClauseManager::EnsureNewClauseIndexInitialized ( )
inline

Definition at line 335 of file clause.h.

◆ GetClauseId()

ClauseId operations_research::sat::ClauseManager::GetClauseId ( const SatClause * clause) const
inline

Definition at line 295 of file clause.h.

◆ InprocessingAddClause()

SatClause * operations_research::sat::ClauseManager::InprocessingAddClause ( absl::Span< const Literal > new_clause)

Definition at line 605 of file clause.cc.

◆ InprocessingAddUnitClause()

bool operations_research::sat::ClauseManager::InprocessingAddUnitClause ( ClauseId unit_clause_id,
Literal true_literal )

Definition at line 473 of file clause.cc.

◆ InprocessingFixLiteral()

bool operations_research::sat::ClauseManager::InprocessingFixLiteral ( Literal true_literal,
absl::Span< const ClauseId > clause_ids = {} )

Definition at line 493 of file clause.cc.

◆ InprocessingRewriteClause()

bool operations_research::sat::ClauseManager::InprocessingRewriteClause ( SatClause * clause,
absl::Span< const Literal > new_clause,
absl::Span< const ClauseId > clause_ids = {} )

Definition at line 527 of file clause.cc.

◆ IsRemovable()

bool operations_research::sat::ClauseManager::IsRemovable ( SatClause *const clause) const
inline

Definition at line 254 of file clause.h.

◆ KeepClauseForever()

void operations_research::sat::ClauseManager::KeepClauseForever ( SatClause *const clause)
inline

Definition at line 266 of file clause.h.

◆ LastNClauses()

absl::Span< SatClause * > operations_research::sat::ClauseManager::LastNClauses ( int n)
inline

Definition at line 322 of file clause.h.

◆ LazyDelete()

void operations_research::sat::ClauseManager::LazyDelete ( SatClause * clause,
DeletionSourceForStat source )

Definition at line 436 of file clause.cc.

◆ LbdOrZeroIfNotRemovable()

int operations_research::sat::ClauseManager::LbdOrZeroIfNotRemovable ( SatClause *const clause) const
inline

Definition at line 261 of file clause.h.

◆ literal_size()

int64_t operations_research::sat::ClauseManager::literal_size ( ) const
inline

Definition at line 286 of file clause.h.

◆ mutable_clauses_info()

absl::flat_hash_map< SatClause *, ClauseInfo > * operations_research::sat::ClauseManager::mutable_clauses_info ( )
inline

Definition at line 258 of file clause.h.

◆ NextClauseToMinimize()

SatClause * operations_research::sat::ClauseManager::NextClauseToMinimize ( )

Definition at line 702 of file clause.cc.

◆ NextClauseToProbe()

SatClause * operations_research::sat::ClauseManager::NextClauseToProbe ( )

Definition at line 724 of file clause.cc.

◆ NextNewClauseToMinimize()

SatClause * operations_research::sat::ClauseManager::NextNewClauseToMinimize ( )

Definition at line 681 of file clause.cc.

◆ num_clauses()

int64_t operations_research::sat::ClauseManager::num_clauses ( ) const
inline

Definition at line 245 of file clause.h.

◆ num_inspected_clause_literals()

int64_t operations_research::sat::ClauseManager::num_inspected_clause_literals ( ) const
inline

Definition at line 281 of file clause.h.

◆ num_inspected_clauses()

int64_t operations_research::sat::ClauseManager::num_inspected_clauses ( ) const
inline

Definition at line 280 of file clause.h.

◆ num_lbd_promotions()

int64_t operations_research::sat::ClauseManager::num_lbd_promotions ( ) const
inline

Definition at line 293 of file clause.h.

◆ num_removable_clauses()

int64_t operations_research::sat::ClauseManager::num_removable_clauses ( ) const
inline

Definition at line 257 of file clause.h.

◆ num_watched_clauses()

int64_t operations_research::sat::ClauseManager::num_watched_clauses ( ) const
inline

Definition at line 289 of file clause.h.

◆ NumToMinimizeIndexResets()

int64_t operations_research::sat::ClauseManager::NumToMinimizeIndexResets ( ) const
inline

Definition at line 329 of file clause.h.

◆ operator=()

ClauseManager & operations_research::sat::ClauseManager::operator= ( const ClauseManager & )
delete

◆ Propagate()

bool operations_research::sat::ClauseManager::Propagate ( Trail * trail)
finalvirtual

Implements operations_research::sat::SatPropagator.

Definition at line 142 of file clause.cc.

◆ Reason()

absl::Span< const Literal > operations_research::sat::ClauseManager::Reason ( const Trail & trail,
int trail_index,
int64_t conflict_id ) const
finalvirtual

Reimplemented from operations_research::sat::SatPropagator.

Definition at line 277 of file clause.cc.

◆ ReasonClause()

SatClause * operations_research::sat::ClauseManager::ReasonClause ( int trail_index) const

Definition at line 295 of file clause.cc.

◆ ReasonClauseId()

ClauseId operations_research::sat::ClauseManager::ReasonClauseId ( Literal literal) const

Definition at line 732 of file clause.cc.

◆ ReasonClauseOrNull()

SatClause * operations_research::sat::ClauseManager::ReasonClauseOrNull ( BooleanVariable var) const

Definition at line 299 of file clause.cc.

◆ Reimply()

void operations_research::sat::ClauseManager::Reimply ( Trail * trail,
int old_trail_index )
finalvirtual

Reimplemented from operations_research::sat::SatPropagator.

Definition at line 283 of file clause.cc.

◆ RemoveFixedLiteralsAndTestIfTrue()

bool operations_research::sat::ClauseManager::RemoveFixedLiteralsAndTestIfTrue ( SatClause * clause)

Definition at line 514 of file clause.cc.

◆ RescaleClauseActivities()

void operations_research::sat::ClauseManager::RescaleClauseActivities ( double scaling_factor)
inline

Definition at line 269 of file clause.h.

◆ ResetToProbeIndex()

void operations_research::sat::ClauseManager::ResetToProbeIndex ( )
inline

Definition at line 328 of file clause.h.

◆ Resize()

void operations_research::sat::ClauseManager::Resize ( int num_variables)

Definition at line 127 of file clause.cc.

◆ SetAddClauseCallback()

void operations_research::sat::ClauseManager::SetAddClauseCallback ( absl::AnyInvocable< void(int lbd, ClauseId id, absl::Span< const Literal >)> add_clause_callback)
inline

Definition at line 409 of file clause.h.

◆ SetClauseId()

void operations_research::sat::ClauseManager::SetClauseId ( const SatClause * clause,
ClauseId id )
inline

Definition at line 300 of file clause.h.

◆ TakeAddClauseCallback()

absl::AnyInvocable< void(int lbd, ClauseId id, absl::Span< const Literal >)> operations_research::sat::ClauseManager::TakeAddClauseCallback ( )
inline

Definition at line 418 of file clause.h.

◆ WatcherListOnFalse()

const std::vector< Watcher > & operations_research::sat::ClauseManager::WatcherListOnFalse ( Literal false_literal) const
inline

Definition at line 405 of file clause.h.


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