Clp  1.17.8
ClpPEPrimalColumnDantzig.hpp
Go to the documentation of this file.
1 /*
2  Authors
3 
4  Jeremy Omer, Mehdi Towhidi
5 
6  Last update: april 10, 2015
7 
8  */
9 
10 #ifndef ClpPEPrimalColumnDantzig_H
11 #define ClpPEPrimalColumnDantzig_H
12 
14 #include "ClpPrimalColumnPivot.hpp"
15 #include "ClpSimplex.hpp"
16 #include "CoinIndexedVector.hpp"
17 #include "ClpFactorization.hpp"
18 #include "ClpNonLinearCost.hpp"
19 #include "ClpSimplexPrimal.hpp"
20 #include "ClpPackedMatrix.hpp"
21 #include "ClpPESimplex.hpp"
22 
24 
25 public:
27  ClpPEPrimalColumnDantzig(double psi = 0.5);
28  ClpPEPrimalColumnDantzig(const ClpPEPrimalColumnDantzig &); //copy constructor
29 
32 
35 
37  ClpPrimalColumnPivot *clone(bool copyData = true) const;
38 
39  virtual int pivotColumn(CoinIndexedVector *updates,
40  CoinIndexedVector *spareRow1,
41  CoinIndexedVector *spareRow2,
42  CoinIndexedVector *spareColumn1,
43  CoinIndexedVector *spareColumn2);
44 
46 
49  virtual void saveWeights(ClpSimplex *model, int mode);
50  //---------------------------------------------------------------------------
51 private:
52  /* this PESimplex object is used to identify the compatible variables */
54 
55  /* psi is the factor used in the bi-dimensional pricing, it is < 1 and
56  1/psi grows with the priority given to compatible variables */
57  double psi_;
58 
59  /* useful counters for the update of the set of compatible variables */
60  int iCurrent_;
62 
63  /* record if previous iterations concluded that compatibles should not be checked */
67 };
68 #endif
69 
70 /* vi: softtabstop=2 shiftwidth=2 expandtab tabstop=2
71 */
ClpSimplex
This solves LPs using the simplex method.
Definition: ClpSimplex.hpp:106
ClpPEPrimalColumnDantzig::updateCompatibles_
bool updateCompatibles_
Definition: ClpPEPrimalColumnDantzig.hpp:66
ClpPEPrimalColumnDantzig::~ClpPEPrimalColumnDantzig
~ClpPEPrimalColumnDantzig()
destructor
ClpNonLinearCost.hpp
ClpPrimalColumnPivot.hpp
ClpPEPrimalColumnDantzig
Definition: ClpPEPrimalColumnDantzig.hpp:23
ClpPEPrimalColumnDantzig::pivotColumn
virtual int pivotColumn(CoinIndexedVector *updates, CoinIndexedVector *spareRow1, CoinIndexedVector *spareRow2, CoinIndexedVector *spareColumn1, CoinIndexedVector *spareColumn2)
Returns pivot column, -1 if none.
ClpFactorization.hpp
ClpPEPrimalColumnDantzig::iCurrent_
int iCurrent_
Definition: ClpPEPrimalColumnDantzig.hpp:60
ClpPEPrimalColumnDantzig::clone
ClpPrimalColumnPivot * clone(bool copyData=true) const
clone
ClpSimplexPrimal.hpp
ClpPrimalColumnDantzig
Primal Column Pivot Dantzig Algorithm Class.
Definition: ClpPrimalColumnDantzig.hpp:19
ClpPEPrimalColumnDantzig::ClpPEPrimalColumnDantzig
ClpPEPrimalColumnDantzig(double psi=0.5)
constructors
ClpPEPrimalColumnDantzig::saveWeights
virtual void saveWeights(ClpSimplex *model, int mode)
Save weights - this may initialize weights as well This is as parent but may initialize ClpPESimplex.
ClpPEPrimalColumnDantzig::coDegenCompatibles_
int coDegenCompatibles_
Definition: ClpPEPrimalColumnDantzig.hpp:64
ClpSimplex.hpp
ClpPrimalColumnPivot
Primal Column Pivot Abstract Base Class.
Definition: ClpPrimalColumnPivot.hpp:25
ClpPESimplex
BASE CLASS FOR THE IMPROVED SIMPLEX.
Definition: ClpPESimplex.hpp:42
ClpPEPrimalColumnDantzig::iInterval_
int iInterval_
Definition: ClpPEPrimalColumnDantzig.hpp:61
ClpPrimalColumnPivot::model
ClpSimplex * model()
Returns model.
Definition: ClpPrimalColumnPivot.hpp:117
ClpPEPrimalColumnDantzig::modelPE_
ClpPESimplex * modelPE_
Definition: ClpPEPrimalColumnDantzig.hpp:53
ClpPEPrimalColumnDantzig::psi_
double psi_
Definition: ClpPEPrimalColumnDantzig.hpp:57
ClpPESimplex.hpp
ClpPEPrimalColumnDantzig::coConsecutiveCompatibles_
int coConsecutiveCompatibles_
Definition: ClpPEPrimalColumnDantzig.hpp:65
ClpPackedMatrix.hpp
ClpPrimalColumnDantzig.hpp
ClpPEPrimalColumnDantzig::operator=
ClpPEPrimalColumnDantzig & operator=(const ClpPEPrimalColumnDantzig &rhs)
assignment operator