Cbc
2.10.10
|
This is to allow the user to replace initialSolve and resolve This version changes coefficients. More...
#include <CbcLinked.hpp>
Public Member Functions | |
Solve methods | |
virtual void | initialSolve () |
Solve initial LP relaxation. More... | |
virtual void | resolve () |
Resolve an LP relaxation after problem modification. More... | |
virtual int | fathom (bool allFixed) |
Problem specific Returns -1 if node fathomed and no solution 0 if did nothing 1 if node fathomed and solution allFixed is true if all LinkedBound variables are fixed. More... | |
double * | nonlinearSLP (int numberPasses, double deltaTolerance) |
Solves nonlinear problem from CoinModel using SLP - may be used as crash for other algorithms when number of iterations small. More... | |
double | linearizedBAB (CglStored *cut) |
Solve linearized quadratic objective branch and bound. More... | |
double * | heuristicSolution (int numberPasses, double deltaTolerance, int mode) |
Solves nonlinear problem from CoinModel using SLP - and then tries to get heuristic solution Returns solution array mode - 0 just get continuous 1 round and try normal bab 2 use defaultBound_ to bound integer variables near current solution. More... | |
int | doAOCuts (CglTemporary *cutGen, const double *solution, const double *solution2) |
Do OA cuts. More... | |
Constructors and destructors | |
OsiSolverLink () | |
Default Constructor. More... | |
OsiSolverLink (CoinModel &modelObject) | |
This creates from a coinModel object. More... | |
void | load (CoinModel &modelObject, bool tightenBounds=false, int logLevel=1) |
virtual OsiSolverInterface * | clone (bool copyData=true) const |
Clone. More... | |
OsiSolverLink (const OsiSolverLink &) | |
Copy constructor. More... | |
OsiSolverLink & | operator= (const OsiSolverLink &rhs) |
Assignment operator. More... | |
virtual | ~OsiSolverLink () |
Destructor. More... | |
Sets and Gets | |
void | addBoundModifier (bool upperBoundAffected, bool useUpperBound, int whichVariable, int whichVariableAffected, double multiplier=1.0) |
Add a bound modifier. More... | |
int | updateCoefficients (ClpSimplex *solver, CoinPackedMatrix *matrix) |
Update coefficients - returns number updated if in updating mode. More... | |
void | analyzeObjects () |
Analyze constraints to see which are convex (quadratic) More... | |
void | addTighterConstraints () |
Add reformulated bilinear constraints. More... | |
double | bestObjectiveValue () const |
Objective value of best solution found internally. More... | |
void | setBestObjectiveValue (double value) |
Set objective value of best solution found internally. More... | |
const double * | bestSolution () const |
Best solution found internally. More... | |
void | setBestSolution (const double *solution, int numberColumns) |
Set best solution found internally. More... | |
void | setSpecialOptions2 (int value) |
Set special options. More... | |
void | sayConvex (bool convex) |
Say convex (should work it out) - if convex false then strictly concave. More... | |
int | specialOptions2 () const |
Get special options. More... | |
CoinPackedMatrix * | cleanMatrix () const |
Clean copy of matrix So we can add rows. More... | |
CoinPackedMatrix * | originalRowCopy () const |
Row copy of matrix Just genuine columns and rows Linear part. More... | |
ClpSimplex * | quadraticModel () const |
Copy of quadratic model if one. More... | |
CoinPackedMatrix * | quadraticRow (int rowNumber, double *linear) const |
Gets correct form for a quadratic row - user to delete. More... | |
double | defaultMeshSize () const |
Default meshSize. More... | |
void | setDefaultMeshSize (double value) |
double | defaultBound () const |
Default maximumbound. More... | |
void | setDefaultBound (double value) |
void | setIntegerPriority (int value) |
Set integer priority. More... | |
int | integerPriority () const |
Get integer priority. More... | |
int | objectiveVariable () const |
Objective transfer variable if one. More... | |
void | setBiLinearPriority (int value) |
Set biLinear priority. More... | |
int | biLinearPriority () const |
Get biLinear priority. More... | |
const CoinModel * | coinModel () const |
Return CoinModel. More... | |
void | setBiLinearPriorities (int value, double meshSize=1.0) |
Set all biLinear priorities on x-x variables. More... | |
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 combinations. More... | |
void | setMeshSizes (double value) |
Set all mesh sizes on x-x variables. More... | |
void | setFixedPriority (int priorityValue) |
Two tier integer problem where when set of variables with priority less than this are fixed the problem becomes an easier integer problem. More... | |
![]() | |
CbcOsiSolver () | |
Default Constructor. More... | |
CbcOsiSolver (const CbcOsiSolver &) | |
Copy constructor. More... | |
CbcOsiSolver & | operator= (const CbcOsiSolver &rhs) |
Assignment operator. More... | |
virtual | ~CbcOsiSolver () |
Destructor. More... | |
void | setCbcModel (CbcModel *model) |
Set Cbc Model. More... | |
CbcModel * | cbcModel () const |
Return Cbc Model. More... | |
Protected Member Functions | |
functions | |
void | gutsOfDestructor (bool justNullify=false) |
Do real work of initialize. More... | |
void | gutsOfCopy (const OsiSolverLink &rhs) |
Do real work of copy. More... | |
Protected Attributes | |
Private member data | |
CoinPackedMatrix * | matrix_ |
Clean copy of matrix Marked coefficients will be multiplied by L or U. More... | |
CoinPackedMatrix * | originalRowCopy_ |
Row copy of matrix Just genuine columns and rows. More... | |
ClpSimplex * | quadraticModel_ |
Copy of quadratic model if one. More... | |
int | numberNonLinearRows_ |
Number of rows with nonLinearities. More... | |
int * | startNonLinear_ |
Starts of lists. More... | |
int * | rowNonLinear_ |
Row number for a list. More... | |
int * | convex_ |
Indicator whether is convex, concave or neither -1 concave, 0 neither, +1 convex. More... | |
int * | whichNonLinear_ |
Indices in a list/row. More... | |
CoinModel | coinModel_ |
Model in CoinModel format. More... | |
int | numberVariables_ |
Number of variables in tightening phase. More... | |
OsiLinkedBound * | info_ |
Information. More... | |
int | specialOptions2_ |
0 bit (1) - call fathom (may do mini B&B) 1 bit (2) - quadratic only in objective (add OA cuts) 2 bit (4) - convex 3 bit (8) - try adding OA cuts 4 bit (16) - add linearized constraints More... | |
int | objectiveRow_ |
Objective transfer row if one. More... | |
int | objectiveVariable_ |
Objective transfer variable if one. More... | |
double | bestObjectiveValue_ |
Objective value of best solution found internally. More... | |
double | defaultMeshSize_ |
Default mesh. More... | |
double | defaultBound_ |
Default maximum bound. More... | |
double * | bestSolution_ |
Best solution found internally. More... | |
int | integerPriority_ |
Priority for integers. More... | |
int | biLinearPriority_ |
Priority for bilinear. More... | |
int | numberFix_ |
Number of variables which when fixed help. More... | |
int * | fixVariables_ |
list of fixed variables More... | |
![]() | |
CbcModel * | cbcModel_ |
Pointer back to CbcModel. More... | |
This is to allow the user to replace initialSolve and resolve This version changes coefficients.
Definition at line 29 of file CbcLinked.hpp.
OsiSolverLink::OsiSolverLink | ( | ) |
Default Constructor.
OsiSolverLink::OsiSolverLink | ( | CoinModel & | modelObject | ) |
This creates from a coinModel object.
if errors.then number of sets is -1
This creates linked ordered sets information. It assumes -
for product terms syntax is yy*f(zz) also just f(zz) is allowed and even a constant
modelObject not const as may be changed as part of process.
OsiSolverLink::OsiSolverLink | ( | const OsiSolverLink & | ) |
Copy constructor.
|
virtual |
Destructor.
|
virtual |
Solve initial LP relaxation.
|
virtual |
Resolve an LP relaxation after problem modification.
|
virtual |
Problem specific Returns -1 if node fathomed and no solution 0 if did nothing 1 if node fathomed and solution allFixed is true if all LinkedBound variables are fixed.
double* OsiSolverLink::nonlinearSLP | ( | int | numberPasses, |
double | deltaTolerance | ||
) |
Solves nonlinear problem from CoinModel using SLP - may be used as crash for other algorithms when number of iterations small.
Also exits if all problematical variables are changing less than deltaTolerance Returns solution array
double OsiSolverLink::linearizedBAB | ( | CglStored * | cut | ) |
Solve linearized quadratic objective branch and bound.
Return cutoff and OA cut
double* OsiSolverLink::heuristicSolution | ( | int | numberPasses, |
double | deltaTolerance, | ||
int | mode | ||
) |
Solves nonlinear problem from CoinModel using SLP - and then tries to get heuristic solution Returns solution array mode - 0 just get continuous 1 round and try normal bab 2 use defaultBound_ to bound integer variables near current solution.
int OsiSolverLink::doAOCuts | ( | CglTemporary * | cutGen, |
const double * | solution, | ||
const double * | solution2 | ||
) |
Do OA cuts.
void OsiSolverLink::load | ( | CoinModel & | modelObject, |
bool | tightenBounds = false , |
||
int | logLevel = 1 |
||
) |
|
virtual |
Clone.
Reimplemented from CbcOsiSolver.
OsiSolverLink& OsiSolverLink::operator= | ( | const OsiSolverLink & | rhs | ) |
Assignment operator.
void OsiSolverLink::addBoundModifier | ( | bool | upperBoundAffected, |
bool | useUpperBound, | ||
int | whichVariable, | ||
int | whichVariableAffected, | ||
double | multiplier = 1.0 |
||
) |
Add a bound modifier.
int OsiSolverLink::updateCoefficients | ( | ClpSimplex * | solver, |
CoinPackedMatrix * | matrix | ||
) |
Update coefficients - returns number updated if in updating mode.
void OsiSolverLink::analyzeObjects | ( | ) |
Analyze constraints to see which are convex (quadratic)
void OsiSolverLink::addTighterConstraints | ( | ) |
Add reformulated bilinear constraints.
|
inline |
Objective value of best solution found internally.
Definition at line 120 of file CbcLinked.hpp.
|
inline |
Set objective value of best solution found internally.
Definition at line 125 of file CbcLinked.hpp.
|
inline |
Best solution found internally.
Definition at line 130 of file CbcLinked.hpp.
void OsiSolverLink::setBestSolution | ( | const double * | solution, |
int | numberColumns | ||
) |
Set best solution found internally.
|
inline |
Set special options.
Definition at line 137 of file CbcLinked.hpp.
void OsiSolverLink::sayConvex | ( | bool | convex | ) |
Say convex (should work it out) - if convex false then strictly concave.
|
inline |
Get special options.
Definition at line 144 of file CbcLinked.hpp.
|
inline |
Clean copy of matrix So we can add rows.
Definition at line 151 of file CbcLinked.hpp.
|
inline |
Row copy of matrix Just genuine columns and rows Linear part.
Definition at line 159 of file CbcLinked.hpp.
|
inline |
Copy of quadratic model if one.
Definition at line 164 of file CbcLinked.hpp.
CoinPackedMatrix* OsiSolverLink::quadraticRow | ( | int | rowNumber, |
double * | linear | ||
) | const |
Gets correct form for a quadratic row - user to delete.
|
inline |
Default meshSize.
Definition at line 171 of file CbcLinked.hpp.
|
inline |
Definition at line 175 of file CbcLinked.hpp.
|
inline |
Default maximumbound.
Definition at line 180 of file CbcLinked.hpp.
|
inline |
Definition at line 184 of file CbcLinked.hpp.
|
inline |
Set integer priority.
Definition at line 189 of file CbcLinked.hpp.
|
inline |
Get integer priority.
Definition at line 194 of file CbcLinked.hpp.
|
inline |
Objective transfer variable if one.
Definition at line 199 of file CbcLinked.hpp.
|
inline |
Set biLinear priority.
Definition at line 204 of file CbcLinked.hpp.
|
inline |
Get biLinear priority.
Definition at line 209 of file CbcLinked.hpp.
|
inline |
Return CoinModel.
Definition at line 214 of file CbcLinked.hpp.
void OsiSolverLink::setBiLinearPriorities | ( | int | value, |
double | meshSize = 1.0 |
||
) |
Set all biLinear priorities on x-x variables.
void OsiSolverLink::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 combinations.
-1 means leave (for priority value and strategy value)
void OsiSolverLink::setMeshSizes | ( | double | value | ) |
Set all mesh sizes on x-x variables.
void OsiSolverLink::setFixedPriority | ( | int | priorityValue | ) |
Two tier integer problem where when set of variables with priority less than this are fixed the problem becomes an easier integer problem.
|
protected |
Do real work of initialize.
Do real work of delete
|
protected |
Do real work of copy.
|
protected |
Clean copy of matrix Marked coefficients will be multiplied by L or U.
Definition at line 255 of file CbcLinked.hpp.
|
protected |
Row copy of matrix Just genuine columns and rows.
Definition at line 259 of file CbcLinked.hpp.
|
protected |
Copy of quadratic model if one.
Definition at line 261 of file CbcLinked.hpp.
|
protected |
Number of rows with nonLinearities.
Definition at line 263 of file CbcLinked.hpp.
|
protected |
Starts of lists.
Definition at line 265 of file CbcLinked.hpp.
|
protected |
Row number for a list.
Definition at line 267 of file CbcLinked.hpp.
|
protected |
Indicator whether is convex, concave or neither -1 concave, 0 neither, +1 convex.
Definition at line 271 of file CbcLinked.hpp.
|
protected |
Indices in a list/row.
Definition at line 273 of file CbcLinked.hpp.
|
protected |
Model in CoinModel format.
Definition at line 275 of file CbcLinked.hpp.
|
protected |
Number of variables in tightening phase.
Definition at line 277 of file CbcLinked.hpp.
|
protected |
Information.
Definition at line 279 of file CbcLinked.hpp.
|
protected |
0 bit (1) - call fathom (may do mini B&B) 1 bit (2) - quadratic only in objective (add OA cuts) 2 bit (4) - convex 3 bit (8) - try adding OA cuts 4 bit (16) - add linearized constraints
Definition at line 287 of file CbcLinked.hpp.
|
protected |
Objective transfer row if one.
Definition at line 289 of file CbcLinked.hpp.
|
protected |
Objective transfer variable if one.
Definition at line 291 of file CbcLinked.hpp.
|
protected |
Objective value of best solution found internally.
Definition at line 293 of file CbcLinked.hpp.
|
protected |
Default mesh.
Definition at line 295 of file CbcLinked.hpp.
|
protected |
Default maximum bound.
Definition at line 297 of file CbcLinked.hpp.
|
protected |
Best solution found internally.
Definition at line 299 of file CbcLinked.hpp.
|
protected |
Priority for integers.
Definition at line 301 of file CbcLinked.hpp.
|
protected |
Priority for bilinear.
Definition at line 303 of file CbcLinked.hpp.
|
protected |
Number of variables which when fixed help.
Definition at line 305 of file CbcLinked.hpp.
|
protected |
list of fixed variables
Definition at line 307 of file CbcLinked.hpp.