Clp
1.17.11
Toggle main menu visibility
Loading...
Searching...
No Matches
Clp
src
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
15
#include "
ClpPrimalColumnSteepest.hpp
"
16
#include "
ClpFactorization.hpp
"
17
#include "
ClpPESimplex.hpp
"
18
#include <bitset>
19
20
//#############################################################################
21
class
CoinIndexedVector;
22
28
29
class
ClpPEPrimalColumnSteepest
:
public
ClpPrimalColumnSteepest
{
30
public
:
32
33
41
ClpPEPrimalColumnSteepest
(
double
psi
= 0.5,
int
mode
= 3);
42
44
ClpPEPrimalColumnSteepest
(
const
ClpPEPrimalColumnSteepest
&rhs);
45
47
ClpPEPrimalColumnSteepest
&
operator=
(
const
ClpPEPrimalColumnSteepest
&rhs);
48
50
virtual
~ClpPEPrimalColumnSteepest
();
51
53
virtual
ClpPrimalColumnPivot
*
clone
(
bool
copyData =
true
)
const
;
54
55
public
:
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
86
private
:
87
/* this PESimplex object is used to identify the compatible variables */
88
ClpPESimplex
*
modelPE_
;
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 */
95
int
iCurrent_
;
96
int
iInterval_
;
97
98
/* record if previous iterations concluded that compatibles should not be checked */
99
int
coDegenCompatibles_
;
100
int
coConsecutiveCompatibles_
;
101
bool
updateCompatibles_
;
102
};
103
104
#endif
105
106
/* vi: softtabstop=2 shiftwidth=2 expandtab tabstop=2
107
*/
ClpFactorization.hpp
ClpPESimplex.hpp
ClpPrimalColumnSteepest.hpp
ClpPEPrimalColumnSteepest::operator=
ClpPEPrimalColumnSteepest & operator=(const ClpPEPrimalColumnSteepest &rhs)
Assignment operator.
ClpPEPrimalColumnSteepest::ClpPEPrimalColumnSteepest
ClpPEPrimalColumnSteepest(const ClpPEPrimalColumnSteepest &rhs)
Copy constructor.
ClpPEPrimalColumnSteepest::iInterval_
int iInterval_
Definition
ClpPEPrimalColumnSteepest.hpp:96
ClpPEPrimalColumnSteepest::coConsecutiveCompatibles_
int coConsecutiveCompatibles_
Definition
ClpPEPrimalColumnSteepest.hpp:100
ClpPEPrimalColumnSteepest::pivotColumn
virtual int pivotColumn(CoinIndexedVector *updates, CoinIndexedVector *spareRow1, CoinIndexedVector *spareRow2, CoinIndexedVector *spareColumn1, CoinIndexedVector *spareColumn2)
Returns pivot column, -1 if none.
ClpPEPrimalColumnSteepest::coDegenCompatibles_
int coDegenCompatibles_
Definition
ClpPEPrimalColumnSteepest.hpp:99
ClpPEPrimalColumnSteepest::updateCompatibles_
bool updateCompatibles_
Definition
ClpPEPrimalColumnSteepest.hpp:101
ClpPEPrimalColumnSteepest::~ClpPEPrimalColumnSteepest
virtual ~ClpPEPrimalColumnSteepest()
Destructor.
ClpPEPrimalColumnSteepest::saveWeights
virtual void saveWeights(ClpSimplex *model, int mode)
Save weights - this may initialize weights as well This is as parent but may initialize ClpPESimplex.
ClpPEPrimalColumnSteepest::iCurrent_
int iCurrent_
Definition
ClpPEPrimalColumnSteepest.hpp:95
ClpPEPrimalColumnSteepest::psi_
double psi_
Definition
ClpPEPrimalColumnSteepest.hpp:92
ClpPEPrimalColumnSteepest::updateWeights
virtual void updateWeights(CoinIndexedVector *input)
Updates weights - as ordinary but checks for zero moves.
ClpPEPrimalColumnSteepest::ClpPEPrimalColumnSteepest
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 ...
ClpPEPrimalColumnSteepest::clone
virtual ClpPrimalColumnPivot * clone(bool copyData=true) const
Clone.
ClpPEPrimalColumnSteepest::psi
double psi() const
Definition
ClpPEPrimalColumnSteepest.hpp:81
ClpPEPrimalColumnSteepest::modelPE_
ClpPESimplex * modelPE_
Definition
ClpPEPrimalColumnSteepest.hpp:88
ClpPESimplex
BASE CLASS FOR THE IMPROVED SIMPLEX.
Definition
ClpPESimplex.hpp:42
ClpPrimalColumnPivot::model
ClpSimplex * model()
Returns model.
Definition
ClpPrimalColumnPivot.hpp:117
ClpPrimalColumnPivot::ClpPrimalColumnPivot
ClpPrimalColumnPivot()
Default Constructor.
ClpPrimalColumnSteepest::ClpPrimalColumnSteepest
ClpPrimalColumnSteepest(int mode=3)
Default Constructor 0 is exact devex, 1 full steepest, 2 is partial exact devex 3 switches between 0 ...
ClpPrimalColumnSteepest::mode
int mode() const
Mode.
Definition
ClpPrimalColumnSteepest.hpp:126
ClpSimplex
This solves LPs using the simplex method.
Definition
ClpSimplex.hpp:106
Generated by
1.17.0