Scippy

SoPlex

Sequential object-oriented simPlex

SPxDantzigPR< R > Class Template Reference

Dantzig pricer.Class SPxDantzigPR is an implementation class of an SPxPricer implementing Dantzig's default pricing strategy, i.e., maximal/minimal reduced cost or maximally violated constraint. More...

#include <spxdantzigpr.h>

Public Member Functions

Constructors / destructors
 SPxDantzigPR ()
 default constructor More...
 
 SPxDantzigPR (const SPxDantzigPR &old)
 copy constructor More...
 
SPxDantzigPRoperator= (const SPxDantzigPR &rhs)
 assignment operator More...
 
virtual ~SPxDantzigPR ()
 destructor More...
 
virtual SPxPricer< R > * clone () const
 clone function for polymorphism More...
 
Select enter/leave
virtual int selectLeave ()
 
virtual SPxId selectEnter ()
 
- Public Member Functions inherited from SPxPricer< R >
virtual const char * getName () const
 get name of pricer. More...
 
virtual void load (SPxSolverBase< R > *p_solver)
 loads LP. More...
 
virtual void clear ()
 unloads LP. More...
 
virtual SPxSolverBase< R > * solver () const
 returns loaded SPxSolverBase object. More...
 
virtual R epsilon () const
 returns violation bound theeps. More...
 
virtual void setEpsilon (R eps)
 sets violation bound. More...
 
virtual void setType (typename SPxSolverBase< R >::Type)
 sets pricing type. More...
 
virtual void setRep (typename SPxSolverBase< R >::Representation)
 sets basis representation. More...
 
virtual void left4 (int, SPxId)
 performs leaving pivot. More...
 
virtual void entered4 (SPxId, int)
 performs entering pivot. More...
 
virtual void addedVecs (int)
 n vectors have been added to loaded LP. More...
 
virtual void addedCoVecs (int)
 n covectors have been added to loaded LP. 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...
 
virtual bool isConsistent () const
 
 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 Member Functions

int selectLeaveSparse ()
 
SPxId selectEnterX ()
 
SPxId selectEnterSparseDim (R &best, SPxId &id)
 
SPxId selectEnterSparseCoDim (R &best, SPxId &id)
 
SPxId selectEnterDenseDim (R &best, SPxId &id)
 
SPxId selectEnterDenseCoDim (R &best, SPxId &id)
 

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...
 
theeps
 violation bound More...
 

Detailed Description

template<class R>
class soplex::SPxDantzigPR< R >

Dantzig pricer.

Class SPxDantzigPR is an implementation class of an SPxPricer implementing Dantzig's default pricing strategy, i.e., maximal/minimal reduced cost or maximally violated constraint.

See SPxPricer for a class documentation.

Definition at line 39 of file spxdantzigpr.h.

Constructor & Destructor Documentation

◆ SPxDantzigPR() [1/2]

default constructor

Definition at line 60 of file spxdantzigpr.h.

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

◆ SPxDantzigPR() [2/2]

SPxDantzigPR ( const SPxDantzigPR< R > &  old)

copy constructor

Definition at line 64 of file spxdantzigpr.h.

◆ ~SPxDantzigPR()

virtual ~SPxDantzigPR ( )
virtual

destructor

Definition at line 78 of file spxdantzigpr.h.

Member Function Documentation

◆ clone()

virtual SPxPricer<R>* clone ( ) const
virtual

clone function for polymorphism

Implements SPxPricer< R >.

Definition at line 81 of file spxdantzigpr.h.

References SPxDantzigPR< R >::selectEnter(), SPxDantzigPR< R >::selectLeave(), and SPxDantzigPR< R >::SPxDantzigPR().

◆ operator=()

SPxDantzigPR& operator= ( const SPxDantzigPR< R > &  rhs)

assignment operator

Definition at line 68 of file spxdantzigpr.h.

References SPxPricer< R >::operator=().

◆ selectEnter()

virtual SPxId selectEnter ( )
virtual

Implements SPxPricer< R >.

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

◆ selectEnterDenseCoDim()

SPxId selectEnterDenseCoDim ( R &  best,
SPxId id 
)
private

selectEnter() in dense case

◆ selectEnterDenseDim()

SPxId selectEnterDenseDim ( R &  best,
SPxId id 
)
private

selectEnter() in dense case (slack variables)

◆ selectEnterSparseCoDim()

SPxId selectEnterSparseCoDim ( R &  best,
SPxId id 
)
private

sparse pricing method for entering Simplex

◆ selectEnterSparseDim()

SPxId selectEnterSparseDim ( R &  best,
SPxId id 
)
private

sparse pricing method for entering Simplex (slack variables)

◆ selectEnterX()

SPxId selectEnterX ( )
private

choose the best entering index among columns and rows but prefer sparsity

◆ selectLeave()

virtual int selectLeave ( )
virtual

Implements SPxPricer< R >.

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

◆ selectLeaveSparse()

int selectLeaveSparse ( )
private

sparse pricing method for leaving Simplex