Go to the documentation of this file.
11 #ifndef ClpSimplexOther_H
12 #define ClpSimplexOther_H
49 double *costIncrease,
int *sequenceIncrease,
50 double *costDecrease,
int *sequenceDecrease,
51 double *valueIncrease = NULL,
double *valueDecrease = NULL);
67 double *valueIncrease,
int *sequenceIncrease,
68 double *valueDecrease,
int *sequenceDecrease);
82 int parametrics(
double startingTheta,
double &endingTheta,
double reportIncrement,
83 const double *changeLowerBound,
const double *changeUpperBound,
84 const double *changeLowerRhs,
const double *changeUpperRhs,
85 const double *changeObjective);
99 int parametrics(
double startingTheta,
double &endingTheta,
100 const double *changeLowerBound,
const double *changeUpperBound,
101 const double *changeLowerRhs,
const double *changeUpperRhs);
103 const double *changeObjective);
105 double bestPivot(
bool justColumns =
false);
136 int parametricsLoop(
parametricsData ¶mData,
double reportIncrement,
137 const double *changeLower,
const double *changeUpper,
141 ClpDataSave &data,
bool canSkipFactorization =
false);
143 ClpDataSave &data,
bool canSkipFactorization =
false);
164 const double *changeObjective);
170 const double *changeObjective);
174 void originalBound(
int iSequence,
double theta,
const double *changeLower,
175 const double *changeUpper);
179 void redoInternalArrays();
187 double &costIncrease,
int &sequenceIncrease,
double &alphaIncrease,
188 double &costDecrease,
int &sequenceDecrease,
double &alphaDecrease);
196 double primalRanging1(
int whichIn,
int whichOther);
214 bool writeValues =
false,
215 int formatType = 0)
const;
228 bool checkAccuracy =
false);
237 int &nBound,
bool moreBounds =
false,
bool tightenBounds =
false);
242 const int *whichRows,
const int *whichColumns,
252 const int *whichColumns);
255 const int *whichColumns)
const;
273 int *buildRow,
double *buildElement,
int reConstruct = -1)
const;
276 char *
guess(
int mode)
const;
This solves LPs using the simplex method.
double theta() const
Theta (pivot change)
CoinIndexedVector * rowArray(int index) const
Useful row length arrays (0,1,2,3,4,5)
CoinIndexedVector * columnArray(int index) const
Useful column length arrays (0,1,2,3,4,5)
This is a tiny class where data can be saved round calls.
void primalRanging(int numberCheck, const int *which, double *valueIncrease, int *sequenceIncrease, double *valueDecrease, int *sequenceDecrease)
Primal ranging.
double * lowerCoefficient
void afterCrunch(const ClpSimplex &small, const int *whichRows, const int *whichColumns, int nBound)
After very cursory presolve.
int unscaledChangesOffset
void setGubBasis(ClpSimplex &original, const int *whichRows, const int *whichColumns)
Sets basis from original.
void dualRanging(int numberCheck, const int *which, double *costIncrease, int *sequenceIncrease, double *costDecrease, int *sequenceDecrease, double *valueIncrease=NULL, double *valueDecrease=NULL)
Dual ranging.
double bestPivot(bool justColumns=false)
Finds best possible pivot.
int setInDual(ClpSimplex *dualProblem)
Sets solution in dualized problem non-zero return code indicates minor problems.
int expandKnapsack(int knapsackRow, int &numberOutput, double *buildObj, CoinBigIndex *buildStart, int *buildRow, double *buildElement, int reConstruct=-1) const
Expands out all possible combinations for a knapsack If buildObj NULL then just computes space needed...
void cleanupAfterPostsolve()
Quick try at cleaning up duals if postsolve gets wrong.
double acceptableMaxTheta
This is for Simplex stuff which is neither dual nor primal.
ClpSimplex * crunch(double *rhs, int *whichRows, int *whichColumns, int &nBound, bool moreBounds=false, bool tightenBounds=false)
Does very cursory presolve.
int factorizationFrequency() const
Factorization frequency.
int parametrics(double startingTheta, double &endingTheta, double reportIncrement, const double *changeLowerBound, const double *changeUpperBound, const double *changeLowerRhs, const double *changeUpperRhs, const double *changeObjective)
Parametrics This is an initial slow version.
int parametricsObj(double startingTheta, double &endingTheta, const double *changeObjective)
int restoreFromDual(const ClpSimplex *dualProblem, bool checkAccuracy=false)
Restores solution from dualized problem non-zero return code indicates minor problems.
void getGubBasis(ClpSimplex &original, const int *whichRows, const int *whichColumns) const
Restores basis to original.
char * guess(int mode) const
Create a string of commands to guess at best strategy for model At present mode is ignored.
ClpDataSave saveData()
Save data.
ClpSimplex * gubVersion(int *whichRows, int *whichColumns, int neededGub, int factorizationFrequency=50)
Returns gub version of model or NULL whichRows has to be numberRows whichColumns has to be numberRows...
int tightenIntegerBounds(double *rhsSpace)
Tightens integer bounds - returns number tightened or -1 if infeasible.
double * upperCoefficient
ClpSimplex * dualOfModel(double fractionRowRanges=1.0, double fractionColumnRanges=1.0) const
Creates dual of a problem if looks plausible (defaults will always create model) fractionRowRanges is...
int writeBasis(const char *filename, bool writeValues=false, int formatType=0) const
Write the basis in MPS format to the specified file.
int readBasis(const char *filename)
Read a basis from the given filename.