Scippy

GCG

Branch-and-Price & Column Generation for Everyone

pub_pricingprob.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-2021 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 
28 /**@file pub_pricingprob.h
29  * @ingroup PUBLICCOREAPI
30  * @brief public methods for working with pricing problems
31  * @author Christian Puchert
32  */
33 
34 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
35 #ifndef GCG_PUB_PRICINGPROB_H__
36 #define GCG_PUB_PRICINGPROB_H__
37 
38 #include "type_pricingprob.h"
39 #include "scip/type_scip.h"
40 
41 #ifdef __cplusplus
42 extern "C" {
43 #endif
44 
45 /*
46  * GCG Pricing Problem
47  */
48 
49 /**
50  * @ingroup PRICINGPROB
51  * @{
52  */
53 
54 
55 /** get the SCIP instance corresponding to the pricing problem */
56 SCIP_EXPORT
58  GCG_PRICINGPROB* pricingprob /**< pricing problem structure */
59  );
60 
61 /** get the index of the corresponding pricing problem */
62 SCIP_EXPORT
64  GCG_PRICINGPROB* pricingprob /**< pricing problem structure */
65  );
66 
67 /** get generic branching data corresponding to the pricing problem */
68 SCIP_EXPORT
70  GCG_PRICINGPROB* pricingprob, /**< pricing problem structure */
71  SCIP_CONS*** branchconss, /**< pointer to store branching constraints array, or NULL */
72  SCIP_Real** branchduals, /**< pointer to store array of corresponding dual values, or NULL */
73  int* nbranchconss /**< pointer to store number of generic branching constraints, or NULL */
74  );
75 
76 /** get the number of generic branching constraints corresponding to the pricing problem */
77 SCIP_EXPORT
79  GCG_PRICINGPROB* pricingprob /**< pricing problem structure */
80  );
81 
82 /** get index of current generic branching constraint considered the pricing problem */
83 SCIP_EXPORT
85  GCG_PRICINGPROB* pricingprob /**< pricing problem structure */
86  );
87 
88 /** check if the current generic branching constraint has already been added */
89 SCIP_EXPORT
91  GCG_PRICINGPROB* pricingprob /**< pricing problem structure */
92  );
93 
94 /** mark the current generic branching constraint to be added */
95 SCIP_EXPORT
97  GCG_PRICINGPROB* pricingprob /**< pricing problem structure */
98  );
99 
100 /** get the status of a pricing problem */
101 SCIP_EXPORT
103  GCG_PRICINGPROB* pricingprob /**< pricing problem structure */
104  );
105 
106 /** get the lower bound of a pricing problem */
107 SCIP_EXPORT
109  GCG_PRICINGPROB* pricingprob /**< pricing problem structure */
110  );
111 
112 /** get the number of improving columns found for this pricing problem */
113 SCIP_EXPORT
115  GCG_PRICINGPROB* pricingprob /**< pricing problem structure */
116  );
117 
118 /** get the number of times the pricing problem was solved during the loop */
119 SCIP_EXPORT
121  GCG_PRICINGPROB* pricingprob /**< pricing problem structure */
122  );
123 
124 /** get the total number of improving colums found in the last pricing rounds */
125 SCIP_EXPORT
127  GCG_PRICINGPROB* pricingprob, /**< pricing problem structure */
128  int nroundscol /**< number of previous pricing rounds for which the number of improving columns should be counted */
129  );
130 
131 /**@} */
132 
133 #ifdef __cplusplus
134 }
135 #endif
136 #endif
SCIP_EXPORT int GCGpricingprobGetNSolves(GCG_PRICINGPROB *pricingprob)
Definition: pricingprob.c:295
SCIP_EXPORT SCIP_Bool GCGpricingprobBranchconsIsAdded(GCG_PRICINGPROB *pricingprob)
Definition: pricingprob.c:244
SCIP_EXPORT void GCGpricingprobMarkBranchconsAdded(GCG_PRICINGPROB *pricingprob)
Definition: pricingprob.c:252
enum GCG_PricingStatus GCG_PRICINGSTATUS
SCIP_EXPORT SCIP_Real GCGpricingprobGetLowerbound(GCG_PRICINGPROB *pricingprob)
Definition: pricingprob.c:279
SCIP_EXPORT GCG_PRICINGSTATUS GCGpricingprobGetStatus(GCG_PRICINGPROB *pricingprob)
Definition: pricingprob.c:271
SCIP_EXPORT int GCGpricingprobGetBranchconsIdx(GCG_PRICINGPROB *pricingprob)
Definition: pricingprob.c:236
SCIP_EXPORT int GCGpricingprobGetNColsLastRounds(GCG_PRICINGPROB *pricingprob, int nroundscol)
Definition: pricingprob.c:303
SCIP_EXPORT SCIP * GCGpricingprobGetPricingscip(GCG_PRICINGPROB *pricingprob)
Definition: pricingprob.c:196
type definitions for pricing problem data structure
SCIP_EXPORT void GCGpricingprobGetGenericBranchData(GCG_PRICINGPROB *pricingprob, SCIP_CONS ***branchconss, SCIP_Real **branchduals, int *nbranchconss)
Definition: pricingprob.c:212
SCIP_EXPORT int GCGpricingprobGetNGenericBranchconss(GCG_PRICINGPROB *pricingprob)
Definition: pricingprob.c:228
SCIP_EXPORT int GCGpricingprobGetProbnr(GCG_PRICINGPROB *pricingprob)
Definition: pricingprob.c:204
SCIP_EXPORT int GCGpricingprobGetNImpCols(GCG_PRICINGPROB *pricingprob)
Definition: pricingprob.c:287