Scippy

GCG

Branch-and-Price & Column Generation for Everyone

pub_solver.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 solver.h
29  * @ingroup PUBLICCOREAPI
30  * @brief public methods for GCG pricing solvers
31  * @author Christian Puchert
32  */
33 
34 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
35 
36 #ifndef GCG_PUB_SOLVER_H_
37 #define GCG_PUB_SOLVER_H_
38 
39 #include "type_solver.h"
40 #include "scip/scip.h"
41 
42 #ifdef __cplusplus
43 extern "C" {
44 #endif
45 
46 /**
47  * @ingroup PRICING_PUB
48  * @{
49  */
50 
51 /** compares two solvers w. r. t. their priorities */
52 SCIP_EXPORT
53 SCIP_DECL_SORTPTRCOMP(GCGsolverComp);
54 
55 /** gets user data of GCG pricing solver */
56 SCIP_EXPORT
58  GCG_SOLVER* solver /**< pricing solver */
59  );
60 
61 /** sets user data of GCG pricing solver */
62 SCIP_EXPORT
63 void GCGsolverSetData(
64  GCG_SOLVER* solver, /**< pricing solver */
65  GCG_SOLVERDATA* solverdata /**< pricing solver data */
66  );
67 
68 /** gets name of GCG pricing solver */
69 SCIP_EXPORT
70 const char* GCGsolverGetName(
71  GCG_SOLVER* solver /**< pricing solver */
72  );
73 
74 /** gets description of GCG pricing solver */
75 SCIP_EXPORT
76 const char* GCGsolverGetDesc(
77  GCG_SOLVER* solver /**< pricing solver */
78  );
79 
80 /** gets priority of GCG pricing solver */
81 SCIP_EXPORT
83  GCG_SOLVER* solver /**< pricing solver */
84  );
85 
86 /** gets whether heuristic solving method of GCG pricing solver is enabled */
87 SCIP_EXPORT
88 SCIP_Bool GCGsolverIsHeurEnabled(
89  GCG_SOLVER* solver /**< pricing solver */
90  );
91 
92 /** gets whether exact solving method of GCG pricing solver is enabled */
93 SCIP_EXPORT
94 SCIP_Bool GCGsolverIsExactEnabled(
95  GCG_SOLVER* solver /**< pricing solver */
96  );
97 
98 /** gets number of exact Farkas pricing calls of pricing solver */
99 SCIP_EXPORT
101  GCG_SOLVER* solver /**< pricing solver */
102  );
103 
104 /** gets number of exact reduced cost pricing calls of pricing solver */
105 SCIP_EXPORT
107  GCG_SOLVER* solver /**< pricing solver */
108  );
109 
110 /** gets number of heuristic Farkas pricing calls of pricing solver */
111 SCIP_EXPORT
113  GCG_SOLVER* solver /**< pricing solver */
114  );
115 
116 /** gets number of heuristic reduced cost pricing calls of pricing solver */
117 SCIP_EXPORT
119  GCG_SOLVER* solver /**< pricing solver */
120  );
121 
122 /** gets exact Farkas pricing time of pricing solver */
123 SCIP_EXPORT
124 SCIP_Real GCGsolverGetOptFarkasTime(
125  SCIP* scip, /**< SCIP data structure (master problem) */
126  GCG_SOLVER* solver /**< pricing solver */
127  );
128 
129 /** gets exact reduced cost pricing time of pricing solver */
130 SCIP_EXPORT
132  SCIP* scip, /**< SCIP data structure (master problem) */
133  GCG_SOLVER* solver /**< pricing solver */
134  );
135 
136 /** gets heuristic Farkas pricing time of pricing solver */
137 SCIP_EXPORT
139  SCIP* scip, /**< SCIP data structure (master problem) */
140  GCG_SOLVER* solver /**< pricing solver */
141  );
142 
143 /** gets heuristic reduced cost pricing time of pricing solver */
144 SCIP_EXPORT
146  SCIP* scip, /**< SCIP data structure (master problem) */
147  GCG_SOLVER* solver /**< pricing solver */
148  );
149 
150 /** @} */
151 #ifdef __cplusplus
152 }
153 
154 #endif
155 
156 #endif
SCIP_EXPORT SCIP_Real GCGsolverGetHeurRedcostTime(SCIP *scip, GCG_SOLVER *solver)
Definition: solver.c:524
SCIP_EXPORT int GCGsolverGetHeurRedcostCalls(GCG_SOLVER *solver)
Definition: solver.c:478
SCIP_EXPORT int GCGsolverGetOptFarkasCalls(GCG_SOLVER *solver)
Definition: solver.c:448
SCIP_EXPORT SCIP_Real GCGsolverGetOptFarkasTime(SCIP *scip, GCG_SOLVER *solver)
Definition: solver.c:488
SCIP_EXPORT SCIP_DECL_SORTPTRCOMP(GCGsolverComp)
Definition: solver.c:47
SCIP_EXPORT void GCGsolverSetData(GCG_SOLVER *solver, GCG_SOLVERDATA *solverdata)
Definition: solver.c:387
SCIP_EXPORT SCIP_Real GCGsolverGetHeurFarkasTime(SCIP *scip, GCG_SOLVER *solver)
Definition: solver.c:512
SCIP_EXPORT int GCGsolverGetOptRedcostCalls(GCG_SOLVER *solver)
Definition: solver.c:458
SCIP_EXPORT int GCGsolverGetHeurFarkasCalls(GCG_SOLVER *solver)
Definition: solver.c:468
SCIP_EXPORT int GCGsolverGetPriority(GCG_SOLVER *solver)
Definition: solver.c:418
SCIP_EXPORT SCIP_Bool GCGsolverIsExactEnabled(GCG_SOLVER *solver)
Definition: solver.c:438
SCIP_EXPORT GCG_SOLVERDATA * GCGsolverGetData(GCG_SOLVER *solver)
Definition: solver.c:377
type definitions for pricing problem solvers in GCG project
const SCIP_EXPORT char * GCGsolverGetName(GCG_SOLVER *solver)
Definition: solver.c:398
const SCIP_EXPORT char * GCGsolverGetDesc(GCG_SOLVER *solver)
Definition: solver.c:408
SCIP_EXPORT SCIP_Bool GCGsolverIsHeurEnabled(GCG_SOLVER *solver)
Definition: solver.c:428
SCIP_EXPORT SCIP_Real GCGsolverGetOptRedcostTime(SCIP *scip, GCG_SOLVER *solver)
Definition: solver.c:500