OR-Tools  9.6
GLOPInterface

Detailed Description

Definition at line 35 of file glop_interface.cc.

Public Types

enum  SynchronizationStatus { MUST_RELOAD , MODEL_SYNCHRONIZED , SOLUTION_SYNCHRONIZED }
 

Public Member Functions

 GLOPInterface (MPSolver *const solver)
 
 ~GLOPInterface () 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
 
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
 
void * underlying_solver () override
 
void ExtractNewVariables () override
 
void ExtractNewConstraints () override
 
void ExtractObjective () override
 
void SetStartingLpBasis (const std::vector< MPSolver::BasisStatus > &variable_statuses, const std::vector< MPSolver::BasisStatus > &constraint_statuses) 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 std::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 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 1574 of file linear_solver.h.

Constructor & Destructor Documentation

◆ GLOPInterface()

GLOPInterface ( MPSolver *const  solver)
explicit

Definition at line 104 of file glop_interface.cc.

◆ ~GLOPInterface()

~GLOPInterface ( )
override

Definition at line 113 of file glop_interface.cc.

Member Function Documentation

◆ AddIndicatorConstraint()

virtual bool AddIndicatorConstraint ( MPConstraint *const  ct)
inlinevirtualinherited

Reimplemented in SCIPInterface, SatInterface, and GurobiInterface.

Definition at line 1643 of file linear_solver.h.

◆ AddRowConstraint()

void AddRowConstraint ( MPConstraint *const  ct)
overridevirtual

Implements MPSolverInterface.

Definition at line 212 of file glop_interface.cc.

◆ AddVariable()

void AddVariable ( MPVariable *const  var)
overridevirtual

Implements MPSolverInterface.

Definition at line 216 of file glop_interface.cc.

◆ best_objective_bound()

double best_objective_bound ( ) const
inherited

Definition at line 1911 of file linear_solver.cc.

◆ BranchingPriorityChangedForVariable()

virtual void BranchingPriorityChangedForVariable ( int  var_index)
inlinevirtualinherited

Reimplemented in SCIPInterface, and GurobiInterface.

Definition at line 1669 of file linear_solver.h.

◆ CheckSolutionExists()

bool CheckSolutionExists ( ) const
virtualinherited

Definition at line 1896 of file linear_solver.cc.

◆ CheckSolutionIsSynchronized()

bool CheckSolutionIsSynchronized ( ) const
inherited

Definition at line 1884 of file linear_solver.cc.

◆ CheckSolutionIsSynchronizedAndExists()

bool CheckSolutionIsSynchronizedAndExists ( ) const
inlineinherited

Definition at line 1696 of file linear_solver.h.

◆ ClearConstraint()

void ClearConstraint ( MPConstraint *const  constraint)
overridevirtual

Implements MPSolverInterface.

Definition at line 226 of file glop_interface.cc.

◆ ClearObjective()

void ClearObjective ( )
overridevirtual

Implements MPSolverInterface.

Definition at line 237 of file glop_interface.cc.

◆ column_status()

MPSolver::BasisStatus column_status ( int  variable_index) const
overridevirtual

Implements MPSolverInterface.

Definition at line 252 of file glop_interface.cc.

◆ ComputeExactConditionNumber()

double ComputeExactConditionNumber ( ) const
virtualinherited

Reimplemented in GurobiInterface.

Definition at line 1935 of file linear_solver.cc.

◆ constraint_is_extracted()

bool constraint_is_extracted ( int  ct_index) const
inlineinherited

Definition at line 1722 of file linear_solver.h.

◆ DirectlySolveProto()

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

Reimplemented in SCIPInterface, SatInterface, PdlpInterface, and GurobiInterface.

Definition at line 1610 of file linear_solver.h.

◆ ExtractModel()

void ExtractModel ( )
protectedinherited

Definition at line 1848 of file linear_solver.cc.

◆ ExtractNewConstraints()

void ExtractNewConstraints ( )
overridevirtual

Implements MPSolverInterface.

Definition at line 282 of file glop_interface.cc.

◆ ExtractNewVariables()

void ExtractNewVariables ( )
overridevirtual

Implements MPSolverInterface.

Definition at line 268 of file glop_interface.cc.

◆ ExtractObjective()

void ExtractObjective ( )
overridevirtual

Implements MPSolverInterface.

Definition at line 306 of file glop_interface.cc.

◆ InterruptSolve()

bool InterruptSolve ( )
overridevirtual

Reimplemented from MPSolverInterface.

Definition at line 185 of file glop_interface.cc.

◆ InvalidateSolutionSynchronization()

void InvalidateSolutionSynchronization ( )
protectedinherited

Definition at line 1929 of file linear_solver.cc.

◆ IsContinuous()

bool IsContinuous ( ) const
overridevirtual

Implements MPSolverInterface.

Definition at line 256 of file glop_interface.cc.

◆ IsLP()

bool IsLP ( ) const
overridevirtual

Implements MPSolverInterface.

Definition at line 258 of file glop_interface.cc.

◆ IsMIP()

bool IsMIP ( ) const
overridevirtual

Implements MPSolverInterface.

Definition at line 260 of file glop_interface.cc.

◆ iterations()

int64_t iterations ( ) const
overridevirtual

Implements MPSolverInterface.

Definition at line 239 of file glop_interface.cc.

◆ last_variable_index()

int last_variable_index ( ) const
inlineinherited

Definition at line 1714 of file linear_solver.h.

◆ NextSolution()

virtual bool NextSolution ( )
inlinevirtualinherited

Reimplemented in SCIPInterface, and GurobiInterface.

Definition at line 1760 of file linear_solver.h.

◆ nodes()

int64_t nodes ( ) const
overridevirtual

Implements MPSolverInterface.

Definition at line 243 of file glop_interface.cc.

◆ objective_value()

double objective_value ( ) const
inherited

Definition at line 1906 of file linear_solver.cc.

◆ quiet()

bool quiet ( ) const
inlineinherited

Definition at line 1730 of file linear_solver.h.

◆ Reset()

void Reset ( )
overridevirtual

Implements MPSolverInterface.

Definition at line 190 of file glop_interface.cc.

◆ ResetExtractionInformation()

void ResetExtractionInformation ( )
protectedinherited

Definition at line 1876 of file linear_solver.cc.

◆ result_status()

MPSolver::ResultStatus result_status ( ) const
inlineinherited

Definition at line 1735 of file linear_solver.h.

◆ row_status()

MPSolver::BasisStatus row_status ( int  constraint_index) const
overridevirtual

Implements MPSolverInterface.

Definition at line 248 of file glop_interface.cc.

◆ set_constraint_as_extracted()

void set_constraint_as_extracted ( int  ct_index,
bool  extracted 
)
inlineinherited

Definition at line 1725 of file linear_solver.h.

◆ set_quiet()

void set_quiet ( bool  quiet_value)
inlineinherited

Definition at line 1732 of file linear_solver.h.

◆ set_variable_as_extracted()

void set_variable_as_extracted ( int  var_index,
bool  extracted 
)
inlineinherited

Definition at line 1719 of file linear_solver.h.

◆ SetCallback()

virtual void SetCallback ( MPCallback mp_callback)
inlinevirtualinherited

Reimplemented in SCIPInterface, and GurobiInterface.

Definition at line 1763 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 220 of file glop_interface.cc.

◆ SetCommonParameters()

void SetCommonParameters ( const MPSolverParameters param)
protectedinherited

Definition at line 1944 of file linear_solver.cc.

◆ SetConstraintBounds()

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

Implements MPSolverInterface.

Definition at line 208 of file glop_interface.cc.

◆ SetDoubleParamToUnsupportedValue()

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

Definition at line 1980 of file linear_solver.cc.

◆ SetDualTolerance()

void SetDualTolerance ( double  value)
overridevirtual

Implements MPSolverInterface.

Definition at line 354 of file glop_interface.cc.

◆ SetIntegerParamToUnsupportedValue()

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

Definition at line 1985 of file linear_solver.cc.

◆ SetLpAlgorithm()

void SetLpAlgorithm ( int  value)
overridevirtual

Implements MPSolverInterface.

Definition at line 393 of file glop_interface.cc.

◆ SetMIPParameters()

void SetMIPParameters ( const MPSolverParameters param)
protectedinherited

Definition at line 1965 of file linear_solver.cc.

◆ SetNumThreads()

absl::Status SetNumThreads ( int  num_threads)
protectedvirtualinherited

Reimplemented in SatInterface, PdlpInterface, and CBCInterface.

Definition at line 1991 of file linear_solver.cc.

◆ SetObjectiveCoefficient()

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

Implements MPSolverInterface.

Definition at line 230 of file glop_interface.cc.

◆ SetObjectiveOffset()

void SetObjectiveOffset ( double  value)
overridevirtual

Implements MPSolverInterface.

Definition at line 235 of file glop_interface.cc.

◆ SetOptimizationDirection()

void SetOptimizationDirection ( bool  maximize)
overridevirtual

Implements MPSolverInterface.

Definition at line 196 of file glop_interface.cc.

◆ SetParameters()

void SetParameters ( const MPSolverParameters param)
overridevirtual

Implements MPSolverInterface.

Definition at line 330 of file glop_interface.cc.

◆ SetPresolveMode()

void SetPresolveMode ( int  value)
overridevirtual

Implements MPSolverInterface.

Definition at line 363 of file glop_interface.cc.

◆ SetPrimalTolerance()

void SetPrimalTolerance ( double  value)
overridevirtual

Implements MPSolverInterface.

Definition at line 344 of file glop_interface.cc.

◆ SetRelativeMipGap()

void SetRelativeMipGap ( double  value)
overridevirtual

Implements MPSolverInterface.

Definition at line 337 of file glop_interface.cc.

◆ SetScalingMode()

void SetScalingMode ( int  value)
overridevirtual

Implements MPSolverInterface.

Definition at line 378 of file glop_interface.cc.

◆ SetSolverSpecificParametersAsString()

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

Reimplemented from MPSolverInterface.

Definition at line 409 of file glop_interface.cc.

◆ SetStartingLpBasis()

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

Reimplemented from MPSolverInterface.

Definition at line 316 of file glop_interface.cc.

◆ SetUnsupportedDoubleParam()

void SetUnsupportedDoubleParam ( MPSolverParameters::DoubleParam  param)
protectedinherited

Definition at line 1972 of file linear_solver.cc.

◆ SetUnsupportedIntegerParam()

void SetUnsupportedIntegerParam ( MPSolverParameters::IntegerParam  param)
protectedvirtualinherited

Definition at line 1976 of file linear_solver.cc.

◆ SetVariableBounds()

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

Implements MPSolverInterface.

Definition at line 200 of file glop_interface.cc.

◆ SetVariableInteger()

void SetVariableInteger ( int  index,
bool  integer 
)
overridevirtual

Implements MPSolverInterface.

Definition at line 204 of file glop_interface.cc.

◆ Solve()

MPSolver::ResultStatus Solve ( const MPSolverParameters param)
overridevirtual

Implements MPSolverInterface.

Definition at line 115 of file glop_interface.cc.

◆ SolverVersion()

std::string SolverVersion ( ) const
overridevirtual

Implements MPSolverInterface.

Definition at line 262 of file glop_interface.cc.

◆ SupportsCallbacks()

virtual bool SupportsCallbacks ( ) const
inlinevirtualinherited

Reimplemented in SCIPInterface, and GurobiInterface.

Definition at line 1767 of file linear_solver.h.

◆ underlying_solver()

void * underlying_solver ( )
overridevirtual

Implements MPSolverInterface.

Definition at line 266 of file glop_interface.cc.

◆ variable_is_extracted()

bool variable_is_extracted ( int  var_index) const
inlineinherited

Definition at line 1716 of file linear_solver.h.

◆ Write()

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

Reimplemented in GurobiInterface.

Definition at line 1844 of file linear_solver.cc.

Member Data Documentation

◆ best_objective_bound_

double best_objective_bound_
protectedinherited

Definition at line 1794 of file linear_solver.h.

◆ kDummyVariableIndex

const int kDummyVariableIndex = 0
staticprotectedinherited

Definition at line 1801 of file linear_solver.h.

◆ kUnknownNumberOfIterations

constexpr int64_t kUnknownNumberOfIterations = -1
staticconstexprinherited

Definition at line 1589 of file linear_solver.h.

◆ kUnknownNumberOfNodes

constexpr int64_t kUnknownNumberOfNodes = -1
staticconstexprinherited

Definition at line 1592 of file linear_solver.h.

◆ last_constraint_index_

int last_constraint_index_
protectedinherited

Definition at line 1786 of file linear_solver.h.

◆ last_variable_index_

int last_variable_index_
protectedinherited

Definition at line 1788 of file linear_solver.h.

◆ maximize_

bool maximize_
protectedinherited

Definition at line 1783 of file linear_solver.h.

◆ objective_value_

double objective_value_
protectedinherited

Definition at line 1791 of file linear_solver.h.

◆ quiet_

bool quiet_
protectedinherited

Definition at line 1797 of file linear_solver.h.

◆ result_status_

MPSolver::ResultStatus result_status_
protectedinherited

Definition at line 1781 of file linear_solver.h.

◆ solver_

MPSolver* const solver_
protectedinherited

Definition at line 1776 of file linear_solver.h.

◆ sync_status_

SynchronizationStatus sync_status_
protectedinherited

Definition at line 1778 of file linear_solver.h.


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