76 int solution(
double & objectiveValue,
77 double * newSolution,
int numberColumns);
double * bestSolution_
Best integer feasible solution.
const OsiSolverInterface * solver_
Solver to use for getting/setting solutions etc.
virtual OsiAuxInfo * clone() const
Clone.
double mipBound() const
Get objective (well mip bound)
double mipBound_
Current lower bound on solution ( if > 1.0e50 infeasible)
int sizeSolution_
Size of solution.
OsiBabSolver & operator=(const OsiBabSolver &rhs)
Assignment operator.
OsiAuxInfo(void *appData=NULL)
bool solverAccurate() const
Returns true if can use solver objective or feasible values, otherwise use mipBound etc...
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 i...
This class allows for a more structured use of algorithmic tweaking to an OsiSolverInterface.
int solverType() const
gets solver type 0 - normal LP solver 1 - DW - may also return heuristic solutions 2 - NLP solver or ...
bool tryCuts() const
Says whether we want to try cuts at all.
const double * beforeLower_
Pointer to lower bounds before branch (only if extraCharacteristics set)
void setBeforeUpper(const double *array)
Set pointer to upper bounds before branch (only if extraCharacteristics set)
void setSolution(const double *solution, int numberColumns, double objectiveValue)
Set solution and objective value.
void setBeforeLower(const double *array)
Set pointer to lower bounds before branch (only if extraCharacteristics set)
bool warmStart() const
Says whether we have a warm start (so can do strong branching)
void setSolver(const OsiSolverInterface &solver)
Update solver.
bool alwaysTryCutsAtRootNode() const
Return true if we should try cuts at root even if looks satisfied.
const double * beforeLower() const
Pointer to lower bounds before branch (only if extraCharacteristics set)
virtual OsiAuxInfo * clone() const
Clone.
const double * beforeUpper() const
Pointer to upper bounds before branch (only if extraCharacteristics set)
This class allows for the use of more exotic solvers e.g.
void * appData_
Pointer to user-defined data structure.
Abstract Base Class for describing an interface to a solver.
bool solutionAddsCuts() const
Return true if getting solution may add cuts so hot start etc will be obsolete.
int solverType_
Solver type 0 - normal LP solver 1 - DW - may also return heuristic solutions 2 - NLP solver or simil...
void setSolverType(int value)
Sets solver type 0 - normal LP solver 1 - DW - may also return heuristic solutions 2 - NLP solver or ...
int extraCharacteristics() const
Get bit mask for odd actions of solvers 1 - solution or bound arrays may move in mysterious ways e...
double bestObjectiveValue_
Objective value of best solution (if there is one) (minimization)
void * getApplicationData() const
Get application data.
void setExtraCharacteristics(int value)
Set bit mask for odd actions of solvers 1 - solution or bound arrays may move in mysterious ways e...
OsiAuxInfo & operator=(const OsiAuxInfo &rhs)
Assignment operator.
double bestObjectiveValue() const
Get objective value of saved solution.
bool reducedCostsAccurate() const
Returns true if can use reduced costs for fixing.
void setSolver(const OsiSolverInterface *solver)
Update solver.
bool mipFeasible() const
Returns true if node feasible.
int extraCharacteristics_
Bit mask for odd actions of solvers 1 - solution or bound arrays may move in mysterious ways e...
OsiBabSolver(int solverType=0)
bool hasSolution(double &solutionValue, double *solution)
returns true if the object stores a solution, false otherwise.
void setMipBound(double value)
Set mip bound (only used for some solvers)
const double * beforeUpper_
Pointer to upper bounds before branch (only if extraCharacteristics set)