Clp
1.17.8
|
Primal Column Pivot Abstract Base Class. More...
#include <AbcPrimalColumnPivot.hpp>
Public Member Functions | |
Algorithmic methods | |
virtual int | pivotColumn (CoinPartitionedVector *updates, CoinPartitionedVector *spareRow2, CoinPartitionedVector *spareColumn1)=0 |
Returns pivot column, -1 if none. More... | |
virtual void | updateWeights (CoinIndexedVector *input) |
Updates weights - part 1 (may be empty) More... | |
virtual void | saveWeights (AbcSimplex *model, int mode)=0 |
Saves any weights round factorization as pivot rows may change Will be empty unless steepest edge (will save model) May also recompute infeasibility stuff 1) before factorization 2) after good factorization (if weights empty may initialize) 3) after something happened but no factorization (e.g. More... | |
virtual int | pivotRow (double &way) |
Signals pivot row choice: -2 (default) - use normal pivot row choice -1 to numberRows-1 - use this (will be checked) way should be -1 to go to lower bound, +1 to upper bound. More... | |
virtual void | clearArrays () |
Gets rid of all arrays (may be empty) More... | |
virtual bool | looksOptimal () const |
Returns true if would not find any column. More... | |
virtual void | setLooksOptimal (bool flag) |
Sets optimality flag (for advanced use) More... | |
Constructors and destructors | |
AbcPrimalColumnPivot () | |
Default Constructor. More... | |
AbcPrimalColumnPivot (const AbcPrimalColumnPivot &) | |
Copy constructor. More... | |
AbcPrimalColumnPivot & | operator= (const AbcPrimalColumnPivot &rhs) |
Assignment operator. More... | |
virtual | ~AbcPrimalColumnPivot () |
Destructor. More... | |
virtual AbcPrimalColumnPivot * | clone (bool copyData=true) const =0 |
Clone. More... | |
Other | |
AbcSimplex * | model () |
Returns model. More... | |
void | setModel (AbcSimplex *newmodel) |
Sets model. More... | |
int | type () |
Returns type (above 63 is extra information) More... | |
virtual int | numberSprintColumns (int &numberIterations) const |
Returns number of extra columns for sprint algorithm - 0 means off. More... | |
virtual void | switchOffSprint () |
Switch off sprint idea. More... | |
virtual void | maximumPivotsChanged () |
Called when maximum pivots changes. More... | |
Protected Attributes | |
Protected member data | |
AbcSimplex * | model_ |
Pointer to model. More... | |
int | type_ |
Type of column pivot algorithm. More... | |
bool | looksOptimal_ |
Says if looks optimal (normally computed) More... | |
Primal Column Pivot Abstract Base Class.
Abstract Base Class for describing an interface to an algorithm to choose column pivot in primal simplex algorithm. For some algorithms e.g. Dantzig choice then some functions may be null. For Dantzig the only one of any importance is pivotColumn.
If you wish to inherit from this look at AbcPrimalColumnDantzig.cpp as that is simplest version.
Definition at line 26 of file AbcPrimalColumnPivot.hpp.
AbcPrimalColumnPivot::AbcPrimalColumnPivot | ( | ) |
Default Constructor.
AbcPrimalColumnPivot::AbcPrimalColumnPivot | ( | const AbcPrimalColumnPivot & | ) |
Copy constructor.
|
virtual |
Destructor.
|
pure virtual |
Returns pivot column, -1 if none.
Normally updates reduced costs using result of last iteration before selecting incoming column.
The Packed CoinIndexedVector updates has cost updates - for normal LP that is just +-weight where a feasibility changed. It also has reduced cost from last iteration in pivot row
Inside pivotColumn the pivotRow_ and reduced cost from last iteration are also used.
So in the simplest case i.e. feasible we compute the row of the tableau corresponding to last pivot and add a multiple of this to current reduced costs.
We can use other arrays to help updates
Implemented in AbcPrimalColumnSteepest, and AbcPrimalColumnDantzig.
|
virtual |
Updates weights - part 1 (may be empty)
Reimplemented in AbcPrimalColumnSteepest.
|
pure virtual |
Saves any weights round factorization as pivot rows may change Will be empty unless steepest edge (will save model) May also recompute infeasibility stuff 1) before factorization 2) after good factorization (if weights empty may initialize) 3) after something happened but no factorization (e.g.
check for infeasible) 4) as 2 but restore weights from previous snapshot 5) forces some initialization e.g. weights Also sets model
Implemented in AbcPrimalColumnDantzig, and AbcPrimalColumnSteepest.
|
inlinevirtual |
Signals pivot row choice: -2 (default) - use normal pivot row choice -1 to numberRows-1 - use this (will be checked) way should be -1 to go to lower bound, +1 to upper bound.
Definition at line 75 of file AbcPrimalColumnPivot.hpp.
|
virtual |
Gets rid of all arrays (may be empty)
Reimplemented in AbcPrimalColumnSteepest.
|
inlinevirtual |
Returns true if would not find any column.
Reimplemented in AbcPrimalColumnSteepest.
Definition at line 83 of file AbcPrimalColumnPivot.hpp.
|
inlinevirtual |
Sets optimality flag (for advanced use)
Definition at line 88 of file AbcPrimalColumnPivot.hpp.
AbcPrimalColumnPivot& AbcPrimalColumnPivot::operator= | ( | const AbcPrimalColumnPivot & | rhs | ) |
Assignment operator.
|
pure virtual |
Clone.
Implemented in AbcPrimalColumnSteepest, and AbcPrimalColumnDantzig.
|
inline |
Returns model.
Definition at line 116 of file AbcPrimalColumnPivot.hpp.
|
inline |
Sets model.
Definition at line 121 of file AbcPrimalColumnPivot.hpp.
|
inline |
Returns type (above 63 is extra information)
Definition at line 127 of file AbcPrimalColumnPivot.hpp.
|
virtual |
Returns number of extra columns for sprint algorithm - 0 means off.
Also number of iterations before recompute
|
virtual |
Switch off sprint idea.
|
inlinevirtual |
Called when maximum pivots changes.
Reimplemented in AbcPrimalColumnSteepest.
Definition at line 139 of file AbcPrimalColumnPivot.hpp.
|
protected |
Pointer to model.
Definition at line 149 of file AbcPrimalColumnPivot.hpp.
|
protected |
Type of column pivot algorithm.
Definition at line 151 of file AbcPrimalColumnPivot.hpp.
|
protected |
Says if looks optimal (normally computed)
Definition at line 153 of file AbcPrimalColumnPivot.hpp.