|
Cbc
2.10.5
|
This implements Gub rows plus a ClpPackedMatrix. More...
#include <ClpGubDynamicMatrix.hpp>
Inheritance diagram for ClpGubDynamicMatrix:
Collaboration diagram for ClpGubDynamicMatrix: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... | |
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... | |
| 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.
|
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.
1.8.5