Clp 1.17.6

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Private Attributes | List of all members
ClpPEDualRowSteepest Class Reference

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

`#include <ClpPEDualRowSteepest.hpp>`

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

## 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...
ClpPEDualRowSteepest & | operator= (const ClpPEDualRowSteepest &rhs)
| Assignment operator. More...
virtual | ~ClpPEDualRowSteepest ()
| Destructor. More...
virtual ClpDualRowPivot * | clone (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...
CoinIndexedVector * | savedWeights ()
| 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...
ClpDualRowSteepest & | operator= (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...
ClpDualRowPivot & | operator= (const ClpDualRowPivot &rhs)
| Assignment operator. More...
virtual | ~ClpDualRowPivot ()
| Destructor. More...
ClpSimplex * | model ()
| Returns model. More...
void | setModel (ClpSimplex *newmodel)
| Sets model (normally to NULL) More...
int | type ()
| Returns type (above 63 is extra information) More...

## Private Attributes
ClpPESimplex * | modelPE_
double | psi_
int | iCurrent_
int | iInterval_
bool | updateCompatibles_
int | coDegenCompatibles_
int | coConsecutiveCompatibles_

## 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...
CoinIndexedVector * | infeasible_
| square of infeasibility array (just for infeasible rows) More...
CoinIndexedVector * | alternateWeights_
| alternate weight array (so we can unroll) More...
CoinIndexedVector * | savedWeights_
| save weight array (so we can use checkpoint) More...
int * | dubiousWeights_
| Dubious weights. More...
Protected Attributes inherited from ClpDualRowPivot
ClpSimplex * | model_
| 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::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::ClpPEDualRowSteepest | ( | const ClpPEDualRowSteepest & |  | ) |

Copy constructor.

virtual ClpPEDualRowSteepest::~ClpPEDualRowSteepest | ( |  | ) |
| virtual

Destructor.

## Member Function Documentation

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

Assignment operator.

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

Clone.

Reimplemented from ClpDualRowSteepest.

virtual int ClpPEDualRowSteepest::pivotRow | ( |  | ) |
| virtual

Returns pivot row, -1 if none.

Reimplemented from ClpDualRowSteepest.

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.

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.

double ClpPEDualRowSteepest::psi | ( |  | ) | const
| inline

Definition at line 73 of file ClpPEDualRowSteepest.hpp.

## Member Data Documentation

ClpPESimplex* ClpPEDualRowSteepest::modelPE_
| private

Definition at line 82 of file ClpPEDualRowSteepest.hpp.

double ClpPEDualRowSteepest::psi_
| private

Definition at line 86 of file ClpPEDualRowSteepest.hpp.

int ClpPEDualRowSteepest::iCurrent_
| private

Definition at line 89 of file ClpPEDualRowSteepest.hpp.

int ClpPEDualRowSteepest::iInterval_
| private

Definition at line 90 of file ClpPEDualRowSteepest.hpp.

bool ClpPEDualRowSteepest::updateCompatibles_
| private

Definition at line 93 of file ClpPEDualRowSteepest.hpp.

int ClpPEDualRowSteepest::coDegenCompatibles_
| private

Definition at line 94 of file ClpPEDualRowSteepest.hpp.

int ClpPEDualRowSteepest::coConsecutiveCompatibles_
| private

Definition at line 94 of file ClpPEDualRowSteepest.hpp.

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

- /tmp/Clp-1.17.6/Clp/src/ClpPEDualRowSteepest.hpp