Cgl 0.60.2

- 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
ClpPEPrimalColumnSteepest.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, Mehdi Towhidi
7
8 Last update: april 10, 2015
9
10 */
11
12 #ifndef ClpPEPrimalColumnSteepest_H
13 #define ClpPEPrimalColumnSteepest_H
14
15 #include "ClpPrimalColumnSteepest.hpp"
16 #include "ClpFactorization.hpp"
17 #include "ClpPESimplex.hpp"
18 #include <bitset>
19
20 //#############################################################################
21 class CoinIndexedVector;
22
29 class ClpPEPrimalColumnSteepest : public ClpPrimalColumnSteepest {
30 public:
32
33
41 ClpPEPrimalColumnSteepest(double psi = 0.5, int mode = 3);
42
44 ClpPEPrimalColumnSteepest(const ClpPEPrimalColumnSteepest &rhs);
45
47 ClpPEPrimalColumnSteepest &operator=(const ClpPEPrimalColumnSteepest &rhs);
48
50 virtual ~ClpPEPrimalColumnSteepest();
51
53 virtual ClpPrimalColumnPivot *clone(bool copyData = true) const;
54
55 public:
57
58
66 virtual int pivotColumn(CoinIndexedVector *updates,
67 CoinIndexedVector *spareRow1,
68 CoinIndexedVector *spareRow2,
69 CoinIndexedVector *spareColumn1,
70 CoinIndexedVector *spareColumn2);
71
73
76 virtual void saveWeights(ClpSimplex *model, int mode);
78 virtual void updateWeights(CoinIndexedVector *input);
79 //---------------------------------------------------------------------------
80 // Psi
81 inline double psi() const
82 {
83 return psi_;
84 }
85
86 private:
87 /* this PESimplex object is used to identify the compatible variables */
88 ClpPESimplex *modelPE_;
89
90 /* psi is the factor used in the bi-dimensional pricing, it is < 1 and
91 1/psi grows with the priority given to compatible variables */
92 double psi_;
93
94 /* useful counters for the update of the set of compatible variables */
95 int iCurrent_;
96 int iInterval_;
97
98 /* record if previous iterations concluded that compatibles should not be checked */
99 int coDegenCompatibles_;
100 int coConsecutiveCompatibles_;
101 bool updateCompatibles_;
102 };
103
104 #endif
105
106 /* vi: softtabstop=2 shiftwidth=2 expandtab tabstop=2
107 */
ClpPEPrimalColumnSteepest
Primal Column Pivot Steepest Edge Algorithm Class.
Definition: ClpPEPrimalColumnSteepest.hpp:29
ClpPrimalColumnPivot
Primal Column Pivot Abstract Base Class.
Definition: ClpPrimalColumnPivot.hpp:25
ClpPrimalColumnSteepest
Primal Column Pivot Steepest Edge Algorithm Class.
Definition: ClpPrimalColumnSteepest.hpp:21
ClpPEPrimalColumnSteepest::psi_
double psi_
Definition: ClpPEPrimalColumnSteepest.hpp:92
ClpPEPrimalColumnSteepest::~ClpPEPrimalColumnSteepest
virtual ~ClpPEPrimalColumnSteepest()
Destructor.
ClpPEPrimalColumnSteepest::pivotColumn
virtual int pivotColumn(CoinIndexedVector *updates, CoinIndexedVector *spareRow1, CoinIndexedVector *spareRow2, CoinIndexedVector *spareColumn1, CoinIndexedVector *spareColumn2)
Returns pivot column, -1 if none.
ClpFactorization.hpp
ClpSimplex
This solves LPs using the simplex method.
Definition: ClpSimplex.hpp:106
CoinIndexedVector
Indexed Vector.
Definition: CoinIndexedVector.hpp:104
ClpPESimplex.hpp
ClpPEPrimalColumnSteepest::saveWeights
virtual void saveWeights(ClpSimplex *model, int mode)
Save weights - this may initialize weights as well This is as parent but may initialize ClpPESimplex...
ClpPEPrimalColumnSteepest::modelPE_
ClpPESimplex * modelPE_
Definition: ClpPEPrimalColumnSteepest.hpp:88
ClpPEPrimalColumnSteepest::ClpPEPrimalColumnSteepest
ClpPEPrimalColumnSteepest(double psi=0.5, int mode=3)
Default Constructor 0 is exact devex, 1 full steepest, 2 is partial exact devex 3 switches between 0 ...
ClpPEPrimalColumnSteepest::iCurrent_
int iCurrent_
Definition: ClpPEPrimalColumnSteepest.hpp:95
ClpPEPrimalColumnSteepest::updateCompatibles_
bool updateCompatibles_
Definition: ClpPEPrimalColumnSteepest.hpp:101
ClpPEPrimalColumnSteepest::clone
virtual ClpPrimalColumnPivot * clone(bool copyData=true) const
Clone.
ClpPEPrimalColumnSteepest::operator=
ClpPEPrimalColumnSteepest & operator=(const ClpPEPrimalColumnSteepest &rhs)
Assignment operator.
ClpPrimalColumnPivot::model
ClpSimplex * model()
Returns model.
Definition: ClpPrimalColumnPivot.hpp:117
ClpPEPrimalColumnSteepest::psi
double psi() const
Definition: ClpPEPrimalColumnSteepest.hpp:81
ClpPrimalColumnSteepest::mode
int mode() const
Mode.
Definition: ClpPrimalColumnSteepest.hpp:126
ClpPrimalColumnSteepest.hpp
ClpPEPrimalColumnSteepest::iInterval_
int iInterval_
Definition: ClpPEPrimalColumnSteepest.hpp:96
ClpPEPrimalColumnSteepest::coDegenCompatibles_
int coDegenCompatibles_
Definition: ClpPEPrimalColumnSteepest.hpp:99
ClpPESimplex
BASE CLASS FOR THE IMPROVED SIMPLEX.
Definition: ClpPESimplex.hpp:42
ClpPEPrimalColumnSteepest::updateWeights
virtual void updateWeights(CoinIndexedVector *input)
Updates weights - as ordinary but checks for zero moves.
ClpPEPrimalColumnSteepest::coConsecutiveCompatibles_
int coConsecutiveCompatibles_
Definition: ClpPEPrimalColumnSteepest.hpp:100