Loading...
Searching...
No Matches
ClpSolve Class Reference

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.
| 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.
void | generateCpp (FILE *fp)
| Generates code for above constructor.
| ClpSolve (const ClpSolve &)
| Copy constructor.
ClpSolve & | operator= (const ClpSolve &rhs)
| Assignment operator. This copies the data.
| ~ClpSolve ()
| Destructor.
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.
int | getSpecialOption (int which) const
void | setSolveType (SolveType method, int extraInfo=-1)
| Solve types.
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).
void | setInfeasibleReturn (bool trueFalse)
| Say to return at once if infeasible, default is to solve.
bool | infeasibleReturn () const
bool | doDual () const
| Whether we want to do dual part of presolve.
void | setDoDual (bool doDual_)
bool | doSingleton () const
| Whether we want to do singleton part of presolve.
void | setDoSingleton (bool doSingleton_)
bool | doDoubleton () const
| Whether we want to do doubleton part of presolve.
void | setDoDoubleton (bool doDoubleton_)
bool | doTripleton () const
| Whether we want to do tripleton part of presolve.
void | setDoTripleton (bool doTripleton_)
bool | doTighten () const
| Whether we want to do tighten part of presolve.
void | setDoTighten (bool doTighten_)
bool | doForcing () const
| Whether we want to do forcing part of presolve.
void | setDoForcing (bool doForcing_)
bool | doImpliedFree () const
| Whether we want to do impliedfree part of presolve.
void | setDoImpliedFree (bool doImpliedfree)
bool | doDupcol () const
| Whether we want to do dupcol part of presolve.
void | setDoDupcol (bool doDupcol_)
bool | doDuprow () const
| Whether we want to do duprow part of presolve.
void | setDoDuprow (bool doDuprow_)
bool | doSingletonColumn () const
| Whether we want to do singleton column part of presolve.
void | setDoSingletonColumn (bool doSingleton_)
bool | doKillSmall () const
| Whether we want to kill small substitutions.
void | setDoKillSmall (bool doKill)
int | presolveActions () const
| Set whole group.
void | setPresolveActions (int action)
int | substitution () const
| Largest column for substitution (normally 3).
void | setSubstitution (int value)
void | setIndependentOption (int type, int value)
int | independentOption (int type) const

## Private Attributes

data.
SolveType | method_
| Solve type.
PresolveType | presolveType_
| Presolve type.
int | numberPasses_
| Amount of presolve.
int | options_ [7]
| Options - last is switch for OsiClp.
int | extraInfo_ [7]
| Extra information.
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).

## Detailed Description

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.

## Member Enumeration Documentation

## SolveType

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.

## PresolveType

enum ClpSolve::PresolveType

Enumerator
presolveOn |
presolveOff |
presolveNumber |
presolveNumberCost |

Definition at line 35 of file ClpSolve.hpp.

## Constructor & Destructor Documentation

## ClpSolve() [1/3]

ClpSolve::ClpSolve | ( |  | ) |

Default constructor.

## ClpSolve() [2/3]

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() [3/3]

ClpSolve::ClpSolve | ( | const ClpSolve & |  | ) |

Copy constructor.

## ~ClpSolve()

ClpSolve::~ClpSolve | ( |  | ) |

Destructor.

## Member Function Documentation

## generateCpp()

void ClpSolve::generateCpp | ( | FILE * | fp | ) |

Generates code for above constructor.

## operator=()

ClpSolve & ClpSolve::operator= | ( | const ClpSolve & | rhs | ) |

Assignment operator. This copies the data.

## setSpecialOption()

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

## getSpecialOption()

int ClpSolve::getSpecialOption | ( | int | which | ) | const

## setSolveType()

void ClpSolve::setSolveType | ( | SolveType | method,
|  | int | extraInfo = -1 )

Solve types.

## getSolveType()

SolveType ClpSolve::getSolveType | ( |  | ) |

## setPresolveType()

void ClpSolve::setPresolveType | ( | PresolveType | amount,
|  | int | extraInfo = -1 )

## getPresolveType()

PresolveType ClpSolve::getPresolveType | ( |  | ) |

## getPresolvePasses()

int ClpSolve::getPresolvePasses | ( |  | ) | const

## getExtraInfo()

int ClpSolve::getExtraInfo | ( | int | which | ) | const

Extra info for idiot (or sprint).

## setInfeasibleReturn()

void ClpSolve::setInfeasibleReturn | ( | bool | trueFalse | ) |

Say to return at once if infeasible, default is to solve.

## infeasibleReturn()

bool ClpSolve::infeasibleReturn | ( |  | ) | const

inline

Definition at line 120 of file ClpSolve.hpp.

## doDual()

bool ClpSolve::doDual | ( |  | ) | const

inline

Whether we want to do dual part of presolve.

Definition at line 125 of file ClpSolve.hpp.

## setDoDual()

void ClpSolve::setDoDual | ( | bool | doDual_ | ) |

inline

Definition at line 129 of file ClpSolve.hpp.

## doSingleton()

bool ClpSolve::doSingleton | ( |  | ) | const

inline

Whether we want to do singleton part of presolve.

Definition at line 137 of file ClpSolve.hpp.

## setDoSingleton()

void ClpSolve::setDoSingleton | ( | bool | doSingleton_ | ) |

inline

Definition at line 141 of file ClpSolve.hpp.

## doDoubleton()

bool ClpSolve::doDoubleton | ( |  | ) | const

inline

Whether we want to do doubleton part of presolve.

Definition at line 149 of file ClpSolve.hpp.

## setDoDoubleton()

void ClpSolve::setDoDoubleton | ( | bool | doDoubleton_ | ) |

inline

Definition at line 153 of file ClpSolve.hpp.

## doTripleton()

bool ClpSolve::doTripleton | ( |  | ) | const

inline

Whether we want to do tripleton part of presolve.

Definition at line 161 of file ClpSolve.hpp.

## setDoTripleton()

void ClpSolve::setDoTripleton | ( | bool | doTripleton_ | ) |

inline

Definition at line 165 of file ClpSolve.hpp.

## doTighten()

bool ClpSolve::doTighten | ( |  | ) | const

inline

Whether we want to do tighten part of presolve.

Definition at line 173 of file ClpSolve.hpp.

## setDoTighten()

void ClpSolve::setDoTighten | ( | bool | doTighten_ | ) |

inline

Definition at line 177 of file ClpSolve.hpp.

## doForcing()

bool ClpSolve::doForcing | ( |  | ) | const

inline

Whether we want to do forcing part of presolve.

Definition at line 185 of file ClpSolve.hpp.

## setDoForcing()

void ClpSolve::setDoForcing | ( | bool | doForcing_ | ) |

inline

Definition at line 189 of file ClpSolve.hpp.

## doImpliedFree()

bool ClpSolve::doImpliedFree | ( |  | ) | const

inline

Whether we want to do impliedfree part of presolve.

Definition at line 197 of file ClpSolve.hpp.

## setDoImpliedFree()

void ClpSolve::setDoImpliedFree | ( | bool | doImpliedfree | ) |

inline

Definition at line 201 of file ClpSolve.hpp.

## doDupcol()

bool ClpSolve::doDupcol | ( |  | ) | const

inline

Whether we want to do dupcol part of presolve.

Definition at line 209 of file ClpSolve.hpp.

## setDoDupcol()

void ClpSolve::setDoDupcol | ( | bool | doDupcol_ | ) |

inline

Definition at line 213 of file ClpSolve.hpp.

## doDuprow()

bool ClpSolve::doDuprow | ( |  | ) | const

inline

Whether we want to do duprow part of presolve.

Definition at line 221 of file ClpSolve.hpp.

## setDoDuprow()

void ClpSolve::setDoDuprow | ( | bool | doDuprow_ | ) |

inline

Definition at line 225 of file ClpSolve.hpp.

## doSingletonColumn()

bool ClpSolve::doSingletonColumn | ( |  | ) | const

inline

Whether we want to do singleton column part of presolve.

Definition at line 233 of file ClpSolve.hpp.

## setDoSingletonColumn()

void ClpSolve::setDoSingletonColumn | ( | bool | doSingleton_ | ) |

inline

Definition at line 237 of file ClpSolve.hpp.

## doKillSmall()

bool ClpSolve::doKillSmall | ( |  | ) | const

inline

Whether we want to kill small substitutions.

Definition at line 245 of file ClpSolve.hpp.

## setDoKillSmall()

void ClpSolve::setDoKillSmall | ( | bool | doKill | ) |

inline

Definition at line 249 of file ClpSolve.hpp.

## presolveActions()

int ClpSolve::presolveActions | ( |  | ) | const

inline

Set whole group.

Definition at line 257 of file ClpSolve.hpp.

## setPresolveActions()

void ClpSolve::setPresolveActions | ( | int | action | ) |

inline

Definition at line 261 of file ClpSolve.hpp.

## substitution()

int ClpSolve::substitution | ( |  | ) | const

inline

Largest column for substitution (normally 3).

Definition at line 266 of file ClpSolve.hpp.

## setSubstitution()

void ClpSolve::setSubstitution | ( | int | value | ) |

inline

Definition at line 270 of file ClpSolve.hpp.

## setIndependentOption()

void ClpSolve::setIndependentOption | ( | int | type,
|  | int | value )

inline

Definition at line 274 of file ClpSolve.hpp.

## independentOption()

int ClpSolve::independentOption | ( | int | type | ) | const

inline

Definition at line 278 of file ClpSolve.hpp.

## Member Data Documentation

## method_

SolveType ClpSolve::method_

private

Solve type.

Definition at line 290 of file ClpSolve.hpp.

## presolveType_

PresolveType ClpSolve::presolveType_

private

Presolve type.

Definition at line 292 of file ClpSolve.hpp.

## numberPasses_

int ClpSolve::numberPasses_

private

Amount of presolve.

Definition at line 294 of file ClpSolve.hpp.

## options_

int ClpSolve::options_[7]

private

Options - last is switch for OsiClp.

Definition at line 296 of file ClpSolve.hpp.

## extraInfo_

int ClpSolve::extraInfo_[7]

private

Extra information.

Definition at line 298 of file ClpSolve.hpp.

## independentOptions_

int ClpSolve::independentOptions_[3]

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.

The documentation for this class was generated from the following file:

- Clp/src/ClpSolve.hpp