Scippy

SCIP

Solving Constraint Integer Programs

struct_heur.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_heur.h
17  * @brief datastructures for primal heuristics
18  * @author Tobias Achterberg
19  */
20 
21 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
22 
23 #ifndef __SCIP_STRUCT_HEUR_H__
24 #define __SCIP_STRUCT_HEUR_H__
25 
26 
27 #include "scip/def.h"
28 #include "scip/type_clock.h"
29 #include "scip/type_heur.h"
30 
31 #ifdef __cplusplus
32 extern "C" {
33 #endif
34 
35 /** primal heuristics data */
36 struct SCIP_Heur
37 {
38  SCIP_Longint ncalls; /**< number of times, this heuristic was called */
39  SCIP_Longint nsolsfound; /**< number of feasible primal solutions found so far by this heuristic */
40  SCIP_Longint nbestsolsfound; /**< number of new best primal CIP solutions found so far by this heuristic */
41  char* name; /**< name of primal heuristic */
42  char* desc; /**< description of primal heuristic */
43  SCIP_DECL_HEURCOPY ((*heurcopy)); /**< copy method of primal heuristic or NULL if you don't want to copy your plugin into sub-SCIPs */
44  SCIP_DECL_HEURFREE ((*heurfree)); /**< destructor of primal heuristic */
45  SCIP_DECL_HEURINIT ((*heurinit)); /**< initialize primal heuristic */
46  SCIP_DECL_HEUREXIT ((*heurexit)); /**< deinitialize primal heuristic */
47  SCIP_DECL_HEURINITSOL ((*heurinitsol)); /**< solving process initialization method of primal heuristic */
48  SCIP_DECL_HEUREXITSOL ((*heurexitsol)); /**< solving process deinitialization method of primal heuristic */
49  SCIP_DECL_HEUREXEC ((*heurexec)); /**< execution method of primal heuristic */
50  SCIP_HEURDATA* heurdata; /**< primal heuristics local data */
51  SCIP_CLOCK* setuptime; /**< time spend for setting up this heuristic for the next stages */
52  SCIP_CLOCK* heurclock; /**< heuristic execution time */
53  int priority; /**< priority of the primal heuristic */
54  int freq; /**< frequency for calling primal heuristic */
55  int freqofs; /**< frequency offset for calling primal heuristic */
56  int maxdepth; /**< maximal depth level to call heuristic at (-1: no limit) */
57  int delaypos; /**< position in the delayed heuristics queue, or -1 if not delayed */
58  unsigned int timingmask; /**< positions in the node solving loop where heuristic should be executed */
59  SCIP_Bool usessubscip; /**< does the heuristic use a secondary SCIP instance? */
60  SCIP_Bool initialized; /**< is primal heuristic initialized? */
61  char dispchar; /**< display character of primal heuristic */
62 };
63 
64 #ifdef __cplusplus
65 }
66 #endif
67 
68 #endif
69