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