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