Cbc  2.10.10
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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:
157  CbcParam();
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 &);
172  CbcParam &operator=(const CbcParam &rhs);
174  ~CbcParam();
176 
179  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:
291  void gutsOfConstructor();
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 */
CBC_PARAM_NOTUSED_CBCSTUFF
@ CBC_PARAM_NOTUSED_CBCSTUFF
Definition: CbcParam.hpp:145
CbcParam::setCurrentOption
void setCurrentOption(int value)
Sets current parameter option.
Definition: CbcParam.hpp:231
CbcParam::definedKeyWords_
std::vector< std::string > definedKeyWords_
set of valid strings
Definition: CbcParam.hpp:312
CLP_PARAM_STR_PFI
@ CLP_PARAM_STR_PFI
Definition: CbcParam.hpp:92
CLP_PARAM_DBL_PRIMALWEIGHT
@ CLP_PARAM_DBL_PRIMALWEIGHT
Definition: CbcParam.hpp:45
CBC_PARAM_DBL_DJFIX
@ CBC_PARAM_DBL_DJFIX
Definition: CbcParam.hpp:54
CLP_PARAM_INT_PRESOLVEPASS
@ CLP_PARAM_INT_PRESOLVEPASS
Definition: CbcParam.hpp:65
CLP_PARAM_NOTUSED_ALGORITHM
@ CLP_PARAM_NOTUSED_ALGORITHM
Definition: CbcParam.hpp:93
CLP_PARAM_ACTION_MAXIMIZE
@ CLP_PARAM_ACTION_MAXIMIZE
Definition: CbcParam.hpp:118
CBC_PARAM_ACTION_MIPLIB
@ CBC_PARAM_ACTION_MIPLIB
Definition: CbcParam.hpp:140
CLP_PARAM_STR_CHOLESKY
@ CLP_PARAM_STR_CHOLESKY
Definition: CbcParam.hpp:87
CBC_PARAM_NOTUSED_INVALID
@ CBC_PARAM_NOTUSED_INVALID
Definition: CbcParam.hpp:147
CbcParam::currentOption
std::string currentOption() const
Returns current parameter option.
Definition: CbcParam.hpp:226
CLP_PARAM_ACTION_BARRIER
@ CLP_PARAM_ACTION_BARRIER
Definition: CbcParam.hpp:133
CLP_PARAM_INT_IDIOT
@ CLP_PARAM_INT_IDIOT
Definition: CbcParam.hpp:66
CbcParam::action_
CbcParameterType action_
Action.
Definition: CbcParam.hpp:320
CBC_PARAM_NOTUSED_ADDCUTSSTRATEGY
@ CBC_PARAM_NOTUSED_ADDCUTSSTRATEGY
Definition: CbcParam.hpp:97
CBC_PARAM_STR_NODESTRATEGY
@ CBC_PARAM_STR_NODESTRATEGY
Definition: CbcParam.hpp:95
CLP_PARAM_INT_PRESOLVEOPTIONS
@ CLP_PARAM_INT_PRESOLVEOPTIONS
Definition: CbcParam.hpp:70
CbcParam::displayThis
bool displayThis() const
whether to display
Definition: CbcParam.hpp:270
CbcParam::setIntValue
void setIntValue(int value)
Sets int value.
Definition: CbcParam.hpp:236
CbcParam::lengthName_
unsigned int lengthName_
Definition: CbcParam.hpp:308
CbcParam::~CbcParam
~CbcParam()
Destructor.
CbcParam::type
CbcParameterType type() const
type
Definition: CbcParam.hpp:265
CLP_PARAM_ACTION_REVERSE
@ CLP_PARAM_ACTION_REVERSE
Definition: CbcParam.hpp:132
CLP_PARAM_ACTION_SOLVECONTINUOUS
@ CLP_PARAM_ACTION_SOLVECONTINUOUS
Definition: CbcParam.hpp:138
CLP_PARAM_ACTION_TIGHTEN
@ CLP_PARAM_ACTION_TIGHTEN
Definition: CbcParam.hpp:126
CbcParam
Very simple class for setting parameters.
Definition: CbcParam.hpp:152
CLP_PARAM_ACTION_DUALSIMPLEX
@ CLP_PARAM_ACTION_DUALSIMPLEX
Definition: CbcParam.hpp:116
CLP_PARAM_INT_PRINTOPTIONS
@ CLP_PARAM_INT_PRINTOPTIONS
Definition: CbcParam.hpp:71
CBC_PARAM_NOTUSED_OSLSTUFF
@ CBC_PARAM_NOTUSED_OSLSTUFF
Definition: CbcParam.hpp:144
CLP_PARAM_ACTION_EXPORT
@ CLP_PARAM_ACTION_EXPORT
Definition: CbcParam.hpp:113
CLP_PARAM_ACTION_SOLUTION
@ CLP_PARAM_ACTION_SOLUTION
Definition: CbcParam.hpp:125
CLP_PARAM_STR_AUTOSCALE
@ CLP_PARAM_STR_AUTOSCALE
Definition: CbcParam.hpp:86
CLP_PARAM_DBL_PRIMALTOLERANCE
@ CLP_PARAM_DBL_PRIMALTOLERANCE
Definition: CbcParam.hpp:40
CLP_PARAM_ACTION_IMPORT
@ CLP_PARAM_ACTION_IMPORT
Definition: CbcParam.hpp:112
CbcParam::stringValue
std::string stringValue() const
Definition: CbcParam.hpp:258
CLP_PARAM_ACTION_DIRECTORY
@ CLP_PARAM_ACTION_DIRECTORY
Definition: CbcParam.hpp:111
CbcModel.hpp
CLP_PARAM_INT_SLPVALUE
@ CLP_PARAM_INT_SLPVALUE
Definition: CbcParam.hpp:69
CbcParam::setLonghelp
void setLonghelp(const std::string help)
Set Long help.
Definition: CbcParam.hpp:275
CbcParam::operator=
CbcParam & operator=(const CbcParam &rhs)
Assignment operator. This copies the data.
CLP_PARAM_DBL_DUALBOUND
@ CLP_PARAM_DBL_DUALBOUND
Definition: CbcParam.hpp:44
CLP_PARAM_INT_MAXFACTOR
@ CLP_PARAM_INT_MAXFACTOR
Definition: CbcParam.hpp:62
CLP_PARAM_STR_DUALPIVOT
@ CLP_PARAM_STR_DUALPIVOT
Definition: CbcParam.hpp:75
CLP_PARAM_ACTION_RESTORE
@ CLP_PARAM_ACTION_RESTORE
Definition: CbcParam.hpp:114
CLP_PARAM_INT_SPECIALOPTIONS
@ CLP_PARAM_INT_SPECIALOPTIONS
Definition: CbcParam.hpp:72
CBC_PARAM_NOTUSED_ODDHOLECUTS
@ CBC_PARAM_NOTUSED_ODDHOLECUTS
Definition: CbcParam.hpp:101
CBC_PARAM_STR_PREPROCESS
@ CBC_PARAM_STR_PREPROCESS
Definition: CbcParam.hpp:109
CLP_PARAM_STR_PRESOLVE
@ CLP_PARAM_STR_PRESOLVE
Definition: CbcParam.hpp:81
CbcParam::currentKeyWord_
int currentKeyWord_
Current keyWord (if a keyword parameter)
Definition: CbcParam.hpp:322
CLP_PARAM_ACTION_EXIT
@ CLP_PARAM_ACTION_EXIT
Definition: CbcParam.hpp:120
CBC_PARAM_STR_COSTSTRATEGY
@ CBC_PARAM_STR_COSTSTRATEGY
Definition: CbcParam.hpp:105
CBC_PARAM_STR_GOMORYCUTS
@ CBC_PARAM_STR_GOMORYCUTS
Definition: CbcParam.hpp:98
CbcParam::append
void append(std::string keyWord)
Insert string (only valid for keywords)
CbcParam::setIntParameter
int setIntParameter(CbcModel &model, int value) const
Sets a int parameter (nonzero code if error)
CLP_PARAM_ACTION_NETWORK
@ CLP_PARAM_ACTION_NETWORK
Definition: CbcParam.hpp:130
CbcParam::intParameter
int intParameter(CbcModel &model) const
Gets a int parameter.
CBC_PARAM_DBL_GAPRATIO
@ CBC_PARAM_DBL_GAPRATIO
Definition: CbcParam.hpp:55
CLP_PARAM_ACTION_REALLY_SCALE
@ CLP_PARAM_ACTION_REALLY_SCALE
Definition: CbcParam.hpp:135
CLP_PARAM_ACTION_BASISOUT
@ CLP_PARAM_ACTION_BASISOUT
Definition: CbcParam.hpp:137
CbcParam::type_
CbcParameterType type_
Definition: CbcParam.hpp:300
CBC_PARAM_DBL_ALLOWABLEGAP
@ CBC_PARAM_DBL_ALLOWABLEGAP
Definition: CbcParam.hpp:52
CLP_PARAM_ACTION_NETLIB_PRIMAL
@ CLP_PARAM_ACTION_NETLIB_PRIMAL
Definition: CbcParam.hpp:124
CbcParam::printLongHelp
void printLongHelp() const
Print Long help.
CbcParam::name_
std::string name_
Name.
Definition: CbcParam.hpp:314
CbcParam::CbcParam
CbcParam()
Constructors.
CLP_PARAM_ACTION_UNITTEST
@ CLP_PARAM_ACTION_UNITTEST
Definition: CbcParam.hpp:122
CBC_PARAM_STR_BRANCHSTRATEGY
@ CBC_PARAM_STR_BRANCHSTRATEGY
Definition: CbcParam.hpp:96
CLP_PARAM_ACTION_CLEARCUTS
@ CLP_PARAM_ACTION_CLEARCUTS
Definition: CbcParam.hpp:141
CBC_PARAM_INT_MAXNODES
@ CBC_PARAM_INT_MAXNODES
Definition: CbcParam.hpp:60
CBC_PARAM_STR_KNAPSACKCUTS
@ CBC_PARAM_STR_KNAPSACKCUTS
Definition: CbcParam.hpp:100
CbcModel
Simple Branch and bound class.
Definition: CbcModel.hpp:100
CBC_PARAM_GENERALQUERY
@ CBC_PARAM_GENERALQUERY
Definition: CbcParam.hpp:37
CbcParam::intValue_
int intValue_
Integer parameter - current value.
Definition: CbcParam.hpp:326
CbcParam::printOptions
void printOptions() const
Prints parameter options.
CBC_PARAM_DBL_CUTOFF
@ CBC_PARAM_DBL_CUTOFF
Definition: CbcParam.hpp:42
CLP_PARAM_INT_MAXITERATION
@ CLP_PARAM_INT_MAXITERATION
Definition: CbcParam.hpp:64
CLP_PARAM_INT_LOGLEVEL
@ CLP_PARAM_INT_LOGLEVEL
Definition: CbcParam.hpp:58
CbcParam::upperIntValue_
int upperIntValue_
Definition: CbcParam.hpp:306
CLP_PARAM_ACTION_STDIN
@ CLP_PARAM_ACTION_STDIN
Definition: CbcParam.hpp:121
CbcParam::display_
bool display_
Display on ?
Definition: CbcParam.hpp:324
CBC_PARAM_DBL_INTEGERTOLERANCE
@ CBC_PARAM_DBL_INTEGERTOLERANCE
Definition: CbcParam.hpp:50
CbcParam::matchName
std::string matchName() const
Returns name which could match.
CBC_PARAM_STR_CLIQUECUTS
@ CBC_PARAM_STR_CLIQUECUTS
Definition: CbcParam.hpp:104
CbcParam::longHelp_
std::string longHelp_
Long help.
Definition: CbcParam.hpp:318
CLP_PARAM_STR_CRASH
@ CLP_PARAM_STR_CRASH
Definition: CbcParam.hpp:82
CbcParam::stringValue_
std::string stringValue_
String parameter - current value.
Definition: CbcParam.hpp:330
CbcParam::lowerIntValue_
int lowerIntValue_
If int == okay.
Definition: CbcParam.hpp:305
CLP_PARAM_ACTION_FAKEBOUND
@ CLP_PARAM_ACTION_FAKEBOUND
Definition: CbcParam.hpp:127
CLP_PARAM_STR_KKT
@ CLP_PARAM_STR_KKT
Definition: CbcParam.hpp:88
CLP_PARAM_STR_GAMMA
@ CLP_PARAM_STR_GAMMA
Definition: CbcParam.hpp:90
CLP_PARAM_ACTION_HELP
@ CLP_PARAM_ACTION_HELP
Definition: CbcParam.hpp:128
CLP_PARAM_STR_PRIMALPIVOT
@ CLP_PARAM_STR_PRIMALPIVOT
Definition: CbcParam.hpp:80
CbcParam::setDoubleParameter
int setDoubleParameter(CbcModel &model, double value) const
Sets a double parameter (nonzero code if error)
CbcParam::shortHelp_
std::string shortHelp_
Short help.
Definition: CbcParam.hpp:316
CbcParam::shortHelp
std::string shortHelp() const
Returns short help.
Definition: CbcParam.hpp:189
CBC_PARAM_STR_MIXEDCUTS
@ CBC_PARAM_STR_MIXEDCUTS
Definition: CbcParam.hpp:107
CLP_PARAM_STR_KEEPNAMES
@ CLP_PARAM_STR_KEEPNAMES
Definition: CbcParam.hpp:78
CLP_PARAM_STR_ERRORSALLOWED
@ CLP_PARAM_STR_ERRORSALLOWED
Definition: CbcParam.hpp:77
CLP_PARAM_DBL_RHSSCALE
@ CLP_PARAM_DBL_RHSSCALE
Definition: CbcParam.hpp:47
CbcParam::parameterOption
int parameterOption(std::string check) const
Returns parameter option which matches (-1 if none)
CbcParam::setDoubleValue
void setDoubleValue(double value)
Sets double value.
Definition: CbcParam.hpp:245
CbcParam::setStringValue
void setStringValue(std::string value)
Sets string value.
Definition: CbcParam.hpp:254
CbcParam::doubleValue_
double doubleValue_
Double parameter - current value.
Definition: CbcParam.hpp:328
CLP_PARAM_ACTION_NETLIB_DUAL
@ CLP_PARAM_ACTION_NETLIB_DUAL
Definition: CbcParam.hpp:123
CLP_PARAM_INT_OUTPUTFORMAT
@ CLP_PARAM_INT_OUTPUTFORMAT
Definition: CbcParam.hpp:68
CbcParam::printString
void printString() const
Print action and string.
CLP_PARAM_ACTION_ALLSLACK
@ CLP_PARAM_ACTION_ALLSLACK
Definition: CbcParam.hpp:131
CLP_VERSION_NOTUSED_PRINTVERSION
@ CLP_VERSION_NOTUSED_PRINTVERSION
Definition: CbcParam.hpp:142
CLP_PARAM_STR_BIASLU
@ CLP_PARAM_STR_BIASLU
Definition: CbcParam.hpp:83
CLP_PARAM_INT_SPRINT
@ CLP_PARAM_INT_SPRINT
Definition: CbcParam.hpp:67
CLP_PARAM_ACTION_SAVE
@ CLP_PARAM_ACTION_SAVE
Definition: CbcParam.hpp:115
CBC_PARAM_ACTION_BAB
@ CBC_PARAM_ACTION_BAB
Definition: CbcParam.hpp:139
CbcParam::indexNumber
int indexNumber() const
type for classification
Definition: CbcParam.hpp:284
CbcParam::indexNumber_
int indexNumber_
index number to use for display purposes
Definition: CbcParam.hpp:332
CLP_PARAM_STR_DIRECTION
@ CLP_PARAM_STR_DIRECTION
Definition: CbcParam.hpp:74
CLP_PARAM_STR_PERTURBATION
@ CLP_PARAM_STR_PERTURBATION
Definition: CbcParam.hpp:84
CLP_PARAM_ACTION_BASISIN
@ CLP_PARAM_ACTION_BASISIN
Definition: CbcParam.hpp:136
CbcParam::doubleValue
double doubleValue() const
Definition: CbcParam.hpp:249
CBC_PARAM_STR_ROUNDING
@ CBC_PARAM_STR_ROUNDING
Definition: CbcParam.hpp:102
CbcParam::checkDoubleParameter
int checkDoubleParameter(double value) const
Checks a double parameter (nonzero code if error)
CBC_PARAM_STR_TWOMIRCUTS
@ CBC_PARAM_STR_TWOMIRCUTS
Definition: CbcParam.hpp:108
CLP_PARAM_INT_SOLVERLOGLEVEL
@ CLP_PARAM_INT_SOLVERLOGLEVEL
Definition: CbcParam.hpp:59
CBC_PARAM_DBL_INCREMENT
@ CBC_PARAM_DBL_INCREMENT
Definition: CbcParam.hpp:51
CbcParam::doubleParameter
double doubleParameter(CbcModel &model) const
Gets a double parameter.
CbcParam::intValue
int intValue() const
Definition: CbcParam.hpp:240
CBC_PARAM_INT_STRONGBRANCHING
@ CBC_PARAM_INT_STRONGBRANCHING
Definition: CbcParam.hpp:61
CBC_PARAM_STR_PROBINGCUTS
@ CBC_PARAM_STR_PROBINGCUTS
Definition: CbcParam.hpp:99
CLP_PARAM_ACTION_MINIMIZE
@ CLP_PARAM_ACTION_MINIMIZE
Definition: CbcParam.hpp:119
CLP_PARAM_STR_SCALING
@ CLP_PARAM_STR_SCALING
Definition: CbcParam.hpp:76
CLP_PARAM_DBL_TIMELIMIT
@ CLP_PARAM_DBL_TIMELIMIT
Definition: CbcParam.hpp:43
CLP_PARAM_ACTION_PRIMALSIMPLEX
@ CLP_PARAM_ACTION_PRIMALSIMPLEX
Definition: CbcParam.hpp:117
CBC_PARAM_DBL_INFEASIBILITYWEIGHT
@ CBC_PARAM_DBL_INFEASIBILITYWEIGHT
Definition: CbcParam.hpp:49
CLP_PARAM_DBL_DUALTOLERANCE
@ CLP_PARAM_DBL_DUALTOLERANCE
Definition: CbcParam.hpp:41
CBC_PARAM_DBL_TIGHTENFACTOR
@ CBC_PARAM_DBL_TIGHTENFACTOR
Definition: CbcParam.hpp:56
CLP_PARAM_STR_CROSSOVER
@ CLP_PARAM_STR_CROSSOVER
Definition: CbcParam.hpp:91
CbcParameterType
CbcParameterType
Parameter codes.
Definition: CbcParam.hpp:35
CBC_PARAM_STR_FLOWCUTS
@ CBC_PARAM_STR_FLOWCUTS
Definition: CbcParam.hpp:106
CLP_PARAM_INT_PERTVALUE
@ CLP_PARAM_INT_PERTVALUE
Definition: CbcParam.hpp:63
CbcParam::addHelp
void addHelp(std::string keyWord)
Adds one help line.
CLP_PARAM_STR_BARRIERSCALE
@ CLP_PARAM_STR_BARRIERSCALE
Definition: CbcParam.hpp:89
CLP_PARAM_ACTION_NETLIB_BARRIER
@ CLP_PARAM_ACTION_NETLIB_BARRIER
Definition: CbcParam.hpp:134
CBC_PARAM_STR_SOLVER
@ CBC_PARAM_STR_SOLVER
Definition: CbcParam.hpp:103
CLP_PARAM_ACTION_PLUSMINUS
@ CLP_PARAM_ACTION_PLUSMINUS
Definition: CbcParam.hpp:129
CbcParam::lengthMatch_
unsigned int lengthMatch_
Definition: CbcParam.hpp:310
CbcParam::upperDoubleValue_
double upperDoubleValue_
Definition: CbcParam.hpp:303
CbcParam::lowerDoubleValue_
double lowerDoubleValue_
If double == okay.
Definition: CbcParam.hpp:302
CbcParam::name
std::string name() const
Returns name.
Definition: CbcParam.hpp:184
CBC_PARAM_FULLGENERALQUERY
@ CBC_PARAM_FULLGENERALQUERY
Definition: CbcParam.hpp:38
CbcParam::gutsOfConstructor
void gutsOfConstructor()
gutsOfConstructor
CbcParam::matches
int matches(std::string input) const
Returns 1 if matches minimum, 2 if matches less, 0 if not matched.
CLP_PARAM_STR_MESSAGES
@ CLP_PARAM_STR_MESSAGES
Definition: CbcParam.hpp:85
CLP_PARAM_DBL_OBJSCALE
@ CLP_PARAM_DBL_OBJSCALE
Definition: CbcParam.hpp:46
CLP_PARAM_STR_SPARSEFACTOR
@ CLP_PARAM_STR_SPARSEFACTOR
Definition: CbcParam.hpp:79