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=().