Scippy

GCG

Branch-and-Price & Column Generation for Everyone

pricingjob.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 pricingjob.h
29  * @brief private methods for working with pricing jobs, to be used by the pricing controller only
30  * @author Christian Puchert
31  */
32 
33 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
34 #ifndef GCG_PRICINGJOB_H__
35 #define GCG_PRICINGJOB_H__
36 
37 #include "struct_pricingjob.h"
38 #include "type_pricingjob.h"
39 
40 #include "type_pricingprob.h"
41 
42 #ifdef __cplusplus
43 extern "C" {
44 #endif
45 
46 /** create a pricing job */
47 SCIP_EXPORT
48 SCIP_RETCODE GCGpricingjobCreate(
49  SCIP* scip, /**< SCIP data structure (master problem) */
50  GCG_PRICINGJOB** pricingjob, /**< pricing job to be created */
51  GCG_PRICINGPROB* pricingprob, /**< data structure of the corresponding pricing problem */
52  GCG_SOLVER* solver, /**< pricing solver responsible for the pricing job */
53  int chunk /**< chunk that the pricing problem should belong to */
54 );
55 
56 /** free a pricing job */
57 SCIP_EXPORT
59  SCIP* scip, /**< SCIP data structure (master problem) */
60  GCG_PRICINGJOB** pricingjob /**< pricing job to be freed */
61 );
62 
63 /** setup a pricing job at the beginning of the pricing loop */
64 SCIP_EXPORT
65 SCIP_RETCODE GCGpricingjobSetup(
66  SCIP* scip, /**< SCIP data structure (master problem) */
67  GCG_PRICINGJOB* pricingjob, /**< pricing job */
68  SCIP_Bool heuristic, /**< shall the pricing job be performed heuristically? */
69  int scoring, /**< scoring parameter */
70  int nroundscol, /**< number of previous pricing rounds for which the number of improving columns should be counted */
71  SCIP_Real dualsolconv, /**< dual solution value of corresponding convexity constraint */
72  int npointsprob, /**< total number of extreme points generated so far by the pricing problem */
73  int nraysprob /**< total number of extreme rays generated so far by the pricing problem */
74  );
75 
76 /** reset the pricing solver to be used to the one with the highest priority */
77 SCIP_EXPORT
79  SCIP* scip, /**< SCIP data structure (master problem) */
80  GCG_PRICINGJOB* pricingjob /**< pricing job */
81  );
82 
83 /** get the next pricing solver to be used, or NULL of there is none */
84 SCIP_EXPORT
86  SCIP* scip, /**< SCIP data structure (master problem) */
87  GCG_PRICINGJOB* pricingjob /**< pricing job */
88  );
89 
90 /** set the pricing job to be performed exactly */
91 SCIP_EXPORT
93  GCG_PRICINGJOB* pricingjob /**< pricing job */
94  );
95 
96 /** reset number of heuristic pricing iterations of a pricing job */
97 SCIP_EXPORT
99  GCG_PRICINGJOB* pricingjob /**< pricing job */
100  );
101 
102 /** update number of heuristic pricing iterations of a pricing job */
103 SCIP_EXPORT
105  GCG_PRICINGJOB* pricingjob /**< pricing job */
106  );
107 
108 #ifdef __cplusplus
109 }
110 #endif
111 
112 #endif
data structure for pricing jobs
SCIP_EXPORT void GCGpricingjobNextSolver(SCIP *scip, GCG_PRICINGJOB *pricingjob)
Definition: pricingjob.c:171
SCIP_EXPORT SCIP_RETCODE GCGpricingjobSetup(SCIP *scip, GCG_PRICINGJOB *pricingjob, SCIP_Bool heuristic, int scoring, int nroundscol, SCIP_Real dualsolconv, int npointsprob, int nraysprob)
Definition: pricingjob.c:82
SCIP_EXPORT void GCGpricingjobIncreaseNHeurIters(GCG_PRICINGJOB *pricingjob)
Definition: pricingjob.c:250
type definitions for pricing problem data structure
SCIP_EXPORT void GCGpricingjobResetHeuristic(GCG_PRICINGJOB *pricingjob)
Definition: pricingjob.c:238
SCIP_EXPORT void GCGpricingjobSetExact(GCG_PRICINGJOB *pricingjob)
Definition: pricingjob.c:230
SCIP_EXPORT void GCGpricingjobResetSolver(SCIP *scip, GCG_PRICINGJOB *pricingjob)
Definition: pricingjob.c:141
SCIP_EXPORT SCIP_RETCODE GCGpricingjobCreate(SCIP *scip, GCG_PRICINGJOB **pricingjob, GCG_PRICINGPROB *pricingprob, GCG_SOLVER *solver, int chunk)
Definition: pricingjob.c:51
SCIP_EXPORT void GCGpricingjobFree(SCIP *scip, GCG_PRICINGJOB **pricingjob)
Definition: pricingjob.c:72
type definitions for pricing job data structure