Scippy

SCIP

Solving Constraint Integer Programs

pub_sepa.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_sepa.h
26  * @ingroup PUBLICCOREAPI
27  * @brief public methods for separators
28  * @author Tobias Achterberg
29  */
30 
31 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
32 
33 #ifndef __SCIP_PUB_SEPA_H__
34 #define __SCIP_PUB_SEPA_H__
35 
36 
37 #include "scip/def.h"
38 #include "scip/type_misc.h"
39 #include "scip/type_sepa.h"
40 
41 #ifdef __cplusplus
42 extern "C" {
43 #endif
44 
45 /*--+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
46 /**@addtogroup PublicSeparatorMethods
47  *
48  * @{
49  */
50 
51 
52 /** compares two separators w. r. to their priority */
53 SCIP_EXPORT
54 SCIP_DECL_SORTPTRCOMP(SCIPsepaComp);
55 
56 /** comparison method for sorting separators w.r.t. to their name */
57 SCIP_EXPORT
58 SCIP_DECL_SORTPTRCOMP(SCIPsepaCompName);
59 
60 /** gets user data of separator */
61 SCIP_EXPORT
63  SCIP_SEPA* sepa /**< separator */
64  );
65 
66 /** sets user data of separator; user has to free old data in advance! */
67 SCIP_EXPORT
68 void SCIPsepaSetData(
69  SCIP_SEPA* sepa, /**< separator */
70  SCIP_SEPADATA* sepadata /**< new separator user data */
71  );
72 
73 /** gets name of separator */
74 SCIP_EXPORT
75 const char* SCIPsepaGetName(
76  SCIP_SEPA* sepa /**< separator */
77  );
78 
79 /** gets description of separator */
80 SCIP_EXPORT
81 const char* SCIPsepaGetDesc(
82  SCIP_SEPA* sepa /**< separator */
83  );
84 
85 /** gets priority of separator */
86 SCIP_EXPORT
88  SCIP_SEPA* sepa /**< separator */
89  );
90 
91 /** gets frequency of separator */
92 SCIP_EXPORT
93 int SCIPsepaGetFreq(
94  SCIP_SEPA* sepa /**< separator */
95  );
96 
97 /** sets frequency of separator */
98 SCIP_EXPORT
99 void SCIPsepaSetFreq(
100  SCIP_SEPA* sepa, /**< separator */
101  int freq /**< new frequency of separator */
102  );
103 
104 /** get maximal bound distance at which the separator is called */
105 SCIP_EXPORT
107  SCIP_SEPA* sepa /**< separator */
108  );
109 
110 /** does the separator use a secondary SCIP instance? */
111 SCIP_EXPORT
113  SCIP_SEPA* sepa /**< separator */
114  );
115 
116 /** gets time in seconds used in this separator for setting up for next stages */
117 SCIP_EXPORT
119  SCIP_SEPA* sepa /**< separator */
120  );
121 
122 /** gets time in seconds used in this separator */
123 SCIP_EXPORT
125  SCIP_SEPA* sepa /**< separator */
126  );
127 
128 /** gets the total number of times the separator was called */
129 SCIP_EXPORT
131  SCIP_SEPA* sepa /**< separator */
132  );
133 
134 /** gets the total number of times the separator was called at the root */
135 SCIP_EXPORT
137  SCIP_SEPA* sepa /**< separator */
138  );
139 
140 /** gets the number of times, the separator was called at the current node */
141 SCIP_EXPORT
143  SCIP_SEPA* sepa /**< separator */
144  );
145 
146 /** gets total number of times, the separator detected a cutoff */
147 SCIP_EXPORT
149  SCIP_SEPA* sepa /**< separator */
150  );
151 
152 /** gets the total number of cutting planes added from the separator to the cut pool
153  * and to the sepastore directly */
154 SCIP_EXPORT
156  SCIP_SEPA* sepa /**< separator */
157  );
158 
159 /** gets the total number of cutting planes added from the separator to the sepastore;
160  * equal to the sum of added cuts directly and via the pool. */
161 SCIP_EXPORT
163  SCIP_SEPA* sepa /**< separator */
164  );
165 
166 /** gets the number of cutting planes from the separator added from the cut pool */
167 SCIP_EXPORT
169  SCIP_SEPA* sepa /**< separator */
170  );
171 
172 /** gets the number of cutting planes from the separator added directly to the sepastore */
173 SCIP_EXPORT
175  SCIP_SEPA* sepa /**< separator */
176  );
177 
178 /** gets the total number of cutting planes from the separator applied to the LP */
179 SCIP_EXPORT
181  SCIP_SEPA* sepa /**< separator */
182  );
183 
184 /** gets the total number of cutting planes from the separator applied to the LP from the cutpool */
185 SCIP_EXPORT
187  SCIP_SEPA* sepa /**< separator */
188  );
189 
190 /** gets the total number of cutting planes from the separator applied directly to the LP */
191 SCIP_EXPORT
193  SCIP_SEPA* sepa /**< separator */
194  );
195 
196 /** gets the number of cutting planes found by this separator at the current node */
197 SCIP_EXPORT
199  SCIP_SEPA* sepa /**< separator */
200  );
201 
202 /** gets total number of additional constraints added by this separator */
203 SCIP_EXPORT
205  SCIP_SEPA* sepa /**< separator */
206  );
207 
208 /** gets total number of domain reductions found by this separator */
209 SCIP_EXPORT
211  SCIP_SEPA* sepa /**< separator */
212  );
213 
214 /** should separator be delayed, if other separators found cuts? */
215 SCIP_EXPORT
217  SCIP_SEPA* sepa /**< separator */
218  );
219 
220 /** was separation of the LP solution delayed at the last call? */
221 SCIP_EXPORT
223  SCIP_SEPA* sepa /**< separator */
224  );
225 
226 /** was separation of the primal solution delayed at the last call? */
227 SCIP_EXPORT
229  SCIP_SEPA* sepa /**< separator */
230  );
231 
232 /** is separator initialized? */
233 SCIP_EXPORT
235  SCIP_SEPA* sepa /**< separator */
236  );
237 
238 /** gets whether separator is a parent separator */
239 SCIP_EXPORT
241  SCIP_SEPA* sepa /**< separator */
242  );
243 
244 /** gets parent separator (or NULL) */
245 SCIP_EXPORT
247  SCIP_SEPA* sepa /**< separator */
248  );
249 
250 /** @} */
251 
252 #ifdef __cplusplus
253 }
254 #endif
255 
256 #endif
SCIP_SEPA * SCIPsepaGetParentsepa(SCIP_SEPA *sepa)
Definition: sepa.c:1139
type definitions for miscellaneous datastructures
SCIP_Bool SCIPsepaIsParentsepa(SCIP_SEPA *sepa)
Definition: sepa.c:1129
SCIP_Bool SCIPsepaUsesSubscip(SCIP_SEPA *sepa)
Definition: sepa.c:818
SCIP_Longint SCIPsepaGetNDomredsFound(SCIP_SEPA *sepa)
Definition: sepa.c:1079
SCIP_Longint SCIPsepaGetNCutsAppliedViaPool(SCIP_SEPA *sepa)
Definition: sepa.c:951
SCIP_Real SCIPsepaGetSetupTime(SCIP_SEPA *sepa)
Definition: sepa.c:840
const char * SCIPsepaGetName(SCIP_SEPA *sepa)
Definition: sepa.c:743
SCIP_Real SCIPsepaGetTime(SCIP_SEPA *sepa)
Definition: sepa.c:850
SCIP_Longint SCIPsepaGetNCutsFound(SCIP_SEPA *sepa)
Definition: sepa.c:900
SCIP_Longint SCIPsepaGetNCutsAdded(SCIP_SEPA *sepa)
Definition: sepa.c:911
SCIP_DECL_SORTPTRCOMP(SCIPsepaComp)
Definition: sepa.c:52
SCIP_SEPADATA * SCIPsepaGetData(SCIP_SEPA *sepa)
Definition: sepa.c:633
int SCIPsepaGetFreq(SCIP_SEPA *sepa)
Definition: sepa.c:787
SCIP_Longint SCIPsepaGetNRootCalls(SCIP_SEPA *sepa)
Definition: sepa.c:870
SCIP_Longint SCIPsepaGetNCutoffs(SCIP_SEPA *sepa)
Definition: sepa.c:890
int SCIPsepaGetNCallsAtNode(SCIP_SEPA *sepa)
Definition: sepa.c:880
void SCIPsepaSetData(SCIP_SEPA *sepa, SCIP_SEPADATA *sepadata)
Definition: sepa.c:643
void SCIPsepaSetFreq(SCIP_SEPA *sepa, int freq)
Definition: sepa.c:797
SCIP_Real SCIPsepaGetMaxbounddist(SCIP_SEPA *sepa)
Definition: sepa.c:808
const char * SCIPsepaGetDesc(SCIP_SEPA *sepa)
Definition: sepa.c:753
SCIP_Longint SCIPsepaGetNCalls(SCIP_SEPA *sepa)
Definition: sepa.c:860
SCIP_Bool SCIPsepaWasLPDelayed(SCIP_SEPA *sepa)
Definition: sepa.c:1099
#define SCIP_Bool
Definition: def.h:91
SCIP_Longint SCIPsepaGetNConssFound(SCIP_SEPA *sepa)
Definition: sepa.c:1069
SCIP_Longint SCIPsepaGetNCutsAddedViaPool(SCIP_SEPA *sepa)
Definition: sepa.c:921
SCIP_Longint SCIPsepaGetNCutsAddedDirect(SCIP_SEPA *sepa)
Definition: sepa.c:931
SCIP_Longint SCIPsepaGetNCutsAppliedDirect(SCIP_SEPA *sepa)
Definition: sepa.c:961
SCIP_Bool SCIPsepaWasSolDelayed(SCIP_SEPA *sepa)
Definition: sepa.c:1109
type definitions for separators
SCIP_Bool SCIPsepaIsDelayed(SCIP_SEPA *sepa)
Definition: sepa.c:1089
#define SCIP_Real
Definition: def.h:173
SCIP_Longint SCIPsepaGetNCutsApplied(SCIP_SEPA *sepa)
Definition: sepa.c:941
#define SCIP_Longint
Definition: def.h:158
SCIP_Bool SCIPsepaIsInitialized(SCIP_SEPA *sepa)
Definition: sepa.c:1119
common defines and data types used in all packages of SCIP
SCIP_Longint SCIPsepaGetNCutsFoundAtNode(SCIP_SEPA *sepa)
Definition: sepa.c:1059
int SCIPsepaGetPriority(SCIP_SEPA *sepa)
Definition: sepa.c:763
struct SCIP_SepaData SCIP_SEPADATA
Definition: type_sepa.h:52