OR-Tools  8.2
SatInterface

Detailed Description

Definition at line 41 of file sat_interface.cc.

Public Types

enum  SynchronizationStatus { MUST_RELOAD , MODEL_SYNCHRONIZED , SOLUTION_SYNCHRONIZED }
 

Public Member Functions

 SatInterface (MPSolver *const solver)
 
 ~SatInterface () override
 
MPSolver::ResultStatus Solve (const MPSolverParameters &param) override
 
bool InterruptSolve () override
 
void Reset () override
 
void SetOptimizationDirection (bool maximize) override
 
void SetVariableBounds (int index, double lb, double ub) override
 
void SetVariableInteger (int index, bool integer) override
 
void SetConstraintBounds (int index, double lb, double ub) override
 
void AddRowConstraint (MPConstraint *const ct) override
 
void AddVariable (MPVariable *const var) override
 
void SetCoefficient (MPConstraint *const constraint, const MPVariable *const variable, double new_value, double old_value) override
 
void ClearConstraint (MPConstraint *const constraint) override
 
void SetObjectiveCoefficient (const MPVariable *const variable, double coefficient) override
 
void SetObjectiveOffset (double value) override
 
void ClearObjective () override
 
bool AddIndicatorConstraint (MPConstraint *const ct) override
 
int64 iterations () const override
 
int64 nodes () const override
 
MPSolver::BasisStatus row_status (int constraint_index) const override
 
MPSolver::BasisStatus column_status (int variable_index) const override
 
bool IsContinuous () const override
 
bool IsLP () const override
 
bool IsMIP () const override
 
std::string SolverVersion () const override
 
void * underlying_solver () override
 
void ExtractNewVariables () override
 
void ExtractNewConstraints () override
 
void ExtractObjective () override
 
void SetParameters (const MPSolverParameters &param) override
 
void SetRelativeMipGap (double value) override
 
void SetPrimalTolerance (double value) override
 
void SetDualTolerance (double value) override
 
void SetPresolveMode (int value) override
 
void SetScalingMode (int value) override
 
void SetLpAlgorithm (int value) override
 
bool SetSolverSpecificParametersAsString (const std::string &parameters) override
 
absl::Status SetNumThreads (int num_threads) override
 
virtual absl::optional< MPSolutionResponse > DirectlySolveProto (const MPModelRequest &request)
 
virtual void Write (const std::string &filename)
 
virtual void BranchingPriorityChangedForVariable (int var_index)
 
double best_objective_bound () const
 
double objective_value () const
 
bool CheckSolutionIsSynchronized () const
 
virtual bool CheckSolutionExists () const
 
bool CheckSolutionIsSynchronizedAndExists () const
 
int last_variable_index () const
 
bool variable_is_extracted (int var_index) const
 
void set_variable_as_extracted (int var_index, bool extracted)
 
bool constraint_is_extracted (int ct_index) const
 
void set_constraint_as_extracted (int ct_index, bool extracted)
 
bool quiet () const
 
void set_quiet (bool quiet_value)
 
MPSolver::ResultStatus result_status () const
 
virtual double ComputeExactConditionNumber () const
 
virtual void SetStartingLpBasis (const std::vector< MPSolver::BasisStatus > &variable_statuses, const std::vector< MPSolver::BasisStatus > &constraint_statuses)
 
virtual bool NextSolution ()
 
virtual void SetCallback (MPCallback *mp_callback)
 
virtual bool SupportsCallbacks () const
 

Static Public Attributes

static constexpr int64 kUnknownNumberOfIterations = -1
 
static constexpr int64 kUnknownNumberOfNodes = -1
 

Protected Member Functions

void ExtractModel ()
 
void ResetExtractionInformation ()
 
void InvalidateSolutionSynchronization ()
 
void SetCommonParameters (const MPSolverParameters &param)
 
void SetMIPParameters (const MPSolverParameters &param)
 
void SetUnsupportedDoubleParam (MPSolverParameters::DoubleParam param)
 
virtual void SetUnsupportedIntegerParam (MPSolverParameters::IntegerParam param)
 
void SetDoubleParamToUnsupportedValue (MPSolverParameters::DoubleParam param, double value)
 
virtual void SetIntegerParamToUnsupportedValue (MPSolverParameters::IntegerParam param, int value)
 

Protected Attributes

MPSolver *const solver_
 
SynchronizationStatus sync_status_
 
MPSolver::ResultStatus result_status_
 
bool maximize_
 
int last_constraint_index_
 
int last_variable_index_
 
double objective_value_
 
double best_objective_bound_
 
bool quiet_
 

Static Protected Attributes

static const int kDummyVariableIndex = 0
 

Member Enumeration Documentation

◆ SynchronizationStatus

enum SynchronizationStatus
inherited
Enumerator
MUST_RELOAD 
MODEL_SYNCHRONIZED 
SOLUTION_SYNCHRONIZED 

Definition at line 1519 of file linear_solver.h.

Constructor & Destructor Documentation

◆ SatInterface()

SatInterface ( MPSolver *const  solver)
explicit

Definition at line 106 of file sat_interface.cc.

◆ ~SatInterface()

~SatInterface ( )
override

Definition at line 109 of file sat_interface.cc.

Member Function Documentation

◆ AddIndicatorConstraint()

bool AddIndicatorConstraint ( MPConstraint *const  ct)
inlineoverridevirtual

Reimplemented from MPSolverInterface.

Definition at line 67 of file sat_interface.cc.

◆ AddRowConstraint()

void AddRowConstraint ( MPConstraint *const  ct)
overridevirtual

Implements MPSolverInterface.

Definition at line 207 of file sat_interface.cc.

◆ AddVariable()

void AddVariable ( MPVariable *const  var)
overridevirtual

Implements MPSolverInterface.

Definition at line 211 of file sat_interface.cc.

◆ best_objective_bound()

double best_objective_bound ( ) const
inherited

Definition at line 1704 of file linear_solver.cc.

◆ BranchingPriorityChangedForVariable()

virtual void BranchingPriorityChangedForVariable ( int  var_index)
inlinevirtualinherited

Reimplemented in SCIPInterface, and GurobiInterface.

Definition at line 1608 of file linear_solver.h.

◆ CheckSolutionExists()

bool CheckSolutionExists ( ) const
virtualinherited

Definition at line 1689 of file linear_solver.cc.

◆ CheckSolutionIsSynchronized()

bool CheckSolutionIsSynchronized ( ) const
inherited

Definition at line 1677 of file linear_solver.cc.

◆ CheckSolutionIsSynchronizedAndExists()

bool CheckSolutionIsSynchronizedAndExists ( ) const
inlineinherited

Definition at line 1635 of file linear_solver.h.

◆ ClearConstraint()

void ClearConstraint ( MPConstraint *const  constraint)
overridevirtual

Implements MPSolverInterface.

Definition at line 221 of file sat_interface.cc.

◆ ClearObjective()

void ClearObjective ( )
overridevirtual

Implements MPSolverInterface.

Definition at line 232 of file sat_interface.cc.

◆ column_status()

MPSolver::BasisStatus column_status ( int  variable_index) const
overridevirtual

Implements MPSolverInterface.

Definition at line 244 of file sat_interface.cc.

◆ ComputeExactConditionNumber()

double ComputeExactConditionNumber ( ) const
virtualinherited

Reimplemented in GurobiInterface.

Definition at line 1728 of file linear_solver.cc.

◆ constraint_is_extracted()

bool constraint_is_extracted ( int  ct_index) const
inlineinherited

Definition at line 1661 of file linear_solver.h.

◆ DirectlySolveProto()

virtual absl::optional<MPSolutionResponse> DirectlySolveProto ( const MPModelRequest &  request)
inlinevirtualinherited

Reimplemented in SCIPInterface, and GurobiInterface.

Definition at line 1552 of file linear_solver.h.

◆ ExtractModel()

void ExtractModel ( )
protectedinherited

Definition at line 1641 of file linear_solver.cc.

◆ ExtractNewConstraints()

void ExtractNewConstraints ( )
overridevirtual

Implements MPSolverInterface.

Definition at line 260 of file sat_interface.cc.

◆ ExtractNewVariables()

void ExtractNewVariables ( )
overridevirtual

Implements MPSolverInterface.

Definition at line 258 of file sat_interface.cc.

◆ ExtractObjective()

void ExtractObjective ( )
overridevirtual

Implements MPSolverInterface.

Definition at line 262 of file sat_interface.cc.

◆ InterruptSolve()

bool InterruptSolve ( )
overridevirtual

Reimplemented from MPSolverInterface.

Definition at line 184 of file sat_interface.cc.

◆ InvalidateSolutionSynchronization()

void InvalidateSolutionSynchronization ( )
protectedinherited

Definition at line 1722 of file linear_solver.cc.

◆ IsContinuous()

bool IsContinuous ( ) const
overridevirtual

Implements MPSolverInterface.

Definition at line 248 of file sat_interface.cc.

◆ IsLP()

bool IsLP ( ) const
overridevirtual

Implements MPSolverInterface.

Definition at line 249 of file sat_interface.cc.

◆ IsMIP()

bool IsMIP ( ) const
overridevirtual

Implements MPSolverInterface.

Definition at line 250 of file sat_interface.cc.

◆ iterations()

int64 iterations ( ) const
overridevirtual

Implements MPSolverInterface.

Definition at line 234 of file sat_interface.cc.

◆ last_variable_index()

int last_variable_index ( ) const
inlineinherited

Definition at line 1653 of file linear_solver.h.

◆ NextSolution()

virtual bool NextSolution ( )
inlinevirtualinherited

Reimplemented in SCIPInterface, and GurobiInterface.

Definition at line 1699 of file linear_solver.h.

◆ nodes()

int64 nodes ( ) const
overridevirtual

Implements MPSolverInterface.

Definition at line 238 of file sat_interface.cc.

◆ objective_value()

double objective_value ( ) const
inherited

Definition at line 1699 of file linear_solver.cc.

◆ quiet()

bool quiet ( ) const
inlineinherited

Definition at line 1669 of file linear_solver.h.

◆ Reset()

void Reset ( )
overridevirtual

Implements MPSolverInterface.

Definition at line 189 of file sat_interface.cc.

◆ ResetExtractionInformation()

void ResetExtractionInformation ( )
protectedinherited

Definition at line 1669 of file linear_solver.cc.

◆ result_status()

MPSolver::ResultStatus result_status ( ) const
inlineinherited

Definition at line 1674 of file linear_solver.h.

◆ row_status()

MPSolver::BasisStatus row_status ( int  constraint_index) const
overridevirtual

Implements MPSolverInterface.

Definition at line 240 of file sat_interface.cc.

◆ set_constraint_as_extracted()

void set_constraint_as_extracted ( int  ct_index,
bool  extracted 
)
inlineinherited

Definition at line 1664 of file linear_solver.h.

◆ set_quiet()

void set_quiet ( bool  quiet_value)
inlineinherited

Definition at line 1671 of file linear_solver.h.

◆ set_variable_as_extracted()

void set_variable_as_extracted ( int  var_index,
bool  extracted 
)
inlineinherited

Definition at line 1658 of file linear_solver.h.

◆ SetCallback()

virtual void SetCallback ( MPCallback mp_callback)
inlinevirtualinherited

Reimplemented in SCIPInterface, and GurobiInterface.

Definition at line 1702 of file linear_solver.h.

◆ SetCoefficient()

void SetCoefficient ( MPConstraint *const  constraint,
const MPVariable *const  variable,
double  new_value,
double  old_value 
)
overridevirtual

Implements MPSolverInterface.

Definition at line 215 of file sat_interface.cc.

◆ SetCommonParameters()

void SetCommonParameters ( const MPSolverParameters param)
protectedinherited

Definition at line 1737 of file linear_solver.cc.

◆ SetConstraintBounds()

void SetConstraintBounds ( int  index,
double  lb,
double  ub 
)
overridevirtual

Implements MPSolverInterface.

Definition at line 203 of file sat_interface.cc.

◆ SetDoubleParamToUnsupportedValue()

void SetDoubleParamToUnsupportedValue ( MPSolverParameters::DoubleParam  param,
double  value 
)
protectedinherited

Definition at line 1773 of file linear_solver.cc.

◆ SetDualTolerance()

void SetDualTolerance ( double  value)
overridevirtual

Implements MPSolverInterface.

Definition at line 279 of file sat_interface.cc.

◆ SetIntegerParamToUnsupportedValue()

void SetIntegerParamToUnsupportedValue ( MPSolverParameters::IntegerParam  param,
int  value 
)
protectedvirtualinherited

Definition at line 1778 of file linear_solver.cc.

◆ SetLpAlgorithm()

void SetLpAlgorithm ( int  value)
overridevirtual

Implements MPSolverInterface.

Definition at line 281 of file sat_interface.cc.

◆ SetMIPParameters()

void SetMIPParameters ( const MPSolverParameters param)
protectedinherited

Definition at line 1758 of file linear_solver.cc.

◆ SetNumThreads()

absl::Status SetNumThreads ( int  num_threads)
overridevirtual

Reimplemented from MPSolverInterface.

Definition at line 272 of file sat_interface.cc.

◆ SetObjectiveCoefficient()

void SetObjectiveCoefficient ( const MPVariable *const  variable,
double  coefficient 
)
overridevirtual

Implements MPSolverInterface.

Definition at line 225 of file sat_interface.cc.

◆ SetObjectiveOffset()

void SetObjectiveOffset ( double  value)
overridevirtual

Implements MPSolverInterface.

Definition at line 230 of file sat_interface.cc.

◆ SetOptimizationDirection()

void SetOptimizationDirection ( bool  maximize)
overridevirtual

Implements MPSolverInterface.

Definition at line 191 of file sat_interface.cc.

◆ SetParameters()

void SetParameters ( const MPSolverParameters param)
overridevirtual

Implements MPSolverInterface.

Definition at line 264 of file sat_interface.cc.

◆ SetPresolveMode()

void SetPresolveMode ( int  value)
overridevirtual

Implements MPSolverInterface.

Definition at line 285 of file sat_interface.cc.

◆ SetPrimalTolerance()

void SetPrimalTolerance ( double  value)
overridevirtual

Implements MPSolverInterface.

Definition at line 278 of file sat_interface.cc.

◆ SetRelativeMipGap()

void SetRelativeMipGap ( double  value)
overridevirtual

Implements MPSolverInterface.

Definition at line 282 of file sat_interface.cc.

◆ SetScalingMode()

void SetScalingMode ( int  value)
overridevirtual

Implements MPSolverInterface.

Definition at line 280 of file sat_interface.cc.

◆ SetSolverSpecificParametersAsString()

bool SetSolverSpecificParametersAsString ( const std::string &  parameters)
overridevirtual

Reimplemented from MPSolverInterface.

Definition at line 287 of file sat_interface.cc.

◆ SetStartingLpBasis()

virtual void SetStartingLpBasis ( const std::vector< MPSolver::BasisStatus > &  variable_statuses,
const std::vector< MPSolver::BasisStatus > &  constraint_statuses 
)
inlinevirtualinherited

Reimplemented in GLOPInterface.

Definition at line 1690 of file linear_solver.h.

◆ SetUnsupportedDoubleParam()

void SetUnsupportedDoubleParam ( MPSolverParameters::DoubleParam  param)
protectedinherited

Definition at line 1765 of file linear_solver.cc.

◆ SetUnsupportedIntegerParam()

void SetUnsupportedIntegerParam ( MPSolverParameters::IntegerParam  param)
protectedvirtualinherited

Definition at line 1769 of file linear_solver.cc.

◆ SetVariableBounds()

void SetVariableBounds ( int  index,
double  lb,
double  ub 
)
overridevirtual

Implements MPSolverInterface.

Definition at line 195 of file sat_interface.cc.

◆ SetVariableInteger()

void SetVariableInteger ( int  index,
bool  integer 
)
overridevirtual

Implements MPSolverInterface.

Definition at line 199 of file sat_interface.cc.

◆ Solve()

MPSolver::ResultStatus Solve ( const MPSolverParameters param)
overridevirtual

Implements MPSolverInterface.

Definition at line 111 of file sat_interface.cc.

◆ SolverVersion()

std::string SolverVersion ( ) const
overridevirtual

Implements MPSolverInterface.

Definition at line 252 of file sat_interface.cc.

◆ SupportsCallbacks()

virtual bool SupportsCallbacks ( ) const
inlinevirtualinherited

Reimplemented in SCIPInterface, and GurobiInterface.

Definition at line 1706 of file linear_solver.h.

◆ underlying_solver()

void * underlying_solver ( )
overridevirtual

Implements MPSolverInterface.

Definition at line 256 of file sat_interface.cc.

◆ variable_is_extracted()

bool variable_is_extracted ( int  var_index) const
inlineinherited

Definition at line 1655 of file linear_solver.h.

◆ Write()

void Write ( const std::string &  filename)
virtualinherited

Reimplemented in GurobiInterface.

Definition at line 1637 of file linear_solver.cc.

Member Data Documentation

◆ best_objective_bound_

double best_objective_bound_
protectedinherited

Definition at line 1733 of file linear_solver.h.

◆ kDummyVariableIndex

const int kDummyVariableIndex = 0
staticprotectedinherited

Definition at line 1740 of file linear_solver.h.

◆ kUnknownNumberOfIterations

constexpr int64 kUnknownNumberOfIterations = -1
staticconstexprinherited

Definition at line 1534 of file linear_solver.h.

◆ kUnknownNumberOfNodes

constexpr int64 kUnknownNumberOfNodes = -1
staticconstexprinherited

Definition at line 1537 of file linear_solver.h.

◆ last_constraint_index_

int last_constraint_index_
protectedinherited

Definition at line 1725 of file linear_solver.h.

◆ last_variable_index_

int last_variable_index_
protectedinherited

Definition at line 1727 of file linear_solver.h.

◆ maximize_

bool maximize_
protectedinherited

Definition at line 1722 of file linear_solver.h.

◆ objective_value_

double objective_value_
protectedinherited

Definition at line 1730 of file linear_solver.h.

◆ quiet_

bool quiet_
protectedinherited

Definition at line 1736 of file linear_solver.h.

◆ result_status_

MPSolver::ResultStatus result_status_
protectedinherited

Definition at line 1720 of file linear_solver.h.

◆ solver_

MPSolver* const solver_
protectedinherited

Definition at line 1715 of file linear_solver.h.

◆ sync_status_

SynchronizationStatus sync_status_
protectedinherited

Definition at line 1717 of file linear_solver.h.


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