Clp  1.17.8
Public Types | List of all members
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. 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...
 
ClpSolveoperator= (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...
 

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

enums for solve function

Enumerator
useDual 
usePrimal 
usePrimalorSprint 
useBarrier 
useBarrierNoCross 
automatic 
tryDantzigWolfe 
tryBenders 
notImplemented 

Definition at line 24 of file ClpSolve.hpp.

◆ 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: