|
Cgl
0.60.3
|
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.
1.8.5