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

Partial multiple pricing. More...

#include <spxparmultpr.h>

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

Classes

struct  SPxParMultPr_Tmp
 Helper structure. More...

Public Member Functions

Construction / destruction
 SPxParMultPR ()
 default constructor
 SPxParMultPR (const SPxParMultPR &old)
 copy constructor
SPxParMultPRoperator= (const SPxParMultPR &rhs)
 assignment operator
virtual ~SPxParMultPR ()
 destructor
virtual SPxPricer< R > * clone () const
 clone function for polymorphism
Interface
virtual void load (SPxSolverBase< R > *solver)
 set the solver
virtual void setType (typename SPxSolverBase< R >::Type tp)
 set entering or leaving algorithm
virtual int selectLeave ()
virtual SPxId selectEnter ()
Public Member Functions inherited from SPxPricer< R >
virtual const char * getName () const
 get name of pricer.
virtual void clear ()
 unloads LP.
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 setRep (typename SPxSolverBase< R >::Representation)
 sets basis representation.
virtual void left4 (int, SPxId)
 performs leaving pivot.
virtual void entered4 (SPxId, int)
 performs entering pivot.
virtual void addedVecs (int)
 n vectors have been added to loaded LP.
virtual void addedCoVecs (int)
 n covectors have been added to loaded LP.
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.
virtual bool isConsistent () const
 SPxPricer (const char *p_name)
 constructor
 SPxPricer (const SPxPricer &old)
 copy constructor
SPxPriceroperator= (const SPxPricer &rhs)
 assignment operator
virtual ~SPxPricer ()
 destructor.

Private Attributes

Helper data
Array< SPxParMultPr_TmppricSet
int multiParts
int used
int min
int last
int partialSize
 Set size for partial pricing.

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::SPxParMultPR< R >

Partial multiple pricing.

Class SPxParMultPr is an implementation class for SPxPricer implementing Dantzig's default pricing strategy with partial multiple pricing. Partial multiple pricing applies to the entering Simplex only. A set of partialSize eligible pivot indices is selected (partial pricing). In the following Simplex iterations pricing is restricted to these indices (multiple pricing) until no more eliiable pivots are available. Partial multiple pricing significantly reduces the computation time for computing the matrix-vector-product in the Simplex algorithm.

See SPxPricer for a class documentation.

Definition at line 57 of file spxparmultpr.h.

Constructor & Destructor Documentation

◆ SPxParMultPR() [1/2]

template<class R>
SPxParMultPR ( )

default constructor

Definition at line 97 of file spxparmultpr.h.

References last, min, multiParts, partialSize, SPxPricer< R >::SPxPricer(), and used.

Referenced by clone(), operator=(), and SPxParMultPR().

◆ SPxParMultPR() [2/2]

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

copy constructor

Definition at line 106 of file spxparmultpr.h.

References last, min, multiParts, partialSize, pricSet, SPxParMultPR(), SPxPricer< R >::SPxPricer(), and used.

◆ ~SPxParMultPR()

template<class R>
virtual ~SPxParMultPR ( )
virtual

destructor

Definition at line 132 of file spxparmultpr.h.

Member Function Documentation

◆ clone()

template<class R>
virtual SPxPricer< R > * clone ( ) const
virtual

clone function for polymorphism

Implements SPxPricer< R >.

Definition at line 135 of file spxparmultpr.h.

References SPxParMultPR(), and SPxPricer< R >::SPxPricer().

◆ load()

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

set the solver

Reimplemented from SPxPricer< R >.

References SPxPricer< R >::solver().

◆ operator=()

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

assignment operator

Definition at line 116 of file spxparmultpr.h.

References last, min, multiParts, SPxPricer< R >::operator=(), partialSize, pricSet, SPxParMultPR(), and used.

◆ selectEnter()

template<class R>
virtual SPxId selectEnter ( )
virtual

Implements SPxPricer< R >.

◆ selectLeave()

template<class R>
virtual int selectLeave ( )
virtual

Implements SPxPricer< R >.

◆ setType()

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

set entering or leaving algorithm

Reimplemented from SPxPricer< R >.

Member Data Documentation

◆ last

template<class R>
int last
private

Definition at line 86 of file spxparmultpr.h.

Referenced by operator=(), SPxParMultPR(), and SPxParMultPR().

◆ min

template<class R>
int min
private

Definition at line 84 of file spxparmultpr.h.

Referenced by operator=(), SPxParMultPR(), and SPxParMultPR().

◆ multiParts

template<class R>
int multiParts
private

Definition at line 80 of file spxparmultpr.h.

Referenced by operator=(), SPxParMultPR(), and SPxParMultPR().

◆ partialSize

template<class R>
int partialSize
private

Set size for partial pricing.

Definition at line 88 of file spxparmultpr.h.

Referenced by operator=(), SPxParMultPR(), and SPxParMultPR().

◆ pricSet

template<class R>
Array< SPxParMultPr_Tmp > pricSet
private

Definition at line 78 of file spxparmultpr.h.

Referenced by operator=(), and SPxParMultPR().

◆ used

template<class R>
int used
private

Definition at line 82 of file spxparmultpr.h.

Referenced by operator=(), SPxParMultPR(), and SPxParMultPR().