Scippy

SCIP

Solving Constraint Integer Programs

cutpool.h
Go to the documentation of this file.
1 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2 /* */
3 /* This file is part of the program and library */
4 /* SCIP --- Solving Constraint Integer Programs */
5 /* */
6 /* Copyright (C) 2002-2014 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 email to scip@zib.de. */
13 /* */
14 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
15 
16 /**@file cutpool.h
17  * @brief internal methods for storing cuts in a cut pool
18  * @author Tobias Achterberg
19  */
20 
21 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
22 
23 #ifndef __SCIP_CUTPOOL_H__
24 #define __SCIP_CUTPOOL_H__
25 
26 
27 #include "scip/def.h"
28 #include "blockmemshell/memory.h"
29 #include "scip/type_retcode.h"
30 #include "scip/type_result.h"
31 #include "scip/type_set.h"
32 #include "scip/type_stat.h"
33 #include "scip/type_lp.h"
34 #include "scip/type_sepastore.h"
35 #include "scip/type_cutpool.h"
36 #include "scip/pub_cutpool.h"
37 
38 #ifdef __cplusplus
39 extern "C" {
40 #endif
41 
42 /** creates cut pool */
43 extern
45  SCIP_CUTPOOL** cutpool, /**< pointer to store cut pool */
46  BMS_BLKMEM* blkmem, /**< block memory */
47  SCIP_SET* set, /**< global SCIP settings */
48  int agelimit, /**< maximum age a cut can reach before it is deleted from the pool */
49  SCIP_Bool globalcutpool /**< is this the global cut pool of SCIP? */
50  );
51 
52 /** frees cut pool */
53 extern
55  SCIP_CUTPOOL** cutpool, /**< pointer to store cut pool */
56  BMS_BLKMEM* blkmem, /**< block memory */
57  SCIP_SET* set, /**< global SCIP settings */
58  SCIP_LP* lp /**< current LP data */
59  );
60 
61 /** removes all rows from the cut pool */
62 extern
64  SCIP_CUTPOOL* cutpool, /**< cut pool */
65  BMS_BLKMEM* blkmem, /**< block memory */
66  SCIP_SET* set, /**< global SCIP settings */
67  SCIP_LP* lp /**< current LP data */
68  );
69 
70 /** if not already existing, adds row to cut pool and captures it */
71 extern
73  SCIP_CUTPOOL* cutpool, /**< cut pool */
74  BMS_BLKMEM* blkmem, /**< block memory */
75  SCIP_SET* set, /**< global SCIP settings */
76  SCIP_ROW* row /**< cutting plane to add */
77  );
78 
79 /** adds row to cut pool and captures it; doesn't check for multiple cuts */
80 extern
82  SCIP_CUTPOOL* cutpool, /**< cut pool */
83  BMS_BLKMEM* blkmem, /**< block memory */
84  SCIP_SET* set, /**< global SCIP settings */
85  SCIP_ROW* row /**< cutting plane to add */
86  );
87 
88 /** removes the LP row from the cut pool */
89 extern
91  SCIP_CUTPOOL* cutpool, /**< cut pool */
92  BMS_BLKMEM* blkmem, /**< block memory */
93  SCIP_SET* set, /**< global SCIP settings */
94  SCIP_STAT* stat, /**< problem statistics data */
95  SCIP_LP* lp, /**< current LP data */
96  SCIP_ROW* row /**< row to remove */
97  );
98 
99 /** separates cuts of the cut pool */
100 extern
102  SCIP_CUTPOOL* cutpool, /**< cut pool */
103  BMS_BLKMEM* blkmem, /**< block memory */
104  SCIP_SET* set, /**< global SCIP settings */
105  SCIP_STAT* stat, /**< problem statistics data */
106  SCIP_EVENTQUEUE* eventqueue, /**< event queue */
107  SCIP_EVENTFILTER* eventfilter, /**< event filter for global events */
108  SCIP_LP* lp, /**< current LP data */
109  SCIP_SEPASTORE* sepastore, /**< separation storage */
110  SCIP_SOL* sol, /**< solution to be separated (or NULL for LP-solution) */
111  SCIP_Bool cutpoolisdelayed, /**< is the cutpool delayed (count cuts found)? */
112  SCIP_Bool root, /**< are we at the root node? */
113  SCIP_RESULT* result /**< pointer to store the result of the separation call */
114  );
115 
116 #ifdef __cplusplus
117 }
118 #endif
119 
120 #endif
121