#include <ClpModel.hpp>
Inheritance diagram for ClpModel:
Public Member Functions | |
const double * | rowScale () const |
Scaling. | |
const double * | columnScale () const |
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 dynamic(later). | |
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. | |
int | 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. | |
ClpMatrixBase * | clpMatrix () const |
Clp Matrix. | |
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 *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. | |
double | objectiveValue () const |
Objective value. | |
void | setObjectiveValue (double value) |
double | getObjValue () const |
char * | integerInformation () const |
Integer information. | |
double * | infeasibilityRay () const |
Infeasibility/unbounded ray (NULL returned if none/wrong) Up to user to use delete [] on these arrays. | |
double * | unboundedRay () const |
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 |
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) |
Constructors and destructor | |
Note - copy methods copy ALL data so can chew up memory until other copy is freed | |
ClpModel () | |
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. | |
Load model - loads some stuff and initializes others | |
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) |
Loads a problem (the constraints on the rows are given by lower and upper bounds). | |
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) |
Loads a problem (the constraints on the rows are given by lower and upper bounds). | |
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) |
Loads a problem (the constraints on the rows are given by lower and upper bounds). | |
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 | 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) |
Loads a problem (the constraints on the rows are given by lower and upper bounds). | |
void | addColumns (int number, const double *columnLower, const double *columnUpper, const double *objective, const CoinPackedVectorBase *const *columns) |
Loads a problem (the constraints on the rows are given by lower and upper bounds). | |
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. | |
void | dropNames () |
Drops names - makes lengthnames 0 and names empty. | |
void | copyNames (std::vector< std::string > &rowNames, 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 | 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. | |
gets and sets | |
int | numberRows () const |
Number of rows. | |
int | getNumRows () const |
Number of rows. | |
int | getNumCols () const |
Number of columns. | |
int | numberColumns () const |
Number of rows. | |
double | primalTolerance () const |
Primal tolerance to use. | |
void | setPrimalTolerance (double value) |
Number of rows. | |
double | dualTolerance () const |
Dual tolerance to use. | |
void | setDualTolerance (double value) |
Number of rows. | |
double | primalObjectiveLimit () const |
Primal objective limit. | |
void | setPrimalObjectiveLimit (double value) |
Number of rows. | |
double | dualObjectiveLimit () const |
Dual objective limit. | |
void | setDualObjectiveLimit (double value) |
Number of rows. | |
double | objectiveOffset () const |
Objective offset. | |
void | setObjectiveOffset (double value) |
Number of rows. | |
std::string | problemName () const |
Number of rows. | |
int | numberIterations () const |
Number of iterations. | |
int | getIterationCount () const |
Number of rows. | |
void | setNumberIterations (int numberIterations) |
Number of rows. | |
int | solveType () const |
Solve type - 1 simplex, 2 simplex interface, 3 Interior. | |
void | setSolveType (int type) |
Number of rows. | |
int | maximumIterations () const |
Maximum number of iterations. | |
void | setMaximumIterations (int value) |
Number of rows. | |
double | maximumSeconds () const |
Maximum time in seconds (from when set called). | |
void | setMaximumSeconds (double value) |
Number of rows. | |
bool | hitMaximumIterations () const |
Returns true if hit maximum iterations (or time). | |
int | status () const |
Status of problem: -1 - unknown e.g. | |
int | problemStatus () const |
Number of rows. | |
void | setProblemStatus (int problemStatus) |
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 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 100 up - translation of enum from ClpEventHandler. | |
void | setSecondaryStatus (int status) |
Number of rows. | |
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 |
Number of rows. | |
void | setOptimizationDirection (double value) |
Number of rows. | |
double * | primalRowSolution () const |
Primal row solution. | |
const double * | getRowActivity () const |
Number of rows. | |
double * | primalColumnSolution () const |
Primal column solution. | |
const double * | getColSolution () const |
Number of rows. | |
void | setColSolution (const double *input) |
Number of rows. | |
double * | dualRowSolution () const |
Dual row solution. | |
const double * | getRowPrice () const |
Number of rows. | |
double * | dualColumnSolution () const |
Reduced costs. | |
const double * | getReducedCost () const |
Number of rows. | |
double * | rowLower () const |
Row lower. | |
const double * | getRowLower () const |
Number of rows. | |
double * | rowUpper () const |
Row upper. | |
const double * | getRowUpper () const |
Number of rows. | |
Changing bounds on variables and constraints | |
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 . | |
Message handling | |
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) |
Pass in Message handler (not deleted at end). | |
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 |
Pass in Message handler (not deleted at end). | |
void | passInEventHandler (const ClpEventHandler *eventHandler) |
Pass in Event handler (cloned and deleted at end). | |
ClpEventHandler * | eventHandler () const |
Event handler. | |
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 |
Pass in Message handler (not deleted at end). | |
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 |
Pass in Message handler (not deleted at end). | |
std::string | getColumnName (int iColumn) const |
Return name or Cnnnnnnn. | |
ClpObjective * | objectiveAsObject () const |
Objective methods. | |
void | setObjective (ClpObjective *objective) |
Pass in Message handler (not deleted at end). | |
void | setObjectivePointer (ClpObjective *objective) |
Pass in Message handler (not deleted at end). | |
int | emptyProblem (int *infeasNumber=NULL, double *infeasSum=NULL, bool printMessage=true) |
Solve a problem with no elements - return status and dual and primal infeasibilites. | |
Matrix times vector methods | |
They can be faster if scalar is +- 1 These are covers so user need not worry about scaling Also for simplex I am not using basic/non-basic split | |
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 . | |
Parameter set/get methods | |
The set methods return true if the parameter was set to the given value, false otherwise. There can be various reasons for failure: the given parameter is not applicable for the solver (e.g., refactorization frequency for the volume algorithm), the parameter is not yet implemented for the solver or simply the value of the parameter is out of the range the solver accepts. If a parameter setting call returns false check the details of your solver. The get methods return true if the given parameter is applicable for the solver and is implemented. In this case the value of the parameter is returned in the second argument. Otherwise they return false.
once it has been decided where solver sits this may be redone | |
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 |
Set an integer parameter. | |
bool | getDblParam (ClpDblParam key, double &value) const |
Set an integer parameter. | |
bool | getStrParam (ClpStrParam key, std::string &value) const |
Set an integer parameter. | |
void | generateCpp (FILE *fp) |
Create C++ lines to get to current state. | |
Protected Member Functions | |
private or protected methods | |
void | gutsOfDelete () |
Does most of deletion. | |
void | gutsOfCopy (const ClpModel &rhs, bool trueCopy=true) |
Does most of copying If trueCopy false then just points to arrays. | |
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. | |
const char *const *const | rowNamesAsChar () const |
Create row names as char **. | |
const char *const *const | columnNamesAsChar () const |
Create column names as char **. | |
void | deleteNamesAsChar (const char *const *const names, int number) const |
Delete char * version of names. | |
Protected Attributes | |
data | |
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. | |
double * | ray_ |
Infeasible/unbounded ray. | |
double * | rowScale_ |
Row scale factors for matrix. | |
double * | columnScale_ |
Column scale factors. | |
int | scalingFlag_ |
Scale flag, 0 none, 1 equilibrium, 2 geometric, 3, auto, 4 dynamic. | |
unsigned char * | status_ |
Status (i.e. | |
char * | integerType_ |
Integer information. | |
void * | userPointer_ |
User pointer for whatever reason. | |
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_ |
Whats changed since last solve. | |
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). | |
CoinMessageHandler * | handler_ |
Message handler. | |
bool | defaultHandler_ |
Flag to say if default handler (so delete). | |
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. | |
std::string | strParam_ [ClpLastStrParam] |
Array of string parameters. |
|
Default constructor.
|
|
Copy constructor. May scale depending on mode -1 leave mode as is 0 -off, 1 equilibrium, 2 geometric, 3, auto, 4 dynamic(later) |
|
Subproblem constructor. A subset of whole model is created from the row and column lists given. The new order is given by list order and duplicates are allowed. Name and integer information can be dropped |
|
Destructor.
|
|
Assignment operator. This copies the data.
|
|
Loads a problem (the constraints on the rows are given by lower and upper bounds). If a pointer is 0 then the following values are the default:
Reimplemented in ClpInterior, and ClpSimplex. |
|
Loads a problem (the constraints on the rows are given by lower and upper bounds). If a pointer is 0 then the following values are the default:
Reimplemented in ClpInterior, and ClpSimplex. |
|
Just like the other loadProblem() method except that the matrix is given in a standard column major ordered format (without gaps).
Reimplemented in ClpInterior, and ClpSimplex. |
|
This loads a model from a coinModel object - returns number of errors. modelObject not const as may be changed as part of process If tryPlusMinusOne then will try adding as +-1 matrix Reimplemented in ClpSimplex. |
|
This one is for after presolve to save memory.
Reimplemented in ClpInterior, and ClpSimplex. |
|
Load up quadratic objective. This is stored as a CoinPackedMatrix |
|
Loads a problem (the constraints on the rows are given by lower and upper bounds). If a pointer is 0 then the following values are the default:
|
|
Get rid of quadratic objective.
|
|
This just loads up a row objective.
|
|
Read an mps file from the given filename.
Reimplemented in ClpInterior, and ClpSimplex. |
|
Read GMPL files from the given filenames.
Reimplemented in ClpSimplex. |
|
Copy in integer informations.
|
|
Drop integer informations.
|
|
Set the index-th variable to be a continuous variable.
|
|
Set the index-th variable to be an integer variable.
|
|
Return true if the index-th variable is an integer variable.
|
|
Resizes rim part of model.
|
|
Deletes rows.
|
|
Add one row.
|
|
Add rows.
|
|
Add rows.
|
|
Loads a problem (the constraints on the rows are given by lower and upper bounds). If a pointer is 0 then the following values are the default:
|
|
Add rows from a build object. If tryPlusMinusOne then will try adding as +-1 matrix if no matrix exists. Returns number of errors e.g. duplicates |
|
Add rows from a model object. returns -1 if object in bad state (i.e. has column information) otherwise number of errors. modelObject non const as can be regularized as part of build If tryPlusMinusOne then will try adding as +-1 matrix if no matrix exists. |
|
Deletes columns.
|
|
Add one column.
|
|
Add columns.
|
|
Loads a problem (the constraints on the rows are given by lower and upper bounds). If a pointer is 0 then the following values are the default:
|
|
Loads a problem (the constraints on the rows are given by lower and upper bounds). If a pointer is 0 then the following values are the default:
|
|
Add columns from a build object If tryPlusMinusOne then will try adding as +-1 matrix if no matrix exists. Returns number of errors e.g. duplicates |
|
Add columns from a model object. returns -1 if object in bad state (i.e. has row information) otherwise number of errors modelObject non const as can be regularized as part of build If tryPlusMinusOne then will try adding as +-1 matrix if no matrix exists. |
|
Modify one element of a matrix.
Definition at line 226 of file ClpModel.hpp. |
|
Change row lower bounds.
|
|
Change row upper bounds.
|
|
Change column lower bounds.
|
|
Change column upper bounds.
|
|
Change objective coefficients.
|
|
Borrow model. This is so we don't have to copy large amounts of data around. It assumes a derived class wants to overwrite an empty model with a real one - while it does an algorithm Reimplemented in ClpInterior, and ClpSimplex. |
|
Return model - nulls all arrays so can be deleted safely also updates any scalars.
Reimplemented in ClpInterior. |
|
Create empty ClpPackedMatrix.
|
|
Drops names - makes lengthnames 0 and names empty.
|
|
Copies in names.
|
|
Copies in Row names - modifies names first .. last-1.
|
|
Copies in Column names - modifies names first .. last-1.
|
|
Copies in Row names - modifies names first .. last-1.
|
|
Copies in Column names - modifies names first .. last-1.
|
|
Set name of row.
|
|
Set name of col.
|
|
Write the problem in MPS format to the specified file. Row and column names may be null. formatType is
Returns non-zero on I/O error |
|
Number of rows.
Definition at line 288 of file ClpModel.hpp. |
|
Number of rows.
Definition at line 291 of file ClpModel.hpp. |
|
Number of columns.
Definition at line 295 of file ClpModel.hpp. |
|
Number of rows.
Definition at line 298 of file ClpModel.hpp. |
|
Primal tolerance to use.
Definition at line 302 of file ClpModel.hpp. |
|
Number of rows.
|
|
Dual tolerance to use.
Definition at line 307 of file ClpModel.hpp. |
|
Number of rows.
|
|
Primal objective limit.
Definition at line 310 of file ClpModel.hpp. |
|
Number of rows.
|
|
Dual objective limit.
Definition at line 313 of file ClpModel.hpp. |
|
Number of rows.
|
|
Objective offset.
Definition at line 316 of file ClpModel.hpp. |
|
Number of rows.
|
|
Number of rows.
Definition at line 319 of file ClpModel.hpp. |
|
Number of iterations.
Definition at line 322 of file ClpModel.hpp. |
|
Number of rows.
Definition at line 323 of file ClpModel.hpp. |
|
Number of rows.
Definition at line 324 of file ClpModel.hpp. |
|
Solve type - 1 simplex, 2 simplex interface, 3 Interior.
Definition at line 327 of file ClpModel.hpp. |
|
Number of rows.
Definition at line 329 of file ClpModel.hpp. |
|
Maximum number of iterations.
Definition at line 332 of file ClpModel.hpp. |
|
Number of rows.
|
|
Maximum time in seconds (from when set called).
Definition at line 335 of file ClpModel.hpp. |
|
Number of rows.
|
|
Returns true if hit maximum iterations (or time).
|
|
Status of problem: -1 - unknown e.g. before solve or if postSolve says not optimal 0 - optimal 1 - primal infeasible 2 - dual infeasible 3 - stopped on iterations or time 4 - stopped due to errors 5 - stopped by event handler (virtual int ClpEventHandler::event()) Definition at line 348 of file ClpModel.hpp. |
|
Number of rows.
Definition at line 349 of file ClpModel.hpp. |
|
Set problem status.
Definition at line 351 of file ClpModel.hpp. |
|
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 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 100 up - translation of enum from ClpEventHandler.
Definition at line 365 of file ClpModel.hpp. |
|
Number of rows.
Definition at line 366 of file ClpModel.hpp. |
|
Are there a numerical difficulties?
Definition at line 369 of file ClpModel.hpp. |
|
Is optimality proven?
Definition at line 371 of file ClpModel.hpp. |
|
Is primal infeasiblity proven?
Definition at line 373 of file ClpModel.hpp. |
|
Is dual infeasiblity proven?
Definition at line 375 of file ClpModel.hpp. |
|
Is the given primal objective limit reached?
|
|
Is the given dual objective limit reached?
|
|
Iteration limit reached?
Definition at line 381 of file ClpModel.hpp. |
|
Direction of optimization (1 - minimize, -1 - maximize, 0 - ignore.
Definition at line 383 of file ClpModel.hpp. |
|
Number of rows.
Definition at line 386 of file ClpModel.hpp. |
|
Number of rows.
|
|
Primal row solution.
Definition at line 389 of file ClpModel.hpp. |
|
Number of rows.
Definition at line 390 of file ClpModel.hpp. |
|
Primal column solution.
Definition at line 392 of file ClpModel.hpp. |
|
Number of rows.
Definition at line 393 of file ClpModel.hpp. |
|
Number of rows.
Definition at line 394 of file ClpModel.hpp. |
|
Dual row solution.
Definition at line 397 of file ClpModel.hpp. |
|
Number of rows.
Definition at line 398 of file ClpModel.hpp. |
|
Reduced costs.
Definition at line 400 of file ClpModel.hpp. |
|
Number of rows.
Definition at line 401 of file ClpModel.hpp. |
|
Row lower.
Definition at line 403 of file ClpModel.hpp. |
|
Number of rows.
Definition at line 404 of file ClpModel.hpp. |
|
Row upper.
Definition at line 406 of file ClpModel.hpp. |
|
Number of rows.
Definition at line 407 of file ClpModel.hpp. |
|
Set an objective function coefficient.
Reimplemented in ClpSimplex. |
|
Set an objective function coefficient.
Reimplemented in ClpSimplex. Definition at line 414 of file ClpModel.hpp. |
|
Set a single column lower bound
Reimplemented in ClpSimplex. |
|
Set a single column upper bound
Reimplemented in ClpSimplex. |
|
Set a single column lower and upper bound.
Reimplemented in ClpSimplex. |
|
Set the bounds on a number of columns simultaneously
Reimplemented in ClpSimplex. |
|
Set a single column lower bound
Reimplemented in ClpSimplex. Definition at line 443 of file ClpModel.hpp. |
|
Set a single column upper bound
Reimplemented in ClpSimplex. Definition at line 447 of file ClpModel.hpp. |
|
Set a single column lower and upper bound.
Reimplemented in ClpSimplex. Definition at line 451 of file ClpModel.hpp. |
|
Set the bounds on a number of columns simultaneously
Reimplemented in ClpSimplex. Definition at line 461 of file ClpModel.hpp. |
|
Set a single row lower bound
Reimplemented in ClpSimplex. |
|
Set a single row upper bound
Reimplemented in ClpSimplex. |
|
Set a single row lower and upper bound.
Reimplemented in ClpSimplex. |
|
Set the bounds on a number of rows simultaneously
Reimplemented in ClpSimplex. |
|
Scaling.
Definition at line 490 of file ClpModel.hpp. |
|
Definition at line 491 of file ClpModel.hpp. |
|
Definition at line 492 of file ClpModel.hpp. |
|
Definition at line 493 of file ClpModel.hpp. |
|
Scaling of objective.
Definition at line 495 of file ClpModel.hpp. |
|
Definition at line 497 of file ClpModel.hpp. |
|
Scaling of rhs and bounds.
Definition at line 500 of file ClpModel.hpp. |
|
Definition at line 502 of file ClpModel.hpp. |
|
Sets or unsets scaling, 0 -off, 1 equilibrium, 2 geometric, 3, auto, 4 dynamic(later).
|
|
If we constructed a "really" scaled model then this reverses the operation. Quantities may not be exactly as they were before due to rounding errors |
|
Gets scalingFlag.
Definition at line 510 of file ClpModel.hpp. |
|
Objective.
Definition at line 512 of file ClpModel.hpp. |
|
Definition at line 521 of file ClpModel.hpp. |
|
Definition at line 530 of file ClpModel.hpp. |
|
Row Objective.
Definition at line 540 of file ClpModel.hpp. |
|
Definition at line 541 of file ClpModel.hpp. |
|
Column Lower.
Definition at line 545 of file ClpModel.hpp. |
|
Definition at line 546 of file ClpModel.hpp. |
|
Column Upper.
Definition at line 548 of file ClpModel.hpp. |
|
Definition at line 549 of file ClpModel.hpp. |
|
Matrix (if not ClpPackedmatrix be careful about memory leak.
Definition at line 551 of file ClpModel.hpp. |
|
Number of elements in matrix.
Definition at line 556 of file ClpModel.hpp. |
|
Small element value - elements less than this set to zero, default is 1.0e-20.
Definition at line 560 of file ClpModel.hpp. |
|
Definition at line 562 of file ClpModel.hpp. |
|
Row Matrix.
Definition at line 565 of file ClpModel.hpp. |
|
Clp Matrix.
Definition at line 567 of file ClpModel.hpp. |
|
Replace Clp Matrix (current is not deleted unless told to and new is used) So up to user to delete current. This was used where matrices were being rotated. ClpModel takes ownership. |
|
Replace Clp Matrix (current is not deleted unless told to and new is used) So up to user to delete current. This was used where matrices were being rotated. This version changes CoinPackedMatrix to ClpPackedMatrix. ClpModel takes ownership. Definition at line 579 of file ClpModel.hpp. |
|
Objective value.
Definition at line 583 of file ClpModel.hpp. |
|
Definition at line 586 of file ClpModel.hpp. |
|
Definition at line 589 of file ClpModel.hpp. |
|
Integer information.
Definition at line 593 of file ClpModel.hpp. |
|
Infeasibility/unbounded ray (NULL returned if none/wrong) Up to user to use delete [] on these arrays.
|
|
|
|
See if status (i.e. basis) array exists (partly for OsiClp).
Definition at line 599 of file ClpModel.hpp. |
|
Return address of status (i.e. basis) array (char[numberRows+numberColumns]).
Definition at line 602 of file ClpModel.hpp. |
|
Return copy of status (i.e. basis) array (char[numberRows+numberColumns]), use delete [] |
|
Copy in status (basis) vector.
|
|
User pointer for whatever reason.
Definition at line 611 of file ClpModel.hpp. |
|
Definition at line 613 of file ClpModel.hpp. |
|
What has changed in model (only for masochistic users).
Definition at line 616 of file ClpModel.hpp. |
|
Definition at line 618 of file ClpModel.hpp. |
|
Number of threads (not really being used).
Definition at line 621 of file ClpModel.hpp. |
|
Definition at line 623 of file ClpModel.hpp. |
|
Pass in Message handler (not deleted at end).
|
|
Pass in Message handler (not deleted at end) and return current.
|
|
back to previous message handler
|
|
Set language.
|
|
Pass in Message handler (not deleted at end).
Definition at line 637 of file ClpModel.hpp. |
|
Return handler.
Definition at line 639 of file ClpModel.hpp. |
|
Return messages.
Definition at line 641 of file ClpModel.hpp. |
|
Return pointer to messages.
Definition at line 643 of file ClpModel.hpp. |
|
Return Coin messages.
Definition at line 645 of file ClpModel.hpp. |
|
Return pointer to Coin messages.
Definition at line 647 of file ClpModel.hpp. |
|
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.
Definition at line 656 of file ClpModel.hpp. |
|
Pass in Message handler (not deleted at end).
Definition at line 657 of file ClpModel.hpp. |
|
Pass in Event handler (cloned and deleted at end).
Reimplemented in ClpSimplex. |
|
Event handler.
Definition at line 661 of file ClpModel.hpp. |
|
length of names (0 means no names0
Definition at line 664 of file ClpModel.hpp. |
|
length of names (0 means no names0
Definition at line 667 of file ClpModel.hpp. |
|
Row names.
Definition at line 669 of file ClpModel.hpp. |
|
Pass in Message handler (not deleted at end).
Definition at line 672 of file ClpModel.hpp. |
|
Return name or Rnnnnnnn.
|
|
Column names.
Definition at line 678 of file ClpModel.hpp. |
|
Pass in Message handler (not deleted at end).
Definition at line 681 of file ClpModel.hpp. |
|
Return name or Cnnnnnnn.
|
|
Objective methods.
Definition at line 688 of file ClpModel.hpp. |
|
Pass in Message handler (not deleted at end).
|
|
Pass in Message handler (not deleted at end).
Definition at line 691 of file ClpModel.hpp. |
|
Solve a problem with no elements - return status and dual and primal infeasibilites.
|
|
Return
|
|
Return
|
|
Set an integer parameter.
|
|
Set an double parameter.
|
|
Set an string parameter.
|
|
Set an integer parameter.
Definition at line 744 of file ClpModel.hpp. |
|
Set an integer parameter.
Definition at line 753 of file ClpModel.hpp. |
|
Set an integer parameter.
Definition at line 763 of file ClpModel.hpp. |
|
Create C++ lines to get to current state.
|
|
Does most of deletion.
Reimplemented in ClpInterior. |
|
Does most of copying If trueCopy false then just points to arrays.
|
|
gets lower and upper bounds on rows
|
|
puts in format I like - 4 array matrix - may make row copy
|
|
Does much of scaling.
|
|
Objective value - always minimize.
Reimplemented in ClpInterior, and ClpSimplex. Definition at line 795 of file ClpModel.hpp. |
|
Create row names as char **.
|
|
Create column names as char **.
|
|
Delete char * version of names.
|
|
Direction of optimization (1 - minimize, -1 - maximize, 0 - ignore.
Definition at line 813 of file ClpModel.hpp. |
|
Array of double parameters.
Definition at line 815 of file ClpModel.hpp. |
|
Objective value.
Definition at line 817 of file ClpModel.hpp. |
|
Small element value.
Definition at line 819 of file ClpModel.hpp. |
|
Scaling of objective.
Definition at line 821 of file ClpModel.hpp. |
|
Scaling of rhs and bounds.
Definition at line 823 of file ClpModel.hpp. |
|
Number of rows.
Definition at line 825 of file ClpModel.hpp. |
|
Number of columns.
Definition at line 827 of file ClpModel.hpp. |
|
Row activities.
Definition at line 829 of file ClpModel.hpp. |
|
Column activities.
Definition at line 831 of file ClpModel.hpp. |
|
Duals.
Definition at line 833 of file ClpModel.hpp. |
|
Reduced costs.
Definition at line 835 of file ClpModel.hpp. |
|
Row lower.
Definition at line 837 of file ClpModel.hpp. |
|
Row upper.
Definition at line 839 of file ClpModel.hpp. |
|
Objective.
Definition at line 841 of file ClpModel.hpp. |
|
Row Objective (? sign) - may be NULL.
Definition at line 843 of file ClpModel.hpp. |
|
Column Lower.
Definition at line 845 of file ClpModel.hpp. |
|
Column Upper.
Definition at line 847 of file ClpModel.hpp. |
|
Packed matrix.
Definition at line 849 of file ClpModel.hpp. |
|
Row copy if wanted.
Definition at line 851 of file ClpModel.hpp. |
|
Infeasible/unbounded ray.
Definition at line 853 of file ClpModel.hpp. |
|
Row scale factors for matrix.
Definition at line 855 of file ClpModel.hpp. |
|
Column scale factors.
Definition at line 857 of file ClpModel.hpp. |
|
Scale flag, 0 none, 1 equilibrium, 2 geometric, 3, auto, 4 dynamic.
Definition at line 859 of file ClpModel.hpp. |
|
Status (i.e. basis) Region. I know that not all algorithms need a status array, but it made sense for things like crossover and put all permanent stuff in one place. No assumption is made about what is in status array (although it might be good to reserve bottom 3 bits (i.e. 0-7 numeric) for classic status). This is number of columns + number of rows long (in that order). Definition at line 867 of file ClpModel.hpp. |
|
Integer information.
Definition at line 869 of file ClpModel.hpp. |
|
User pointer for whatever reason.
Definition at line 871 of file ClpModel.hpp. |
|
Array of integer parameters.
Definition at line 873 of file ClpModel.hpp. |
|
Number of iterations.
Definition at line 875 of file ClpModel.hpp. |
|
Solve type - 1 simplex, 2 simplex interface, 3 Interior.
Definition at line 877 of file ClpModel.hpp. |
|
Whats changed since last solve. This is a work in progress It is designed so careful people can make go faster. It is only used when startFinishOptions used in dual or primal. Bit 1 - number of rows/columns has not changed (so work arrays valid) 2 - matrix has not changed 4 - if matrix has changed only by adding rows 8 - if matrix has changed only by adding columns 16 - row lbs not changed 32 - row ubs not changed 64 - column objective not changed 128 - column lbs not changed 256 - column ubs not changed 512 - basis not changed (up to user to set this to 0) top bits may be used internally Definition at line 893 of file ClpModel.hpp. |
|
Status of problem.
Definition at line 895 of file ClpModel.hpp. |
|
Secondary status of problem.
Definition at line 897 of file ClpModel.hpp. |
|
length of names (0 means no names)
Definition at line 899 of file ClpModel.hpp. |
|
Number of threads (not very operational).
Definition at line 901 of file ClpModel.hpp. |
|
Message handler.
Definition at line 903 of file ClpModel.hpp. |
|
Flag to say if default handler (so delete).
Definition at line 905 of file ClpModel.hpp. |
|
Event handler.
Definition at line 907 of file ClpModel.hpp. |
|
Row names.
Definition at line 910 of file ClpModel.hpp. |
|
Column names.
Definition at line 912 of file ClpModel.hpp. |
|
Messages.
Definition at line 915 of file ClpModel.hpp. |
|
Coin messages.
Definition at line 917 of file ClpModel.hpp. |
|
Array of string parameters.
Definition at line 920 of file ClpModel.hpp. |