Loading...
Searching...
No Matches
ClpDualRowPivot Class Referenceabstract

Dual Row Pivot Abstract Base Class. More...

`#include <ClpDualRowPivot.hpp>`

Inheritance diagram for ClpDualRowPivot:
[legend]
Collaboration diagram for ClpDualRowPivot:
[legend]

## Public Member Functions

Algorithmic methods
virtual int | pivotRow ()=0
| Returns pivot row, -1 if none.
virtual double | updateWeights (CoinIndexedVector *input, CoinIndexedVector *spare, CoinIndexedVector *spare2, CoinIndexedVector *updatedColumn)=0
| Updates weights and returns pivot alpha.
virtual void | updatePrimalSolution (CoinIndexedVector *input, double theta, double &changeInObjective)=0
| Updates primal solution (and maybe list of candidates) Uses input vector which it deletes Computes change in objective function Would be faster if we kept basic regions, but on other hand it means everything is always in sync.
virtual void | saveWeights (ClpSimplex *model, int mode)
| Saves any weights round factorization as pivot rows may change Will be empty unless steepest edge (will 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 | checkAccuracy ()
| checks accuracy and may re-initialize (may be empty)
virtual void | unrollWeights ()
| Gets rid of last update (may be empty).
virtual void | clearArrays ()
| Gets rid of all arrays (may be empty).
virtual bool | looksOptimal () const
| Returns true if would not find any row.
virtual void | maximumPivotsChanged ()
| Called when maximum pivots changes.
Constructors and destructors
| ClpDualRowPivot ()
| Default Constructor.
| ClpDualRowPivot (const ClpDualRowPivot &)
| Copy constructor.
ClpDualRowPivot & | operator= (const ClpDualRowPivot &rhs)
| Assignment operator.
virtual | ~ClpDualRowPivot ()
| Destructor.
virtual ClpDualRowPivot * | clone (bool copyData=true) const =0
| Clone.
Other
ClpSimplex * | model ()
| Returns model.
void | setModel (ClpSimplex *newmodel)
| Sets model (normally to NULL).
int | type ()
| Returns type (above 63 is extra information).

## Protected Attributes

Protected member data
ClpSimplex * | model_
| Pointer to model.
int | type_
| Type of row pivot algorithm.

## Detailed Description

Dual Row Pivot Abstract Base Class.

Abstract Base Class for describing an interface to an algorithm to choose row pivot in dual simplex algorithm. For some algorithms e.g. Dantzig choice then some functions may be null.

Definition at line 22 of file ClpDualRowPivot.hpp.

## Constructor & Destructor Documentation

## ClpDualRowPivot() [1/2]

ClpDualRowPivot::ClpDualRowPivot | ( |  | ) |

Default Constructor.

## ClpDualRowPivot() [2/2]

ClpDualRowPivot::ClpDualRowPivot | ( | const ClpDualRowPivot & |  | ) |

Copy constructor.

## ~ClpDualRowPivot()

virtual ClpDualRowPivot::~ClpDualRowPivot | ( |  | ) |

virtual

Destructor.

## Member Function Documentation

## pivotRow()

virtual int ClpDualRowPivot::pivotRow | ( |  | ) |

pure virtual

Returns pivot row, -1 if none.

Implemented in ClpDualRowDantzig, ClpDualRowSteepest, ClpPEDualRowDantzig, and ClpPEDualRowSteepest.

## updateWeights()

virtual double ClpDualRowPivot::updateWeights | ( | CoinIndexedVector * | input,
|  | CoinIndexedVector * | spare,
|  | CoinIndexedVector * | spare2,
|  | CoinIndexedVector * | updatedColumn )

pure virtual

Updates weights and returns pivot alpha.

Also does FT update

Implemented in ClpDualRowDantzig, ClpDualRowSteepest, and ClpPEDualRowDantzig.

## updatePrimalSolution()

virtual void ClpDualRowPivot::updatePrimalSolution | ( | CoinIndexedVector * | input,
|  | double | theta,
|  | double & | changeInObjective )

pure virtual

Updates primal solution (and maybe list of candidates) Uses input vector which it deletes Computes change in objective function Would be faster if we kept basic regions, but on other hand it means everything is always in sync.

Implemented in ClpDualRowDantzig, ClpDualRowSteepest, and ClpPEDualRowSteepest.

## saveWeights()

virtual void ClpDualRowPivot::saveWeights | ( | ClpSimplex * | model,
|  | int | mode )

virtual

Saves any weights round factorization as pivot rows may change Will be empty unless steepest edge (will 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 to 1 , infeasibilities 6) scale back 7) for strong branching - initialize full weights , infeasibilities

Reimplemented in ClpDualRowSteepest, ClpPEDualRowDantzig, and ClpPEDualRowSteepest.

## checkAccuracy()

virtual void ClpDualRowPivot::checkAccuracy | ( |  | ) |

virtual

checks accuracy and may re-initialize (may be empty)

## unrollWeights()

virtual void ClpDualRowPivot::unrollWeights | ( |  | ) |

virtual

Gets rid of last update (may be empty).

Reimplemented in ClpDualRowSteepest.

## clearArrays()

virtual void ClpDualRowPivot::clearArrays | ( |  | ) |

virtual

Gets rid of all arrays (may be empty).

Reimplemented in ClpDualRowSteepest.

## looksOptimal()

virtual bool ClpDualRowPivot::looksOptimal | ( |  | ) | const

inline virtual

Returns true if would not find any row.

Reimplemented in ClpDualRowSteepest.

Definition at line 70 of file ClpDualRowPivot.hpp.

## maximumPivotsChanged()

virtual void ClpDualRowPivot::maximumPivotsChanged | ( |  | ) |

inline virtual

Called when maximum pivots changes.

Reimplemented in ClpDualRowSteepest.

Definition at line 75 of file ClpDualRowPivot.hpp.

## operator=()

ClpDualRowPivot & ClpDualRowPivot::operator= | ( | const ClpDualRowPivot & | rhs | ) |

Assignment operator.

## clone()

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

pure virtual

Clone.

Implemented in ClpDualRowDantzig, ClpDualRowSteepest, ClpPEDualRowDantzig, and ClpPEDualRowSteepest.

## model()

ClpSimplex * ClpDualRowPivot::model | ( |  | ) |

inline

Returns model.

Definition at line 100 of file ClpDualRowPivot.hpp.

## setModel()

void ClpDualRowPivot::setModel | ( | ClpSimplex * | newmodel | ) |

inline

Sets model (normally to NULL).

Definition at line 106 of file ClpDualRowPivot.hpp.

## type()

int ClpDualRowPivot::type | ( |  | ) |

inline

Returns type (above 63 is extra information).

Definition at line 112 of file ClpDualRowPivot.hpp.

## Member Data Documentation

## model_

ClpSimplex* ClpDualRowPivot::model_

protected

Pointer to model.

Definition at line 125 of file ClpDualRowPivot.hpp.

## type_

int ClpDualRowPivot::type_

protected

Type of row pivot algorithm.

Definition at line 127 of file ClpDualRowPivot.hpp.

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

- Clp/src/ClpDualRowPivot.hpp