13 #include "CoinModel.hpp"
14 #include "OsiClpSolverInterface.hpp"
15 #include "OsiChooseVariable.hpp"
18 class CoinPackedMatrix;
48 virtual int fathom(
bool allFixed) ;
55 double *
nonlinearSLP(
int numberPasses,
double deltaTolerance);
94 void load( CoinModel & modelObject,
bool tightenBounds =
false,
int logLevel = 1);
96 virtual OsiSolverInterface *
clone(
bool copyData =
true)
const;
112 void addBoundModifier(
bool upperBoundAffected,
bool useUpperBound,
int whichVariable,
int whichVariableAffected,
114 double multiplier = 1.0);
163 CoinPackedMatrix *
quadraticRow(
int rowNumber,
double * linear)
const;
317 int numberAffected,
const int * positionL,
318 const int * positionU,
const double * multiplier);
338 void addBoundModifier(
bool upperBoundAffected,
bool useUpperBound,
int whichVariable,
339 double multiplier = 1.0);
351 unsigned char affect;
352 unsigned char ubUsed;
359 } boundElementAction;
363 OsiSolverInterface * model_;
370 int maximumAffected_;
372 boundElementAction * affected_;
412 virtual int solution(
double & objectiveValue,
413 double * newSolution);
427 #include "OsiBranchingObject.hpp"
432 class CoinWarmStartBasis;
447 OsiOldLink (
const OsiSolverInterface * solver,
int numberMembers,
449 const double * weights,
int setNumber);
456 OsiOldLink (
const OsiSolverInterface * solver,
int numberMembers,
457 int numberLinks,
int typeSOS,
const int * which,
458 const double * weights,
int setNumber);
464 virtual OsiObject *
clone()
const;
472 using OsiObject::infeasibility ;
474 virtual double infeasibility(
const OsiBranchingInformation * info,
int & whichWay)
const;
476 using OsiObject::feasibleRegion ;
482 virtual double feasibleRegion(OsiSolverInterface * solver,
const OsiBranchingInformation * info)
const;
488 virtual OsiBranchingObject *
createBranch(OsiSolverInterface * solver,
const OsiBranchingInformation * info,
int way)
const;
491 virtual void resetSequenceEtc(
int numberColumns,
const int * originalColumns);
537 virtual OsiBranchingObject *
clone()
const;
542 using OsiBranchingObject::branch ;
544 virtual double branch(OsiSolverInterface * solver);
546 using OsiBranchingObject::print ;
549 virtual void print(
const OsiSolverInterface * solver = NULL);
568 OsiOneLink (
const OsiSolverInterface * solver,
int xRow,
int xColumn,
int xyRow,
569 const char * functionString);
610 OsiLink (
const OsiSolverInterface * solver,
int yRow,
611 int yColumn,
double meshSize);
617 virtual OsiObject *
clone()
const;
625 using OsiObject::infeasibility ;
627 virtual double infeasibility(
const OsiBranchingInformation * info,
int & whichWay)
const;
629 using OsiObject::feasibleRegion ;
635 virtual double feasibleRegion(OsiSolverInterface * solver,
const OsiBranchingInformation * info)
const;
641 virtual OsiBranchingObject *
createBranch(OsiSolverInterface * solver,
const OsiBranchingInformation * info,
int way)
const;
644 virtual void resetSequenceEtc(
int numberColumns,
const int * originalColumns);
697 virtual OsiBranchingObject *
clone()
const;
702 using OsiBranchingObject::branch ;
704 virtual double branch(OsiSolverInterface * solver);
706 using OsiBranchingObject::print ;
709 virtual void print(
const OsiSolverInterface * solver = NULL);
734 double xMesh,
double yMesh,
735 int numberExistingObjects = 0,
const OsiObject ** objects = NULL );
743 int yColumn,
int xyRow,
double coefficient,
744 double xMesh,
double yMesh,
745 int numberExistingObjects = 0,
const OsiObject ** objects = NULL );
751 virtual OsiObject *
clone()
const;
759 using OsiObject::infeasibility ;
761 virtual double infeasibility(
const OsiBranchingInformation * info,
int & whichWay)
const;
763 using OsiObject::feasibleRegion ;
769 virtual double feasibleRegion(OsiSolverInterface * solver,
const OsiBranchingInformation * info)
const;
775 virtual OsiBranchingObject *
createBranch(OsiSolverInterface * solver,
const OsiBranchingInformation * info,
int way)
const;
778 virtual void resetSequenceEtc(
int numberColumns,
const int * originalColumns);
875 void setMeshSizes(
const OsiSolverInterface * solver,
double x,
double y);
906 void newBounds(OsiSolverInterface * solver,
int way,
short xOrY,
double separator)
const;
908 int updateCoefficients(
const double * lower,
const double * upper,
double * objective,
909 CoinPackedMatrix * matrix, CoinWarmStartBasis * basis)
const;
913 void getCoefficients(
const OsiSolverInterface * solver,
double xB[2],
double yB[2],
double xybar[4])
const;
915 double computeLambdas(
const double xB[3],
const double yB[3],
const double xybar[4],
double lambda[4])
const;
921 double getMovement(
const OsiBranchingInformation * info);
925 void computeLambdas(
const OsiSolverInterface * solver,
double lambda[4])
const;
1001 double separator,
int chosen);
1010 virtual OsiBranchingObject *
clone()
const;
1015 using OsiBranchingObject::branch ;
1017 virtual double branch(OsiSolverInterface * solver);
1019 using OsiBranchingObject::print ;
1022 virtual void print(
const OsiSolverInterface * solver = NULL);
1058 virtual OsiObject *
clone()
const;
1067 virtual double improvement(
const OsiSolverInterface * solver)
const;
1073 double newGrid(OsiSolverInterface * solver,
int type)
const;
1076 return numberPoints_;
1079 numberPoints_ = value;
1109 virtual OsiObject *
clone()
const;
1117 using OsiObject::infeasibility ;
1119 virtual double infeasibility(
const OsiBranchingInformation * info,
int & whichWay)
const;
1125 virtual OsiBranchingObject *
createBranch(OsiSolverInterface * solver,
const OsiBranchingInformation * info,
int way)
const;
1147 OsiUsesBiLinear (
const OsiSolverInterface * solver,
int iColumn,
int type);
1159 virtual OsiObject *
clone()
const;
1167 using OsiObject::infeasibility ;
1169 virtual double infeasibility(
const OsiBranchingInformation * info,
int & whichWay)
const;
1175 virtual OsiBranchingObject *
createBranch(OsiSolverInterface * solver,
const OsiBranchingInformation * info,
int way)
const;
1177 using OsiObject::feasibleRegion ;
1183 virtual double feasibleRegion(OsiSolverInterface * solver,
const OsiBranchingInformation * info)
const;
1220 virtual OsiChooseVariable *
clone()
const;
1229 virtual int setupList ( OsiBranchingInformation *info,
bool initialize);
1243 virtual int chooseVariable( OsiSolverInterface * solver, OsiBranchingInformation *info,
bool fixVariables);
1262 #include "CglStored.hpp"
1264 class CoinWarmStartBasis;
1281 virtual void generateCuts(
const OsiSolverInterface & si, OsiCuts & cs,
1282 const CglTreeInfo info = CglTreeInfo());
1294 virtual CglCutGenerator *
clone()
const;
1336 virtual OsiSolverInterface *
clone(
bool copyData =
true)
const;
1403 int numberPasses,
double deltaTolerance,
void getPseudoShadow(const OsiBranchingInformation *info)
Sets infeasibility and other when pseudo shadow prices.
void setXOtherSatisfied(double value)
virtual void initialSolve()
Solve initial LP relaxation.
void addBiLinearObjects(OsiSolverLink *solver)
Add all bi-linear objects.
ClpSimplex * quadraticModel_
Copy of quadratic model if one.
virtual bool canDealWithOdd() const
Returns true if can deal with "odd" problems e.g. sos type 2.
const double * bestSolution() const
Best solution found internally.
virtual int fathom(bool allFixed)
Problem specific Returns -1 if node fathomed and no solution 0 if did nothing 1 if node fathomed and ...
int boundType_
Simple quadratic bound marker.
virtual OsiObject * clone() const
Clone.
int updateCoefficients(ClpSimplex *solver, CoinPackedMatrix *matrix)
Update coefficients - returns number updated if in updating mode.
int numberLinks() const
Number of links for each member.
virtual ~OsiOldLinkBranchingObject()
OsiSolverLink & operator=(const OsiSolverLink &rhs)
Assignment operator.
double linearizedBAB(CglStored *cut)
Solve linearized quadratic objective branch and bound.
void setBestObjectiveValue(double value)
Set objective value of best solution found internally.
OsiOldLinkBranchingObject & operator=(const OsiOldLinkBranchingObject &rhs)
int biLinearPriority_
Priority for bilinear.
~OsiLinkedBound()
Destructor.
void setNumberPoints(int value)
void setNumberObjectsToUse(int value)
Set number of objects to use.
virtual double checkInfeasibility(const OsiBranchingInformation *info) const
int * whichNonLinear_
Indices in a list/row.
OsiLinkedBound & operator=(const OsiLinkedBound &rhs)
Assignment operator.
virtual double branch(OsiSolverInterface *solver)
Does next branch and updates state.
virtual OsiBranchingObject * clone() const
Clone.
ClpSimplex * quadraticModel() const
Copy of quadratic model if one.
Define data for one link.
Define a single variable class which is involved with OsiBiLinear objects.
double * heuristicSolution(int numberPasses, double deltaTolerance, int mode)
Solves nonlinear problem from CoinModel using SLP - and then tries to get heuristic solution Returns ...
virtual CglCutGenerator * clone() const
Clone.
virtual double feasibleRegion(OsiSolverInterface *solver, const OsiBranchingInformation *info) const
Set bounds to fix the variable at the current value.
int type_
Type of variable - 0 continuous, 1 integer.
int integerPriority() const
Get integer priority.
CoinPackedMatrix * quadraticRow(int rowNumber, double *linear) const
Gets correct form for a quadratic row - user to delete.
ClpSimplex * quadraticModel_
Copy of quadratic model if one.
virtual OsiBranchingObject * createBranch(OsiSolverInterface *solver, const OsiBranchingInformation *info, int way) const
Creates a branching object.
void setBiLinearPriorities(int value, double meshSize=1.0)
Set all biLinear priorities on x-x variables.
double ySatisfied_
y satisfied if less than this away from mesh
heuristic - just picks up any good solution
virtual CbcHeuristic * clone() const
Clone.
int * extraRow_
Row number.
int variable() const
Get variable.
double xMeshSize() const
X meshSize.
OsiOldLinkBranchingObject()
virtual OsiBranchingObject * createBranch(OsiSolverInterface *solver, const OsiBranchingInformation *info, int way) const
Creates a branching object.
int yRow_
y row (-1 if x*x)
double ySatisfied() const
Y satisfied if less than this away from mesh.
int objectiveVariable() const
Objective transfer variable if one.
int specialOptions3_
0 bit (1) - don't do mini B&B 1 bit (2) - quadratic only in objective
virtual ~OsiLinkBranchingObject()
virtual int solution(double &objectiveValue, double *newSolution)
returns 0 if no solution, 1 if valid solution.
double * multiplier_
Multiplier for coefficient on row.
virtual ~OsiSolverLinearizedQuadratic()
Destructor.
int * convex_
Indicator whether is convex, concave or neither -1 concave, 0 neither, +1 convex. ...
const double * bestSolution() const
Best solution found internally.
int doAOCuts(CglTemporary *cutGen, const double *solution, const double *solution2)
Do OA cuts.
virtual OsiObject * clone() const
Clone.
void setYMeshSize(double value)
double xOtherSatisfied() const
X other satisfied if less than this away from mesh.
ClpSimplex * approximateSolution(CoinModel &coinModel, int numberPasses, double deltaTolerance, int mode=0)
Return an approximate solution to a CoinModel.
int objectiveVariable_
Objective transfer variable if one.
virtual ~OsiBiLinearBranchingObject()
int xyRow() const
XY row.
int numberObjectsToUse() const
Number of objects to use.
void setSpecialOptions2(int value)
Set special options.
virtual bool canDoHeuristics() const
Return true if object can take part in normal heuristics.
CoinPackedMatrix * cleanMatrix() const
Clean copy of matrix So we can add rows.
const CoinModel * coinModel() const
Return CoinModel.
OsiSolverLinearizedQuadratic & operator=(const OsiSolverLinearizedQuadratic &rhs)
Assignment operator.
void setBranchingStrategyOnVariables(int strategyValue, int priorityValue=-1, int mode=7)
Set options and priority on all or some biLinear variables 1 - on I-I 2 - on I-x 4 - on x-x or combin...
virtual OsiBranchingObject * clone() const
Clone.
This class chooses a variable to branch on.
void setDefaultMeshSize(double value)
void updateBounds(ClpSimplex *solver)
Update other bounds.
void gutsOfCopy(const OsiSolverLink &rhs)
Do real work of copy.
ClpSimplex * quadraticModel() const
Copy of quadratic model if one.
virtual OsiBranchingObject * createBranch(OsiSolverInterface *solver, const OsiBranchingInformation *info, int way) const
Creates a branching object.
virtual void resetModel(CbcModel *model)
Resets stuff if model changes.
Branching object for Linked ordered sets.
double defaultBound() const
Default maximumbound.
double bestObjectiveValue_
Objective value of best solution found internally.
This is for codes where solver needs to know about CbcModel Seems to provide only one value-added fea...
virtual bool boundBranch() const
Return true if branch should only bound variables.
int updateCoefficients(const double *lower, const double *upper, double *objective, CoinPackedMatrix *matrix, CoinWarmStartBasis *basis) const
Updates coefficients - returns number updated.
OsiChooseStrongSubset & operator=(const OsiChooseStrongSubset &rhs)
Assignment operator.
std::string function_
Function.
double * bestSolution_
Best solution found internally.
virtual double feasibleRegion(OsiSolverInterface *solver, const OsiBranchingInformation *info) const
Set bounds to fix the variable at the current (integer) value.
double xyBranchValue_
value of x or y to branch about
int objectiveRow_
Objective transfer row if one.
virtual void print(const OsiSolverInterface *solver=NULL)
Print something about branch - only if log level high.
virtual ~CglTemporary()
Destructor.
void getCoefficients(const OsiSolverInterface *solver, double xB[2], double yB[2], double xybar[4]) const
Get LU coefficients from matrix.
virtual double infeasibility(const OsiBranchingInformation *info, int &whichWay) const
Infeasibility - large is 0.5.
virtual bool boundBranch() const
Return true if branch should only bound variables.
virtual void resetSequenceEtc(int numberColumns, const int *originalColumns)
Redoes data when sequence numbers change.
virtual void initialSolve()
Solve initial LP relaxation.
double xyCoefficient(const double *solution) const
Returns true value of single xyRow coefficient.
double xSatisfied_
x satisfied if less than this away from mesh
double computeLambdas(const double xB[3], const double yB[3], const double xybar[4], double lambda[4]) const
Compute lambdas (third entry in each .B is current value) (nonzero if bad)
virtual bool canDoHeuristics() const
Return true if object can take part in normal heuristics.
void setBranchingStrategy(int value)
CoinPackedMatrix * matrix_
Clean copy of matrix Marked coefficients will be multiplied by L or U.
virtual double feasibleRegion(OsiSolverInterface *solver, const OsiBranchingInformation *info) const
Set bounds to fix the variable at the current (integer) value.
double xOtherSatisfied_
X other satisfied if less than this away from mesh.
CoinPackedMatrix * originalRowCopy() const
Row copy of matrix Just genuine columns and rows Linear part.
This is to allow the user to replace initialSolve and resolve.
virtual OsiObject * clone() const
Clone.
virtual OsiObject * clone() const
Clone.
virtual double feasibleRegion(OsiSolverInterface *solver, const OsiBranchingInformation *info) const
Set bounds to fix the variable at the current (integer) value.
void setIntegerPriority(int value)
Set integer priority.
double defaultMeshSize_
Default mesh.
double newGrid(OsiSolverInterface *solver, int type) const
change grid if type 0 then use solution and make finer if 1 then back to original returns mesh size ...
OsiUsesBiLinear & operator=(const OsiUsesBiLinear &rhs)
Assignment operator.
OsiOldLink & operator=(const OsiOldLink &rhs)
void setDefaultBound(double value)
double yOtherSatisfied_
Y other satisfied if less than this away from mesh.
double defaultBound_
Default maximum bound.
OsiLink & operator=(const OsiLink &rhs)
void gutsOfDestructor(bool justNullify=false)
Do real work of initialize.
void setFixedPriority(int priorityValue)
Two tier integer problem where when set of variables with priority less than this are fixed the probl...
This is to allow the user to replace initialSolve and resolve This version changes coefficients...
List of bounds which depend on other bounds.
void setMeshSizes(double value)
Set all mesh sizes on x-x variables.
int yColumn() const
Y column.
void setSpecialOptions3(int value)
Set special options.
virtual OsiObject * clone() const
Clone.
Define Continuous BiLinear objects for an == bound.
void setXYSatisfied(double value)
double bestObjectiveValue() const
Objective value of best solution found internally.
virtual double branch(OsiSolverInterface *solver)
Does next branch and updates state.
void addExtraRow(int row, double multiplier)
Adds in data for extra row with variable coefficients.
CoinModel coinModel_
Model in CoinModel format.
OsiBiLinear & operator=(const OsiBiLinear &rhs)
double xySatisfied_
xy satisfied if less than this away from true
OsiLinkedBound * info_
Information.
int branchingStrategy() const
branching strategy etc bottom 2 bits 0 branch on either, 1 branch on x, 2 branch on y next bit 4 set ...
short chosen_
Which chosen -1 none, 0 x, 1 y.
int numberExtraRows_
Number of extra rows (coefficients to be modified)
void setCoefficient(double value)
Set coefficient.
int numberBiLinear_
data Number of bilinear objects (maybe could be more general)
virtual bool canDoHeuristics() const
Return true if object can take part in normal heuristics.
virtual int setupList(OsiBranchingInformation *info, bool initialize)
Sets up strong list and clears all if initialize is true.
int boundType() const
Simple quadratic bound marker.
Define Special Linked Ordered Sets.
virtual OsiObject * clone() const
Clone.
int numberNonLinearRows_
Number of rows with nonLinearities.
int xColumn() const
X column.
virtual void generateCuts(const OsiSolverInterface &si, OsiCuts &cs, const CglTreeInfo info=CglTreeInfo())
Generate Mixed Integer Stored cuts for the model of the solver interface, si.
virtual ~OsiChooseStrongSubset()
Destructor.
OsiSimpleFixedInteger()
Default Constructor.
virtual double infeasibility(const OsiBranchingInformation *info, int &whichWay) const
Infeasibility - large is 0.5.
virtual double infeasibility(const OsiBranchingInformation *info, int &whichWay) const
Infeasibility - large is 0.5.
int branchingStrategy_
branching strategy etc bottom 2 bits 0 branch on either, 1 branch on x, 2 branch on y next bit 4 set ...
OsiSimpleFixedInteger & operator=(const OsiSimpleFixedInteger &rhs)
Assignment operator.
int numberLinks() const
Number of links for each member.
Branching object for Linked ordered sets.
int numberVariables_
Number of variables in tightening phase.
OsiBiLinearBranchingObject & operator=(const OsiBiLinearBranchingObject &rhs)
virtual ~OsiBiLinearEquality()
OsiUsesBiLinear()
Default Constructor.
OsiObject ** objects_
Objects.
int * rowNonLinear_
Row number for a list.
virtual void print(const OsiSolverInterface *solver=NULL)
Print something about branch - only if log level high.
virtual void resetSequenceEtc(int numberColumns, const int *originalColumns)
Redoes data when sequence numbers change.
virtual void print(const OsiSolverInterface *solver=NULL)
Print something about branch - only if log level high.
void sayConvex(bool convex)
Say convex (should work it out) - if convex false then strictly concave.
Stored Temporary Cut Generator Class - destroyed after first use.
double defaultMeshSize() const
Default meshSize.
int numberObjectsToUse_
Number of objects to be used (and set in solver)
void setMeshSizes(const OsiSolverInterface *solver, double x, double y)
Set sizes and other stuff.
OsiOneLink & operator=(const OsiOneLink &rhs)
double yMeshSize() const
Y meshSize.
CglTemporary()
Default constructor.
int specialOptions2() const
Get special options.
virtual void resolve()
Resolve an LP relaxation after problem modification.
double yOtherSatisfied() const
Y other satisfied if less than this away from mesh.
virtual double branch(OsiSolverInterface *solver)
Does next branch and updates state.
virtual void setModel(CbcModel *model)
update model
virtual int solution(double &objectiveValue, double *newSolution)=0
returns 0 if no solution, 1 if valid solution with better objective value than one passed in Sets sol...
virtual int chooseVariable(OsiSolverInterface *solver, OsiBranchingInformation *info, bool fixVariables)
Choose a variable Returns - -1 Node is infeasible 0 Normal termination - we have a candidate 1 All lo...
virtual ~OsiSolverLink()
Destructor.
double getMovement(const OsiBranchingInformation *info)
Gets sum of movements to correct value.
int firstLambda() const
First lambda (of 4)
int * startNonLinear_
Starts of lists.
int specialOptions2_
0 bit (1) - call fathom (may do mini B&B) 1 bit (2) - quadratic only in objective (add OA cuts) 2 bit...
virtual ~OsiSimpleFixedInteger()
Destructor.
void addBoundModifier(bool upperBoundAffected, bool useUpperBound, int whichVariable, double multiplier=1.0)
Add a bound modifier.
double xySatisfied() const
XY satisfied if two version differ by less than this.
virtual ~OsiUsesBiLinear()
Destructor.
OsiChooseStrongSubset()
Default Constructor.
virtual OsiBranchingObject * clone() const
Clone.
virtual bool boundBranch() const
Return true if branch should only bound variables.
int biLinearPriority() const
Get biLinear priority.
double * bestSolution_
Best solution found internally.
CoinPackedMatrix * originalRowCopy_
Row copy of matrix Just genuine columns and rows.
void setYOtherSatisfied(double value)
OsiBiLinearBranchingObject()
OsiLinkBranchingObject & operator=(const OsiLinkBranchingObject &rhs)
int numberPoints() const
Number of points.
void setXSatisfied(double value)
void addBoundModifier(bool upperBoundAffected, bool useUpperBound, int whichVariable, int whichVariableAffected, double multiplier=1.0)
Add a bound modifier.
double bestObjectiveValue_
Objective value of best solution found internally.
virtual double infeasibility(const OsiBranchingInformation *info, int &whichWay) const
Infeasibility - large is 0.5.
virtual bool boundBranch() const
Return true if branch should only bound variables.
virtual OsiBranchingObject * createBranch(OsiSolverInterface *solver, const OsiBranchingInformation *info, int way) const
Creates a branching object.
int convexity_
Convexity row.
virtual OsiSolverInterface * clone(bool copyData=true) const
Clone.
void setBiLinearPriority(int value)
Set biLinear priority.
int xColumn_
Column which defines x.
int * fixVariables_
list of fixed variables
double coefficient() const
Coefficient.
void setBoundType(int value)
virtual OsiChooseVariable * clone() const
Clone.
OsiSolverLink()
Default Constructor.
virtual void resetSequenceEtc(int numberColumns, const int *originalColumns)
Redoes data when sequence numbers change.
void addTighterConstraints()
Add reformulated bilinear constraints.
CglTemporary & operator=(const CglTemporary &rhs)
Assignment operator.
void load(CoinModel &modelObject, bool tightenBounds=false, int logLevel=1)
Simple Branch and bound class.
virtual double improvement(const OsiSolverInterface *solver) const
Possible improvement.
virtual OsiSolverInterface * clone(bool copyData=true) const
Clone.
void analyzeObjects()
Analyze constraints to see which are convex (quadratic)
double * nonlinearSLP(int numberPasses, double deltaTolerance)
Solves nonlinear problem from CoinModel using SLP - may be used as crash for other algorithms when nu...
virtual double infeasibility(const OsiBranchingInformation *info, int &whichWay) const
Infeasibility - large is 0.5.
Define a single integer class - but one where you keep branching until fixed even if satisfied...
void setYSatisfied(double value)
int integerPriority_
Priority for integers.
void newBounds(OsiSolverInterface *solver, int way, short xOrY, double separator) const
Does work of branching.
int numberFix_
Number of variables which when fixed help.
OsiBiLinearEquality & operator=(const OsiBiLinearEquality &rhs)
int specialOptions3() const
Get special options.
OsiLinkedBound()
Default Constructor.
virtual OsiBranchingObject * createBranch(OsiSolverInterface *solver, const OsiBranchingInformation *info, int way) const
Creates a branching object.
double bestObjectiveValue() const
Objective value of best solution found internally.
Branching object for BiLinear objects.
int firstLambda_
First lambda (of 4)
void setXMeshSize(double value)
double xSatisfied() const
X satisfied if less than this away from mesh.
void setBestSolution(const double *solution, int numberColumns)
Set best solution found internally.
OsiSolverLinearizedQuadratic()
Default Constructor.