Clp 1.17.6

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

- File List
- File Members

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
25 class ClpPEDualRowDantzig : public ClpDualRowDantzig {
26
27 public:
29 ClpPEDualRowDantzig(double psi = 0.5);
30
32 ClpPEDualRowDantzig(const ClpPEDualRowDantzig &);
33
35 ClpPEDualRowDantzig &operator=(const ClpPEDualRowDantzig &rhs);
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 */
67 ClpPESimplex *modelPE_;
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_;
75 int iInterval_;
76
77 /* record if previous iterations concluded that compatibles should not be checked */
78 bool updateCompatibles_;
79 int coDegenCompatibles_, coConsecutiveCompatibles_;
80 };
81 #endif
82
83 /* vi: softtabstop=2 shiftwidth=2 expandtab tabstop=2
84 */
ClpPEDualRowDantzig::coDegenCompatibles_
int coDegenCompatibles_
Definition: ClpPEDualRowDantzig.hpp:79
ClpPEDualRowDantzig::clone
virtual ClpDualRowPivot * clone(bool copyData=true) const
Clone.
ClpSimplex.hpp
ClpPEDualRowDantzig::modelPE_
ClpPESimplex * modelPE_
Definition: ClpPEDualRowDantzig.hpp:67
ClpPEDualRowDantzig::coConsecutiveCompatibles_
int coConsecutiveCompatibles_
Definition: ClpPEDualRowDantzig.hpp:79
ClpSimplexDual.hpp
ClpPEDualRowDantzig::psi_
double psi_
Definition: ClpPEDualRowDantzig.hpp:71
ClpPEDualRowDantzig::iCurrent_
int iCurrent_
Definition: ClpPEDualRowDantzig.hpp:74
ClpDualRowPivot.hpp
ClpDualRowDantzig.hpp
ClpPEDualRowDantzig::operator=
ClpPEDualRowDantzig & operator=(const ClpPEDualRowDantzig &rhs)
Assignment operator.
ClpDualRowDantzig
Dual Row Pivot Dantzig Algorithm Class.
Definition: ClpDualRowDantzig.hpp:19
ClpFactorization.hpp
ClpSimplex
This solves LPs using the simplex method.
Definition: ClpSimplex.hpp:106
ClpPEDualRowDantzig::ClpPEDualRowDantzig
ClpPEDualRowDantzig(double psi=0.5)
Default Constructor.
ClpPEDualRowDantzig
Definition: ClpPEDualRowDantzig.hpp:25
CoinIndexedVector
Indexed Vector.
Definition: CoinIndexedVector.hpp:104
ClpPESimplex.hpp
ClpPEDualRowDantzig::iInterval_
int iInterval_
Definition: ClpPEDualRowDantzig.hpp:75
ClpPEDualRowDantzig::updateCompatibles_
bool updateCompatibles_
Definition: ClpPEDualRowDantzig.hpp:78
ClpPEDualRowDantzig::saveWeights
virtual void saveWeights(ClpSimplex *model, int mode)
Save weights - this may initialize weights as well This is as parent but may initialize ClpPESimplex...
ClpPEDualRowDantzig::~ClpPEDualRowDantzig
virtual ~ClpPEDualRowDantzig()
Destructor.
ClpPackedMatrix.hpp
CoinIndexedVector.hpp
ClpPEDualRowDantzig::pivotRow
virtual int pivotRow()
Returns pivot row, -1 if none.
ClpNonLinearCost.hpp
ClpPEDualRowDantzig::updateWeights
virtual double updateWeights(CoinIndexedVector *input, CoinIndexedVector *spare, CoinIndexedVector *spare2, CoinIndexedVector *updatedColumn)
Update the compatible variables and call the base class method to update weights. ...
ClpDualRowPivot
Dual Row Pivot Abstract Base Class.
Definition: ClpDualRowPivot.hpp:22
ClpPESimplex
BASE CLASS FOR THE IMPROVED SIMPLEX.
Definition: ClpPESimplex.hpp:42
ClpDualRowPivot::model
ClpSimplex * model()
Returns model.
Definition: ClpDualRowPivot.hpp:100