extreduce_dbg.c
Go to the documentation of this file.
26 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
227 const SCIP_Real mstweight_upper = sdmstGetWeight(scip, graph, base_nnodes, base_nodes, FALSE, extdata);
241 const SCIP_Real mstweight_lower = sdmstGetWeight(scip, graph, base_nnodes, base_nodes, TRUE, extdata);
613 distCloseNodesPrintLostNodeInfo(g, distdata, vertex, i, closenodes_indices, closenodes_dists, nclosenodes);
871 printf("FLAW wrong tree_bottleneckDistNode entry[%d]=%f \n", i, extdata->tree_bottleneckDistNode[i]);
1004 if( !graph_pseudoAncestors_edgeIsHashed(graph->pseudoancestors, edge, reddata->pseudoancestor_mark) )
1107 assert(extdata->extstack_state[stackpos] == EXT_STATE_EXPANDED || extdata->extstack_state[stackpos] == EXT_STATE_MARKED);
1151 if( !distCloseNodesIncluded(scip, g, distdata, i, closenodes_indices, closenodes_dists, nclosenodes) )
1310 const SCIP_Real sd_new = extreduce_extGetSdProperDouble(scip, graph, topleaf, sibling, extdata);
1352 const SCIP_Real sd_double = extreduce_extGetSdProperDouble(scip, graph, topleaf, leaf, extdata);
1481 const SCIP_Real mstweight_upper = sdmstGetWeight(scip, graph, nleaves, leaves, FALSE, extdata);
1602 if (extreduce_mldistsTopLevelNSlots(sds_horizontal) != extreduce_mldistsTopLevelNSlots(sds_vertical) )
Definition: completegraph.h:43
int graph_edge_nPseudoAncestors(const GRAPH *, int)
Definition: graph_history.c:1159
SCIP_RETCODE cmst_init(SCIP *scip, CMST **cmst, int maxnnodes)
Definition: completegraph.c:660
int extreduce_extStackCompNOutedges(const EXTDATA *extdata, int stackpos)
Definition: extreduce_dbg.c:1645
static SCIP_Bool treeDegreesAreFlawed(const GRAPH *graph, const EXTDATA *extdata, const int degreecount[])
Definition: extreduce_dbg.c:735
void extreduce_extendInitDebug(int *extedgesstart, int *extedges)
Definition: extreduce_dbg.c:1196
static SCIP_Bool extInitialCompIsGenStar(const EXTDATA *extdata)
Definition: extreducedefs.h:293
SCIP_Bool extreduce_mstTopCompExtObjValid(SCIP *scip, const GRAPH *graph, int extvert, SCIP_Real extobj, EXTDATA *extdata)
Definition: extreduce_dbg.c:1427
SCIP_Bool extreduce_treeIsHashed(const GRAPH *graph, const EXTDATA *extdata)
Definition: extreduce_dbg.c:987
Definition: graphdefs.h:184
SCIP_Bool extreduce_distCloseNodesAreValid(SCIP *scip, const GRAPH *g, const DISTDATA *distdata)
Definition: extreduce_dbg.c:1125
Definition: extreducedefs.h:187
Definition: struct_scip.h:59
static SCIP_Bool treeInnerNodesAreFlawed(const GRAPH *graph, const EXTDATA *extdata, const int degreecount[])
Definition: extreduce_dbg.c:810
void extreduce_extdataCleanArraysDbg(const GRAPH *graph, EXTDATA *extdata)
Definition: extreduce_dbg.c:881
SCIP_Bool extreduce_mldistsEmptySlotExists(const MLDISTS *)
Definition: extreduce_mldists.c:383
SCIP_Bool extreduce_mstTopLevelBaseObjValid(SCIP *scip, const GRAPH *graph, int extnode, EXTDATA *extdata)
Definition: extreduce_dbg.c:1381
int extreduce_getMaxStackNcomponents(const GRAPH *)
Definition: extreduce_base.c:2069
Definition: graphdefs.h:301
SCIP_Bool extreduce_stackTopIsHashed(const GRAPH *graph, const EXTDATA *extdata)
Definition: extreduce_dbg.c:1615
void cgraph_node_append(CGRAPH *cgraph, int nodeid)
Definition: completegraph.c:416
static SCIP_Bool mstTopLevelBaseValidWeight(SCIP *scip, const GRAPH *graph, int base_nnodes, int base_nodes[], const CSR *mst_base, EXTDATA *extdata)
Definition: extreduce_dbg.c:217
int extreduce_mldistsNlevels(const MLDISTS *)
Definition: extreduce_mldists.c:778
includes various files containing graph methods used for Steiner tree problems
static int extStackGetTopOutEdgesStart(const EXTDATA *extdata, int stackpos)
Definition: extreducedefs.h:398
void graph_csrdepo_getTopCSR(const CSRDEPO *, CSR *)
Definition: graph_util.c:684
static SCIP_Bool extInitialCompIsStar(const EXTDATA *extdata)
Definition: extreducedefs.h:279
SCIP_Real extreduce_extGetSdProperDouble(SCIP *, const GRAPH *, int, int, EXTDATA *)
Definition: extreduce_extmst.c:2242
static int extStackGetTopOutEdgesEnd(const EXTDATA *extdata, int stackpos)
Definition: extreducedefs.h:412
static SCIP_Bool treeLeavesAreFlawed(const GRAPH *graph, const EXTDATA *extdata, const int degreecount[])
Definition: extreduce_dbg.c:764
static int extStackGetPosition(const EXTDATA *extdata)
Definition: extreducedefs.h:325
SCIP_Bool extreduce_mstTopCompInSync(SCIP *scip, const GRAPH *graph, EXTDATA *extdata)
Definition: extreduce_dbg.c:1505
SCIP_Bool extreduce_mstInternalsInSync(const EXTDATA *extdata)
Definition: extreduce_dbg.c:1573
SCIP_Bool extreduce_sdshorizontalInSync(SCIP *scip, const GRAPH *graph, int topleaf, EXTDATA *extdata)
Definition: extreduce_dbg.c:1269
void extreduce_printTopLevel(const EXTDATA *extdata)
Definition: extreduce_dbg.c:1073
SCIP_Bool extreduce_nodeIsInStackTop(const GRAPH *graph, const EXTDATA *extdata, int node)
Definition: extreduce_dbg.c:1094
int extreduce_mldistsTopLevelNSlots(const MLDISTS *)
Definition: extreduce_mldists.c:769
#define SCIPallocCleanBufferArray(scip, ptr, num)
Definition: scip_mem.h:133
This file implements extended reduction techniques for several Steiner problems.
SCIP_Bool extreduce_mstTopCompObjValid(SCIP *scip, const GRAPH *graph, SCIP_Real compobj, EXTDATA *extdata)
Definition: extreduce_dbg.c:1468
static void treeGetCounters(const GRAPH *graph, const EXTDATA *extdata, int edgecount[], int degreecount[], SCIP_Bool *treeIsFlawed)
Definition: extreduce_dbg.c:648
void extreduce_printStack(const GRAPH *graph, const EXTDATA *extdata)
Definition: extreduce_dbg.c:1031
static SCIP_Real sdmstGetWeight(SCIP *scip, const GRAPH *graph, int nnodes, const int nodes[], SCIP_Bool computeLower, EXTDATA *extdata)
Definition: extreduce_dbg.c:42
static SCIP_Bool extIsAtInitialComp(const EXTDATA *extdata)
Definition: extreducedefs.h:251
static SCIP_Real sdmstGetExtWeight(SCIP *scip, const GRAPH *graph, int extvert, SCIP_Bool computeLower, EXTDATA *extdata)
Definition: extreduce_dbg.c:143
static SCIP_Real distGetRestricted(SCIP *scip, const GRAPH *g, int vertexBlocked, const DISTDATA *distdata, int vertex1, int vertex2)
Definition: extreduce_dbg.c:259
SCIP_Real reduce_dcmstGetWeight(SCIP *, const CSR *)
Definition: reduce_util.c:1573
SCIP_Real extreduce_extGetSdProper(SCIP *, const GRAPH *, int, int, EXTDATA *)
Definition: extreduce_extmst.c:2228
SCIP_Real extreduce_extGetSdDouble(SCIP *, const GRAPH *, int, int, EXTDATA *)
Definition: extreduce_extmst.c:2214
SCIP_Real extreduce_extGetSd(SCIP *, const GRAPH *, int, int, EXTDATA *)
Definition: extreduce_extmst.c:2200
Definition: type_retcode.h:33
SCIP_Real extreduce_mldistsTopTargetDist(const MLDISTS *, int, int)
Definition: extreduce_mldists.c:885
void graph_heap_free(SCIP *, SCIP_Bool, SCIP_Bool, DHEAP **)
Definition: graph_util.c:1034
SCIP_Bool reduce_dcmstMstIsValid(SCIP *, const CSR *)
Definition: reduce_util.c:1650
const SCIP_Real * extreduce_mldistsTopTargetDists(const MLDISTS *, int)
Definition: extreduce_mldists.c:873
SCIP_Bool extreduce_sdsTopInSync(SCIP *scip, const GRAPH *graph, const SCIP_Real sds[], int topleaf, EXTDATA *extdata)
Definition: extreduce_dbg.c:1329
SCIP_RETCODE cgraph_init(SCIP *scip, CGRAPH **cgraph, int maxnnodes)
Definition: completegraph.c:266
SCIP_Bool extreduce_treeIsFlawed(SCIP *scip, const GRAPH *graph, const EXTDATA *extdata)
Definition: extreduce_dbg.c:939
static SCIP_Real distCloseNodesGetMaxCost(int vertex, const DISTDATA *distdata)
Definition: extreduce_dbg.c:346
SCIP_Real *const redcost_treenodeswaps
Definition: extreducedefs.h:153
void extreduce_printLeaves(const EXTDATA *extdata)
Definition: extreduce_dbg.c:1013
Definition: extreducedefs.h:79
SCIP_Real *const tree_bottleneckDistNode
Definition: extreducedefs.h:197
Definition: graphdefs.h:138
Definition: graphdefs.h:150
Portable definitions.
Definition: graphdefs.h:158
SCIP_Bool extreduce_sdsverticalInSync(SCIP *scip, const GRAPH *graph, int compsize, int nleaves_ancestors, int topleaf, EXTDATA *extdata)
Definition: extreduce_dbg.c:1212
Definition: extreducedefs.h:138
static SCIP_Bool treeDistsAreFlawed(const GRAPH *graph, const EXTDATA *extdata)
Definition: extreduce_dbg.c:854
SCIP_RETCODE graph_heap_create(SCIP *, int, int *, DENTRY *, DHEAP **)
Definition: graph_util.c:992
int graph_heap_deleteMinReturnNode(DHEAP *)
Definition: graph_util.c:1076
static SCIP_RETCODE distCloseNodesCompute(SCIP *scip, const GRAPH *g, const DISTDATA *distdata, int startvertex, int *closenodes_indices, SCIP_Real *closenodes_dists, int *nclosenodes)
Definition: extreduce_dbg.c:374
const int * extreduce_mldistsTopLevelBases(const MLDISTS *)
Definition: extreduce_mldists.c:802
Definition: completegraph.h:69
void cgraph_node_applyMinAdjCosts(CGRAPH *cgraph, int nodepos, int nodeid)
Definition: completegraph.c:371
static SCIP_Bool distCloseNodesIncluded(SCIP *scip, const GRAPH *g, const DISTDATA *distdata, int vertex, const int *closenodes_indices, const SCIP_Real *closenodes_dists, int nclosenodes)
Definition: extreduce_dbg.c:559
static void distCloseNodesPrintLostNodeInfo(const GRAPH *g, const DISTDATA *distdata, int vertex_base, int index_lost, const int *closenodes_indices, const SCIP_Real *closenodes_dists, int nclosenodes)
Definition: extreduce_dbg.c:474
Definition: objbenders.h:33
SCIP_Bool graph_pseudoAncestors_edgeIsHashed(const PSEUDOANS *, int, const int *)
Definition: graph_history.c:948
const int * extreduce_mldistsTopTargetIds(const MLDISTS *, int)
Definition: extreduce_mldists.c:863
static void treeResetCounters(const GRAPH *graph, const EXTDATA *extdata, int edgecount[], int degreecount[])
Definition: extreduce_dbg.c:698
static void mstTopLevelBaseGetNodes(int extnode, int nnodes, int nodes[], const EXTDATA *extdata)
Definition: extreduce_dbg.c:182
void cmst_computeMst(const CGRAPH *cgraph, int mstroot, CMST *cmst)
Definition: completegraph.c:711
SCIP_Real extreduce_distComputeRestrictedDist(SCIP *scip, const GRAPH *g, int vertexBlocked, const DISTDATA *distdata, int vertex1, int vertex2)
Definition: extreduce_dbg.c:1172
SCIP_Real *const tree_parentEdgeCost
Definition: extreducedefs.h:199