|
SoPlex
|
Steepest edge pricer. 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 | |
Construction / destruction | |
| SPxSteepPR (const char *name="Steep", Setup mode=DEFAULT) | |
| SPxSteepPR (const SPxSteepPR &old) | |
| copy constructor | |
| SPxSteepPR & | operator= (const SPxSteepPR &rhs) |
| assignment operator | |
| virtual | ~SPxSteepPR () |
| destructor | |
| virtual SPxPricer< R > * | clone () const |
| clone function for polymorphism | |
Access / modification | |
| virtual void | load (SPxSolverBase< R > *base) |
| sets the solver | |
| virtual void | clear () |
| clear solver and preferences | |
| virtual void | setType (typename SPxSolverBase< R >::Type) |
| set entering/leaving algorithm | |
| virtual void | setRep (typename SPxSolverBase< R >::Representation rep) |
| set row/column representation | |
| 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. | |
| virtual void | addedCoVecs (int n) |
n covectors have been added to loaded LP. | |
| virtual void | removedVec (int i) |
the i'th vector has been removed from the loaded LP. | |
| virtual void | removedCoVec (int i) |
the i'th covector has been removed from the loaded LP. | |
| virtual void | removedVecs (const int perm[]) |
n vectors have been removed from loaded LP. | |
| virtual void | removedCoVecs (const int perm[]) |
n covectors have been removed from loaded LP. | |
Consistency check | |
| virtual bool | isConsistent () const |
Public Member Functions inherited from SPxPricer< R > | |
| virtual const char * | getName () const |
| get name of pricer. | |
| virtual SPxSolverBase< R > * | solver () const |
| returns loaded SPxSolverBase object. | |
| virtual void | setPricingTolerance (R tol) |
| sets pricing tolerance. | |
| virtual R | pricingTolerance () const |
| returns the pricing tolerance | |
| virtual void | setTolerances (std::shared_ptr< Tolerances > newTolerances) |
| set the _tolerances member variable | |
| virtual void | removedVecs (const int *) |
vectors given by perm have been removed from loaded LP. | |
| virtual void | removedCoVecs (const int *) |
covectors given by perm have been removed from loaded LP. | |
| SPxPricer (const char *p_name) | |
| constructor | |
| SPxPricer (const SPxPricer &old) | |
| copy constructor | |
| SPxPricer & | operator= (const SPxPricer &rhs) |
| assignment operator | |
| virtual | ~SPxPricer () |
| destructor. | |
Private Member Functions | |
| int | buildBestPriceVectorLeave (R feastol) |
| prepare data structures for hyper sparse pricing | |
| int | selectLeaveX (R tol) |
| implementation of full pricing | |
| int | selectLeaveSparse (R tol) |
| implementation of sparse pricing in the leaving Simplex | |
| int | selectLeaveHyper (R tol) |
| implementation of hyper sparse pricing in the leaving Simplex | |
| SPxId | buildBestPriceVectorEnterDim (R &best, R feastol) |
| build up vector of pricing values for later use | |
| SPxId | buildBestPriceVectorEnterCoDim (R &best, R feastol) |
| SPxId | selectEnterX (R tol) |
| choose the best entering index among columns and rows but prefer sparsity | |
| SPxId | selectEnterSparseDim (R &best, R tol) |
| implementation of sparse pricing for the entering Simplex (slack variables) | |
| SPxId | selectEnterSparseCoDim (R &best, R tol) |
| implementation of sparse pricing for the entering Simplex | |
| SPxId | selectEnterDenseDim (R &best, R tol) |
| implementation of selectEnter() in dense case (slack variables) | |
| SPxId | selectEnterDenseCoDim (R &best, R tol) |
| implementation of selectEnter() in dense case | |
| SPxId | selectEnterHyperDim (R &best, R feastol) |
| implementation of hyper sparse pricing in the entering Simplex | |
| SPxId | selectEnterHyperCoDim (R &best, R feastol) |
| implementation of hyper sparse pricing in the entering Simplex | |
Private Attributes | |
Data | |
| SSVectorBase< R > | workVec |
| working vector | |
| SSVectorBase< R > | workRhs |
| working vector | |
| Array< typename SPxPricer< R >::IdxElement > | prices |
| temporary array of precomputed pricing values | |
| Array< typename SPxPricer< R >::IdxElement > | pricesCo |
| temporary array of precomputed pricing values | |
| DIdxSet | bestPrices |
| array of best pricing candidates | |
| DIdxSet | bestPricesCo |
| array of best pricing candidates | |
| R | pi_p |
| Setup | setup |
| setup type. | |
| bool | refined |
| has a refinement step already been tried? | |
Additional Inherited Members | |
Protected Attributes inherited from SPxPricer< R > | |
| IdxCompare | compare |
| const char * | m_name |
| name of the pricer | |
| SPxSolverBase< R > * | thesolver |
| the solver | |
| R | thetolerance |
| violation bound | |
| std::shared_ptr< Tolerances > | _tolerances |
| tolerances used by the solver | |
Steepest edge pricer.
Class SPxSteepPR implements a steepest edge pricer to be used with SoPlex.
See SPxPricer for a class documentation.
Definition at line 51 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 63 of file spxsteeppr.h.
| SPxSteepPR | ( | const char * | name = "Steep", |
| Setup | mode = DEFAULT ) |
Definition at line 130 of file spxsteeppr.h.
References DEFAULT, isConsistent(), pi_p, refined, setup, SPxPricer< R >::SPxPricer(), workRhs, and workVec.
Referenced by SPxSteepExPR< R >::clone(), clone(), operator=(), SPxSteepExPR< R >::SPxSteepExPR(), SPxSteepExPR< R >::SPxSteepExPR(), and SPxSteepPR().
| SPxSteepPR | ( | const SPxSteepPR< R > & | old | ) |
copy constructor
Definition at line 141 of file spxsteeppr.h.
References isConsistent(), pi_p, refined, setup, SPxPricer< R >::SPxPricer(), SPxSteepPR(), workRhs, and workVec.
|
virtual |
destructor
Definition at line 169 of file spxsteeppr.h.
|
virtual |
n covectors have been added to loaded LP.
Reimplemented from SPxPricer< R >.
|
virtual |
n vectors have been added to loaded LP.
Reimplemented from SPxPricer< R >.
|
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 >.
|
virtual |
clone function for polymorphism
Implements SPxPricer< R >.
Reimplemented in SPxSteepExPR< R >, and SPxSteepExPR< BP >.
Definition at line 172 of file spxsteeppr.h.
References SPxPricer< R >::SPxPricer(), and SPxSteepPR().
|
virtual |
Reimplemented from SPxPricer< R >.
|
virtual |
Reimplemented from SPxPricer< R >.
Referenced by SPxSteepExPR< R >::operator=(), operator=(), SPxSteepExPR< R >::SPxSteepExPR(), SPxSteepExPR< R >::SPxSteepExPR(), SPxSteepPR(), and SPxSteepPR().
|
virtual |
Reimplemented from SPxPricer< R >.
|
virtual |
sets the solver
Reimplemented from SPxPricer< R >.
| SPxSteepPR & operator= | ( | const SPxSteepPR< R > & | rhs | ) |
assignment operator
Definition at line 152 of file spxsteeppr.h.
References isConsistent(), SPxPricer< R >::operator=(), pi_p, refined, setup, SPxSteepPR(), workRhs, and workVec.
Referenced by SPxSteepExPR< R >::operator=().
|
virtual |
the i'th covector has been removed from the loaded LP.
Reimplemented from SPxPricer< R >.
|
virtual |
n covectors have been removed from loaded LP.
|
virtual |
the i'th vector has been removed from the loaded LP.
Reimplemented from SPxPricer< R >.
|
virtual |
n vectors have been removed from loaded LP.
|
virtual |
Implements SPxPricer< R >.
|
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 >.
|
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 >.
|
virtual |
set entering/leaving algorithm
Reimplemented from SPxPricer< R >.
| void setupWeights | ( | typename SPxSolverBase< R >::Type | type | ) |
setup steepest edge weights
|
private |
array of best pricing candidates
Definition at line 86 of file spxsteeppr.h.
|
private |
array of best pricing candidates
Definition at line 88 of file spxsteeppr.h.
|
private |
Definition at line 90 of file spxsteeppr.h.
Referenced by operator=(), SPxSteepPR(), and SPxSteepPR().
temporary array of precomputed pricing values
Definition at line 82 of file spxsteeppr.h.
temporary array of precomputed pricing values
Definition at line 84 of file spxsteeppr.h.
|
private |
has a refinement step already been tried?
Definition at line 94 of file spxsteeppr.h.
Referenced by operator=(), SPxSteepPR(), and SPxSteepPR().
|
private |
setup type.
Definition at line 92 of file spxsteeppr.h.
Referenced by operator=(), SPxSteepPR(), and SPxSteepPR().
|
private |
working vector
Definition at line 80 of file spxsteeppr.h.
Referenced by operator=(), SPxSteepPR(), and SPxSteepPR().
|
private |
working vector
Definition at line 78 of file spxsteeppr.h.
Referenced by operator=(), SPxSteepPR(), and SPxSteepPR().