C++ Reference

C++ Reference: Linear solver

MPSolverInterfaceabstract

Detailed Description

Definition at line 1477 of file linear_solver.h.

Public Types

enum  SynchronizationStatus { MUST_RELOAD, MODEL_SYNCHRONIZED, SOLUTION_SYNCHRONIZED }
 

Public Member Functions

 MPSolverInterface (MPSolver *const solver)
 
virtual ~MPSolverInterface ()
 
virtual MPSolver::ResultStatus Solve (const MPSolverParameters &param)=0
 
virtual absl::optional< MPSolutionResponse > DirectlySolveProto (const MPModelRequest &request)
 
virtual void Write (const std::string &filename)
 
virtual void Reset ()=0
 
virtual void SetOptimizationDirection (bool maximize)=0
 
virtual void SetVariableBounds (int index, double lb, double ub)=0
 
virtual void SetVariableInteger (int index, bool integer)=0
 
virtual void SetConstraintBounds (int index, double lb, double ub)=0
 
virtual void AddRowConstraint (MPConstraint *const ct)=0
 
virtual bool AddIndicatorConstraint (MPConstraint *const ct)
 
virtual void AddVariable (MPVariable *const var)=0
 
virtual void SetCoefficient (MPConstraint *const constraint, const MPVariable *const variable, double new_value, double old_value)=0
 
virtual void ClearConstraint (MPConstraint *const constraint)=0
 
virtual void SetObjectiveCoefficient (const MPVariable *const variable, double coefficient)=0
 
virtual void SetObjectiveOffset (double value)=0
 
virtual void ClearObjective ()=0
 
virtual void BranchingPriorityChangedForVariable (int var_index)
 
virtual int64 iterations () const =0
 
virtual int64 nodes () const =0
 
virtual double best_objective_bound () const =0
 
double trivial_worst_objective_bound () const
 
double objective_value () const
 
virtual MPSolver::BasisStatus row_status (int constraint_index) const =0
 
virtual MPSolver::BasisStatus column_status (int variable_index) const =0
 
bool CheckSolutionIsSynchronized () const
 
virtual bool CheckSolutionExists () const
 
bool CheckSolutionIsSynchronizedAndExists () const
 
virtual bool CheckBestObjectiveBoundExists () const
 
virtual bool IsContinuous () const =0
 
virtual bool IsLP () const =0
 
virtual bool IsMIP () const =0
 
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 std::string SolverVersion () const =0
 
virtual void * underlying_solver ()=0
 
virtual double ComputeExactConditionNumber () const
 
virtual void SetStartingLpBasis (const std::vector< MPSolver::BasisStatus > &variable_statuses, const std::vector< MPSolver::BasisStatus > &constraint_statuses)
 
virtual bool InterruptSolve ()
 
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 ()
 
virtual void ExtractNewVariables ()=0
 
virtual void ExtractNewConstraints ()=0
 
virtual void ExtractObjective ()=0
 
void ResetExtractionInformation ()
 
void InvalidateSolutionSynchronization ()
 
void SetCommonParameters (const MPSolverParameters &param)
 
void SetMIPParameters (const MPSolverParameters &param)
 
virtual void SetParameters (const MPSolverParameters &param)=0
 
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 void SetRelativeMipGap (double value)=0
 
virtual void SetPrimalTolerance (double value)=0
 
virtual void SetDualTolerance (double value)=0
 
virtual void SetPresolveMode (int value)=0
 
virtual absl::Status SetNumThreads (int num_threads)
 
virtual bool SetSolverSpecificParametersAsString (const std::string &parameters)
 
virtual bool ReadParameterFile (const std::string &filename)
 
virtual std::string ValidFileExtensionForParameterFile () const
 
virtual void SetScalingMode (int value)=0
 
virtual void SetLpAlgorithm (int value)=0
 

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_
 
bool quiet_
 

Static Protected Attributes

static const int kDummyVariableIndex
 

Member Enumeration Documentation

◆ SynchronizationStatus

Enumerator
MUST_RELOAD 
MODEL_SYNCHRONIZED 
SOLUTION_SYNCHRONIZED 

Definition at line 1479 of file linear_solver.h.

Constructor & Destructor Documentation

◆ MPSolverInterface()

MPSolverInterface ( MPSolver *const  solver)
explicit

◆ ~MPSolverInterface()

virtual ~MPSolverInterface ( )
virtual

Member Function Documentation

◆ AddIndicatorConstraint()

virtual bool AddIndicatorConstraint ( MPConstraint *const  ct)
inlinevirtual

Definition at line 1542 of file linear_solver.h.

◆ AddRowConstraint()

virtual void AddRowConstraint ( MPConstraint *const  ct)
pure virtual

◆ AddVariable()

virtual void AddVariable ( MPVariable *const  var)
pure virtual

◆ best_objective_bound()

virtual double best_objective_bound ( ) const
pure virtual

◆ BranchingPriorityChangedForVariable()

virtual void BranchingPriorityChangedForVariable ( int  var_index)
inlinevirtual

Definition at line 1568 of file linear_solver.h.

◆ CheckBestObjectiveBoundExists()

virtual bool CheckBestObjectiveBoundExists ( ) const
virtual

◆ CheckSolutionExists()

virtual bool CheckSolutionExists ( ) const
virtual

◆ CheckSolutionIsSynchronized()

bool CheckSolutionIsSynchronized ( ) const

◆ CheckSolutionIsSynchronizedAndExists()

bool CheckSolutionIsSynchronizedAndExists ( ) const
inline

Definition at line 1598 of file linear_solver.h.

◆ ClearConstraint()

virtual void ClearConstraint ( MPConstraint *const  constraint)
pure virtual

◆ ClearObjective()

virtual void ClearObjective ( )
pure virtual

◆ column_status()

virtual MPSolver::BasisStatus column_status ( int  variable_index) const
pure virtual

◆ ComputeExactConditionNumber()

virtual double ComputeExactConditionNumber ( ) const
virtual

◆ constraint_is_extracted()

bool constraint_is_extracted ( int  ct_index) const
inline

Definition at line 1627 of file linear_solver.h.

◆ DirectlySolveProto()

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

Definition at line 1512 of file linear_solver.h.

◆ ExtractModel()

void ExtractModel ( )
protected

◆ ExtractNewConstraints()

virtual void ExtractNewConstraints ( )
protectedpure virtual

◆ ExtractNewVariables()

virtual void ExtractNewVariables ( )
protectedpure virtual

◆ ExtractObjective()

virtual void ExtractObjective ( )
protectedpure virtual

◆ InterruptSolve()

virtual bool InterruptSolve ( )
inlinevirtual

Definition at line 1662 of file linear_solver.h.

◆ InvalidateSolutionSynchronization()

void InvalidateSolutionSynchronization ( )
protected

◆ IsContinuous()

virtual bool IsContinuous ( ) const
pure virtual

◆ IsLP()

virtual bool IsLP ( ) const
pure virtual

◆ IsMIP()

virtual bool IsMIP ( ) const
pure virtual

◆ iterations()

virtual int64 iterations ( ) const
pure virtual

◆ last_variable_index()

int last_variable_index ( ) const
inline

Definition at line 1619 of file linear_solver.h.

◆ NextSolution()

virtual bool NextSolution ( )
inlinevirtual

Definition at line 1665 of file linear_solver.h.

◆ nodes()

virtual int64 nodes ( ) const
pure virtual

◆ objective_value()

double objective_value ( ) const

◆ quiet()

bool quiet ( ) const
inline

Definition at line 1635 of file linear_solver.h.

◆ ReadParameterFile()

virtual bool ReadParameterFile ( const std::string &  filename)
protectedvirtual

◆ Reset()

virtual void Reset ( )
pure virtual

◆ ResetExtractionInformation()

void ResetExtractionInformation ( )
protected

◆ result_status()

MPSolver::ResultStatus result_status ( ) const
inline

Definition at line 1640 of file linear_solver.h.

◆ row_status()

virtual MPSolver::BasisStatus row_status ( int  constraint_index) const
pure virtual

◆ set_constraint_as_extracted()

void set_constraint_as_extracted ( int  ct_index,
bool  extracted 
)
inline

Definition at line 1630 of file linear_solver.h.

◆ set_quiet()

void set_quiet ( bool  quiet_value)
inline

Definition at line 1637 of file linear_solver.h.

◆ set_variable_as_extracted()

void set_variable_as_extracted ( int  var_index,
bool  extracted 
)
inline

Definition at line 1624 of file linear_solver.h.

◆ SetCallback()

virtual void SetCallback ( MPCallback *  mp_callback)
inlinevirtual

Definition at line 1668 of file linear_solver.h.

◆ SetCoefficient()

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

◆ SetCommonParameters()

void SetCommonParameters ( const MPSolverParameters param)
protected

◆ SetConstraintBounds()

virtual void SetConstraintBounds ( int  index,
double  lb,
double  ub 
)
pure virtual

◆ SetDoubleParamToUnsupportedValue()

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

◆ SetDualTolerance()

virtual void SetDualTolerance ( double  value)
protectedpure virtual

◆ SetIntegerParamToUnsupportedValue()

virtual void SetIntegerParamToUnsupportedValue ( MPSolverParameters::IntegerParam  param,
int  value 
)
protectedvirtual

◆ SetLpAlgorithm()

virtual void SetLpAlgorithm ( int  value)
protectedpure virtual

◆ SetMIPParameters()

void SetMIPParameters ( const MPSolverParameters param)
protected

◆ SetNumThreads()

virtual absl::Status SetNumThreads ( int  num_threads)
protectedvirtual

◆ SetObjectiveCoefficient()

virtual void SetObjectiveCoefficient ( const MPVariable *const  variable,
double  coefficient 
)
pure virtual

◆ SetObjectiveOffset()

virtual void SetObjectiveOffset ( double  value)
pure virtual

◆ SetOptimizationDirection()

virtual void SetOptimizationDirection ( bool  maximize)
pure virtual

◆ SetParameters()

virtual void SetParameters ( const MPSolverParameters param)
protectedpure virtual

◆ SetPresolveMode()

virtual void SetPresolveMode ( int  value)
protectedpure virtual

◆ SetPrimalTolerance()

virtual void SetPrimalTolerance ( double  value)
protectedpure virtual

◆ SetRelativeMipGap()

virtual void SetRelativeMipGap ( double  value)
protectedpure virtual

◆ SetScalingMode()

virtual void SetScalingMode ( int  value)
protectedpure virtual

◆ SetSolverSpecificParametersAsString()

virtual bool SetSolverSpecificParametersAsString ( const std::string &  parameters)
protectedvirtual

◆ SetStartingLpBasis()

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

Definition at line 1656 of file linear_solver.h.

◆ SetUnsupportedDoubleParam()

void SetUnsupportedDoubleParam ( MPSolverParameters::DoubleParam  param)
protected

◆ SetUnsupportedIntegerParam()

virtual void SetUnsupportedIntegerParam ( MPSolverParameters::IntegerParam  param)
protectedvirtual

◆ SetVariableBounds()

virtual void SetVariableBounds ( int  index,
double  lb,
double  ub 
)
pure virtual

◆ SetVariableInteger()

virtual void SetVariableInteger ( int  index,
bool  integer 
)
pure virtual

◆ Solve()

virtual MPSolver::ResultStatus Solve ( const MPSolverParameters param)
pure virtual

◆ SolverVersion()

virtual std::string SolverVersion ( ) const
pure virtual

◆ SupportsCallbacks()

virtual bool SupportsCallbacks ( ) const
inlinevirtual

Definition at line 1672 of file linear_solver.h.

◆ trivial_worst_objective_bound()

double trivial_worst_objective_bound ( ) const

◆ underlying_solver()

virtual void* underlying_solver ( )
pure virtual

◆ ValidFileExtensionForParameterFile()

virtual std::string ValidFileExtensionForParameterFile ( ) const
protectedvirtual

◆ variable_is_extracted()

bool variable_is_extracted ( int  var_index) const
inline

Definition at line 1621 of file linear_solver.h.

◆ Write()

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

Member Data Documentation

◆ kDummyVariableIndex

const int kDummyVariableIndex
staticprotected

Definition at line 1703 of file linear_solver.h.

◆ kUnknownNumberOfIterations

constexpr int64 kUnknownNumberOfIterations = -1
staticconstexpr

Definition at line 1494 of file linear_solver.h.

◆ kUnknownNumberOfNodes

constexpr int64 kUnknownNumberOfNodes = -1
staticconstexpr

Definition at line 1497 of file linear_solver.h.

◆ last_constraint_index_

int last_constraint_index_
protected

Definition at line 1691 of file linear_solver.h.

◆ last_variable_index_

int last_variable_index_
protected

Definition at line 1693 of file linear_solver.h.

◆ maximize_

bool maximize_
protected

Definition at line 1688 of file linear_solver.h.

◆ objective_value_

double objective_value_
protected

Definition at line 1696 of file linear_solver.h.

◆ quiet_

bool quiet_
protected

Definition at line 1699 of file linear_solver.h.

◆ result_status_

MPSolver::ResultStatus result_status_
protected

Definition at line 1686 of file linear_solver.h.

◆ solver_

MPSolver* const solver_
protected

Definition at line 1681 of file linear_solver.h.

◆ sync_status_

SynchronizationStatus sync_status_
protected

Definition at line 1683 of file linear_solver.h.


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