Scippy

SoPlex

Sequential object-oriented simPlex

SPxHybridPR< R > Class Template Reference

Hybrid pricer.The hybrid pricer for SoPlex tries to guess the best pricing strategy to use for pricing the loaded LP with the loaded algorithm type and basis representation. Currently it does so by switching between SPxSteepPR, SPxDevexPR and SPxParMultPR. More...

#include <spxhybridpr.h>

Public Member Functions

Access / modification
virtual void setPricingTolerance (R tol)
 sets the epsilon More...
 
virtual void load (SPxSolverBase< R > *solver)
 sets the solver More...
 
virtual void clear ()
 clears all pricers and unselects the current pricer More...
 
virtual void setType (typename SPxSolverBase< R >::Type tp)
 sets entering or leaving algorithm More...
 
virtual void setRep (typename SPxSolverBase< R >::Representation rep)
 sets row or column representation More...
 
virtual int selectLeave ()
 selects the leaving algorithm More...
 
virtual SPxId selectEnter ()
 selects the entering algorithm More...
 
virtual void left4 (int n, SPxId id)
 calls left4 on the current pricer More...
 
virtual void entered4 (SPxId id, int n)
 calls entered4 on the current pricer More...
 
virtual void addedVecs (int n)
 calls addedVecs(n) on all pricers More...
 
virtual void addedCoVecs (int n)
 calls addedCoVecs(n) on all pricers More...
 
Consistency check
virtual bool isConsistent () const
 consistency check More...
 
Construction / destruction
 SPxHybridPR ()
 default constructor More...
 
 SPxHybridPR (const SPxHybridPR &old)
 copy constructor More...
 
SPxHybridPRoperator= (const SPxHybridPR &rhs)
 assignment operator More...
 
virtual ~SPxHybridPR ()
 destructor More...
 
virtual SPxPricer< R > * clone () const
 clone function for polymorphism More...
 
- 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 pricingTolerance () const
 returns the pricing tolerance More...
 
virtual void setTolerances (std::shared_ptr< Tolerances > newTolerances)
 set the _tolerances member variable More...
 
virtual void removedVec (int)
 vector i was removed from loaded LP. More...
 
virtual void removedVecs (const int *)
 vectors given by perm have been removed from loaded LP. More...
 
virtual void removedCoVec (int)
 covector i was 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...
 
SPxPriceroperator= (const SPxPricer &rhs)
 assignment operator More...
 
virtual ~SPxPricer ()
 destructor. More...
 

Private Attributes

Data
SPxSteepPR< R > steep
 steepest edge pricer More...
 
SPxParMultPR< R > parmult
 partial multiple pricer More...
 
SPxDevexPR< R > devex
 devex pricer More...
 
SPxPricer< R > * thepricer
 the currently used pricer More...
 
hybridFactor
 factor between dim and coDim of the problem to decide about the pricer More...
 

Additional Inherited Members

- Public Types inherited from SPxPricer< R >
enum  ViolationType { NOT_VIOLATED = 0, VIOLATED = 1, VIOLATED_AND_CHECKED = 2 }
 
- Protected Attributes inherited from SPxPricer< R >
IdxCompare compare
 
const char * m_name
 name of the pricer More...
 
SPxSolverBase< R > * thesolver
 the solver More...
 
thetolerance
 violation bound More...
 
std::shared_ptr< Tolerances_tolerances
 tolerances used by the solver More...
 

Detailed Description

template<class R>
class soplex::SPxHybridPR< R >

Hybrid pricer.

The hybrid pricer for SoPlex tries to guess the best pricing strategy to use for pricing the loaded LP with the loaded algorithm type and basis representation. Currently it does so by switching between SPxSteepPR, SPxDevexPR and SPxParMultPR.

See SPxPricer for a class documentation.

Definition at line 53 of file spxhybridpr.h.

Constructor & Destructor Documentation

◆ SPxHybridPR() [1/2]

default constructor

Definition at line 110 of file spxhybridpr.h.

Referenced by SPxHybridPR< R >::clone().

◆ SPxHybridPR() [2/2]

SPxHybridPR ( const SPxHybridPR< R > &  old)

◆ ~SPxHybridPR()

virtual ~SPxHybridPR ( )
virtual

destructor

Definition at line 172 of file spxhybridpr.h.

Member Function Documentation

◆ addedCoVecs()

virtual void addedCoVecs ( int  n)
virtual

calls addedCoVecs(n) on all pricers

Reimplemented from SPxPricer< R >.

◆ addedVecs()

virtual void addedVecs ( int  n)
virtual

calls addedVecs(n) on all pricers

Reimplemented from SPxPricer< R >.

◆ clear()

virtual void clear ( )
virtual

clears all pricers and unselects the current pricer

Reimplemented from SPxPricer< R >.

◆ clone()

virtual SPxPricer<R>* clone ( ) const
virtual

clone function for polymorphism

Implements SPxPricer< R >.

Definition at line 175 of file spxhybridpr.h.

References SPxHybridPR< R >::SPxHybridPR().

◆ entered4()

virtual void entered4 ( SPxId  id,
int  n 
)
virtual

calls entered4 on the current pricer

Reimplemented from SPxPricer< R >.

◆ isConsistent()

virtual bool isConsistent ( ) const
virtual

consistency check

Reimplemented from SPxPricer< R >.

◆ left4()

virtual void left4 ( int  n,
SPxId  id 
)
virtual

calls left4 on the current pricer

Reimplemented from SPxPricer< R >.

◆ load()

virtual void load ( SPxSolverBase< R > *  solver)
virtual

sets the solver

Reimplemented from SPxPricer< R >.

◆ operator=()

◆ selectEnter()

virtual SPxId selectEnter ( )
virtual

selects the entering algorithm

Implements SPxPricer< R >.

◆ selectLeave()

virtual int selectLeave ( )
virtual

selects the leaving algorithm

Implements SPxPricer< R >.

◆ setPricingTolerance()

virtual void setPricingTolerance ( tol)
virtual

sets the epsilon

Reimplemented from SPxPricer< R >.

◆ setRep()

virtual void setRep ( typename SPxSolverBase< R >::Representation  rep)
virtual

sets row or column representation

Reimplemented from SPxPricer< R >.

◆ setType()

virtual void setType ( typename SPxSolverBase< R >::Type  tp)
virtual

sets entering or leaving algorithm

Reimplemented from SPxPricer< R >.

Member Data Documentation

◆ devex

SPxDevexPR<R> devex
private

devex pricer

Definition at line 63 of file spxhybridpr.h.

Referenced by SPxHybridPR< R >::operator=(), and SPxHybridPR< R >::SPxHybridPR().

◆ hybridFactor

R hybridFactor
private

factor between dim and coDim of the problem to decide about the pricer

Definition at line 67 of file spxhybridpr.h.

Referenced by SPxHybridPR< R >::operator=().

◆ parmult

SPxParMultPR<R> parmult
private

partial multiple pricer

Definition at line 61 of file spxhybridpr.h.

Referenced by SPxHybridPR< R >::operator=(), and SPxHybridPR< R >::SPxHybridPR().

◆ steep

SPxSteepPR<R> steep
private

steepest edge pricer

Definition at line 59 of file spxhybridpr.h.

Referenced by SPxHybridPR< R >::operator=(), and SPxHybridPR< R >::SPxHybridPR().

◆ thepricer

SPxPricer<R>* thepricer
private

the currently used pricer

Definition at line 65 of file spxhybridpr.h.

Referenced by SPxHybridPR< R >::operator=(), and SPxHybridPR< R >::SPxHybridPR().