11 #include "CoinModel.hpp"
12 #include "OsiClpSolverInterface.hpp"
13 #include "OsiChooseVariable.hpp"
16 class CoinPackedMatrix;
46 virtual int fathom(
bool allFixed) ;
53 double *
nonlinearSLP(
int numberPasses,
double deltaTolerance);
92 void load( CoinModel & modelObject,
bool tightenBounds =
false,
int logLevel = 1);
94 virtual OsiSolverInterface *
clone(
bool copyData =
true)
const;
110 void addBoundModifier(
bool upperBoundAffected,
bool useUpperBound,
int whichVariable,
int whichVariableAffected,
112 double multiplier = 1.0);
161 CoinPackedMatrix *
quadraticRow(
int rowNumber,
double * linear)
const;
315 int numberAffected,
const int * positionL,
316 const int * positionU,
const double * multiplier);
336 void addBoundModifier(
bool upperBoundAffected,
bool useUpperBound,
int whichVariable,
337 double multiplier = 1.0);
349 unsigned char affect;
350 unsigned char ubUsed;
357 } boundElementAction;
361 OsiSolverInterface *
model_;
410 virtual int solution(
double & objectiveValue,
411 double * newSolution);
425 #include "OsiBranchingObject.hpp"
430 class CoinWarmStartBasis;
445 OsiOldLink (
const OsiSolverInterface * solver,
int numberMembers,
447 const double * weights,
int setNumber);
454 OsiOldLink (
const OsiSolverInterface * solver,
int numberMembers,
456 const double * weights,
int setNumber);
462 virtual OsiObject *
clone()
const;
470 using OsiObject::infeasibility ;
472 virtual double infeasibility(
const OsiBranchingInformation * info,
int & whichWay)
const;
474 using OsiObject::feasibleRegion ;
480 virtual double feasibleRegion(OsiSolverInterface * solver,
const OsiBranchingInformation * info)
const;
486 virtual OsiBranchingObject *
createBranch(OsiSolverInterface * solver,
const OsiBranchingInformation * info,
int way)
const;
489 virtual void resetSequenceEtc(
int numberColumns,
const int * originalColumns);
535 virtual OsiBranchingObject *
clone()
const;
540 using OsiBranchingObject::branch ;
542 virtual double branch(OsiSolverInterface * solver);
544 using OsiBranchingObject::print ;
547 virtual void print(
const OsiSolverInterface * solver = NULL);
566 OsiOneLink (
const OsiSolverInterface * solver,
int xRow,
int xColumn,
int xyRow,
567 const char * functionString);
598 class OsiLink :
public OsiSOS {
608 OsiLink (
const OsiSolverInterface * solver,
int yRow,
609 int yColumn,
double meshSize);
615 virtual OsiObject *
clone()
const;
623 using OsiObject::infeasibility ;
625 virtual double infeasibility(
const OsiBranchingInformation * info,
int & whichWay)
const;
627 using OsiObject::feasibleRegion ;
633 virtual double feasibleRegion(OsiSolverInterface * solver,
const OsiBranchingInformation * info)
const;
639 virtual OsiBranchingObject *
createBranch(OsiSolverInterface * solver,
const OsiBranchingInformation * info,
int way)
const;
642 virtual void resetSequenceEtc(
int numberColumns,
const int * originalColumns);
695 virtual OsiBranchingObject *
clone()
const;
700 using OsiBranchingObject::branch ;
702 virtual double branch(OsiSolverInterface * solver);
704 using OsiBranchingObject::print ;
707 virtual void print(
const OsiSolverInterface * solver = NULL);
732 double xMesh,
double yMesh,
733 int numberExistingObjects = 0,
const OsiObject ** objects = NULL );
742 double xMesh,
double yMesh,
743 int numberExistingObjects = 0,
const OsiObject ** objects = NULL );
749 virtual OsiObject *
clone()
const;
757 using OsiObject::infeasibility ;
759 virtual double infeasibility(
const OsiBranchingInformation * info,
int & whichWay)
const;
761 using OsiObject::feasibleRegion ;
767 virtual double feasibleRegion(OsiSolverInterface * solver,
const OsiBranchingInformation * info)
const;
773 virtual OsiBranchingObject *
createBranch(OsiSolverInterface * solver,
const OsiBranchingInformation * info,
int way)
const;
776 virtual void resetSequenceEtc(
int numberColumns,
const int * originalColumns);
873 void setMeshSizes(
const OsiSolverInterface * solver,
double x,
double y);
904 void newBounds(OsiSolverInterface * solver,
int way,
short xOrY,
double separator)
const;
906 int updateCoefficients(
const double * lower,
const double * upper,
double * objective,
907 CoinPackedMatrix * matrix, CoinWarmStartBasis * basis)
const;
911 void getCoefficients(
const OsiSolverInterface * solver,
double xB[2],
double yB[2],
double xybar[4])
const;
913 double computeLambdas(
const double xB[3],
const double yB[3],
const double xybar[4],
double lambda[4])
const;
919 double getMovement(
const OsiBranchingInformation * info);
923 void computeLambdas(
const OsiSolverInterface * solver,
double lambda[4])
const;
999 double separator,
int chosen);
1008 virtual OsiBranchingObject *
clone()
const;
1013 using OsiBranchingObject::branch ;
1015 virtual double branch(OsiSolverInterface * solver);
1017 using OsiBranchingObject::print ;
1020 virtual void print(
const OsiSolverInterface * solver = NULL);
1056 virtual OsiObject *
clone()
const;
1065 virtual double improvement(
const OsiSolverInterface * solver)
const;
1071 double newGrid(OsiSolverInterface * solver,
int type)
const;
1107 virtual OsiObject *
clone()
const;
1115 using OsiObject::infeasibility ;
1117 virtual double infeasibility(
const OsiBranchingInformation * info,
int & whichWay)
const;
1123 virtual OsiBranchingObject *
createBranch(OsiSolverInterface * solver,
const OsiBranchingInformation * info,
int way)
const;
1145 OsiUsesBiLinear (
const OsiSolverInterface * solver,
int iColumn,
int type);
1157 virtual OsiObject *
clone()
const;
1165 using OsiObject::infeasibility ;
1167 virtual double infeasibility(
const OsiBranchingInformation * info,
int & whichWay)
const;
1173 virtual OsiBranchingObject *
createBranch(OsiSolverInterface * solver,
const OsiBranchingInformation * info,
int way)
const;
1175 using OsiObject::feasibleRegion ;
1181 virtual double feasibleRegion(OsiSolverInterface * solver,
const OsiBranchingInformation * info)
const;
1218 virtual OsiChooseVariable *
clone()
const;
1227 virtual int setupList ( OsiBranchingInformation *info,
bool initialize);
1241 virtual int chooseVariable( OsiSolverInterface * solver, OsiBranchingInformation *info,
bool fixVariables);
1260 #include "CglStored.hpp"
1262 class CoinWarmStartBasis;
1279 virtual void generateCuts(
const OsiSolverInterface & si, OsiCuts & cs,
1280 const CglTreeInfo info = CglTreeInfo())
const;
1292 virtual CglCutGenerator *
clone()
const;
1334 virtual OsiSolverInterface *
clone(
bool copyData =
true)
const;
1401 int numberPasses,
double deltaTolerance,