Scippy

SCIP

Solving Constraint Integer Programs

extreduce_dbg.c File Reference

Detailed Description

extended reductions for Steiner tree problems

Author
Daniel Rehfeldt

This file implements extended reduction debugging routines for several Steiner problems.

A list of all interface methods can be found in reduce.h.

Definition in file extreduce_dbg.c.

#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include "graph.h"
#include "portab.h"
#include <limits.h>
#include "extreduce.h"

Go to the source code of this file.

Functions

static SCIP_Real sdmstGetWeight (SCIP *scip, const GRAPH *graph, int nnodes, const int nodes[], SCIP_Bool computeLower, EXTDATA *extdata)
 
static SCIP_Real sdmstGetExtWeight (SCIP *scip, const GRAPH *graph, int extvert, SCIP_Bool computeLower, EXTDATA *extdata)
 
static void mstTopLevelBaseGetNodes (int extnode, int nnodes, int nodes[], const EXTDATA *extdata)
 
static SCIP_Bool mstTopLevelBaseValidWeight (SCIP *scip, const GRAPH *graph, int base_nnodes, int base_nodes[], const CSR *mst_base, EXTDATA *extdata)
 
static SCIP_Real distGetRestricted (SCIP *scip, const GRAPH *g, int vertexBlocked, const DISTDATA *distdata, int vertex1, int vertex2)
 
static SCIP_Real distCloseNodesGetMaxCost (int vertex, const DISTDATA *distdata)
 
static SCIP_RETCODE distCloseNodesCompute (SCIP *scip, const GRAPH *g, const DISTDATA *distdata, int startvertex, int *closenodes_indices, SCIP_Real *closenodes_dists, int *nclosenodes)
 
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)
 
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)
 
static void treeGetCounters (const GRAPH *graph, const EXTDATA *extdata, int edgecount[], int degreecount[], SCIP_Bool *treeIsFlawed)
 
static void treeResetCounters (const GRAPH *graph, const EXTDATA *extdata, int edgecount[], int degreecount[])
 
static SCIP_Bool treeDegreesAreFlawed (const GRAPH *graph, const EXTDATA *extdata, const int degreecount[])
 
static SCIP_Bool treeLeavesAreFlawed (const GRAPH *graph, const EXTDATA *extdata, const int degreecount[])
 
static SCIP_Bool treeInnerNodesAreFlawed (const GRAPH *graph, const EXTDATA *extdata, const int degreecount[])
 
static SCIP_Bool treeDistsAreFlawed (const GRAPH *graph, const EXTDATA *extdata)
 
void extreduce_extdataCleanArraysDbg (const GRAPH *graph, EXTDATA *extdata)
 
SCIP_Bool extreduce_treeIsFlawed (SCIP *scip, const GRAPH *graph, const EXTDATA *extdata)
 
SCIP_Bool extreduce_treeIsHashed (const GRAPH *graph, const EXTDATA *extdata)
 
void extreduce_printLeaves (const EXTDATA *extdata)
 
void extreduce_printStack (const GRAPH *graph, const EXTDATA *extdata)
 
void extreduce_printTopLevel (const EXTDATA *extdata)
 
SCIP_Bool extreduce_nodeIsInStackTop (const GRAPH *graph, const EXTDATA *extdata, int node)
 
SCIP_Bool extreduce_distCloseNodesAreValid (SCIP *scip, const GRAPH *g, const DISTDATA *distdata)
 
SCIP_Real extreduce_distComputeRestrictedDist (SCIP *scip, const GRAPH *g, int vertexBlocked, const DISTDATA *distdata, int vertex1, int vertex2)
 
void extreduce_extendInitDebug (int *extedgesstart, int *extedges)
 
SCIP_Bool extreduce_sdsverticalInSync (SCIP *scip, const GRAPH *graph, int compsize, int nleaves_ancestors, int topleaf, EXTDATA *extdata)
 
SCIP_Bool extreduce_sdshorizontalInSync (SCIP *scip, const GRAPH *graph, int topleaf, EXTDATA *extdata)
 
SCIP_Bool extreduce_sdsTopInSync (SCIP *scip, const GRAPH *graph, const SCIP_Real sds[], int topleaf, EXTDATA *extdata)
 
SCIP_Bool extreduce_mstTopLevelBaseObjValid (SCIP *scip, const GRAPH *graph, int extnode, EXTDATA *extdata)
 
SCIP_Bool extreduce_mstTopCompExtObjValid (SCIP *scip, const GRAPH *graph, int extvert, SCIP_Real extobj, EXTDATA *extdata)
 
SCIP_Bool extreduce_mstTopCompObjValid (SCIP *scip, const GRAPH *graph, SCIP_Real compobj, EXTDATA *extdata)
 
SCIP_Bool extreduce_mstTopCompInSync (SCIP *scip, const GRAPH *graph, EXTDATA *extdata)
 
SCIP_Bool extreduce_mstInternalsInSync (const EXTDATA *extdata)
 
SCIP_Bool extreduce_stackTopIsHashed (const GRAPH *graph, const EXTDATA *extdata)
 
int extreduce_extStackCompNOutedges (const EXTDATA *extdata, int stackpos)
 

Function Documentation

◆ sdmstGetWeight()

static SCIP_Real sdmstGetWeight ( SCIP scip,
const GRAPH graph,
int  nnodes,
const int  nodes[],
SCIP_Bool  computeLower,
EXTDATA extdata 
)
static

get SD MST weight NOTE: might deviate because only getSd is used...maybe only use double in the code?

Parameters
scipSCIP
graphgraph data structure
nnodesnumber of nodes for MST computation
nodesnodes (from graph) for MST computation
computeLowercompute lower bound? (otherwise upper)
extdataextension data

Definition at line 42 of file extreduce_dbg.c.

References complete_graph::adjedgecosts, BLOCKED, cgraph_free(), cgraph_init(), cgraph_node_append(), cgraph_node_applyMinAdjCosts(), cmst_computeMst(), cmst_free(), cmst_init(), EQ, extreduce_extGetSd(), extreduce_extGetSdDouble(), FARAWAY, GE, MAX, complete_mst::mstobj, nnodes, SCIP_CALL_ABORT, SCIP_Real, and STP_EXTTREE_MAXNLEAVES_GUARD.

Referenced by extreduce_mstTopCompObjValid(), mstTopLevelBaseValidWeight(), and sdmstGetExtWeight().

◆ sdmstGetExtWeight()

static SCIP_Real sdmstGetExtWeight ( SCIP scip,
const GRAPH graph,
int  extvert,
SCIP_Bool  computeLower,
EXTDATA extdata 
)
static

gets MST weight for SD MST spanning all leaves and extension vertex NOTE: only for debugging! very slow!

Parameters
scipSCIP
graphgraph data structure
extvertextended vertex
computeLowercompute lower bound? (otherwise upper)
extdataextension data

Definition at line 143 of file extreduce_dbg.c.

References SCIP_CALL_ABORT, SCIP_Real, SCIPallocBufferArray, SCIPfreeBufferArray, sdmstGetWeight(), STP_EXTTREE_MAXNLEAVES_GUARD, extension_data::tree_leaves, and extension_data::tree_nleaves.

Referenced by extreduce_mstTopCompExtObjValid().

◆ mstTopLevelBaseGetNodes()

static void mstTopLevelBaseGetNodes ( int  extnode,
int  nnodes,
int  nodes[],
const EXTDATA extdata 
)
static

gets nodes of top levelbase MST

Parameters
extnodeextension nodes
nnodesnumber of nodes
nodesnodes (from graph) to be filled in
extdataextension data

Definition at line 182 of file extreduce_dbg.c.

References SCIPdebugMessage, extension_data::tree_leaves, and extension_data::tree_nleaves.

Referenced by extreduce_mstTopLevelBaseObjValid().

◆ mstTopLevelBaseValidWeight()

static SCIP_Bool mstTopLevelBaseValidWeight ( SCIP scip,
const GRAPH graph,
int  base_nnodes,
int  base_nodes[],
const CSR mst_base,
EXTDATA extdata 
)
static

is the weight of the top levelbase MST valid?

Parameters
scipSCIP
graphgraph data structure
base_nnodesnumber of nodes
base_nodesMST nodes (from graph)
mst_basethe stored MST
extdataextension data

Definition at line 217 of file extreduce_dbg.c.

References FALSE, GT, LT, csr_storage::nnodes, reduce_dcmstGetWeight(), SCIP_Bool, SCIP_Real, SCIPdebugMessage, sdmstGetWeight(), and TRUE.

Referenced by extreduce_mstTopLevelBaseObjValid().

◆ distGetRestricted()

static SCIP_Real distGetRestricted ( SCIP scip,
const GRAPH g,
int  vertexBlocked,
const DISTDATA distdata,
int  vertex1,
int  vertex2 
)
static

returns shortest distance between given vertices

Parameters
scipSCIP
ggraph data structure
vertexBlockedforbidden vertex
distdatadistance data
vertex1first vertex
vertex2second vertex

Definition at line 259 of file extreduce_dbg.c.

References CONNECT, GRAPH::cost, distance_data::dijkdata, EAT_LAST, FARAWAY, graph_heap_correct(), graph_heap_create(), graph_heap_deleteMinReturnNode(), graph_heap_free(), graph_pc_isPc(), GRAPH::head, GRAPH::knots, GRAPH::mark, nnodes, dijkstra_data::node_bias, NULL, GRAPH::oeat, GRAPH::outbeg, dijkstra_heap::position, SCIP_Bool, SCIP_CALL_ABORT, SCIP_Real, SCIPallocMemoryArray, SCIPfreeMemoryArray, dijkstra_heap::size, TRUE, and UNKNOWN.

Referenced by extreduce_distComputeRestrictedDist().

◆ distCloseNodesGetMaxCost()

static SCIP_Real distCloseNodesGetMaxCost ( int  vertex,
const DISTDATA distdata 
)
inlinestatic

Helper. Gives maximum cost among all close nodes.

Parameters
vertexvertex for which to get the maximum cost
distdatadistance data

Definition at line 346 of file extreduce_dbg.c.

References distance_data::closenodes_distances, distance_data::closenodes_range, csr_range::end, FARAWAY, GE, SCIP_Real, and csr_range::start.

Referenced by distCloseNodesCompute().

◆ distCloseNodesCompute()

static SCIP_RETCODE distCloseNodesCompute ( SCIP scip,
const GRAPH g,
const DISTDATA distdata,
int  startvertex,
int *  closenodes_indices,
SCIP_Real closenodes_dists,
int *  nclosenodes 
)
static

Gets close nodes and corresponding distances. NOTE: needs to correspond to 'distDataComputeCloseNodes' in 'extreduce_dbg.c'

Parameters
scipSCIP
ggraph data structure
distdatadistance data
startvertexstart vertex
closenodes_indicesindices of close nodes
closenodes_distsdistances of close nodes
nclosenodesnumber of added close nodes

Definition at line 374 of file extreduce_dbg.c.

References CONNECT, dynamic_csr_storage::cost, GRAPH::dcsr_storage, distance_data::dijkdata, distCloseNodesGetMaxCost(), FARAWAY, graph_heap_correct(), graph_heap_create(), graph_heap_deleteMinReturnNode(), graph_heap_free(), graph_pc_isPc(), GT, dynamic_csr_storage::head, GRAPH::knots, GRAPH::mark, nnodes, dijkstra_data::node_bias, NULL, dijkstra_heap::position, dynamic_csr_storage::range, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPallocMemoryArray, SCIPfreeMemoryArray, dijkstra_heap::size, TRUE, and UNKNOWN.

Referenced by extreduce_distCloseNodesAreValid().

◆ distCloseNodesPrintLostNodeInfo()

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 
)
static
Parameters
ggraph data structure
distdatadistance data
vertex_basevertex for check
index_lostvertex that is lost
closenodes_indicesindices of newly found close nodes
closenodes_distsdistances of newly found close nodes
nclosenodesnumber of newly found close nodes

Definition at line 474 of file extreduce_dbg.c.

References distance_data::closenodes_distances, distance_data::closenodes_indices, distance_data::closenodes_prededges, distance_data::closenodes_range, distance_data::dijkdata, csr_range::end, graph_edge_printInfo(), graph_knot_printInfo(), GRAPH::head, dijkstra_data::node_bias, SCIP_Real, SCIPdebugMessage, csr_range::start, and GRAPH::tail.

Referenced by distCloseNodesIncluded().

◆ distCloseNodesIncluded()

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 
)
static
Parameters
scipSCIP
ggraph data structure
distdatadistance data
vertexvertex for check
closenodes_indicesindices of newly found close nodes
closenodes_distsdistances of newly found close nodes
nclosenodesnumber of newly found close nodes

Definition at line 559 of file extreduce_dbg.c.

References distance_data::closenodes_distances, distance_data::closenodes_indices, distance_data::closenodes_prededges, distance_data::closenodes_range, distCloseNodesPrintLostNodeInfo(), csr_range::end, EQ, FALSE, graph_get_nNodes(), GRAPH::head, nnodes, SCIP_Bool, SCIP_CALL_ABORT, SCIP_Real, SCIPallocCleanBufferArray, SCIPdebugMessage, SCIPfreeCleanBufferArray, csr_range::start, GRAPH::tail, and TRUE.

Referenced by extreduce_distCloseNodesAreValid().

◆ treeGetCounters()

static void treeGetCounters ( const GRAPH graph,
const EXTDATA extdata,
int  edgecount[],
int  degreecount[],
SCIP_Bool treeIsFlawed 
)
static

computes counters for degrees and edges

Parameters
graphgraph data structure
extdataextension data
edgecountedge count
degreecountdegree count
treeIsFlawedis tree flawed?)

Definition at line 648 of file extreduce_dbg.c.

References flipedge, graph_edge_printInfo(), GRAPH::head, GRAPH::tail, extension_data::tree_deg, extension_data::tree_edges, extension_data::tree_nedges, and TRUE.

Referenced by extreduce_treeIsFlawed().

◆ treeResetCounters()

static void treeResetCounters ( const GRAPH graph,
const EXTDATA extdata,
int  edgecount[],
int  degreecount[] 
)
static

reset counters

Parameters
graphgraph data structure
extdataextension data
edgecountedge count
degreecountdegree count

Definition at line 698 of file extreduce_dbg.c.

References graph_get_nEdges(), graph_get_nNodes(), GRAPH::head, nnodes, GRAPH::tail, extension_data::tree_edges, and extension_data::tree_nedges.

Referenced by extreduce_treeIsFlawed().

◆ treeDegreesAreFlawed()

static SCIP_Bool treeDegreesAreFlawed ( const GRAPH graph,
const EXTDATA extdata,
const int  degreecount[] 
)
static

are the degrees flawed?

Parameters
graphgraph data structure
extdataextension data
degreecountdegree count

Definition at line 735 of file extreduce_dbg.c.

References FALSE, GRAPH::head, extension_data::tree_deg, extension_data::tree_edges, extension_data::tree_nedges, and TRUE.

Referenced by extreduce_treeIsFlawed().

◆ treeLeavesAreFlawed()

static SCIP_Bool treeLeavesAreFlawed ( const GRAPH graph,
const EXTDATA extdata,
const int  degreecount[] 
)
static

flaw with the tree leaves?

Parameters
graphgraph data structure
extdataextension data
degreecountdegree count

Definition at line 764 of file extreduce_dbg.c.

References FALSE, GRAPH::head, extension_data::tree_edges, extension_data::tree_leaves, extension_data::tree_nedges, extension_data::tree_nleaves, and TRUE.

Referenced by extreduce_treeIsFlawed().

◆ treeInnerNodesAreFlawed()

static SCIP_Bool treeInnerNodesAreFlawed ( const GRAPH graph,
const EXTDATA extdata,
const int  degreecount[] 
)
static

flaw with the inner nodes?

Parameters
graphgraph data structure
extdataextension data
degreecountdegree count

Definition at line 810 of file extreduce_dbg.c.

References FALSE, GRAPH::head, extension_data::tree_edges, extension_data::tree_innerNodes, extension_data::tree_nedges, extension_data::tree_ninnerNodes, and TRUE.

Referenced by extreduce_treeIsFlawed().

◆ treeDistsAreFlawed()

static SCIP_Bool treeDistsAreFlawed ( const GRAPH graph,
const EXTDATA extdata 
)
static

are distance values of tree flawed?

Parameters
graphgraph data structure
extdataextension data

Definition at line 854 of file extreduce_dbg.c.

References FALSE, graph_get_nNodes(), graph_pc_isPcMw(), nnodes, extension_data::pcdata, pcmw_specific_data::pcSdToNode, SCIP_Bool, extension_data::tree_bottleneckDistNode, and TRUE.

Referenced by extreduce_treeIsFlawed().

◆ extreduce_extdataCleanArraysDbg()

◆ extreduce_treeIsFlawed()

SCIP_Bool extreduce_treeIsFlawed ( SCIP scip,
const GRAPH graph,
const EXTDATA extdata 
)

◆ extreduce_treeIsHashed()

SCIP_Bool extreduce_treeIsHashed ( const GRAPH graph,
const EXTDATA extdata 
)

is current tree completely hashed?

Parameters
graphgraph data structure
extdataextension data

Definition at line 987 of file extreduce_dbg.c.

References FALSE, graph_edge_nPseudoAncestors(), graph_pseudoAncestors_edgeIsHashed(), reduction_data::pseudoancestor_mark, GRAPH::pseudoancestors, extension_data::reddata, extension_data::tree_edges, extension_data::tree_nedges, and TRUE.

Referenced by extTreeSyncWithStack().

◆ extreduce_printLeaves()

void extreduce_printLeaves ( const EXTDATA extdata)

prints the leaves of the tree

Parameters
extdataextension data

Definition at line 1013 of file extreduce_dbg.c.

References extension_data::tree_leaves, and extension_data::tree_nleaves.

◆ extreduce_printStack()

void extreduce_printStack ( const GRAPH graph,
const EXTDATA extdata 
)

◆ extreduce_printTopLevel()

void extreduce_printTopLevel ( const EXTDATA extdata)

Prints top horizontal level

Parameters
extdataextension data

Definition at line 1073 of file extreduce_dbg.c.

References extreduce_mldistsTopLevelBases(), extreduce_mldistsTopLevelNSlots(), extension_data::reddata, and reduction_data::sds_horizontal.

Referenced by extreduce_mstLevelClose().

◆ extreduce_nodeIsInStackTop()

SCIP_Bool extreduce_nodeIsInStackTop ( const GRAPH graph,
const EXTDATA extdata,
int  node 
)

is the node in the current top component of the stack?

Parameters
graphgraph data structure
extdataextension data
nodethe node

Definition at line 1094 of file extreduce_dbg.c.

References EXT_STATE_EXPANDED, EXT_STATE_MARKED, extension_data::extstack_data, extension_data::extstack_start, extension_data::extstack_state, extStackGetPosition(), FALSE, GRAPH::head, and TRUE.

Referenced by extreduce_sdshorizontalInSync(), extreduce_sdsverticalInSync(), mstCompLeafGetSDsToSiblings(), and mstCompLeafToSiblingsBiasedRuleOut().

◆ extreduce_distCloseNodesAreValid()

SCIP_Bool extreduce_distCloseNodesAreValid ( SCIP scip,
const GRAPH g,
const DISTDATA distdata 
)

Are the close-nodes still valid? NOTE: expensive method, just designed for debugging!

Parameters
scipSCIP
ggraph data structure
distdatadistance data

Definition at line 1125 of file extreduce_dbg.c.

References distCloseNodesCompute(), distCloseNodesIncluded(), FALSE, graph_get_nNodes(), graph_knot_printInfo(), nnodes, distance_data::pathroot_isdirty, SCIP_Bool, SCIP_CALL_ABORT, SCIP_Real, SCIPallocMemoryArray, SCIPdebugMessage, SCIPfreeMemoryArray, and TRUE.

Referenced by extreduce_distDataInit(), removeEdge(), replaceEdgeByPath(), and testDistCloseNodesPcAreValidAfterDeletion().

◆ extreduce_distComputeRestrictedDist()

SCIP_Real extreduce_distComputeRestrictedDist ( SCIP scip,
const GRAPH g,
int  vertexBlocked,
const DISTDATA distdata,
int  vertex1,
int  vertex2 
)

Computes actual distance between two nodes. NOTE: expensive method, just designed for debugging!

Parameters
scipSCIP
ggraph data structure
vertexBlockedforbidden vertex
distdatadistance data
vertex1first vertex
vertex2second vertex

Definition at line 1172 of file extreduce_dbg.c.

References distGetRestricted(), graph_knot_isInRange(), and SCIP_Real.

◆ extreduce_extendInitDebug()

void extreduce_extendInitDebug ( int *  extedgesstart,
int *  extedges 
)

debug initialization

Parameters
extedgesstartarray
extedgesarray

Definition at line 1196 of file extreduce_dbg.c.

References STP_EXT_MAXGRAD.

Referenced by extTreeFindExtensions().

◆ extreduce_sdsverticalInSync()

SCIP_Bool extreduce_sdsverticalInSync ( SCIP scip,
const GRAPH graph,
int  compsize,
int  nleaves_ancestors,
int  topleaf,
EXTDATA extdata 
)

check whether vertical SDs are up to date for given leaf of component

Parameters
scipSCIP
graphgraph data structure
compsizesize of component
nleaves_ancestorsnumber of leaves to ancestors
topleafcomponent leaf to check for
extdataextension data

Definition at line 1212 of file extreduce_dbg.c.

References EQ, extIsAtInitialComp(), extreduce_extGetSd(), extreduce_mldistsTopTargetDists(), extreduce_mldistsTopTargetIds(), extreduce_nodeIsInStackTop(), FALSE, FARAWAY, graph_pc_isPc(), extension_data::reddata, SCIP_Bool, SCIP_Real, SCIPdebugMessage, reduction_data::sds_vertical, extension_data::tree_deg, extension_data::tree_leaves, extension_data::tree_nleaves, and TRUE.

Referenced by mstCompLeafGetSDsToAncestors().

◆ extreduce_sdshorizontalInSync()

SCIP_Bool extreduce_sdshorizontalInSync ( SCIP scip,
const GRAPH graph,
int  topleaf,
EXTDATA extdata 
)

◆ extreduce_sdsTopInSync()

SCIP_Bool extreduce_sdsTopInSync ( SCIP scip,
const GRAPH graph,
const SCIP_Real  sds[],
int  topleaf,
EXTDATA extdata 
)

are sds from top component leaf corresponding to current tree?

Parameters
scipSCIP
graphgraph data structure
sdsSDs from top leaf
topleafcomponent leaf to check for
extdataextension data

Definition at line 1329 of file extreduce_dbg.c.

References EQ, extreduce_extGetSdProper(), extreduce_extGetSdProperDouble(), FALSE, FARAWAY, graph_pc_isPc(), SCIP_Bool, SCIP_Real, SCIPdebugMessage, extension_data::tree_leaves, extension_data::tree_nleaves, and TRUE.

Referenced by mstCompLeafGetSDs().

◆ extreduce_mstTopLevelBaseObjValid()

SCIP_Bool extreduce_mstTopLevelBaseObjValid ( SCIP scip,
const GRAPH graph,
int  extnode,
EXTDATA extdata 
)

is the top level base MST objective in sync with the current tree?

Parameters
scipSCIP
graphgraph data structure
extnodenode from which the level was extended
extdataextension data

Definition at line 1381 of file extreduce_dbg.c.

References FALSE, graph_csrdepo_getTopCSR(), graph_pc_isPcMw(), reduction_data::msts_levelbase, mstTopLevelBaseGetNodes(), mstTopLevelBaseValidWeight(), nnodes, csr_storage::nnodes, extension_data::reddata, reduce_dcmstMstIsValid(), SCIP_Bool, SCIP_CALL_ABORT, SCIPallocMemoryArray, SCIPfreeMemoryArray, extension_data::tree_deg, extension_data::tree_nleaves, and TRUE.

Referenced by baseMstFinalizeNew().

◆ extreduce_mstTopCompExtObjValid()

SCIP_Bool extreduce_mstTopCompExtObjValid ( SCIP scip,
const GRAPH graph,
int  extvert,
SCIP_Real  extobj,
EXTDATA extdata 
)

is the objective of the top MST extension valid for the tree?

does currently not work because of weird SD computation

Parameters
scipSCIP
graphgraph data structure
extvertextended vertex
extobjobjective of extension
extdataextension data

Definition at line 1427 of file extreduce_dbg.c.

References FALSE, graph_pc_isPcMw(), GT, LT, SCIP_Bool, SCIP_Real, SCIPdebugMessage, sdmstGetExtWeight(), and TRUE.

Referenced by mstLevelLeafTryExtMst().

◆ extreduce_mstTopCompObjValid()

SCIP_Bool extreduce_mstTopCompObjValid ( SCIP scip,
const GRAPH graph,
SCIP_Real  compobj,
EXTDATA extdata 
)

is the objective of the top MST sync with the tree?

Parameters
scipSCIP
graphgraph data structure
compobjalleged objective of component
extdataextension data

Definition at line 1468 of file extreduce_dbg.c.

References FALSE, graph_pc_isPcMw(), GT, LT, SCIP_Bool, SCIP_Real, SCIPdebugMessage, sdmstGetWeight(), extension_data::tree_leaves, extension_data::tree_nleaves, and TRUE.

Referenced by mstCompRuleOut().

◆ extreduce_mstTopCompInSync()

SCIP_Bool extreduce_mstTopCompInSync ( SCIP scip,
const GRAPH graph,
EXTDATA extdata 
)

◆ extreduce_mstInternalsInSync()

SCIP_Bool extreduce_mstInternalsInSync ( const EXTDATA extdata)

◆ extreduce_stackTopIsHashed()

SCIP_Bool extreduce_stackTopIsHashed ( const GRAPH graph,
const EXTDATA extdata 
)

◆ extreduce_extStackCompNOutedges()

int extreduce_extStackCompNOutedges ( const EXTDATA extdata,
int  stackpos 
)

returns size of component on the stack

Parameters
extdataextension data
stackposposition on the stack

Definition at line 1645 of file extreduce_dbg.c.

References EXT_STATE_NONE, extInitialCompIsGenStar(), extInitialCompIsStar(), extension_data::extstack_start, extension_data::extstack_state, SCIP_Bool, and STP_EXT_MAXGRAD.

Referenced by baseMstGetOrderedParentNodes(), and baseMstInitMsts().