Google OR-Tools v9.11
a fast and portable software suite for combinatorial optimization
Loading...
Searching...
No Matches
operations_research::SatInterface Class Reference
Inheritance diagram for operations_research::SatInterface:
operations_research::MPSolverInterface

Public Member Functions

 SatInterface (MPSolver *solver)
 
 ~SatInterface () override
 
MPSolver::ResultStatus Solve (const MPSolverParameters &param) override
 --— Solve --—
 
bool InterruptSolve () override
 
bool SupportsDirectlySolveProto (std::atomic< bool > *interrupt) const override
 --— Directly solve proto is supported —
 
MPSolutionResponse DirectlySolveProto (LazyMutableCopy< MPModelRequest > request, std::atomic< bool > *interrupt) override
 
void Reset () override
 --— Model modifications and extraction --—
 
void SetOptimizationDirection (bool maximize) override
 Sets the optimization direction (min/max).
 
void SetVariableBounds (int index, double lb, double ub) override
 Modifies bounds of an extracted variable.
 
void SetVariableInteger (int index, bool integer) override
 Modifies integrality of an extracted variable.
 
void SetConstraintBounds (int index, double lb, double ub) override
 Modify bounds of an extracted variable.
 
void AddRowConstraint (MPConstraint *ct) override
 Adds a linear constraint.
 
void AddVariable (MPVariable *var) override
 Add a variable.
 
void SetCoefficient (MPConstraint *constraint, const MPVariable *variable, double new_value, double old_value) override
 Changes a coefficient in a constraint.
 
void ClearConstraint (MPConstraint *constraint) override
 Clears a constraint from all its terms.
 
void SetObjectiveCoefficient (const MPVariable *variable, double coefficient) override
 Changes a coefficient in the linear objective.
 
void SetObjectiveOffset (double value) override
 Changes the constant term in the linear objective.
 
void ClearObjective () override
 Clears the objective from all its terms.
 
bool AddIndicatorConstraint (MPConstraint *const ct) override
 
int64_t iterations () const override
 ---— Query statistics on the solution and the solve ---—
 
int64_t nodes () const override
 
MPSolver::BasisStatus row_status (int constraint_index) const override
 Returns the basis status of a row.
 
MPSolver::BasisStatus column_status (int variable_index) const override
 Returns the basis status of a constraint.
 
bool IsContinuous () const override
 --— Misc --—
 
bool IsLP () const override
 Returns true if the problem is continuous and linear.
 
bool IsMIP () const override
 Returns true if the problem is discrete and linear.
 
std::string SolverVersion () const override
 Returns a string describing the underlying solver and its version.
 
void * underlying_solver () override
 Returns the underlying solver.
 
void ExtractNewVariables () override
 Extracts the variables that have not been extracted yet.
 
void ExtractNewConstraints () override
 Extracts the constraints that have not been extracted yet.
 
void ExtractObjective () override
 Extracts the objective.
 
void SetParameters (const MPSolverParameters &param) override
 Sets all parameters in the underlying solver.
 
void SetRelativeMipGap (double value) override
 Sets each parameter in the underlying solver.
 
void SetPrimalTolerance (double value) override
 All these have no effect.
 
void SetDualTolerance (double value) override
 
void SetPresolveMode (int value) override
 
void SetScalingMode (int value) override
 Sets the scaling mode.
 
void SetLpAlgorithm (int value) override
 
bool SetSolverSpecificParametersAsString (const std::string &parameters) override
 
absl::Status SetNumThreads (int num_threads) override
 Sets the number of threads to be used by the solver.
 
- Public Member Functions inherited from operations_research::MPSolverInterface
 MPSolverInterface (MPSolver *solver)
 
virtual ~MPSolverInterface ()
 
virtual void Write (const std::string &filename)
 
virtual void BranchingPriorityChangedForVariable (int)
 
double best_objective_bound () const
 
double objective_value () const
 Returns the objective value of the best solution found so far.
 
bool CheckSolutionIsSynchronized () const
 
virtual bool CheckSolutionExists () const
 
bool CheckSolutionIsSynchronizedAndExists () const
 Handy shortcut to do both checks above (it is often used).
 
int last_variable_index () const
 Returns the index of the last variable extracted.
 
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
 Returns the boolean indicating the verbosity of the solver output.
 
void set_quiet (bool quiet_value)
 Sets the boolean indicating the verbosity of the solver output.
 
MPSolver::ResultStatus result_status () const
 Returns the result status of the last solve.
 
virtual double ComputeExactConditionNumber () const
 
virtual void SetStartingLpBasis (const std::vector< MPSolver::BasisStatus > &, const std::vector< MPSolver::BasisStatus > &)
 See MPSolver::SetStartingLpBasis().
 
virtual double infinity ()
 
virtual bool NextSolution ()
 See MPSolver::NextSolution() for contract.
 
virtual void SetCallback (MPCallback *)
 See MPSolver::SetCallback() for details.
 
virtual bool SupportsCallbacks () const
 

Additional Inherited Members

- Public Types inherited from operations_research::MPSolverInterface
enum  SynchronizationStatus { MUST_RELOAD , MODEL_SYNCHRONIZED , SOLUTION_SYNCHRONIZED }
 
- Static Public Attributes inherited from operations_research::MPSolverInterface
static constexpr int64_t kUnknownNumberOfIterations = -1
 
static constexpr int64_t kUnknownNumberOfNodes = -1
 
- Protected Member Functions inherited from operations_research::MPSolverInterface
void ExtractModel ()
 Extracts model stored in MPSolver.
 
void ResetExtractionInformation ()
 Resets the extraction information.
 
void InvalidateSolutionSynchronization ()
 
void SetCommonParameters (const MPSolverParameters &param)
 Sets parameters common to LP and MIP in the underlying solver.
 
void SetMIPParameters (const MPSolverParameters &param)
 Sets MIP specific parameters in the underlying solver.
 
void SetUnsupportedDoubleParam (MPSolverParameters::DoubleParam param)
 Sets an unsupported double parameter.
 
virtual void SetUnsupportedIntegerParam (MPSolverParameters::IntegerParam param)
 Sets an unsupported integer parameter.
 
void SetDoubleParamToUnsupportedValue (MPSolverParameters::DoubleParam param, double value)
 Sets a supported double parameter to an unsupported value.
 
virtual void SetIntegerParamToUnsupportedValue (MPSolverParameters::IntegerParam param, int value)
 Sets a supported integer parameter to an unsupported value.
 
- Protected Attributes inherited from operations_research::MPSolverInterface
MPSolver *const solver_
 
SynchronizationStatus sync_status_
 Indicates whether the model and the solution are synchronized.
 
MPSolver::ResultStatus result_status_
 
bool maximize_
 Optimization direction.
 
int last_constraint_index_
 Index in MPSolver::variables_ of last constraint extracted.
 
int last_variable_index_
 Index in MPSolver::constraints_ of last variable extracted.
 
double objective_value_
 The value of the objective function.
 
double best_objective_bound_
 The value of the best objective bound. Used only for MIP solvers.
 
bool quiet_
 Boolean indicator for the verbosity of the solver output.
 
- Static Protected Attributes inherited from operations_research::MPSolverInterface
static const int kDummyVariableIndex = 0
 -------— MPSolverInterface -------—
 

Detailed Description

Definition at line 36 of file sat_interface.cc.

Constructor & Destructor Documentation

◆ SatInterface()

operations_research::SatInterface::SatInterface ( MPSolver * solver)
explicit

Definition at line 109 of file sat_interface.cc.

◆ ~SatInterface()

operations_research::SatInterface::~SatInterface ( )
override

Definition at line 112 of file sat_interface.cc.

Member Function Documentation

◆ AddIndicatorConstraint()

bool operations_research::SatInterface::AddIndicatorConstraint ( MPConstraint *const )
inlineoverridevirtual

Adds an indicator constraint. Returns true if the feature is supported by the underlying solver.

Reimplemented from operations_research::MPSolverInterface.

Definition at line 70 of file sat_interface.cc.

◆ AddRowConstraint()

void operations_research::SatInterface::AddRowConstraint ( MPConstraint * ct)
overridevirtual

Adds a linear constraint.

Implements operations_research::MPSolverInterface.

Definition at line 186 of file sat_interface.cc.

◆ AddVariable()

void operations_research::SatInterface::AddVariable ( MPVariable * var)
overridevirtual

Add a variable.

Implements operations_research::MPSolverInterface.

Definition at line 190 of file sat_interface.cc.

◆ ClearConstraint()

void operations_research::SatInterface::ClearConstraint ( MPConstraint * constraint)
overridevirtual

Clears a constraint from all its terms.

Implements operations_research::MPSolverInterface.

Definition at line 200 of file sat_interface.cc.

◆ ClearObjective()

void operations_research::SatInterface::ClearObjective ( )
overridevirtual

Clears the objective from all its terms.

Implements operations_research::MPSolverInterface.

Definition at line 211 of file sat_interface.cc.

◆ column_status()

MPSolver::BasisStatus operations_research::SatInterface::column_status ( int variable_index) const
overridevirtual

Returns the basis status of a constraint.

Implements operations_research::MPSolverInterface.

Definition at line 223 of file sat_interface.cc.

◆ DirectlySolveProto()

MPSolutionResponse operations_research::SatInterface::DirectlySolveProto ( LazyMutableCopy< MPModelRequest > request,
std::atomic< bool > * interrupt )
inlineoverridevirtual

Reimplemented from operations_research::MPSolverInterface.

Definition at line 49 of file sat_interface.cc.

◆ ExtractNewConstraints()

void operations_research::SatInterface::ExtractNewConstraints ( )
overridevirtual

Extracts the constraints that have not been extracted yet.

Implements operations_research::MPSolverInterface.

Definition at line 239 of file sat_interface.cc.

◆ ExtractNewVariables()

void operations_research::SatInterface::ExtractNewVariables ( )
overridevirtual

Extracts the variables that have not been extracted yet.

Implements operations_research::MPSolverInterface.

Definition at line 237 of file sat_interface.cc.

◆ ExtractObjective()

void operations_research::SatInterface::ExtractObjective ( )
overridevirtual

Extracts the objective.

Implements operations_research::MPSolverInterface.

Definition at line 241 of file sat_interface.cc.

◆ InterruptSolve()

bool operations_research::SatInterface::InterruptSolve ( )
overridevirtual

Reimplemented from operations_research::MPSolverInterface.

Definition at line 163 of file sat_interface.cc.

◆ IsContinuous()

bool operations_research::SatInterface::IsContinuous ( ) const
overridevirtual

--— Misc --—

Implements operations_research::MPSolverInterface.

Definition at line 227 of file sat_interface.cc.

◆ IsLP()

bool operations_research::SatInterface::IsLP ( ) const
overridevirtual

Returns true if the problem is continuous and linear.

Implements operations_research::MPSolverInterface.

Definition at line 228 of file sat_interface.cc.

◆ IsMIP()

bool operations_research::SatInterface::IsMIP ( ) const
overridevirtual

Returns true if the problem is discrete and linear.

Implements operations_research::MPSolverInterface.

Definition at line 229 of file sat_interface.cc.

◆ iterations()

int64_t operations_research::SatInterface::iterations ( ) const
overridevirtual

---— Query statistics on the solution and the solve ---—

Implements operations_research::MPSolverInterface.

Definition at line 213 of file sat_interface.cc.

◆ nodes()

int64_t operations_research::SatInterface::nodes ( ) const
overridevirtual

Returns the number of branch-and-bound nodes. The problem must be discrete, otherwise it crashes, or returns kUnknownNumberOfNodes in NDEBUG mode.

Implements operations_research::MPSolverInterface.

Definition at line 217 of file sat_interface.cc.

◆ Reset()

void operations_research::SatInterface::Reset ( )
overridevirtual

--— Model modifications and extraction --—

Implements operations_research::MPSolverInterface.

Definition at line 168 of file sat_interface.cc.

◆ row_status()

MPSolver::BasisStatus operations_research::SatInterface::row_status ( int constraint_index) const
overridevirtual

Returns the basis status of a row.

Implements operations_research::MPSolverInterface.

Definition at line 219 of file sat_interface.cc.

◆ SetCoefficient()

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

Changes a coefficient in a constraint.

Implements operations_research::MPSolverInterface.

Definition at line 194 of file sat_interface.cc.

◆ SetConstraintBounds()

void operations_research::SatInterface::SetConstraintBounds ( int index,
double lb,
double ub )
overridevirtual

Modify bounds of an extracted variable.

Implements operations_research::MPSolverInterface.

Definition at line 182 of file sat_interface.cc.

◆ SetDualTolerance()

void operations_research::SatInterface::SetDualTolerance ( double value)
overridevirtual

Implements operations_research::MPSolverInterface.

Definition at line 256 of file sat_interface.cc.

◆ SetLpAlgorithm()

void operations_research::SatInterface::SetLpAlgorithm ( int value)
overridevirtual

Implements operations_research::MPSolverInterface.

Definition at line 258 of file sat_interface.cc.

◆ SetNumThreads()

absl::Status operations_research::SatInterface::SetNumThreads ( int num_threads)
overridevirtual

Sets the number of threads to be used by the solver.

Reimplemented from operations_research::MPSolverInterface.

Definition at line 249 of file sat_interface.cc.

◆ SetObjectiveCoefficient()

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

Changes a coefficient in the linear objective.

Implements operations_research::MPSolverInterface.

Definition at line 204 of file sat_interface.cc.

◆ SetObjectiveOffset()

void operations_research::SatInterface::SetObjectiveOffset ( double value)
overridevirtual

Changes the constant term in the linear objective.

Implements operations_research::MPSolverInterface.

Definition at line 209 of file sat_interface.cc.

◆ SetOptimizationDirection()

void operations_research::SatInterface::SetOptimizationDirection ( bool maximize)
overridevirtual

Sets the optimization direction (min/max).

Implements operations_research::MPSolverInterface.

Definition at line 170 of file sat_interface.cc.

◆ SetParameters()

void operations_research::SatInterface::SetParameters ( const MPSolverParameters & param)
overridevirtual

Sets all parameters in the underlying solver.

Implements operations_research::MPSolverInterface.

Definition at line 243 of file sat_interface.cc.

◆ SetPresolveMode()

void operations_research::SatInterface::SetPresolveMode ( int value)
overridevirtual
Todo
(user): Implement me.

Implements operations_research::MPSolverInterface.

Definition at line 262 of file sat_interface.cc.

◆ SetPrimalTolerance()

void operations_research::SatInterface::SetPrimalTolerance ( double value)
overridevirtual

All these have no effect.

Implements operations_research::MPSolverInterface.

Definition at line 255 of file sat_interface.cc.

◆ SetRelativeMipGap()

void operations_research::SatInterface::SetRelativeMipGap ( double value)
overridevirtual

Sets each parameter in the underlying solver.

Implements operations_research::MPSolverInterface.

Definition at line 259 of file sat_interface.cc.

◆ SetScalingMode()

void operations_research::SatInterface::SetScalingMode ( int value)
overridevirtual

Sets the scaling mode.

Implements operations_research::MPSolverInterface.

Definition at line 257 of file sat_interface.cc.

◆ SetSolverSpecificParametersAsString()

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

Pass solver specific parameters in text format. The format is solver-specific and is the same as the corresponding solver configuration file format. Returns true if the operation was successful.

Default implementation returns true if the input is empty. It returns false and logs a WARNING if the input is not empty.

Reimplemented from operations_research::MPSolverInterface.

Definition at line 264 of file sat_interface.cc.

◆ SetVariableBounds()

void operations_research::SatInterface::SetVariableBounds ( int index,
double lb,
double ub )
overridevirtual

Modifies bounds of an extracted variable.

Implements operations_research::MPSolverInterface.

Definition at line 174 of file sat_interface.cc.

◆ SetVariableInteger()

void operations_research::SatInterface::SetVariableInteger ( int index,
bool integer )
overridevirtual

Modifies integrality of an extracted variable.

Implements operations_research::MPSolverInterface.

Definition at line 178 of file sat_interface.cc.

◆ Solve()

MPSolver::ResultStatus operations_research::SatInterface::Solve ( const MPSolverParameters & param)
overridevirtual

--— Solve --—

Reset extraction as this interface is not incremental yet.

Time limit.

Mark variables and constraints as extracted.

The solution must be marked as synchronized even when no solution exists.

Implements operations_research::MPSolverInterface.

Definition at line 114 of file sat_interface.cc.

◆ SolverVersion()

std::string operations_research::SatInterface::SolverVersion ( ) const
overridevirtual

Returns a string describing the underlying solver and its version.

Implements operations_research::MPSolverInterface.

Definition at line 231 of file sat_interface.cc.

◆ SupportsDirectlySolveProto()

bool operations_research::SatInterface::SupportsDirectlySolveProto ( std::atomic< bool > * interrupt) const
inlineoverridevirtual

--— Directly solve proto is supported —

Reimplemented from operations_research::MPSolverInterface.

Definition at line 46 of file sat_interface.cc.

◆ underlying_solver()

void * operations_research::SatInterface::underlying_solver ( )
overridevirtual

Returns the underlying solver.

Implements operations_research::MPSolverInterface.

Definition at line 235 of file sat_interface.cc.


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