Clp trunk
Public Types
ClpDualRowSteepest Class Reference

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

#include <ClpDualRowSteepest.hpp>

Inheritance diagram for ClpDualRowSteepest:
Collaboration diagram for ClpDualRowSteepest:

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 *spare2, 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.
virtual void maximumPivotsChanged ()
 Called when maximum pivots changes.
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.
void fill (const ClpDualRowSteepest &rhs)
 Fill most values.
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

Detailed Description

Dual Row Pivot Steepest Edge Algorithm Class.

See Forrest-Goldfarb paper for algorithm

Definition at line 21 of file ClpDualRowSteepest.hpp.


Member Enumeration Documentation

enums for persistence

Enumerator:
normal 
keep 

Definition at line 69 of file ClpDualRowSteepest.hpp.


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 *  spare2,
CoinIndexedVector *  updatedColumn 
) [virtual]

Updates weights and returns pivot alpha.

Also does FT update

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.

virtual void ClpDualRowSteepest::maximumPivotsChanged ( ) [virtual]

Called when maximum pivots changes.

Reimplemented from ClpDualRowPivot.

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

Assignment operator.

void ClpDualRowSteepest::fill ( const ClpDualRowSteepest rhs)

Fill most values.

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

Clone.

Implements ClpDualRowPivot.

int ClpDualRowSteepest::mode ( ) const [inline]

Mode.

Definition at line 104 of file ClpDualRowSteepest.hpp.

void ClpDualRowSteepest::setPersistence ( Persistence  life) [inline]

Set/ get persistence.

Definition at line 108 of file ClpDualRowSteepest.hpp.

Persistence ClpDualRowSteepest::persistence ( ) const [inline]

Definition at line 111 of file ClpDualRowSteepest.hpp.


The documentation for this class was generated from the following file:
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Defines