extreduce_extmstbiased.c
Go to the documentation of this file.
17 * @brief extended-reduction specific biased bottleneck distance MST algorithms for Steiner tree problems
20 * This file implements MST algorithms for extended reduction techniques for Steiner problems, using
29 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
160 sds_def[0] = extreduce_distDataGetSdDouble(scip, graph, leaves[0], leaves[1], distdata_default);
161 sds_bias[0] = extreduce_distDataGetSdDouble(scip, graph, leaves[0], leaves[1], distdata_biased);
205 assert(EQ(dists_def[0], extreduce_distDataGetSdDouble(scip, graph, leaves[0], leaves[1], distdata_default)));
206 assert(EQ(dists_def[1], extreduce_distDataGetSdDouble(scip, graph, leaves[0], leaves[2], distdata_default)));
207 assert(EQ(dists_def[2], extreduce_distDataGetSdDouble(scip, graph, leaves[1], leaves[2], distdata_default)));
209 assert(EQ(dists_bias[0], extreduce_distDataGetSdDouble(scip, graph, leaves[0], leaves[1], distdata_biased)));
210 assert(EQ(dists_bias[1], extreduce_distDataGetSdDouble(scip, graph, leaves[0], leaves[2], distdata_biased)));
211 assert(EQ(dists_bias[2], extreduce_distDataGetSdDouble(scip, graph, leaves[1], leaves[2], distdata_biased)));
225 /** checks node of degree 3 for possible pseudo-elimination by using bias bottleneck Steiner distance */
260 dists_def[0] = extreduce_distDataGetSdDouble(scip, graph, neighbors[0], neighbors[1], distdata_default);
261 dists_def[1] = extreduce_distDataGetSdDouble(scip, graph, neighbors[0], neighbors[2], distdata_default);
262 dists_def[2] = extreduce_distDataGetSdDouble(scip, graph, neighbors[1], neighbors[2], distdata_default);
264 dists_bias[0] = extreduce_distDataGetSdDouble(scip, graph, neighbors[0], neighbors[1], distdata_biased);
265 dists_bias[1] = extreduce_distDataGetSdDouble(scip, graph, neighbors[0], neighbors[2], distdata_biased);
266 dists_bias[2] = extreduce_distDataGetSdDouble(scip, graph, neighbors[1], neighbors[2], distdata_biased);
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 int extStackGetTopOutEdgesStart(const EXTDATA *extdata, int stackpos)
Definition: extreducedefs.h:398
static int extStackGetTopOutEdgesEnd(const EXTDATA *extdata, int stackpos)
Definition: extreducedefs.h:412
static int extStackGetPosition(const EXTDATA *extdata)
Definition: extreducedefs.h:325
SCIP_RETCODE extreduce_mstbiasedCheck3NodeSimple(SCIP *scip, const GRAPH *graph, int node, DISTDATA *distdata_default, DISTDATA *distdata_biased, SCIP_Bool *isPseudoDeletable)
Definition: extreduce_extmstbiased.c:226
static SCIP_Bool mst3StarNeighborRuleOut(SCIP *scip, const SCIP_Real dists_def[3], const SCIP_Real dists_bias[3], SCIP_Real starcost, SCIP_Bool allowEquality)
Definition: extreduce_extmstbiased.c:55
This file implements extended reduction techniques for several Steiner problems.
SCIP_Bool SCIPisLT(SCIP *scip, SCIP_Real val1, SCIP_Real val2)
Definition: scip_numerics.c:451
Definition: type_retcode.h:33
SCIP_Real extreduce_mldistsTopTargetDist(const MLDISTS *, int, int)
Definition: extreduce_mldists.c:885
static SCIP_Real reduce_sdprofitGetProfit(const SDPROFIT *sdprofit, int node, int nonsource1, int nonsource2)
Definition: reducedefs.h:178
const SCIP_Real * extreduce_mldistsTopTargetDists(const MLDISTS *, int)
Definition: extreduce_mldists.c:873
Definition: extreducedefs.h:79
SCIP_Bool extreduce_mstbiased3LeafTreeRuleOut(SCIP *scip, const GRAPH *graph, SCIP_Real tree_cost, EXTDATA *extdata)
Definition: extreduce_extmstbiased.c:182
Portable definitions.
Definition: extreducedefs.h:138
static SCIP_Bool ruledOut(SCIP *scip, const GRAPH *graph, EXTDATA *extdata)
Definition: extreduce_contract.c:446
SCIP_Bool SCIPisLE(SCIP *scip, SCIP_Real val1, SCIP_Real val2)
Definition: scip_numerics.c:464
Definition: objbenders.h:33
static void mst3LeafTreeGetSds(SCIP *scip, const GRAPH *graph, EXTDATA *extdata, SCIP_Real sds_def[3], SCIP_Real sds_bias[3])
Definition: extreduce_extmstbiased.c:104