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
ClpPEDualRowSteepest.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 ClpPEDualRowSteepest_H
13 #define ClpPEDualRowSteepest_H
14
15 #include "ClpDualRowSteepest.hpp"
16 #include "ClpPESimplex.hpp"
17 class CoinIndexedVector;
18
19 //#############################################################################
20
27 class ClpPEDualRowSteepest : public ClpDualRowSteepest {
28
29 public:
37 ClpPEDualRowSteepest(double psi = 0.5, int mode = 3);
38
40 ClpPEDualRowSteepest(const ClpPEDualRowSteepest &);
41
43 ClpPEDualRowSteepest &operator=(const ClpPEDualRowSteepest &rhs);
44
46 virtual ~ClpPEDualRowSteepest();
47
49 virtual ClpDualRowPivot *clone(bool copyData = true) const;
50
51 public:
53
54
56 virtual int pivotRow();
57
61 virtual void saveWeights(ClpSimplex *model, int mode);
67 virtual void updatePrimalSolution(CoinIndexedVector *input,
68 double theta,
69 double &changeInObjective);
71
72 // Psi
73 inline double psi() const
74 {
75 return psi_;
76 }
77
78 //---------------------------------------------------------------------------
79
80 private:
81 /* this PESimplex object is used to identify the compatible variables */
82 ClpPESimplex *modelPE_;
83
84 /* psi is the factor used in the bi-dimensional pricing, it is < 1 and
85 1/psi grows with the priority given to compatible variables */
86 double psi_;
87
88 /* useful counters for the update of the set of compatible variables */
89 int iCurrent_;
90 int iInterval_;
91
92 /* record if previous iterations concluded that compatibles should not be checked */
93 bool updateCompatibles_;
94 int coDegenCompatibles_, coConsecutiveCompatibles_;
95 };
96
97 #endif
98
99 /* vi: softtabstop=2 shiftwidth=2 expandtab tabstop=2
100 */
ClpPEDualRowSteepest::coDegenCompatibles_
int coDegenCompatibles_
Definition: ClpPEDualRowSteepest.hpp:94
ClpPEDualRowSteepest::iCurrent_
int iCurrent_
Definition: ClpPEDualRowSteepest.hpp:89
ClpDualRowSteepest::mode
int mode() const
Mode.
Definition: ClpDualRowSteepest.hpp:109
ClpPEDualRowSteepest::operator=
ClpPEDualRowSteepest & operator=(const ClpPEDualRowSteepest &rhs)
Assignment operator.
ClpDualRowSteepest
Dual Row Pivot Steepest Edge Algorithm Class.
Definition: ClpDualRowSteepest.hpp:20
ClpPEDualRowSteepest::~ClpPEDualRowSteepest
virtual ~ClpPEDualRowSteepest()
Destructor.
ClpPEDualRowSteepest
Dual Row Pivot Steepest Edge Algorithm Class.
Definition: ClpPEDualRowSteepest.hpp:27
ClpPEDualRowSteepest::clone
virtual ClpDualRowPivot * clone(bool copyData=true) const
Clone.
ClpPEDualRowSteepest::saveWeights
virtual void saveWeights(ClpSimplex *model, int mode)
Save weights - this may initialize weights as well This is as parent but may initialize ClpPESimplex...
ClpPEDualRowSteepest::pivotRow
virtual int pivotRow()
Returns pivot row, -1 if none.
ClpSimplex
This solves LPs using the simplex method.
Definition: ClpSimplex.hpp:106
ClpPEDualRowSteepest::psi
double psi() const
Definition: ClpPEDualRowSteepest.hpp:73
CoinIndexedVector
Indexed Vector.
Definition: CoinIndexedVector.hpp:104
ClpPESimplex.hpp
ClpPEDualRowSteepest::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 m...
ClpPEDualRowSteepest::coConsecutiveCompatibles_
int coConsecutiveCompatibles_
Definition: ClpPEDualRowSteepest.hpp:94
ClpPEDualRowSteepest::iInterval_
int iInterval_
Definition: ClpPEDualRowSteepest.hpp:90
ClpPEDualRowSteepest::updateCompatibles_
bool updateCompatibles_
Definition: ClpPEDualRowSteepest.hpp:93
ClpPEDualRowSteepest::updatePrimalSolution
virtual void updatePrimalSolution(CoinIndexedVector *input, double theta, double &changeInObjective)
Updates primal solution (and maybe list of candidates) Uses input vector which it deletes Computes ch...
ClpPEDualRowSteepest::psi_
double psi_
Definition: ClpPEDualRowSteepest.hpp:86
ClpDualRowPivot
Dual Row Pivot Abstract Base Class.
Definition: ClpDualRowPivot.hpp:22
ClpPESimplex
BASE CLASS FOR THE IMPROVED SIMPLEX.
Definition: ClpPESimplex.hpp:42
ClpDualRowSteepest.hpp
ClpDualRowPivot::model
ClpSimplex * model()
Returns model.
Definition: ClpDualRowPivot.hpp:100
ClpPEDualRowSteepest::modelPE_
ClpPESimplex * modelPE_
Definition: ClpPEDualRowSteepest.hpp:82