Cgl  0.60.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
ClpPEDualRowDantzig.hpp
Go to the documentation of this file.
1 // Copyright (C) 2002, International Business Machines
2 // Corporation and others. All Rights Reserved.
3 /*
4  Authors
5 
6  Jeremy Omer
7 
8  Last update: april 10, 2015
9 
10  */
11 
12 #ifndef ClpPEDualRowDantzig_H
13 #define ClpPEDualRowDantzig_H
14 
15 #include "ClpDualRowPivot.hpp"
16 #include "ClpDualRowDantzig.hpp"
17 #include "ClpSimplex.hpp"
18 #include "CoinIndexedVector.hpp"
19 #include "ClpFactorization.hpp"
20 #include "ClpNonLinearCost.hpp"
21 #include "ClpSimplexDual.hpp"
22 #include "ClpPackedMatrix.hpp"
23 #include "ClpPESimplex.hpp"
24 
26 
27 public:
29  ClpPEDualRowDantzig(double psi = 0.5);
30 
33 
36 
38  virtual ~ClpPEDualRowDantzig();
39 
41  virtual ClpDualRowPivot *clone(bool copyData = true) const;
42 
43 public:
45 
46 
48  virtual int pivotRow();
49 
52  virtual double updateWeights(CoinIndexedVector *input,
53  CoinIndexedVector *spare,
54  CoinIndexedVector *spare2,
55  CoinIndexedVector *updatedColumn);
56 
60  virtual void saveWeights(ClpSimplex *model, int mode);
62 
63  //---------------------------------------------------------------------------
64 
65 private:
66  /* this PESimplex object is used to identify the compatible variables */
68 
69  /* psi is the factor used in the bi-dimensional pricing, it is < 1 and
70  1/psi grows with the priority given to compatible variables */
71  double psi_;
72 
73  /* useful counters for the update of the set of compatible variables */
74  int iCurrent_;
76 
77  /* record if previous iterations concluded that compatibles should not be checked */
80 };
81 #endif
82 
83 /* vi: softtabstop=2 shiftwidth=2 expandtab tabstop=2
84 */
virtual ClpDualRowPivot * clone(bool copyData=true) const
Clone.
ClpPEDualRowDantzig & operator=(const ClpPEDualRowDantzig &rhs)
Assignment operator.
Dual Row Pivot Dantzig Algorithm Class.
This solves LPs using the simplex method.
Definition: ClpSimplex.hpp:106
ClpPEDualRowDantzig(double psi=0.5)
Default Constructor.
Indexed Vector.
virtual void saveWeights(ClpSimplex *model, int mode)
Save weights - this may initialize weights as well This is as parent but may initialize ClpPESimplex...
virtual ~ClpPEDualRowDantzig()
Destructor.
virtual int pivotRow()
Returns pivot row, -1 if none.
virtual double updateWeights(CoinIndexedVector *input, CoinIndexedVector *spare, CoinIndexedVector *spare2, CoinIndexedVector *updatedColumn)
Update the compatible variables and call the base class method to update weights. ...
Dual Row Pivot Abstract Base Class.
BASE CLASS FOR THE IMPROVED SIMPLEX.
ClpSimplex * model()
Returns model.