Clp  trunk
Public Types
AbcDualRowSteepest Class Reference

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

#include <AbcDualRowSteepest.hpp>

+ Inheritance diagram for AbcDualRowSteepest:
+ Collaboration diagram for AbcDualRowSteepest:

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 &updatedColumn)
 Updates weights and returns pivot alpha.
virtual double updateWeights1 (CoinIndexedVector &input, CoinIndexedVector &updateColumn)
 Does most of work for weights and returns pivot alpha.
virtual void updateWeightsOnly (CoinIndexedVector &input)
virtual void updateWeights2 (CoinIndexedVector &input, CoinIndexedVector &updateColumn)
 Actually updates weights.
virtual void updatePrimalSolution (CoinIndexedVector &input, double theta)
 Updates primal solution (and maybe list of candidates) Uses input vector which it deletes.
virtual void updatePrimalSolutionAndWeights (CoinIndexedVector &weightsVector, CoinIndexedVector &updateColumn, double theta)
virtual void saveWeights (AbcSimplex *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 recomputeInfeasibilities ()
 Recompute infeasibilities.
virtual void clearArrays ()
 Gets rid of all arrays.
virtual bool looksOptimal () const
 Returns true if would not find any row.
Constructors and destructors
 AbcDualRowSteepest (int mode=3)
 Default Constructor 0 is uninitialized, 1 full, 2 is partial uninitialized, 3 starts as 2 but may switch to 1.
 AbcDualRowSteepest (const AbcDualRowSteepest &)
 Copy constructor.
AbcDualRowSteepestoperator= (const AbcDualRowSteepest &rhs)
 Assignment operator.
void fill (const AbcDualRowSteepest &rhs)
 Fill most values.
virtual ~AbcDualRowSteepest ()
 Destructor.
virtual AbcDualRowPivotclone (bool copyData=true) const
 Clone.
gets and sets
int mode () const
 Mode.
void setPersistence (Persistence life)
 Set/ get persistence.
Persistence persistence () const
CoinIndexedVector * infeasible () const
 Infeasible vector.
CoinIndexedVector * weights () const
 Weights vector.
AbcSimplexmodel () const
 Model.

Detailed Description

Dual Row Pivot Steepest Edge Algorithm Class.

See Forrest-Goldfarb paper for algorithm

Definition at line 21 of file AbcDualRowSteepest.hpp.


Member Enumeration Documentation

enums for persistence

Enumerator:
normal 
keep 

Definition at line 69 of file AbcDualRowSteepest.hpp.


Constructor & Destructor Documentation

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.

Copy constructor.

Destructor.


Member Function Documentation

virtual int AbcDualRowSteepest::pivotRow ( ) [virtual]

Returns pivot row, -1 if none.

Implements AbcDualRowPivot.

virtual double AbcDualRowSteepest::updateWeights ( CoinIndexedVector &  input,
CoinIndexedVector &  updatedColumn 
) [virtual]

Updates weights and returns pivot alpha.

Also does FT update

Implements AbcDualRowPivot.

virtual double AbcDualRowSteepest::updateWeights1 ( CoinIndexedVector &  input,
CoinIndexedVector &  updateColumn 
) [virtual]

Does most of work for weights and returns pivot alpha.

Also does FT update

Implements AbcDualRowPivot.

virtual void AbcDualRowSteepest::updateWeightsOnly ( CoinIndexedVector &  input) [virtual]

Implements AbcDualRowPivot.

virtual void AbcDualRowSteepest::updateWeights2 ( CoinIndexedVector &  input,
CoinIndexedVector &  updateColumn 
) [virtual]

Actually updates weights.

Implements AbcDualRowPivot.

virtual void AbcDualRowSteepest::updatePrimalSolution ( CoinIndexedVector &  input,
double  theta 
) [virtual]

Updates primal solution (and maybe list of candidates) Uses input vector which it deletes.

Implements AbcDualRowPivot.

virtual void AbcDualRowSteepest::updatePrimalSolutionAndWeights ( CoinIndexedVector &  weightsVector,
CoinIndexedVector &  updateColumn,
double  theta 
) [virtual]

Reimplemented from AbcDualRowPivot.

virtual void AbcDualRowSteepest::saveWeights ( AbcSimplex 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 AbcDualRowPivot.

Recompute infeasibilities.

Reimplemented from AbcDualRowPivot.

virtual void AbcDualRowSteepest::clearArrays ( ) [virtual]

Gets rid of all arrays.

Reimplemented from AbcDualRowPivot.

virtual bool AbcDualRowSteepest::looksOptimal ( ) const [virtual]

Returns true if would not find any row.

Reimplemented from AbcDualRowPivot.

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

Assignment operator.

Fill most values.

virtual AbcDualRowPivot* AbcDualRowSteepest::clone ( bool  copyData = true) const [virtual]

Clone.

Implements AbcDualRowPivot.

int AbcDualRowSteepest::mode ( ) const [inline]

Mode.

Definition at line 104 of file AbcDualRowSteepest.hpp.

Set/ get persistence.

Definition at line 108 of file AbcDualRowSteepest.hpp.

Definition at line 111 of file AbcDualRowSteepest.hpp.

CoinIndexedVector* AbcDualRowSteepest::infeasible ( ) const [inline]

Infeasible vector.

Definition at line 115 of file AbcDualRowSteepest.hpp.

CoinIndexedVector* AbcDualRowSteepest::weights ( ) const [inline]

Weights vector.

Definition at line 118 of file AbcDualRowSteepest.hpp.

Model.

Definition at line 121 of file AbcDualRowSteepest.hpp.


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