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

Harris pricing with shifting. More...

#include <spxharrisrt.h>

Inheritance diagram for SPxHarrisRT< R >:
SPxRatioTester< R >

Public Member Functions

Construction / destruction
 SPxHarrisRT ()
 default constructor
 
 SPxHarrisRT (const SPxHarrisRT &old)
 copy constructor
 
SPxHarrisRToperator= (const SPxHarrisRT &rhs)
 assignment operator
 
virtual ~SPxHarrisRT ()
 destructor
 
virtual SPxRatioTester< R > * clone () const
 clone function for polymorphism
 
Leave / enter
virtual int selectLeave (R &val, R, bool)
 
virtual SPxId selectEnter (R &val, int, bool)
 
- Public Member Functions inherited from SPxRatioTester< R >
virtual const char * getName () const
 get name of ratio tester.
 
virtual void load (SPxSolverBase< R > *p_solver)
 loads LP.
 
virtual void clear ()
 unloads LP.
 
virtual SPxSolverBase< R > * solver () const
 returns loaded LP solver.
 
virtual void setDelta (R newDelta)
 set allowed bound violation
 
virtual R getDelta ()
 get allowed bound violation
 
virtual void setTolerances (std::shared_ptr< Tolerances > newTolerances)
 set the _tolerances member variable
 
const std::shared_ptr< Tolerancestolerances () const
 get the _tolerances member variable
 
virtual void setType (typename SPxSolverBase< R >::Type)
 sets Simplex type.
 
 SPxRatioTester (const char *name)
 default constructor
 
 SPxRatioTester (const SPxRatioTester &old)
 copy constructor
 
SPxRatioTesteroperator= (const SPxRatioTester &rhs)
 assignment operator
 
virtual ~SPxRatioTester ()
 destructor.
 

Private Member Functions

Private helpers
degenerateEps () const
 
int maxDelta (R *, R *val, int num, const int *idx, const R *upd, const R *vec, const R *low, const R *up) const
 
int minDelta (R *, R *val, int num, const int *idx, const R *upd, const R *vec, const R *low, const R *up) const
 

Additional Inherited Members

- Protected Attributes inherited from SPxRatioTester< R >
SPxSolverBase< R > * thesolver
 the solver
 
const char * m_name
 name of the ratio tester
 
SPxSolverBase< R >::Type m_type
 internal storage of type
 
delta
 allowed bound violation
 
std::shared_ptr< Tolerances_tolerances
 tolerances used by the solver
 

Detailed Description

template<class R>
class soplex::SPxHarrisRT< R >

Harris pricing with shifting.

Class SPxHarrisRT is a stable implementation of a SPxRatioTester class along the lines of Harris' two phase algorithm. Additionally it uses shifting of bounds in order to avoid cycling.

See SPxRatioTester for a class documentation.

Todo
HarrisRT leads to cycling in dcmulti.sub.lp

Definition at line 50 of file spxharrisrt.h.

Constructor & Destructor Documentation

◆ SPxHarrisRT() [1/2]

template<class R >
SPxHarrisRT ( )

default constructor

Definition at line 91 of file spxharrisrt.h.

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

◆ SPxHarrisRT() [2/2]

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

copy constructor

Definition at line 95 of file spxharrisrt.h.

◆ ~SPxHarrisRT()

template<class R >
virtual ~SPxHarrisRT ( )
virtual

destructor

Definition at line 109 of file spxharrisrt.h.

Member Function Documentation

◆ clone()

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

clone function for polymorphism

Implements SPxRatioTester< R >.

Definition at line 112 of file spxharrisrt.h.

References SPxHarrisRT< R >::SPxHarrisRT().

◆ degenerateEps()

template<class R >
R degenerateEps ( ) const
private

◆ maxDelta()

template<class R >
int maxDelta ( R * ,
R * val,
int num,
const int * idx,
const R * upd,
const R * vec,
const R * low,
const R * up ) const
private
Parameters
valinitial and chosen value
numnumber of indices in idx
idxnonzero indices in upd
updupdate VectorBase<R> for vec
veccurrent vector
lowlower bounds for vec
upupper bounds for vec

◆ minDelta()

template<class R >
int minDelta ( R * ,
R * val,
int num,
const int * idx,
const R * upd,
const R * vec,
const R * low,
const R * up ) const
private
Parameters
valinitial and chosen value
numof indices in idx
idxnonzero indices in upd
updupdate VectorBase<R> for vec
veccurrent vector
lowlower bounds for vec
upupper bounds for vec

◆ operator=()

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

assignment operator

Definition at line 99 of file spxharrisrt.h.

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

◆ selectEnter()

template<class R >
virtual SPxId selectEnter ( R & val,
int ,
bool  )
virtual

Implements SPxRatioTester< R >.

◆ selectLeave()

template<class R >
virtual int selectLeave ( R & val,
R ,
bool  )
virtual

Implements SPxRatioTester< R >.