Google OR-Tools v9.11
a fast and portable software suite for combinatorial optimization
Loading...
Searching...
No Matches
operations_research::BopInterface Class Reference
Inheritance diagram for operations_research::BopInterface:
operations_research::MPSolverInterface

Public Member Functions

 BopInterface (MPSolver *solver)
 
 ~BopInterface () override
 
MPSolver::ResultStatus Solve (const MPSolverParameters &param) override
 --— Solve --—
 
void Reset () override
 --— Model modifications and extraction --—
 
void SetOptimizationDirection (bool maximize) override
 Sets the optimization direction (min/max).
 
void SetVariableBounds (int index, double lb, double ub) override
 Modifies bounds of an extracted variable.
 
void SetVariableInteger (int index, bool integer) override
 Modifies integrality of an extracted variable.
 
void SetConstraintBounds (int index, double lb, double ub) override
 Modify bounds of an extracted variable.
 
void AddRowConstraint (MPConstraint *ct) override
 Adds a linear constraint.
 
void AddVariable (MPVariable *var) override
 Add a variable.
 
void SetCoefficient (MPConstraint *constraint, const MPVariable *variable, double new_value, double old_value) override
 Changes a coefficient in a constraint.
 
void ClearConstraint (MPConstraint *constraint) override
 Clears a constraint from all its terms.
 
void SetObjectiveCoefficient (const MPVariable *variable, double coefficient) override
 Changes a coefficient in the linear objective.
 
void SetObjectiveOffset (double value) override
 Changes the constant term in the linear objective.
 
void ClearObjective () override
 Clears the objective from all its terms.
 
int64_t iterations () const override
 ---— Query statistics on the solution and the solve ---—
 
int64_t nodes () const override
 
MPSolver::BasisStatus row_status (int constraint_index) const override
 Returns the basis status of a row.
 
MPSolver::BasisStatus column_status (int variable_index) const override
 Returns the basis status of a constraint.
 
bool IsContinuous () const override
 --— Misc --—
 
bool IsLP () const override
 Returns true if the problem is continuous and linear.
 
bool IsMIP () const override
 Returns true if the problem is discrete and linear.
 
std::string SolverVersion () const override
 Returns a string describing the underlying solver and its version.
 
bool InterruptSolve () override
 
void * underlying_solver () override
 Returns the underlying solver.
 
void ExtractNewVariables () override
 
void ExtractNewConstraints () override
 
void ExtractObjective () override
 
void SetParameters (const MPSolverParameters &param) override
 Sets all parameters in the underlying solver.
 
void SetRelativeMipGap (double value) override
 Sets each parameter in the underlying solver.
 
void SetPrimalTolerance (double value) override
 All these have no effect.
 
void SetDualTolerance (double value) override
 
void SetPresolveMode (int value) override
 
void SetScalingMode (int value) override
 Sets the scaling mode.
 
void SetLpAlgorithm (int value) override
 
bool SetSolverSpecificParametersAsString (const std::string &parameters) override
 
- Public Member Functions inherited from operations_research::MPSolverInterface
 MPSolverInterface (MPSolver *solver)
 
virtual ~MPSolverInterface ()
 
virtual bool SupportsDirectlySolveProto (std::atomic< bool > *) const
 
virtual MPSolutionResponse DirectlySolveProto (LazyMutableCopy< MPModelRequest >, std::atomic< bool > *)
 
virtual void Write (const std::string &filename)
 
virtual bool AddIndicatorConstraint (MPConstraint *const)
 
virtual void BranchingPriorityChangedForVariable (int)
 
double best_objective_bound () const
 
double objective_value () const
 Returns the objective value of the best solution found so far.
 
bool CheckSolutionIsSynchronized () const
 
virtual bool CheckSolutionExists () const
 
bool CheckSolutionIsSynchronizedAndExists () const
 Handy shortcut to do both checks above (it is often used).
 
int last_variable_index () const
 Returns the index of the last variable extracted.
 
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
 Returns the boolean indicating the verbosity of the solver output.
 
void set_quiet (bool quiet_value)
 Sets the boolean indicating the verbosity of the solver output.
 
MPSolver::ResultStatus result_status () const
 Returns the result status of the last solve.
 
virtual double ComputeExactConditionNumber () const
 
virtual void SetStartingLpBasis (const std::vector< MPSolver::BasisStatus > &, const std::vector< MPSolver::BasisStatus > &)
 See MPSolver::SetStartingLpBasis().
 
virtual double infinity ()
 
virtual bool NextSolution ()
 See MPSolver::NextSolution() for contract.
 
virtual void SetCallback (MPCallback *)
 See MPSolver::SetCallback() for details.
 
virtual bool SupportsCallbacks () const
 

Additional Inherited Members

- Public Types inherited from operations_research::MPSolverInterface
enum  SynchronizationStatus { MUST_RELOAD , MODEL_SYNCHRONIZED , SOLUTION_SYNCHRONIZED }
 
- Static Public Attributes inherited from operations_research::MPSolverInterface
static constexpr int64_t kUnknownNumberOfIterations = -1
 
static constexpr int64_t kUnknownNumberOfNodes = -1
 
- Protected Member Functions inherited from operations_research::MPSolverInterface
void ExtractModel ()
 Extracts model stored in MPSolver.
 
void ResetExtractionInformation ()
 Resets the extraction information.
 
void InvalidateSolutionSynchronization ()
 
void SetCommonParameters (const MPSolverParameters &param)
 Sets parameters common to LP and MIP in the underlying solver.
 
void SetMIPParameters (const MPSolverParameters &param)
 Sets MIP specific parameters in the underlying solver.
 
void SetUnsupportedDoubleParam (MPSolverParameters::DoubleParam param)
 Sets an unsupported double parameter.
 
virtual void SetUnsupportedIntegerParam (MPSolverParameters::IntegerParam param)
 Sets an unsupported integer parameter.
 
void SetDoubleParamToUnsupportedValue (MPSolverParameters::DoubleParam param, double value)
 Sets a supported double parameter to an unsupported value.
 
virtual void SetIntegerParamToUnsupportedValue (MPSolverParameters::IntegerParam param, int value)
 Sets a supported integer parameter to an unsupported value.
 
virtual absl::Status SetNumThreads (int num_threads)
 Sets the number of threads to be used by the solver.
 
- Protected Attributes inherited from operations_research::MPSolverInterface
MPSolver *const solver_
 
SynchronizationStatus sync_status_
 Indicates whether the model and the solution are synchronized.
 
MPSolver::ResultStatus result_status_
 
bool maximize_
 Optimization direction.
 
int last_constraint_index_
 Index in MPSolver::variables_ of last constraint extracted.
 
int last_variable_index_
 Index in MPSolver::constraints_ of last variable extracted.
 
double objective_value_
 The value of the objective function.
 
double best_objective_bound_
 The value of the best objective bound. Used only for MIP solvers.
 
bool quiet_
 Boolean indicator for the verbosity of the solver output.
 
- Static Protected Attributes inherited from operations_research::MPSolverInterface
static const int kDummyVariableIndex = 0
 -------— MPSolverInterface -------—
 

Detailed Description

Definition at line 56 of file bop_interface.cc.

Constructor & Destructor Documentation

◆ BopInterface()

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

Definition at line 120 of file bop_interface.cc.

◆ ~BopInterface()

operations_research::BopInterface::~BopInterface ( )
override

Definition at line 129 of file bop_interface.cc.

Member Function Documentation

◆ AddRowConstraint()

void operations_research::BopInterface::AddRowConstraint ( MPConstraint * ct)
overridevirtual

Adds a linear constraint.

Implements operations_research::MPSolverInterface.

Definition at line 234 of file bop_interface.cc.

◆ AddVariable()

void operations_research::BopInterface::AddVariable ( MPVariable * var)
overridevirtual

Add a variable.

Implements operations_research::MPSolverInterface.

Definition at line 238 of file bop_interface.cc.

◆ ClearConstraint()

void operations_research::BopInterface::ClearConstraint ( MPConstraint * constraint)
overridevirtual

Clears a constraint from all its terms.

Implements operations_research::MPSolverInterface.

Definition at line 248 of file bop_interface.cc.

◆ ClearObjective()

void operations_research::BopInterface::ClearObjective ( )
overridevirtual

Clears the objective from all its terms.

Implements operations_research::MPSolverInterface.

Definition at line 259 of file bop_interface.cc.

◆ column_status()

MPSolver::BasisStatus operations_research::BopInterface::column_status ( int variable_index) const
overridevirtual

Returns the basis status of a constraint.

Implements operations_research::MPSolverInterface.

Definition at line 275 of file bop_interface.cc.

◆ ExtractNewConstraints()

void operations_research::BopInterface::ExtractNewConstraints ( )
overridevirtual
Todo
(user): remove duplication with GlopInterface.

Implements operations_research::MPSolverInterface.

Definition at line 315 of file bop_interface.cc.

◆ ExtractNewVariables()

void operations_research::BopInterface::ExtractNewVariables ( )
overridevirtual
Todo
(user): remove duplication with GlopInterface.

Implements operations_research::MPSolverInterface.

Definition at line 296 of file bop_interface.cc.

◆ ExtractObjective()

void operations_research::BopInterface::ExtractObjective ( )
overridevirtual
Todo
(user): remove duplication with GlopInterface.

Implements operations_research::MPSolverInterface.

Definition at line 340 of file bop_interface.cc.

◆ InterruptSolve()

bool operations_research::BopInterface::InterruptSolve ( )
overridevirtual

Reimplemented from operations_research::MPSolverInterface.

Definition at line 288 of file bop_interface.cc.

◆ IsContinuous()

bool operations_research::BopInterface::IsContinuous ( ) const
overridevirtual

--— Misc --—

Implements operations_research::MPSolverInterface.

Definition at line 279 of file bop_interface.cc.

◆ IsLP()

bool operations_research::BopInterface::IsLP ( ) const
overridevirtual

Returns true if the problem is continuous and linear.

Implements operations_research::MPSolverInterface.

Definition at line 280 of file bop_interface.cc.

◆ IsMIP()

bool operations_research::BopInterface::IsMIP ( ) const
overridevirtual

Returns true if the problem is discrete and linear.

Implements operations_research::MPSolverInterface.

Definition at line 281 of file bop_interface.cc.

◆ iterations()

int64_t operations_research::BopInterface::iterations ( ) const
overridevirtual

---— Query statistics on the solution and the solve ---—

Implements operations_research::MPSolverInterface.

Definition at line 261 of file bop_interface.cc.

◆ nodes()

int64_t operations_research::BopInterface::nodes ( ) const
overridevirtual

Returns the number of branch-and-bound nodes. The problem must be discrete, otherwise it crashes, or returns kUnknownNumberOfNodes in NDEBUG mode.

Implements operations_research::MPSolverInterface.

Definition at line 266 of file bop_interface.cc.

◆ Reset()

void operations_research::BopInterface::Reset ( )
overridevirtual

--— Model modifications and extraction --—

Implements operations_research::MPSolverInterface.

Definition at line 212 of file bop_interface.cc.

◆ row_status()

MPSolver::BasisStatus operations_research::BopInterface::row_status ( int constraint_index) const
overridevirtual

Returns the basis status of a row.

Implements operations_research::MPSolverInterface.

Definition at line 271 of file bop_interface.cc.

◆ SetCoefficient()

void operations_research::BopInterface::SetCoefficient ( MPConstraint * constraint,
const MPVariable * variable,
double new_value,
double old_value )
overridevirtual

Changes a coefficient in a constraint.

Implements operations_research::MPSolverInterface.

Definition at line 242 of file bop_interface.cc.

◆ SetConstraintBounds()

void operations_research::BopInterface::SetConstraintBounds ( int index,
double lb,
double ub )
overridevirtual

Modify bounds of an extracted variable.

Implements operations_research::MPSolverInterface.

Definition at line 230 of file bop_interface.cc.

◆ SetDualTolerance()

void operations_research::BopInterface::SetDualTolerance ( double value)
overridevirtual

Implements operations_research::MPSolverInterface.

Definition at line 357 of file bop_interface.cc.

◆ SetLpAlgorithm()

void operations_research::BopInterface::SetLpAlgorithm ( int value)
overridevirtual

Implements operations_research::MPSolverInterface.

Definition at line 359 of file bop_interface.cc.

◆ SetObjectiveCoefficient()

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

Changes a coefficient in the linear objective.

Implements operations_research::MPSolverInterface.

Definition at line 252 of file bop_interface.cc.

◆ SetObjectiveOffset()

void operations_research::BopInterface::SetObjectiveOffset ( double value)
overridevirtual

Changes the constant term in the linear objective.

Implements operations_research::MPSolverInterface.

Definition at line 257 of file bop_interface.cc.

◆ SetOptimizationDirection()

void operations_research::BopInterface::SetOptimizationDirection ( bool maximize)
overridevirtual

Sets the optimization direction (min/max).

Implements operations_research::MPSolverInterface.

Definition at line 218 of file bop_interface.cc.

◆ SetParameters()

void operations_research::BopInterface::SetParameters ( const MPSolverParameters & param)
overridevirtual

Sets all parameters in the underlying solver.

Implements operations_research::MPSolverInterface.

Definition at line 350 of file bop_interface.cc.

◆ SetPresolveMode()

void operations_research::BopInterface::SetPresolveMode ( int value)
overridevirtual
Todo
(user): add this to BopParameters.
Todo
(user): add this to BopParameters.

Implements operations_research::MPSolverInterface.

Definition at line 362 of file bop_interface.cc.

◆ SetPrimalTolerance()

void operations_research::BopInterface::SetPrimalTolerance ( double value)
overridevirtual

All these have no effect.

Implements operations_research::MPSolverInterface.

Definition at line 356 of file bop_interface.cc.

◆ SetRelativeMipGap()

void operations_research::BopInterface::SetRelativeMipGap ( double value)
overridevirtual

Sets each parameter in the underlying solver.

Implements operations_research::MPSolverInterface.

Definition at line 360 of file bop_interface.cc.

◆ SetScalingMode()

void operations_research::BopInterface::SetScalingMode ( int value)
overridevirtual

Sets the scaling mode.

Implements operations_research::MPSolverInterface.

Definition at line 358 of file bop_interface.cc.

◆ SetSolverSpecificParametersAsString()

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

Pass solver specific parameters in text format. The format is solver-specific and is the same as the corresponding solver configuration file format. Returns true if the operation was successful.

Default implementation returns true if the input is empty. It returns false and logs a WARNING if the input is not empty.

Reimplemented from operations_research::MPSolverInterface.

Definition at line 377 of file bop_interface.cc.

◆ SetVariableBounds()

void operations_research::BopInterface::SetVariableBounds ( int index,
double lb,
double ub )
overridevirtual

Modifies bounds of an extracted variable.

Implements operations_research::MPSolverInterface.

Definition at line 222 of file bop_interface.cc.

◆ SetVariableInteger()

void operations_research::BopInterface::SetVariableInteger ( int index,
bool integer )
overridevirtual

Modifies integrality of an extracted variable.

Implements operations_research::MPSolverInterface.

Definition at line 226 of file bop_interface.cc.

◆ Solve()

MPSolver::ResultStatus operations_research::BopInterface::Solve ( const MPSolverParameters & param)
overridevirtual

--— Solve --—

Check whenever the solve has already been stopped by the user.

linear_solver.cc as DCHECK_EQ that interface_->result_status_ is the same as the status returned by interface_->Solve().

Reset extraction as this interface is not incremental yet.

Time limit.

The solution must be marked as synchronized even when no solution exists.

Get the results.

Todo
(user): Implement the column status.
Todo
(user): Implement the row status.

Implements operations_research::MPSolverInterface.

Definition at line 131 of file bop_interface.cc.

◆ SolverVersion()

std::string operations_research::BopInterface::SolverVersion ( ) const
overridevirtual

Returns a string describing the underlying solver and its version.

Todo
(user): Decide how to version bop.

Implements operations_research::MPSolverInterface.

Definition at line 283 of file bop_interface.cc.

◆ underlying_solver()

void * operations_research::BopInterface::underlying_solver ( )
overridevirtual

Returns the underlying solver.

Implements operations_research::MPSolverInterface.

Definition at line 293 of file bop_interface.cc.


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