#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 | |
Main functions provided | |
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 102 of file ClpDynamicMatrix.hpp. |
|
Gets lower bound (to simplify coding).
Definition at line 104 of file ClpDynamicMatrix.hpp. References columnLower_. |
|
Gets upper bound (to simplify coding).
Definition at line 107 of file ClpDynamicMatrix.hpp. References columnUpper_. |
|
The copy constructor.
|
|
Clone.
Reimplemented from ClpPackedMatrix. Reimplemented in ClpDynamicExampleMatrix. |
|
Status of row slacks.
Definition at line 151 of file ClpDynamicMatrix.hpp. References status_. |
|
Status of row slacks.
Definition at line 153 of file ClpDynamicMatrix.hpp. References status_. |
|
Number of sets (dynamic rows).
Definition at line 160 of file ClpDynamicMatrix.hpp. |
|
Whether flagged.
Definition at line 163 of file ClpDynamicMatrix.hpp. References dynamicStatus_. |
|
Status of row slacks.
Definition at line 166 of file ClpDynamicMatrix.hpp. References dynamicStatus_. |
|
Status of row slacks.
Reimplemented in ClpDynamicExampleMatrix. Definition at line 169 of file ClpDynamicMatrix.hpp. References dynamicStatus_. |
|
Status of row slacks.
Definition at line 172 of file ClpDynamicMatrix.hpp. References dynamicStatus_. |
|
Status of row slacks.
Definition at line 178 of file ClpDynamicMatrix.hpp. References DynamicStatus, and dynamicStatus_. |
|
Saved value of objective offset.
Definition at line 181 of file ClpDynamicMatrix.hpp. |
|
Starts of each column.
Definition at line 184 of file ClpDynamicMatrix.hpp. |
|
rows
Definition at line 187 of file ClpDynamicMatrix.hpp. |
|
elements
Definition at line 190 of file ClpDynamicMatrix.hpp. |
|
costs
Definition at line 193 of file ClpDynamicMatrix.hpp. |
|
ids of active columns (just index here)
Definition at line 196 of file ClpDynamicMatrix.hpp. |
|
Optional lower bounds on columns.
Definition at line 199 of file ClpDynamicMatrix.hpp. |
|
Optional upper bounds on columns.
Definition at line 202 of file ClpDynamicMatrix.hpp. |
|
Lower bounds on sets.
Definition at line 205 of file ClpDynamicMatrix.hpp. |
|
Upper bounds on sets.
Definition at line 208 of file ClpDynamicMatrix.hpp. |
|
size
Definition at line 211 of file ClpDynamicMatrix.hpp. |
|
first free
Definition at line 214 of file ClpDynamicMatrix.hpp. |
|
first dynamic
Definition at line 217 of file ClpDynamicMatrix.hpp. |
|
number of columns in dynamic model
Definition at line 220 of file ClpDynamicMatrix.hpp. |
|
number of rows in original model
Definition at line 223 of file ClpDynamicMatrix.hpp. |
|
size of working matrix (max)
Definition at line 226 of file ClpDynamicMatrix.hpp. |
|
Status of row slacks.
Definition at line 228 of file ClpDynamicMatrix.hpp. |
|
Switches off dj checking each factorization (for BIG models).
|
|
Status region for gub slacks.
Definition at line 233 of file ClpDynamicMatrix.hpp. |
|
Status region for gub variables.
Definition at line 236 of file ClpDynamicMatrix.hpp. |
|
Returns which set a variable is in.
|
|
Sum of dual infeasibilities.
Definition at line 248 of file ClpDynamicMatrix.hpp. |
|
Sum of primal infeasibilities.
Definition at line 250 of file ClpDynamicMatrix.hpp. |
|
Sum of Dual infeasibilities using tolerance based on error in duals.
Definition at line 252 of file ClpDynamicMatrix.hpp. |
|
Sum of Primal infeasibilities using tolerance based on error in primals.
Definition at line 254 of file ClpDynamicMatrix.hpp. |
|
Saved best dual on gub row in pricing.
Definition at line 256 of file ClpDynamicMatrix.hpp. |
|
Saved best set in pricing.
Definition at line 258 of file ClpDynamicMatrix.hpp. |
|
Backward pointer to pivot row !!!
Definition at line 260 of file ClpDynamicMatrix.hpp. |
|
Key variable of set (only accurate if none in small problem).
Definition at line 262 of file ClpDynamicMatrix.hpp. |
|
Backward pointer to extra row.
Definition at line 264 of file ClpDynamicMatrix.hpp. |
|
Sum of dual infeasibilities.
Definition at line 266 of file ClpDynamicMatrix.hpp. |
|
Number of sets (dynamic rows).
Definition at line 268 of file ClpDynamicMatrix.hpp. |
|
Number of active sets.
Definition at line 270 of file ClpDynamicMatrix.hpp. |
|
Saved value of objective offset.
Definition at line 272 of file ClpDynamicMatrix.hpp. |
|
Lower bounds on sets.
Definition at line 274 of file ClpDynamicMatrix.hpp. |
|
Upper bounds on sets.
Definition at line 276 of file ClpDynamicMatrix.hpp. |
|
Status of slack on set.
Definition at line 278 of file ClpDynamicMatrix.hpp. Referenced by getStatus(), and setStatus(). |
|
Pointer back to model.
Definition at line 280 of file ClpDynamicMatrix.hpp. |
|
first free
Definition at line 282 of file ClpDynamicMatrix.hpp. |
|
first free when iteration started
Definition at line 284 of file ClpDynamicMatrix.hpp. |
|
first dynamic
Definition at line 286 of file ClpDynamicMatrix.hpp. |
|
number of columns in dynamic model
Definition at line 288 of file ClpDynamicMatrix.hpp. |
|
number of rows in original model
Definition at line 290 of file ClpDynamicMatrix.hpp. |
|
size of working matrix (max)
Definition at line 292 of file ClpDynamicMatrix.hpp. |
|
Number of dual infeasibilities.
Definition at line 294 of file ClpDynamicMatrix.hpp. |
|
Number of primal infeasibilities.
Definition at line 296 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 302 of file ClpDynamicMatrix.hpp. |
|
Infeasibility weight when last full pass done.
Definition at line 304 of file ClpDynamicMatrix.hpp. |
|
size
Definition at line 306 of file ClpDynamicMatrix.hpp. |
|
current maximum number of columns (then compress)
Definition at line 308 of file ClpDynamicMatrix.hpp. |
|
current maximum number of elemnts (then compress)
Definition at line 310 of file ClpDynamicMatrix.hpp. |
|
Start of each set.
Definition at line 312 of file ClpDynamicMatrix.hpp. |
|
next in chain
Definition at line 314 of file ClpDynamicMatrix.hpp. |
|
Starts of each column.
Definition at line 316 of file ClpDynamicMatrix.hpp. |
|
rows
Definition at line 318 of file ClpDynamicMatrix.hpp. |
|
elements
Definition at line 320 of file ClpDynamicMatrix.hpp. |
|
costs
Definition at line 322 of file ClpDynamicMatrix.hpp. |
|
ids of active columns (just index here)
Definition at line 324 of file ClpDynamicMatrix.hpp. |
|
for status and which bound
Definition at line 326 of file ClpDynamicMatrix.hpp. Referenced by flagged(), getDynamicStatus(), setDynamicStatus(), setFlagged(), and unsetFlagged(). |
|
Optional lower bounds on columns.
Definition at line 328 of file ClpDynamicMatrix.hpp. Referenced by columnLower(). |
|
Optional upper bounds on columns.
Definition at line 330 of file ClpDynamicMatrix.hpp. Referenced by columnUpper(). |