#include <OsiAuxInfo.hpp>
Inheritance diagram for OsiBabSolver:
Public Member Functions | |
OsiBabSolver (int solverType=0) | |
OsiBabSolver (const OsiBabSolver &rhs) | |
virtual | ~OsiBabSolver () |
virtual OsiAuxInfo * | clone () const |
Clone. | |
OsiBabSolver & | operator= (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
| |
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
| |
bool | solutionAddsCuts () const |
Return true if getting solution may add cuts so hot start etc will be obsolete. | |
bool | alwaysTryCutsAtRootNode () const |
Return true if we should try cuts at root even if looks satisfied. | |
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 OsiSolverInterface * | solver_ |
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
| |
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. |
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.
OsiBabSolver::OsiBabSolver | ( | int | solverType = 0 |
) |
OsiBabSolver::OsiBabSolver | ( | const OsiBabSolver & | rhs | ) |
virtual OsiBabSolver::~OsiBabSolver | ( | ) | [virtual] |
virtual OsiAuxInfo* OsiBabSolver::clone | ( | ) | const [virtual] |
OsiBabSolver& OsiBabSolver::operator= | ( | const OsiBabSolver & | rhs | ) |
Assignment operator.
void OsiBabSolver::setSolver | ( | const OsiSolverInterface * | solver | ) | [inline] |
void OsiBabSolver::setSolver | ( | const OsiSolverInterface & | solver | ) | [inline] |
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
Using Outer Approximation so called lp based
Definition at line 100 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
Using Outer Approximation so called lp based
Definition at line 113 of file OsiAuxInfo.hpp.
References solverType_.
bool OsiBabSolver::solutionAddsCuts | ( | ) | const [inline] |
Return true if getting solution may add cuts so hot start etc will be obsolete.
Definition at line 117 of file OsiAuxInfo.hpp.
References solverType_.
bool OsiBabSolver::alwaysTryCutsAtRootNode | ( | ) | const [inline] |
Return true if we should try cuts at root even if looks satisfied.
Definition at line 120 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 124 of file OsiAuxInfo.hpp.
References solverType_.
bool OsiBabSolver::reducedCostsAccurate | ( | ) | const [inline] |
Returns true if can use reduced costs for fixing.
Definition at line 127 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 134 of file OsiAuxInfo.hpp.
References mipBound_.
double OsiBabSolver::bestObjectiveValue | ( | ) | const [inline] |
Get objective value of saved solution.
Definition at line 137 of file OsiAuxInfo.hpp.
References bestObjectiveValue_.
bool OsiBabSolver::tryCuts | ( | ) | const [inline] |
Says whether we want to try cuts at all.
Definition at line 140 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 143 of file OsiAuxInfo.hpp.
const OsiSolverInterface* OsiBabSolver::solver_ [protected] |
Solver to use for getting/setting solutions etc.
Definition at line 144 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
Using Outer Approximation so called lp based
Definition at line 159 of file OsiAuxInfo.hpp.
Referenced by alwaysTryCutsAtRootNode(), reducedCostsAccurate(), setSolverType(), solutionAddsCuts(), solverAccurate(), solverType(), and tryCuts().
double OsiBabSolver::bestObjectiveValue_ [protected] |
Objective value of best solution (if there is one) (minimization).
Definition at line 161 of file OsiAuxInfo.hpp.
Referenced by bestObjectiveValue().
double* OsiBabSolver::bestSolution_ [protected] |
double OsiBabSolver::mipBound_ [protected] |
Current lower bound on solution ( if > 1.0e50 infeasible).
Definition at line 165 of file OsiAuxInfo.hpp.
Referenced by setMipBound().
int OsiBabSolver::sizeSolution_ [protected] |