Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members

ClpDualRowSteepest Class Reference

#include <ClpDualRowSteepest.hpp>

Inheritance diagram for ClpDualRowSteepest:

ClpDualRowPivot List of all members.

Public Types

enum  Persistence { normal = 0x00, keep = 0x01 }
 enums for persistence More...


Public Member Functions

Algorithmic methods
virtual int pivotRow ()
 Returns pivot row, -1 if none.

virtual double updateWeights (CoinIndexedVector *input, CoinIndexedVector *spare, CoinIndexedVector *updatedColumn)
 Updates weights and returns pivot alpha.

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.

virtual void saveWeights (ClpSimplex *model, int mode)
 Saves any weights round factorization as pivot rows may change Save model May also recompute infeasibility stuff 1) before factorization 2) after good factorization (if weights empty may initialize) 3) after something happened but no factorization (e.g.

virtual void unrollWeights ()
 Gets rid of last update.

virtual void clearArrays ()
 Gets rid of all arrays.

virtual bool looksOptimal () const
 Returns true if would not find any row.

Constructors and destructors
 ClpDualRowSteepest (int mode=3)
 Default Constructor 0 is uninitialized, 1 full, 2 is partial uninitialized, 3 starts as 2 but may switch to 1.

 ClpDualRowSteepest (const ClpDualRowSteepest &)
 Copy constructor.

ClpDualRowSteepestoperator= (const ClpDualRowSteepest &rhs)
 Assignment operator.

virtual ~ClpDualRowSteepest ()
 Destructor.

virtual ClpDualRowPivotclone (bool copyData=true) const
 Clone.

gets and sets
int mode () const
 Mode.

void setPersistence (Persistence life)
 Set/ get persistence.

Persistence persistence () const
 Mode.


Private Attributes

Private member data
int state_
 Status 0) Normal -1) Needs initialization 1) Weights are stored by sequence number.

int mode_
 If 0 then we are using uninitialized weights, 1 then full, if 2 then uninitialized partial, 3 switchable.

Persistence persistence_
 Life of weights.

double * weights_
 weight array

CoinIndexedVector * infeasible_
 square of infeasibility array (just for infeasible rows)

CoinIndexedVector * alternateWeights_
 alternate weight array (so we can unroll)

CoinIndexedVector * savedWeights_
 save weight array (so we can use checkpoint)

int * dubiousWeights_
 Dubious weights.


Member Enumeration Documentation

enum ClpDualRowSteepest::Persistence
 

enums for persistence

Enumeration values:
normal 
keep 

Definition at line 62 of file ClpDualRowSteepest.hpp.

Referenced by persistence().


Constructor & Destructor Documentation

ClpDualRowSteepest::ClpDualRowSteepest int  mode = 3  ) 
 

Default Constructor 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.

ClpDualRowSteepest::ClpDualRowSteepest const ClpDualRowSteepest  ) 
 

Copy constructor.

virtual ClpDualRowSteepest::~ClpDualRowSteepest  )  [virtual]
 

Destructor.


Member Function Documentation

virtual int ClpDualRowSteepest::pivotRow  )  [virtual]
 

Returns pivot row, -1 if none.

Implements ClpDualRowPivot.

virtual double ClpDualRowSteepest::updateWeights CoinIndexedVector *  input,
CoinIndexedVector *  spare,
CoinIndexedVector *  updatedColumn
[virtual]
 

Updates weights and returns pivot alpha.

Implements ClpDualRowPivot.

virtual void ClpDualRowSteepest::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.

Implements ClpDualRowPivot.

virtual void ClpDualRowSteepest::saveWeights ClpSimplex model,
int  mode
[virtual]
 

Saves any weights round factorization as pivot rows may change Save model May also recompute infeasibility stuff 1) before factorization 2) after good factorization (if weights empty may initialize) 3) after something happened but no factorization (e.g.

check for infeasible) 4) as 2 but restore weights from previous snapshot 5) for strong branching - initialize (uninitialized) , infeasibilities

Reimplemented from ClpDualRowPivot.

virtual void ClpDualRowSteepest::unrollWeights  )  [virtual]
 

Gets rid of last update.

Reimplemented from ClpDualRowPivot.

virtual void ClpDualRowSteepest::clearArrays  )  [virtual]
 

Gets rid of all arrays.

Reimplemented from ClpDualRowPivot.

virtual bool ClpDualRowSteepest::looksOptimal  )  const [virtual]
 

Returns true if would not find any row.

Reimplemented from ClpDualRowPivot.

ClpDualRowSteepest& ClpDualRowSteepest::operator= const ClpDualRowSteepest rhs  ) 
 

Assignment operator.

virtual ClpDualRowPivot* ClpDualRowSteepest::clone bool  copyData = true  )  const [virtual]
 

Clone.

Implements ClpDualRowPivot.

int ClpDualRowSteepest::mode  )  const [inline]
 

Mode.

Definition at line 94 of file ClpDualRowSteepest.hpp.

References mode_.

void ClpDualRowSteepest::setPersistence Persistence  life  )  [inline]
 

Set/ get persistence.

Definition at line 97 of file ClpDualRowSteepest.hpp.

References persistence_.

Persistence ClpDualRowSteepest::persistence  )  const [inline]
 

Mode.

Definition at line 99 of file ClpDualRowSteepest.hpp.

References Persistence, and persistence_.


Member Data Documentation

int ClpDualRowSteepest::state_ [private]
 

Status 0) Normal -1) Needs initialization 1) Weights are stored by sequence number.

Definition at line 112 of file ClpDualRowSteepest.hpp.

int ClpDualRowSteepest::mode_ [private]
 

If 0 then we are using uninitialized weights, 1 then full, if 2 then uninitialized partial, 3 switchable.

Definition at line 115 of file ClpDualRowSteepest.hpp.

Referenced by mode().

Persistence ClpDualRowSteepest::persistence_ [private]
 

Life of weights.

Definition at line 117 of file ClpDualRowSteepest.hpp.

Referenced by persistence(), and setPersistence().

double* ClpDualRowSteepest::weights_ [private]
 

weight array

Definition at line 119 of file ClpDualRowSteepest.hpp.

CoinIndexedVector* ClpDualRowSteepest::infeasible_ [private]
 

square of infeasibility array (just for infeasible rows)

Definition at line 121 of file ClpDualRowSteepest.hpp.

CoinIndexedVector* ClpDualRowSteepest::alternateWeights_ [private]
 

alternate weight array (so we can unroll)

Definition at line 123 of file ClpDualRowSteepest.hpp.

CoinIndexedVector* ClpDualRowSteepest::savedWeights_ [private]
 

save weight array (so we can use checkpoint)

Definition at line 125 of file ClpDualRowSteepest.hpp.

int* ClpDualRowSteepest::dubiousWeights_ [private]
 

Dubious weights.

Definition at line 127 of file ClpDualRowSteepest.hpp.


The documentation for this class was generated from the following file:
Generated on Fri Aug 6 11:42:58 2004 by doxygen 1.3.5