Clp 1.17.5
Loading...
Searching...
No Matches
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
16#include "ClpPESimplex.hpp"
17class CoinIndexedVector;
18
19//#############################################################################
20
28
29public:
37 ClpPEDualRowSteepest(double psi = 0.5, int mode = 3);
38
41
44
47
49 virtual ClpDualRowPivot *clone(bool copyData = true) const;
50
51public:
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
80private:
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 */
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*/
Dual Row Pivot Abstract Base Class.
ClpSimplex * model()
Returns model.
Dual Row Pivot Steepest Edge Algorithm Class.
Dual Row Pivot Steepest Edge Algorithm Class.
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...
virtual int pivotRow()
Returns pivot row, -1 if none.
virtual ~ClpPEDualRowSteepest()
Destructor.
ClpPEDualRowSteepest(const ClpPEDualRowSteepest &)
Copy constructor.
ClpPEDualRowSteepest & operator=(const ClpPEDualRowSteepest &rhs)
Assignment operator.
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.
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...
BASE CLASS FOR THE IMPROVED SIMPLEX.
This solves LPs using the simplex method.