1 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2 /*                                                                           */
3 /*                  This file is part of the program and library             */
4 /*         SCIP --- Solving Constraint Integer Programs                      */
5 /*                                                                           */
6 /*    Copyright (C) 2002-2021 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 scipopt.org.         */
13 /*                                                                           */
14 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
15 
16 /**@file   struct_pricestore.h
17  * @ingroup INTERNALAPI
18  * @brief  data structures for storing priced variables
19  * @author Tobias Achterberg
20  */
21 
22 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
23 
24 #ifndef __SCIP_STRUCT_PRICESTORE_H__
25 #define __SCIP_STRUCT_PRICESTORE_H__
26 
27 
28 #include "scip/def.h"
29 #include "scip/type_clock.h"
30 #include "scip/type_var.h"
31 #include "scip/type_pricestore.h"
32 
33 #ifdef __cplusplus
34 extern "C" {
35 #endif
36 
37 /** storage for priced variables */
38 struct SCIP_Pricestore
39 {
40    SCIP_CLOCK*           probpricingtime;    /**< time needed to price existing problem variables */
41    SCIP_VAR**            vars;               /**< array with priced variables with violated reduced costs sorted by score */
42    SCIP_Real*            scores;             /**< score for each priced variable (e.g. |redcost|/no. of nonzeros) */
43    SCIP_VAR**            bdviolvars;         /**< variables where zero violates the bounds */
44    SCIP_Real*            bdviolvarslb;       /**< lower bounds of bdviolvars */
45    SCIP_Real*            bdviolvarsub;       /**< upper bounds of bdbiolvars */
46    int                   varssize;           /**< size of vars and score arrays */
47    int                   nvars;              /**< number of priced variables (max. is set->price_maxvars) */
48    int                   bdviolvarssize;     /**< size of bdviolvars, bdviolvarslb, and bdviolvarsub arrays */
49    int                   nbdviolvars;        /**< number of variables, where zero violates the bounds */
50    int                   naddedbdviolvars;   /**< number of bound violated variables already added to the LP */
51    int                   nprobpricings;      /**< total number of calls to problem variable pricing */
52    int                   nprobvarsfound;     /**< total number of problem variables, that were added (and possibly thrown away) */
53    int                   nvarsfound;         /**< total number of variables, that were added (and possibly thrown away) */
54    int                   nvarsapplied;       /**< total number of variables, that were added to the LP */
55    SCIP_Bool             initiallp;          /**< is the pricing storage currently being filled with the initial LP columns? */
56 };
57 
58 #ifdef __cplusplus
59 }
60 #endif
61 
62 #endif
63