Steepest edge pricer.Class SPxSteepPR implements a steepest edge pricer to be used with SoPlex. More...
#include <spxsteeppr.h>
Public Types | |
Types | |
| enum | Setup { EXACT, DEFAULT } |
| How to setup the direction multipliers. More... | |
Public Types inherited from SPxPricer< R > | |
| enum | ViolationType { NOT_VIOLATED = 0, VIOLATED = 1, VIOLATED_AND_CHECKED = 2 } |
Public Member Functions | |
| void | setupWeights (typename SPxSolverBase< R >::Type type) |
| setup steepest edge weights More... | |
Construction / destruction | |
| SPxSteepPR (const char *name="Steep", Setup mode=DEFAULT) | |
| SPxSteepPR (const SPxSteepPR &old) | |
| copy constructor More... | |
| SPxSteepPR & | operator= (const SPxSteepPR &rhs) |
| assignment operator More... | |
| virtual | ~SPxSteepPR () |
| destructor More... | |
| virtual SPxPricer< R > * | clone () const |
| clone function for polymorphism More... | |
Access / modification | |
| virtual void | load (SPxSolverBase< R > *base) |
| sets the solver More... | |
| virtual void | clear () |
| clear solver and preferences More... | |
| virtual void | setType (typename SPxSolverBase< R >::Type) |
| set entering/leaving algorithm More... | |
| virtual void | setRep (typename SPxSolverBase< R >::Representation rep) |
| set row/column representation More... | |
| virtual int | selectLeave () |
| virtual void | left4 (int n, SPxId id) |
| virtual SPxId | selectEnter () |
| virtual void | entered4 (SPxId id, int n) |
| virtual void | addedVecs (int n) |
n vectors have been added to loaded LP. More... | |
| virtual void | addedCoVecs (int n) |
n covectors have been added to loaded LP. More... | |
| virtual void | removedVec (int i) |
the i'th vector has been removed from the loaded LP. More... | |
| virtual void | removedCoVec (int i) |
the i'th covector has been removed from the loaded LP. More... | |
| virtual void | removedVecs (const int perm[]) |
n vectors have been removed from loaded LP. More... | |
| virtual void | removedCoVecs (const int perm[]) |
n covectors have been removed from loaded LP. More... | |
Consistency check | |
| virtual bool | isConsistent () const |
Public Member Functions inherited from SPxPricer< R > | |
| virtual const char * | getName () const |
| get name of pricer. More... | |
| virtual SPxSolverBase< R > * | solver () const |
| returns loaded SPxSolverBase object. More... | |
| virtual R | epsilon () const |
| returns violation bound theeps. More... | |
| virtual void | setEpsilon (R eps) |
| sets violation bound. More... | |
| virtual void | removedVecs (const int *) |
vectors given by perm have been removed from loaded LP. More... | |
| virtual void | removedCoVecs (const int *) |
covectors given by perm have been removed from loaded LP. More... | |
| SPxPricer (const char *p_name) | |
| constructor More... | |
| SPxPricer (const SPxPricer &old) | |
| copy constructor More... | |
| SPxPricer & | operator= (const SPxPricer &rhs) |
| assignment operator More... | |
| virtual | ~SPxPricer () |
| destructor. More... | |
Private Member Functions | |
| int | buildBestPriceVectorLeave (R feastol) |
| prepare data structures for hyper sparse pricing More... | |
| int | selectLeaveX (R tol) |
| implementation of full pricing More... | |
| int | selectLeaveSparse (R tol) |
| implementation of sparse pricing in the leaving Simplex More... | |
| int | selectLeaveHyper (R tol) |
| implementation of hyper sparse pricing in the leaving Simplex More... | |
| SPxId | buildBestPriceVectorEnterDim (R &best, R feastol) |
| build up vector of pricing values for later use More... | |
| SPxId | buildBestPriceVectorEnterCoDim (R &best, R feastol) |
| SPxId | selectEnterX (R tol) |
| choose the best entering index among columns and rows but prefer sparsity More... | |
| SPxId | selectEnterSparseDim (R &best, R tol) |
| implementation of sparse pricing for the entering Simplex (slack variables) More... | |
| SPxId | selectEnterSparseCoDim (R &best, R tol) |
| implementation of sparse pricing for the entering Simplex More... | |
| SPxId | selectEnterDenseDim (R &best, R tol) |
| implementation of selectEnter() in dense case (slack variables) More... | |
| SPxId | selectEnterDenseCoDim (R &best, R tol) |
| implementation of selectEnter() in dense case More... | |
| SPxId | selectEnterHyperDim (R &best, R feastol) |
| implementation of hyper sparse pricing in the entering Simplex More... | |
| SPxId | selectEnterHyperCoDim (R &best, R feastol) |
| implementation of hyper sparse pricing in the entering Simplex More... | |
Private Attributes | |
Data | |
| SSVectorBase< R > | workVec |
| working vector More... | |
| SSVectorBase< R > | workRhs |
| working vector More... | |
| Array< typename SPxPricer< R >::IdxElement > | prices |
| temporary array of precomputed pricing values More... | |
| Array< typename SPxPricer< R >::IdxElement > | pricesCo |
| temporary array of precomputed pricing values More... | |
| DIdxSet | bestPrices |
| array of best pricing candidates More... | |
| DIdxSet | bestPricesCo |
| array of best pricing candidates More... | |
| R | pi_p |
| Setup | setup |
| setup type. More... | |
| bool | refined |
| has a refinement step already been tried? More... | |
Additional Inherited Members | |
Protected Attributes inherited from SPxPricer< R > | |
| IdxCompare | compare |
| const char * | m_name |
| name of the pricer More... | |
| SPxSolverBase< R > * | thesolver |
| the solver More... | |
| R | theeps |
| violation bound More... | |
Steepest edge pricer.
Class SPxSteepPR implements a steepest edge pricer to be used with SoPlex.
See SPxPricer for a class documentation.
Definition at line 42 of file spxsteeppr.h.
| enum Setup |
How to setup the direction multipliers.
Possible settings are EXACT for starting with exactly computed values, or DEFAULT for starting with multipliers set to 1. The latter is the default.
| Enumerator | |
|---|---|
| EXACT | starting with exactly computed values |
| DEFAULT | starting with multipliers set to 1 |
Definition at line 54 of file spxsteeppr.h.
| SPxSteepPR | ( | const char * | name = "Steep", |
| Setup | mode = DEFAULT |
||
| ) |
Definition at line 121 of file spxsteeppr.h.
References SPxSteepPR< R >::isConsistent().
Referenced by SPxSteepPR< R >::clone().
| SPxSteepPR | ( | const SPxSteepPR< R > & | old | ) |
copy constructor
Definition at line 132 of file spxsteeppr.h.
References SPxSteepPR< R >::isConsistent().
|
virtual |
destructor
Definition at line 160 of file spxsteeppr.h.
|
virtual |
n covectors have been added to loaded LP.
Reimplemented from SPxPricer< R >.
Referenced by SPxSteepPR< R >::clone().
|
virtual |
n vectors have been added to loaded LP.
Reimplemented from SPxPricer< R >.
Referenced by SPxSteepPR< R >::clone().
|
private |
|
private |
build up vector of pricing values for later use
|
private |
prepare data structures for hyper sparse pricing
|
virtual |
clear solver and preferences
Reimplemented from SPxPricer< R >.
Referenced by SPxSteepPR< R >::clone().
|
virtual |
clone function for polymorphism
Implements SPxPricer< R >.
Reimplemented in SPxSteepExPR< R >.
Definition at line 163 of file spxsteeppr.h.
References SPxSteepPR< R >::addedCoVecs(), SPxSteepPR< R >::addedVecs(), SPxSteepPR< R >::clear(), SPxSteepPR< R >::entered4(), SPxSteepPR< R >::isConsistent(), SPxSteepPR< R >::left4(), SPxSteepPR< R >::load(), SPxSteepPR< R >::removedCoVec(), SPxSteepPR< R >::removedCoVecs(), SPxSteepPR< R >::removedVec(), SPxSteepPR< R >::removedVecs(), SPxSteepPR< R >::selectEnter(), SPxSteepPR< R >::selectLeave(), SPxSteepPR< R >::setRep(), SPxSteepPR< R >::setType(), and SPxSteepPR< R >::SPxSteepPR().
|
virtual |
Reimplemented from SPxPricer< R >.
Referenced by SPxSteepPR< R >::clone().
|
virtual |
Reimplemented from SPxPricer< R >.
Referenced by SPxSteepPR< R >::clone(), SPxSteepExPR< R >::operator=(), SPxSteepPR< R >::operator=(), SPxSteepExPR< R >::SPxSteepExPR(), and SPxSteepPR< R >::SPxSteepPR().
|
virtual |
Reimplemented from SPxPricer< R >.
Referenced by SPxSteepPR< R >::clone().
|
virtual |
| SPxSteepPR& operator= | ( | const SPxSteepPR< R > & | rhs | ) |
assignment operator
Definition at line 143 of file spxsteeppr.h.
References SPxSteepPR< R >::isConsistent(), SPxPricer< R >::operator=(), SPxSteepPR< R >::pi_p, SPxSteepPR< R >::refined, SPxSteepPR< R >::setup, SPxSteepPR< R >::workRhs, and SPxSteepPR< R >::workVec.
Referenced by SPxSteepExPR< R >::operator=().
|
virtual |
the i'th covector has been removed from the loaded LP.
Reimplemented from SPxPricer< R >.
Referenced by SPxSteepPR< R >::clone().
|
virtual |
n covectors have been removed from loaded LP.
Referenced by SPxSteepPR< R >::clone().
|
virtual |
the i'th vector has been removed from the loaded LP.
Reimplemented from SPxPricer< R >.
Referenced by SPxSteepPR< R >::clone().
|
virtual |
n vectors have been removed from loaded LP.
Referenced by SPxSteepPR< R >::clone().
|
virtual |
Implements SPxPricer< R >.
Referenced by SPxSteepPR< R >::clone().
|
private |
implementation of selectEnter() in dense case
|
private |
implementation of selectEnter() in dense case (slack variables)
|
private |
implementation of hyper sparse pricing in the entering Simplex
|
private |
implementation of hyper sparse pricing in the entering Simplex
|
private |
implementation of sparse pricing for the entering Simplex
|
private |
implementation of sparse pricing for the entering Simplex (slack variables)
|
private |
choose the best entering index among columns and rows but prefer sparsity
|
virtual |
Implements SPxPricer< R >.
Referenced by SPxSteepPR< R >::clone().
|
private |
implementation of hyper sparse pricing in the leaving Simplex
|
private |
implementation of sparse pricing in the leaving Simplex
|
private |
implementation of full pricing
|
virtual |
set row/column representation
Reimplemented from SPxPricer< R >.
Referenced by SPxSteepPR< R >::clone().
|
virtual |
set entering/leaving algorithm
Reimplemented from SPxPricer< R >.
Referenced by SPxSteepPR< R >::clone().
| void setupWeights | ( | typename SPxSolverBase< R >::Type | type | ) |
setup steepest edge weights
|
private |
array of best pricing candidates
Definition at line 77 of file spxsteeppr.h.
|
private |
array of best pricing candidates
Definition at line 79 of file spxsteeppr.h.
|
private |
Definition at line 81 of file spxsteeppr.h.
Referenced by SPxSteepPR< R >::operator=().
|
private |
temporary array of precomputed pricing values
Definition at line 73 of file spxsteeppr.h.
|
private |
temporary array of precomputed pricing values
Definition at line 75 of file spxsteeppr.h.
|
private |
has a refinement step already been tried?
Definition at line 85 of file spxsteeppr.h.
Referenced by SPxSteepPR< R >::operator=().
|
private |
|
private |
working vector
Definition at line 71 of file spxsteeppr.h.
Referenced by SPxSteepPR< R >::operator=().
|
private |
working vector
Definition at line 69 of file spxsteeppr.h.
Referenced by SPxSteepPR< R >::operator=().