Clp
1.17.8
|
This implements Gub rows plus a ClpPackedMatrix. More...
#include <ClpGubDynamicMatrix.hpp>
Public Member Functions | |
Main functions provided | |
virtual void | partialPricing (ClpSimplex *model, double start, double end, int &bestSequence, int &numberWanted) |
Partial pricing. More... | |
virtual int | synchronize (ClpSimplex *model, int mode) |
This is local to Gub to allow synchronization: mode=0 when status of basis is good mode=1 when variable is flagged mode=2 when all variables unflagged (returns number flagged) mode=3 just reset costs (primal) mode=4 correct number of dual infeasibilities mode=5 return 4 if time to re-factorize mode=8 - make sure set is clean mode=9 - adjust lower, upper on set by incoming. More... | |
virtual void | useEffectiveRhs (ClpSimplex *model, bool cheapest=true) |
Sets up an effective RHS and does gub crash if needed. More... | |
virtual int | updatePivot (ClpSimplex *model, double oldInValue, double oldOutValue) |
update information for a pivot (and effective rhs) More... | |
void | insertNonBasic (int sequence, int iSet) |
Add a new variable to a set. More... | |
virtual double * | rhsOffset (ClpSimplex *model, bool forceRefresh=false, bool check=false) |
Returns effective RHS offset if it is being used. More... | |
virtual void | times (double scalar, const double *x, double *y) const |
Return y + A * scalar *x in y . More... | |
virtual int | checkFeasible (ClpSimplex *model, double &sum) const |
Just for debug Returns sum and number of primal infeasibilities. More... | |
void | cleanData (ClpSimplex *model) |
Cleans data after setWarmStart. More... | |
virtual void | times (double scalar, const double *x, double *y) const |
Return y + A * scalar *x in y . More... | |
virtual void | times (double scalar, const double *x, double *y, const double *rowScale, const double *columnScale) const |
And for scaling. More... | |
Constructors, destructor | |
ClpGubDynamicMatrix () | |
Default constructor. More... | |
virtual | ~ClpGubDynamicMatrix () |
Destructor. More... | |
Copy method | |
ClpGubDynamicMatrix (const ClpGubDynamicMatrix &) | |
The copy constructor. More... | |
ClpGubDynamicMatrix (ClpSimplex *model, int numberSets, int numberColumns, const int *starts, const double *lower, const double *upper, const CoinBigIndex *startColumn, const int *row, const double *element, const double *cost, const double *lowerColumn=NULL, const double *upperColumn=NULL, const unsigned char *status=NULL) | |
This is the real constructor. More... | |
ClpGubDynamicMatrix & | operator= (const ClpGubDynamicMatrix &) |
virtual ClpMatrixBase * | clone () const |
Clone. More... | |
Public Member Functions inherited from ClpGubMatrix | |
virtual ClpMatrixBase * | reverseOrderedCopy () const |
Returns a new matrix in reverse order without gaps (GUB wants NULL) More... | |
virtual int | countBasis (const int *whichColumn, int &numberColumnBasic) |
Returns number of elements in column part of basis. More... | |
virtual void | fillBasis (ClpSimplex *model, const int *whichColumn, int &numberColumnBasic, int *row, int *start, int *rowCount, int *columnCount, CoinFactorizationDouble *element) |
Fills in column part of basis. More... | |
virtual void | unpack (const ClpSimplex *model, CoinIndexedVector *rowArray, int column) const |
Unpacks a column into an CoinIndexedvector. More... | |
virtual void | unpackPacked (ClpSimplex *model, CoinIndexedVector *rowArray, int column) const |
Unpacks a column into an CoinIndexedvector in packed foramt Note that model is NOT const. More... | |
virtual void | add (const ClpSimplex *model, CoinIndexedVector *rowArray, int column, double multiplier) const |
Adds multiple of a column into an CoinIndexedvector You can use quickAdd to add to vector. More... | |
virtual void | add (const ClpSimplex *model, double *array, int column, double multiplier) const |
Adds multiple of a column into an array. More... | |
virtual int | hiddenRows () const |
Returns number of hidden rows e.g. gub. More... | |
virtual void | transposeTimes (const ClpSimplex *model, double scalar, const CoinIndexedVector *x, CoinIndexedVector *y, CoinIndexedVector *z) const |
Return x * scalar * A + y in z . More... | |
virtual void | transposeTimesByRow (const ClpSimplex *model, double scalar, const CoinIndexedVector *x, CoinIndexedVector *y, CoinIndexedVector *z) const |
Return x * scalar * A + y in z . More... | |
virtual void | subsetTransposeTimes (const ClpSimplex *model, const CoinIndexedVector *x, const CoinIndexedVector *y, CoinIndexedVector *z) const |
Return x *A in z but just for indices in y. More... | |
virtual int | extendUpdated (ClpSimplex *model, CoinIndexedVector *update, int mode) |
expands an updated column to allow for extra rows which the main solver does not know about and returns number added if mode 0. More... | |
virtual void | primalExpanded (ClpSimplex *model, int mode) |
mode=0 - Set up before "update" and "times" for primal solution using extended rows mode=1 - Cleanup primal solution after "times" using extended rows. More... | |
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. More... | |
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 More... | |
virtual void | correctSequence (const ClpSimplex *model, int &sequenceIn, int &sequenceOut) |
Correct sequence in and out to give true value. More... | |
virtual void | transposeTimes (double scalar, const double *x, double *y) const |
Return y + x * scalar * A in y . More... | |
virtual void | transposeTimes (double scalar, const double *x, double *y, const double *rowScale, const double *columnScale, double *spare=NULL) const |
And for scaling. More... | |
virtual void | transposeTimes (const ClpSimplex *model, double scalar, const CoinIndexedVector *x, CoinIndexedVector *y, CoinIndexedVector *z) const |
Return x * scalar * A in More... | |
ClpGubMatrix () | |
Default constructor. More... | |
virtual | ~ClpGubMatrix () |
Destructor. More... | |
ClpGubMatrix (const ClpGubMatrix &) | |
The copy constructor. More... | |
ClpGubMatrix (const CoinPackedMatrix &) | |
The copy constructor from an CoinPackedMatrix. More... | |
ClpGubMatrix (const ClpGubMatrix &wholeModel, int numberRows, const int *whichRows, int numberColumns, const int *whichColumns) | |
Subset constructor (without gaps). More... | |
ClpGubMatrix (const CoinPackedMatrix &wholeModel, int numberRows, const int *whichRows, int numberColumns, const int *whichColumns) | |
ClpGubMatrix (CoinPackedMatrix *matrix) | |
This takes over ownership (for space reasons) More... | |
ClpGubMatrix (ClpPackedMatrix *matrix, int numberSets, const int *start, const int *end, const double *lower, const double *upper, const unsigned char *status=NULL) | |
This takes over ownership (for space reasons) and is the real constructor. More... | |
ClpGubMatrix & | operator= (const ClpGubMatrix &) |
virtual ClpMatrixBase * | subsetClone (int numberRows, const int *whichRows, int numberColumns, const int *whichColumns) const |
Subset clone (without gaps). More... | |
void | redoSet (ClpSimplex *model, int newKey, int oldKey, int iSet) |
redoes next_ for a set. More... | |
ClpSimplex::Status | getStatus (int sequence) const |
Status. More... | |
void | setStatus (int sequence, ClpSimplex::Status status) |
void | setFlagged (int sequence) |
To flag a variable. More... | |
void | clearFlagged (int sequence) |
bool | flagged (int sequence) const |
void | setAbove (int sequence) |
To say key is above ub. More... | |
void | setFeasible (int sequence) |
To say key is feasible. More... | |
void | setBelow (int sequence) |
To say key is below lb. More... | |
double | weight (int sequence) const |
int * | start () const |
Starts. More... | |
int * | end () const |
End. More... | |
double * | lower () const |
Lower bounds on sets. More... | |
double * | upper () const |
Upper bounds on sets. More... | |
int * | keyVariable () const |
Key variable of set. More... | |
int * | backward () const |
Backward pointer to set number. More... | |
int | numberSets () const |
Number of sets (gub rows) More... | |
void | switchOffCheck () |
Switches off dj checking each factorization (for BIG models) More... | |
Public Member Functions inherited from ClpPackedMatrix | |
virtual CoinPackedMatrix * | getPackedMatrix () const |
Return a complete CoinPackedMatrix. More... | |
virtual bool | isColOrdered () const |
Whether the packed matrix is column major ordered or not. More... | |
virtual CoinBigIndex | getNumElements () const |
Number of entries in the packed matrix. More... | |
virtual int | getNumCols () const |
Number of columns. More... | |
virtual int | getNumRows () const |
Number of rows. More... | |
virtual const double * | getElements () const |
A vector containing the elements in the packed matrix. More... | |
double * | getMutableElements () const |
Mutable elements. More... | |
virtual const int * | getIndices () const |
A vector containing the minor indices of the elements in the packed matrix. More... | |
virtual const CoinBigIndex * | getVectorStarts () const |
virtual const int * | getVectorLengths () const |
The lengths of the major-dimension vectors. More... | |
virtual int | getVectorLength (int index) const |
The length of a single major-dimension vector. More... | |
virtual void | deleteCols (const int numDel, const int *indDel) |
Delete the columns whose indices are listed in indDel . More... | |
virtual void | deleteRows (const int numDel, const int *indDel) |
Delete the rows whose indices are listed in indDel . More... | |
virtual void | appendCols (int number, const CoinPackedVectorBase *const *columns) |
Append Columns. More... | |
virtual void | appendRows (int number, const CoinPackedVectorBase *const *rows) |
Append Rows. More... | |
virtual int | appendMatrix (int number, int type, const CoinBigIndex *starts, const int *index, const double *element, int numberOther=-1) |
Append a set of rows/columns to the end of the matrix. More... | |
virtual void | replaceVector (const int index, const int numReplace, const double *newElements) |
Replace the elements of a vector. More... | |
virtual void | modifyCoefficient (int row, int column, double newElement, bool keepZero=false) |
Modify one element of packed matrix. More... | |
virtual int | scale (ClpModel *model, ClpSimplex *simplex=NULL) const |
Creates scales for column copy (rowCopy in model may be modified) returns non-zero if no scaling done. More... | |
virtual void | scaleRowCopy (ClpModel *model) const |
Scales rowCopy if column copy scaled Only called if scales already exist. More... | |
void | createScaledMatrix (ClpSimplex *model) const |
Creates scaled column copy if scales exist. More... | |
virtual ClpMatrixBase * | scaledColumnCopy (ClpModel *model) const |
Realy really scales column copy Only called if scales already exist. More... | |
virtual bool | allElementsInRange (ClpModel *model, double smallest, double largest, int check=15) |
Checks if all elements are in valid range. More... | |
virtual void | rangeOfElements (double &smallestNegative, double &largestNegative, double &smallestPositive, double &largestPositive) |
Returns largest and smallest elements of both signs. More... | |
virtual void | releasePackedMatrix () const |
Allow any parts of a created CoinPackedMatrix to be deleted. More... | |
virtual CoinBigIndex * | dubiousWeights (const ClpSimplex *model, int *inputWeights) const |
Given positive integer weights for each row fills in sum of weights for each column (and slack). More... | |
virtual bool | canDoPartialPricing () const |
Says whether it can do partial pricing. More... | |
virtual int | refresh (ClpSimplex *model) |
makes sure active columns correct More... | |
virtual void | reallyScale (const double *rowScale, const double *columnScale) |
virtual void | setDimensions (int numrows, int numcols) |
Set the dimensions of the matrix. More... | |
virtual void | times (double scalar, const double *x, double *y, const double *rowScale, const double *columnScale) const |
And for scaling. More... | |
virtual void | transposeTimes (double scalar, const double *x, double *y) const |
Return y + x * scalar * A in y . More... | |
virtual void | transposeTimes (double scalar, const double *x, double *y, const double *rowScale, const double *columnScale, double *spare=NULL) const |
And for scaling. More... | |
void | transposeTimesSubset (int number, const int *which, const double *pi, double *y, const double *rowScale, const double *columnScale, double *spare=NULL) const |
Return y - pi * A in y . More... | |
void | transposeTimesByColumn (const ClpSimplex *model, double scalar, const CoinIndexedVector *x, CoinIndexedVector *y, CoinIndexedVector *z) const |
Return x * scalar * A in More... | |
virtual bool | canCombine (const ClpSimplex *model, const CoinIndexedVector *pi) const |
Returns true if can combine transposeTimes and subsetTransposeTimes and if it would be faster. More... | |
virtual int | transposeTimes2 (const ClpSimplex *model, const CoinIndexedVector *pi1, CoinIndexedVector *dj1, const CoinIndexedVector *pi2, CoinIndexedVector *spare, double *infeas, double *reducedCost, double referenceIn, double devex, unsigned int *reference, double *weights, double scaleFactor) |
Updates two arrays for steepest and does devex weights Returns nonzero if updates reduced cost and infeas - new infeas in dj1. More... | |
virtual void | subsetTimes2 (const ClpSimplex *model, CoinIndexedVector *dj1, const CoinIndexedVector *pi2, CoinIndexedVector *dj2, double referenceIn, double devex, unsigned int *reference, double *weights, double scaleFactor) |
Updates second array for steepest and does devex weights. More... | |
void | useEffectiveRhs (ClpSimplex *model) |
Sets up an effective RHS. More... | |
CoinPackedMatrix * | matrix () const |
Returns CoinPackedMatrix (non const) More... | |
void | setMatrixNull () |
Just sets matrix_ to NULL so it can be used elsewhere. More... | |
void | makeSpecialColumnCopy () |
Say we want special column copy. More... | |
void | releaseSpecialColumnCopy () |
Say we don't want special column copy. More... | |
bool | zeros () const |
Are there zeros? More... | |
bool | wantsSpecialColumnCopy () const |
Do we want special column copy. More... | |
int | flags () const |
Flags. More... | |
void | checkGaps () |
Sets flags_ correctly. More... | |
int | numberActiveColumns () const |
number of active columns (normally same as number of columns) More... | |
void | setNumberActiveColumns (int value) |
Set number of active columns (normally same as number of columns) More... | |
ClpPackedMatrix () | |
Default constructor. More... | |
virtual | ~ClpPackedMatrix () |
Destructor. More... | |
ClpPackedMatrix (const ClpPackedMatrix &) | |
The copy constructor. More... | |
ClpPackedMatrix (const CoinPackedMatrix &) | |
The copy constructor from an CoinPackedMatrix. More... | |
ClpPackedMatrix (const ClpPackedMatrix &wholeModel, int numberRows, const int *whichRows, int numberColumns, const int *whichColumns) | |
Subset constructor (without gaps). More... | |
ClpPackedMatrix (const CoinPackedMatrix &wholeModel, int numberRows, const int *whichRows, int numberColumns, const int *whichColumns) | |
ClpPackedMatrix (CoinPackedMatrix *matrix) | |
This takes over ownership (for space reasons) More... | |
ClpPackedMatrix & | operator= (const ClpPackedMatrix &) |
virtual void | copy (const ClpPackedMatrix *from) |
Copy contents - resizing if necessary - otherwise re-use memory. More... | |
void | specialRowCopy (ClpSimplex *model, const ClpMatrixBase *rowCopy) |
make special row copy More... | |
void | specialColumnCopy (ClpSimplex *model) |
make special column copy More... | |
Public Member Functions inherited from ClpMatrixBase | |
virtual bool | canGetRowCopy () const |
Returns true if can create row copy. More... | |
virtual void | createVariable (ClpSimplex *model, int &bestSequence) |
Creates a variable. More... | |
double | reducedCost (ClpSimplex *model, int sequence) const |
Returns reduced cost of a variable. More... | |
virtual void | times (double scalar, const double *COIN_RESTRICT x, double *COIN_RESTRICT y) const =0 |
Return y + A * x * scalar in y . More... | |
virtual void | times (double scalar, const double *COIN_RESTRICT x, double *COIN_RESTRICT y, const double *COIN_RESTRICT rowScale, const double *COIN_RESTRICT columnScale) const |
And for scaling - default aborts for when scaling not supported (unless pointers NULL when as normal) More... | |
virtual void | transposeTimes (double scalar, const double *COIN_RESTRICT x, double *COIN_RESTRICT y) const =0 |
Return y + x * scalar * A in y . More... | |
virtual void | transposeTimes (double scalar, const double *COIN_RESTRICT x, double *COIN_RESTRICT y, const double *COIN_RESTRICT rowScale, const double *COIN_RESTRICT columnScale, double *COIN_RESTRICT spare=NULL) const |
And for scaling - default aborts for when scaling not supported (unless pointers NULL when as normal) More... | |
virtual void | listTransposeTimes (const ClpSimplex *model, double *x, int *y, int number, double *z) const |
Return x *A in z but just for number indices in y. More... | |
virtual void | backToBasics () |
Gets rid of any mutable by products. More... | |
int | type () const |
Returns type. More... | |
void | setType (int newtype) |
Sets type. More... | |
void | useEffectiveRhs (ClpSimplex *model) |
Sets up an effective RHS. More... | |
int | lastRefresh () const |
If rhsOffset used this is iteration last refreshed. More... | |
int | refreshFrequency () const |
If rhsOffset used this is refresh frequency (0==off) More... | |
void | setRefreshFrequency (int value) |
bool | skipDualCheck () const |
whether to skip dual checks most of time More... | |
void | setSkipDualCheck (bool yes) |
int | minimumObjectsScan () const |
Partial pricing tuning parameter - minimum number of "objects" to scan. More... | |
void | setMinimumObjectsScan (int value) |
int | minimumGoodReducedCosts () const |
Partial pricing tuning parameter - minimum number of negative reduced costs to get. More... | |
void | setMinimumGoodReducedCosts (int value) |
double | startFraction () const |
Current start of search space in matrix (as fraction) More... | |
void | setStartFraction (double value) |
double | endFraction () const |
Current end of search space in matrix (as fraction) More... | |
void | setEndFraction (double value) |
double | savedBestDj () const |
Current best reduced cost. More... | |
void | setSavedBestDj (double value) |
int | originalWanted () const |
Initial number of negative reduced costs wanted. More... | |
void | setOriginalWanted (int value) |
int | currentWanted () const |
Current number of negative reduced costs which we still need. More... | |
void | setCurrentWanted (int value) |
int | savedBestSequence () const |
Current best sequence. More... | |
void | setSavedBestSequence (int value) |
virtual | ~ClpMatrixBase () |
Destructor (has to be public) More... | |
Protected Attributes | |
Data members | |
The data members are protected to allow access for derived classes. | |
double | objectiveOffset_ |
Saved value of objective offset. More... | |
CoinBigIndex * | startColumn_ |
Starts of each column. More... | |
int * | row_ |
rows More... | |
double * | element_ |
elements More... | |
double * | cost_ |
costs More... | |
int * | fullStart_ |
full starts More... | |
int * | id_ |
ids of active columns (just index here) More... | |
unsigned char * | dynamicStatus_ |
for status and which bound More... | |
double * | lowerColumn_ |
Optional lower bounds on columns. More... | |
double * | upperColumn_ |
Optional upper bounds on columns. More... | |
double * | lowerSet_ |
Optional true lower bounds on sets. More... | |
double * | upperSet_ |
Optional true upper bounds on sets. More... | |
int | numberGubColumns_ |
size More... | |
int | firstAvailable_ |
first free More... | |
int | savedFirstAvailable_ |
saved first free More... | |
int | firstDynamic_ |
first dynamic More... | |
int | lastDynamic_ |
number of columns in dynamic model More... | |
CoinBigIndex | numberElements_ |
size of working matrix (max) More... | |
Protected Attributes inherited from ClpGubMatrix | |
double | sumDualInfeasibilities_ |
Sum of dual infeasibilities. More... | |
double | sumPrimalInfeasibilities_ |
Sum of primal infeasibilities. More... | |
double | sumOfRelaxedDualInfeasibilities_ |
Sum of Dual infeasibilities using tolerance based on error in duals. More... | |
double | sumOfRelaxedPrimalInfeasibilities_ |
Sum of Primal infeasibilities using tolerance based on error in primals. More... | |
double | infeasibilityWeight_ |
Infeasibility weight when last full pass done. More... | |
int * | start_ |
Starts. More... | |
int * | end_ |
End. More... | |
double * | lower_ |
Lower bounds on sets. More... | |
double * | upper_ |
Upper bounds on sets. More... | |
unsigned char * | status_ |
Status of slacks. More... | |
unsigned char * | saveStatus_ |
Saved status of slacks. More... | |
int * | savedKeyVariable_ |
Saved key variables. More... | |
int * | backward_ |
Backward pointer to set number. More... | |
int * | backToPivotRow_ |
Backward pointer to pivot row !!! More... | |
double * | changeCost_ |
Change in costs for keys. More... | |
int * | keyVariable_ |
Key variable of set. More... | |
int * | next_ |
Next basic variable in set - starts at key and end with -(set+1). More... | |
int * | toIndex_ |
Backward pointer to index in CoinIndexedVector. More... | |
int * | fromIndex_ |
ClpSimplex * | model_ |
Pointer back to model. More... | |
int | numberDualInfeasibilities_ |
Number of dual infeasibilities. More... | |
int | numberPrimalInfeasibilities_ |
Number of primal infeasibilities. More... | |
int | noCheck_ |
If pricing will declare victory (i.e. More... | |
int | numberSets_ |
Number of sets (gub rows) More... | |
int | saveNumber_ |
Number in vector without gub extension. More... | |
int | possiblePivotKey_ |
Pivot row of possible next key. More... | |
int | gubSlackIn_ |
Gub slack in (set number or -1) More... | |
int | firstGub_ |
First gub variables (same as start_[0] at present) More... | |
int | lastGub_ |
last gub variable (same as end_[numberSets_-1] at present) More... | |
int | gubType_ |
type of gub - 0 not contiguous, 1 contiguous add 8 bit to say no ubs on individual variables More... | |
Protected Attributes inherited from ClpPackedMatrix | |
CoinPackedMatrix * | matrix_ |
Data. More... | |
int | numberActiveColumns_ |
number of active columns (normally same as number of columns) More... | |
int | flags_ |
Flags - 1 - has zero elements 2 - has gaps 4 - has special row copy 8 - has special column copy 16 - wants special column copy. More... | |
ClpPackedMatrix2 * | rowCopy_ |
Special row copy. More... | |
ClpPackedMatrix3 * | columnCopy_ |
Special column copy. More... | |
Protected Attributes inherited from ClpMatrixBase | |
double * | rhsOffset_ |
Effective RHS offset if it is being used. More... | |
double | startFraction_ |
Current start of search space in matrix (as fraction) More... | |
double | endFraction_ |
Current end of search space in matrix (as fraction) More... | |
double | savedBestDj_ |
Best reduced cost so far. More... | |
int | originalWanted_ |
Initial number of negative reduced costs wanted. More... | |
int | currentWanted_ |
Current number of negative reduced costs which we still need. More... | |
int | savedBestSequence_ |
Saved best sequence in pricing. More... | |
int | type_ |
type (may be useful) More... | |
int | lastRefresh_ |
If rhsOffset used this is iteration last refreshed. More... | |
int | refreshFrequency_ |
If rhsOffset used this is refresh frequency (0==off) More... | |
int | minimumObjectsScan_ |
Partial pricing tuning parameter - minimum number of "objects" to scan. More... | |
int | minimumGoodReducedCosts_ |
Partial pricing tuning parameter - minimum number of negative reduced costs to get. More... | |
int | trueSequenceIn_ |
True sequence in (i.e. from larger problem) More... | |
int | trueSequenceOut_ |
True sequence out (i.e. from larger problem) More... | |
bool | skipDualCheck_ |
whether to skip dual checks most of time More... | |
gets and sets | |
enum | DynamicStatus { inSmall = 0x01, atUpperBound = 0x02, atLowerBound = 0x03 } |
enums for status of various sorts More... | |
bool | flagged (int i) const |
Whether flagged. More... | |
void | setFlagged (int i) |
void | unsetFlagged (int i) |
void | setDynamicStatus (int sequence, DynamicStatus status) |
DynamicStatus | getDynamicStatus (int sequence) const |
double | objectiveOffset () const |
Saved value of objective offset. More... | |
CoinBigIndex * | startColumn () const |
Starts of each column. More... | |
int * | row () const |
rows More... | |
double * | element () const |
elements More... | |
double * | cost () const |
costs More... | |
int * | fullStart () const |
full starts More... | |
int * | id () const |
ids of active columns (just index here) More... | |
double * | lowerColumn () const |
Optional lower bounds on columns. More... | |
double * | upperColumn () const |
Optional upper bounds on columns. More... | |
double * | lowerSet () const |
Optional true lower bounds on sets. More... | |
double * | upperSet () const |
Optional true upper bounds on sets. More... | |
int | numberGubColumns () const |
size More... | |
int | firstAvailable () const |
first free More... | |
void | setFirstAvailable (int value) |
set first free More... | |
int | firstDynamic () const |
first dynamic More... | |
int | lastDynamic () const |
number of columns in dynamic model More... | |
CoinBigIndex | numberElements () const |
size of working matrix (max) More... | |
unsigned char * | gubRowStatus () const |
Status region for gub slacks. More... | |
unsigned char * | dynamicStatus () const |
Status region for gub variables. More... | |
int | whichSet (int sequence) const |
Returns which set a variable is in. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from ClpPackedMatrix | |
void | checkFlags (int type) const |
Check validity. More... | |
Protected Member Functions inherited from ClpMatrixBase | |
ClpMatrixBase () | |
Default constructor. More... | |
ClpMatrixBase (const ClpMatrixBase &) | |
ClpMatrixBase & | operator= (const ClpMatrixBase &) |
This implements Gub rows plus a ClpPackedMatrix.
This a dynamic version which stores the gub part and dynamically creates matrix. All bounds are assumed to be zero and infinity
This is just a simple example for real column generation
Definition at line 19 of file ClpGubDynamicMatrix.hpp.
enums for status of various sorts
Enumerator | |
---|---|
inSmall | |
atUpperBound | |
atLowerBound |
Definition at line 97 of file ClpGubDynamicMatrix.hpp.
ClpGubDynamicMatrix::ClpGubDynamicMatrix | ( | ) |
Default constructor.
|
virtual |
Destructor.
ClpGubDynamicMatrix::ClpGubDynamicMatrix | ( | const ClpGubDynamicMatrix & | ) |
The copy constructor.
ClpGubDynamicMatrix::ClpGubDynamicMatrix | ( | ClpSimplex * | model, |
int | numberSets, | ||
int | numberColumns, | ||
const int * | starts, | ||
const double * | lower, | ||
const double * | upper, | ||
const CoinBigIndex * | startColumn, | ||
const int * | row, | ||
const double * | element, | ||
const double * | cost, | ||
const double * | lowerColumn = NULL , |
||
const double * | upperColumn = NULL , |
||
const unsigned char * | status = NULL |
||
) |
This is the real constructor.
It assumes factorization frequency will not be changed. This resizes model !!!!
|
virtual |
Partial pricing.
Reimplemented from ClpGubMatrix.
|
virtual |
This is local to Gub to allow synchronization: mode=0 when status of basis is good mode=1 when variable is flagged mode=2 when all variables unflagged (returns number flagged) mode=3 just reset costs (primal) mode=4 correct number of dual infeasibilities mode=5 return 4 if time to re-factorize mode=8 - make sure set is clean mode=9 - adjust lower, upper on set by incoming.
Reimplemented from ClpGubMatrix.
|
virtual |
Sets up an effective RHS and does gub crash if needed.
Reimplemented from ClpGubMatrix.
|
virtual |
update information for a pivot (and effective rhs)
Reimplemented from ClpGubMatrix.
void ClpGubDynamicMatrix::insertNonBasic | ( | int | sequence, |
int | iSet | ||
) |
Add a new variable to a set.
|
virtual |
Returns effective RHS offset if it is being used.
This is used for long problems or big gub or anywhere where going through full columns is expensive. This may re-compute
Reimplemented from ClpGubMatrix.
|
virtual |
Return y + A * scalar *x
in y
.
x
must be of size numColumns()
y
must be of size numRows()
Reimplemented from ClpPackedMatrix.
|
virtual |
Just for debug Returns sum and number of primal infeasibilities.
Recomputes keys
Reimplemented from ClpMatrixBase.
void ClpGubDynamicMatrix::cleanData | ( | ClpSimplex * | model | ) |
Cleans data after setWarmStart.
ClpGubDynamicMatrix& ClpGubDynamicMatrix::operator= | ( | const ClpGubDynamicMatrix & | ) |
|
virtual |
Clone.
Reimplemented from ClpGubMatrix.
|
inline |
Whether flagged.
Definition at line 103 of file ClpGubDynamicMatrix.hpp.
|
inline |
Definition at line 107 of file ClpGubDynamicMatrix.hpp.
|
inline |
Definition at line 111 of file ClpGubDynamicMatrix.hpp.
|
inline |
Definition at line 115 of file ClpGubDynamicMatrix.hpp.
|
inline |
Definition at line 121 of file ClpGubDynamicMatrix.hpp.
|
inline |
Saved value of objective offset.
Definition at line 126 of file ClpGubDynamicMatrix.hpp.
|
inline |
Starts of each column.
Definition at line 131 of file ClpGubDynamicMatrix.hpp.
|
inline |
rows
Definition at line 136 of file ClpGubDynamicMatrix.hpp.
|
inline |
elements
Definition at line 141 of file ClpGubDynamicMatrix.hpp.
|
inline |
costs
Definition at line 146 of file ClpGubDynamicMatrix.hpp.
|
inline |
full starts
Definition at line 151 of file ClpGubDynamicMatrix.hpp.
|
inline |
ids of active columns (just index here)
Definition at line 156 of file ClpGubDynamicMatrix.hpp.
|
inline |
Optional lower bounds on columns.
Definition at line 161 of file ClpGubDynamicMatrix.hpp.
|
inline |
Optional upper bounds on columns.
Definition at line 166 of file ClpGubDynamicMatrix.hpp.
|
inline |
Optional true lower bounds on sets.
Definition at line 171 of file ClpGubDynamicMatrix.hpp.
|
inline |
Optional true upper bounds on sets.
Definition at line 176 of file ClpGubDynamicMatrix.hpp.
|
inline |
size
Definition at line 181 of file ClpGubDynamicMatrix.hpp.
|
inline |
first free
Definition at line 186 of file ClpGubDynamicMatrix.hpp.
|
inline |
set first free
Definition at line 191 of file ClpGubDynamicMatrix.hpp.
|
inline |
first dynamic
Definition at line 196 of file ClpGubDynamicMatrix.hpp.
|
inline |
number of columns in dynamic model
Definition at line 201 of file ClpGubDynamicMatrix.hpp.
|
inline |
size of working matrix (max)
Definition at line 206 of file ClpGubDynamicMatrix.hpp.
|
inline |
Status region for gub slacks.
Definition at line 211 of file ClpGubDynamicMatrix.hpp.
|
inline |
Status region for gub variables.
Definition at line 216 of file ClpGubDynamicMatrix.hpp.
int ClpGubDynamicMatrix::whichSet | ( | int | sequence | ) | const |
Returns which set a variable is in.
virtual void ClpPackedMatrix::times |
Return y + A * scalar *x
in y
.
x
must be of size numColumns()
y
must be of size numRows()
virtual void ClpPackedMatrix::times |
And for scaling.
|
protected |
Saved value of objective offset.
Definition at line 229 of file ClpGubDynamicMatrix.hpp.
|
protected |
Starts of each column.
Definition at line 231 of file ClpGubDynamicMatrix.hpp.
|
protected |
rows
Definition at line 233 of file ClpGubDynamicMatrix.hpp.
|
protected |
elements
Definition at line 235 of file ClpGubDynamicMatrix.hpp.
|
protected |
costs
Definition at line 237 of file ClpGubDynamicMatrix.hpp.
|
protected |
full starts
Definition at line 239 of file ClpGubDynamicMatrix.hpp.
|
protected |
ids of active columns (just index here)
Definition at line 241 of file ClpGubDynamicMatrix.hpp.
|
protected |
for status and which bound
Definition at line 243 of file ClpGubDynamicMatrix.hpp.
|
protected |
Optional lower bounds on columns.
Definition at line 245 of file ClpGubDynamicMatrix.hpp.
|
protected |
Optional upper bounds on columns.
Definition at line 247 of file ClpGubDynamicMatrix.hpp.
|
protected |
Optional true lower bounds on sets.
Definition at line 249 of file ClpGubDynamicMatrix.hpp.
|
protected |
Optional true upper bounds on sets.
Definition at line 251 of file ClpGubDynamicMatrix.hpp.
|
protected |
size
Definition at line 253 of file ClpGubDynamicMatrix.hpp.
|
protected |
first free
Definition at line 255 of file ClpGubDynamicMatrix.hpp.
|
protected |
saved first free
Definition at line 257 of file ClpGubDynamicMatrix.hpp.
|
protected |
first dynamic
Definition at line 259 of file ClpGubDynamicMatrix.hpp.
|
protected |
number of columns in dynamic model
Definition at line 261 of file ClpGubDynamicMatrix.hpp.
|
protected |
size of working matrix (max)
Definition at line 263 of file ClpGubDynamicMatrix.hpp.