Clp
1.17.8
|
This is a very simple class to guide algorithms. More...
#include <ClpSolve.hpp>
Public Types | |
enum | SolveType { useDual = 0, usePrimal, usePrimalorSprint, useBarrier, useBarrierNoCross, automatic, tryDantzigWolfe, tryBenders, notImplemented } |
enums for solve function More... | |
enum | PresolveType { presolveOn = 0, presolveOff, presolveNumber, presolveNumberCost } |
Public Member Functions | |
Constructors and destructor and copy | |
ClpSolve () | |
Default constructor. More... | |
ClpSolve (SolveType method, PresolveType presolveType, int numberPasses, int options[6], int extraInfo[6], int independentOptions[3]) | |
Constructor when you really know what you are doing. More... | |
void | generateCpp (FILE *fp) |
Generates code for above constructor. More... | |
ClpSolve (const ClpSolve &) | |
Copy constructor. More... | |
ClpSolve & | operator= (const ClpSolve &rhs) |
Assignment operator. This copies the data. More... | |
~ClpSolve () | |
Destructor. More... | |
Functions most useful to user | |
void | setSpecialOption (int which, int value, int extraInfo=-1) |
Special options - bits 0 4 - use crash (default allslack in dual, idiot in primal) 8 - all slack basis in primal 2 16 - switch off interrupt handling 3 32 - do not try and make plus minus one matrix 64 - do not use sprint even if problem looks good. More... | |
int | getSpecialOption (int which) const |
void | setSolveType (SolveType method, int extraInfo=-1) |
Solve types. More... | |
SolveType | getSolveType () |
void | setPresolveType (PresolveType amount, int extraInfo=-1) |
PresolveType | getPresolveType () |
int | getPresolvePasses () const |
int | getExtraInfo (int which) const |
Extra info for idiot (or sprint) More... | |
void | setInfeasibleReturn (bool trueFalse) |
Say to return at once if infeasible, default is to solve. More... | |
bool | infeasibleReturn () const |
bool | doDual () const |
Whether we want to do dual part of presolve. More... | |
void | setDoDual (bool doDual_) |
bool | doSingleton () const |
Whether we want to do singleton part of presolve. More... | |
void | setDoSingleton (bool doSingleton_) |
bool | doDoubleton () const |
Whether we want to do doubleton part of presolve. More... | |
void | setDoDoubleton (bool doDoubleton_) |
bool | doTripleton () const |
Whether we want to do tripleton part of presolve. More... | |
void | setDoTripleton (bool doTripleton_) |
bool | doTighten () const |
Whether we want to do tighten part of presolve. More... | |
void | setDoTighten (bool doTighten_) |
bool | doForcing () const |
Whether we want to do forcing part of presolve. More... | |
void | setDoForcing (bool doForcing_) |
bool | doImpliedFree () const |
Whether we want to do impliedfree part of presolve. More... | |
void | setDoImpliedFree (bool doImpliedfree) |
bool | doDupcol () const |
Whether we want to do dupcol part of presolve. More... | |
void | setDoDupcol (bool doDupcol_) |
bool | doDuprow () const |
Whether we want to do duprow part of presolve. More... | |
void | setDoDuprow (bool doDuprow_) |
bool | doSingletonColumn () const |
Whether we want to do singleton column part of presolve. More... | |
void | setDoSingletonColumn (bool doSingleton_) |
bool | doKillSmall () const |
Whether we want to kill small substitutions. More... | |
void | setDoKillSmall (bool doKill) |
int | presolveActions () const |
Set whole group. More... | |
void | setPresolveActions (int action) |
int | substitution () const |
Largest column for substitution (normally 3) More... | |
void | setSubstitution (int value) |
void | setIndependentOption (int type, int value) |
int | independentOption (int type) const |
Private Attributes | |
data. | |
SolveType | method_ |
Solve type. More... | |
PresolveType | presolveType_ |
Presolve type. More... | |
int | numberPasses_ |
Amount of presolve. More... | |
int | options_ [7] |
Options - last is switch for OsiClp. More... | |
int | extraInfo_ [7] |
Extra information. More... | |
int | independentOptions_ [3] |
Extra algorithm dependent options 0 - if set return from clpsolve if infeasible 1 - To be copied over to presolve options 2 - max substitution level If Dantzig Wolfe/benders 0 is number blocks, 2 is #passes (notional) More... | |
This is a very simple class to guide algorithms.
It is used to tidy up passing parameters to initialSolve and maybe for output from that
Definition at line 20 of file ClpSolve.hpp.
enum ClpSolve::SolveType |
enums for solve function
Enumerator | |
---|---|
useDual | |
usePrimal | |
usePrimalorSprint | |
useBarrier | |
useBarrierNoCross | |
automatic | |
tryDantzigWolfe | |
tryBenders | |
notImplemented |
Definition at line 24 of file ClpSolve.hpp.
Enumerator | |
---|---|
presolveOn | |
presolveOff | |
presolveNumber | |
presolveNumberCost |
Definition at line 35 of file ClpSolve.hpp.
ClpSolve::ClpSolve | ( | ) |
Default constructor.
ClpSolve::ClpSolve | ( | SolveType | method, |
PresolveType | presolveType, | ||
int | numberPasses, | ||
int | options[6], | ||
int | extraInfo[6], | ||
int | independentOptions[3] | ||
) |
Constructor when you really know what you are doing.
ClpSolve::ClpSolve | ( | const ClpSolve & | ) |
Copy constructor.
ClpSolve::~ClpSolve | ( | ) |
Destructor.
void ClpSolve::generateCpp | ( | FILE * | fp | ) |
Generates code for above constructor.
void ClpSolve::setSpecialOption | ( | int | which, |
int | value, | ||
int | extraInfo = -1 |
||
) |
Special options - bits 0 4 - use crash (default allslack in dual, idiot in primal) 8 - all slack basis in primal 2 16 - switch off interrupt handling 3 32 - do not try and make plus minus one matrix 64 - do not use sprint even if problem looks good.
which translation is: which: 0 - startup in Dual (nothing if basis exists).: 0 - no basis 1 - crash 2 - use initiative about idiot! but no crash 1 - startup in Primal (nothing if basis exists): 0 - use initiative 1 - use crash 2 - use idiot and look at further info 3 - use sprint and look at further info 4 - use all slack 5 - use initiative but no idiot 6 - use initiative but no sprint 7 - use initiative but no crash 8 - do allslack or idiot 9 - do allslack or sprint 10 - slp before 11 - no nothing and primal(0) 2 - interrupt handling - 0 yes, 1 no (for threadsafe) 3 - whether to make +- 1matrix - 0 yes, 1 no 4 - for barrier 0 - dense cholesky 1 - Wssmp allowing some long columns 2 - Wssmp not allowing long columns 3 - Wssmp using KKT 4 - Using Florida ordering 8 - bit set to do scaling 16 - set to be aggressive with gamma/delta? 32 - Use KKT 5 - for presolve 1 - switch off dual stuff 6 - extra switches
int ClpSolve::getSpecialOption | ( | int | which | ) | const |
void ClpSolve::setSolveType | ( | SolveType | method, |
int | extraInfo = -1 |
||
) |
Solve types.
SolveType ClpSolve::getSolveType | ( | ) |
void ClpSolve::setPresolveType | ( | PresolveType | amount, |
int | extraInfo = -1 |
||
) |
PresolveType ClpSolve::getPresolveType | ( | ) |
int ClpSolve::getPresolvePasses | ( | ) | const |
int ClpSolve::getExtraInfo | ( | int | which | ) | const |
Extra info for idiot (or sprint)
void ClpSolve::setInfeasibleReturn | ( | bool | trueFalse | ) |
Say to return at once if infeasible, default is to solve.
|
inline |
Definition at line 120 of file ClpSolve.hpp.
|
inline |
Whether we want to do dual part of presolve.
Definition at line 125 of file ClpSolve.hpp.
|
inline |
Definition at line 129 of file ClpSolve.hpp.
|
inline |
Whether we want to do singleton part of presolve.
Definition at line 137 of file ClpSolve.hpp.
|
inline |
Definition at line 141 of file ClpSolve.hpp.
|
inline |
Whether we want to do doubleton part of presolve.
Definition at line 149 of file ClpSolve.hpp.
|
inline |
Definition at line 153 of file ClpSolve.hpp.
|
inline |
Whether we want to do tripleton part of presolve.
Definition at line 161 of file ClpSolve.hpp.
|
inline |
Definition at line 165 of file ClpSolve.hpp.
|
inline |
Whether we want to do tighten part of presolve.
Definition at line 173 of file ClpSolve.hpp.
|
inline |
Definition at line 177 of file ClpSolve.hpp.
|
inline |
Whether we want to do forcing part of presolve.
Definition at line 185 of file ClpSolve.hpp.
|
inline |
Definition at line 189 of file ClpSolve.hpp.
|
inline |
Whether we want to do impliedfree part of presolve.
Definition at line 197 of file ClpSolve.hpp.
|
inline |
Definition at line 201 of file ClpSolve.hpp.
|
inline |
Whether we want to do dupcol part of presolve.
Definition at line 209 of file ClpSolve.hpp.
|
inline |
Definition at line 213 of file ClpSolve.hpp.
|
inline |
Whether we want to do duprow part of presolve.
Definition at line 221 of file ClpSolve.hpp.
|
inline |
Definition at line 225 of file ClpSolve.hpp.
|
inline |
Whether we want to do singleton column part of presolve.
Definition at line 233 of file ClpSolve.hpp.
|
inline |
Definition at line 237 of file ClpSolve.hpp.
|
inline |
Whether we want to kill small substitutions.
Definition at line 245 of file ClpSolve.hpp.
|
inline |
Definition at line 249 of file ClpSolve.hpp.
|
inline |
Set whole group.
Definition at line 257 of file ClpSolve.hpp.
|
inline |
Definition at line 261 of file ClpSolve.hpp.
|
inline |
Largest column for substitution (normally 3)
Definition at line 266 of file ClpSolve.hpp.
|
inline |
Definition at line 270 of file ClpSolve.hpp.
|
inline |
Definition at line 274 of file ClpSolve.hpp.
|
inline |
Definition at line 278 of file ClpSolve.hpp.
|
private |
Solve type.
Definition at line 290 of file ClpSolve.hpp.
|
private |
Presolve type.
Definition at line 292 of file ClpSolve.hpp.
|
private |
Amount of presolve.
Definition at line 294 of file ClpSolve.hpp.
|
private |
Options - last is switch for OsiClp.
Definition at line 296 of file ClpSolve.hpp.
|
private |
Extra information.
Definition at line 298 of file ClpSolve.hpp.
|
private |
Extra algorithm dependent options 0 - if set return from clpsolve if infeasible 1 - To be copied over to presolve options 2 - max substitution level If Dantzig Wolfe/benders 0 is number blocks, 2 is #passes (notional)
Definition at line 305 of file ClpSolve.hpp.