Scippy

SCIP

Solving Constraint Integer Programs

pub_benderscut.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_benderscut.h
17  * @ingroup PUBLICCOREAPI
18  * @brief public methods for Benders' decomposition cuts
19  * @author Stephen J. Maher
20  */
21 
22 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
23 
24 #ifndef __SCIP_PUB_BENDERSCUT_H__
25 #define __SCIP_PUB_BENDERSCUT_H__
26 
27 #include "scip/def.h"
28 #include "scip/type_benderscut.h"
29 #include "scip/type_cons.h"
30 #include "scip/type_lp.h"
31 #include "scip/type_misc.h"
32 #include "scip/type_retcode.h"
33 
34 #ifdef __cplusplus
35 extern "C" {
36 #endif
37 
38 /**@addtogroup PublicBenderscutsMethods
39  *
40  * @{
41  */
42 
43 /** compares two Benders' decomposition cuts w. r. to their priority */
44 SCIP_EXPORT
45 SCIP_DECL_SORTPTRCOMP(SCIPbenderscutComp);
46 
47 /** comparison method for sorting Benders' decomposition cuts w.r.t. to their name */
48 SCIP_EXPORT
49 SCIP_DECL_SORTPTRCOMP(SCIPbenderscutCompName);
50 
51 /** gets user data of the Benders' decomposition cut */
52 SCIP_EXPORT
54  SCIP_BENDERSCUT* benderscut /**< Benders' decomposition cut */
55  );
56 
57 /** sets user data of the Benders' decomposition cut; user has to free old data in advance! */
58 SCIP_EXPORT
60  SCIP_BENDERSCUT* benderscut, /**< Benders' decomposition cut */
61  SCIP_BENDERSCUTDATA* benderscutdata /**< new Benders' decomposition cut user data */
62  );
63 
64 /** gets name of the Benders' decomposition cut */
65 SCIP_EXPORT
66 const char* SCIPbenderscutGetName(
67  SCIP_BENDERSCUT* benderscut /**< Benders' decomposition cut */
68  );
69 
70 /** gets description of the Benders' decomposition cut */
71 SCIP_EXPORT
72 const char* SCIPbenderscutGetDesc(
73  SCIP_BENDERSCUT* benderscut /**< Benders' decomposition cut */
74  );
75 
76 /** gets priority of the Benders' decomposition cut */
77 SCIP_EXPORT
79  SCIP_BENDERSCUT* benderscut /**< Benders' decomposition cut */
80  );
81 
82 /** gets the number of times, the Benders' decomposition cut was called and tried to find a violated cut */
83 SCIP_EXPORT
85  SCIP_BENDERSCUT* benderscut /**< Benders' decomposition cut */
86  );
87 
88 /** gets the number of the cuts found by this Benders' decomposition cut */
89 SCIP_EXPORT
91  SCIP_BENDERSCUT* benderscut /**< Benders' decomposition cut */
92  );
93 
94 /** is the Benders' decomposition cut initialized? */
95 SCIP_EXPORT
97  SCIP_BENDERSCUT* benderscut /**< Benders' decomposition cut */
98  );
99 
100 /** gets time in seconds used in this Benders' decomposition cut for setting up for next stages */
101 SCIP_EXPORT
103  SCIP_BENDERSCUT* benderscut /**< Benders' decomposition cut */
104  );
105 
106 /** gets time in seconds used in this Benders' decomposition cut */
107 SCIP_EXPORT
109  SCIP_BENDERSCUT* benderscut /**< Benders' decomposition cut */
110  );
111 
112 /** returns whether the Benders' cut uses the LP information */
113 SCIP_EXPORT
115  SCIP_BENDERSCUT* benderscut /**< Benders' decomposition cut */
116  );
117 
118 /** sets the enabled flag of the Benders' decomposition cut method */
119 SCIP_EXPORT
121  SCIP_BENDERSCUT* benderscut, /**< Benders' decomposition cut */
122  SCIP_Bool enabled /**< flag to indicate whether the Benders' decomposition cut is enabled */
123  );
124 
125 /** @} */
126 
127 #ifdef __cplusplus
128 }
129 #endif
130 
131 #endif
const char * SCIPbenderscutGetName(SCIP_BENDERSCUT *benderscut)
Definition: benderscut.c:483
type definitions for miscellaneous datastructures
struct SCIP_BenderscutData SCIP_BENDERSCUTDATA
SCIP_BENDERSCUTDATA * SCIPbenderscutGetData(SCIP_BENDERSCUT *benderscut)
Definition: benderscut.c:394
void SCIPbenderscutSetData(SCIP_BENDERSCUT *benderscut, SCIP_BENDERSCUTDATA *benderscutdata)
Definition: benderscut.c:404
SCIP_Bool SCIPbenderscutIsInitialized(SCIP_BENDERSCUT *benderscut)
Definition: benderscut.c:544
const char * SCIPbenderscutGetDesc(SCIP_BENDERSCUT *benderscut)
Definition: benderscut.c:493
type definitions for return codes for SCIP methods
SCIP_Real SCIPbenderscutGetTime(SCIP_BENDERSCUT *benderscut)
Definition: benderscut.c:564
SCIP_Longint SCIPbenderscutGetNFound(SCIP_BENDERSCUT *benderscut)
Definition: benderscut.c:534
type definitions for LP management
void SCIPbenderscutSetEnabled(SCIP_BENDERSCUT *benderscut, SCIP_Bool enabled)
Definition: benderscut.c:584
SCIP_Longint SCIPbenderscutGetNCalls(SCIP_BENDERSCUT *benderscut)
Definition: benderscut.c:524
int SCIPbenderscutGetPriority(SCIP_BENDERSCUT *benderscut)
Definition: benderscut.c:503
#define SCIP_Bool
Definition: def.h:84
SCIP_DECL_SORTPTRCOMP(SCIPbenderscutComp)
Definition: benderscut.c:44
SCIP_Real SCIPbenderscutGetSetupTime(SCIP_BENDERSCUT *benderscut)
Definition: benderscut.c:554
type definitions for Benders&#39; decomposition cut
SCIP_Bool SCIPbenderscutIsLPCut(SCIP_BENDERSCUT *benderscut)
Definition: benderscut.c:574
#define SCIP_Real
Definition: def.h:177
#define SCIP_Longint
Definition: def.h:162
common defines and data types used in all packages of SCIP
type definitions for constraints and constraint handlers