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-2018 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 scip.zib.de. */
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 extern
45 SCIP_DECL_SORTPTRCOMP(SCIPbenderscutComp);
46 
47 /** comparison method for sorting Benders' decomposition cuts w.r.t. to their name */
48 extern
49 SCIP_DECL_SORTPTRCOMP(SCIPbenderscutCompName);
50 
51 /** gets user data of the Benders' decomposition cut */
52 extern
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 extern
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 extern
66 const char* SCIPbenderscutGetName(
67  SCIP_BENDERSCUT* benderscut /**< Benders' decomposition cut */
68  );
69 
70 /** gets description of the Benders' decomposition cut */
71 extern
72 const char* SCIPbenderscutGetDesc(
73  SCIP_BENDERSCUT* benderscut /**< Benders' decomposition cut */
74  );
75 
76 /** gets priority of the Benders' decomposition cut */
77 extern
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 extern
85  SCIP_BENDERSCUT* benderscut /**< Benders' decomposition cut */
86  );
87 
88 /** gets the number of the cuts found by this Benders' decomposition cut */
89 extern
91  SCIP_BENDERSCUT* benderscut /**< Benders' decomposition cut */
92  );
93 
94 /** is the Benders' decomposition cut initialized? */
95 extern
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 extern
103  SCIP_BENDERSCUT* benderscut /**< Benders' decomposition cut */
104  );
105 
106 /** gets time in seconds used in this Benders' decomposition cut */
107 extern
109  SCIP_BENDERSCUT* benderscut /**< Benders' decomposition cut */
110  );
111 
112 /** returns the constraints that have been added by the Benders' cut plugin */
113 extern
115  SCIP_BENDERSCUT* benderscut, /**< Benders' decomposition cut */
116  SCIP_CONS*** addedconss, /**< pointer to store the constraint array, can be NULL */
117  int* naddedconss /**< pointer to store the number of added constraints, can be NULL */
118  );
119 
120 /** returns the cuts that have been added by the Benders' cut plugin */
121 extern
123  SCIP_BENDERSCUT* benderscut, /**< Benders' decomposition cut */
124  SCIP_ROW*** addedcuts, /**< pointer to store the cuts array, can be NULL */
125  int* naddedcuts /**< pointer to store the number of added cut, can be NULL */
126  );
127 
128 /** returns whether the Benders' cut uses the LP information */
129 extern
131  SCIP_BENDERSCUT* benderscut /**< Benders' decomposition cut */
132  );
133 
134 /** sets the enabled flag of the Benders' decomposition cut method */
135 extern
137  SCIP_BENDERSCUT* benderscut, /**< Benders' decomposition cut */
138  SCIP_Bool enabled /**< flag to indicate whether the Benders' decomposition cut is enabled */
139  );
140 
141 /* @} */
142 
143 #ifdef __cplusplus
144 }
145 #endif
146 
147 #endif
const char * SCIPbenderscutGetName(SCIP_BENDERSCUT *benderscut)
Definition: benderscut.c:489
type definitions for miscellaneous datastructures
struct SCIP_BenderscutData SCIP_BENDERSCUTDATA
SCIP_BENDERSCUTDATA * SCIPbenderscutGetData(SCIP_BENDERSCUT *benderscut)
Definition: benderscut.c:400
void SCIPbenderscutSetData(SCIP_BENDERSCUT *benderscut, SCIP_BENDERSCUTDATA *benderscutdata)
Definition: benderscut.c:410
enum SCIP_Retcode SCIP_RETCODE
Definition: type_retcode.h:53
SCIP_Bool SCIPbenderscutIsInitialized(SCIP_BENDERSCUT *benderscut)
Definition: benderscut.c:550
const char * SCIPbenderscutGetDesc(SCIP_BENDERSCUT *benderscut)
Definition: benderscut.c:499
type definitions for return codes for SCIP methods
SCIP_RETCODE SCIPbenderscutGetAddedCuts(SCIP_BENDERSCUT *benderscut, SCIP_ROW ***addedcuts, int *naddedcuts)
Definition: benderscut.c:598
SCIP_Real SCIPbenderscutGetTime(SCIP_BENDERSCUT *benderscut)
Definition: benderscut.c:570
SCIP_Longint SCIPbenderscutGetNFound(SCIP_BENDERSCUT *benderscut)
Definition: benderscut.c:540
type definitions for LP management
void SCIPbenderscutSetEnabled(SCIP_BENDERSCUT *benderscut, SCIP_Bool enabled)
Definition: benderscut.c:687
SCIP_Longint SCIPbenderscutGetNCalls(SCIP_BENDERSCUT *benderscut)
Definition: benderscut.c:530
int SCIPbenderscutGetPriority(SCIP_BENDERSCUT *benderscut)
Definition: benderscut.c:509
#define SCIP_Bool
Definition: def.h:62
SCIP_DECL_SORTPTRCOMP(SCIPbenderscutComp)
Definition: benderscut.c:45
SCIP_RETCODE SCIPbenderscutGetAddedConss(SCIP_BENDERSCUT *benderscut, SCIP_CONS ***addedconss, int *naddedconss)
Definition: benderscut.c:580
SCIP_Real SCIPbenderscutGetSetupTime(SCIP_BENDERSCUT *benderscut)
Definition: benderscut.c:560
type definitions for Benders&#39; decomposition cut
SCIP_Bool SCIPbenderscutIsLPCut(SCIP_BENDERSCUT *benderscut)
Definition: benderscut.c:677
#define SCIP_Real
Definition: def.h:150
#define SCIP_Longint
Definition: def.h:135
common defines and data types used in all packages of SCIP
type definitions for constraints and constraint handlers