Cgl  0.60.3
 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 
28 
29 public:
37  ClpPEDualRowSteepest(double psi = 0.5, int mode = 3);
38 
41 
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 */
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_;
91 
92  /* record if previous iterations concluded that compatibles should not be checked */
95 };
96 
97 #endif
98 
99 /* vi: softtabstop=2 shiftwidth=2 expandtab tabstop=2
100 */
int mode() const
Mode.
ClpPEDualRowSteepest & operator=(const ClpPEDualRowSteepest &rhs)
Assignment operator.
Dual Row Pivot Steepest Edge Algorithm Class.
virtual ~ClpPEDualRowSteepest()
Destructor.
Dual Row Pivot Steepest Edge Algorithm Class.
virtual ClpDualRowPivot * clone(bool copyData=true) const
Clone.
virtual void saveWeights(ClpSimplex *model, int mode)
Save weights - this may initialize weights as well This is as parent but may initialize ClpPESimplex...
virtual int pivotRow()
Returns pivot row, -1 if none.
This solves LPs using the simplex method.
Definition: ClpSimplex.hpp:106
Indexed Vector.
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...
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...
Dual Row Pivot Abstract Base Class.
BASE CLASS FOR THE IMPROVED SIMPLEX.
ClpSimplex * model()
Returns model.