source: trunk/Clp/src/ClpPEPrimalColumnDantzig.hpp @ 2385

Last change on this file since 2385 was 2385, checked in by unxusr, 4 months ago

formatting

File size: 1.9 KB
Line 
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
13#include "ClpPrimalColumnDantzig.hpp"
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
23class ClpPEPrimalColumnDantzig : public ClpPrimalColumnDantzig {
24
25public:
26  /** constructors */
27  ClpPEPrimalColumnDantzig(double psi = 0.5);
28  ClpPEPrimalColumnDantzig(const ClpPEPrimalColumnDantzig &); //copy constructor
29
30  /** destructor */
31  ~ClpPEPrimalColumnDantzig();
32
33  /** assignment operator */
34  ClpPEPrimalColumnDantzig &operator=(const ClpPEPrimalColumnDantzig &rhs);
35
36  /** clone */
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
45  //@}
46  /** Save weights - this may initialize weights as well
47         This is as parent but may initialize ClpPESimplex
48     */
49  virtual void saveWeights(ClpSimplex *model, int mode);
50  //---------------------------------------------------------------------------
51private:
52  /* this PESimplex object is used to identify the compatible variables */
53  ClpPESimplex *modelPE_;
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_;
61  int iInterval_;
62
63  /* record if previous iterations concluded that compatibles should not be checked */
64  int coDegenCompatibles_;
65  int coConsecutiveCompatibles_;
66  bool updateCompatibles_;
67};
68#endif
69
70/* vi: softtabstop=2 shiftwidth=2 expandtab tabstop=2
71*/
Note: See TracBrowser for help on using the repository browser.