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-2022 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 scipopt.org. */
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 SCIP_EXPORT
43 SCIP_DECL_SORTPTRCOMP(SCIPbranchruleComp);
44 
45 /** comparison method for sorting branching rules w.r.t. to their name */
46 SCIP_EXPORT
47 SCIP_DECL_SORTPTRCOMP(SCIPbranchruleCompName);
48 
49 /** gets user data of branching rule */
50 SCIP_EXPORT
52  SCIP_BRANCHRULE* branchrule /**< branching rule */
53  );
54 
55 /** sets user data of branching rule; user has to free old data in advance! */
56 SCIP_EXPORT
58  SCIP_BRANCHRULE* branchrule, /**< branching rule */
59  SCIP_BRANCHRULEDATA* branchruledata /**< new branching rule user data */
60  );
61 
62 /** gets name of branching rule */
63 SCIP_EXPORT
64 const char* SCIPbranchruleGetName(
65  SCIP_BRANCHRULE* branchrule /**< branching rule */
66  );
67 
68 /** gets description of branching rule */
69 SCIP_EXPORT
70 const char* SCIPbranchruleGetDesc(
71  SCIP_BRANCHRULE* branchrule /**< branching rule */
72  );
73 
74 /** gets priority of branching rule */
75 SCIP_EXPORT
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 SCIP_EXPORT
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 SCIP_EXPORT
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 SCIP_EXPORT
95  SCIP_BRANCHRULE* branchrule /**< branching rule */
96  );
97 
98 /** gets time in seconds used in this branching rule */
99 SCIP_EXPORT
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 SCIP_EXPORT
107  SCIP_BRANCHRULE* branchrule /**< branching rule */
108  );
109 
110 /** gets the total number of times, the branching rule was called on external candidates */
111 SCIP_EXPORT
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 SCIP_EXPORT
119  SCIP_BRANCHRULE* branchrule /**< branching rule */
120  );
121 
122 /** gets the total number of times, the branching rule detected a cutoff */
123 SCIP_EXPORT
125  SCIP_BRANCHRULE* branchrule /**< branching rule */
126  );
127 
128 /** gets the total number of cuts, the branching rule separated */
129 SCIP_EXPORT
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 SCIP_EXPORT
139  SCIP_BRANCHRULE* branchrule /**< branching rule */
140  );
141 
142 /** gets the total number of domain reductions, the branching rule found */
143 SCIP_EXPORT
145  SCIP_BRANCHRULE* branchrule /**< branching rule */
146  );
147 
148 /** gets the total number of children, the branching rule created */
149 SCIP_EXPORT
151  SCIP_BRANCHRULE* branchrule /**< branching rule */
152  );
153 
154 /** is branching rule initialized? */
155 SCIP_EXPORT
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:1840
SCIP_Bool SCIPbranchruleIsInitialized(SCIP_BRANCHRULE *branchrule)
Definition: branch.c:2164
SCIP_DECL_SORTPTRCOMP(SCIPbranchruleComp)
Definition: branch.c:1211
type definitions for miscellaneous datastructures
SCIP_Real SCIPbranchruleGetMaxbounddist(SCIP_BRANCHRULE *branchrule)
Definition: branch.c:2028
SCIP_Longint SCIPbranchruleGetNChildren(SCIP_BRANCHRULE *branchrule)
Definition: branch.c:2154
struct SCIP_BranchruleData SCIP_BRANCHRULEDATA
Definition: type_branch.h:48
const char * SCIPbranchruleGetDesc(SCIP_BRANCHRULE *branchrule)
Definition: branch.c:1972
SCIP_Longint SCIPbranchruleGetNDomredsFound(SCIP_BRANCHRULE *branchrule)
Definition: branch.c:2144
SCIP_Longint SCIPbranchruleGetNCutoffs(SCIP_BRANCHRULE *branchrule)
Definition: branch.c:2112
SCIP_Longint SCIPbranchruleGetNExternCalls(SCIP_BRANCHRULE *branchrule)
Definition: branch.c:2092
type definitions for branching rules
SCIP_Real SCIPbranchruleGetSetupTime(SCIP_BRANCHRULE *branchrule)
Definition: branch.c:2062
SCIP_Longint SCIPbranchruleGetNConssFound(SCIP_BRANCHRULE *branchrule)
Definition: branch.c:2134
SCIP_Longint SCIPbranchruleGetNLPCalls(SCIP_BRANCHRULE *branchrule)
Definition: branch.c:2082
SCIP_Real SCIPbranchruleGetTime(SCIP_BRANCHRULE *branchrule)
Definition: branch.c:2072
SCIP_Longint SCIPbranchruleGetNCutsFound(SCIP_BRANCHRULE *branchrule)
Definition: branch.c:2122
#define SCIP_Bool
Definition: def.h:84
void SCIPbranchruleSetData(SCIP_BRANCHRULE *branchrule, SCIP_BRANCHRULEDATA *branchruledata)
Definition: branch.c:1850
int SCIPbranchruleGetMaxdepth(SCIP_BRANCHRULE *branchrule)
Definition: branch.c:2006
SCIP_Longint SCIPbranchruleGetNPseudoCalls(SCIP_BRANCHRULE *branchrule)
Definition: branch.c:2102
#define SCIP_Real
Definition: def.h:177
const char * SCIPbranchruleGetName(SCIP_BRANCHRULE *branchrule)
Definition: branch.c:1962
#define SCIP_Longint
Definition: def.h:162
common defines and data types used in all packages of SCIP
int SCIPbranchruleGetPriority(SCIP_BRANCHRULE *branchrule)
Definition: branch.c:1982