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