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