Clp  1.17.3
Public Member Functions | List of all members
ClpPEDualRowSteepest Class Reference

Dual Row Pivot Steepest Edge Algorithm Class. More...

#include <ClpPEDualRowSteepest.hpp>

+ Inheritance diagram for ClpPEDualRowSteepest:
+ Collaboration diagram for ClpPEDualRowSteepest:

Public Member Functions

 ClpPEDualRowSteepest (double psi=0.5, int mode=3)
 Default Constructor mode: 0 is uninitialized, 1 full, 2 is partial uninitialized, 3 starts as 2 but may switch to 1. More...
 
 ClpPEDualRowSteepest (const ClpPEDualRowSteepest &)
 Copy constructor. More...
 
ClpPEDualRowSteepestoperator= (const ClpPEDualRowSteepest &rhs)
 Assignment operator. More...
 
virtual ~ClpPEDualRowSteepest ()
 Destructor. More...
 
virtual ClpDualRowPivotclone (bool copyData=true) const
 Clone. More...
 
double psi () const
 
Algorithmic methods
virtual int pivotRow ()
 Returns pivot row, -1 if none. More...
 
virtual void saveWeights (ClpSimplex *model, int mode)
 Save weights - this may initialize weights as well This is as parent but may initialize ClpPESimplex. More...
 
virtual void updatePrimalSolution (CoinIndexedVector *input, double theta, double &changeInObjective)
 Updates primal solution (and maybe list of candidates) Uses input vector which it deletes Computes change in objective function As ordinary steepest but checks for zero moves. More...
 
- Public Member Functions inherited from ClpDualRowSteepest
virtual double updateWeights (CoinIndexedVector *input, CoinIndexedVector *spare, CoinIndexedVector *spare2, CoinIndexedVector *updatedColumn)
 Updates weights and returns pivot alpha. More...
 
void passInSavedWeights (const CoinIndexedVector *saved)
 Pass in saved weights. More...
 
CoinIndexedVectorsavedWeights ()
 Get saved weights. More...
 
virtual void unrollWeights ()
 Gets rid of last update. More...
 
virtual void clearArrays ()
 Gets rid of all arrays. More...
 
virtual bool looksOptimal () const
 Returns true if would not find any row. More...
 
virtual void maximumPivotsChanged ()
 Called when maximum pivots changes. More...
 
 ClpDualRowSteepest (int mode=3)
 Default Constructor 0 is uninitialized, 1 full, 2 is partial uninitialized, 3 starts as 2 but may switch to 1. More...
 
 ClpDualRowSteepest (const ClpDualRowSteepest &)
 Copy constructor. More...
 
ClpDualRowSteepestoperator= (const ClpDualRowSteepest &rhs)
 Assignment operator. More...
 
void fill (const ClpDualRowSteepest &rhs)
 Fill most values. More...
 
virtual ~ClpDualRowSteepest ()
 Destructor. More...
 
int mode () const
 Mode. More...
 
void setMode (int mode)
 Set mode. More...
 
void setPersistence (Persistence life)
 Set/ get persistence. More...
 
Persistence persistence () const
 
- Public Member Functions inherited from ClpDualRowPivot
virtual void checkAccuracy ()
 checks accuracy and may re-initialize (may be empty) More...
 
 ClpDualRowPivot ()
 Default Constructor. More...
 
 ClpDualRowPivot (const ClpDualRowPivot &)
 Copy constructor. More...
 
ClpDualRowPivotoperator= (const ClpDualRowPivot &rhs)
 Assignment operator. More...
 
virtual ~ClpDualRowPivot ()
 Destructor. More...
 
ClpSimplexmodel ()
 Returns model. More...
 
void setModel (ClpSimplex *newmodel)
 Sets model (normally to NULL) More...
 
int type ()
 Returns type (above 63 is extra information) More...
 

Additional Inherited Members

- Public Types inherited from ClpDualRowSteepest
enum  Persistence { normal = 0x00, keep = 0x01 }
 enums for persistence More...
 
- Protected Attributes inherited from ClpDualRowSteepest
int state_
 Status 0) Normal -1) Needs initialization 1) Weights are stored by sequence number. More...
 
int mode_
 If 0 then we are using uninitialized weights, 1 then full, if 2 then uninitialized partial, 3 switchable. More...
 
Persistence persistence_
 Life of weights. More...
 
double * weights_
 weight array More...
 
CoinIndexedVectorinfeasible_
 square of infeasibility array (just for infeasible rows) More...
 
CoinIndexedVectoralternateWeights_
 alternate weight array (so we can unroll) More...
 
CoinIndexedVectorsavedWeights_
 save weight array (so we can use checkpoint) More...
 
int * dubiousWeights_
 Dubious weights. More...
 
- Protected Attributes inherited from ClpDualRowPivot
ClpSimplexmodel_
 Pointer to model. More...
 
int type_
 Type of row pivot algorithm. More...
 

Detailed Description

Dual Row Pivot Steepest Edge Algorithm Class.

See Forrest-Goldfarb paper for algorithm

Definition at line 27 of file ClpPEDualRowSteepest.hpp.

Constructor & Destructor Documentation

◆ ClpPEDualRowSteepest() [1/2]

ClpPEDualRowSteepest::ClpPEDualRowSteepest ( double  psi = 0.5,
int  mode = 3 
)

Default Constructor mode: 0 is uninitialized, 1 full, 2 is partial uninitialized, 3 starts as 2 but may switch to 1.

By partial is meant that the weights are updated as normal but only part of the infeasible basic variables are scanned. This can be faster on very easy problems.

◆ ClpPEDualRowSteepest() [2/2]

ClpPEDualRowSteepest::ClpPEDualRowSteepest ( const ClpPEDualRowSteepest )

Copy constructor.

◆ ~ClpPEDualRowSteepest()

virtual ClpPEDualRowSteepest::~ClpPEDualRowSteepest ( )
virtual

Destructor.

Member Function Documentation

◆ operator=()

ClpPEDualRowSteepest& ClpPEDualRowSteepest::operator= ( const ClpPEDualRowSteepest rhs)

Assignment operator.

◆ clone()

virtual ClpDualRowPivot* ClpPEDualRowSteepest::clone ( bool  copyData = true) const
virtual

Clone.

Reimplemented from ClpDualRowSteepest.

◆ pivotRow()

virtual int ClpPEDualRowSteepest::pivotRow ( )
virtual

Returns pivot row, -1 if none.

Reimplemented from ClpDualRowSteepest.

◆ saveWeights()

virtual void ClpPEDualRowSteepest::saveWeights ( ClpSimplex model,
int  mode 
)
virtual

Save weights - this may initialize weights as well This is as parent but may initialize ClpPESimplex.

Reimplemented from ClpDualRowSteepest.

◆ updatePrimalSolution()

virtual void ClpPEDualRowSteepest::updatePrimalSolution ( CoinIndexedVector input,
double  theta,
double &  changeInObjective 
)
virtual

Updates primal solution (and maybe list of candidates) Uses input vector which it deletes Computes change in objective function As ordinary steepest but checks for zero moves.

Reimplemented from ClpDualRowSteepest.

◆ psi()

double ClpPEDualRowSteepest::psi ( ) const
inline

Definition at line 73 of file ClpPEDualRowSteepest.hpp.


The documentation for this class was generated from the following file: