|
Clp
trunk
|
Dual Row Pivot Steepest Edge Algorithm Class. More...
#include <AbcDualRowSteepest.hpp>
Inheritance diagram for AbcDualRowSteepest:
Collaboration diagram for AbcDualRowSteepest: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. | |
| AbcDualRowSteepest & | operator= (const AbcDualRowSteepest &rhs) |
| Assignment operator. | |
| void | fill (const AbcDualRowSteepest &rhs) |
| Fill most values. | |
| virtual | ~AbcDualRowSteepest () |
| Destructor. | |
| virtual AbcDualRowPivot * | clone (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. | |
| AbcSimplex * | model () const |
| Model. | |
Dual Row Pivot Steepest Edge Algorithm Class.
See Forrest-Goldfarb paper for algorithm
Definition at line 21 of file AbcDualRowSteepest.hpp.
| AbcDualRowSteepest::AbcDualRowSteepest | ( | 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.
Copy constructor.
| virtual AbcDualRowSteepest::~AbcDualRowSteepest | ( | ) | [virtual] |
Destructor.
| virtual int AbcDualRowSteepest::pivotRow | ( | ) | [virtual] |
Returns pivot row, -1 if none.
Implements AbcDualRowPivot.
| virtual double AbcDualRowSteepest::updateWeights | ( | CoinIndexedVector & | input, |
| CoinIndexedVector & | updatedColumn | ||
| ) | [virtual] |
| 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.
| virtual void AbcDualRowSteepest::recomputeInfeasibilities | ( | ) | [virtual] |
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.
| void AbcDualRowSteepest::fill | ( | const AbcDualRowSteepest & | rhs | ) |
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.
| void AbcDualRowSteepest::setPersistence | ( | Persistence | life | ) | [inline] |
Set/ get persistence.
Definition at line 108 of file AbcDualRowSteepest.hpp.
| Persistence AbcDualRowSteepest::persistence | ( | ) | const [inline] |
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.
| AbcSimplex* AbcDualRowSteepest::model | ( | ) | const [inline] |
Model.
Definition at line 121 of file AbcDualRowSteepest.hpp.
1.7.6.1