Clp
1.17.8
|
This solves problems in Primal Dual Convex Optimization. More...
#include <ClpPdco.hpp>
Public Member Functions | |
Description of algorithm | |
int | pdco () |
Pdco algorithm. More... | |
int | pdco (ClpPdcoBase *stuff, Options &options, Info &info, Outfo &outfo) |
Functions used in pdco | |
void | lsqr () |
LSQR. More... | |
void | matVecMult (int, double *, double *) |
void | matVecMult (int, CoinDenseVector< double > &, double *) |
void | matVecMult (int, CoinDenseVector< double > &, CoinDenseVector< double > &) |
void | matVecMult (int, CoinDenseVector< double > *, CoinDenseVector< double > *) |
void | getBoundTypes (int *, int *, int *, int **) |
void | getGrad (CoinDenseVector< double > &x, CoinDenseVector< double > &grad) |
void | getHessian (CoinDenseVector< double > &x, CoinDenseVector< double > &H) |
double | getObj (CoinDenseVector< double > &x) |
void | matPrecon (double, double *, double *) |
void | matPrecon (double, CoinDenseVector< double > &, double *) |
void | matPrecon (double, CoinDenseVector< double > &, CoinDenseVector< double > &) |
void | matPrecon (double, CoinDenseVector< double > *, CoinDenseVector< double > *) |
Public Member Functions inherited from ClpInterior | |
ClpInterior () | |
Default constructor. More... | |
ClpInterior (const ClpInterior &) | |
Copy constructor. More... | |
ClpInterior (const ClpModel &) | |
Copy constructor from model. More... | |
ClpInterior (const ClpModel *wholeModel, int numberRows, const int *whichRows, int numberColumns, const int *whichColumns, bool dropNames=true, bool dropIntegers=true) | |
Subproblem constructor. More... | |
ClpInterior & | operator= (const ClpInterior &rhs) |
Assignment operator. This copies the data. More... | |
~ClpInterior () | |
Destructor. More... | |
void | loadProblem (const ClpMatrixBase &matrix, const double *collb, const double *colub, const double *obj, const double *rowlb, const double *rowub, const double *rowObjective=NULL) |
Loads a problem (the constraints on the rows are given by lower and upper bounds). More... | |
void | loadProblem (const CoinPackedMatrix &matrix, const double *collb, const double *colub, const double *obj, const double *rowlb, const double *rowub, const double *rowObjective=NULL) |
void | loadProblem (const int numcols, const int numrows, const CoinBigIndex *start, const int *index, const double *value, const double *collb, const double *colub, const double *obj, const double *rowlb, const double *rowub, const double *rowObjective=NULL) |
Just like the other loadProblem() method except that the matrix is given in a standard column major ordered format (without gaps). More... | |
void | loadProblem (const int numcols, const int numrows, const CoinBigIndex *start, const int *index, const double *value, const int *length, const double *collb, const double *colub, const double *obj, const double *rowlb, const double *rowub, const double *rowObjective=NULL) |
This one is for after presolve to save memory. More... | |
int | readMps (const char *filename, bool keepNames=false, bool ignoreErrors=false) |
Read an mps file from the given filename. More... | |
void | borrowModel (ClpModel &otherModel) |
Borrow model. More... | |
void | returnModel (ClpModel &otherModel) |
Return model - updates any scalars. More... | |
int | pdco () |
Pdco algorithm - see ClpPdco.hpp for method. More... | |
int | pdco (ClpPdcoBase *stuff, Options &options, Info &info, Outfo &outfo) |
int | primalDual () |
Primal-Dual Predictor-Corrector barrier. More... | |
bool | primalFeasible () const |
If problem is primal feasible. More... | |
bool | dualFeasible () const |
If problem is dual feasible. More... | |
int | algorithm () const |
Current (or last) algorithm. More... | |
void | setAlgorithm (int value) |
Set algorithm. More... | |
CoinWorkDouble | sumDualInfeasibilities () const |
Sum of dual infeasibilities. More... | |
CoinWorkDouble | sumPrimalInfeasibilities () const |
Sum of primal infeasibilities. More... | |
CoinWorkDouble | dualObjective () const |
dualObjective. More... | |
CoinWorkDouble | primalObjective () const |
primalObjective. More... | |
CoinWorkDouble | diagonalNorm () const |
diagonalNorm More... | |
CoinWorkDouble | linearPerturbation () const |
linearPerturbation More... | |
void | setLinearPerturbation (CoinWorkDouble value) |
CoinWorkDouble | projectionTolerance () const |
projectionTolerance More... | |
void | setProjectionTolerance (CoinWorkDouble value) |
CoinWorkDouble | diagonalPerturbation () const |
diagonalPerturbation More... | |
void | setDiagonalPerturbation (CoinWorkDouble value) |
CoinWorkDouble | gamma () const |
gamma More... | |
void | setGamma (CoinWorkDouble value) |
CoinWorkDouble | delta () const |
delta More... | |
void | setDelta (CoinWorkDouble value) |
CoinWorkDouble | complementarityGap () const |
ComplementarityGap. More... | |
CoinWorkDouble | largestPrimalError () const |
Largest error on Ax-b. More... | |
CoinWorkDouble | largestDualError () const |
Largest error on basic duals. More... | |
int | maximumBarrierIterations () const |
Maximum iterations. More... | |
void | setMaximumBarrierIterations (int value) |
void | setCholesky (ClpCholeskyBase *cholesky) |
Set cholesky (and delete present one) More... | |
int | numberFixed () const |
Return number fixed to see if worth presolving. More... | |
void | fixFixed (bool reallyFix=true) |
fix variables interior says should be. More... | |
CoinWorkDouble * | primalR () const |
Primal erturbation vector. More... | |
CoinWorkDouble * | dualR () const |
Dual erturbation vector. More... | |
CoinWorkDouble | rawObjectiveValue () const |
Raw objective value (so always minimize) More... | |
int | isColumn (int sequence) const |
Returns 1 if sequence indicates column. More... | |
int | sequenceWithin (int sequence) const |
Returns sequence number within section. More... | |
void | checkSolution () |
Checks solution. More... | |
CoinWorkDouble | quadraticDjs (CoinWorkDouble *djRegion, const CoinWorkDouble *solution, CoinWorkDouble scaleFactor) |
Modifies djs to allow for quadratic. More... | |
void | setFixed (int sequence) |
To say a variable is fixed. More... | |
void | clearFixed (int sequence) |
bool | fixed (int sequence) const |
void | setFlagged (int sequence) |
To flag a variable. More... | |
void | clearFlagged (int sequence) |
bool | flagged (int sequence) const |
void | setFixedOrFree (int sequence) |
To say a variable is fixed OR free. More... | |
void | clearFixedOrFree (int sequence) |
bool | fixedOrFree (int sequence) const |
void | setLowerBound (int sequence) |
To say a variable has lower bound. More... | |
void | clearLowerBound (int sequence) |
bool | lowerBound (int sequence) const |
void | setUpperBound (int sequence) |
To say a variable has upper bound. More... | |
void | clearUpperBound (int sequence) |
bool | upperBound (int sequence) const |
void | setFakeLower (int sequence) |
To say a variable has fake lower bound. More... | |
void | clearFakeLower (int sequence) |
bool | fakeLower (int sequence) const |
void | setFakeUpper (int sequence) |
To say a variable has fake upper bound. More... | |
void | clearFakeUpper (int sequence) |
bool | fakeUpper (int sequence) const |
Public Member Functions inherited from ClpModel | |
ClpModel (bool emptyMessages=false) | |
Default constructor. More... | |
ClpModel (const ClpModel &rhs, int scalingMode=-1) | |
Copy constructor. More... | |
ClpModel & | operator= (const ClpModel &rhs) |
Assignment operator. This copies the data. More... | |
ClpModel (const ClpModel *wholeModel, int numberRows, const int *whichRows, int numberColumns, const int *whichColumns, bool dropNames=true, bool dropIntegers=true) | |
Subproblem constructor. More... | |
~ClpModel () | |
Destructor. More... | |
int | numberRows () const |
Number of rows. More... | |
int | getNumRows () const |
int | getNumCols () const |
Number of columns. More... | |
int | numberColumns () const |
double | primalTolerance () const |
Primal tolerance to use. More... | |
void | setPrimalTolerance (double value) |
double | dualTolerance () const |
Dual tolerance to use. More... | |
void | setDualTolerance (double value) |
double | primalObjectiveLimit () const |
Primal objective limit. More... | |
void | setPrimalObjectiveLimit (double value) |
double | dualObjectiveLimit () const |
Dual objective limit. More... | |
void | setDualObjectiveLimit (double value) |
double | objectiveOffset () const |
Objective offset. More... | |
void | setObjectiveOffset (double value) |
double | presolveTolerance () const |
Presolve tolerance to use. More... | |
const std::string & | problemName () const |
int | numberIterations () const |
Number of iterations. More... | |
int | getIterationCount () const |
void | setNumberIterations (int numberIterationsNew) |
int | solveType () const |
Solve type - 1 simplex, 2 simplex interface, 3 Interior. More... | |
void | setSolveType (int type) |
int | maximumIterations () const |
Maximum number of iterations. More... | |
void | setMaximumIterations (int value) |
double | maximumSeconds () const |
Maximum time in seconds (from when set called) More... | |
void | setMaximumSeconds (double value) |
void | setMaximumWallSeconds (double value) |
bool | hitMaximumIterations () const |
Returns true if hit maximum iterations (or time) More... | |
int | status () const |
Status of problem: -1 - unknown e.g. More... | |
int | problemStatus () const |
void | setProblemStatus (int problemStatusNew) |
Set problem status. More... | |
int | secondaryStatus () const |
Secondary status of problem - may get extended 0 - none 1 - primal infeasible because dual limit reached OR (probably primal infeasible but can't prove it - main status was 4) 2 - scaled problem optimal - unscaled problem has primal infeasibilities 3 - scaled problem optimal - unscaled problem has dual infeasibilities 4 - scaled problem optimal - unscaled problem has primal and dual infeasibilities 5 - giving up in primal with flagged variables 6 - failed due to empty problem check 7 - postSolve says not optimal 8 - failed due to bad element check 9 - status was 3 and stopped on time 10 - status was 3 but stopped as primal feasible 11 - status was 1/2 from presolve found infeasible or unbounded 100 up - translation of enum from ClpEventHandler. More... | |
void | setSecondaryStatus (int newstatus) |
bool | isAbandoned () const |
Are there a numerical difficulties? More... | |
bool | isProvenOptimal () const |
Is optimality proven? More... | |
bool | isProvenPrimalInfeasible () const |
Is primal infeasiblity proven? More... | |
bool | isProvenDualInfeasible () const |
Is dual infeasiblity proven? More... | |
bool | isPrimalObjectiveLimitReached () const |
Is the given primal objective limit reached? More... | |
bool | isDualObjectiveLimitReached () const |
Is the given dual objective limit reached? More... | |
bool | isIterationLimitReached () const |
Iteration limit reached? More... | |
double | optimizationDirection () const |
Direction of optimization (1 - minimize, -1 - maximize, 0 - ignore. More... | |
double | getObjSense () const |
void | setOptimizationDirection (double value) |
double * | primalRowSolution () const |
Primal row solution. More... | |
const double * | getRowActivity () const |
double * | primalColumnSolution () const |
Primal column solution. More... | |
const double * | getColSolution () const |
void | setColSolution (const double *input) |
double * | dualRowSolution () const |
Dual row solution. More... | |
const double * | getRowPrice () const |
double * | dualColumnSolution () const |
Reduced costs. More... | |
const double * | getReducedCost () const |
double * | rowLower () const |
Row lower. More... | |
const double * | getRowLower () const |
double * | rowUpper () const |
Row upper. More... | |
const double * | getRowUpper () const |
void | setObjectiveCoefficient (int elementIndex, double elementValue) |
Set an objective function coefficient. More... | |
void | setObjCoeff (int elementIndex, double elementValue) |
Set an objective function coefficient. More... | |
void | setColumnLower (int elementIndex, double elementValue) |
Set a single column lower bound Use -DBL_MAX for -infinity. More... | |
void | setColumnUpper (int elementIndex, double elementValue) |
Set a single column upper bound Use DBL_MAX for infinity. More... | |
void | setColumnBounds (int elementIndex, double lower, double upper) |
Set a single column lower and upper bound. More... | |
void | setColumnSetBounds (const int *indexFirst, const int *indexLast, const double *boundList) |
Set the bounds on a number of columns simultaneously The default implementation just invokes setColLower() and setColUpper() over and over again. More... | |
void | setColLower (int elementIndex, double elementValue) |
Set a single column lower bound Use -DBL_MAX for -infinity. More... | |
void | setColUpper (int elementIndex, double elementValue) |
Set a single column upper bound Use DBL_MAX for infinity. More... | |
void | setColBounds (int elementIndex, double lower, double upper) |
Set a single column lower and upper bound. More... | |
void | setColSetBounds (const int *indexFirst, const int *indexLast, const double *boundList) |
Set the bounds on a number of columns simultaneously More... | |
void | setRowLower (int elementIndex, double elementValue) |
Set a single row lower bound Use -DBL_MAX for -infinity. More... | |
void | setRowUpper (int elementIndex, double elementValue) |
Set a single row upper bound Use DBL_MAX for infinity. More... | |
void | setRowBounds (int elementIndex, double lower, double upper) |
Set a single row lower and upper bound. More... | |
void | setRowSetBounds (const int *indexFirst, const int *indexLast, const double *boundList) |
Set the bounds on a number of rows simultaneously More... | |
const double * | rowScale () const |
Scaling. More... | |
const double * | columnScale () const |
const double * | inverseRowScale () const |
const double * | inverseColumnScale () const |
double * | mutableRowScale () const |
double * | mutableColumnScale () const |
double * | mutableInverseRowScale () const |
double * | mutableInverseColumnScale () const |
double * | swapRowScale (double *newScale) |
void | setRowScale (double *scale) |
void | setColumnScale (double *scale) |
double | objectiveScale () const |
Scaling of objective. More... | |
void | setObjectiveScale (double value) |
double | rhsScale () const |
Scaling of rhs and bounds. More... | |
void | setRhsScale (double value) |
void | scaling (int mode=1) |
Sets or unsets scaling, 0 -off, 1 equilibrium, 2 geometric, 3 auto, 4 auto-but-as-initialSolve-in-bab. More... | |
void | unscale () |
If we constructed a "really" scaled model then this reverses the operation. More... | |
int | scalingFlag () const |
Gets scalingFlag. More... | |
double * | objective () const |
Objective. More... | |
double * | objective (const double *solution, double &offset, bool refresh=true) const |
const double * | getObjCoefficients () const |
double * | rowObjective () const |
Row Objective. More... | |
const double * | getRowObjCoefficients () const |
double * | columnLower () const |
Column Lower. More... | |
const double * | getColLower () const |
double * | columnUpper () const |
Column Upper. More... | |
const double * | getColUpper () const |
CoinPackedMatrix * | matrix () const |
Matrix (if not ClpPackedmatrix be careful about memory leak. More... | |
CoinBigIndex | getNumElements () const |
Number of elements in matrix. More... | |
double | getSmallElementValue () const |
Small element value - elements less than this set to zero, default is 1.0e-20. More... | |
void | setSmallElementValue (double value) |
ClpMatrixBase * | rowCopy () const |
Row Matrix. More... | |
void | setNewRowCopy (ClpMatrixBase *newCopy) |
Set new row matrix. More... | |
ClpMatrixBase * | clpMatrix () const |
Clp Matrix. More... | |
ClpPackedMatrix * | clpScaledMatrix () const |
Scaled ClpPackedMatrix. More... | |
void | setClpScaledMatrix (ClpPackedMatrix *scaledMatrix) |
Sets pointer to scaled ClpPackedMatrix. More... | |
ClpPackedMatrix * | swapScaledMatrix (ClpPackedMatrix *scaledMatrix) |
Swaps pointer to scaled ClpPackedMatrix. More... | |
void | replaceMatrix (ClpMatrixBase *matrix, bool deleteCurrent=false) |
Replace Clp Matrix (current is not deleted unless told to and new is used) So up to user to delete current. More... | |
void | replaceMatrix (CoinPackedMatrix *newmatrix, bool deleteCurrent=false) |
Replace Clp Matrix (current is not deleted unless told to and new is used) So up to user to delete current. More... | |
double | objectiveValue () const |
Objective value. More... | |
void | setObjectiveValue (double value) |
double | getObjValue () const |
char * | integerInformation () const |
Integer information. More... | |
double * | infeasibilityRay (bool fullRay=false) const |
Infeasibility/unbounded ray (NULL returned if none/wrong) Up to user to use delete [] on these arrays. More... | |
double * | unboundedRay () const |
double * | ray () const |
For advanced users - no need to delete - sign not changed. More... | |
bool | rayExists () const |
just test if infeasibility or unbounded Ray exists More... | |
void | deleteRay () |
just delete ray if exists More... | |
const double * | internalRay () const |
Access internal ray storage. Users should call infeasibilityRay() or unboundedRay() instead. More... | |
bool | statusExists () const |
See if status (i.e. basis) array exists (partly for OsiClp) More... | |
unsigned char * | statusArray () const |
Return address of status (i.e. basis) array (char[numberRows+numberColumns]) More... | |
unsigned char * | statusCopy () const |
Return copy of status (i.e. More... | |
void | copyinStatus (const unsigned char *statusArray) |
Copy in status (basis) vector. More... | |
void | setUserPointer (void *pointer) |
User pointer for whatever reason. More... | |
void * | getUserPointer () const |
void | setTrustedUserPointer (ClpTrustedData *pointer) |
Trusted user pointer. More... | |
ClpTrustedData * | getTrustedUserPointer () const |
int | whatsChanged () const |
What has changed in model (only for masochistic users) More... | |
void | setWhatsChanged (int value) |
int | numberThreads () const |
Number of threads (not really being used) More... | |
void | setNumberThreads (int value) |
void | passInMessageHandler (CoinMessageHandler *handler) |
Pass in Message handler (not deleted at end) More... | |
CoinMessageHandler * | pushMessageHandler (CoinMessageHandler *handler, bool &oldDefault) |
Pass in Message handler (not deleted at end) and return current. More... | |
void | popMessageHandler (CoinMessageHandler *oldHandler, bool oldDefault) |
back to previous message handler More... | |
void | newLanguage (CoinMessages::Language language) |
Set language. More... | |
void | setLanguage (CoinMessages::Language language) |
void | setDefaultMessageHandler () |
Overrides message handler with a default one. More... | |
CoinMessageHandler * | messageHandler () const |
Return handler. More... | |
CoinMessages | messages () const |
Return messages. More... | |
CoinMessages * | messagesPointer () |
Return pointer to messages. More... | |
CoinMessages | coinMessages () const |
Return Coin messages. More... | |
CoinMessages * | coinMessagesPointer () |
Return pointer to Coin messages. More... | |
void | setLogLevel (int value) |
Amount of print out: 0 - none 1 - just final 2 - just factorizations 3 - as 2 plus a bit more 4 - verbose above that 8,16,32 etc just for selective debug. More... | |
int | logLevel () const |
bool | defaultHandler () const |
Return true if default handler. More... | |
void | passInEventHandler (const ClpEventHandler *eventHandler) |
Pass in Event handler (cloned and deleted at end) More... | |
ClpEventHandler * | eventHandler () const |
Event handler. More... | |
CoinThreadRandom * | randomNumberGenerator () |
Thread specific random number generator. More... | |
CoinThreadRandom & | mutableRandomNumberGenerator () |
Thread specific random number generator. More... | |
void | setRandomSeed (int value) |
Set seed for thread specific random number generator. More... | |
int | lengthNames () const |
length of names (0 means no names0 More... | |
void | setLengthNames (int value) |
length of names (0 means no names0 More... | |
const std::vector< std::string > * | rowNames () const |
Row names. More... | |
const std::string & | rowName (int iRow) const |
std::string | getRowName (int iRow) const |
Return name or Rnnnnnnn. More... | |
const std::vector< std::string > * | columnNames () const |
Column names. More... | |
const std::string & | columnName (int iColumn) const |
std::string | getColumnName (int iColumn) const |
Return name or Cnnnnnnn. More... | |
ClpObjective * | objectiveAsObject () const |
Objective methods. More... | |
void | setObjective (ClpObjective *objective) |
void | setObjectivePointer (ClpObjective *newobjective) |
int | emptyProblem (int *infeasNumber=NULL, double *infeasSum=NULL, bool printMessage=true) |
Solve a problem with no elements - return status and dual and primal infeasibilites. More... | |
void | times (double scalar, const double *x, double *y) const |
Return y + A * x * scalar in y . More... | |
void | transposeTimes (double scalar, const double *x, double *y) const |
Return y + x * scalar * A in y . More... | |
bool | setIntParam (ClpIntParam key, int value) |
Set an integer parameter. More... | |
bool | setDblParam (ClpDblParam key, double value) |
Set an double parameter. More... | |
bool | setStrParam (ClpStrParam key, const std::string &value) |
Set an string parameter. More... | |
bool | getIntParam (ClpIntParam key, int &value) const |
bool | getDblParam (ClpDblParam key, double &value) const |
bool | getStrParam (ClpStrParam key, std::string &value) const |
void | generateCpp (FILE *fp) |
Create C++ lines to get to current state. More... | |
unsigned int | specialOptions () const |
For advanced options 1 - Don't keep changing infeasibility weight 2 - Keep nonLinearCost round solves 4 - Force outgoing variables to exact bound (primal) 8 - Safe to use dense initial factorization 16 -Just use basic variables for operation if column generation 32 -Create ray even in BAB 64 -Treat problem as feasible until last minute (i.e. More... | |
void | setSpecialOptions (unsigned int value) |
bool | inCbcBranchAndBound () const |
void | loadProblem (const ClpMatrixBase &matrix, const double *collb, const double *colub, const double *obj, const double *rowlb, const double *rowub, const double *rowObjective=NULL) |
Loads a problem (the constraints on the rows are given by lower and upper bounds). More... | |
void | loadProblem (const CoinPackedMatrix &matrix, const double *collb, const double *colub, const double *obj, const double *rowlb, const double *rowub, const double *rowObjective=NULL) |
void | loadProblem (const int numcols, const int numrows, const CoinBigIndex *start, const int *index, const double *value, const double *collb, const double *colub, const double *obj, const double *rowlb, const double *rowub, const double *rowObjective=NULL) |
Just like the other loadProblem() method except that the matrix is given in a standard column major ordered format (without gaps). More... | |
int | loadProblem (CoinModel &modelObject, bool tryPlusMinusOne=false) |
This loads a model from a coinModel object - returns number of errors. More... | |
void | loadProblem (const int numcols, const int numrows, const CoinBigIndex *start, const int *index, const double *value, const int *length, const double *collb, const double *colub, const double *obj, const double *rowlb, const double *rowub, const double *rowObjective=NULL) |
This one is for after presolve to save memory. More... | |
void | loadQuadraticObjective (const int numberColumns, const CoinBigIndex *start, const int *column, const double *element) |
Load up quadratic objective. More... | |
void | loadQuadraticObjective (const CoinPackedMatrix &matrix) |
void | deleteQuadraticObjective () |
Get rid of quadratic objective. More... | |
void | setRowObjective (const double *rowObjective) |
This just loads up a row objective. More... | |
int | readMps (const char *filename, bool keepNames=false, bool ignoreErrors=false) |
Read an mps file from the given filename. More... | |
int | readGMPL (const char *filename, const char *dataName, bool keepNames=false) |
Read GMPL files from the given filenames. More... | |
void | copyInIntegerInformation (const char *information) |
Copy in integer informations. More... | |
void | deleteIntegerInformation () |
Drop integer informations. More... | |
void | setContinuous (int index) |
Set the index-th variable to be a continuous variable. More... | |
void | setInteger (int index) |
Set the index-th variable to be an integer variable. More... | |
bool | isInteger (int index) const |
Return true if the index-th variable is an integer variable. More... | |
void | resize (int newNumberRows, int newNumberColumns) |
Resizes rim part of model. More... | |
void | deleteRows (int number, const int *which) |
Deletes rows. More... | |
void | addRow (int numberInRow, const int *columns, const double *elements, double rowLower=-COIN_DBL_MAX, double rowUpper=COIN_DBL_MAX) |
Add one row. More... | |
void | addRows (int number, const double *rowLower, const double *rowUpper, const CoinBigIndex *rowStarts, const int *columns, const double *elements) |
Add rows. More... | |
void | addRows (int number, const double *rowLower, const double *rowUpper, const CoinBigIndex *rowStarts, const int *rowLengths, const int *columns, const double *elements) |
Add rows. More... | |
void | addRows (int number, const double *rowLower, const double *rowUpper, const CoinPackedVectorBase *const *rows) |
int | addRows (const CoinBuild &buildObject, bool tryPlusMinusOne=false, bool checkDuplicates=true) |
Add rows from a build object. More... | |
int | addRows (CoinModel &modelObject, bool tryPlusMinusOne=false, bool checkDuplicates=true) |
Add rows from a model object. More... | |
void | deleteColumns (int number, const int *which) |
Deletes columns. More... | |
void | deleteRowsAndColumns (int numberRows, const int *whichRows, int numberColumns, const int *whichColumns) |
Deletes rows AND columns (keeps old sizes) More... | |
void | addColumn (int numberInColumn, const int *rows, const double *elements, double columnLower=0.0, double columnUpper=COIN_DBL_MAX, double objective=0.0) |
Add one column. More... | |
void | addColumns (int number, const double *columnLower, const double *columnUpper, const double *objective, const CoinBigIndex *columnStarts, const int *rows, const double *elements) |
Add columns. More... | |
void | addColumns (int number, const double *columnLower, const double *columnUpper, const double *objective, const CoinBigIndex *columnStarts, const int *columnLengths, const int *rows, const double *elements) |
void | addColumns (int number, const double *columnLower, const double *columnUpper, const double *objective, const CoinPackedVectorBase *const *columns) |
int | addColumns (const CoinBuild &buildObject, bool tryPlusMinusOne=false, bool checkDuplicates=true) |
Add columns from a build object If tryPlusMinusOne then will try adding as +-1 matrix if no matrix exists. More... | |
int | addColumns (CoinModel &modelObject, bool tryPlusMinusOne=false, bool checkDuplicates=true) |
Add columns from a model object. More... | |
void | modifyCoefficient (int row, int column, double newElement, bool keepZero=false) |
Modify one element of a matrix. More... | |
void | chgRowLower (const double *rowLower) |
Change row lower bounds. More... | |
void | chgRowUpper (const double *rowUpper) |
Change row upper bounds. More... | |
void | chgColumnLower (const double *columnLower) |
Change column lower bounds. More... | |
void | chgColumnUpper (const double *columnUpper) |
Change column upper bounds. More... | |
void | chgObjCoefficients (const double *objIn) |
Change objective coefficients. More... | |
void | borrowModel (ClpModel &otherModel) |
Borrow model. More... | |
void | returnModel (ClpModel &otherModel) |
Return model - nulls all arrays so can be deleted safely also updates any scalars. More... | |
void | createEmptyMatrix () |
Create empty ClpPackedMatrix. More... | |
CoinBigIndex | cleanMatrix (double threshold=1.0e-20) |
Really clean up matrix (if ClpPackedMatrix). More... | |
void | copy (const ClpMatrixBase *from, ClpMatrixBase *&to) |
Copy contents - resizing if necessary - otherwise re-use memory. More... | |
void | dropNames () |
Drops names - makes lengthnames 0 and names empty. More... | |
void | copyNames (const std::vector< std::string > &rowNames, const std::vector< std::string > &columnNames) |
Copies in names. More... | |
void | copyRowNames (const std::vector< std::string > &rowNames, int first, int last) |
Copies in Row names - modifies names first .. last-1. More... | |
void | copyColumnNames (const std::vector< std::string > &columnNames, int first, int last) |
Copies in Column names - modifies names first .. last-1. More... | |
void | copyRowNames (const char *const *rowNames, int first, int last) |
Copies in Row names - modifies names first .. last-1. More... | |
void | copyColumnNames (const char *const *columnNames, int first, int last) |
Copies in Column names - modifies names first .. last-1. More... | |
void | setRowName (int rowIndex, std::string &name) |
Set name of row. More... | |
void | setColumnName (int colIndex, std::string &name) |
Set name of col. More... | |
int | findNetwork (char *rotate, double fractionNeeded=0.75) |
Find a network subset. More... | |
CoinModel * | createCoinModel () const |
This creates a coinModel object. More... | |
int | writeMps (const char *filename, int formatType=0, int numberAcross=2, double objSense=0.0) const |
Write the problem in MPS format to the specified file. More... | |
Additional Inherited Members | |
Public Attributes inherited from ClpInterior | |
CoinWorkDouble | xsize_ |
CoinWorkDouble | zsize_ |
CoinWorkDouble * | rhs_ |
Rhs. More... | |
CoinWorkDouble * | x_ |
CoinWorkDouble * | y_ |
CoinWorkDouble * | dj_ |
Protected Member Functions inherited from ClpInterior | |
void | gutsOfDelete () |
Does most of deletion. More... | |
void | gutsOfCopy (const ClpInterior &rhs) |
Does most of copying. More... | |
bool | createWorkingData () |
Returns true if data looks okay, false if not. More... | |
void | deleteWorkingData () |
bool | sanityCheck () |
Sanity check on input rim data. More... | |
int | housekeeping () |
This does housekeeping. More... | |
Protected Member Functions inherited from ClpModel | |
void | gutsOfDelete (int type) |
Does most of deletion (0 = all, 1 = most) More... | |
void | gutsOfCopy (const ClpModel &rhs, int trueCopy=1) |
Does most of copying If trueCopy 0 then just points to arrays If -1 leaves as much as possible. More... | |
void | getRowBound (int iRow, double &lower, double &upper) const |
gets lower and upper bounds on rows More... | |
void | gutsOfLoadModel (int numberRows, int numberColumns, const double *collb, const double *colub, const double *obj, const double *rowlb, const double *rowub, const double *rowObjective=NULL) |
puts in format I like - 4 array matrix - may make row copy More... | |
void | gutsOfScaling () |
Does much of scaling. More... | |
double | rawObjectiveValue () const |
Objective value - always minimize. More... | |
bool | permanentArrays () const |
If we are using maximumRows_ and Columns_. More... | |
void | startPermanentArrays () |
Start using maximumRows_ and Columns_. More... | |
void | stopPermanentArrays () |
Stop using maximumRows_ and Columns_. More... | |
const char *const * | rowNamesAsChar () const |
Create row names as char **. More... | |
const char *const * | columnNamesAsChar () const |
Create column names as char **. More... | |
void | deleteNamesAsChar (const char *const *names, int number) const |
Delete char * version of names. More... | |
void | onStopped () |
On stopped - sets secondary status. More... | |
Protected Attributes inherited from ClpInterior | |
CoinWorkDouble | largestPrimalError_ |
Largest error on Ax-b. More... | |
CoinWorkDouble | largestDualError_ |
Largest error on basic duals. More... | |
CoinWorkDouble | sumDualInfeasibilities_ |
Sum of dual infeasibilities. More... | |
CoinWorkDouble | sumPrimalInfeasibilities_ |
Sum of primal infeasibilities. More... | |
CoinWorkDouble | worstComplementarity_ |
Worst complementarity. More... | |
CoinWorkDouble * | lower_ |
Working copy of lower bounds (Owner of arrays below) More... | |
CoinWorkDouble * | rowLowerWork_ |
Row lower bounds - working copy. More... | |
CoinWorkDouble * | columnLowerWork_ |
Column lower bounds - working copy. More... | |
CoinWorkDouble * | upper_ |
Working copy of upper bounds (Owner of arrays below) More... | |
CoinWorkDouble * | rowUpperWork_ |
Row upper bounds - working copy. More... | |
CoinWorkDouble * | columnUpperWork_ |
Column upper bounds - working copy. More... | |
CoinWorkDouble * | cost_ |
Working copy of objective. More... | |
ClpLsqr * | lsqrObject_ |
Pointer to Lsqr object. More... | |
ClpPdcoBase * | pdcoStuff_ |
Pointer to stuff. More... | |
CoinWorkDouble | mu_ |
Below here is standard barrier stuff mu. More... | |
CoinWorkDouble | objectiveNorm_ |
objectiveNorm. More... | |
CoinWorkDouble | rhsNorm_ |
rhsNorm. More... | |
CoinWorkDouble | solutionNorm_ |
solutionNorm. More... | |
CoinWorkDouble | dualObjective_ |
dualObjective. More... | |
CoinWorkDouble | primalObjective_ |
primalObjective. More... | |
CoinWorkDouble | diagonalNorm_ |
diagonalNorm. More... | |
CoinWorkDouble | stepLength_ |
stepLength More... | |
CoinWorkDouble | linearPerturbation_ |
linearPerturbation More... | |
CoinWorkDouble | diagonalPerturbation_ |
diagonalPerturbation More... | |
CoinWorkDouble | gamma_ |
CoinWorkDouble | delta_ |
CoinWorkDouble | targetGap_ |
targetGap More... | |
CoinWorkDouble | projectionTolerance_ |
projectionTolerance More... | |
CoinWorkDouble | maximumRHSError_ |
maximumRHSError. maximum Ax More... | |
CoinWorkDouble | maximumBoundInfeasibility_ |
maximumBoundInfeasibility. More... | |
CoinWorkDouble | maximumDualError_ |
maximumDualError. More... | |
CoinWorkDouble | diagonalScaleFactor_ |
diagonalScaleFactor. More... | |
CoinWorkDouble | scaleFactor_ |
scaleFactor. For scaling objective More... | |
CoinWorkDouble | actualPrimalStep_ |
actualPrimalStep More... | |
CoinWorkDouble | actualDualStep_ |
actualDualStep More... | |
CoinWorkDouble | smallestInfeasibility_ |
smallestInfeasibility More... | |
CoinWorkDouble | historyInfeasibility_ [LENGTH_HISTORY] |
CoinWorkDouble | complementarityGap_ |
complementarityGap. More... | |
CoinWorkDouble | baseObjectiveNorm_ |
baseObjectiveNorm More... | |
CoinWorkDouble | worstDirectionAccuracy_ |
worstDirectionAccuracy More... | |
CoinWorkDouble | maximumRHSChange_ |
maximumRHSChange More... | |
CoinWorkDouble * | errorRegion_ |
errorRegion. i.e. Ax More... | |
CoinWorkDouble * | rhsFixRegion_ |
rhsFixRegion. More... | |
CoinWorkDouble * | upperSlack_ |
upperSlack More... | |
CoinWorkDouble * | lowerSlack_ |
lowerSlack More... | |
CoinWorkDouble * | diagonal_ |
diagonal More... | |
CoinWorkDouble * | solution_ |
solution More... | |
CoinWorkDouble * | workArray_ |
work array More... | |
CoinWorkDouble * | deltaX_ |
delta X More... | |
CoinWorkDouble * | deltaY_ |
delta Y More... | |
CoinWorkDouble * | deltaZ_ |
deltaZ. More... | |
CoinWorkDouble * | deltaW_ |
deltaW. More... | |
CoinWorkDouble * | deltaSU_ |
deltaS. More... | |
CoinWorkDouble * | deltaSL_ |
CoinWorkDouble * | primalR_ |
Primal regularization array. More... | |
CoinWorkDouble * | dualR_ |
Dual regularization array. More... | |
CoinWorkDouble * | rhsB_ |
rhs B More... | |
CoinWorkDouble * | rhsU_ |
rhsU. More... | |
CoinWorkDouble * | rhsL_ |
rhsL. More... | |
CoinWorkDouble * | rhsZ_ |
rhsZ. More... | |
CoinWorkDouble * | rhsW_ |
rhsW. More... | |
CoinWorkDouble * | rhsC_ |
rhs C More... | |
CoinWorkDouble * | zVec_ |
zVec More... | |
CoinWorkDouble * | wVec_ |
wVec More... | |
ClpCholeskyBase * | cholesky_ |
cholesky. More... | |
int | numberComplementarityPairs_ |
numberComplementarityPairs i.e. ones with lower and/or upper bounds (not fixed) More... | |
int | numberComplementarityItems_ |
numberComplementarityItems_ i.e. number of active bounds More... | |
int | maximumBarrierIterations_ |
Maximum iterations. More... | |
bool | gonePrimalFeasible_ |
gonePrimalFeasible. More... | |
bool | goneDualFeasible_ |
goneDualFeasible. More... | |
int | algorithm_ |
Which algorithm being used. More... | |
Protected Attributes inherited from ClpModel | |
double | optimizationDirection_ |
Direction of optimization (1 - minimize, -1 - maximize, 0 - ignore. More... | |
double | dblParam_ [ClpLastDblParam] |
Array of double parameters. More... | |
double | objectiveValue_ |
Objective value. More... | |
double | smallElement_ |
Small element value. More... | |
double | objectiveScale_ |
Scaling of objective. More... | |
double | rhsScale_ |
Scaling of rhs and bounds. More... | |
int | numberRows_ |
Number of rows. More... | |
int | numberColumns_ |
Number of columns. More... | |
double * | rowActivity_ |
Row activities. More... | |
double * | columnActivity_ |
Column activities. More... | |
double * | dual_ |
Duals. More... | |
double * | reducedCost_ |
Reduced costs. More... | |
double * | rowLower_ |
Row lower. More... | |
double * | rowUpper_ |
Row upper. More... | |
ClpObjective * | objective_ |
Objective. More... | |
double * | rowObjective_ |
Row Objective (? sign) - may be NULL. More... | |
double * | columnLower_ |
Column Lower. More... | |
double * | columnUpper_ |
Column Upper. More... | |
ClpMatrixBase * | matrix_ |
Packed matrix. More... | |
ClpMatrixBase * | rowCopy_ |
Row copy if wanted. More... | |
ClpPackedMatrix * | scaledMatrix_ |
Scaled packed matrix. More... | |
double * | ray_ |
Infeasible/unbounded ray. More... | |
double * | rowScale_ |
Row scale factors for matrix. More... | |
double * | columnScale_ |
Column scale factors. More... | |
double * | inverseRowScale_ |
Inverse row scale factors for matrix (end of rowScale_) More... | |
double * | inverseColumnScale_ |
Inverse column scale factors for matrix (end of columnScale_) More... | |
int | scalingFlag_ |
Scale flag, 0 none, 1 equilibrium, 2 geometric, 3, auto, 4 dynamic, 5 geometric on rows. More... | |
unsigned char * | status_ |
Status (i.e. More... | |
char * | integerType_ |
Integer information. More... | |
void * | userPointer_ |
User pointer for whatever reason. More... | |
ClpTrustedData * | trustedUserPointer_ |
Trusted user pointer e.g. for heuristics. More... | |
int | intParam_ [ClpLastIntParam] |
Array of integer parameters. More... | |
int | numberIterations_ |
Number of iterations. More... | |
int | solveType_ |
Solve type - 1 simplex, 2 simplex interface, 3 Interior. More... | |
unsigned int | whatsChanged_ |
int | problemStatus_ |
Status of problem. More... | |
int | secondaryStatus_ |
Secondary status of problem. More... | |
int | lengthNames_ |
length of names (0 means no names) More... | |
int | numberThreads_ |
Number of threads (not very operational) More... | |
unsigned int | specialOptions_ |
For advanced options See get and set for meaning. More... | |
CoinMessageHandler * | handler_ |
Message handler. More... | |
bool | defaultHandler_ |
Flag to say if default handler (so delete) More... | |
CoinThreadRandom | randomNumberGenerator_ |
Thread specific random number generator. More... | |
ClpEventHandler * | eventHandler_ |
Event handler. More... | |
std::vector< std::string > | rowNames_ |
Row names. More... | |
std::vector< std::string > | columnNames_ |
Column names. More... | |
CoinMessages | messages_ |
Messages. More... | |
CoinMessages | coinMessages_ |
Coin messages. More... | |
int | maximumColumns_ |
Maximum number of columns in model. More... | |
int | maximumRows_ |
Maximum number of rows in model. More... | |
int | maximumInternalColumns_ |
Maximum number of columns (internal arrays) in model. More... | |
int | maximumInternalRows_ |
Maximum number of rows (internal arrays) in model. More... | |
CoinPackedMatrix | baseMatrix_ |
Base packed matrix. More... | |
CoinPackedMatrix | baseRowCopy_ |
Base row copy. More... | |
double * | savedRowScale_ |
Saved row scale factors for matrix. More... | |
double * | savedColumnScale_ |
Saved column scale factors. More... | |
std::string | strParam_ [ClpLastStrParam] |
Array of string parameters. More... | |
This solves problems in Primal Dual Convex Optimization.
It inherits from ClpInterior. It has no data of its own and is never created - only cast from a ClpInterior object at algorithm time.
Definition at line 22 of file ClpPdco.hpp.
int ClpPdco::pdco | ( | ) |
Pdco algorithm.
Method
int ClpPdco::pdco | ( | ClpPdcoBase * | stuff, |
Options & | options, | ||
Info & | info, | ||
Outfo & | outfo | ||
) |
void ClpPdco::lsqr | ( | ) |
LSQR.
void ClpPdco::matVecMult | ( | int | , |
double * | , | ||
double * | |||
) |
void ClpPdco::matVecMult | ( | int | , |
CoinDenseVector< double > & | , | ||
double * | |||
) |
void ClpPdco::matVecMult | ( | int | , |
CoinDenseVector< double > & | , | ||
CoinDenseVector< double > & | |||
) |
void ClpPdco::matVecMult | ( | int | , |
CoinDenseVector< double > * | , | ||
CoinDenseVector< double > * | |||
) |
void ClpPdco::getBoundTypes | ( | int * | , |
int * | , | ||
int * | , | ||
int ** | |||
) |
void ClpPdco::getGrad | ( | CoinDenseVector< double > & | x, |
CoinDenseVector< double > & | grad | ||
) |
void ClpPdco::getHessian | ( | CoinDenseVector< double > & | x, |
CoinDenseVector< double > & | H | ||
) |
double ClpPdco::getObj | ( | CoinDenseVector< double > & | x | ) |
void ClpPdco::matPrecon | ( | double | , |
double * | , | ||
double * | |||
) |
void ClpPdco::matPrecon | ( | double | , |
CoinDenseVector< double > & | , | ||
double * | |||
) |
void ClpPdco::matPrecon | ( | double | , |
CoinDenseVector< double > & | , | ||
CoinDenseVector< double > & | |||
) |
void ClpPdco::matPrecon | ( | double | , |
CoinDenseVector< double > * | , | ||
CoinDenseVector< double > * | |||
) |