SoPlex Documentation
Loading...
Searching...
No Matches
SPxHybridPR< R > Class Template Reference

Hybrid pricer. More...

#include <spxhybridpr.h>

Inheritance diagram for SPxHybridPR< R >:
SPxPricer< R >

Public Member Functions

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

Private Attributes

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

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
 
SPxSolverBase< R > * thesolver
 the solver
 
thetolerance
 violation bound
 
std::shared_ptr< Tolerances_tolerances
 tolerances used by the solver
 

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]

template<class R >
SPxHybridPR ( )

default constructor

Definition at line 110 of file spxhybridpr.h.

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

◆ SPxHybridPR() [2/2]

template<class R >
SPxHybridPR ( const SPxHybridPR< R > & old)

◆ ~SPxHybridPR()

template<class R >
virtual ~SPxHybridPR ( )
virtual

destructor

Definition at line 172 of file spxhybridpr.h.

Member Function Documentation

◆ addedCoVecs()

template<class R >
virtual void addedCoVecs ( int n)
virtual

calls addedCoVecs(n) on all pricers

Reimplemented from SPxPricer< R >.

◆ addedVecs()

template<class R >
virtual void addedVecs ( int n)
virtual

calls addedVecs(n) on all pricers

Reimplemented from SPxPricer< R >.

◆ clear()

template<class R >
virtual void clear ( )
virtual

clears all pricers and unselects the current pricer

Reimplemented from SPxPricer< R >.

◆ clone()

template<class R >
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()

template<class R >
virtual void entered4 ( SPxId id,
int n )
virtual

calls entered4 on the current pricer

Reimplemented from SPxPricer< R >.

◆ isConsistent()

template<class R >
virtual bool isConsistent ( ) const
virtual

consistency check

Reimplemented from SPxPricer< R >.

◆ left4()

template<class R >
virtual void left4 ( int n,
SPxId id )
virtual

calls left4 on the current pricer

Reimplemented from SPxPricer< R >.

◆ load()

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

sets the solver

Reimplemented from SPxPricer< R >.

◆ operator=()

template<class R >
SPxHybridPR & operator= ( const SPxHybridPR< R > & rhs)

◆ selectEnter()

template<class R >
virtual SPxId selectEnter ( )
virtual

selects the entering algorithm

Implements SPxPricer< R >.

◆ selectLeave()

template<class R >
virtual int selectLeave ( )
virtual

selects the leaving algorithm

Implements SPxPricer< R >.

◆ setPricingTolerance()

template<class R >
virtual void setPricingTolerance ( R tol)
virtual

sets the epsilon

Reimplemented from SPxPricer< R >.

◆ setRep()

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

sets row or column representation

Reimplemented from SPxPricer< R >.

◆ setType()

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

sets entering or leaving algorithm

Reimplemented from SPxPricer< R >.

Member Data Documentation

◆ devex

template<class R >
SPxDevexPR<R> devex
private

devex pricer

Definition at line 63 of file spxhybridpr.h.

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

◆ hybridFactor

template<class R >
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

template<class R >
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

template<class R >
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

template<class R >
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().