Cgl 0.59.7

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- File List
- File Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
ClpDualRowSteepest.hpp
Go to the documentation of this file.
1 /* $Id: ClpDualRowSteepest.hpp 2070 2014-11-18 11:12:54Z forrest $ */
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 ClpDualRowSteepest_H
7 #define ClpDualRowSteepest_H
8
9 #include "ClpDualRowPivot.hpp"
10 class CoinIndexedVector;
11
12
13 //#############################################################################
14
21 class ClpDualRowSteepest : public ClpDualRowPivot {
22
23 public:
24
26
27
29 virtual int pivotRow();
30
33 virtual double updateWeights(CoinIndexedVector * input,
34 CoinIndexedVector * spare,
35 CoinIndexedVector * spare2,
36 CoinIndexedVector * updatedColumn);
37
42 virtual void updatePrimalSolution(CoinIndexedVector * input,
43 double theta,
44 double & changeInObjective);
45
56 virtual void saveWeights(ClpSimplex * model, int mode);
58 void passInSavedWeights(const CoinIndexedVector * saved);
60 inline CoinIndexedVector * savedWeights()
61 { return savedWeights_;}
63 virtual void unrollWeights();
65 virtual void clearArrays();
67 virtual bool looksOptimal() const;
69 virtual void maximumPivotsChanged();
71
74 enum Persistence {
75 normal = 0x00, // create (if necessary) and destroy
76 keep = 0x01 // create (if necessary) and leave
77 };
78
80
81
88 ClpDualRowSteepest(int mode = 3);
89
91 ClpDualRowSteepest(const ClpDualRowSteepest &);
92
94 ClpDualRowSteepest & operator=(const ClpDualRowSteepest& rhs);
95
97 void fill(const ClpDualRowSteepest& rhs);
98
100 virtual ~ClpDualRowSteepest ();
101
103 virtual ClpDualRowPivot * clone(bool copyData = true) const;
104
106
108 inline int mode() const {
110 return mode_;
111 }
113 inline void setMode(int mode) {
114 mode_ = mode;
115 }
117 inline void setPersistence(Persistence life) {
118 persistence_ = life;
119 }
120 inline Persistence persistence() const {
121 return persistence_ ;
122 }
124
125 //---------------------------------------------------------------------------
126
127 private:
129
134 int state_;
137 int mode_;
139 Persistence persistence_;
141 double * weights_;
143 CoinIndexedVector * infeasible_;
145 CoinIndexedVector * alternateWeights_;
147 CoinIndexedVector * savedWeights_;
149 int * dubiousWeights_;
151 };
152
153 #endif
ClpDualRowSteepest::keep
Definition: ClpDualRowSteepest.hpp:76
ClpDualRowSteepest::mode
int mode() const
Mode.
Definition: ClpDualRowSteepest.hpp:109
ClpDualRowSteepest::looksOptimal
virtual bool looksOptimal() const
Returns true if would not find any row.
ClpDualRowSteepest::Persistence
Persistence
enums for persistence
Definition: ClpDualRowSteepest.hpp:74
ClpDualRowSteepest::clone
virtual ClpDualRowPivot * clone(bool copyData=true) const
Clone.
ClpDualRowSteepest
Dual Row Pivot Steepest Edge Algorithm Class.
Definition: ClpDualRowSteepest.hpp:21
ClpDualRowSteepest::updatePrimalSolution
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...
ClpDualRowSteepest::state_
int state_
Status 0) Normal -1) Needs initialization 1) Weights are stored by sequence number.
Definition: ClpDualRowSteepest.hpp:134
ClpDualRowSteepest::setPersistence
void setPersistence(Persistence life)
Set/ get persistence.
Definition: ClpDualRowSteepest.hpp:117
ClpDualRowSteepest::clearArrays
virtual void clearArrays()
Gets rid of all arrays.
ClpDualRowSteepest::savedWeights
CoinIndexedVector * savedWeights()
Get saved weights.
Definition: ClpDualRowSteepest.hpp:60
ClpDualRowSteepest::infeasible_
CoinIndexedVector * infeasible_
square of infeasibility array (just for infeasible rows)
Definition: ClpDualRowSteepest.hpp:143
ClpDualRowSteepest::updateWeights
virtual double updateWeights(CoinIndexedVector *input, CoinIndexedVector *spare, CoinIndexedVector *spare2, CoinIndexedVector *updatedColumn)
Updates weights and returns pivot alpha.
ClpDualRowPivot.hpp
ClpDualRowSteepest::setMode
void setMode(int mode)
Set mode.
Definition: ClpDualRowSteepest.hpp:113
ClpDualRowSteepest::mode_
int mode_
If 0 then we are using uninitialized weights, 1 then full, if 2 then uninitialized partial...
Definition: ClpDualRowSteepest.hpp:137
ClpDualRowSteepest::maximumPivotsChanged
virtual void maximumPivotsChanged()
Called when maximum pivots changes.
ClpDualRowSteepest::persistence_
Persistence persistence_
Life of weights.
Definition: ClpDualRowSteepest.hpp:139
ClpDualRowSteepest::fill
void fill(const ClpDualRowSteepest &rhs)
Fill most values.
ClpSimplex
This solves LPs using the simplex method.
Definition: ClpSimplex.hpp:70
ClpDualRowSteepest::alternateWeights_
CoinIndexedVector * alternateWeights_
alternate weight array (so we can unroll)
Definition: ClpDualRowSteepest.hpp:145
CoinIndexedVector
Indexed Vector.
Definition: CoinIndexedVector.hpp:104
ClpDualRowSteepest::unrollWeights
virtual void unrollWeights()
Gets rid of last update.
ClpDualRowSteepest::normal
Definition: ClpDualRowSteepest.hpp:75
ClpDualRowSteepest::pivotRow
virtual int pivotRow()
Returns pivot row, -1 if none.
ClpDualRowSteepest::saveWeights
virtual void saveWeights(ClpSimplex *model, int mode)
Saves any weights round factorization as pivot rows may change Save model May also recompute infeasib...
ClpDualRowSteepest::dubiousWeights_
int * dubiousWeights_
Dubious weights.
Definition: ClpDualRowSteepest.hpp:149
ClpDualRowSteepest::weights_
double * weights_
weight array
Definition: ClpDualRowSteepest.hpp:141
ClpDualRowSteepest::savedWeights_
CoinIndexedVector * savedWeights_
save weight array (so we can use checkpoint)
Definition: ClpDualRowSteepest.hpp:147
ClpDualRowSteepest::persistence
Persistence persistence() const
Definition: ClpDualRowSteepest.hpp:120
ClpDualRowPivot
Dual Row Pivot Abstract Base Class.
Definition: ClpDualRowPivot.hpp:22
ClpDualRowSteepest::operator=
ClpDualRowSteepest & operator=(const ClpDualRowSteepest &rhs)
Assignment operator.
ClpDualRowSteepest::~ClpDualRowSteepest
virtual ~ClpDualRowSteepest()
Destructor.
ClpDualRowPivot::model
ClpSimplex * model()
Returns model.
Definition: ClpDualRowPivot.hpp:99
ClpDualRowSteepest::passInSavedWeights
void passInSavedWeights(const CoinIndexedVector *saved)
Pass in saved weights.
ClpDualRowSteepest::ClpDualRowSteepest
ClpDualRowSteepest(int mode=3)
Default Constructor 0 is uninitialized, 1 full, 2 is partial uninitialized, 3 starts as 2 but may swi...