Scippy

SCIP

Solving Constraint Integer Programs

pub_branch.h
Go to the documentation of this file.
1 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2 /* */
3 /* This file is part of the program and library */
4 /* SCIP --- Solving Constraint Integer Programs */
5 /* */
6 /* Copyright (C) 2002-2014 Konrad-Zuse-Zentrum */
7 /* fuer Informationstechnik Berlin */
8 /* */
9 /* SCIP is distributed under the terms of the ZIB Academic License. */
10 /* */
11 /* You should have received a copy of the ZIB Academic License */
12 /* along with SCIP; see the file COPYING. If not email to scip@zib.de. */
13 /* */
14 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
15 
16 /**@file pub_branch.h
17  * @ingroup PUBLICMETHODS
18  * @brief public methods for branching rules
19  * @author Tobias Achterberg
20  */
21 
22 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
23 
24 #ifndef __SCIP_PUB_BRANCH_H__
25 #define __SCIP_PUB_BRANCH_H__
26 
27 
28 #include "scip/def.h"
29 #include "scip/type_misc.h"
30 #include "scip/type_branch.h"
31 
32 #ifdef __cplusplus
33 extern "C" {
34 #endif
35 
36 /** compares two branching rules w. r. to their priority */
37 extern
38 SCIP_DECL_SORTPTRCOMP(SCIPbranchruleComp);
39 
40 /** comparison method for sorting branching rules w.r.t. to their name */
41 extern
42 SCIP_DECL_SORTPTRCOMP(SCIPbranchruleCompName);
43 
44 /** gets user data of branching rule */
45 extern
47  SCIP_BRANCHRULE* branchrule /**< branching rule */
48  );
49 
50 /** sets user data of branching rule; user has to free old data in advance! */
51 extern
53  SCIP_BRANCHRULE* branchrule, /**< branching rule */
54  SCIP_BRANCHRULEDATA* branchruledata /**< new branching rule user data */
55  );
56 
57 /** gets name of branching rule */
58 extern
59 const char* SCIPbranchruleGetName(
60  SCIP_BRANCHRULE* branchrule /**< branching rule */
61  );
62 
63 /** gets description of branching rule */
64 extern
65 const char* SCIPbranchruleGetDesc(
66  SCIP_BRANCHRULE* branchrule /**< branching rule */
67  );
68 
69 /** gets priority of branching rule */
70 extern
72  SCIP_BRANCHRULE* branchrule /**< branching rule */
73  );
74 
75 /** gets maximal depth level, up to which this branching rule should be used (-1 for no limit) */
76 extern
78  SCIP_BRANCHRULE* branchrule /**< branching rule */
79  );
80 
81 /** gets maximal relative distance from current node's dual bound to primal bound for applying branching rule */
82 extern
84  SCIP_BRANCHRULE* branchrule /**< branching rule */
85  );
86 
87 /** gets time in seconds used in this branching rule for setting up for next stages */
88 extern
90  SCIP_BRANCHRULE* branchrule /**< branching rule */
91  );
92 
93 /** gets time in seconds used in this branching rule */
94 extern
96  SCIP_BRANCHRULE* branchrule /**< branching rule */
97  );
98 
99 /** gets the total number of times, the branching rule was called on an LP solution */
100 extern
102  SCIP_BRANCHRULE* branchrule /**< branching rule */
103  );
104 
105 /** gets the total number of times, the branching rule was called on external candidates */
106 extern
108  SCIP_BRANCHRULE* branchrule /**< branching rule */
109  );
110 
111 /** gets the total number of times, the branching rule was called on a pseudo solution */
112 extern
114  SCIP_BRANCHRULE* branchrule /**< branching rule */
115  );
116 
117 /** gets the total number of times, the branching rule detected a cutoff */
118 extern
120  SCIP_BRANCHRULE* branchrule /**< branching rule */
121  );
122 
123 /** gets the total number of cuts, the branching rule separated */
124 extern
126  SCIP_BRANCHRULE* branchrule /**< branching rule */
127  );
128 
129 /** gets the total number of constraints, the branching rule added to the respective local nodes (not counting constraints
130  * that were added to the child nodes as branching decisions)
131  */
132 extern
134  SCIP_BRANCHRULE* branchrule /**< branching rule */
135  );
136 
137 /** gets the total number of domain reductions, the branching rule found */
138 extern
140  SCIP_BRANCHRULE* branchrule /**< branching rule */
141  );
142 
143 /** gets the total number of children, the branching rule created */
144 extern
146  SCIP_BRANCHRULE* branchrule /**< branching rule */
147  );
148 
149 /** is branching rule initialized? */
150 extern
152  SCIP_BRANCHRULE* branchrule /**< branching rule */
153  );
154 
155 #ifdef __cplusplus
156 }
157 #endif
158 
159 #endif
160