Scippy

SoPlex

Sequential object-oriented simPlex

SPxHarrisRT< R > Class Template Reference

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. More...

#include <spxharrisrt.h>

Public Member Functions

Construction / destruction
 SPxHarrisRT ()
 default constructor More...
 
 SPxHarrisRT (const SPxHarrisRT &old)
 copy constructor More...
 
SPxHarrisRToperator= (const SPxHarrisRT &rhs)
 assignment operator More...
 
virtual ~SPxHarrisRT ()
 destructor More...
 
virtual SPxRatioTester< R > * clone () const
 clone function for polymorphism More...
 
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. More...
 
virtual void load (SPxSolverBase< R > *p_solver)
 loads LP. More...
 
virtual void clear ()
 unloads LP. More...
 
virtual SPxSolverBase< R > * solver () const
 returns loaded LP solver. More...
 
virtual void setDelta (R newDelta)
 set allowed bound violation More...
 
virtual R getDelta ()
 get allowed bound violation More...
 
virtual void setType (typename SPxSolverBase< R >::Type)
 sets Simplex type. More...
 
 SPxRatioTester (const char *name)
 default constructor More...
 
 SPxRatioTester (const SPxRatioTester &old)
 copy constructor More...
 
SPxRatioTesteroperator= (const SPxRatioTester &rhs)
 assignment operator More...
 
virtual ~SPxRatioTester ()
 destructor. More...
 

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, R epsilon) const
 
int minDelta (R *, R *val, int num, const int *idx, const R *upd, const R *vec, const R *low, const R *up, R epsilon) const
 

Additional Inherited Members

- Protected Attributes inherited from SPxRatioTester< R >
SPxSolverBase< R > * thesolver
 the solver More...
 
const char * m_name
 name of the ratio tester More...
 
SPxSolverBase< R >::Type m_type
 internal storage of type More...
 
delta
 allowed bound violation More...
 

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 41 of file spxharrisrt.h.

Constructor & Destructor Documentation

◆ SPxHarrisRT() [1/2]

default constructor

Definition at line 84 of file spxharrisrt.h.

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

◆ SPxHarrisRT() [2/2]

SPxHarrisRT ( const SPxHarrisRT< R > &  old)

copy constructor

Definition at line 88 of file spxharrisrt.h.

◆ ~SPxHarrisRT()

virtual ~SPxHarrisRT ( )
virtual

destructor

Definition at line 102 of file spxharrisrt.h.

Member Function Documentation

◆ clone()

virtual SPxRatioTester<R>* clone ( ) const
virtual

clone function for polymorphism

Implements SPxRatioTester< R >.

Definition at line 105 of file spxharrisrt.h.

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

◆ degenerateEps()

R degenerateEps ( ) const
private

◆ maxDelta()

int maxDelta ( R *  ,
R *  val,
int  num,
const int *  idx,
const R *  upd,
const R *  vec,
const R *  low,
const R *  up,
epsilon 
) 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
epsilonwhat is 0?

◆ minDelta()

int minDelta ( R *  ,
R *  val,
int  num,
const int *  idx,
const R *  upd,
const R *  vec,
const R *  low,
const R *  up,
epsilon 
) 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
epsilonwhat is 0?

◆ operator=()

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

assignment operator

Definition at line 92 of file spxharrisrt.h.

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

◆ selectEnter()

virtual SPxId selectEnter ( R &  val,
int  ,
bool   
)
virtual

Implements SPxRatioTester< R >.

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

◆ selectLeave()

virtual int selectLeave ( R &  val,
,
bool   
)
virtual

Implements SPxRatioTester< R >.

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