Scippy

SCIP

Solving Constraint Integer Programs

extreduce.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 scip.zib.de. */
13 /* */
14 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
15 
16 /**@file extreduce.h
17  * @brief This file implements extended reduction techniques for several Steiner problems.
18  * @author Daniel Rehfeldt
19  *
20  *
21  */
22 
23 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
24 
25 
26 #ifndef APPLICATIONS_STP_SRC_EXTREDUCE_H_
27 #define APPLICATIONS_STP_SRC_EXTREDUCE_H_
28 
29 #include "scip/scip.h"
30 #include "graph.h"
31 #include "reduce.h"
32 #include "completegraph.h"
33 #include "portab.h"
34 #include "extreducedefs.h"
35 
36 
37 #ifdef __cplusplus
38 extern "C" {
39 #endif
40 
41 
42 /* extreduce_base.c
43  */
45 extern void extreduce_exit(SCIP*, GRAPH*, EXTPERMA**);
46 extern SCIP_RETCODE extreduce_deleteArcs(SCIP*, REDCOST*, const int*, GRAPH*, STP_Bool*, int*);
49 extern SCIP_RETCODE extreduce_deleteGeneralStars(SCIP*, REDCOST*, const int*, GRAPH*, STP_Bool*, int*);
50 extern int extreduce_getMaxTreeDepth(const GRAPH*, const EXTPERMA*);
51 extern int extreduce_getMaxStackSize(void);
52 extern int extreduce_getMaxStackNcomponents(const GRAPH*);
53 extern int extreduce_getMaxStackNedges(const GRAPH*);
54 extern void extreduce_edgeRemove(SCIP*, int, GRAPH*, DISTDATA*, EXTPERMA*);
55 extern SCIP_Bool extreduce_edgeIsValid(const GRAPH*, const REDCOST*, int);
56 extern void extreduce_treeRecompCosts(SCIP*, const GRAPH*, EXTDATA*);
57 
58 /* extreduce_core.c
59  */
62 extern SCIP_RETCODE extreduce_checkEdge(SCIP*, const GRAPH*, const REDCOST*, int, EXTPERMA*, SCIP_Bool*);
63 extern SCIP_RETCODE extreduce_checkNode(SCIP*, const GRAPH*, const REDCOST*, int, STAR*, EXTPERMA*, SCIP_Bool*);
64 
65 /* extreduce_util.c
66  */
67 extern void extreduce_extCompRevert(const GRAPH*, const EXTPERMA*, EXTCOMP*);
68 extern SCIP_Bool extreduce_extCompIsPromising(const GRAPH*, const EXTPERMA*, const EXTCOMP*);
69 extern SCIP_Bool extreduce_extCompFullIsPromising(const GRAPH*, const EXTPERMA*, const EXTCOMP*);
70 
71 /* extreduce_dist.c
72  */
74 extern SCIP_Real extreduce_distDataGetSp(SCIP*, const GRAPH*, int, int, int*, int*, DISTDATA*);
76 extern SCIP_Real extreduce_distDataGetSd(SCIP*, const GRAPH*, int, int, DISTDATA*);
77 extern SCIP_Real extreduce_distDataGetSdDouble(SCIP*, const GRAPH*, int, int, DISTDATA*);
80 extern SCIP_Real extreduce_distDataGetSdDoubleForbiddenLast(SCIP*, const GRAPH*, int, int, int, int, DISTDATA*);
83 extern void extreduce_distDataFree(SCIP*, const GRAPH*, DISTDATA**);
84 extern void extreduce_distDataDeleteEdge(SCIP*, const GRAPH*, int, DISTDATA*);
85 
86 
87 /* extreduce_contract.c
88  */
90 extern void extreduce_contractionFree(SCIP*, CONTRACT**);
92 
93 
94 /* extreduce_mldists.c
95  */
96 extern SCIP_RETCODE extreduce_mldistsInit(SCIP*, int, int, int, int, SCIP_Bool, MLDISTS**);
97 extern void extreduce_mldistsFree(SCIP*, MLDISTS**);
100 extern int* extreduce_mldistsEmptySlotTargetIds(const MLDISTS*);
104 extern int extreduce_mldistsEmptySlotLevel(const MLDISTS*);
105 extern void extreduce_mldistsEmptySlotSetBase(int, MLDISTS*);
108 extern void extreduce_mldistsLevelAddTop(int, int, MLDISTS*);
115 extern int extreduce_mldistsLevelNTargets(const MLDISTS*, int);
116 extern int extreduce_mldistsLevelNTopTargets(const MLDISTS*);
117 extern int extreduce_mldistsLevelNSlots(const MLDISTS*, int);
118 extern int extreduce_mldistsNlevels(const MLDISTS*);
119 extern int extreduce_mldistsTopLevel(const MLDISTS*);
120 extern const int* extreduce_mldistsTopLevelBases(const MLDISTS*);
121 extern int extreduce_mldistsTopLevelNSlots(const MLDISTS*);
122 extern SCIP_Bool extreduce_mldistsLevelContainsBase(const MLDISTS*, int, int);
123 extern const int* extreduce_mldistsTargetIds(const MLDISTS*, int, int);
124 extern const SCIP_Real* extreduce_mldistsTargetDists(const MLDISTS*, int, int);
125 extern SCIP_Real extreduce_mldistsTargetDist(const MLDISTS*, int, int, int);
126 extern const int* extreduce_mldistsTopTargetIds(const MLDISTS*, int);
127 extern const SCIP_Real* extreduce_mldistsTopTargetDists(const MLDISTS*, int);
128 extern SCIP_Real extreduce_mldistsTopTargetDist(const MLDISTS*, int, int);
129 
130 
131 /* extreduce_extmst.c
132  */
133 extern void extreduce_mstAddRootLevel(SCIP*, int, EXTDATA*);
134 extern void extreduce_mstCompRemove(const GRAPH*, EXTDATA*);
135 extern void extreduce_mstLevelRemove(REDDATA*);
136 extern void extreduce_mstLevelClose(SCIP*, const GRAPH*, int, EXTDATA*);
138 extern void extreduce_mstLevelVerticalAddLeaf(SCIP*, const GRAPH*, int, EXTDATA*, SCIP_Bool*);
140 extern void extreduce_mstLevelVerticalAddEmpty(const GRAPH*, EXTDATA*);
145 extern void extreduce_mstLevelHorizontalAdd(SCIP*, const GRAPH*, int, const int*, EXTDATA*);
147 extern SCIP_Real extreduce_extGetSd(SCIP*, const GRAPH*, int, int, EXTDATA*);
148 extern SCIP_Real extreduce_extGetSdDouble(SCIP*, const GRAPH*, int, int, EXTDATA*);
149 extern SCIP_Real extreduce_extGetSdProper(SCIP*, const GRAPH*, int, int, EXTDATA*);
150 extern SCIP_Real extreduce_extGetSdProperDouble(SCIP*, const GRAPH*, int, int, EXTDATA*);
152 
153 
154 /* extreduce_extspg.c
155  */
159 
160 
161 /* extreduce_extmstbiased.c
162  */
165 
166 
167 /* extreduce_bottleneck.c
168  */
169 extern void extreduce_bottleneckMarkRootPath(const GRAPH*, int, EXTDATA*);
170 extern void extreduce_bottleneckUnmarkRootPath(const GRAPH*, int, EXTDATA*);
171 extern SCIP_Bool extreduce_bottleneckIsDominated(SCIP*, const GRAPH*, int, int, SCIP_Real, int, EXTDATA*);
177 extern void extreduce_bottleneckCheckNonLeaves_pc(SCIP*, const GRAPH*, int, EXTDATA*, SCIP_Bool*);
178 extern void extreduce_bottleneckCheckNonLeaves(SCIP*, const GRAPH*, int, EXTDATA*, SCIP_Bool*);
179 
180 
181 /* extreduce_recosts.c
182  */
183 extern void extreduce_redcostAddEdge(const GRAPH*, int, REDDATA*, EXTDATA*);
184 extern void extreduce_redcostRemoveEdge(int, const REDDATA*, EXTDATA*);
185 extern void extreduce_redcostTreeRecompute(SCIP*, const GRAPH*, EXTDATA*);
186 extern void extreduce_redcostInitExpansion(const GRAPH*, EXTDATA*);
188 
189 
190 /* extreduce_data.c
191  */
192 
193 void extreduce_extCompClean(SCIP*, const GRAPH*, const EXTCOMP*, SCIP_Bool, EXTDATA*);
197 extern SCIP_Bool extreduce_extPermaIsClean(const GRAPH*, const EXTPERMA*);
198 extern void extreduce_extPermaFree(SCIP*, EXTPERMA**);
199 extern void extreduce_extdataClean(EXTDATA*);
200 extern SCIP_Bool extreduce_extdataIsClean(const GRAPH*, const EXTDATA*);
201 extern void extreduce_reddataClean(REDDATA*);
202 extern SCIP_Bool extreduce_reddataIsClean(const GRAPH*, const REDDATA*);
203 extern void extreduce_pcdataClean(PCDATA*);
204 extern SCIP_Bool extreduce_pcdataIsClean(const GRAPH*, const PCDATA*);
205 
206 
207 /* extreduce_dbg.c
208  */
209 extern int extreduce_extStackCompNOutedges(const EXTDATA*, int);
210 extern SCIP_Bool extreduce_stackTopIsHashed(const GRAPH*, const EXTDATA*);
211 extern void extreduce_extdataCleanArraysDbg(const GRAPH*, EXTDATA*);
212 extern SCIP_Bool extreduce_treeIsFlawed(SCIP*, const GRAPH*, const EXTDATA*);
213 extern SCIP_Bool extreduce_treeIsHashed(const GRAPH*, const EXTDATA*);
214 extern SCIP_Bool extreduce_nodeIsInStackTop(const GRAPH*, const EXTDATA*, int);
216 extern SCIP_Real extreduce_distComputeRestrictedDist(SCIP*, const GRAPH*, int, const DISTDATA*, int, int);
217 extern void extreduce_printStack(const GRAPH*, const EXTDATA*);
218 extern void extreduce_printLeaves(const EXTDATA*);
219 extern void extreduce_printTopLevel(const EXTDATA*);
220 extern void extreduce_extendInitDebug(int*, int*);
221 extern SCIP_Bool extreduce_sdsverticalInSync(SCIP*, const GRAPH*, int, int, int, EXTDATA*);
223 extern SCIP_Bool extreduce_sdsTopInSync(SCIP*, const GRAPH*, const SCIP_Real[], int, EXTDATA*);
229 
230 
231 
232 #ifdef __cplusplus
233 }
234 #endif
235 
236 
237 #endif /* APPLICATIONS_STP_SRC_EXTREDUCE_H_ */
SCIP_Real extreduce_distDataGetSp(SCIP *, const GRAPH *, int, int, int *, int *, DISTDATA *)
void extreduce_mstLevelClose(SCIP *, const GRAPH *, int, EXTDATA *)
void extreduce_extendInitDebug(int *, int *)
SCIP_Bool extreduce_bottleneckIsDominatedBiased(SCIP *, const GRAPH *, int, int, SCIP_Real, EXTDATA *)
SCIP_Bool extreduce_mstTopCompObjValid(SCIP *, const GRAPH *, SCIP_Real, EXTDATA *)
void extreduce_mstLevelVerticalRemove(REDDATA *)
void extreduce_exit(SCIP *, GRAPH *, EXTPERMA **)
SCIP_RETCODE extreduce_extPermaAddMLdistsbiased(SCIP *, EXTPERMA *)
SCIP_Real extreduce_distComputeRestrictedDist(SCIP *, const GRAPH *, int, const DISTDATA *, int, int)
SCIP_Bool extreduce_treeIsFlawed(SCIP *, const GRAPH *, const EXTDATA *)
int extreduce_mldistsLevelNSlots(const MLDISTS *, int)
SCIP_Real extreduce_distDataGetSdDouble(SCIP *, const GRAPH *, int, int, DISTDATA *)
SCIP_Bool extreduce_extCompIsPromising(const GRAPH *, const EXTPERMA *, const EXTCOMP *)
void extreduce_bottleneckCheckNonLeaves(SCIP *, const GRAPH *, int, EXTDATA *, SCIP_Bool *)
SCIP_Bool extreduce_mstTopLevelBaseObjValid(SCIP *, const GRAPH *, int, EXTDATA *)
const int * extreduce_mldistsTargetIds(const MLDISTS *, int, int)
int extreduce_mldistsEmptySlotLevel(const MLDISTS *)
SCIP_Real extreduce_distDataGetSdDoubleEq(SCIP *, const GRAPH *, SCIP_Real, int, int, DISTDATA *)
SCIP_Bool extreduce_mstInternalsInSync(const EXTDATA *)
void extreduce_distDataFree(SCIP *, const GRAPH *, DISTDATA **)
int extreduce_getMaxStackNedges(const GRAPH *)
SCIP_Bool extreduce_mldistsEmptySlotExists(const MLDISTS *)
SCIP_RETCODE extreduce_checkArc(SCIP *, const GRAPH *, REDCOST *, int, EXTPERMA *, SCIP_Bool *)
void extreduce_contractionFree(SCIP *, CONTRACT **)
int * extreduce_mldistsEmptySlotTargetIdsDirty(const MLDISTS *)
SCIP_Bool extreduce_bottleneckIsDominated(SCIP *, const GRAPH *, int, int, SCIP_Real, int, EXTDATA *)
int extreduce_getMaxStackNcomponents(const GRAPH *)
SCIP_Bool extreduce_contractionRuleOutPeriph(SCIP *, const GRAPH *, EXTDATA *)
SCIP_Real * extreduce_mldistsEmptySlotTargetDistsDirty(const MLDISTS *)
includes complete graph methods, in particular for MST calculation
void extreduce_mldistsEmptySlotSetBase(int, MLDISTS *)
void extreduce_distDataRecomputeDirtyPaths(SCIP *, const GRAPH *, DISTDATA *)
void extreduce_mstLevelVerticalReopen(EXTDATA *)
SCIP_Bool extreduce_extCompFullIsPromising(const GRAPH *, const EXTPERMA *, const EXTCOMP *)
int extreduce_mldistsNlevels(const MLDISTS *)
enum SCIP_Retcode SCIP_RETCODE
Definition: type_retcode.h:54
includes various files containing graph methods used for Steiner tree problems
void extreduce_printLeaves(const EXTDATA *)
SCIP_RETCODE extreduce_deleteArcs(SCIP *, REDCOST *, const int *, GRAPH *, STP_Bool *, int *)
SCIP_Bool extreduce_treeIsHashed(const GRAPH *, const EXTDATA *)
void extreduce_mstLevelVerticalAddEmpty(const GRAPH *, EXTDATA *)
SCIP_Bool extreduce_sdsverticalInSync(SCIP *, const GRAPH *, int, int, int, EXTDATA *)
SCIP_Bool extreduce_redcostRuleOutPeriph(const GRAPH *, EXTDATA *)
SCIP_Real extreduce_extGetSdProperDouble(SCIP *, const GRAPH *, int, int, EXTDATA *)
SCIP_Real extreduce_distDataGetSdDoubleForbidden(SCIP *, const GRAPH *, int, int, EXTDATA *)
SCIP_RETCODE extreduce_checkEdge(SCIP *, const GRAPH *, const REDCOST *, int, EXTPERMA *, SCIP_Bool *)
int extreduce_extStackCompNOutedges(const EXTDATA *, int)
void extreduce_reddataClean(REDDATA *)
void extreduce_mstLevelHorizontalAdd(SCIP *, const GRAPH *, int, const int *, EXTDATA *)
void extreduce_mstLevelRemove(REDDATA *)
void extreduce_mldistsLevelCloseTop(MLDISTS *)
SCIP_Real extreduce_distDataGetSdDoubleForbiddenEq(SCIP *, const GRAPH *, SCIP_Real, int, int, int, EXTDATA *)
SCIP_RETCODE extreduce_contractionInit(SCIP *, int, int, CONTRACT **)
SCIP_RETCODE extreduce_spgCheck3ComponentSimple(SCIP *, const GRAPH *, int, const EXTCOMP *, SCIP_Bool, DISTDATA *, SCIP_Bool *)
int extreduce_mldistsTopLevelNSlots(const MLDISTS *)
SCIP_RETCODE extreduce_checkComponent(SCIP *, const GRAPH *, const REDCOST *, EXTCOMP *, EXTPERMA *, SCIP_Bool *)
void extreduce_redcostAddEdge(const GRAPH *, int, REDDATA *, EXTDATA *)
void extreduce_mldistsLevelAddAndCloseEmpty(int, MLDISTS *)
void extreduce_mstLevelVerticalAddLeaf(SCIP *, const GRAPH *, int, EXTDATA *, SCIP_Bool *)
void extreduce_printStack(const GRAPH *, const EXTDATA *)
void extreduce_bottleneckUnmarkRootPath(const GRAPH *, int, EXTDATA *)
void extreduce_mstLevelHorizontalAddEmpty(const GRAPH *, EXTDATA *)
int * extreduce_mldistsEmptySlotTargetIds(const MLDISTS *)
SCIP_Real extreduce_distDataGetSdDoubleForbiddenLast(SCIP *, const GRAPH *, int, int, int, int, DISTDATA *)
SCIP_RETCODE extreduce_extPermaInit(SCIP *, enum EXTRED_MODE, const GRAPH *, STP_Bool *, EXTPERMA **)
void extreduce_mstAddRootLevel(SCIP *, int, EXTDATA *)
SCIP_Bool extreduce_bottleneckWithExtedgeIsDominated(SCIP *, const GRAPH *, int, int, int, SCIP_Real, EXTDATA *)
SCIP_Bool extreduce_mldistsIsEmpty(const MLDISTS *)
SCIP_Bool extreduce_mstTopCompExtObjValid(SCIP *, const GRAPH *, int, SCIP_Real, EXTDATA *)
void extreduce_mldistsEmptySlotSetFilled(MLDISTS *)
void extreduce_treeRecompCosts(SCIP *, const GRAPH *, EXTDATA *)
void extreduce_mstCompRemove(const GRAPH *, EXTDATA *)
void extreduce_mldistsLevelReopenTop(MLDISTS *)
void extreduce_printTopLevel(const EXTDATA *)
int extreduce_mldistsLevelNTargets(const MLDISTS *, int)
void extreduce_mldistsLevelAddAndCloseRoot(int, MLDISTS *)
void extreduce_redcostInitExpansion(const GRAPH *, EXTDATA *)
SCIP_Real extreduce_extGetSdProper(SCIP *, const GRAPH *, int, int, EXTDATA *)
SCIP_Bool extreduce_spg3LeafTreeRuleOut(SCIP *, const GRAPH *, SCIP_Real, EXTDATA *)
SCIP_Real extreduce_extGetSdDouble(SCIP *, const GRAPH *, int, int, EXTDATA *)
void extreduce_edgeRemove(SCIP *, int, GRAPH *, DISTDATA *, EXTPERMA *)
void extreduce_mldistsLevelRemoveTop(MLDISTS *)
SCIP_Real extreduce_extGetSd(SCIP *, const GRAPH *, int, int, EXTDATA *)
SCIP_Bool extreduce_sdshorizontalInSync(SCIP *, const GRAPH *, int, EXTDATA *)
SCIP_Bool extreduce_stackTopIsHashed(const GRAPH *, const EXTDATA *)
void extreduce_mstLevelHorizontalRemove(REDDATA *)
SCIP_Bool extreduce_extdataIsClean(const GRAPH *, const EXTDATA *)
SCIP_Real extreduce_mldistsTopTargetDist(const MLDISTS *, int, int)
unsigned char STP_Bool
Definition: portab.h:34
SCIP_Bool extreduce_bottleneckToSiblingIsDominated(SCIP *, const GRAPH *, int, int, SCIP_Real, EXTDATA *)
void extreduce_extPermaFree(SCIP *, EXTPERMA **)
void extreduce_distDataDeleteEdge(SCIP *, const GRAPH *, int, DISTDATA *)
#define SCIP_Bool
Definition: def.h:84
const SCIP_Real * extreduce_mldistsTopTargetDists(const MLDISTS *, int)
void extreduce_bottleneckCheckNonLeaves_pc(SCIP *, const GRAPH *, int, EXTDATA *, SCIP_Bool *)
SCIP_Bool extreduce_mstbiased3LeafTreeRuleOut(SCIP *, const GRAPH *, SCIP_Real, EXTDATA *)
void extreduce_mstLevelInitialInit(REDDATA *, EXTDATA *)
includes extended reductions definitions and inline methods used for Steiner tree problems ...
SCIP_Real extreduce_distDataGetSd(SCIP *, const GRAPH *, int, int, DISTDATA *)
SCIP_Bool extreduce_distCloseNodesAreValid(SCIP *, const GRAPH *, const DISTDATA *)
SCIP_Real * extreduce_mldistsEmptySlotTargetDists(const MLDISTS *)
void extreduce_mstLevelVerticalClose(REDDATA *)
SCIP_Bool extreduce_pcdataIsClean(const GRAPH *, const PCDATA *)
int extreduce_getMaxTreeDepth(const GRAPH *, const EXTPERMA *)
SCIP_RETCODE extreduce_mldistsInit(SCIP *, int, int, int, int, SCIP_Bool, MLDISTS **)
SCIP_Bool extreduce_extPermaIsClean(const GRAPH *, const EXTPERMA *)
void extreduce_extdataClean(EXTDATA *)
void extreduce_redcostTreeRecompute(SCIP *, const GRAPH *, EXTDATA *)
int extreduce_mldistsLevelNTopTargets(const MLDISTS *)
SCIP_Real extreduce_distDataGetSdDoubleForbiddenSingle(SCIP *, const GRAPH *, int, int, int, DISTDATA *)
Portable definitions.
void extreduce_bottleneckMarkRootPath(const GRAPH *, int, EXTDATA *)
void extreduce_mldistsLevelAddTop(int, int, MLDISTS *)
SCIP_RETCODE extreduce_distDataInit(SCIP *, GRAPH *, int, SCIP_Bool, SCIP_Bool, DISTDATA **)
SCIP_RETCODE extreduce_deleteEdges(SCIP *, EXTPERMA *, GRAPH *, int *)
int extreduce_mldistsTopLevel(const MLDISTS *)
SCIP_Bool extreduce_reddataIsClean(const GRAPH *, const REDDATA *)
void extreduce_redcostRemoveEdge(int, const REDDATA *, EXTDATA *)
SCIP_RETCODE extreduce_spgCheck3NodeSimple(SCIP *, const GRAPH *, int, DISTDATA *, SCIP_Bool *)
int extreduce_getMaxStackSize(void)
SCIP_RETCODE extreduce_deleteGeneralStars(SCIP *, REDCOST *, const int *, GRAPH *, STP_Bool *, int *)
SCIP_Bool extreduce_nodeIsInStackTop(const GRAPH *, const EXTDATA *, int)
SCIP_Bool extreduce_bottleneckToSiblingIsDominatedBiased(SCIP *, const GRAPH *, int, int, SCIP_Real, EXTDATA *)
EXTRED_MODE
Definition: reducedefs.h:71
SCIP_Bool extreduce_bottleneckWithExtedgeIsDominatedBiased(SCIP *, const GRAPH *, int, int, int, SCIP_Real, EXTDATA *)
SCIP_Bool extreduce_mldistsLevelContainsBase(const MLDISTS *, int, int)
SCIP_Bool extreduce_sdsTopInSync(SCIP *, const GRAPH *, const SCIP_Real[], int, EXTDATA *)
void extreduce_mldistsFree(SCIP *, MLDISTS **)
#define SCIP_Real
Definition: def.h:177
void extreduce_mldistsEmptySlotReset(MLDISTS *)
void extreduce_mldistsLevelRemoveTopNonClosed(MLDISTS *)
const SCIP_Real * extreduce_mldistsTargetDists(const MLDISTS *, int, int)
SCIP_RETCODE extreduce_init(SCIP *, SCIP_Bool, enum EXTRED_MODE, GRAPH *, REDCOST *, EXTPERMA **)
SCIP_Real extreduce_mldistsTargetDist(const MLDISTS *, int, int, int)
SCIP_RETCODE extreduce_mstbiasedCheck3NodeSimple(SCIP *, const GRAPH *, int, DISTDATA *, DISTDATA *, SCIP_Bool *)
SCIP_RETCODE extreduce_checkNode(SCIP *, const GRAPH *, const REDCOST *, int, STAR *, EXTPERMA *, SCIP_Bool *)
const int * extreduce_mldistsTopLevelBases(const MLDISTS *)
SCIP_Bool extreduce_mstRuleOutPeriph(SCIP *, const GRAPH *, EXTDATA *)
SCIP_Bool extreduce_edgeIsValid(const GRAPH *, const REDCOST *, int)
void extreduce_extPermaAddRandnumgen(SCIP_RANDNUMGEN *, EXTPERMA *)
SCIP_Bool extreduce_mstTopCompInSync(SCIP *, const GRAPH *, EXTDATA *)
const int * extreduce_mldistsTopTargetIds(const MLDISTS *, int)
includes various reduction methods for Steiner tree problems
void extreduce_mstLevelVerticalAddLeafInitial(SCIP *, const GRAPH *, int, EXTDATA *, SCIP_Bool *)
void extreduce_extdataCleanArraysDbg(const GRAPH *, EXTDATA *)
void extreduce_extCompRevert(const GRAPH *, const EXTPERMA *, EXTCOMP *)
void extreduce_extCompClean(SCIP *, const GRAPH *, const EXTCOMP *, SCIP_Bool, EXTDATA *)
SCIP callable library.
void extreduce_pcdataClean(PCDATA *)
SCIP_RETCODE extreduce_pseudoDeleteNodes(SCIP *, const SCIP_Bool *, EXTPERMA *, GRAPH *, SCIP_Real *, int *)