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;
int writeBasis(const char *filename, bool writeValues=false, int formatType=0) const
Write the basis in MPS format to the specified file.
int tightenIntegerBounds(double *rhsSpace)
Tightens integer bounds - returns number tightened or -1 if infeasible.
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 dualRanging(int numberCheck, const int *which, double *costIncrease, int *sequenceIncrease, double *costDecrease, int *sequenceDecrease, double *valueIncrease=NULL, double *valueDecrease=NULL)
Dual ranging.
CoinIndexedVector * rowArray(int index) const
Useful row length arrays (0,1,2,3,4,5)
int parametricsObj(double startingTheta, double &endingTheta, const double *changeObjective)
double * lowerCoefficient
ClpSimplex * crunch(double *rhs, int *whichRows, int *whichColumns, int &nBound, bool moreBounds=false, bool tightenBounds=false)
Does very cursory presolve.
double theta() const
Theta (pivot change)
void cleanupAfterPostsolve()
Quick try at cleaning up duals if postsolve gets wrong.
int unscaledChangesOffset
int setInDual(ClpSimplex *dualProblem)
Sets solution in dualized problem non-zero return code indicates minor problems.
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 factorizationFrequency() const
Factorization frequency.
double acceptableMaxTheta
int readBasis(const char *filename)
Read a basis from the given filename.
CoinIndexedVector * columnArray(int index) const
Useful column length arrays (0,1,2,3,4,5)
This solves LPs using the simplex method.
This is for Simplex stuff which is neither dual nor primal.
This is a tiny class where data can be saved round calls.
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...
void afterCrunch(const ClpSimplex &small, const int *whichRows, const int *whichColumns, int nBound)
After very cursory presolve.
int restoreFromDual(const ClpSimplex *dualProblem, bool checkAccuracy=false)
Restores solution from dualized problem non-zero return code indicates minor problems.
double * upperCoefficient
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.
void primalRanging(int numberCheck, const int *which, double *valueIncrease, int *sequenceIncrease, double *valueDecrease, int *sequenceDecrease)
Primal ranging.
void setGubBasis(ClpSimplex &original, const int *whichRows, const int *whichColumns)
Sets basis from original.
double bestPivot(bool justColumns=false)
Finds best possible pivot.
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...