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-2024 Zuse Institute Berlin (ZIB) */
7/* */
8/* Licensed under the Apache License, Version 2.0 (the "License"); */
9/* you may not use this file except in compliance with the License. */
10/* You may obtain a copy of the License at */
11/* */
12/* http://www.apache.org/licenses/LICENSE-2.0 */
13/* */
14/* Unless required by applicable law or agreed to in writing, software */
15/* distributed under the License is distributed on an "AS IS" BASIS, */
16/* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. */
17/* See the License for the specific language governing permissions and */
18/* limitations under the License. */
19/* */
20/* You should have received a copy of the Apache-2.0 license */
21/* along with SCIP; see the file LICENSE. If not visit scipopt.org. */
22/* */
23/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
24
25/**@file pub_branch.h
26 * @ingroup PUBLICCOREAPI
27 * @brief public methods for branching rules
28 * @author Tobias Achterberg
29 */
30
31/*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
32
33#ifndef __SCIP_PUB_BRANCH_H__
34#define __SCIP_PUB_BRANCH_H__
35
36
37#include "scip/def.h"
38#include "scip/type_misc.h"
39#include "scip/type_branch.h"
40
41#ifdef __cplusplus
42extern "C" {
43#endif
44
45/**@addtogroup PublicBranchRuleMethods
46 *
47 * @{
48 */
49
50/** compares two branching rules w. r. to their priority */
51SCIP_EXPORT
52SCIP_DECL_SORTPTRCOMP(SCIPbranchruleComp);
53
54/** comparison method for sorting branching rules w.r.t. to their name */
55SCIP_EXPORT
56SCIP_DECL_SORTPTRCOMP(SCIPbranchruleCompName);
57
58/** gets user data of branching rule */
59SCIP_EXPORT
61 SCIP_BRANCHRULE* branchrule /**< branching rule */
62 );
63
64/** sets user data of branching rule; user has to free old data in advance! */
65SCIP_EXPORT
67 SCIP_BRANCHRULE* branchrule, /**< branching rule */
68 SCIP_BRANCHRULEDATA* branchruledata /**< new branching rule user data */
69 );
70
71/** gets name of branching rule */
72SCIP_EXPORT
73const char* SCIPbranchruleGetName(
74 SCIP_BRANCHRULE* branchrule /**< branching rule */
75 );
76
77/** gets description of branching rule */
78SCIP_EXPORT
79const char* SCIPbranchruleGetDesc(
80 SCIP_BRANCHRULE* branchrule /**< branching rule */
81 );
82
83/** gets priority of branching rule */
84SCIP_EXPORT
86 SCIP_BRANCHRULE* branchrule /**< branching rule */
87 );
88
89/** gets maximal depth level, up to which this branching rule should be used (-1 for no limit) */
90SCIP_EXPORT
92 SCIP_BRANCHRULE* branchrule /**< branching rule */
93 );
94
95/** gets maximal relative distance from current node's dual bound to primal bound for applying branching rule */
96SCIP_EXPORT
98 SCIP_BRANCHRULE* branchrule /**< branching rule */
99 );
100
101/** gets time in seconds used in this branching rule for setting up for next stages */
102SCIP_EXPORT
104 SCIP_BRANCHRULE* branchrule /**< branching rule */
105 );
106
107/** gets time in seconds used in this branching rule */
108SCIP_EXPORT
110 SCIP_BRANCHRULE* branchrule /**< branching rule */
111 );
112
113/** gets the total number of times, the branching rule was called on an LP solution */
114SCIP_EXPORT
116 SCIP_BRANCHRULE* branchrule /**< branching rule */
117 );
118
119/** gets the total number of times, the branching rule was called on external candidates */
120SCIP_EXPORT
122 SCIP_BRANCHRULE* branchrule /**< branching rule */
123 );
124
125/** gets the total number of times, the branching rule was called on a pseudo solution */
126SCIP_EXPORT
128 SCIP_BRANCHRULE* branchrule /**< branching rule */
129 );
130
131/** gets the total number of times, the branching rule detected a cutoff */
132SCIP_EXPORT
134 SCIP_BRANCHRULE* branchrule /**< branching rule */
135 );
136
137/** gets the total number of cuts, the branching rule separated */
138SCIP_EXPORT
140 SCIP_BRANCHRULE* branchrule /**< branching rule */
141 );
142
143/** gets the total number of constraints, the branching rule added to the respective local nodes (not counting constraints
144 * that were added to the child nodes as branching decisions)
145 */
146SCIP_EXPORT
148 SCIP_BRANCHRULE* branchrule /**< branching rule */
149 );
150
151/** gets the total number of domain reductions, the branching rule found */
152SCIP_EXPORT
154 SCIP_BRANCHRULE* branchrule /**< branching rule */
155 );
156
157/** gets the total number of children, the branching rule created */
158SCIP_EXPORT
160 SCIP_BRANCHRULE* branchrule /**< branching rule */
161 );
162
163/** is branching rule initialized? */
164SCIP_EXPORT
166 SCIP_BRANCHRULE* branchrule /**< branching rule */
167 );
168
169/** @} */
170
171#ifdef __cplusplus
172}
173#endif
174
175#endif
common defines and data types used in all packages of SCIP
#define SCIP_Longint
Definition: def.h:158
#define SCIP_Bool
Definition: def.h:91
#define SCIP_Real
Definition: def.h:173
SCIP_Bool SCIPbranchruleIsInitialized(SCIP_BRANCHRULE *branchrule)
Definition: branch.c:2173
SCIP_Longint SCIPbranchruleGetNDomredsFound(SCIP_BRANCHRULE *branchrule)
Definition: branch.c:2153
SCIP_Longint SCIPbranchruleGetNPseudoCalls(SCIP_BRANCHRULE *branchrule)
Definition: branch.c:2111
int SCIPbranchruleGetMaxdepth(SCIP_BRANCHRULE *branchrule)
Definition: branch.c:2015
SCIP_Longint SCIPbranchruleGetNConssFound(SCIP_BRANCHRULE *branchrule)
Definition: branch.c:2143
SCIP_DECL_SORTPTRCOMP(SCIPbranchruleComp)
Definition: branch.c:1220
SCIP_Longint SCIPbranchruleGetNLPCalls(SCIP_BRANCHRULE *branchrule)
Definition: branch.c:2091
const char * SCIPbranchruleGetName(SCIP_BRANCHRULE *branchrule)
Definition: branch.c:1971
SCIP_BRANCHRULEDATA * SCIPbranchruleGetData(SCIP_BRANCHRULE *branchrule)
Definition: branch.c:1849
SCIP_Longint SCIPbranchruleGetNChildren(SCIP_BRANCHRULE *branchrule)
Definition: branch.c:2163
SCIP_Real SCIPbranchruleGetTime(SCIP_BRANCHRULE *branchrule)
Definition: branch.c:2081
int SCIPbranchruleGetPriority(SCIP_BRANCHRULE *branchrule)
Definition: branch.c:1991
SCIP_Real SCIPbranchruleGetSetupTime(SCIP_BRANCHRULE *branchrule)
Definition: branch.c:2071
SCIP_Real SCIPbranchruleGetMaxbounddist(SCIP_BRANCHRULE *branchrule)
Definition: branch.c:2037
const char * SCIPbranchruleGetDesc(SCIP_BRANCHRULE *branchrule)
Definition: branch.c:1981
SCIP_Longint SCIPbranchruleGetNCutoffs(SCIP_BRANCHRULE *branchrule)
Definition: branch.c:2121
SCIP_Longint SCIPbranchruleGetNExternCalls(SCIP_BRANCHRULE *branchrule)
Definition: branch.c:2101
void SCIPbranchruleSetData(SCIP_BRANCHRULE *branchrule, SCIP_BRANCHRULEDATA *branchruledata)
Definition: branch.c:1859
SCIP_Longint SCIPbranchruleGetNCutsFound(SCIP_BRANCHRULE *branchrule)
Definition: branch.c:2131
type definitions for branching rules
struct SCIP_BranchruleData SCIP_BRANCHRULEDATA
Definition: type_branch.h:57
type definitions for miscellaneous datastructures