source: branches/devel/Bonmin/src/CbcBonmin/BonCbcParam.hpp @ 58

Last change on this file since 58 was 58, checked in by pbonami, 13 years ago

Finish renaming

  • Property svn:eol-style set to native
  • Property svn:keywords set to "Author Date Id Revision"
File size: 4.2 KB
Line 
1// (C) Copyright International Business Machines Corporation and Carnegie Mellon University 2006
2// All Rights Reserved.
3// This code is published under the Common Public License.
4//
5// Authors :
6// Laszlo Ladanyi, International Business Machines Corporation
7// Pierre Bonami, Carnegie Mellon University,
8//
9// Date : 03/15/2006
10
11#ifndef BonminCbcParam_H
12#define BonminCbcParam_H
13
14#include "BonOsiTMINLPInterface.hpp"
15namespace Bonmin {
16class BonminCbcParam
17{
18public:
19  /** Algorithm type
20      <ul>
21      <li> 0 "B-BB"
22      <li> 1 "B-OA"
23      <li> 2 "B-QG"
24      <li> 3 "B-Hyb"
25      </ul>
26  */
27  int algo;
28  /** log level for the branch-and-bound */
29  int bbLogLevel;
30  /** Display information every logIntervval nodes.*/
31  int logInterval;
32  /** log level for the continuous subsolver */
33  int lpLogLevel;
34  /** log level for milp sub-solver in OA. */
35  int milpLogLevel;
36  /** log level for OA decomposition */
37  int oaLogLevel;
38  /** log frequency for OA */
39  double oaLogFrequency;
40  /** log level for the nlp subsolver interface (different from ipopt
41      log and log level which should be set with print_level).*/
42  int nlpLogLevel;
43  /** Max number of failures in a branch.*/
44  int maxFailures;
45  /** Behavior of the algorithm in the case of a failure.*/
46  int failureBehavior;
47  /** Max number of consecutive infeasible problem in a branch
48      before fathoming.*/
49  int maxInfeasible;
50  /** Amount by which cutoff is incremented */
51  double cutoffDecr;
52  /** cutoff value */
53  double cutoff;
54  /** Stop if absolute gap is less than :*/
55  double allowableGap;
56  /** Stop if relative gap is less than :*/
57  double allowableFractionGap;
58  /** Node selection strategy :
59      <ul>
60      <li> 0: best boud,
61      <li> 1: DFS,
62      <li> 2: BFS,
63      <li> 3: dynamic (see
64      <a href="http://www.coin-or.org/Doxygen/Cbc/class_cbc_branch_dynamic_decision.html">
65      CbcBranchActual.hpp </a>
66      </ul>
67  */
68  int nodeSelection;
69  /** Number of candidates for strong branching.*/
70  int numberStrong;
71  /** Minimum reliability before trust pseudo-costs.*/
72  int minReliability;
73  /** Global time limit. */
74  double maxTime;
75  /** Global node limit.*/
76  int maxNodes;
77  /** Integer tolerance.*/
78  double intTol;
79  /** Conssider or not SOS constraints.*/
80  int disableSos;
81  /** frequency to solve nlp's in B-Hyb.*/
82  int nlpSolveFrequency;
83  /** Max OA decomposition time in B-Hyb.*/
84  double oaDecMaxTime;
85  /** milp subsolver:
86      <ul>
87      <li> 0 Cbc with defaults,
88      <li> 1 Cbc with passed parameters,
89      <li> 2 Cplex.
90      </ul>
91  */
92  int milpSubSolver;
93  /** Mig cuts generation frequency.*/
94  int migFreq;
95  /** Probing cuts generation frequency.*/
96  int probFreq;
97  /** Mir cuts generation frequency.*/
98  int mirFreq;
99  /** Cover cuts generation frequency.*/
100  int coverFreq;
101
102  /** (only set if milpSubSolver is 1) milpsubsolver
103      Node selection strategy :
104      <ul>
105      <li> 0: best boud,
106      <li> 1: DFS,
107      <li> 2: BFS,
108      <li> 3: dynamic (see
109      <a href="http://www.coin-or.org/Doxygen/Cbc/class_cbc_branch_dynamic_decision.html">
110      CbcBranchActual.hpp </a>
111      </ul>
112  */
113  int milpSubSolver_nodeSelection;
114  /** (only set if milpSubSolver is 1) milpsubsolver
115      Number of candidates for strong branching.*/
116  int milpSubSolver_numberStrong;
117  /** (only set if milpSubSolver is 1) milpsubsolver
118      Minimum reliability before trust pseudo-costs.*/
119  int milpSubSolver_minReliability;
120  /** (only set if milpSubSolver is 1) milpsubsolver Mig cuts generation frequency.*/
121  int milpSubSolver_migFreq;
122  /** (only set if milpSubSolver is 1) milpsubsolver Probing cuts generation frequency.*/
123  int milpSubSolver_probFreq;
124  /** (only set if milpSubSolver is 1) milpsubsolver Mir cuts generation frequency.*/
125  int milpSubSolver_mirFreq;
126  /** (only set if milpSubSolver is 1) milpsubsolver Cover cuts generation frequency.*/
127  int milpSubSolver_coverFreq;
128
129public:
130  /** Empty constructor. */
131  BonminCbcParam()
132  {}
133  /** Destructor.*/
134  ~BonminCbcParam()
135  {}
136  ///Process parameter file and extract MIP options.
137  bool extractParams(OsiTMINLPInterface * solver);
138  ///operator() will extractParameters from IpoptInterface.
139  bool operator()(OsiTMINLPInterface * solver)
140  {
141    return extractParams(solver);
142  }
143};
144} //end namespace Bonmin
145#endif
146
Note: See TracBrowser for help on using the repository browser.