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-2019 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 visit scip.zib.de. */
13 /* */
14 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
15 
16 /**@file pub_branch.h
17  * @ingroup PUBLICCOREAPI
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 /**@addtogroup PublicBranchRuleMethods
37  *
38  * @{
39  */
40 
41 /** compares two branching rules w. r. to their priority */
42 extern
43 SCIP_DECL_SORTPTRCOMP(SCIPbranchruleComp);
44 
45 /** comparison method for sorting branching rules w.r.t. to their name */
46 extern
47 SCIP_DECL_SORTPTRCOMP(SCIPbranchruleCompName);
48 
49 /** gets user data of branching rule */
50 extern
52  SCIP_BRANCHRULE* branchrule /**< branching rule */
53  );
54 
55 /** sets user data of branching rule; user has to free old data in advance! */
56 extern
58  SCIP_BRANCHRULE* branchrule, /**< branching rule */
59  SCIP_BRANCHRULEDATA* branchruledata /**< new branching rule user data */
60  );
61 
62 /** gets name of branching rule */
63 extern
64 const char* SCIPbranchruleGetName(
65  SCIP_BRANCHRULE* branchrule /**< branching rule */
66  );
67 
68 /** gets description of branching rule */
69 extern
70 const char* SCIPbranchruleGetDesc(
71  SCIP_BRANCHRULE* branchrule /**< branching rule */
72  );
73 
74 /** gets priority of branching rule */
75 extern
77  SCIP_BRANCHRULE* branchrule /**< branching rule */
78  );
79 
80 /** gets maximal depth level, up to which this branching rule should be used (-1 for no limit) */
81 extern
83  SCIP_BRANCHRULE* branchrule /**< branching rule */
84  );
85 
86 /** gets maximal relative distance from current node's dual bound to primal bound for applying branching rule */
87 extern
89  SCIP_BRANCHRULE* branchrule /**< branching rule */
90  );
91 
92 /** gets time in seconds used in this branching rule for setting up for next stages */
93 extern
95  SCIP_BRANCHRULE* branchrule /**< branching rule */
96  );
97 
98 /** gets time in seconds used in this branching rule */
99 extern
101  SCIP_BRANCHRULE* branchrule /**< branching rule */
102  );
103 
104 /** gets the total number of times, the branching rule was called on an LP solution */
105 extern
107  SCIP_BRANCHRULE* branchrule /**< branching rule */
108  );
109 
110 /** gets the total number of times, the branching rule was called on external candidates */
111 extern
113  SCIP_BRANCHRULE* branchrule /**< branching rule */
114  );
115 
116 /** gets the total number of times, the branching rule was called on a pseudo solution */
117 extern
119  SCIP_BRANCHRULE* branchrule /**< branching rule */
120  );
121 
122 /** gets the total number of times, the branching rule detected a cutoff */
123 extern
125  SCIP_BRANCHRULE* branchrule /**< branching rule */
126  );
127 
128 /** gets the total number of cuts, the branching rule separated */
129 extern
131  SCIP_BRANCHRULE* branchrule /**< branching rule */
132  );
133 
134 /** gets the total number of constraints, the branching rule added to the respective local nodes (not counting constraints
135  * that were added to the child nodes as branching decisions)
136  */
137 extern
139  SCIP_BRANCHRULE* branchrule /**< branching rule */
140  );
141 
142 /** gets the total number of domain reductions, the branching rule found */
143 extern
145  SCIP_BRANCHRULE* branchrule /**< branching rule */
146  );
147 
148 /** gets the total number of children, the branching rule created */
149 extern
151  SCIP_BRANCHRULE* branchrule /**< branching rule */
152  );
153 
154 /** is branching rule initialized? */
155 extern
157  SCIP_BRANCHRULE* branchrule /**< branching rule */
158  );
159 
160 /* @} */
161 
162 #ifdef __cplusplus
163 }
164 #endif
165 
166 #endif
SCIP_BRANCHRULEDATA * SCIPbranchruleGetData(SCIP_BRANCHRULE *branchrule)
Definition: branch.c:1848
SCIP_Bool SCIPbranchruleIsInitialized(SCIP_BRANCHRULE *branchrule)
Definition: branch.c:2172
SCIP_DECL_SORTPTRCOMP(SCIPbranchruleComp)
Definition: branch.c:1219
type definitions for miscellaneous datastructures
SCIP_Real SCIPbranchruleGetMaxbounddist(SCIP_BRANCHRULE *branchrule)
Definition: branch.c:2036
SCIP_Longint SCIPbranchruleGetNChildren(SCIP_BRANCHRULE *branchrule)
Definition: branch.c:2162
struct SCIP_BranchruleData SCIP_BRANCHRULEDATA
Definition: type_branch.h:43
const char * SCIPbranchruleGetDesc(SCIP_BRANCHRULE *branchrule)
Definition: branch.c:1980
SCIP_Longint SCIPbranchruleGetNDomredsFound(SCIP_BRANCHRULE *branchrule)
Definition: branch.c:2152
SCIP_Longint SCIPbranchruleGetNCutoffs(SCIP_BRANCHRULE *branchrule)
Definition: branch.c:2120
SCIP_Longint SCIPbranchruleGetNExternCalls(SCIP_BRANCHRULE *branchrule)
Definition: branch.c:2100
type definitions for branching rules
SCIP_Real SCIPbranchruleGetSetupTime(SCIP_BRANCHRULE *branchrule)
Definition: branch.c:2070
SCIP_Longint SCIPbranchruleGetNConssFound(SCIP_BRANCHRULE *branchrule)
Definition: branch.c:2142
SCIP_Longint SCIPbranchruleGetNLPCalls(SCIP_BRANCHRULE *branchrule)
Definition: branch.c:2090
SCIP_Real SCIPbranchruleGetTime(SCIP_BRANCHRULE *branchrule)
Definition: branch.c:2080
SCIP_Longint SCIPbranchruleGetNCutsFound(SCIP_BRANCHRULE *branchrule)
Definition: branch.c:2130
#define SCIP_Bool
Definition: def.h:69
void SCIPbranchruleSetData(SCIP_BRANCHRULE *branchrule, SCIP_BRANCHRULEDATA *branchruledata)
Definition: branch.c:1858
int SCIPbranchruleGetMaxdepth(SCIP_BRANCHRULE *branchrule)
Definition: branch.c:2014
SCIP_Longint SCIPbranchruleGetNPseudoCalls(SCIP_BRANCHRULE *branchrule)
Definition: branch.c:2110
#define SCIP_Real
Definition: def.h:157
const char * SCIPbranchruleGetName(SCIP_BRANCHRULE *branchrule)
Definition: branch.c:1970
#define SCIP_Longint
Definition: def.h:142
common defines and data types used in all packages of SCIP
int SCIPbranchruleGetPriority(SCIP_BRANCHRULE *branchrule)
Definition: branch.c:1990