Go to the documentation of this file.
48 int numberPasses,
int options[6],
49 int extraInfo[6],
int independentOptions[3]);
344 int cycle(
int in,
int out,
int wayIn,
int wayOut);
411 #define CLP_PROGRESS 5
420 #ifdef CLP_PROGRESS_WEIGHT
421 double objectiveWeight_[CLP_PROGRESS_WEIGHT];
424 double infeasibilityWeight_[CLP_PROGRESS_WEIGHT];
426 double realInfeasibilityWeight_[CLP_PROGRESS_WEIGHT];
446 #ifdef CLP_PROGRESS_WEIGHT
447 int numberInfeasibilitiesWeight_[CLP_PROGRESS_WEIGHT];
450 int iterationNumberWeight_[CLP_PROGRESS_WEIGHT];
474 AbcSimplexProgress();
481 AbcSimplexProgress(
const AbcSimplexProgress &);
484 AbcSimplexProgress &
operator=(
const AbcSimplexProgress &rhs);
486 ~AbcSimplexProgress();
This solves LPs using the simplex method.
int oddState_
If things are in an odd state.
bool doDual() const
Whether we want to do dual part of presolve.
This is a very simple class to guide algorithms.
void newOddState()
Odd state.
void fillFromModel(ClpSimplex *model)
Fill from model.
double objective_[CLP_PROGRESS]
Objective values.
void setIndependentOption(int type, int value)
bool doTighten() const
Whether we want to do tighten part of presolve.
void setDoDoubleton(bool doDoubleton_)
int numberPasses_
Amount of presolve.
double lastInfeasibility(int back=1) const
Returns real primal infeasibility (if -1) - current if (0)
bool doImpliedFree() const
Whether we want to do impliedfree part of presolve.
void setDoDupcol(bool doDupcol_)
int presolveActions() const
Set whole group.
void setDoTripleton(bool doTripleton_)
SolveType
enums for solve function
bool doDupcol() const
Whether we want to do dupcol part of presolve.
PresolveType getPresolveType()
int numberInfeasibilities(int back=1) const
Returns number of primal infeasibilities (if -1) - current if (0)
void setDoDual(bool doDual_)
PresolveType presolveType_
Presolve type.
int substitution() const
Largest column for substitution (normally 3)
double realInfeasibility_[CLP_PROGRESS]
Sum of real primal infeasibilities for primal.
void generateCpp(FILE *fp)
Generates code for above constructor.
double infeasibility_[CLP_PROGRESS]
Sum of infeasibilities for algorithm.
For saving extra information to see if looping.
double lastObjective(int back=1) const
Returns previous objective (if -1) - current if (0)
bool doForcing() const
Whether we want to do forcing part of presolve.
void setDoKillSmall(bool doKill)
int cycle(int in, int out, int wayIn, int wayOut)
Returns cycle length in whileIterating.
ClpSolve()
Default constructor.
int numberReallyBadTimes_
Number really bad times.
void incrementTimesFlagged()
void setDoSingleton(bool doSingleton_)
double initialWeight_
Initial weight for weights.
void clearIterationNumbers()
clears all iteration numbers (to switch off panic)
int getExtraInfo(int which) const
Extra info for idiot (or sprint)
bool doTripleton() const
Whether we want to do tripleton part of presolve.
int options_[7]
Options - last is switch for OsiClp.
int looping()
Returns -1 if okay, -n+1 (n number of times bad) if bad but action taken, >=0 if give up and use as p...
int numberTimesFlagged_
Number of times no iterations as flagged.
int independentOption(int type) const
int reallyBadTimes() const
number of really bad times
void setPresolveActions(int action)
bool doSingleton() const
Whether we want to do singleton part of presolve.
int iterationNumber_[CLP_PROGRESS]
Iteration number at which occurred.
bool infeasibleReturn() const
int independentOptions_[3]
Extra algorithm dependent options 0 - if set return from clpsolve if infeasible 1 - To be copied over...
void reset()
Resets as much as possible.
void setPresolveType(PresolveType amount, int extraInfo=-1)
int getSpecialOption(int which) const
void setSubstitution(int value)
ClpSimplexProgress()
Default constructor.
void incrementReallyBadTimes()
void modifyObjective(double value)
Modify objective e.g. if dual infeasible in dual.
void setSolveType(SolveType method, int extraInfo=-1)
Solve types.
int getPresolvePasses() const
ClpSimplex * model_
Pointer back to model so we can get information.
~ClpSimplexProgress()
Destructor.
ClpSolve & operator=(const ClpSolve &rhs)
Assignment operator. This copies the data.
int timesFlagged() const
number of times flagged
void setInfeasibility(double value)
Set real primal infeasibility and move back.
void setDoImpliedFree(bool doImpliedfree)
void setDoTighten(bool doTighten_)
int extraInfo_[7]
Extra information.
bool doDuprow() const
Whether we want to do duprow part of presolve.
void setDoForcing(bool doForcing_)
void setDoSingletonColumn(bool doSingleton_)
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 basi...
void setInfeasibleReturn(bool trueFalse)
Say to return at once if infeasible, default is to solve.
SolveType method_
Solve type.
void setDoDuprow(bool doDuprow_)
void startCheck()
Start check at beginning of whileIterating.
bool doSingletonColumn() const
Whether we want to do singleton column part of presolve.
int badTimes() const
number of bad times
int numberInfeasibilities_[CLP_PROGRESS]
Number of infeasibilities.
int lastIterationNumber(int back=1) const
Returns previous iteration number (if -1) - current if (0)
bool doKillSmall() const
Whether we want to kill small substitutions.
int in_[CLP_CYCLE]
For cycle checking.
int numberBadTimes_
Number of times it looked like loop.
bool doDoubleton() const
Whether we want to do doubleton part of presolve.
ClpSimplexProgress & operator=(const ClpSimplexProgress &rhs)
Assignment operator. This copies the data.
int numberTimes_
Number of times checked (so won't stop too early)