#include <ClpDynamicMatrix.hpp>
Inheritance diagram for ClpDynamicMatrix:
Public Types | |
enum | DynamicStatus { soloKey = 0x00, inSmall = 0x01, atUpperBound = 0x02, atLowerBound = 0x03 } |
enums for status of various sorts More... | |
Public Member Functions | |
virtual void | partialPricing (ClpSimplex *model, double start, double end, int &bestSequence, int &numberWanted) |
Partial pricing. | |
virtual int | updatePivot (ClpSimplex *model, double oldInValue, double oldOutValue) |
update information for a pivot (and effective rhs) | |
virtual double * | rhsOffset (ClpSimplex *model, bool forceRefresh=false, bool check=false) |
Returns effective RHS offset if it is being used. | |
virtual void | times (double scalar, const double *x, double *y) const |
Return y + A * scalar *x in y . | |
void | modifyOffset (int sequence, double amount) |
Modifies rhs offset. | |
double | keyValue (int iSet) const |
Gets key value when none in small. | |
virtual void | dualExpanded (ClpSimplex *model, CoinIndexedVector *array, double *other, int mode) |
mode=0 - Set up before "updateTranspose" and "transposeTimes" for duals using extended updates array (and may use other if dual values pass) mode=1 - Update dual solution after "transposeTimes" using extended rows. | |
virtual int | generalExpanded (ClpSimplex *model, int mode, int &number) |
mode=0 - Create list of non-key basics in pivotVariable_ using number as numberBasic in and out mode=1 - Set all key variables as basic mode=2 - return number extra rows needed, number gives maximum number basic mode=3 - before replaceColumn mode=4 - return 1 if can do primal, 2 if dual, 3 if both mode=5 - save any status stuff (when in good state) mode=6 - restore status stuff mode=7 - flag given variable (normally sequenceIn) mode=8 - unflag all variables mode=9 - synchronize costs mode=10 - return 1 if there may be changing bounds on variable (column generation) mode=11 - make sure set is clean (used when a variable rejected - but not flagged) mode=12 - after factorize but before permute stuff mode=13 - at end of simplex to delete stuff | |
virtual int | refresh (ClpSimplex *model) |
Purely for column generation and similar ideas. | |
virtual void | createVariable (ClpSimplex *model, int &bestSequence) |
Creates a variable. | |
virtual double | reducedCost (ClpSimplex *model, int sequence) const |
Returns reduced cost of a variable. | |
void | gubCrash () |
Does gub crash. | |
void | initialProblem () |
Populates initial matrix from dynamic status. | |
int | addColumn (int numberEntries, const int *row, const float *element, float cost, float lower, float upper, int iSet, DynamicStatus status) |
Adds in a column to gub structure (called from descendant) and returns sequence. | |
virtual void | packDown (const int *in, int numberToPack) |
If addColumn forces compression then this allows descendant to know what to do. | |
double | columnLower (int sequence) const |
Gets lower bound (to simplify coding). | |
double | columnUpper (int sequence) const |
Gets upper bound (to simplify coding). | |
Constructors, destructor | |
ClpDynamicMatrix () | |
Default constructor. | |
ClpDynamicMatrix (ClpSimplex *model, int numberSets, int numberColumns, const int *starts, const double *lower, const double *upper, const int *startColumn, const int *row, const double *element, const double *cost, const double *columnLower=NULL, const double *columnUpper=NULL, const unsigned char *status=NULL, const unsigned char *dynamicStatus=NULL) | |
This is the real constructor. | |
virtual | ~ClpDynamicMatrix () |
Destructor. | |
Copy method | |
ClpDynamicMatrix (const ClpDynamicMatrix &) | |
The copy constructor. | |
ClpDynamicMatrix (const CoinPackedMatrix &) | |
The copy constructor from an CoinPackedMatrix. | |
ClpDynamicMatrix & | operator= (const ClpDynamicMatrix &) |
The copy constructor. | |
virtual ClpMatrixBase * | clone () const |
Clone. | |
gets and sets | |
ClpSimplex::Status | getStatus (int sequence) const |
Status of row slacks. | |
void | setStatus (int sequence, ClpSimplex::Status status) |
Status of row slacks. | |
int | numberSets () const |
Number of sets (dynamic rows). | |
bool | flagged (int i) const |
Whether flagged. | |
void | setFlagged (int i) |
Status of row slacks. | |
void | unsetFlagged (int i) |
Status of row slacks. | |
void | setDynamicStatus (int sequence, DynamicStatus status) |
Status of row slacks. | |
DynamicStatus | getDynamicStatus (int sequence) const |
Status of row slacks. | |
double | objectiveOffset () const |
Saved value of objective offset. | |
CoinBigIndex * | startColumn () const |
Starts of each column. | |
int * | row () const |
rows | |
float * | element () const |
elements | |
float * | cost () const |
costs | |
int * | id () const |
ids of active columns (just index here) | |
float * | columnLower () const |
Optional lower bounds on columns. | |
float * | columnUpper () const |
Optional upper bounds on columns. | |
float * | lowerSet () const |
Lower bounds on sets. | |
float * | upperSet () const |
Upper bounds on sets. | |
int | numberGubColumns () const |
size | |
int | firstAvailable () const |
first free | |
int | firstDynamic () const |
first dynamic | |
int | lastDynamic () const |
number of columns in dynamic model | |
int | numberStaticRows () const |
number of rows in original model | |
int | numberElements () const |
size of working matrix (max) | |
int * | keyVariable () const |
Status of row slacks. | |
void | switchOffCheck () |
Switches off dj checking each factorization (for BIG models). | |
unsigned char * | gubRowStatus () const |
Status region for gub slacks. | |
unsigned char * | dynamicStatus () const |
Status region for gub variables. | |
int | whichSet (int sequence) const |
Returns which set a variable is in. | |
Protected Attributes | |
Data members | |
The data members are protected to allow access for derived classes. | |
double | sumDualInfeasibilities_ |
Sum of dual infeasibilities. | |
double | sumPrimalInfeasibilities_ |
Sum of primal infeasibilities. | |
double | sumOfRelaxedDualInfeasibilities_ |
Sum of Dual infeasibilities using tolerance based on error in duals. | |
double | sumOfRelaxedPrimalInfeasibilities_ |
Sum of Primal infeasibilities using tolerance based on error in primals. | |
double | savedBestGubDual_ |
Saved best dual on gub row in pricing. | |
int | savedBestSet_ |
Saved best set in pricing. | |
int * | backToPivotRow_ |
Backward pointer to pivot row !!! | |
int * | keyVariable_ |
Key variable of set (only accurate if none in small problem). | |
int * | toIndex_ |
Backward pointer to extra row. | |
int * | fromIndex_ |
Sum of dual infeasibilities. | |
int | numberSets_ |
Number of sets (dynamic rows). | |
int | numberActiveSets_ |
Number of active sets. | |
double | objectiveOffset_ |
Saved value of objective offset. | |
float * | lowerSet_ |
Lower bounds on sets. | |
float * | upperSet_ |
Upper bounds on sets. | |
unsigned char * | status_ |
Status of slack on set. | |
ClpSimplex * | model_ |
Pointer back to model. | |
int | firstAvailable_ |
first free | |
int | firstAvailableBefore_ |
first free when iteration started | |
int | firstDynamic_ |
first dynamic | |
int | lastDynamic_ |
number of columns in dynamic model | |
int | numberStaticRows_ |
number of rows in original model | |
int | numberElements_ |
size of working matrix (max) | |
int | numberDualInfeasibilities_ |
Number of dual infeasibilities. | |
int | numberPrimalInfeasibilities_ |
Number of primal infeasibilities. | |
int | noCheck_ |
If pricing will declare victory (i.e. | |
double | infeasibilityWeight_ |
Infeasibility weight when last full pass done. | |
int | numberGubColumns_ |
size | |
int | maximumGubColumns_ |
current maximum number of columns (then compress) | |
int | maximumElements_ |
current maximum number of elemnts (then compress) | |
int * | startSet_ |
Start of each set. | |
int * | next_ |
next in chain | |
CoinBigIndex * | startColumn_ |
Starts of each column. | |
int * | row_ |
rows | |
float * | element_ |
elements | |
float * | cost_ |
costs | |
int * | id_ |
ids of active columns (just index here) | |
unsigned char * | dynamicStatus_ |
for status and which bound | |
float * | columnLower_ |
Optional lower bounds on columns. | |
float * | columnUpper_ |
Optional upper bounds on columns. |
This version inherits from ClpPackedMatrix and knows that the real matrix is gub. A later version could use shortest path to generate columns.
Definition at line 17 of file ClpDynamicMatrix.hpp.
|
enums for status of various sorts
Definition at line 21 of file ClpDynamicMatrix.hpp. Referenced by getDynamicStatus(). |
|
Default constructor.
|
|
This is the real constructor. It assumes factorization frequency will not be changed. This resizes model !!!! The contents of original matrix in model will be taken over and original matrix will be sanitized so can be deleted (to avoid a very small memory leak) |
|
Destructor.
|
|
The copy constructor.
|
|
The copy constructor from an CoinPackedMatrix.
|
|
Partial pricing.
Reimplemented from ClpPackedMatrix. Reimplemented in ClpDynamicExampleMatrix. |
|
update information for a pivot (and effective rhs)
Reimplemented from ClpMatrixBase. |
|
Returns effective RHS offset if it is being used. This is used for long problems or big dynamic or anywhere where going through full columns is expensive. This may re-compute Reimplemented from ClpMatrixBase. |
|
Return
Reimplemented from ClpPackedMatrix. |
|
Modifies rhs offset.
|
|
Gets key value when none in small.
|
|
mode=0 - Set up before "updateTranspose" and "transposeTimes" for duals using extended updates array (and may use other if dual values pass) mode=1 - Update dual solution after "transposeTimes" using extended rows. mode=2 - Compute all djs and compute key dual infeasibilities mode=3 - Report on key dual infeasibilities mode=4 - Modify before updateTranspose in partial pricing Reimplemented from ClpMatrixBase. |
|
mode=0 - Create list of non-key basics in pivotVariable_ using number as numberBasic in and out mode=1 - Set all key variables as basic mode=2 - return number extra rows needed, number gives maximum number basic mode=3 - before replaceColumn mode=4 - return 1 if can do primal, 2 if dual, 3 if both mode=5 - save any status stuff (when in good state) mode=6 - restore status stuff mode=7 - flag given variable (normally sequenceIn) mode=8 - unflag all variables mode=9 - synchronize costs mode=10 - return 1 if there may be changing bounds on variable (column generation) mode=11 - make sure set is clean (used when a variable rejected - but not flagged) mode=12 - after factorize but before permute stuff mode=13 - at end of simplex to delete stuff
Reimplemented from ClpMatrixBase. |
|
Purely for column generation and similar ideas. Allows matrix and any bounds or costs to be updated (sensibly). Returns non-zero if any changes. Reimplemented from ClpPackedMatrix. |
|
Creates a variable. This is called after partial pricing and will modify matrix. Will update bestSequence. Reimplemented from ClpMatrixBase. Reimplemented in ClpDynamicExampleMatrix. |
|
Returns reduced cost of a variable.
Reimplemented from ClpMatrixBase. |
|
Does gub crash.
|
|
Populates initial matrix from dynamic status.
|
|
Adds in a column to gub structure (called from descendant) and returns sequence.
|
|
If addColumn forces compression then this allows descendant to know what to do. If >=0 then entry stayed in, if -1 then entry went out to lower bound.of zero. Entries at upper bound (really nonzero) never go out (at present). Reimplemented in ClpDynamicExampleMatrix. Definition at line 100 of file ClpDynamicMatrix.hpp. |
|
Gets lower bound (to simplify coding).
Definition at line 102 of file ClpDynamicMatrix.hpp. References columnLower_. |
|
Gets upper bound (to simplify coding).
Definition at line 105 of file ClpDynamicMatrix.hpp. References COIN_DBL_MAX, and columnUpper_. |
|
The copy constructor.
|
|
Clone.
Reimplemented from ClpPackedMatrix. Reimplemented in ClpDynamicExampleMatrix. |
|
Status of row slacks.
Definition at line 149 of file ClpDynamicMatrix.hpp. References status_. |
|
Status of row slacks.
Definition at line 151 of file ClpDynamicMatrix.hpp. References status_. |
|
Number of sets (dynamic rows).
Definition at line 158 of file ClpDynamicMatrix.hpp. References numberSets_. |
|
Whether flagged.
Definition at line 161 of file ClpDynamicMatrix.hpp. References dynamicStatus_. |
|
Status of row slacks.
Definition at line 164 of file ClpDynamicMatrix.hpp. References dynamicStatus_. |
|
Status of row slacks.
Reimplemented in ClpDynamicExampleMatrix. Definition at line 167 of file ClpDynamicMatrix.hpp. References dynamicStatus_. |
|
Status of row slacks.
Definition at line 170 of file ClpDynamicMatrix.hpp. References dynamicStatus_. |
|
Status of row slacks.
Definition at line 176 of file ClpDynamicMatrix.hpp. References DynamicStatus, and dynamicStatus_. |
|
Saved value of objective offset.
Definition at line 179 of file ClpDynamicMatrix.hpp. References objectiveOffset_. |
|
Starts of each column.
Definition at line 182 of file ClpDynamicMatrix.hpp. References startColumn_. |
|
rows
Definition at line 185 of file ClpDynamicMatrix.hpp. References row_. |
|
elements
Definition at line 188 of file ClpDynamicMatrix.hpp. References element_. |
|
costs
Definition at line 191 of file ClpDynamicMatrix.hpp. References cost_. |
|
ids of active columns (just index here)
Definition at line 194 of file ClpDynamicMatrix.hpp. References id_. |
|
Optional lower bounds on columns.
Definition at line 197 of file ClpDynamicMatrix.hpp. References columnLower_. |
|
Optional upper bounds on columns.
Definition at line 200 of file ClpDynamicMatrix.hpp. References columnUpper_. |
|
Lower bounds on sets.
Definition at line 203 of file ClpDynamicMatrix.hpp. References lowerSet_. |
|
Upper bounds on sets.
Definition at line 206 of file ClpDynamicMatrix.hpp. References upperSet_. |
|
size
Definition at line 209 of file ClpDynamicMatrix.hpp. References numberGubColumns_. |
|
first free
Definition at line 212 of file ClpDynamicMatrix.hpp. References firstAvailable_. |
|
first dynamic
Definition at line 215 of file ClpDynamicMatrix.hpp. References firstDynamic_. |
|
number of columns in dynamic model
Definition at line 218 of file ClpDynamicMatrix.hpp. References lastDynamic_. |
|
number of rows in original model
Definition at line 221 of file ClpDynamicMatrix.hpp. References numberStaticRows_. |
|
size of working matrix (max)
Definition at line 224 of file ClpDynamicMatrix.hpp. References numberElements_. |
|
Status of row slacks.
Definition at line 226 of file ClpDynamicMatrix.hpp. References keyVariable_. |
|
Switches off dj checking each factorization (for BIG models).
|
|
Status region for gub slacks.
Definition at line 231 of file ClpDynamicMatrix.hpp. References status_. |
|
Status region for gub variables.
Definition at line 234 of file ClpDynamicMatrix.hpp. References dynamicStatus_. |
|
Returns which set a variable is in.
|
|
Sum of dual infeasibilities.
Definition at line 246 of file ClpDynamicMatrix.hpp. |
|
Sum of primal infeasibilities.
Definition at line 248 of file ClpDynamicMatrix.hpp. |
|
Sum of Dual infeasibilities using tolerance based on error in duals.
Definition at line 250 of file ClpDynamicMatrix.hpp. |
|
Sum of Primal infeasibilities using tolerance based on error in primals.
Definition at line 252 of file ClpDynamicMatrix.hpp. |
|
Saved best dual on gub row in pricing.
Definition at line 254 of file ClpDynamicMatrix.hpp. |
|
Saved best set in pricing.
Definition at line 256 of file ClpDynamicMatrix.hpp. |
|
Backward pointer to pivot row !!!
Definition at line 258 of file ClpDynamicMatrix.hpp. |
|
Key variable of set (only accurate if none in small problem).
Definition at line 260 of file ClpDynamicMatrix.hpp. Referenced by keyVariable(). |
|
Backward pointer to extra row.
Definition at line 262 of file ClpDynamicMatrix.hpp. |
|
Sum of dual infeasibilities.
Definition at line 264 of file ClpDynamicMatrix.hpp. |
|
Number of sets (dynamic rows).
Definition at line 266 of file ClpDynamicMatrix.hpp. Referenced by numberSets(). |
|
Number of active sets.
Definition at line 268 of file ClpDynamicMatrix.hpp. |
|
Saved value of objective offset.
Definition at line 270 of file ClpDynamicMatrix.hpp. Referenced by objectiveOffset(). |
|
Lower bounds on sets.
Definition at line 272 of file ClpDynamicMatrix.hpp. Referenced by lowerSet(). |
|
Upper bounds on sets.
Definition at line 274 of file ClpDynamicMatrix.hpp. Referenced by upperSet(). |
|
Status of slack on set.
Definition at line 276 of file ClpDynamicMatrix.hpp. Referenced by getStatus(), gubRowStatus(), and setStatus(). |
|
Pointer back to model.
Definition at line 278 of file ClpDynamicMatrix.hpp. |
|
first free
Definition at line 280 of file ClpDynamicMatrix.hpp. Referenced by firstAvailable(). |
|
first free when iteration started
Definition at line 282 of file ClpDynamicMatrix.hpp. |
|
first dynamic
Definition at line 284 of file ClpDynamicMatrix.hpp. Referenced by firstDynamic(). |
|
number of columns in dynamic model
Definition at line 286 of file ClpDynamicMatrix.hpp. Referenced by lastDynamic(). |
|
number of rows in original model
Definition at line 288 of file ClpDynamicMatrix.hpp. Referenced by numberStaticRows(). |
|
size of working matrix (max)
Definition at line 290 of file ClpDynamicMatrix.hpp. Referenced by numberElements(). |
|
Number of dual infeasibilities.
Definition at line 292 of file ClpDynamicMatrix.hpp. |
|
Number of primal infeasibilities.
Definition at line 294 of file ClpDynamicMatrix.hpp. |
|
If pricing will declare victory (i.e. no check every factorization). -1 - always check 0 - don't check 1 - in don't check mode but looks optimal Definition at line 300 of file ClpDynamicMatrix.hpp. |
|
Infeasibility weight when last full pass done.
Definition at line 302 of file ClpDynamicMatrix.hpp. |
|
size
Definition at line 304 of file ClpDynamicMatrix.hpp. Referenced by numberGubColumns(). |
|
current maximum number of columns (then compress)
Definition at line 306 of file ClpDynamicMatrix.hpp. |
|
current maximum number of elemnts (then compress)
Definition at line 308 of file ClpDynamicMatrix.hpp. |
|
Start of each set.
Definition at line 310 of file ClpDynamicMatrix.hpp. |
|
next in chain
Definition at line 312 of file ClpDynamicMatrix.hpp. |
|
Starts of each column.
Definition at line 314 of file ClpDynamicMatrix.hpp. Referenced by startColumn(). |
|
rows
Definition at line 316 of file ClpDynamicMatrix.hpp. Referenced by row(). |
|
elements
Definition at line 318 of file ClpDynamicMatrix.hpp. Referenced by element(). |
|
costs
Definition at line 320 of file ClpDynamicMatrix.hpp. Referenced by cost(). |
|
ids of active columns (just index here)
Definition at line 322 of file ClpDynamicMatrix.hpp. Referenced by id(). |
|
for status and which bound
Definition at line 324 of file ClpDynamicMatrix.hpp. Referenced by dynamicStatus(), flagged(), getDynamicStatus(), setDynamicStatus(), setFlagged(), and unsetFlagged(). |
|
Optional lower bounds on columns.
Definition at line 326 of file ClpDynamicMatrix.hpp. Referenced by columnLower(). |
|
Optional upper bounds on columns.
Definition at line 328 of file ClpDynamicMatrix.hpp. Referenced by columnUpper(). |