1 | /* $Id: ClpDualRowDantzig.hpp 1665 2011-01-04 17:55:54Z lou $ */ |
2 | // Copyright (C) 2002, International Business Machines |
3 | // Corporation and others. All Rights Reserved. |
4 | // This code is licensed under the terms of the Eclipse Public License (EPL). |
5 | |
6 | #ifndef ClpDualRowDantzig_H |
7 | #define ClpDualRowDantzig_H |
8 | |
9 | #include "ClpDualRowPivot.hpp" |
10 | |
11 | //############################################################################# |
12 | |
13 | /** Dual Row Pivot Dantzig Algorithm Class |
14 | |
15 | This is simplest choice - choose largest infeasibility |
16 | |
17 | */ |
18 | |
19 | class ClpDualRowDantzig : public ClpDualRowPivot { |
20 | |
21 | public: |
22 | |
23 | ///@name Algorithmic methods |
24 | //@{ |
25 | |
26 | /// Returns pivot row, -1 if none |
27 | virtual int pivotRow() override; |
28 | |
29 | /** Updates weights and returns pivot alpha. |
30 | Also does FT update */ |
31 | virtual double updateWeights(CoinIndexedVector * input, |
32 | CoinIndexedVector * spare, |
33 | CoinIndexedVector * spare2, |
34 | CoinIndexedVector * updatedColumn) override; |
35 | /** Updates primal solution (and maybe list of candidates) |
36 | Uses input vector which it deletes |
37 | Computes change in objective function |
38 | */ |
39 | virtual void updatePrimalSolution(CoinIndexedVector * input, |
40 | double theta, |
41 | double & changeInObjective) override; |
42 | //@} |
43 | |
44 | |
45 | ///@name Constructors and destructors |
46 | //@{ |
47 | /// Default Constructor |
48 | ClpDualRowDantzig(); |
49 | |
50 | /// Copy constructor |
51 | ClpDualRowDantzig(const ClpDualRowDantzig &); |
52 | |
53 | /// Assignment operator |
54 | ClpDualRowDantzig & operator=(const ClpDualRowDantzig& rhs); |
55 | |
56 | /// Destructor |
57 | virtual ~ClpDualRowDantzig (); |
58 | |
59 | /// Clone |
60 | virtual ClpDualRowPivot * clone(bool copyData = true) const override; |
61 | |
62 | //@} |
63 | |
64 | //--------------------------------------------------------------------------- |
65 | |
66 | private: |
67 | ///@name Private member data |
68 | //@} |
69 | }; |
70 | |
71 | #endif |
72 | |