Clp
1.17.8
Clp
src
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
25
class
ClpPEDualRowDantzig
:
public
ClpDualRowDantzig
{
26
27
public
:
29
ClpPEDualRowDantzig
(
double
psi = 0.5);
30
32
ClpPEDualRowDantzig
(
const
ClpPEDualRowDantzig
&);
33
35
ClpPEDualRowDantzig
&
operator=
(
const
ClpPEDualRowDantzig
&rhs);
36
38
virtual
~ClpPEDualRowDantzig
();
39
41
virtual
ClpDualRowPivot
*
clone
(
bool
copyData =
true
)
const
;
42
43
public
:
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
65
private
:
66
/* this PESimplex object is used to identify the compatible variables */
67
ClpPESimplex
*
modelPE_
;
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 */
74
int
iCurrent_
;
75
int
iInterval_
;
76
77
/* record if previous iterations concluded that compatibles should not be checked */
78
bool
updateCompatibles_
;
79
int
coDegenCompatibles_
,
coConsecutiveCompatibles_
;
80
};
81
#endif
82
83
/* vi: softtabstop=2 shiftwidth=2 expandtab tabstop=2
84
*/
ClpSimplex
This solves LPs using the simplex method.
Definition:
ClpSimplex.hpp:106
ClpPEDualRowDantzig::psi_
double psi_
Definition:
ClpPEDualRowDantzig.hpp:71
ClpDualRowPivot::model
ClpSimplex * model()
Returns model.
Definition:
ClpDualRowPivot.hpp:100
ClpPEDualRowDantzig::saveWeights
virtual void saveWeights(ClpSimplex *model, int mode)
Save weights - this may initialize weights as well This is as parent but may initialize ClpPESimplex.
ClpNonLinearCost.hpp
ClpPEDualRowDantzig::modelPE_
ClpPESimplex * modelPE_
Definition:
ClpPEDualRowDantzig.hpp:67
ClpFactorization.hpp
ClpDualRowPivot.hpp
ClpPEDualRowDantzig::iCurrent_
int iCurrent_
Definition:
ClpPEDualRowDantzig.hpp:74
ClpPEDualRowDantzig::coDegenCompatibles_
int coDegenCompatibles_
Definition:
ClpPEDualRowDantzig.hpp:79
ClpSimplex.hpp
ClpPESimplex
BASE CLASS FOR THE IMPROVED SIMPLEX.
Definition:
ClpPESimplex.hpp:42
ClpPEDualRowDantzig::operator=
ClpPEDualRowDantzig & operator=(const ClpPEDualRowDantzig &rhs)
Assignment operator.
ClpPEDualRowDantzig::~ClpPEDualRowDantzig
virtual ~ClpPEDualRowDantzig()
Destructor.
ClpPEDualRowDantzig::clone
virtual ClpDualRowPivot * clone(bool copyData=true) const
Clone.
ClpPEDualRowDantzig
Definition:
ClpPEDualRowDantzig.hpp:25
ClpPEDualRowDantzig::pivotRow
virtual int pivotRow()
Returns pivot row, -1 if none.
ClpPESimplex.hpp
ClpDualRowPivot
Dual Row Pivot Abstract Base Class.
Definition:
ClpDualRowPivot.hpp:22
ClpSimplexDual.hpp
ClpPackedMatrix.hpp
ClpPEDualRowDantzig::ClpPEDualRowDantzig
ClpPEDualRowDantzig(double psi=0.5)
Default Constructor.
ClpDualRowDantzig.hpp
ClpPEDualRowDantzig::updateWeights
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::coConsecutiveCompatibles_
int coConsecutiveCompatibles_
Definition:
ClpPEDualRowDantzig.hpp:79
ClpPEDualRowDantzig::updateCompatibles_
bool updateCompatibles_
Definition:
ClpPEDualRowDantzig.hpp:78
ClpDualRowDantzig
Dual Row Pivot Dantzig Algorithm Class.
Definition:
ClpDualRowDantzig.hpp:19
ClpPEDualRowDantzig::iInterval_
int iInterval_
Definition:
ClpPEDualRowDantzig.hpp:75
Generated by
1.8.17