Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members | Related Pages

OsiBabSolver Class Reference

This class allows for the use of more exotic solvers e.g. More...

#include <OsiAuxInfo.hpp>

Inheritance diagram for OsiBabSolver:

OsiAuxInfo List of all members.

Public Member Functions

 OsiBabSolver (int solverType=0)
 OsiBabSolver (const OsiBabSolver &rhs)
virtual ~OsiBabSolver ()
virtual OsiAuxInfoclone () const
 Clone.
OsiBabSolveroperator= (const OsiBabSolver &rhs)
 Assignment operator.
void setSolver (const OsiSolverInterface *solver)
 Update solver.
void setSolver (const OsiSolverInterface &solver)
 Update solver.
int solution (double &objectiveValue, double *newSolution, int numberColumns)
 returns 0 if no heuristic solution, 1 if valid solution with better objective value than one passed in Sets solution values if good, sets objective value numberColumns is size of newSolution
void setSolution (const double *solution, int numberColumns, double objectiveValue)
 Set solution and objective value.
bool hasSolution (double &solutionValue, double *solution)
 returns true if the object stores a solution, false otherwise.
void setSolverType (int value)
 Sets solver type 0 - normal LP solver 1 - DW - may also return heuristic solutions 2 - NLP solver or similar - can't compute objective value just from solution check solver to see if feasible and what objective value is - may also return heuristic solution 3 - NLP solver or similar - can't compute objective value just from solution check this (rather than solver) to see if feasible and what objective value is.
int solverType () const
 gets solver type 0 - normal LP solver 1 - DW - may also return heuristic solutions 2 - NLP solver or similar - can't compute objective value just from solution check this (rather than solver) to see if feasible and what objective value is - may also return heuristic solution 3 - NLP solver or similar - can't compute objective value just from solution check this (rather than solver) to see if feasible and what objective value is.
bool solutionAddsCuts () const
 Return true if getting solution may add cuts so hot start etc will be obsolete.
bool solverAccurate () const
 Returns true if can use solver objective or feasible values, otherwise use mipBound etc.
bool reducedCostsAccurate () const
 Returns true if can use reduced costs for fixing.
double mipBound () const
 Get objective (well mip bound).
bool mipFeasible () const
 Returns true if node feasible.
void setMipBound (double value)
 Set mip bound (only used for some solvers).
double bestObjectiveValue () const
 Get objective value of saved solution.
bool tryCuts () const
 Says whether we want to try cuts at all.
bool warmStart () const
 Says whether we have a warm start (so can do strong branching).

Protected Attributes

const OsiSolverInterfacesolver_
 Solver to use for getting/setting solutions etc.
int solverType_
 Solver type 0 - normal LP solver 1 - DW - may also return heuristic solutions 2 - NLP solver or similar - can't compute objective value just from solution check this (rather than solver) to see if feasible and what objective value is - may also return heuristic solution 3 - NLP solver or similar - can't compute objective value just from solution check this (rather than solver) to see if feasible and what objective value is.
double bestObjectiveValue_
 Objective value of best solution (if there is one) (minimization).
double * bestSolution_
 Best integer feasible solution.
double mipBound_
 Current lower bound on solution ( if > 1.0e50 infeasible).
int sizeSolution_
 Size of solution.

Detailed Description

This class allows for the use of more exotic solvers e.g.

Non-Linear or Volume.

You can derive from this although at present I can't see the need.

Definition at line 47 of file OsiAuxInfo.hpp.


Constructor & Destructor Documentation

OsiBabSolver::OsiBabSolver int  solverType = 0  ) 
 

OsiBabSolver::OsiBabSolver const OsiBabSolver rhs  ) 
 

virtual OsiBabSolver::~OsiBabSolver  )  [virtual]
 


Member Function Documentation

virtual OsiAuxInfo* OsiBabSolver::clone  )  const [virtual]
 

Clone.

Reimplemented from OsiAuxInfo.

OsiBabSolver& OsiBabSolver::operator= const OsiBabSolver rhs  ) 
 

Assignment operator.

void OsiBabSolver::setSolver const OsiSolverInterface solver  )  [inline]
 

Update solver.

Definition at line 63 of file OsiAuxInfo.hpp.

References solver_.

void OsiBabSolver::setSolver const OsiSolverInterface solver  )  [inline]
 

Update solver.

Definition at line 66 of file OsiAuxInfo.hpp.

References solver_.

int OsiBabSolver::solution double &  objectiveValue,
double *  newSolution,
int  numberColumns
 

returns 0 if no heuristic solution, 1 if valid solution with better objective value than one passed in Sets solution values if good, sets objective value numberColumns is size of newSolution

void OsiBabSolver::setSolution const double *  solution,
int  numberColumns,
double  objectiveValue
 

Set solution and objective value.

Number of columns and optimization direction taken from current solver. Size of solution is numberColumns (may be padded or truncated in function)

bool OsiBabSolver::hasSolution double &  solutionValue,
double *  solution
 

returns true if the object stores a solution, false otherwise.

If there is a solution then solutionValue and solution will be filled out as well. In that case the user needs to allocate solution to be a big enough array.

void OsiBabSolver::setSolverType int  value  )  [inline]
 

Sets solver type 0 - normal LP solver 1 - DW - may also return heuristic solutions 2 - NLP solver or similar - can't compute objective value just from solution check solver to see if feasible and what objective value is - may also return heuristic solution 3 - NLP solver or similar - can't compute objective value just from solution check this (rather than solver) to see if feasible and what objective value is.

Using Outer Approximation so called lp based

  • may also return heuristic solution

Definition at line 99 of file OsiAuxInfo.hpp.

References solverType_.

int OsiBabSolver::solverType  )  const [inline]
 

gets solver type 0 - normal LP solver 1 - DW - may also return heuristic solutions 2 - NLP solver or similar - can't compute objective value just from solution check this (rather than solver) to see if feasible and what objective value is - may also return heuristic solution 3 - NLP solver or similar - can't compute objective value just from solution check this (rather than solver) to see if feasible and what objective value is.

Using Outer Approximation so called lp based

  • may also return heuristic solution

Definition at line 112 of file OsiAuxInfo.hpp.

bool OsiBabSolver::solutionAddsCuts  )  const [inline]
 

Return true if getting solution may add cuts so hot start etc will be obsolete.

Definition at line 116 of file OsiAuxInfo.hpp.

References solverType_.

bool OsiBabSolver::solverAccurate  )  const [inline]
 

Returns true if can use solver objective or feasible values, otherwise use mipBound etc.

Definition at line 120 of file OsiAuxInfo.hpp.

References solverType_.

bool OsiBabSolver::reducedCostsAccurate  )  const [inline]
 

Returns true if can use reduced costs for fixing.

Definition at line 123 of file OsiAuxInfo.hpp.

References solverType_.

double OsiBabSolver::mipBound  )  const
 

Get objective (well mip bound).

bool OsiBabSolver::mipFeasible  )  const
 

Returns true if node feasible.

void OsiBabSolver::setMipBound double  value  )  [inline]
 

Set mip bound (only used for some solvers).

Definition at line 130 of file OsiAuxInfo.hpp.

References mipBound_.

double OsiBabSolver::bestObjectiveValue  )  const [inline]
 

Get objective value of saved solution.

Definition at line 133 of file OsiAuxInfo.hpp.

bool OsiBabSolver::tryCuts  )  const [inline]
 

Says whether we want to try cuts at all.

Definition at line 136 of file OsiAuxInfo.hpp.

References solverType_.

bool OsiBabSolver::warmStart  )  const [inline]
 

Says whether we have a warm start (so can do strong branching).

Definition at line 139 of file OsiAuxInfo.hpp.

References solverType_.


Member Data Documentation

const OsiSolverInterface* OsiBabSolver::solver_ [protected]
 

Solver to use for getting/setting solutions etc.

Definition at line 143 of file OsiAuxInfo.hpp.

Referenced by setSolver().

int OsiBabSolver::solverType_ [protected]
 

Solver type 0 - normal LP solver 1 - DW - may also return heuristic solutions 2 - NLP solver or similar - can't compute objective value just from solution check this (rather than solver) to see if feasible and what objective value is - may also return heuristic solution 3 - NLP solver or similar - can't compute objective value just from solution check this (rather than solver) to see if feasible and what objective value is.

Using Outer Approximation so called lp based

  • may also return heuristic solution

Definition at line 155 of file OsiAuxInfo.hpp.

Referenced by reducedCostsAccurate(), setSolverType(), solutionAddsCuts(), solverAccurate(), tryCuts(), and warmStart().

double OsiBabSolver::bestObjectiveValue_ [protected]
 

Objective value of best solution (if there is one) (minimization).

Definition at line 157 of file OsiAuxInfo.hpp.

double* OsiBabSolver::bestSolution_ [protected]
 

Best integer feasible solution.

Definition at line 159 of file OsiAuxInfo.hpp.

double OsiBabSolver::mipBound_ [protected]
 

Current lower bound on solution ( if > 1.0e50 infeasible).

Definition at line 161 of file OsiAuxInfo.hpp.

Referenced by setMipBound().

int OsiBabSolver::sizeSolution_ [protected]
 

Size of solution.

Definition at line 163 of file OsiAuxInfo.hpp.


The documentation for this class was generated from the following file:
Generated on Sun Jun 11 02:00:40 2006 by  doxygen 1.3.9.1