SoPlex Doxygen Documentation
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
src
spxparmultpr.h
Go to the documentation of this file.
1
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2
/* */
3
/* This file is part of the class library */
4
/* SoPlex --- the Sequential object-oriented simPlex. */
5
/* */
6
/* Copyright (C) 1996-2012 Konrad-Zuse-Zentrum */
7
/* fuer Informationstechnik Berlin */
8
/* */
9
/* SoPlex is distributed under the terms of the ZIB Academic Licence. */
10
/* */
11
/* You should have received a copy of the ZIB Academic License */
12
/* along with SoPlex; see the file COPYING. If not email to soplex@zib.de. */
13
/* */
14
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
15
16
/**@file spxparmultpr.h
17
* @brief Partial multiple pricing.
18
*/
19
#ifndef _SPXPARMULTPR_H_
20
#define _SPXPARMULTPR_H_
21
22
#include <assert.h>
23
24
#include "
spxdefines.h
"
25
#include "
spxpricer.h
"
26
#include "
dataarray.h
"
27
#include "
array.h
"
28
#include "
ssvector.h
"
29
30
namespace
soplex
31
{
32
33
/**@brief Partial multiple pricing.
34
@ingroup Algo
35
36
Class SPxParMultPr is an implementation class for SPxPricer implementing
37
Dantzig's default pricing strategy with partial multiple pricing.
38
Partial multiple pricing applies to the entering Simplex only. A set of
39
#partialSize eligible pivot indices is selected (partial pricing). In the
40
following Simplex iterations pricing is restricted to these indices
41
(multiple pricing) until no more eliiable pivots are available. Partial
42
multiple pricing significantly reduces the computation time for computing
43
the matrix-vector-product in the Simplex algorithm.
44
45
See SPxPricer for a class documentation.
46
*/
47
class
SPxParMultPR
:
public
SPxPricer
48
{
49
private
:
50
51
//-------------------------------------
52
/**@name Private types */
53
//@{
54
/// Helper structure.
55
struct
SPxParMultPr_Tmp
56
{
57
///
58
SPxId
id
;
59
///
60
Real
test
;
61
};
62
//@}
63
64
//-------------------------------------
65
/**@name Helper data */
66
//@{
67
///
68
DataArray < SPxParMultPr_Tmp >
pricSet
;
69
///
70
int
multiParts
;
71
///
72
int
used
;
73
///
74
int
min
;
75
///
76
int
last
;
77
/// Set size for partial pricing.
78
static
int
partialSize
;
79
//@}
80
81
public
:
82
83
//-------------------------------------
84
/**@name Construction / destruction */
85
//@{
86
/// default constructor
87
SPxParMultPR
()
88
:
SPxPricer
(
"ParMult"
)
89
{}
90
/// copy constructor
91
SPxParMultPR
(
const
SPxParMultPR
& old)
92
:
SPxPricer
(old)
93
,
pricSet
(old.
pricSet
)
94
,
multiParts
(old.
multiParts
)
95
,
used
(old.
used
)
96
,
min
(old.
min
)
97
,
last
(old.
last
)
98
{
99
partialSize
= old.
partialSize
;
100
}
101
/// assignment operator
102
SPxParMultPR
&
operator=
(
const
SPxParMultPR
& rhs)
103
{
104
if
(
this
!= &rhs)
105
{
106
SPxPricer::operator=
(rhs);
107
pricSet
= rhs.
pricSet
;
108
multiParts
= rhs.
multiParts
;
109
used
= rhs.
used
;
110
min
= rhs.
min
;
111
last
= rhs.
last
;
112
partialSize
= rhs.
partialSize
;
113
}
114
115
return
*
this
;
116
}
117
/// destructor
118
virtual
~SPxParMultPR
()
119
{}
120
/// clone function for polymorphism
121
inline
virtual
SPxPricer
*
clone
()
const
122
{
123
return
new
SPxParMultPR
(*
this
);
124
}
125
//@}
126
127
//-------------------------------------
128
/**@name Interface */
129
//@{
130
/// set the solver
131
virtual
void
load
(
SPxSolver
*
solver
);
132
/// set entering or leaving algorithm
133
virtual
void
setType
(
SPxSolver::Type
tp);
134
///
135
virtual
int
selectLeave
();
136
///
137
virtual
SPxId
selectEnter
();
138
//@}
139
140
};
141
142
143
}
// namespace soplex
144
#endif // _SPXPARMULTPRR_H_
145
146
//-----------------------------------------------------------------------------
147
//Emacs Local Variables:
148
//Emacs mode:c++
149
//Emacs c-basic-offset:3
150
//Emacs tab-width:8
151
//Emacs indent-tabs-mode:nil
152
//Emacs End:
153
//-----------------------------------------------------------------------------
© 2003-2013 by Zuse Institute Berlin (ZIB),
Imprint
Generated on Wed Jan 9 2013 for SoPlex by
doxygen