Google OR-Tools v9.15
a fast and portable software suite for combinatorial optimization
Loading...
Searching...
No Matches
operations_research::MPSolverInterface Class Referenceabstract

Detailed Description

Definition at line 1642 of file linear_solver.h.

#include <linear_solver.h>

Inheritance diagram for operations_research::MPSolverInterface:
operations_research::BopInterface operations_research::CBCInterface operations_research::CLPInterface operations_research::CplexInterface operations_research::GLOPInterface operations_research::GLPKInterface operations_research::GurobiInterface operations_research::HighsInterface operations_research::KnapsackInterface operations_research::PdlpInterface operations_research::SCIPInterface operations_research::SatInterface operations_research::XpressInterface

Public Types

enum  SynchronizationStatus { MUST_RELOAD , MODEL_SYNCHRONIZED , SOLUTION_SYNCHRONIZED }

Public Member Functions

 MPSolverInterface (MPSolver *solver)
virtual ~MPSolverInterface ()
virtual MPSolver::ResultStatus Solve (const MPSolverParameters &param)=0
virtual bool SupportsDirectlySolveProto (std::atomic< bool > *) const
virtual MPSolutionResponse DirectlySolveProto (LazyMutableCopy< MPModelRequest >, std::atomic< bool > *)
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 *ct)=0
virtual bool AddIndicatorConstraint (MPConstraint *const)
virtual void AddVariable (MPVariable *var)=0
virtual void SetCoefficient (MPConstraint *constraint, const MPVariable *variable, double new_value, double old_value)=0
virtual void ClearConstraint (MPConstraint *constraint)=0
virtual void SetObjectiveCoefficient (const MPVariable *variable, double coefficient)=0
virtual void SetObjectiveOffset (double value)=0
virtual void ClearObjective ()=0
virtual void BranchingPriorityChangedForVariable (int)
virtual int64_t iterations () const =0
virtual int64_t nodes () const =0
double best_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 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 > &, const std::vector< MPSolver::BasisStatus > &)
virtual double infinity ()
virtual bool InterruptSolve ()
virtual bool NextSolution ()
virtual void SetCallback (MPCallback *)
virtual bool SupportsCallbacks () const

Static Public Attributes

static constexpr int64_t kUnknownNumberOfIterations = -1
static constexpr int64_t 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 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_
double best_objective_bound_
bool quiet_

Static Protected Attributes

static const int kDummyVariableIndex = 0

Friends

class MPSolver
class MPConstraint
class MPObjective

Member Enumeration Documentation

◆ SynchronizationStatus

Enumerator
MUST_RELOAD 
MODEL_SYNCHRONIZED 
SOLUTION_SYNCHRONIZED 

Definition at line 1644 of file linear_solver.h.

Constructor & Destructor Documentation

◆ MPSolverInterface()

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

Definition at line 1823 of file linear_solver.cc.

◆ ~MPSolverInterface()

operations_research::MPSolverInterface::~MPSolverInterface ( )
virtual

Definition at line 1834 of file linear_solver.cc.

Member Function Documentation

◆ AddIndicatorConstraint()

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

◆ AddRowConstraint()

◆ AddVariable()

◆ best_objective_bound()

double operations_research::MPSolverInterface::best_objective_bound ( ) const

Definition at line 1903 of file linear_solver.cc.

◆ BranchingPriorityChangedForVariable()

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

◆ CheckSolutionExists()

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

Reimplemented in operations_research::GLPKInterface.

Definition at line 1888 of file linear_solver.cc.

◆ CheckSolutionIsSynchronized()

bool operations_research::MPSolverInterface::CheckSolutionIsSynchronized ( ) const

Definition at line 1876 of file linear_solver.cc.

◆ CheckSolutionIsSynchronizedAndExists()

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

Definition at line 1771 of file linear_solver.h.

◆ ClearConstraint()

◆ ClearObjective()

◆ column_status()

◆ ComputeExactConditionNumber()

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

◆ DirectlySolveProto()

◆ ExtractModel()

void operations_research::MPSolverInterface::ExtractModel ( )
protected

Definition at line 1840 of file linear_solver.cc.

◆ ExtractNewConstraints()

◆ ExtractNewVariables()

◆ ExtractObjective()

◆ infinity()

virtual double operations_research::MPSolverInterface::infinity ( )
inlinevirtual

Reimplemented in operations_research::SCIPInterface.

Definition at line 1832 of file linear_solver.h.

◆ InterruptSolve()

◆ InvalidateSolutionSynchronization()

void operations_research::MPSolverInterface::InvalidateSolutionSynchronization ( )
protected

Definition at line 1921 of file linear_solver.cc.

◆ IsContinuous()

◆ IsLP()

◆ IsMIP()

◆ iterations()

◆ last_variable_index()

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

Definition at line 1789 of file linear_solver.h.

◆ NextSolution()

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

◆ nodes()

◆ objective_value()

double operations_research::MPSolverInterface::objective_value ( ) const

Definition at line 1898 of file linear_solver.cc.

◆ quiet()

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

Definition at line 1805 of file linear_solver.h.

◆ Reset()

◆ ResetExtractionInformation()

void operations_research::MPSolverInterface::ResetExtractionInformation ( )
protected

Definition at line 1868 of file linear_solver.cc.

◆ result_status()

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

Definition at line 1810 of file linear_solver.h.

◆ row_status()

◆ set_constraint_as_extracted()

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

Definition at line 1800 of file linear_solver.h.

◆ set_quiet()

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

Definition at line 1807 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 1794 of file linear_solver.h.

◆ SetCallback()

virtual void operations_research::MPSolverInterface::SetCallback ( MPCallback * )
inlinevirtual

◆ SetCoefficient()

◆ SetCommonParameters()

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

Definition at line 1936 of file linear_solver.cc.

◆ SetConstraintBounds()

◆ SetDoubleParamToUnsupportedValue()

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

Definition at line 1972 of file linear_solver.cc.

◆ SetDualTolerance()

◆ SetIntegerParamToUnsupportedValue()

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

Definition at line 1977 of file linear_solver.cc.

◆ SetLpAlgorithm()

◆ SetMIPParameters()

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

Definition at line 1957 of file linear_solver.cc.

◆ SetNumThreads()

absl::Status operations_research::MPSolverInterface::SetNumThreads ( int num_threads)
protectedvirtual

◆ SetObjectiveCoefficient()

◆ SetObjectiveOffset()

◆ SetOptimizationDirection()

◆ SetParameters()

◆ SetPresolveMode()

◆ SetPrimalTolerance()

◆ SetRelativeMipGap()

◆ SetScalingMode()

◆ SetSolverSpecificParametersAsString()

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

◆ SetStartingLpBasis()

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

◆ SetUnsupportedDoubleParam()

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

Definition at line 1964 of file linear_solver.cc.

◆ SetUnsupportedIntegerParam()

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

Definition at line 1968 of file linear_solver.cc.

◆ SetVariableBounds()

◆ SetVariableInteger()

◆ Solve()

◆ SolverVersion()

◆ SupportsCallbacks()

virtual bool operations_research::MPSolverInterface::SupportsCallbacks ( ) const
inlinevirtual

◆ SupportsDirectlySolveProto()

virtual bool operations_research::MPSolverInterface::SupportsDirectlySolveProto ( std::atomic< bool > * ) const
inlinevirtual

◆ underlying_solver()

◆ variable_is_extracted()

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

Definition at line 1791 of file linear_solver.h.

◆ Write()

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

◆ MPConstraint

friend class MPConstraint
friend

Definition at line 1849 of file linear_solver.h.

◆ MPObjective

friend class MPObjective
friend

Definition at line 1850 of file linear_solver.h.

◆ MPSolver

friend class MPSolver
friend

Definition at line 1846 of file linear_solver.h.

Member Data Documentation

◆ best_objective_bound_

double operations_research::MPSolverInterface::best_objective_bound_
protected

Definition at line 1871 of file linear_solver.h.

◆ kDummyVariableIndex

const int operations_research::MPSolverInterface::kDummyVariableIndex = 0
staticprotected

Definition at line 1878 of file linear_solver.h.

◆ kUnknownNumberOfIterations

int64_t operations_research::MPSolverInterface::kUnknownNumberOfIterations = -1
staticconstexpr

Definition at line 1659 of file linear_solver.h.

◆ kUnknownNumberOfNodes

int64_t operations_research::MPSolverInterface::kUnknownNumberOfNodes = -1
staticconstexpr

Definition at line 1662 of file linear_solver.h.

◆ last_constraint_index_

int operations_research::MPSolverInterface::last_constraint_index_
protected

Definition at line 1863 of file linear_solver.h.

◆ last_variable_index_

int operations_research::MPSolverInterface::last_variable_index_
protected

Definition at line 1865 of file linear_solver.h.

◆ maximize_

bool operations_research::MPSolverInterface::maximize_
protected

Definition at line 1860 of file linear_solver.h.

◆ objective_value_

double operations_research::MPSolverInterface::objective_value_
protected

Definition at line 1868 of file linear_solver.h.

◆ quiet_

bool operations_research::MPSolverInterface::quiet_
protected

Definition at line 1874 of file linear_solver.h.

◆ result_status_

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

Definition at line 1858 of file linear_solver.h.

◆ solver_

MPSolver* const operations_research::MPSolverInterface::solver_
protected

Definition at line 1853 of file linear_solver.h.

◆ sync_status_

SynchronizationStatus operations_research::MPSolverInterface::sync_status_
protected

Definition at line 1855 of file linear_solver.h.


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