OR-Tools  9.3
BopInterface

Detailed Description

Definition at line 52 of file bop_interface.cc.

Public Types

enum  SynchronizationStatus { MUST_RELOAD , MODEL_SYNCHRONIZED , SOLUTION_SYNCHRONIZED }
 

Public Member Functions

 BopInterface (MPSolver *const solver)
 
 ~BopInterface () override
 
MPSolver::ResultStatus Solve (const MPSolverParameters &param) 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
 
int64_t iterations () const override
 
int64_t 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
 
bool InterruptSolve () 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
 
virtual absl::optional< MPSolutionResponse > DirectlySolveProto (const MPModelRequest &request, std::atomic< bool > *interrupt)
 
virtual void Write (const std::string &filename)
 
virtual bool AddIndicatorConstraint (MPConstraint *const ct)
 
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_t kUnknownNumberOfIterations = -1
 
static constexpr int64_t 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)
 
virtual absl::Status SetNumThreads (int num_threads)
 

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 1561 of file linear_solver.h.

Constructor & Destructor Documentation

◆ BopInterface()

BopInterface ( MPSolver *const  solver)
explicit

Definition at line 117 of file bop_interface.cc.

◆ ~BopInterface()

~BopInterface ( )
override

Definition at line 126 of file bop_interface.cc.

Member Function Documentation

◆ AddIndicatorConstraint()

virtual bool AddIndicatorConstraint ( MPConstraint *const  ct)
inlinevirtualinherited

Reimplemented in GurobiInterface, SatInterface, and SCIPInterface.

Definition at line 1630 of file linear_solver.h.

◆ AddRowConstraint()

void AddRowConstraint ( MPConstraint *const  ct)
overridevirtual

Implements MPSolverInterface.

Definition at line 231 of file bop_interface.cc.

◆ AddVariable()

void AddVariable ( MPVariable *const  var)
overridevirtual

Implements MPSolverInterface.

Definition at line 235 of file bop_interface.cc.

◆ best_objective_bound()

double best_objective_bound ( ) const
inherited

Definition at line 1886 of file linear_solver.cc.

◆ BranchingPriorityChangedForVariable()

virtual void BranchingPriorityChangedForVariable ( int  var_index)
inlinevirtualinherited

Reimplemented in GurobiInterface, and SCIPInterface.

Definition at line 1656 of file linear_solver.h.

◆ CheckSolutionExists()

bool CheckSolutionExists ( ) const
virtualinherited

Definition at line 1871 of file linear_solver.cc.

◆ CheckSolutionIsSynchronized()

bool CheckSolutionIsSynchronized ( ) const
inherited

Definition at line 1859 of file linear_solver.cc.

◆ CheckSolutionIsSynchronizedAndExists()

bool CheckSolutionIsSynchronizedAndExists ( ) const
inlineinherited

Definition at line 1683 of file linear_solver.h.

◆ ClearConstraint()

void ClearConstraint ( MPConstraint *const  constraint)
overridevirtual

Implements MPSolverInterface.

Definition at line 245 of file bop_interface.cc.

◆ ClearObjective()

void ClearObjective ( )
overridevirtual

Implements MPSolverInterface.

Definition at line 256 of file bop_interface.cc.

◆ column_status()

MPSolver::BasisStatus column_status ( int  variable_index) const
overridevirtual

Implements MPSolverInterface.

Definition at line 272 of file bop_interface.cc.

◆ ComputeExactConditionNumber()

double ComputeExactConditionNumber ( ) const
virtualinherited

Reimplemented in GurobiInterface.

Definition at line 1910 of file linear_solver.cc.

◆ constraint_is_extracted()

bool constraint_is_extracted ( int  ct_index) const
inlineinherited

Definition at line 1709 of file linear_solver.h.

◆ DirectlySolveProto()

virtual absl::optional< MPSolutionResponse > DirectlySolveProto ( const MPModelRequest &  request,
std::atomic< bool > *  interrupt 
)
inlinevirtualinherited

Reimplemented in GurobiInterface, PdlpInterface, SatInterface, and SCIPInterface.

Definition at line 1597 of file linear_solver.h.

◆ ExtractModel()

void ExtractModel ( )
protectedinherited

Definition at line 1823 of file linear_solver.cc.

◆ ExtractNewConstraints()

void ExtractNewConstraints ( )
overridevirtual

Implements MPSolverInterface.

Definition at line 312 of file bop_interface.cc.

◆ ExtractNewVariables()

void ExtractNewVariables ( )
overridevirtual

Implements MPSolverInterface.

Definition at line 293 of file bop_interface.cc.

◆ ExtractObjective()

void ExtractObjective ( )
overridevirtual

Implements MPSolverInterface.

Definition at line 337 of file bop_interface.cc.

◆ InterruptSolve()

bool InterruptSolve ( )
overridevirtual

Reimplemented from MPSolverInterface.

Definition at line 285 of file bop_interface.cc.

◆ InvalidateSolutionSynchronization()

void InvalidateSolutionSynchronization ( )
protectedinherited

Definition at line 1904 of file linear_solver.cc.

◆ IsContinuous()

bool IsContinuous ( ) const
overridevirtual

Implements MPSolverInterface.

Definition at line 276 of file bop_interface.cc.

◆ IsLP()

bool IsLP ( ) const
overridevirtual

Implements MPSolverInterface.

Definition at line 277 of file bop_interface.cc.

◆ IsMIP()

bool IsMIP ( ) const
overridevirtual

Implements MPSolverInterface.

Definition at line 278 of file bop_interface.cc.

◆ iterations()

int64_t iterations ( ) const
overridevirtual

Implements MPSolverInterface.

Definition at line 258 of file bop_interface.cc.

◆ last_variable_index()

int last_variable_index ( ) const
inlineinherited

Definition at line 1701 of file linear_solver.h.

◆ NextSolution()

virtual bool NextSolution ( )
inlinevirtualinherited

Reimplemented in GurobiInterface, and SCIPInterface.

Definition at line 1747 of file linear_solver.h.

◆ nodes()

int64_t nodes ( ) const
overridevirtual

Implements MPSolverInterface.

Definition at line 263 of file bop_interface.cc.

◆ objective_value()

double objective_value ( ) const
inherited

Definition at line 1881 of file linear_solver.cc.

◆ quiet()

bool quiet ( ) const
inlineinherited

Definition at line 1717 of file linear_solver.h.

◆ Reset()

void Reset ( )
overridevirtual

Implements MPSolverInterface.

Definition at line 209 of file bop_interface.cc.

◆ ResetExtractionInformation()

void ResetExtractionInformation ( )
protectedinherited

Definition at line 1851 of file linear_solver.cc.

◆ result_status()

MPSolver::ResultStatus result_status ( ) const
inlineinherited

Definition at line 1722 of file linear_solver.h.

◆ row_status()

MPSolver::BasisStatus row_status ( int  constraint_index) const
overridevirtual

Implements MPSolverInterface.

Definition at line 268 of file bop_interface.cc.

◆ set_constraint_as_extracted()

void set_constraint_as_extracted ( int  ct_index,
bool  extracted 
)
inlineinherited

Definition at line 1712 of file linear_solver.h.

◆ set_quiet()

void set_quiet ( bool  quiet_value)
inlineinherited

Definition at line 1719 of file linear_solver.h.

◆ set_variable_as_extracted()

void set_variable_as_extracted ( int  var_index,
bool  extracted 
)
inlineinherited

Definition at line 1706 of file linear_solver.h.

◆ SetCallback()

virtual void SetCallback ( MPCallback mp_callback)
inlinevirtualinherited

Reimplemented in GurobiInterface, and SCIPInterface.

Definition at line 1750 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 239 of file bop_interface.cc.

◆ SetCommonParameters()

void SetCommonParameters ( const MPSolverParameters param)
protectedinherited

Definition at line 1919 of file linear_solver.cc.

◆ SetConstraintBounds()

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

Implements MPSolverInterface.

Definition at line 227 of file bop_interface.cc.

◆ SetDoubleParamToUnsupportedValue()

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

Definition at line 1955 of file linear_solver.cc.

◆ SetDualTolerance()

void SetDualTolerance ( double  value)
overridevirtual

Implements MPSolverInterface.

Definition at line 354 of file bop_interface.cc.

◆ SetIntegerParamToUnsupportedValue()

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

Definition at line 1960 of file linear_solver.cc.

◆ SetLpAlgorithm()

void SetLpAlgorithm ( int  value)
overridevirtual

Implements MPSolverInterface.

Definition at line 356 of file bop_interface.cc.

◆ SetMIPParameters()

void SetMIPParameters ( const MPSolverParameters param)
protectedinherited

Definition at line 1940 of file linear_solver.cc.

◆ SetNumThreads()

absl::Status SetNumThreads ( int  num_threads)
protectedvirtualinherited

Reimplemented in CBCInterface, PdlpInterface, and SatInterface.

Definition at line 1966 of file linear_solver.cc.

◆ SetObjectiveCoefficient()

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

Implements MPSolverInterface.

Definition at line 249 of file bop_interface.cc.

◆ SetObjectiveOffset()

void SetObjectiveOffset ( double  value)
overridevirtual

Implements MPSolverInterface.

Definition at line 254 of file bop_interface.cc.

◆ SetOptimizationDirection()

void SetOptimizationDirection ( bool  maximize)
overridevirtual

Implements MPSolverInterface.

Definition at line 215 of file bop_interface.cc.

◆ SetParameters()

void SetParameters ( const MPSolverParameters param)
overridevirtual

Implements MPSolverInterface.

Definition at line 347 of file bop_interface.cc.

◆ SetPresolveMode()

void SetPresolveMode ( int  value)
overridevirtual

Implements MPSolverInterface.

Definition at line 359 of file bop_interface.cc.

◆ SetPrimalTolerance()

void SetPrimalTolerance ( double  value)
overridevirtual

Implements MPSolverInterface.

Definition at line 353 of file bop_interface.cc.

◆ SetRelativeMipGap()

void SetRelativeMipGap ( double  value)
overridevirtual

Implements MPSolverInterface.

Definition at line 357 of file bop_interface.cc.

◆ SetScalingMode()

void SetScalingMode ( int  value)
overridevirtual

Implements MPSolverInterface.

Definition at line 355 of file bop_interface.cc.

◆ SetSolverSpecificParametersAsString()

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

Reimplemented from MPSolverInterface.

Definition at line 374 of file bop_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 1738 of file linear_solver.h.

◆ SetUnsupportedDoubleParam()

void SetUnsupportedDoubleParam ( MPSolverParameters::DoubleParam  param)
protectedinherited

Definition at line 1947 of file linear_solver.cc.

◆ SetUnsupportedIntegerParam()

void SetUnsupportedIntegerParam ( MPSolverParameters::IntegerParam  param)
protectedvirtualinherited

Definition at line 1951 of file linear_solver.cc.

◆ SetVariableBounds()

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

Implements MPSolverInterface.

Definition at line 219 of file bop_interface.cc.

◆ SetVariableInteger()

void SetVariableInteger ( int  index,
bool  integer 
)
overridevirtual

Implements MPSolverInterface.

Definition at line 223 of file bop_interface.cc.

◆ Solve()

MPSolver::ResultStatus Solve ( const MPSolverParameters param)
overridevirtual

Implements MPSolverInterface.

Definition at line 128 of file bop_interface.cc.

◆ SolverVersion()

std::string SolverVersion ( ) const
overridevirtual

Implements MPSolverInterface.

Definition at line 280 of file bop_interface.cc.

◆ SupportsCallbacks()

virtual bool SupportsCallbacks ( ) const
inlinevirtualinherited

Reimplemented in GurobiInterface, and SCIPInterface.

Definition at line 1754 of file linear_solver.h.

◆ underlying_solver()

void * underlying_solver ( )
overridevirtual

Implements MPSolverInterface.

Definition at line 290 of file bop_interface.cc.

◆ variable_is_extracted()

bool variable_is_extracted ( int  var_index) const
inlineinherited

Definition at line 1703 of file linear_solver.h.

◆ Write()

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

Reimplemented in GurobiInterface.

Definition at line 1819 of file linear_solver.cc.

Member Data Documentation

◆ best_objective_bound_

double best_objective_bound_
protectedinherited

Definition at line 1781 of file linear_solver.h.

◆ kDummyVariableIndex

const int kDummyVariableIndex = 0
staticprotectedinherited

Definition at line 1788 of file linear_solver.h.

◆ kUnknownNumberOfIterations

constexpr int64_t kUnknownNumberOfIterations = -1
staticconstexprinherited

Definition at line 1576 of file linear_solver.h.

◆ kUnknownNumberOfNodes

constexpr int64_t kUnknownNumberOfNodes = -1
staticconstexprinherited

Definition at line 1579 of file linear_solver.h.

◆ last_constraint_index_

int last_constraint_index_
protectedinherited

Definition at line 1773 of file linear_solver.h.

◆ last_variable_index_

int last_variable_index_
protectedinherited

Definition at line 1775 of file linear_solver.h.

◆ maximize_

bool maximize_
protectedinherited

Definition at line 1770 of file linear_solver.h.

◆ objective_value_

double objective_value_
protectedinherited

Definition at line 1778 of file linear_solver.h.

◆ quiet_

bool quiet_
protectedinherited

Definition at line 1784 of file linear_solver.h.

◆ result_status_

MPSolver::ResultStatus result_status_
protectedinherited

Definition at line 1768 of file linear_solver.h.

◆ solver_

MPSolver* const solver_
protectedinherited

Definition at line 1763 of file linear_solver.h.

◆ sync_status_

SynchronizationStatus sync_status_
protectedinherited

Definition at line 1765 of file linear_solver.h.


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