Clp 1.17.5
Loading...
Searching...
No Matches
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
16#include "ClpFactorization.hpp"
17#include "ClpPESimplex.hpp"
18#include <bitset>
19
20//#############################################################################
21class CoinIndexedVector;
22
30public:
32
33
41 ClpPEPrimalColumnSteepest(double psi = 0.5, int mode = 3);
42
45
48
51
53 virtual ClpPrimalColumnPivot *clone(bool copyData = true) const;
54
55public:
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
86private:
87 /* this PESimplex object is used to identify the compatible variables */
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 */
97
98 /* record if previous iterations concluded that compatibles should not be checked */
102};
103
104#endif
105
106/* vi: softtabstop=2 shiftwidth=2 expandtab tabstop=2
107*/
Primal Column Pivot Steepest Edge Algorithm Class.
ClpPEPrimalColumnSteepest & operator=(const ClpPEPrimalColumnSteepest &rhs)
Assignment operator.
ClpPEPrimalColumnSteepest(const ClpPEPrimalColumnSteepest &rhs)
Copy constructor.
virtual int pivotColumn(CoinIndexedVector *updates, CoinIndexedVector *spareRow1, CoinIndexedVector *spareRow2, CoinIndexedVector *spareColumn1, CoinIndexedVector *spareColumn2)
Returns pivot column, -1 if none.
virtual ~ClpPEPrimalColumnSteepest()
Destructor.
virtual void saveWeights(ClpSimplex *model, int mode)
Save weights - this may initialize weights as well This is as parent but may initialize ClpPESimplex.
virtual void updateWeights(CoinIndexedVector *input)
Updates weights - as ordinary but checks for zero moves.
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 ...
virtual ClpPrimalColumnPivot * clone(bool copyData=true) const
Clone.
BASE CLASS FOR THE IMPROVED SIMPLEX.
Primal Column Pivot Abstract Base Class.
ClpSimplex * model()
Returns model.
Primal Column Pivot Steepest Edge Algorithm Class.
This solves LPs using the simplex method.