Blis  0.94
BlisParams.h
Go to the documentation of this file.
1 /*===========================================================================*
2  * This file is part of the BiCePS Linear Integer Solver (BLIS). *
3  * *
4  * BLIS is distributed under the Eclipse Public License as part of the *
5  * COIN-OR repository (http://www.coin-or.org). *
6  * *
7  * Authors: *
8  * *
9  * Yan Xu, Lehigh University *
10  * Ted Ralphs, Lehigh University *
11  * *
12  * Conceptual Design: *
13  * *
14  * Yan Xu, Lehigh University *
15  * Ted Ralphs, Lehigh University *
16  * Laszlo Ladanyi, IBM T.J. Watson Research Center *
17  * Matthew Saltzman, Clemson University *
18  * *
19  * *
20  * Copyright (C) 2001-2019, Lehigh University, Yan Xu, and Ted Ralphs. *
21  * All Rights Reserved. *
22  *===========================================================================*/
23 
24 #ifndef BlisParams_h
25 #define BlisParams_h
26 
27 #include "AlpsKnowledge.h"
28 #include "AlpsParameterBase.h"
29 
30 #include "Blis.h"
31 
32 //#############################################################################
33 
34 //** Parameters used in Blis. */
35 class BlisParams : public AlpsParameterSet {
36  public:
39  enum chrParams{
57  //
59  };
60 
62  enum intParams{
63 
73 
82 
102 
105 
116 
121 
130  };
131 
133  enum dblParams{
137 
143 
146 
149 
152 
156 
160 
163 
166 
171  };
172 
174  enum strParams{
176  //
178  };
179 
185  };
186 
187  public:
195  static_cast<int>(endOfChrParams),
196  static_cast<int>(endOfIntParams),
197  static_cast<int>(endOfDblParams),
198  static_cast<int>(endOfStrParams),
199  static_cast<int>(endOfStrArrayParams)
200  )
201  {
204  }
209  virtual void createKeywordList();
211  virtual void setDefaultEntries();
215  public:
216  //===========================================================================
224  //===========================================================================
225 
226 
235  inline bool entry(const chrParams key) const { return bpar_[key]; }
238  inline int entry(const intParams key) const { return ipar_[key]; }
240  inline double entry(const dblParams key) const { return dpar_[key]; }
242  inline const std::string&
243  entry(const strParams key) const { return spar_[key]; }
245  inline const std::vector<std::string>&
246  entry(const strArrayParams key) const { return sapar_[key]; }
249  //---------------------------------------------------------------------------
251  void setEntry(const chrParams key, const char * val) {
252  bpar_[key] = atoi(val) ? true : false; }
254  void setEntry(const chrParams key, const char val) {
255  bpar_[key] = val ? true : false; }
257  void setEntry(const chrParams key, const bool val) {
258  bpar_[key] = val; }
260  void setEntry(const intParams key, const char * val) {
261  ipar_[key] = atoi(val); }
263  void setEntry(const intParams key, const int val) {
264  ipar_[key] = val; }
266  void setEntry(const dblParams key, const char * val) {
267  dpar_[key] = atof(val); }
269  void setEntry(const dblParams key, const double val) {
270  dpar_[key] = val; }
272  void setEntry(const strParams key, const char * val) {
273  spar_[key] = val; }
275  void setEntry(const strArrayParams key, const char *val) {
276  sapar_[key].push_back(val); }
277 
278  //---------------------------------------------------------------------------
279 
284  void pack(AlpsEncoded& buf) {
288  for (int i = 0; i < endOfStrParams; ++i)
289  buf.writeRep(spar_[i]);
290  for (int i = 0; i < endOfStrArrayParams; ++i) {
291  buf.writeRep(sapar_[i].size());
292  for (size_t j = 0; j < sapar_[i].size(); ++j)
293  buf.writeRep(sapar_[i][j]);
294  }
295  }
297  void unpack(AlpsEncoded& buf) {
298  int dummy;
299  // No need to allocate the arrays, they are of fixed length
300  dummy = static_cast<int>(endOfChrParams);
301  buf.readRep(bpar_, dummy, false);
302  dummy = static_cast<int>(endOfIntParams);
303  buf.readRep(ipar_, dummy, false);
304  dummy = static_cast<int>(endOfDblParams);
305  buf.readRep(dpar_, dummy, false);
306  for (int i = 0; i < endOfStrParams; ++i)
307  buf.readRep(spar_[i]);
308  for (int i = 0; i < endOfStrArrayParams; ++i) {
309  size_t str_size;
310  buf.readRep(str_size);
311  sapar_[i].reserve(str_size);
312  for (size_t j = 0; j < str_size; ++j){
313  // sapar_[i].unchecked_push_back(std::string());
314  sapar_[i].push_back(std::string());
315  buf.readRep(sapar_[i].back());
316  }
317  }
318  }
321 };
322 
323 #endif
BlisParams::heurRoundFreq
@ heurRoundFreq
Definition: BlisParams.h:115
BlisParams::entry
double entry(const dblParams key) const
Definition: BlisParams.h:240
BlisParams::presolve
@ presolve
Presolve or not.
Definition: BlisParams.h:44
AlpsParameterSet::dpar_
double * dpar_
BlisParams::scaleConFactor
@ scaleConFactor
Scaling indicator of a constraint.
Definition: BlisParams.h:165
AlpsParameterSet
BlisParams::cutMirFreq
@ cutMirFreq
Definition: BlisParams.h:98
BlisParams::chrParams
chrParams
Character parameters.
Definition: BlisParams.h:39
AlpsKnowledge.h
BlisParams::branchStrategy
@ branchStrategy
Branching strategy.
Definition: BlisParams.h:71
BlisParams::cutOddHoleStrategy
@ cutOddHoleStrategy
Definition: BlisParams.h:91
BlisParams::cutoff
@ cutoff
Cutoff any nodes whose objective value is higher than it.
Definition: BlisParams.h:139
BlisParams::cutTwoMirStrategy
@ cutTwoMirStrategy
Definition: BlisParams.h:93
BlisParams::optimalRelGap
@ optimalRelGap
If the relative gap between best feasible and best relaxed fall into this gap, search stops.
Definition: BlisParams.h:155
BlisParams::cutOddHoleFreq
@ cutOddHoleFreq
Definition: BlisParams.h:99
BlisParams::entry
int entry(const intParams key) const
Definition: BlisParams.h:238
AlpsParameterSet::spar_
std::string * spar_
BlisParams::objSense
@ objSense
Objective sense: min = 1.0, max = -1.0.
Definition: BlisParams.h:151
BlisParams::integerTol
@ integerTol
Tolerance to treat as an integer.
Definition: BlisParams.h:148
BlisParams::intParams
intParams
Integer paramters.
Definition: BlisParams.h:62
BlisParams::cutGomoryStrategy
@ cutGomoryStrategy
Definition: BlisParams.h:87
BlisParams::cutProbingStrategy
@ cutProbingStrategy
Definition: BlisParams.h:92
BlisParams::pseudoWeight
@ pseudoWeight
Weight used to calculate pseudocost.
Definition: BlisParams.h:162
AlpsEncoded
BlisParams::endOfStrParams
@ endOfStrParams
Definition: BlisParams.h:177
BlisParams::cutPass
@ cutPass
Definition: BlisParams.h:83
BlisParams::setEntry
void setEntry(const strParams key, const char *val)
Definition: BlisParams.h:272
BlisParams::cutFactor
@ cutFactor
Limit the max number cuts applied at a node.
Definition: BlisParams.h:136
BlisParams::cutKnapsackFreq
@ cutKnapsackFreq
Definition: BlisParams.h:97
BlisParams::cutoffInc
@ cutoffInc
The value added to relaxation value when deciding fathom.
Definition: BlisParams.h:142
BlisParams::strDummy
@ strDummy
Definition: BlisParams.h:175
BlisParams::setEntry
void setEntry(const chrParams key, const char *val)
char* is true(1) or false(0), not used
Definition: BlisParams.h:251
BlisParams::entry
const std::vector< std::string > & entry(const strArrayParams key) const
Definition: BlisParams.h:246
BlisParams::strArrayDummy
@ strArrayDummy
Definition: BlisParams.h:182
BlisParams::cutKnapsackStrategy
@ cutKnapsackStrategy
Definition: BlisParams.h:89
AlpsEncoded::writeRep
AlpsEncoded & writeRep(const T &value)
AlpsParameterSet::ipar_
int * ipar_
AlpsEncoded::readRep
AlpsEncoded & readRep(T &value)
BlisParams::heurStrategy
@ heurStrategy
Heuristics control.
Definition: BlisParams.h:112
BlisParams::cutGenerationFrequency
@ cutGenerationFrequency
All constraint generators.
Definition: BlisParams.h:81
BlisParams
Definition: BlisParams.h:35
BlisParams::sharePcostFrequency
@ sharePcostFrequency
Frequency of sharing pseudocost.
Definition: BlisParams.h:125
BlisParams::cutTwoMirFreq
@ cutTwoMirFreq
Definition: BlisParams.h:101
BlisParams::unpack
void unpack(AlpsEncoded &buf)
Unpack the parameter set from the buffer.
Definition: BlisParams.h:297
BlisParams::setEntry
void setEntry(const dblParams key, const double val)
Definition: BlisParams.h:269
BlisParams::setEntry
void setEntry(const strArrayParams key, const char *val)
Definition: BlisParams.h:275
BlisParams::createKeywordList
virtual void createKeywordList()
Method for creating the list of keyword looked for in the parameter file.
BlisParams::pack
void pack(AlpsEncoded &buf)
Pack the parameter set into the buffer (AlpsEncoded is used as buffer Here).
Definition: BlisParams.h:284
BlisParams::sharePseudocostSearch
@ sharePseudocostSearch
Share pseudocost during search Default: false.
Definition: BlisParams.h:56
BlisParams::cutGomoryFreq
@ cutGomoryFreq
Definition: BlisParams.h:95
BlisParams::cutFlowCoverStrategy
@ cutFlowCoverStrategy
Definition: BlisParams.h:88
BlisParams::branchStrategyRampUp
@ branchStrategyRampUp
Definition: BlisParams.h:72
BlisParams::entry
bool entry(const chrParams key) const
Definition: BlisParams.h:236
Blis.h
BlisParams::setEntry
void setEntry(const dblParams key, const char *val)
Definition: BlisParams.h:266
BlisParams::pseudoRelibility
@ pseudoRelibility
The relibility of pseudocost.
Definition: BlisParams.h:120
BlisParams::setDefaultEntries
virtual void setDefaultEntries()
Method for setting the default values for the parameters.
BlisParams::cutCliqueStrategy
@ cutCliqueStrategy
The pass to generate cuts for quick branching.
Definition: BlisParams.h:86
BlisParams::strParams
strParams
String parameters.
Definition: BlisParams.h:174
BlisParams::strArrayParams
strArrayParams
There are no string array parameters.
Definition: BlisParams.h:181
BlisParams::denseConFactor
@ denseConFactor
Dense constraint factor.
Definition: BlisParams.h:145
BlisParams::endOfChrParams
@ endOfChrParams
Definition: BlisParams.h:58
BlisParams::cutFlowCoverFreq
@ cutFlowCoverFreq
Definition: BlisParams.h:96
BlisParams::heurRoundStrategy
@ heurRoundStrategy
Definition: BlisParams.h:114
BlisParams::sharePseudocostRampUp
@ sharePseudocostRampUp
Share pseudocost during ramp up.
Definition: BlisParams.h:53
BlisParams::difference
@ difference
-1 auto, 0, no, any integer frequency
Definition: BlisParams.h:104
BlisParams::setEntry
void setEntry(const chrParams key, const char val)
char is true(1) or false(0), not used
Definition: BlisParams.h:254
AlpsParameterSet::bpar_
bool * bpar_
BlisParams::shareVariables
@ shareVariables
Share constraints Default: false.
Definition: BlisParams.h:50
BlisParams::setEntry
void setEntry(const intParams key, const int val)
Definition: BlisParams.h:263
BlisParams::setEntry
void setEntry(const chrParams key, const bool val)
This method is the one that ever been used.
Definition: BlisParams.h:257
BlisParams::cutStrategy
@ cutStrategy
Cut generators control.
Definition: BlisParams.h:80
AlpsParameterBase.h
BlisParams::endOfIntParams
@ endOfIntParams
Definition: BlisParams.h:129
BlisParams::cutMirStrategy
@ cutMirStrategy
Definition: BlisParams.h:90
BlisParams::quickCutPass
@ quickCutPass
The pass to generate cuts.
Definition: BlisParams.h:84
BlisParams::cutProbingFreq
@ cutProbingFreq
Definition: BlisParams.h:100
BlisParams::tailOff
@ tailOff
Tail off.
Definition: BlisParams.h:168
BlisParams::endOfStrArrayParams
@ endOfStrArrayParams
Definition: BlisParams.h:184
BlisParams::lookAhead
@ lookAhead
The look ahead of pseudocost.
Definition: BlisParams.h:118
BlisParams::cutRampUp
@ cutRampUp
Generate cuts during rampup.
Definition: BlisParams.h:42
BlisParams::entry
const std::string & entry(const strParams key) const
Definition: BlisParams.h:243
BlisParams::BlisParams
BlisParams()
The default constructor creates a parameter set with from the template argument structure.
Definition: BlisParams.h:193
BlisParams::sharePcostDepth
@ sharePcostDepth
Maximum tree depth of sharing pseudocost.
Definition: BlisParams.h:123
BlisParams::cutCliqueFreq
@ cutCliqueFreq
Definition: BlisParams.h:94
AlpsParameterSet::sapar_
std::vector< std::string > * sapar_
BlisParams::endOfDblParams
@ endOfDblParams
Definition: BlisParams.h:170
BlisParams::strongCandSize
@ strongCandSize
The number of candidate used in strong branching.
Definition: BlisParams.h:127
BlisParams::optimalAbsGap
@ optimalAbsGap
If the absolute gap between best feasible and best relaxed fall into this gap, search stops.
Definition: BlisParams.h:159
BlisParams::dblParams
dblParams
Double parameters.
Definition: BlisParams.h:133
BlisParams::shareConstraints
@ shareConstraints
Share constraints Default: false.
Definition: BlisParams.h:47
BlisParams::setEntry
void setEntry(const intParams key, const char *val)
Definition: BlisParams.h:260
BlisParams::heurCallFrequency
@ heurCallFrequency
All heuristics.
Definition: BlisParams.h:113