Clp 1.17.5
Loading...
Searching...
No Matches
ClpPEDualRowDantzig.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 ClpPEDualRowDantzig_H
13#define ClpPEDualRowDantzig_H
14
15#include "ClpDualRowPivot.hpp"
16#include "ClpDualRowDantzig.hpp"
17#include "ClpSimplex.hpp"
18#include "CoinIndexedVector.hpp"
19#include "ClpFactorization.hpp"
20#include "ClpNonLinearCost.hpp"
21#include "ClpSimplexDual.hpp"
22#include "ClpPackedMatrix.hpp"
23#include "ClpPESimplex.hpp"
24
26
27public:
29 ClpPEDualRowDantzig(double psi = 0.5);
30
33
36
39
41 virtual ClpDualRowPivot *clone(bool copyData = true) const;
42
43public:
45
46
48 virtual int pivotRow();
49
52 virtual double updateWeights(CoinIndexedVector *input,
53 CoinIndexedVector *spare,
54 CoinIndexedVector *spare2,
55 CoinIndexedVector *updatedColumn);
56
60 virtual void saveWeights(ClpSimplex *model, int mode);
62
63 //---------------------------------------------------------------------------
64
65private:
66 /* this PESimplex object is used to identify the compatible variables */
68
69 /* psi is the factor used in the bi-dimensional pricing, it is < 1 and
70 1/psi grows with the priority given to compatible variables */
71 double psi_;
72
73 /* useful counters for the update of the set of compatible variables */
76
77 /* record if previous iterations concluded that compatibles should not be checked */
80};
81#endif
82
83/* vi: softtabstop=2 shiftwidth=2 expandtab tabstop=2
84*/
Dual Row Pivot Dantzig Algorithm Class.
Dual Row Pivot Abstract Base Class.
ClpSimplex * model()
Returns model.
ClpPEDualRowDantzig(double psi=0.5)
Default Constructor.
virtual ClpDualRowPivot * clone(bool copyData=true) const
Clone.
virtual double updateWeights(CoinIndexedVector *input, CoinIndexedVector *spare, CoinIndexedVector *spare2, CoinIndexedVector *updatedColumn)
Update the compatible variables and call the base class method to update weights.
ClpPEDualRowDantzig(const ClpPEDualRowDantzig &)
Copy constructor.
virtual ~ClpPEDualRowDantzig()
Destructor.
ClpPEDualRowDantzig & operator=(const ClpPEDualRowDantzig &rhs)
Assignment operator.
virtual int pivotRow()
Returns pivot row, -1 if none.
virtual void saveWeights(ClpSimplex *model, int mode)
Save weights - this may initialize weights as well This is as parent but may initialize ClpPESimplex.
BASE CLASS FOR THE IMPROVED SIMPLEX.
This solves LPs using the simplex method.