extreduce_extspg.c
Go to the documentation of this file.
20 * This file implements special distance Steiner tree algorithms for extended reduction techniques for Steiner problems.
21 * Allows one to efficiently compute and store special distance (SD) Steiner trees between the leaves of extension tree.
27 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
68 = extreduce_distDataGetSp(scip, graph, node_pathstart, node_pathend, pathnodes, &npathnodes, distdata);
106 SCIPdebugMessage("STEINER TREE 3-leaf tree rule-out with %f < %f \n", pathcost + dist2, tree_cost);
226 if( spg4VerticesRuleOut(scip, graph, leaves[0], leaves[1], leaves[2], tree_cost, pathnodes, extdata) )
232 if( spg4VerticesRuleOut(scip, graph, leaves[0], leaves[2], leaves[1], tree_cost, pathnodes, extdata) )
238 if( spg4VerticesRuleOut(scip, graph, leaves[1], leaves[2], leaves[0], tree_cost, pathnodes, extdata) )
302 *isPseudoDeletable = spg3StarNeighborRuleOut(scip, graph, starcost, node, allowEquality, neighbors, distdata);
338 *isPseudoDeletable = spg3StarNeighborRuleOut(scip, graph, starcost, node, TRUE, neighbors, distdata);
SCIP_Real extreduce_distDataGetSp(SCIP *, const GRAPH *, int, int, int *, int *, DISTDATA *)
Definition: extreduce_dist.c:1400
Definition: graphdefs.h:184
Definition: extreducedefs.h:187
Definition: struct_scip.h:59
SCIP_Real extreduce_distDataGetSdDouble(SCIP *, const GRAPH *, int, int, DISTDATA *)
Definition: extreduce_dist.c:1463
static SCIP_Bool isPseudoDeletable(SCIP *scip, const GRAPH *g, const GRAPH *auxg, const SCIP_Real *ecost, const int *edges, int degree)
Definition: reduce_sd.c:1028
includes various files containing graph methods used for Steiner tree problems
static SCIP_Bool extInitialCompIsEdge(const EXTDATA *extdata)
Definition: extreducedefs.h:264
This file implements extended reduction techniques for several Steiner problems.
Definition: type_retcode.h:33
SCIP_Bool extreduce_spg3LeafTreeRuleOut(SCIP *scip, const GRAPH *graph, SCIP_Real tree_cost, EXTDATA *extdata)
Definition: extreduce_extspg.c:207
SCIP_RETCODE extreduce_spgCheck3ComponentSimple(SCIP *scip, const GRAPH *graph, int node, const EXTCOMP *extcomp, SCIP_Bool allowEquality, DISTDATA *distdata, SCIP_Bool *isPseudoDeletable)
Definition: extreduce_extspg.c:252
Definition: extreducedefs.h:174
SCIP_RETCODE extreduce_spgCheck3NodeSimple(SCIP *scip, const GRAPH *graph, int node, DISTDATA *distdata, SCIP_Bool *isPseudoDeletable)
Definition: extreduce_extspg.c:310
static SCIP_Bool spg4VerticesRuleOut(SCIP *scip, const GRAPH *graph, int node_pathstart, int node_pathend, int node_other, SCIP_Real tree_cost, int *pathnodes, EXTDATA *extdata)
Definition: extreduce_extspg.c:53
Definition: extreducedefs.h:79
Portable definitions.
static SCIP_Bool spg3StarNeighborRuleOut(SCIP *scip, const GRAPH *graph, SCIP_Real starcost, int node, SCIP_Bool allowEquality, const int neighbors[3], DISTDATA *distdata)
Definition: extreduce_extspg.c:121
Definition: objbenders.h:33