operations_research::MPSolverInterface Class Referenceabstract

Detailed Description

Definition at line 1592 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 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 ()
 

Static Public Attributes

static const int64 kUnknownNumberOfIterations = -1
 
static const 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 util::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
 

Friends

class MPSolver
 
class MPConstraint
 
class MPObjective
 

Member Enumeration Documentation

◆ SynchronizationStatus

Enumerator
MUST_RELOAD 
MODEL_SYNCHRONIZED 
SOLUTION_SYNCHRONIZED 

Definition at line 1594 of file linear_solver.h.

Constructor & Destructor Documentation

◆ MPSolverInterface()

operations_research::MPSolverInterface::MPSolverInterface ( MPSolver *const  solver)
explicit

◆ ~MPSolverInterface()

virtual operations_research::MPSolverInterface::~MPSolverInterface ( )
virtual

Member Function Documentation

◆ AddIndicatorConstraint()

virtual bool operations_research::MPSolverInterface::AddIndicatorConstraint ( MPConstraint *const  ct)
inlinevirtual

Definition at line 1649 of file linear_solver.h.

◆ AddRowConstraint()

virtual void operations_research::MPSolverInterface::AddRowConstraint ( MPConstraint *const  ct)
pure virtual

◆ AddVariable()

virtual void operations_research::MPSolverInterface::AddVariable ( MPVariable *const  var)
pure virtual

◆ best_objective_bound()

virtual double operations_research::MPSolverInterface::best_objective_bound ( ) const
pure virtual

◆ BranchingPriorityChangedForVariable()

virtual void operations_research::MPSolverInterface::BranchingPriorityChangedForVariable ( int  var_index)
inlinevirtual

Definition at line 1675 of file linear_solver.h.

◆ CheckBestObjectiveBoundExists()

virtual bool operations_research::MPSolverInterface::CheckBestObjectiveBoundExists ( ) const
virtual

◆ CheckSolutionExists()

virtual bool operations_research::MPSolverInterface::CheckSolutionExists ( ) const
virtual

◆ CheckSolutionIsSynchronized()

bool operations_research::MPSolverInterface::CheckSolutionIsSynchronized ( ) const

◆ CheckSolutionIsSynchronizedAndExists()

bool operations_research::MPSolverInterface::CheckSolutionIsSynchronizedAndExists ( ) const
inline

Definition at line 1705 of file linear_solver.h.

◆ ClearConstraint()

virtual void operations_research::MPSolverInterface::ClearConstraint ( MPConstraint *const  constraint)
pure virtual

◆ ClearObjective()

virtual void operations_research::MPSolverInterface::ClearObjective ( )
pure virtual

◆ column_status()

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

◆ ComputeExactConditionNumber()

virtual double operations_research::MPSolverInterface::ComputeExactConditionNumber ( ) const
virtual

◆ constraint_is_extracted()

bool operations_research::MPSolverInterface::constraint_is_extracted ( int  ct_index) const
inline

Definition at line 1734 of file linear_solver.h.

◆ ExtractModel()

void operations_research::MPSolverInterface::ExtractModel ( )
protected

◆ ExtractNewConstraints()

virtual void operations_research::MPSolverInterface::ExtractNewConstraints ( )
protectedpure virtual

◆ ExtractNewVariables()

virtual void operations_research::MPSolverInterface::ExtractNewVariables ( )
protectedpure virtual

◆ ExtractObjective()

virtual void operations_research::MPSolverInterface::ExtractObjective ( )
protectedpure virtual

◆ InterruptSolve()

virtual bool operations_research::MPSolverInterface::InterruptSolve ( )
inlinevirtual

Definition at line 1769 of file linear_solver.h.

◆ InvalidateSolutionSynchronization()

void operations_research::MPSolverInterface::InvalidateSolutionSynchronization ( )
protected

◆ IsContinuous()

virtual bool operations_research::MPSolverInterface::IsContinuous ( ) const
pure virtual

◆ IsLP()

virtual bool operations_research::MPSolverInterface::IsLP ( ) const
pure virtual

◆ IsMIP()

virtual bool operations_research::MPSolverInterface::IsMIP ( ) const
pure virtual

◆ iterations()

virtual int64 operations_research::MPSolverInterface::iterations ( ) const
pure virtual

◆ last_variable_index()

int operations_research::MPSolverInterface::last_variable_index ( ) const
inline

Definition at line 1726 of file linear_solver.h.

◆ NextSolution()

virtual bool operations_research::MPSolverInterface::NextSolution ( )
inlinevirtual

Definition at line 1772 of file linear_solver.h.

◆ nodes()

virtual int64 operations_research::MPSolverInterface::nodes ( ) const
pure virtual

◆ objective_value()

double operations_research::MPSolverInterface::objective_value ( ) const

◆ quiet()

bool operations_research::MPSolverInterface::quiet ( ) const
inline

Definition at line 1742 of file linear_solver.h.

◆ ReadParameterFile()

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

◆ Reset()

virtual void operations_research::MPSolverInterface::Reset ( )
pure virtual

◆ ResetExtractionInformation()

void operations_research::MPSolverInterface::ResetExtractionInformation ( )
protected

◆ result_status()

MPSolver::ResultStatus operations_research::MPSolverInterface::result_status ( ) const
inline

Definition at line 1747 of file linear_solver.h.

◆ row_status()

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

◆ set_constraint_as_extracted()

void operations_research::MPSolverInterface::set_constraint_as_extracted ( int  ct_index,
bool  extracted 
)
inline

Definition at line 1737 of file linear_solver.h.

◆ set_quiet()

void operations_research::MPSolverInterface::set_quiet ( bool  quiet_value)
inline

Definition at line 1744 of file linear_solver.h.

◆ set_variable_as_extracted()

void operations_research::MPSolverInterface::set_variable_as_extracted ( int  var_index,
bool  extracted 
)
inline

Definition at line 1731 of file linear_solver.h.

◆ SetCoefficient()

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

◆ SetCommonParameters()

void operations_research::MPSolverInterface::SetCommonParameters ( const MPSolverParameters param)
protected

◆ SetConstraintBounds()

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

◆ SetDoubleParamToUnsupportedValue()

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

◆ SetDualTolerance()

virtual void operations_research::MPSolverInterface::SetDualTolerance ( double  value)
protectedpure virtual

◆ SetIntegerParamToUnsupportedValue()

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

◆ SetLpAlgorithm()

virtual void operations_research::MPSolverInterface::SetLpAlgorithm ( int  value)
protectedpure virtual

◆ SetMIPParameters()

void operations_research::MPSolverInterface::SetMIPParameters ( const MPSolverParameters param)
protected

◆ SetNumThreads()

virtual util::Status operations_research::MPSolverInterface::SetNumThreads ( int  num_threads)
protectedvirtual

◆ SetObjectiveCoefficient()

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

◆ SetObjectiveOffset()

virtual void operations_research::MPSolverInterface::SetObjectiveOffset ( double  value)
pure virtual

◆ SetOptimizationDirection()

virtual void operations_research::MPSolverInterface::SetOptimizationDirection ( bool  maximize)
pure virtual

◆ SetParameters()

virtual void operations_research::MPSolverInterface::SetParameters ( const MPSolverParameters param)
protectedpure virtual

◆ SetPresolveMode()

virtual void operations_research::MPSolverInterface::SetPresolveMode ( int  value)
protectedpure virtual

◆ SetPrimalTolerance()

virtual void operations_research::MPSolverInterface::SetPrimalTolerance ( double  value)
protectedpure virtual

◆ SetRelativeMipGap()

virtual void operations_research::MPSolverInterface::SetRelativeMipGap ( double  value)
protectedpure virtual

◆ SetScalingMode()

virtual void operations_research::MPSolverInterface::SetScalingMode ( int  value)
protectedpure virtual

◆ SetSolverSpecificParametersAsString()

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

◆ SetStartingLpBasis()

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

Definition at line 1763 of file linear_solver.h.

◆ SetUnsupportedDoubleParam()

void operations_research::MPSolverInterface::SetUnsupportedDoubleParam ( MPSolverParameters::DoubleParam  param)
protected

◆ SetUnsupportedIntegerParam()

virtual void operations_research::MPSolverInterface::SetUnsupportedIntegerParam ( MPSolverParameters::IntegerParam  param)
protectedvirtual

◆ SetVariableBounds()

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

◆ SetVariableInteger()

virtual void operations_research::MPSolverInterface::SetVariableInteger ( int  index,
bool  integer 
)
pure virtual

◆ Solve()

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

◆ SolverVersion()

virtual std::string operations_research::MPSolverInterface::SolverVersion ( ) const
pure virtual

◆ trivial_worst_objective_bound()

double operations_research::MPSolverInterface::trivial_worst_objective_bound ( ) const

◆ underlying_solver()

virtual void* operations_research::MPSolverInterface::underlying_solver ( )
pure virtual

◆ ValidFileExtensionForParameterFile()

virtual std::string operations_research::MPSolverInterface::ValidFileExtensionForParameterFile ( ) const
protectedvirtual

◆ variable_is_extracted()

bool operations_research::MPSolverInterface::variable_is_extracted ( int  var_index) const
inline

Definition at line 1728 of file linear_solver.h.

◆ Write()

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

Friends And Related Function Documentation

◆ MPConstraint

friend class MPConstraint
friend

Definition at line 1777 of file linear_solver.h.

◆ MPObjective

friend class MPObjective
friend

Definition at line 1778 of file linear_solver.h.

◆ MPSolver

friend class MPSolver
friend

Definition at line 1774 of file linear_solver.h.

Member Data Documentation

◆ kDummyVariableIndex

const int operations_research::MPSolverInterface::kDummyVariableIndex
staticprotected

Definition at line 1803 of file linear_solver.h.

◆ kUnknownNumberOfIterations

const int64 operations_research::MPSolverInterface::kUnknownNumberOfIterations = -1
static

Definition at line 1609 of file linear_solver.h.

◆ kUnknownNumberOfNodes

const int64 operations_research::MPSolverInterface::kUnknownNumberOfNodes = -1
static

Definition at line 1612 of file linear_solver.h.

◆ last_constraint_index_

int operations_research::MPSolverInterface::last_constraint_index_
protected

Definition at line 1791 of file linear_solver.h.

◆ last_variable_index_

int operations_research::MPSolverInterface::last_variable_index_
protected

Definition at line 1793 of file linear_solver.h.

◆ maximize_

bool operations_research::MPSolverInterface::maximize_
protected

Definition at line 1788 of file linear_solver.h.

◆ objective_value_

double operations_research::MPSolverInterface::objective_value_
protected

Definition at line 1796 of file linear_solver.h.

◆ quiet_

bool operations_research::MPSolverInterface::quiet_
protected

Definition at line 1799 of file linear_solver.h.

◆ result_status_

MPSolver::ResultStatus operations_research::MPSolverInterface::result_status_
protected

Definition at line 1786 of file linear_solver.h.

◆ solver_

MPSolver* const operations_research::MPSolverInterface::solver_
protected

Definition at line 1781 of file linear_solver.h.

◆ sync_status_

SynchronizationStatus operations_research::MPSolverInterface::sync_status_
protected

Definition at line 1783 of file linear_solver.h.


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