Cbc  2.10.8
CbcParam.hpp
Go to the documentation of this file.
1 /* $Id$ */
2 // Copyright (C) 2002, International Business Machines
3 // Corporation and others. All Rights Reserved.
4 // This code is licensed under the terms of the Eclipse Public License (EPL).
5 
6 #ifndef CbcParam_H
7 #define CbcParam_H
8 
9 #include "OsiSolverInterface.hpp"
10 #include "CbcModel.hpp"
11 class ClpSimplex;
36 
39 
48 
53 
57 
73 
94 
110 
143 
146 
148 };
149 
151 
152 class CbcParam {
153 
154 public:
159  CbcParam(std::string name, std::string help,
160  double lower, double upper, CbcParameterType type, bool display = true);
161  CbcParam(std::string name, std::string help,
162  int lower, int upper, CbcParameterType type, bool display = true);
163  // Other strings will be added by insert
164  CbcParam(std::string name, std::string help, std::string firstValue,
165  CbcParameterType type, int defaultIndex = 0, bool display = true);
166  // Action
167  CbcParam(std::string name, std::string help,
168  CbcParameterType type, int indexNumber = -1, bool display = true);
170  CbcParam(const CbcParam &);
176 
180  void append(std::string keyWord);
182  void addHelp(std::string keyWord);
184  inline std::string name() const
185  {
186  return name_;
187  };
189  inline std::string shortHelp() const
190  {
191  return shortHelp_;
192  };
194  int setDoubleParameter(CbcModel &model, double value) const;
196  double doubleParameter(CbcModel &model) const;
198  int setIntParameter(CbcModel &model, int value) const;
200  int intParameter(CbcModel &model) const;
202  int setDoubleParameter(ClpSimplex *model, double value) const;
204  double doubleParameter(ClpSimplex *model) const;
206  int setIntParameter(ClpSimplex *model, int value) const;
208  int intParameter(ClpSimplex *model) const;
210  int setDoubleParameter(OsiSolverInterface *model, double value) const;
212  double doubleParameter(OsiSolverInterface *model) const;
214  int setIntParameter(OsiSolverInterface *model, int value) const;
216  int intParameter(OsiSolverInterface *model) const;
218  int checkDoubleParameter(double value) const;
220  std::string matchName() const;
222  int parameterOption(std::string check) const;
224  void printOptions() const;
226  inline std::string currentOption() const
227  {
229  }
231  inline void setCurrentOption(int value)
232  {
233  currentKeyWord_ = value;
234  }
236  inline void setIntValue(int value)
237  {
238  intValue_ = value;
239  }
240  inline int intValue() const
241  {
242  return intValue_;
243  }
245  inline void setDoubleValue(double value)
246  {
247  doubleValue_ = value;
248  }
249  inline double doubleValue() const
250  {
251  return doubleValue_;
252  }
254  inline void setStringValue(std::string value)
255  {
256  stringValue_ = value;
257  }
258  inline std::string stringValue() const
259  {
260  return stringValue_;
261  }
263  int matches(std::string input) const;
265  inline CbcParameterType type() const
266  {
267  return type_;
268  }
270  inline bool displayThis() const
271  {
272  return display_;
273  }
275  inline void setLonghelp(const std::string help)
276  {
277  longHelp_ = help;
278  }
280  void printLongHelp() const;
282  void printString() const;
284  inline int indexNumber() const
285  {
286  return indexNumber_;
287  }
288 
289 private:
293 private:
299  // Type see CbcParameterType
307  // Length of name
308  unsigned int lengthName_;
309  // Minimum match
310  unsigned int lengthMatch_;
312  std::vector< std::string > definedKeyWords_;
314  std::string name_;
316  std::string shortHelp_;
318  std::string longHelp_;
324  bool display_;
328  double doubleValue_;
330  std::string stringValue_;
334 };
335 #endif /* CbcParam_H */
336 
337 /* vi: softtabstop=2 shiftwidth=2 expandtab tabstop=2
338 */
CbcParameterType
Parameter codes.
Definition: CbcParam.hpp:37
@ CBC_PARAM_NOTUSED_CBCSTUFF
Definition: CbcParam.hpp:145
@ CBC_PARAM_STR_PREPROCESS
Definition: CbcParam.hpp:109
@ CLP_PARAM_STR_CROSSOVER
Definition: CbcParam.hpp:91
@ CLP_PARAM_ACTION_PRIMALSIMPLEX
Definition: CbcParam.hpp:117
@ CLP_PARAM_ACTION_DUALSIMPLEX
Definition: CbcParam.hpp:116
@ CBC_PARAM_ACTION_MIPLIB
Definition: CbcParam.hpp:140
@ CLP_PARAM_DBL_OBJSCALE
Definition: CbcParam.hpp:46
@ CLP_PARAM_STR_CHOLESKY
Definition: CbcParam.hpp:87
@ CBC_PARAM_NOTUSED_INVALID
Definition: CbcParam.hpp:147
@ CLP_PARAM_DBL_TIMELIMIT
Definition: CbcParam.hpp:43
@ CLP_PARAM_INT_LOGLEVEL
Definition: CbcParam.hpp:58
@ CLP_PARAM_ACTION_NETWORK
Definition: CbcParam.hpp:130
@ CLP_PARAM_STR_PFI
Definition: CbcParam.hpp:92
@ CLP_PARAM_ACTION_DIRECTORY
Definition: CbcParam.hpp:111
@ CBC_PARAM_DBL_INFEASIBILITYWEIGHT
Definition: CbcParam.hpp:49
@ CLP_PARAM_STR_DUALPIVOT
Definition: CbcParam.hpp:75
@ CLP_PARAM_STR_MESSAGES
Definition: CbcParam.hpp:85
@ CBC_PARAM_STR_COSTSTRATEGY
Definition: CbcParam.hpp:105
@ CLP_PARAM_STR_SPARSEFACTOR
Definition: CbcParam.hpp:79
@ CLP_PARAM_ACTION_UNITTEST
Definition: CbcParam.hpp:122
@ CLP_PARAM_INT_PRESOLVEPASS
Definition: CbcParam.hpp:65
@ CBC_PARAM_STR_NODESTRATEGY
Definition: CbcParam.hpp:95
@ CBC_PARAM_DBL_DJFIX
Definition: CbcParam.hpp:54
@ CBC_PARAM_STR_ROUNDING
Definition: CbcParam.hpp:102
@ CLP_PARAM_DBL_RHSSCALE
Definition: CbcParam.hpp:47
@ CLP_PARAM_STR_DIRECTION
Definition: CbcParam.hpp:74
@ CBC_PARAM_STR_CLIQUECUTS
Definition: CbcParam.hpp:104
@ CLP_PARAM_INT_MAXFACTOR
Definition: CbcParam.hpp:62
@ CLP_PARAM_STR_KEEPNAMES
Definition: CbcParam.hpp:78
@ CBC_PARAM_STR_MIXEDCUTS
Definition: CbcParam.hpp:107
@ CLP_PARAM_ACTION_ALLSLACK
Definition: CbcParam.hpp:131
@ CLP_PARAM_STR_CRASH
Definition: CbcParam.hpp:82
@ CLP_VERSION_NOTUSED_PRINTVERSION
Definition: CbcParam.hpp:142
@ CLP_PARAM_ACTION_HELP
Definition: CbcParam.hpp:128
@ CLP_PARAM_ACTION_EXPORT
Definition: CbcParam.hpp:113
@ CLP_PARAM_INT_PRESOLVEOPTIONS
Definition: CbcParam.hpp:70
@ CBC_PARAM_STR_BRANCHSTRATEGY
Definition: CbcParam.hpp:96
@ CBC_PARAM_DBL_INCREMENT
Definition: CbcParam.hpp:51
@ CBC_PARAM_DBL_ALLOWABLEGAP
Definition: CbcParam.hpp:52
@ CLP_PARAM_ACTION_NETLIB_PRIMAL
Definition: CbcParam.hpp:124
@ CLP_PARAM_ACTION_PLUSMINUS
Definition: CbcParam.hpp:129
@ CLP_PARAM_DBL_PRIMALWEIGHT
Definition: CbcParam.hpp:45
@ CBC_PARAM_DBL_TIGHTENFACTOR
Definition: CbcParam.hpp:56
@ CLP_PARAM_INT_IDIOT
Definition: CbcParam.hpp:66
@ CLP_PARAM_ACTION_CLEARCUTS
Definition: CbcParam.hpp:141
@ CLP_PARAM_ACTION_IMPORT
Definition: CbcParam.hpp:112
@ CLP_PARAM_INT_SPECIALOPTIONS
Definition: CbcParam.hpp:72
@ CBC_PARAM_ACTION_BAB
Definition: CbcParam.hpp:139
@ CLP_PARAM_INT_SLPVALUE
Definition: CbcParam.hpp:69
@ CBC_PARAM_INT_MAXNODES
Definition: CbcParam.hpp:60
@ CLP_PARAM_STR_PERTURBATION
Definition: CbcParam.hpp:84
@ CLP_PARAM_INT_PRINTOPTIONS
Definition: CbcParam.hpp:71
@ CLP_PARAM_INT_OUTPUTFORMAT
Definition: CbcParam.hpp:68
@ CLP_PARAM_ACTION_STDIN
Definition: CbcParam.hpp:121
@ CLP_PARAM_ACTION_BASISOUT
Definition: CbcParam.hpp:137
@ CLP_PARAM_DBL_PRIMALTOLERANCE
Definition: CbcParam.hpp:40
@ CLP_PARAM_ACTION_NETLIB_BARRIER
Definition: CbcParam.hpp:134
@ CLP_PARAM_INT_MAXITERATION
Definition: CbcParam.hpp:64
@ CLP_PARAM_DBL_DUALTOLERANCE
Definition: CbcParam.hpp:41
@ CLP_PARAM_ACTION_TIGHTEN
Definition: CbcParam.hpp:126
@ CLP_PARAM_ACTION_MINIMIZE
Definition: CbcParam.hpp:119
@ CBC_PARAM_STR_TWOMIRCUTS
Definition: CbcParam.hpp:108
@ CLP_PARAM_ACTION_REALLY_SCALE
Definition: CbcParam.hpp:135
@ CLP_PARAM_ACTION_FAKEBOUND
Definition: CbcParam.hpp:127
@ CLP_PARAM_NOTUSED_ALGORITHM
Definition: CbcParam.hpp:93
@ CLP_PARAM_ACTION_MAXIMIZE
Definition: CbcParam.hpp:118
@ CLP_PARAM_STR_PRIMALPIVOT
Definition: CbcParam.hpp:80
@ CBC_PARAM_GENERALQUERY
Definition: CbcParam.hpp:37
@ CBC_PARAM_DBL_GAPRATIO
Definition: CbcParam.hpp:55
@ CBC_PARAM_NOTUSED_ADDCUTSSTRATEGY
Definition: CbcParam.hpp:97
@ CBC_PARAM_STR_KNAPSACKCUTS
Definition: CbcParam.hpp:100
@ CLP_PARAM_STR_PRESOLVE
Definition: CbcParam.hpp:81
@ CBC_PARAM_STR_SOLVER
Definition: CbcParam.hpp:103
@ CBC_PARAM_STR_GOMORYCUTS
Definition: CbcParam.hpp:98
@ CBC_PARAM_STR_PROBINGCUTS
Definition: CbcParam.hpp:99
@ CLP_PARAM_ACTION_SOLUTION
Definition: CbcParam.hpp:125
@ CBC_PARAM_FULLGENERALQUERY
Definition: CbcParam.hpp:38
@ CLP_PARAM_STR_GAMMA
Definition: CbcParam.hpp:90
@ CLP_PARAM_STR_ERRORSALLOWED
Definition: CbcParam.hpp:77
@ CLP_PARAM_ACTION_EXIT
Definition: CbcParam.hpp:120
@ CLP_PARAM_ACTION_BASISIN
Definition: CbcParam.hpp:136
@ CBC_PARAM_STR_FLOWCUTS
Definition: CbcParam.hpp:106
@ CLP_PARAM_STR_BARRIERSCALE
Definition: CbcParam.hpp:89
@ CLP_PARAM_DBL_DUALBOUND
Definition: CbcParam.hpp:44
@ CLP_PARAM_ACTION_REVERSE
Definition: CbcParam.hpp:132
@ CLP_PARAM_INT_SOLVERLOGLEVEL
Definition: CbcParam.hpp:59
@ CLP_PARAM_ACTION_RESTORE
Definition: CbcParam.hpp:114
@ CLP_PARAM_STR_AUTOSCALE
Definition: CbcParam.hpp:86
@ CLP_PARAM_ACTION_SOLVECONTINUOUS
Definition: CbcParam.hpp:138
@ CLP_PARAM_ACTION_SAVE
Definition: CbcParam.hpp:115
@ CLP_PARAM_STR_BIASLU
Definition: CbcParam.hpp:83
@ CBC_PARAM_NOTUSED_ODDHOLECUTS
Definition: CbcParam.hpp:101
@ CBC_PARAM_DBL_INTEGERTOLERANCE
Definition: CbcParam.hpp:50
@ CLP_PARAM_ACTION_BARRIER
Definition: CbcParam.hpp:133
@ CBC_PARAM_NOTUSED_OSLSTUFF
Definition: CbcParam.hpp:144
@ CLP_PARAM_ACTION_NETLIB_DUAL
Definition: CbcParam.hpp:123
@ CLP_PARAM_INT_SPRINT
Definition: CbcParam.hpp:67
@ CBC_PARAM_INT_STRONGBRANCHING
Definition: CbcParam.hpp:61
@ CLP_PARAM_STR_KKT
Definition: CbcParam.hpp:88
@ CBC_PARAM_DBL_CUTOFF
Definition: CbcParam.hpp:42
@ CLP_PARAM_STR_SCALING
Definition: CbcParam.hpp:76
@ CLP_PARAM_INT_PERTVALUE
Definition: CbcParam.hpp:63
Simple Branch and bound class.
Definition: CbcModel.hpp:100
Very simple class for setting parameters.
Definition: CbcParam.hpp:152
unsigned int lengthMatch_
Definition: CbcParam.hpp:310
CbcParam & operator=(const CbcParam &rhs)
Assignment operator. This copies the data.
std::string matchName() const
Returns name which could match.
void append(std::string keyWord)
Insert string (only valid for keywords)
int checkDoubleParameter(double value) const
Checks a double parameter (nonzero code if error)
int setIntParameter(ClpSimplex *model, int value) const
Sets a int parameter (nonzero code if error)
std::string shortHelp_
Short help.
Definition: CbcParam.hpp:316
double doubleValue_
Double parameter - current value.
Definition: CbcParam.hpp:328
void setStringValue(std::string value)
Sets string value.
Definition: CbcParam.hpp:254
CbcParam(std::string name, std::string help, double lower, double upper, CbcParameterType type, bool display=true)
int setDoubleParameter(CbcModel &model, double value) const
Sets a double parameter (nonzero code if error)
void setIntValue(int value)
Sets int value.
Definition: CbcParam.hpp:236
std::string stringValue_
String parameter - current value.
Definition: CbcParam.hpp:330
int intValue() const
Definition: CbcParam.hpp:240
std::string name_
Name.
Definition: CbcParam.hpp:314
CbcParameterType action_
Action.
Definition: CbcParam.hpp:320
void printLongHelp() const
Print Long help.
double lowerDoubleValue_
If double == okay.
Definition: CbcParam.hpp:302
void setDoubleValue(double value)
Sets double value.
Definition: CbcParam.hpp:245
int upperIntValue_
Definition: CbcParam.hpp:306
int setIntParameter(OsiSolverInterface *model, int value) const
Sets a int parameter (nonzero code if error)
int currentKeyWord_
Current keyWord (if a keyword parameter)
Definition: CbcParam.hpp:322
std::string currentOption() const
Returns current parameter option.
Definition: CbcParam.hpp:226
~CbcParam()
Destructor.
int intParameter(ClpSimplex *model) const
Gets a int parameter.
void addHelp(std::string keyWord)
Adds one help line.
CbcParam(std::string name, std::string help, CbcParameterType type, int indexNumber=-1, bool display=true)
std::string name() const
Returns name.
Definition: CbcParam.hpp:184
bool display_
Display on ?
Definition: CbcParam.hpp:324
unsigned int lengthName_
Definition: CbcParam.hpp:308
std::string longHelp_
Long help.
Definition: CbcParam.hpp:318
void gutsOfConstructor()
gutsOfConstructor
void setLonghelp(const std::string help)
Set Long help.
Definition: CbcParam.hpp:275
bool displayThis() const
whether to display
Definition: CbcParam.hpp:270
void printString() const
Print action and string.
int setDoubleParameter(ClpSimplex *model, double value) const
Sets a double parameter (nonzero code if error)
int intParameter(OsiSolverInterface *model) const
Gets a int parameter.
std::string shortHelp() const
Returns short help.
Definition: CbcParam.hpp:189
CbcParam(const CbcParam &)
Copy constructor.
int matches(std::string input) const
Returns 1 if matches minimum, 2 if matches less, 0 if not matched.
CbcParameterType type_
Definition: CbcParam.hpp:300
double doubleParameter(CbcModel &model) const
Gets a double parameter.
int intParameter(CbcModel &model) const
Gets a int parameter.
std::string stringValue() const
Definition: CbcParam.hpp:258
CbcParam()
Constructors.
int indexNumber() const
type for classification
Definition: CbcParam.hpp:284
CbcParam(std::string name, std::string help, int lower, int upper, CbcParameterType type, bool display=true)
int indexNumber_
index number to use for display purposes
Definition: CbcParam.hpp:332
double doubleParameter(ClpSimplex *model) const
Gets a double parameter.
CbcParameterType type() const
type
Definition: CbcParam.hpp:265
CbcParam(std::string name, std::string help, std::string firstValue, CbcParameterType type, int defaultIndex=0, bool display=true)
void setCurrentOption(int value)
Sets current parameter option.
Definition: CbcParam.hpp:231
double doubleValue() const
Definition: CbcParam.hpp:249
int setDoubleParameter(OsiSolverInterface *model, double value) const
Sets a double parameter (nonzero code if error)
int parameterOption(std::string check) const
Returns parameter option which matches (-1 if none)
int intValue_
Integer parameter - current value.
Definition: CbcParam.hpp:326
double upperDoubleValue_
Definition: CbcParam.hpp:303
int lowerIntValue_
If int == okay.
Definition: CbcParam.hpp:305
int setIntParameter(CbcModel &model, int value) const
Sets a int parameter (nonzero code if error)
void printOptions() const
Prints parameter options.
double doubleParameter(OsiSolverInterface *model) const
Gets a double parameter.
std::vector< std::string > definedKeyWords_
set of valid strings
Definition: CbcParam.hpp:312