Scippy

SCIP

Solving Constraint Integer Programs

heur_rec.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-2022 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 heur_rec.h
17  * @brief Primal recombination heuristic for Steiner problems
18  * @author Daniel Rehfeldt
19  *
20  * This file implements a recombination heuristic for Steiner problems, see
21  * "SCIP-Jack - A solver for STP and variants with parallelization extensions" by
22  * Gamrath, Koch, Maher, Rehfeldt and Shinano
23  *
24  */
25 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
26 
27 #ifndef __SCIP_HEUR_REC_H__
28 #define __SCIP_HEUR_REC_H__
29 
30 #include "scip/scip.h"
31 #include "graph.h"
32 #include "solpool.h"
33 
34 #ifdef __cplusplus
35 extern "C" {
36 #endif
37 
38 
39 /** run REC heuristic */
41  SCIP* scip, /**< SCIP data structure */
42  STPSOLPOOL* pool, /**< solution pool or NULL */
43  SCIP_HEUR* heur, /**< heuristic or NULL */
44  SCIP_HEURDATA* heurdata, /**< heuristic data or NULL */
45  const GRAPH* graph, /**< graph data */
46  SCIP_VAR** vars, /**< variables or NULL */
47  int* newsolindex, /**< index of new solution */
48  int runs, /**< number of runs */
49  int nsols, /**< number of solutions */
50  SCIP_Bool restrictheur, /**< use restricted version of heur? */
51  SCIP_Bool* solfound /**< new solution found? */
52 );
53 
54 
55 /** creates the rec primal heuristic and includes it in SCIP */
57  SCIP* scip /**< SCIP data structure */
58  );
59 
60 
61 /** heuristic to exclude vertices or edges from a given solution (and inserting other edges) to improve objective */
63  SCIP* scip, /**< SCIP data structure */
64  const GRAPH* graph, /**< graph structure */
65  const int* result, /**< edge solution array (UNKNOWN/CONNECT) */
66  int* newresult, /**< new edge solution array (UNKNOWN/CONNECT) */
67  int* dnodemap, /**< node array for internal use */
68  STP_Bool* stvertex, /**< node array for internally marking solution vertices */
69  SCIP_Bool* success /**< solution improved? */
70  );
71 
72 #ifdef __cplusplus
73 }
74 #endif
75 
76 #endif
SCIP_RETCODE SCIPStpIncludeHeurRec(SCIP *scip)
Definition: heur_rec.c:2161
enum SCIP_Retcode SCIP_RETCODE
Definition: type_retcode.h:54
includes various files containing graph methods used for Steiner tree problems
struct SCIP_HeurData SCIP_HEURDATA
Definition: type_heur.h:67
includes solution pool for Steiner tree problems
unsigned char STP_Bool
Definition: portab.h:34
SCIP_RETCODE SCIPStpHeurRecExclude(SCIP *scip, const GRAPH *graph, const int *result, int *newresult, int *dnodemap, STP_Bool *stvertex, SCIP_Bool *success)
Definition: heur_rec.c:1649
#define SCIP_Bool
Definition: def.h:84
SCIP_RETCODE SCIPStpHeurRecRun(SCIP *scip, STPSOLPOOL *pool, SCIP_HEUR *heur, SCIP_HEURDATA *heurdata, const GRAPH *graph, SCIP_VAR **vars, int *newsolindex, int runs, int nsols, SCIP_Bool restrictheur, SCIP_Bool *solfound)
Definition: heur_rec.c:1455
SCIP callable library.