83 int solution(
double &objectiveValue,
84 double *newSolution,
int numberColumns);
88 void setSolution(
const double *solution,
int numberColumns,
double objectiveValue);
95 bool hasSolution(
double &solutionValue,
double *solution);
133 return solverType_ == 3;
138 return solverType_ == 4;
144 return solverType_ == 0 || solverType_ == 2 || solverType_ == 4;
149 return solverType_ == 0 || solverType_ == 4;
152 double mipBound()
const;
154 bool mipFeasible()
const;
163 return bestObjectiveValue_;
168 return solverType_ != 2;
173 return solverType_ != 2;
181 return extraCharacteristics_;
189 extraCharacteristics_ = value;
199 beforeLower_ = array;
209 beforeUpper_ = array;
214 extraInfo_ = extraInfo;
double * bestSolution_
Best integer feasible solution.
const OsiSolverInterface * solver_
Solver to use for getting/setting solutions etc.
double mipBound_
Current lower bound on solution ( if > 1.0e50 infeasible)
int sizeSolution_
Size of solution.
void * extraInfo_
Pointer to extra info.
OsiAuxInfo(void *appData=NULL)
bool solverAccurate() const
Returns true if can use solver objective or feasible values, otherwise use mipBound etc...
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 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 * getExtraPointer() const
get pointer to extra info
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.
int extraCharacteristics_
Bit mask for odd actions of solvers 1 - solution or bound arrays may move in mysterious ways e...
void setExtraPointer(void *extraInfo)
Set pointer to extra stuff.
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)