gcg.h
Go to the documentation of this file.
1 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2 /* */
3 /* This file is part of the program */
4 /* GCG --- Generic Column Generation */
5 /* a Dantzig-Wolfe decomposition based extension */
6 /* of the branch-cut-and-price framework */
7 /* SCIP --- Solving Constraint Integer Programs */
8 /* */
9 /* Copyright (C) 2010-2018 Operations Research, RWTH Aachen University */
10 /* Zuse Institute Berlin (ZIB) */
11 /* */
12 /* This program is free software; you can redistribute it and/or */
13 /* modify it under the terms of the GNU Lesser General Public License */
14 /* as published by the Free Software Foundation; either version 3 */
15 /* of the License, or (at your option) any later version. */
16 /* */
17 /* This program is distributed in the hope that it will be useful, */
18 /* but WITHOUT ANY WARRANTY; without even the implied warranty of */
19 /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
20 /* GNU Lesser General Public License for more details. */
21 /* */
22 /* You should have received a copy of the GNU Lesser General Public License */
23 /* along with this program; if not, write to the Free Software */
24 /* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.*/
25 /* */
26 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
27 
33 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
34 
35 /* #define SCIP_STATISTIC */
36 
37 #ifndef GCG_H_
38 #define GCG_H_
39 
40 #include "scip/scip.h"
41 
42 #include "type_branchgcg.h"
43 #include "type_decomp.h"
44 #include "type_detector.h"
45 #include "type_solver.h"
46 
47 #include "pub_gcgvar.h"
48 #include "pub_decomp.h"
49 
50 #ifdef __cplusplus
51 extern "C" {
52 #endif
53 
55 extern
56 SCIP_Bool GCGisOriginal(
57  SCIP* scip
58  );
59 
61 extern
62 SCIP_Bool GCGisMaster(
63  SCIP* scip
64  );
65 
67 SCIP_RETCODE GCGprintStatistics(
68  SCIP* scip,
69  FILE* file
70 );
71 
74  SCIP* scip,
75  FILE* file
76 );
77 
78 
79 SCIP_RETCODE GCGprintInstanceName(
80  SCIP* scip,
81  FILE* file
82 );
83 
85  SCIP* scip,
86  SCIP_DIALOGHDLR* dialoghdlr
87  );
88 
89 
90 
92  SCIP* scip,
93  FILE* file
94 );
95 
97  SCIP* scip,
98  FILE* file
99 );
100 
101 
102 SCIP_RETCODE GCGprintClassifierInformation(
103  SCIP* scip,
104  FILE* file
105 );
106 
107 SCIP_RETCODE GCGprintDecompInformation(
108  SCIP* scip,
109  FILE* file
110 );
111 
112 
113 
115 extern
116 SCIP_Real GCGgetPricingprobsMemUsed(
117  SCIP* scip
118  );
119 
121 extern
122 void GCGprintDegeneracy(
123  SCIP* scip,
124  double degeneracy
125  );
126 
128 extern
129 SCIP_Real GCGgetDegeneracy(
130  SCIP* scip
131  );
132 
134 extern
136  SCIP* scip,
137  SCIP_VAR** origvars,
138  SCIP_Real* origvals,
139  int norigvars,
140  SCIP_VAR** mastervars,
141  SCIP_Real* mastervals,
142  int nmastervars
143  );
144 
146 extern
147 SCIP_RETCODE GCGtransformMastersolToOrigsol(
148  SCIP* scip,
149  SCIP_SOL* mastersol,
150  SCIP_SOL** origsol
151  );
152 
154 extern
155 SCIP_Bool GCGisConsGCGCons(
156  SCIP_CONS* cons
157  );
158 
159 
161 SCIP* GCGgetOriginalprob(
162  SCIP* masterprob
163  );
164 
166 extern
167 SCIP* GCGgetMasterprob(
168  SCIP* scip
169  );
170 
172 extern
173 SCIP* GCGgetPricingprob(
174  SCIP* scip,
175  int pricingprobnr
176  );
177 
179 extern
181  SCIP* scip
182  );
183 
186 extern
187 SCIP_Bool GCGisPricingprobRelevant(
188  SCIP* scip,
189  int pricingprobnr
190  );
191 
195 extern
197  SCIP* scip,
198  int pricingprobnr
199  );
200 
202 extern
204  SCIP* scip
205  );
206 
209 extern
211  SCIP* scip,
212  int pricingprobnr
213  );
214 
216 extern
218  SCIP* scip
219  );
220 
222 extern
223 SCIP_CONS** GCGgetMasterConss(
224  SCIP* scip
225  );
226 
228 extern
229 SCIP_CONS** GCGgetOrigMasterConss(
230  SCIP* scip
231  );
232 
233 
237 extern
238 SCIP_CONS** GCGgetLinearOrigMasterConss(
239  SCIP* scip
240  );
241 
243 extern
244 SCIP_CONS* GCGgetConvCons(
245  SCIP* scip,
246  int blocknr
248  );
249 
251 extern
252 SCIP_Bool GCGisMasterSetCovering(
253  SCIP* scip
254  );
255 
257 extern
259  SCIP* scip
260  );
261 
262 
264 SCIP_RETCODE GCGsetStructDecdecomp(
265  SCIP* scip,
266  DEC_DECOMP* decdecomp
267  );
268 
270 SCIP_RETCODE GCGsetFilename(
271  SCIP* scip,
272  const char* filename
273  );
274 
275 
277 extern
279  SCIP* scip
280  );
281 
283 const char* GCGgetFilename(
284  SCIP* scip
285  );
286 
287 
289 extern
290 SCIP_Bool GCGrelaxIsInitialized(
291  SCIP* scip
292  );
293 
295 extern
296 SCIP_CONS** GCGgetVarLinkingconss(
297  SCIP* scip
298  );
299 
301 extern
303  SCIP* scip
304  );
305 
307 extern
309  SCIP* scip
310  );
311 
313 extern
315  SCIP* scip
316  );
317 
319 extern
320 int GCGgetNTransvars(
321  SCIP* scip
322  );
323 
325 extern
326 SCIP_VAR* GCGgetAuxiliaryVariable(
327  SCIP* scip,
328  int pricingprobnr
329  );
330 
332 extern
334  SCIP* scip
335  );
336 
337 #ifdef __cplusplus
338 }
339 #endif
340 #endif /* GCG_H_ */
SCIP_Bool GCGisPricingprobRelevant(SCIP *scip, int pricingprobnr)
Definition: relax_gcg.c:3918
SCIP_Bool GCGisMasterSetCovering(SCIP *scip)
Definition: relax_gcg.c:4131
SCIP_RETCODE GCGprintCompleteDetectionStatistics(SCIP *scip, FILE *file)
Definition: misc.c:761
int GCGgetBlockRepresentative(SCIP *scip, int pricingprobnr)
Definition: relax_gcg.c:3941
SCIP_RETCODE GCGprintStatistics(SCIP *scip, FILE *file)
Definition: misc.c:659
SCIP_RETCODE GCGprintMiplibStructureInformation(SCIP *scip, SCIP_DIALOGHDLR *dialoghdlr)
Definition: misc.c:715
DEC_DECOMP * GCGgetStructDecdecomp(SCIP *scip)
Definition: relax_gcg.c:4831
int GCGgetNTransvars(SCIP *scip)
Definition: relax_gcg.c:5033
SCIP_Bool GCGrelaxIsInitialized(SCIP *scip)
Definition: relax_gcg.c:4910
SCIP_RETCODE GCGprintDecompInformation(SCIP *scip, FILE *file)
SCIP_RETCODE GCGprintBlockcandidateInformation(SCIP *scip, FILE *file)
SCIP * GCGgetPricingprob(SCIP *scip, int pricingprobnr)
Definition: relax_gcg.c:3857
SCIP_CONS ** GCGgetVarLinkingconss(SCIP *scip)
Definition: relax_gcg.c:4957
SCIP_Bool GCGisMasterSetPartitioning(SCIP *scip)
Definition: relax_gcg.c:4150
SCIP * GCGgetMasterprob(SCIP *scip)
Definition: relax_gcg.c:3838
SCIP_RETCODE GCGprintInstanceName(SCIP *scip, FILE *file)
Definition: misc.c:705
SCIP_CONS ** GCGgetMasterConss(SCIP *scip)
Definition: relax_gcg.c:4011
SCIP_CONS ** GCGgetLinearOrigMasterConss(SCIP *scip)
Definition: relax_gcg.c:4051
int GCGgetNLinkingvars(SCIP *scip)
Definition: relax_gcg.c:5014
int * GCGgetVarLinkingconssBlock(SCIP *scip)
Definition: relax_gcg.c:4976
type definitions for pricing problem solvers in GCG project
int GCGgetNPricingprobs(SCIP *scip)
Definition: relax_gcg.c:3897
type definitions for decomposition information in GCG projects
SCIP_CONS ** GCGgetOrigMasterConss(SCIP *scip)
Definition: relax_gcg.c:4030
int GCGgetNRelPricingprobs(SCIP *scip)
Definition: relax_gcg.c:3877
SCIP_CONS * GCGgetConvCons(SCIP *scip, int blocknr)
Definition: relax_gcg.c:4070
void GCGprintDegeneracy(SCIP *scip, double degeneracy)
SCIP_RETCODE GCGprintClassifierInformation(SCIP *scip, FILE *file)
SCIP * GCGgetOriginalprob(SCIP *masterprob)
Definition: relax_gcg.c:3801
SCIP_RETCODE GCGsetFilename(SCIP *scip, const char *filename)
Definition: relax_gcg.c:4804
SCIP_Real GCGgetPricingprobsMemUsed(SCIP *scip)
Definition: relax_gcg.c:4877
SCIP_SOL * GCGgetBendersRelaxationSol(SCIP *scip)
Definition: relax_gcg.c:5052
int GCGgetNVarLinkingconss(SCIP *scip)
Definition: relax_gcg.c:4995
void GCGtransformOrigvalsToMastervals(SCIP *scip, SCIP_VAR **origvars, SCIP_Real *origvals, int norigvars, SCIP_VAR **mastervars, SCIP_Real *mastervals, int nmastervars)
Definition: misc.c:548
public methods for GCG variables
type definitions for branching rules in GCG projects
SCIP_Bool GCGisMaster(SCIP *scip)
Definition: misc.c:650
SCIP_Bool GCGisOriginal(SCIP *scip)
Definition: misc.c:641
int GCGgetNMasterConss(SCIP *scip)
Definition: relax_gcg.c:3992
SCIP_RETCODE GCGsetStructDecdecomp(SCIP *scip, DEC_DECOMP *decdecomp)
Definition: relax_gcg.c:4778
SCIP_RETCODE GCGprintCompleteDetectionTime(SCIP *scip, FILE *file)
SCIP_Real GCGgetDegeneracy(SCIP *scip)
Definition: relax_gcg.c:4930
SCIP_VAR * GCGgetAuxiliaryVariable(SCIP *scip, int pricingprobnr)
const char * GCGgetFilename(SCIP *scip)
Definition: relax_gcg.c:4850
struct DecDecomp DEC_DECOMP
Definition: type_decomp.h:43
SCIP_Bool GCGisConsGCGCons(SCIP_CONS *cons)
Definition: misc.c:796
type definitions for detectors in GCG projects
public methods for working with decomposition structures
int GCGgetNIdenticalBlocks(SCIP *scip, int pricingprobnr)
Definition: relax_gcg.c:3966
SCIP_RETCODE GCGtransformMastersolToOrigsol(SCIP *scip, SCIP_SOL *mastersol, SCIP_SOL **origsol)
Definition: misc.c:124