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

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

astyled the devel branch

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