Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
opt
build
coinor-cbc
coinor-cbc-2.5.0
Cbc
src
CbcParam.hpp
Go to the documentation of this file.
1
/* $Id: CbcParam.hpp 1432 2010-02-07 19:33:53Z bjarni $ */
2
// Copyright (C) 2002, International Business Machines
3
// Corporation and others. All Rights Reserved.
4
5
#ifndef CbcParam_H
6
#define CbcParam_H
7
8
#include "OsiSolverInterface.hpp"
9
#include "
CbcModel.hpp
"
10
class
ClpSimplex;
34
enum
CbcParameterType
35
36
{
CBC_PARAM_GENERALQUERY
= -100,
37
CBC_PARAM_FULLGENERALQUERY
,
38
39
CLP_PARAM_DBL_PRIMALTOLERANCE
= 1,
40
CLP_PARAM_DBL_DUALTOLERANCE
,
41
CBC_PARAM_DBL_CUTOFF
,
42
CLP_PARAM_DBL_TIMELIMIT
,
43
CLP_PARAM_DBL_DUALBOUND
,
44
CLP_PARAM_DBL_PRIMALWEIGHT
,
45
CLP_PARAM_DBL_OBJSCALE
,
46
CLP_PARAM_DBL_RHSSCALE
,
47
48
CBC_PARAM_DBL_INFEASIBILITYWEIGHT
= 51,
49
CBC_PARAM_DBL_INTEGERTOLERANCE
,
50
CBC_PARAM_DBL_INCREMENT
,
51
CBC_PARAM_DBL_ALLOWABLEGAP
,
52
53
CBC_PARAM_DBL_DJFIX
= 81,
54
CBC_PARAM_DBL_GAPRATIO
,
55
CBC_PARAM_DBL_TIGHTENFACTOR
,
56
57
CLP_PARAM_INT_LOGLEVEL
= 101,
58
CLP_PARAM_INT_SOLVERLOGLEVEL
,
59
CBC_PARAM_INT_MAXNODES
,
60
CBC_PARAM_INT_STRONGBRANCHING
,
61
CLP_PARAM_INT_MAXFACTOR
,
62
CLP_PARAM_INT_PERTVALUE
,
63
CLP_PARAM_INT_MAXITERATION
,
64
CLP_PARAM_INT_PRESOLVEPASS
,
65
CLP_PARAM_INT_IDIOT
,
66
CLP_PARAM_INT_SPRINT
,
67
CLP_PARAM_INT_OUTPUTFORMAT
,
68
CLP_PARAM_INT_SLPVALUE
,
69
CLP_PARAM_INT_PRESOLVEOPTIONS
,
70
CLP_PARAM_INT_PRINTOPTIONS
,
71
CLP_PARAM_INT_SPECIALOPTIONS
,
72
73
CLP_PARAM_STR_DIRECTION
= 201,
74
CLP_PARAM_STR_DUALPIVOT
,
75
CLP_PARAM_STR_SCALING
,
76
CLP_PARAM_STR_ERRORSALLOWED
,
77
CLP_PARAM_STR_KEEPNAMES
,
78
CLP_PARAM_STR_SPARSEFACTOR
,
79
CLP_PARAM_STR_PRIMALPIVOT
,
80
CLP_PARAM_STR_PRESOLVE
,
81
CLP_PARAM_STR_CRASH
,
82
CLP_PARAM_STR_BIASLU
,
83
CLP_PARAM_STR_PERTURBATION
,
84
CLP_PARAM_STR_MESSAGES
,
85
CLP_PARAM_STR_AUTOSCALE
,
86
CLP_PARAM_STR_CHOLESKY
,
87
CLP_PARAM_STR_KKT
,
88
CLP_PARAM_STR_BARRIERSCALE
,
89
CLP_PARAM_STR_GAMMA
,
90
CLP_PARAM_STR_CROSSOVER
,
91
CLP_PARAM_STR_PFI
,
92
CLP_PARAM_NOTUSED_ALGORITHM
,
93
94
CBC_PARAM_STR_NODESTRATEGY
= 251,
95
CBC_PARAM_STR_BRANCHSTRATEGY
,
96
CBC_PARAM_NOTUSED_ADDCUTSSTRATEGY
,
97
CBC_PARAM_STR_GOMORYCUTS
,
98
CBC_PARAM_STR_PROBINGCUTS
,
99
CBC_PARAM_STR_KNAPSACKCUTS
,
100
CBC_PARAM_NOTUSED_ODDHOLECUTS
,
101
CBC_PARAM_STR_ROUNDING
,
102
CBC_PARAM_STR_SOLVER
,
103
CBC_PARAM_STR_CLIQUECUTS
,
104
CBC_PARAM_STR_COSTSTRATEGY
,
105
CBC_PARAM_STR_FLOWCUTS
,
106
CBC_PARAM_STR_MIXEDCUTS
,
107
CBC_PARAM_STR_TWOMIRCUTS
,
108
CBC_PARAM_STR_PREPROCESS
,
109
110
CLP_PARAM_ACTION_DIRECTORY
= 301,
111
CLP_PARAM_ACTION_IMPORT
,
112
CLP_PARAM_ACTION_EXPORT
,
113
CLP_PARAM_ACTION_RESTORE
,
114
CLP_PARAM_ACTION_SAVE
,
115
CLP_PARAM_ACTION_DUALSIMPLEX
,
116
CLP_PARAM_ACTION_PRIMALSIMPLEX
,
117
CLP_PARAM_ACTION_MAXIMIZE
,
118
CLP_PARAM_ACTION_MINIMIZE
,
119
CLP_PARAM_ACTION_EXIT
,
120
CLP_PARAM_ACTION_STDIN
,
121
CLP_PARAM_ACTION_UNITTEST
,
122
CLP_PARAM_ACTION_NETLIB_DUAL
,
123
CLP_PARAM_ACTION_NETLIB_PRIMAL
,
124
CLP_PARAM_ACTION_SOLUTION
,
125
CLP_PARAM_ACTION_TIGHTEN
,
126
CLP_PARAM_ACTION_FAKEBOUND
,
127
CLP_PARAM_ACTION_HELP
,
128
CLP_PARAM_ACTION_PLUSMINUS
,
129
CLP_PARAM_ACTION_NETWORK
,
130
CLP_PARAM_ACTION_ALLSLACK
,
131
CLP_PARAM_ACTION_REVERSE
,
132
CLP_PARAM_ACTION_BARRIER
,
133
CLP_PARAM_ACTION_NETLIB_BARRIER
,
134
CLP_PARAM_ACTION_REALLY_SCALE
,
135
CLP_PARAM_ACTION_BASISIN
,
136
CLP_PARAM_ACTION_BASISOUT
,
137
CLP_PARAM_ACTION_SOLVECONTINUOUS
,
138
CBC_PARAM_ACTION_BAB
,
139
CBC_PARAM_ACTION_MIPLIB
,
140
CLP_PARAM_ACTION_CLEARCUTS
,
141
CLP_VERSION_NOTUSED_PRINTVERSION
,
142
143
CBC_PARAM_NOTUSED_OSLSTUFF
= 401,
144
CBC_PARAM_NOTUSED_CBCSTUFF
,
145
146
CBC_PARAM_NOTUSED_INVALID
= 1000
147
};
148
149
151
152
class
CbcParam
{
153
154
public
:
155
158
CbcParam
( );
160
CbcParam
(std::string
name
, std::string help,
161
double
lower,
double
upper,
CbcParameterType
type
,
bool
display =
true
);
162
CbcParam
(std::string name, std::string help,
163
int
lower,
int
upper,
CbcParameterType
type,
bool
display =
true
);
164
// Other strings will be added by insert
165
CbcParam
(std::string name, std::string help, std::string firstValue,
166
CbcParameterType
type,
int
defaultIndex = 0,
bool
display =
true
);
167
// Action
168
CbcParam
(std::string name, std::string help,
169
CbcParameterType
type,
int
indexNumber
= -1,
bool
display =
true
);
171
CbcParam
(
const
CbcParam
&);
173
CbcParam
&
operator=
(
const
CbcParam
& rhs);
175
~CbcParam
( );
177
180
void
append
(std::string keyWord);
183
void
addHelp
(std::string keyWord);
185
inline
std::string
name
( )
const
{
186
return
name_
;
187
};
189
inline
std::string
shortHelp
( )
const
{
190
return
shortHelp_
;
191
};
193
int
setDoubleParameter
(
CbcModel
& model,
double
value)
const
;
195
double
doubleParameter
(
CbcModel
& model)
const
;
197
int
setIntParameter
(
CbcModel
& model,
int
value)
const
;
199
int
intParameter
(
CbcModel
& model)
const
;
201
int
setDoubleParameter
(ClpSimplex * model,
double
value)
const
;
203
double
doubleParameter
(ClpSimplex * model)
const
;
205
int
setIntParameter
(ClpSimplex * model,
int
value)
const
;
207
int
intParameter
(ClpSimplex * model)
const
;
209
int
setDoubleParameter
(OsiSolverInterface * model,
double
value)
const
;
211
double
doubleParameter
(OsiSolverInterface * model)
const
;
213
int
setIntParameter
(OsiSolverInterface * model,
int
value)
const
;
215
int
intParameter
(OsiSolverInterface * model)
const
;
217
int
checkDoubleParameter
(
double
value)
const
;
219
std::string
matchName
( )
const
;
221
int
parameterOption
( std::string check )
const
;
223
void
printOptions
( )
const
;
225
inline
std::string
currentOption
( )
const
{
226
return
definedKeyWords_
[
currentKeyWord_
];
227
}
229
inline
void
setCurrentOption
(
int
value ) {
230
currentKeyWord_
= value;
231
}
233
inline
void
setIntValue
(
int
value ) {
234
intValue_
= value;
235
}
236
inline
int
intValue
()
const
{
237
return
intValue_
;
238
}
240
inline
void
setDoubleValue
(
double
value ) {
241
doubleValue_
= value;
242
}
243
inline
double
doubleValue
()
const
{
244
return
doubleValue_
;
245
}
247
inline
void
setStringValue
( std::string value ) {
248
stringValue_
= value;
249
}
250
inline
std::string
stringValue
()
const
{
251
return
stringValue_
;
252
}
254
int
matches
(std::string input)
const
;
256
inline
CbcParameterType
type
()
const
{
257
return
type_
;
258
}
260
inline
bool
displayThis
()
const
{
261
return
display_
;
262
}
264
inline
void
setLonghelp
(
const
std::string help) {
265
longHelp_
= help;
266
}
268
void
printLongHelp
()
const
;
270
void
printString
()
const
;
272
inline
int
indexNumber
()
const
{
273
return
indexNumber_
;
274
}
275
private
:
277
void
gutsOfConstructor
();
279
private
:
281
286
// Type see CbcParameterType
287
CbcParameterType
type_
;
289
double
lowerDoubleValue_
;
290
double
upperDoubleValue_
;
292
int
lowerIntValue_
;
293
int
upperIntValue_
;
294
// Length of name
295
unsigned
int
lengthName_
;
296
// Minimum match
297
unsigned
int
lengthMatch_
;
299
std::vector<std::string>
definedKeyWords_
;
301
std::string
name_
;
303
std::string
shortHelp_
;
305
std::string
longHelp_
;
307
CbcParameterType
action_
;
309
int
currentKeyWord_
;
311
bool
display_
;
313
int
intValue_
;
315
double
doubleValue_
;
317
std::string
stringValue_
;
319
int
indexNumber_
;
321
};
322
#endif
/* CbcParam_H */
323
Generated on Tue Mar 1 2016 22:38:12 by
1.8.4