Scippy

SCIP

Solving Constraint Integer Programs

pub_relax.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_relax.h
17  * @ingroup PUBLICCOREAPI
18  * @brief public methods for relaxation handlers
19  * @author Tobias Achterberg
20  */
21 
22 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
23 
24 #ifndef __SCIP_PUB_RELAX_H__
25 #define __SCIP_PUB_RELAX_H__
26 
27 
28 #include "scip/def.h"
29 #include "scip/type_misc.h"
30 #include "scip/type_relax.h"
31 
32 #ifdef __cplusplus
33 extern "C" {
34 #endif
35 
36 
37 /**@addtogroup PublicRelaxatorMethods
38  *
39  * @{
40  */
41 
42 
43 /** compares two relaxation handlers w. r. to their priority */
44 SCIP_EXPORT
45 SCIP_DECL_SORTPTRCOMP(SCIPrelaxComp);
46 
47 /** comparison method for sorting relaxators w.r.t. to their name */
48 SCIP_EXPORT
49 SCIP_DECL_SORTPTRCOMP(SCIPrelaxCompName);
50 
51 /** gets user data of relaxation handler */
52 SCIP_EXPORT
54  SCIP_RELAX* relax /**< relaxation handler */
55  );
56 
57 /** sets user data of relaxation handler; user has to free old data in advance! */
58 SCIP_EXPORT
59 void SCIPrelaxSetData(
60  SCIP_RELAX* relax, /**< relaxation handler */
61  SCIP_RELAXDATA* relaxdata /**< new relaxation handler user data */
62  );
63 
64 /** gets name of relaxation handler */
65 SCIP_EXPORT
66 const char* SCIPrelaxGetName(
67  SCIP_RELAX* relax /**< relaxation handler */
68  );
69 
70 /** gets description of relaxation handler */
71 SCIP_EXPORT
72 const char* SCIPrelaxGetDesc(
73  SCIP_RELAX* relax /**< relaxation handler */
74  );
75 
76 /** gets priority of relaxation handler */
77 SCIP_EXPORT
79  SCIP_RELAX* relax /**< relaxation handler */
80  );
81 
82 /** gets frequency of relaxation handler */
83 SCIP_EXPORT
85  SCIP_RELAX* relax /**< relaxation handler */
86  );
87 
88 /** gets time in seconds used in this relaxator for setting up for next stages */
89 SCIP_EXPORT
91  SCIP_RELAX* relax /**< relaxator */
92  );
93 
94 /** gets time in seconds used in this relaxation handler */
95 SCIP_EXPORT
97  SCIP_RELAX* relax /**< relaxation handler */
98  );
99 
100 /** gets the total number of times the relaxation handler was called */
101 SCIP_EXPORT
103  SCIP_RELAX* relax /**< relaxation handler */
104  );
105 
106 /** gets the total number of times the relaxation handler cut off a node */
107 SCIP_EXPORT
109  SCIP_RELAX* relax /**< relaxation handler */
110  );
111 
112 /** gets the total number of times the relaxation handler improved a node's lower bound */
113 SCIP_EXPORT
115  SCIP_RELAX* relax /**< relaxation handler */
116  );
117 
118 /** gets the time in seconds spent for the execution of the relaxation handler when a node's lower bound could be improved (or a cutoff was found) */
119 SCIP_EXPORT
121  SCIP_RELAX* relax /**< relaxation handler */
122  );
123 
124 /** gets the total number of times the relaxation handler added constraints */
125 SCIP_EXPORT
127  SCIP_RELAX* relax /**< relaxation handler */
128  );
129 
130 /** gets the total number of times the relaxation handler reduced variable domains */
131 SCIP_EXPORT
133  SCIP_RELAX* relax /**< relaxation handler */
134  );
135 
136 /** gets the total number of times the relaxation handler separated cutting planes */
137 SCIP_EXPORT
139  SCIP_RELAX* relax /**< relaxation handler */
140  );
141 
142 /** is relaxation handler initialized? */
143 SCIP_EXPORT
145  SCIP_RELAX* relax /**< relaxation handler */
146  );
147 
148 /** marks the current relaxation unsolved, s.t. the relaxation handler is called again in the next solving round */
149 SCIP_EXPORT
151  SCIP_RELAX* relax /**< relaxation handler */
152  );
153 
154 /** @} */
155 
156 #ifdef __cplusplus
157 }
158 #endif
159 
160 #endif
SCIP_DECL_SORTPTRCOMP(SCIPrelaxComp)
Definition: relax.c:47
type definitions for miscellaneous datastructures
SCIP_Longint SCIPrelaxGetNImprovedLowerbound(SCIP_RELAX *relax)
Definition: relax.c:639
SCIP_Longint SCIPrelaxGetNCalls(SCIP_RELAX *relax)
Definition: relax.c:619
SCIP_Real SCIPrelaxGetTime(SCIP_RELAX *relax)
Definition: relax.c:609
SCIP_Real SCIPrelaxGetImprovedLowerboundTime(SCIP_RELAX *relax)
Definition: relax.c:659
int SCIPrelaxGetPriority(SCIP_RELAX *relax)
Definition: relax.c:553
SCIP_Longint SCIPrelaxGetNReducedDomains(SCIP_RELAX *relax)
Definition: relax.c:669
const char * SCIPrelaxGetName(SCIP_RELAX *relax)
Definition: relax.c:533
SCIP_RELAXDATA * SCIPrelaxGetData(SCIP_RELAX *relax)
Definition: relax.c:446
void SCIPrelaxMarkUnsolved(SCIP_RELAX *relax)
Definition: relax.c:711
type definitions for relaxators
int SCIPrelaxGetFreq(SCIP_RELAX *relax)
Definition: relax.c:577
SCIP_Real SCIPrelaxGetSetupTime(SCIP_RELAX *relax)
Definition: relax.c:587
#define SCIP_Bool
Definition: def.h:84
const char * SCIPrelaxGetDesc(SCIP_RELAX *relax)
Definition: relax.c:543
void SCIPrelaxSetData(SCIP_RELAX *relax, SCIP_RELAXDATA *relaxdata)
Definition: relax.c:456
struct SCIP_RelaxData SCIP_RELAXDATA
Definition: type_relax.h:38
SCIP_Longint SCIPrelaxGetNSeparatedCuts(SCIP_RELAX *relax)
Definition: relax.c:679
SCIP_Bool SCIPrelaxIsInitialized(SCIP_RELAX *relax)
Definition: relax.c:689
#define SCIP_Real
Definition: def.h:177
SCIP_Longint SCIPrelaxGetNCutoffs(SCIP_RELAX *relax)
Definition: relax.c:629
#define SCIP_Longint
Definition: def.h:162
SCIP_Longint SCIPrelaxGetNAddedConss(SCIP_RELAX *relax)
Definition: relax.c:649
common defines and data types used in all packages of SCIP