Scippy

SCIP

Solving Constraint Integer Programs

heur_local.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_local.h
17  * @brief Improvement heuristic for Steiner problems
18  * @author Daniel Rehfeldt
19  *
20  * This file implements three local search heuristics, namely vertex insertion, key-path exchange and key-vertex elimination,
21  * see "Fast Local Search for Steiner Trees in Graphs" by Uchoa and Werneck. Furthermore, it includes several non-published local
22  * search heuristics for prize-collecting Steiner problem tree variants.
23  *
24  */
25 
26 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
27 
28 #ifndef __SCIP_HEUR_LOCAL_H__
29 #define __SCIP_HEUR_LOCAL_H__
30 
31 
32 #include "scip/scip.h"
33 #include "graph.h"
34 
35 #ifdef __cplusplus
36 extern "C" {
37 #endif
38 
39 /** creates the local primal heuristic and includes it in SCIP */
40 SCIP_EXPORT
42  SCIP* scip /**< SCIP data structure */
43  );
44 
45 /** perform local heuristics on a given Steiner tree */
46 SCIP_EXPORT
48  SCIP* scip, /**< SCIP data structure */
49  GRAPH* graph, /**< graph data structure */
50  int* best_result /**< array indicating whether an arc is part of the solution (CONNECTED/UNKNOWN) */
51  );
52 
53 
54 /** perform fast local heuristics on a given Steiner tree */
55 SCIP_EXPORT
57  SCIP* scip, /**< SCIP data structure */
58  GRAPH* graph, /**< graph data structure */
59  int* best_result /**< array indicating whether an arc is part of the solution (CONNECTED/UNKNOWN) */
60  );
61 
62 /** Implication based local heuristic for (R)PC and MW */
63 SCIP_EXPORT
65  SCIP* scip, /**< SCIP data structure */
66  const GRAPH* graph, /**< graph data structure */
67  int* result /**< array indicating whether an arc is part of the solution (CONNECTED/UNKNOWN) */
68  );
69 
70 /** greedy extension local heuristic for (R)PC and MW */
71 SCIP_EXPORT
73  SCIP* scip, /**< SCIP data structure */
74  GRAPH* graph, /**< graph data structure */
75  const SCIP_Real* cost, /**< edge cost array*/
76  int* stedge, /**< initialized array to indicate whether an edge is part of the Steiner tree */
77  STP_Bool* stvertex /**< uninitialized array to indicate whether a vertex is part of the Steiner tree */
78 );
79 
80 /** greedy extension local heuristic for (R)PC and MW */
81 SCIP_EXPORT
83  SCIP* scip, /**< SCIP data structure */
84  GRAPH* graph, /**< graph data structure */
85  int* stedge, /**< initialized array to indicate whether an edge is part of the Steiner tree */
86  STP_Bool* stvertex /**< uninitialized array to indicate whether a vertex is part of the Steiner tree */
87 );
88 
89 #ifdef __cplusplus
90 }
91 #endif
92 
93 #endif
SCIP_RETCODE SCIPStpHeurLocalExtendPcMw(SCIP *scip, GRAPH *graph, const SCIP_Real *cost, int *stedge, STP_Bool *stvertex)
Definition: heur_local.c:3991
SCIP_RETCODE SCIPStpHeurLocalExtendPcMwImp(SCIP *scip, const GRAPH *graph, int *result)
Definition: heur_local.c:3923
SCIP_RETCODE SCIPStpIncludeHeurLocal(SCIP *scip)
Definition: heur_local.c:4353
SCIP_RETCODE SCIPStpHeurLocalRun(SCIP *scip, GRAPH *graph, int *best_result)
Definition: heur_local.c:3899
SCIP_RETCODE SCIPStpHeurLocalExtendPcMwOut(SCIP *scip, GRAPH *graph, int *stedge, STP_Bool *stvertex)
Definition: heur_local.c:4225
enum SCIP_Retcode SCIP_RETCODE
Definition: type_retcode.h:54
includes various files containing graph methods used for Steiner tree problems
SCIP_RETCODE SCIPStpHeurLocalRunFast(SCIP *scip, GRAPH *graph, int *best_result)
Definition: heur_local.c:3911
unsigned char STP_Bool
Definition: portab.h:34
#define SCIP_Real
Definition: def.h:177
SCIP callable library.