Scippy

SCIP

Solving Constraint Integer Programs

struct_sepastore.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 struct_sepastore.h
17  * @brief datastructures for storing separated cuts
18  * @author Tobias Achterberg
19  */
20 
21 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
22 
23 #ifndef __SCIP_STRUCT_SEPASTORE_H__
24 #define __SCIP_STRUCT_SEPASTORE_H__
25 
26 
27 #include "scip/def.h"
28 #include "scip/type_lp.h"
29 #include "scip/type_var.h"
30 #include "scip/type_sepastore.h"
31 
32 #ifdef __cplusplus
33 extern "C" {
34 #endif
35 
36 /** storage for separated cuts */
38 {
39  SCIP_ROW** cuts; /**< array with separated cuts sorted by score */
40  SCIP_Real* efficacies; /**< efficacy for each separated cut: distance of hyperplane to LP solution */
41  SCIP_Real* objparallelisms; /**< parallelism of cut to the objective function */
42  SCIP_Real* orthogonalities; /**< minimal orthogonality of cut with all other cuts of larger score */
43  SCIP_Real* scores; /**< score for each separated cut: weighted sum of efficacy and orthogonality */
44  int cutssize; /**< size of cuts and score arrays */
45  int ncuts; /**< number of separated cuts (max. is set->sepa_maxcuts) */
46  int nforcedcuts; /**< number of forced separated cuts (first positions in cuts array) */
47  int ncutsfound; /**< total number of cuts found so far */
48  int ncutsfoundround; /**< number of cuts found so far in this separation round */
49  int ncutsapplied; /**< total number of cuts applied to the LPs */
50  SCIP_Bool initiallp; /**< is the separation storage currently being filled with the initial LP rows? */
51  SCIP_Bool forcecuts; /**< should the cuts be used despite the number of cuts parameter limit? */
52 };
53 
54 #ifdef __cplusplus
55 }
56 #endif
57 
58 #endif
59