76 int solution(
double & objectiveValue,
77 double * newSolution,
int numberColumns);
81 void setSolution(
const double * solution,
int numberColumns,
double objectiveValue);
88 bool hasSolution(
double & solutionValue,
double * solution);
103 { solverType_=value;}
117 {
return solverType_;}
121 {
return solverType_==3;}
124 {
return solverType_==4;}
128 {
return solverType_==0||solverType_==2||solverType_==4;}
131 {
return solverType_==0||solverType_==4;}
133 double mipBound()
const;
135 bool mipFeasible()
const;
138 { mipBound_ = value;}
141 {
return bestObjectiveValue_;}
144 {
return solverType_!=2;}
147 {
return solverType_!=2;}
153 {
return extraCharacteristics_;}
159 { extraCharacteristics_=value;}
162 {
return beforeLower_;}
165 { beforeLower_ = array;}
168 {
return beforeUpper_;}
171 { beforeUpper_ = array;}
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.
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 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 setMipBound(double value)
Set mip bound (only used for some solvers)
const double * beforeUpper_
Pointer to upper bounds before branch (only if extraCharacteristics set)