Detailed Description
includes various files containing graph methods used for Steiner tree problems
Definition in file graph.h.
#include "scip/scip.h"
#include "misc_stp.h"
#include "graphdefs.h"
#include "redcosts.h"
#include "reducedefs.h"
#include "portab.h"
#include "stpvector.h"
Go to the source code of this file.
Function Documentation
◆ graph_initContractTracing()
SCIP_RETCODE graph_initContractTracing | ( | SCIP * | scip, |
GRAPH * | graph | ||
) |
initializes
- Parameters
-
scip SCIP data structure graph graph
Definition at line 1836 of file graph_history.c.
References GRAPH::contracttrace, graph_get_nNodes(), nnodes, SCIP_CALL, SCIP_OKAY, and SCIPallocMemoryArray.
Referenced by extractSubgraphBuild().
◆ graph_contractTrace()
int graph_contractTrace | ( | int | node, |
const GRAPH * | graph | ||
) |
traces contraction back; returns traced node
- Parameters
-
node node to trace back from graph graph
Definition at line 1872 of file graph_history.c.
References GRAPH::contracttrace, GRAPH::grad, and graph_knot_isInRange().
Referenced by borderNodesContract(), and reinsertSubgraphTransferTerminals().
◆ graph_knot_hasContractTrace()
has the node a contract trace?
- Parameters
-
node node to trace back from graph graph
Definition at line 1859 of file graph_history.c.
References GRAPH::contracttrace, and graph_knot_isInRange().
Referenced by borderNodesContract(), and reinsertSubgraphTransferTerminals().
◆ graph_fixed_resetMoved()
void graph_fixed_resetMoved | ( | GRAPH * | g | ) |
resets
- Parameters
-
g the graph
Definition at line 1821 of file graph_history.c.
References FALSE, GRAPH::fixedcomponents, fixed_graph_components::movedFrom, and NULL.
Referenced by reinsertSubgraphTransferFixedHistory().
◆ graph_singletonAncestors_init()
SCIP_RETCODE graph_singletonAncestors_init | ( | SCIP * | scip, |
const GRAPH * | g, | ||
int | edge, | ||
SINGLETONANS * | singletonans | ||
) |
initializes singleton edge ancestors
- Parameters
-
scip SCIP data structure g the graph edge edge to initialize from singletonans singleton edge ancestors
Definition at line 684 of file graph_history.c.
References singleton_ancestors_edge::ancestors, GRAPH::ancestors, BMScopyMemoryArray, singleton_ancestors_edge::edge, FALSE, flipedge, graph_edge_getAncestors(), graph_edge_getPseudoAncestors(), graph_edge_nPseudoAncestors(), graph_typeIsUndirected(), singleton_ancestors_edge::npseudoancestors, NULL, singleton_ancestors_edge::pseudoancestors, singleton_ancestors_edge::revancestors, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPallocMemoryArray, and SCIPintListNodeAppendCopy().
Referenced by delPseudoDeleteVertex(), delPseudoEdgeDeleteEdge(), graph_knot_contract(), and pcReduceTermDeg2().
◆ graph_singletonAncestors_freeMembers()
void graph_singletonAncestors_freeMembers | ( | SCIP * | scip, |
SINGLETONANS * | singletonans | ||
) |
initializes singleton edge ancestors
- Parameters
-
scip SCIP data structure singletonans singleton edge ancestors
Definition at line 734 of file graph_history.c.
References singleton_ancestors_edge::ancestors, singleton_ancestors_edge::npseudoancestors, singleton_ancestors_edge::pseudoancestors, singleton_ancestors_edge::revancestors, SCIPfreeMemoryArray, and SCIPintListNodeFree().
Referenced by delPseudoDeleteVertex(), delPseudoEdgeDeleteEdge(), graph_knot_contract(), and pcReduceTermDeg2().
◆ graph_valid_ancestors()
valid ancestors (no conflicts)?
- Parameters
-
scip SCIP data structure g the graph
Definition at line 753 of file graph_history.c.
References GRAPH::ancestors, ancestorsMarkConflict(), ancestorsUnmarkConflict(), GRAPH::cost, EAT_FREE, GRAPH::edges, FALSE, fixedPseudoAncestorsAreValid(), graph_pc_isPcMw(), graph_typeIsUndirected(), MAX, NULL, GRAPH::oeat, GRAPH::orgedges, SCIP_Bool, SCIP_CALL_ABORT, SCIPallocBufferArray, SCIPfreeBufferArray, SCIPisEQ(), TRUE, and GRAPH::withInexactReductions.
Referenced by reduce_da(), and reduce_redLoopStp().
◆ graph_initAncestors()
SCIP_RETCODE graph_initAncestors | ( | SCIP * | scip, |
GRAPH * | g | ||
) |
initializes edge ancestors
- Parameters
-
scip SCIP data structure g the graph
Definition at line 975 of file graph_history.c.
References GRAPH::ancestors, graph_get_nEdges(), graph_typeIsUndirected(), Int_List_Node::index, NULL, Int_List_Node::parent, SCIP_CALL, SCIP_OKAY, and SCIPallocBlockMemory().
Referenced by graph_initHistory(), and graph_subgraphCompleteNewHistory().
◆ graph_initPseudoAncestors()
SCIP_RETCODE graph_initPseudoAncestors | ( | SCIP * | scip, |
GRAPH * | g | ||
) |
initializes pseudo ancestors
- Parameters
-
scip SCIP data structure g the graph
Definition at line 1049 of file graph_history.c.
References GRAPH::edges, graph_initPseudoAncestorsSized(), NULL, GRAPH::pseudoancestors, SCIP_CALL, and SCIP_OKAY.
Referenced by graph_initHistory(), packPseudoAncestors(), SCIP_DECL_PROBCOPY(), and SCIPprobdataCreateFromGraph().
◆ graph_initPseudoAncestorsSized()
SCIP_RETCODE graph_initPseudoAncestorsSized | ( | SCIP * | scip, |
int | nedges, | ||
GRAPH * | g | ||
) |
initializes pseudo ancestors with given size
- Parameters
-
scip SCIP data structure nedges number of edges to use g the graph
Definition at line 1064 of file graph_history.c.
References pseudo_ancestors::ans_halfedges, pseudo_ancestors::ans_nodes, blockedAncestors_init(), graph_pc_isPcMw(), pseudo_ancestors::halfnedges, GRAPH::knots, pseudo_ancestors::nAllPseudoancestors, pseudo_ancestors::nnodes, NULL, GRAPH::pseudoancestors, SCIP_CALL, SCIP_OKAY, and SCIPallocMemory.
Referenced by extractSubgraphInitHistory(), and graph_initPseudoAncestors().
◆ graph_freePseudoAncestors()
frees pseudo ancestors
- Parameters
-
scip SCIP data structure g the graph
Definition at line 1101 of file graph_history.c.
References pseudo_ancestors::ans_halfedges, pseudo_ancestors::ans_nodes, blockedAncestors_free(), pseudo_ancestors::nAllPseudoancestors, NULL, GRAPH::pseudoancestors, and SCIPfreeMemoryArray.
Referenced by graph_freeHistory().
◆ graph_edge_delPseudoAncestors()
frees pseudo ancestor block for given edge
- Parameters
-
scip SCIP data structure edge_free edge for which to free pseudo ancestors g the graph
Definition at line 1128 of file graph_history.c.
References pseudo_ancestors::ans_halfedges, blockedAncestors_freeBlock(), and GRAPH::pseudoancestors.
Referenced by graph_edge_delHistory(), graph_knot_contract(), graph_pseudoAncestors_appendMoveEdge(), and pseudoAncestorsCreation().
◆ graph_knot_delPseudoAncestors()
frees pseudo ancestor block for given node
- Parameters
-
scip SCIP data structure node_free node for which to free pseudo ancestors g the graph
Definition at line 1144 of file graph_history.c.
References pseudo_ancestors::ans_nodes, blockedAncestors_freeBlock(), graph_pc_isPcMw(), and GRAPH::pseudoancestors.
Referenced by graph_fixed_moveNodePc(), and graph_pseudoAncestors_appendMoveNode().
◆ graph_edge_printPseudoAncestors()
void graph_edge_printPseudoAncestors | ( | const GRAPH * | g, |
int | edge | ||
) |
prints pseudo ancestors for given edge
- Parameters
-
g the graph edge edge for which to return pseudo ancestors
Definition at line 1248 of file graph_history.c.
References pseudo_ancestors::ans_halfedges, blocked_pseudo_ancestor::blocks, GRAPH::pseudoancestors, and blocked_pseudo_ancestor::sizes.
◆ graph_knot_printPseudoAncestors()
void graph_knot_printPseudoAncestors | ( | const GRAPH * | g, |
int | node | ||
) |
prints pseudo ancestors for given node
- Parameters
-
g the graph node node for which to return pseudo ancestors
Definition at line 1226 of file graph_history.c.
References pseudo_ancestors::ans_nodes, blocked_pseudo_ancestor::blocks, GRAPH::pseudoancestors, and blocked_pseudo_ancestor::sizes.
◆ graph_edge_nPseudoAncestors()
int graph_edge_nPseudoAncestors | ( | const GRAPH * | g, |
int | edge | ||
) |
returns number of pseudo ancestors for given edge
- Parameters
-
g the graph edge edge for which to return number of pseudo ancestors
Definition at line 1159 of file graph_history.c.
References pseudo_ancestors::ans_halfedges, GRAPH::pseudoancestors, and blocked_pseudo_ancestor::sizes.
Referenced by extractSubgraphAddEdge(), extreduce_stackTopIsHashed(), extreduce_treeIsHashed(), graph_copyPseudoAncestors(), graph_fixed_addEdge(), graph_knot_contract(), graph_knot_replaceDeg2(), graph_printEdgeConflicts(), graph_singletonAncestors_init(), graph_subgraphCompleteNewHistory(), packPseudoAncestors(), pacliquesBuildMap(), pseudoAncestorsCreation(), pseudoAncestorsMerge(), pseudoDelDouble(), pseudoDelSingle(), and reduce_fixedConflicts().
◆ graph_knot_nPseudoAncestors()
int graph_knot_nPseudoAncestors | ( | const GRAPH * | g, |
int | node | ||
) |
returns number of pseudo ancestors for given node
- Parameters
-
g the graph node node for which to return number of pseudo ancestors
Definition at line 1174 of file graph_history.c.
References pseudo_ancestors::ans_nodes, GRAPH::pseudoancestors, and blocked_pseudo_ancestor::sizes.
Referenced by graph_fixed_addNodePc(), graph_printEdgeConflicts(), and pseudoAncestorsMergePc().
◆ graph_edge_getPseudoAncestors()
const int* graph_edge_getPseudoAncestors | ( | const GRAPH * | g, |
int | edge | ||
) |
returns pseudo ancestors for given edge
- Parameters
-
g the graph edge edge for which to return pseudo ancestors
Definition at line 1187 of file graph_history.c.
References pseudo_ancestors::ans_halfedges, blocked_pseudo_ancestor::blocks, and GRAPH::pseudoancestors.
Referenced by extractSubgraphAddEdge(), graph_copyPseudoAncestors(), graph_fixed_addEdge(), graph_knot_replaceDeg2(), graph_printEdgeConflicts(), graph_singletonAncestors_init(), graph_subgraphCompleteNewHistory(), packPseudoAncestors(), pacliquesBuildMap(), pseudoDelSingle(), and reduce_fixedConflicts().
◆ graph_edge_getAncestors()
returns pseudo ancestors for given edge
- Parameters
-
g the graph edge edge for which to return ancestors
Definition at line 1202 of file graph_history.c.
References GRAPH::ancestors, flipedge, graph_edge_isInRange(), graph_typeIsUndirected(), and NULL.
Referenced by computeHistory(), computeHistoryPcMw(), computeReducedProbSolutionBiased(), delPseudoPath(), extractSubgraphAddEdge(), graph_fixed_addEdge(), graph_knot_replaceDeg2(), graph_pc_contractNodeAncestors(), graph_singletonAncestors_init(), markAncestors(), markAncestorsConflict(), mwTraverseChain(), reduce_contract0Edges(), retransformReducedProbSolution(), ruleOutSubtree(), SCIPStpHeurRecExclude(), solstp_getOrg(), unmarkAncestors(), and unmarkAncestorsConflict().
◆ graph_knot_getPseudoAncestors()
const int* graph_knot_getPseudoAncestors | ( | const GRAPH * | g, |
int | node | ||
) |
returns pseudo ancestors for given node
- Parameters
-
g the graph node node for which to return pseudo ancestors
Definition at line 1269 of file graph_history.c.
References pseudo_ancestors::ans_nodes, blocked_pseudo_ancestor::blocks, and GRAPH::pseudoancestors.
Referenced by graph_fixed_addNodePc(), and graph_printEdgeConflicts().
◆ graph_getNpseudoAncestors()
int graph_getNpseudoAncestors | ( | const GRAPH * | g | ) |
returns number of pseudo-ancestors
- Parameters
-
g the graph
Definition at line 1282 of file graph_history.c.
References pseudo_ancestors::nAllPseudoancestors, and GRAPH::pseudoancestors.
Referenced by extractSubgraphInitHistory(), graph_copyPseudoAncestors(), packPseudoAncestors(), reinsertSubgraphTransferFixedHistory(), and sepaspecial_pacliquesInit().
◆ graph_addPseudoAncestor()
void graph_addPseudoAncestor | ( | GRAPH * | g, |
int * | pseudoancestor | ||
) |
adds new pseudo ancestor and provides index
- Parameters
-
g the graph (in/out) pseudoancestor gives the new pseudo ancestor index (out)
Definition at line 1293 of file graph_history.c.
References pseudo_ancestors::nAllPseudoancestors, and GRAPH::pseudoancestors.
Referenced by delPseudoDeleteVertex(), delPseudoPathCreatePseudoAncestorTuple(), pseudoAncestorsCreation(), pseudoAncestorsHash(), pseudoAncestorsMerge(), and testEdgeDeletion2_deprecated().
◆ graph_addPseudoAncestors()
void graph_addPseudoAncestors | ( | int | nadd, |
GRAPH * | g | ||
) |
adds n new pseudo ancestor
- Parameters
-
nadd number of ancestors to add g the graph (in/out)
Definition at line 1307 of file graph_history.c.
References pseudo_ancestors::nAllPseudoancestors, and GRAPH::pseudoancestors.
Referenced by extractSubgraphInitHistory(), graph_copyPseudoAncestors(), packPseudoAncestors(), and reinsertSubgraphTransferFixedHistory().
◆ graph_pseudoAncestors_appendCopyEdge()
SCIP_RETCODE graph_pseudoAncestors_appendCopyEdge | ( | SCIP * | scip, |
int | edge_target, | ||
int | edge_source, | ||
SCIP_Bool | revertIfConflict, | ||
GRAPH * | g, | ||
SCIP_Bool * | conflict | ||
) |
appends copy of pseudo ancestors of edge_source to edge_target
- Parameters
-
scip SCIP data structure edge_target edge target edge_source edge source revertIfConflict break on conflict g the graph conflict conflict?
Definition at line 1334 of file graph_history.c.
References pseudo_ancestors::ans_halfedges, blockedAncestors_appendCopy(), graph_pseudoAncestorsGetHashArraySize(), GRAPH::pseudoancestors, SCIP_CALL, and SCIP_OKAY.
Referenced by delPseudoPath(), and graph_pseudoAncestors_appendMoveEdge().
◆ graph_pseudoAncestors_appendCopyNode()
SCIP_RETCODE graph_pseudoAncestors_appendCopyNode | ( | SCIP * | scip, |
int | node_target, | ||
int | node_source, | ||
SCIP_Bool | revertIfConflict, | ||
GRAPH * | g, | ||
SCIP_Bool * | conflict | ||
) |
appends copy of pseudo ancestors of node source to node target
- Parameters
-
scip SCIP data structure node_target node target node_source node source revertIfConflict break on conflict g the graph conflict conflict?
Definition at line 1358 of file graph_history.c.
References pseudo_ancestors::ans_nodes, blockedAncestors_appendCopy(), graph_pseudoAncestorsGetHashArraySize(), GRAPH::pseudoancestors, SCIP_CALL, and SCIP_OKAY.
Referenced by graph_pseudoAncestors_appendMoveNode().
◆ graph_pseudoAncestors_appendCopyNodeToEdge()
SCIP_RETCODE graph_pseudoAncestors_appendCopyNodeToEdge | ( | SCIP * | scip, |
int | edge_target, | ||
int | node_source, | ||
SCIP_Bool | revertIfConflict, | ||
GRAPH * | g, | ||
SCIP_Bool * | conflict | ||
) |
appends copy of pseudo ancestors of node source to edge target
- Parameters
-
scip SCIP data structure edge_target edge target node_source node source revertIfConflict break on conflict g the graph conflict conflict?
Definition at line 1380 of file graph_history.c.
References pseudo_ancestors::ans_halfedges, pseudo_ancestors::ans_nodes, blockedAncestors_appendCopy(), graph_pseudoAncestorsGetHashArraySize(), GRAPH::pseudoancestors, SCIP_CALL, and SCIP_OKAY.
Referenced by graph_edge_reinsert(), and graph_knot_replaceDeg2().
◆ graph_pseudoAncestors_appendCopyEdgeToNode()
SCIP_RETCODE graph_pseudoAncestors_appendCopyEdgeToNode | ( | SCIP * | scip, |
int | node_target, | ||
int | edge_source, | ||
SCIP_Bool | revertIfConflict, | ||
GRAPH * | g, | ||
SCIP_Bool * | conflict | ||
) |
appends copy of pseudo ancestors of edge source to node target
- Parameters
-
scip SCIP data structure node_target node target edge_source edge source revertIfConflict break on conflict g the graph conflict conflict?
Definition at line 1403 of file graph_history.c.
References pseudo_ancestors::ans_halfedges, pseudo_ancestors::ans_nodes, blockedAncestors_appendCopy(), graph_pseudoAncestorsGetHashArraySize(), GRAPH::pseudoancestors, SCIP_CALL, and SCIP_OKAY.
◆ graph_pseudoAncestors_appendCopySingToEdge()
SCIP_RETCODE graph_pseudoAncestors_appendCopySingToEdge | ( | SCIP * | scip, |
int | edge_target, | ||
const SINGLETONANS * | source, | ||
SCIP_Bool | revertIfConflict, | ||
GRAPH * | g, | ||
SCIP_Bool * | conflict | ||
) |
appends given of pseudo ancestors to edge target
- Parameters
-
scip SCIP data structure edge_target edge target source source revertIfConflict break on conflict g the graph conflict conflict?
Definition at line 1426 of file graph_history.c.
References pseudo_ancestors::ans_halfedges, blockedAncestors_appendArray(), FALSE, graph_pseudoAncestorsGetHashArraySize(), singleton_ancestors_edge::npseudoancestors, singleton_ancestors_edge::pseudoancestors, GRAPH::pseudoancestors, SCIP_CALL, and SCIP_OKAY.
Referenced by graph_edge_reinsert(), and graph_knot_contract().
◆ graph_pseudoAncestors_appendCopyArrayToEdge()
SCIP_RETCODE graph_pseudoAncestors_appendCopyArrayToEdge | ( | SCIP * | scip, |
int | edge_target, | ||
const int * | ancestors, | ||
int | nancestors, | ||
GRAPH * | g, | ||
SCIP_Bool * | conflict | ||
) |
appends copy of pseudo ancestors in array form to edge target
- Parameters
-
scip SCIP data structure edge_target edge target ancestors pseudo ancestors array nancestors number of ancestors g the graph conflict conflict?
Definition at line 1458 of file graph_history.c.
References pseudo_ancestors::ans_halfedges, blockedAncestors_appendArray(), FALSE, graph_pseudoAncestorsGetHashArraySize(), GRAPH::pseudoancestors, SCIP_Bool, SCIP_CALL, and SCIP_OKAY.
Referenced by extractSubgraphAddEdge(), graph_copyPseudoAncestors(), graph_knot_replaceDeg2(), graph_subgraphCompleteNewHistory(), and packPseudoAncestors().
◆ graph_pseudoAncestors_appendMoveEdge()
SCIP_RETCODE graph_pseudoAncestors_appendMoveEdge | ( | SCIP * | scip, |
int | edge_target, | ||
int | edge_source, | ||
SCIP_Bool | revertIfConflict, | ||
GRAPH * | g, | ||
SCIP_Bool * | conflict | ||
) |
appends pseudo ancestors of edge_source to edge_target, ancestors for edge_source are deleted
- Parameters
-
scip SCIP data structure edge_target target edge edge_source source edge revertIfConflict break on conflict g the graph conflict conflict?
Definition at line 1489 of file graph_history.c.
References graph_edge_delPseudoAncestors(), graph_pseudoAncestors_appendCopyEdge(), SCIP_CALL, and SCIP_OKAY.
Referenced by pseudoAncestorsMerge().
◆ graph_pseudoAncestors_appendMoveNode()
SCIP_RETCODE graph_pseudoAncestors_appendMoveNode | ( | SCIP * | scip, |
int | node_target, | ||
int | node_source, | ||
SCIP_Bool | revertIfConflict, | ||
GRAPH * | g, | ||
SCIP_Bool * | conflict | ||
) |
appends pseudo ancestors of node source to node target, ancestors for source are deleted
- Parameters
-
scip SCIP data structure node_target target node node_source source node revertIfConflict break on conflict g the graph conflict conflict?
Definition at line 1506 of file graph_history.c.
References graph_knot_delPseudoAncestors(), graph_pseudoAncestors_appendCopyNode(), SCIP_CALL, and SCIP_OKAY.
Referenced by pseudoAncestorsMergePc().
◆ graph_pseudoAncestors_addToEdge()
SCIP_RETCODE graph_pseudoAncestors_addToEdge | ( | SCIP * | scip, |
int | edge_target, | ||
int | ancestor, | ||
GRAPH * | g | ||
) |
adds pseudo ancestor to ancestor list of given edge
- Parameters
-
scip SCIP data structure edge_target edge for which to add pseudo ancestor ancestor (index of) pseudo ancestor g the graph
Definition at line 1523 of file graph_history.c.
References pseudo_ancestors::ans_halfedges, blockedAncestors_addAncestor(), graph_pseudoAncestorsGetHashArraySize(), pseudo_ancestors::halfnedges, pseudo_ancestors::nAllPseudoancestors, GRAPH::pseudoancestors, SCIP_CALL, and SCIP_OKAY.
Referenced by delPseudoDeleteVertex(), delPseudoPathCreatePseudoAncestorTuple(), pseudoAncestorsCreation(), pseudoAncestorsHash(), pseudoAncestorsMerge(), and testEdgeDeletion2_deprecated().
◆ graph_pseudoAncestors_addToNode()
SCIP_RETCODE graph_pseudoAncestors_addToNode | ( | SCIP * | scip, |
int | node_target, | ||
int | ancestor, | ||
GRAPH * | g | ||
) |
adds pseudo ancestor to ancestor list of given node
- Parameters
-
scip SCIP data structure node_target node for which to add pseudo ancestor ancestor (index of) pseudo ancestor g the graph
Definition at line 1545 of file graph_history.c.
References pseudo_ancestors::ans_nodes, blockedAncestors_addAncestor(), graph_pc_isPcMw(), graph_pc_knotIsDummyTerm(), graph_pseudoAncestorsGetHashArraySize(), pseudo_ancestors::nAllPseudoancestors, pseudo_ancestors::nnodes, GRAPH::pseudoancestors, SCIP_CALL, and SCIP_OKAY.
Referenced by pseudoAncestorsHashPc(), and pseudoAncestorsMergePc().
◆ graph_free_pseudoAncestorsBlock()
SCIP_RETCODE graph_free_pseudoAncestorsBlock | ( | SCIP * | , |
int | , | ||
GRAPH * | |||
) |
◆ graph_pseudoAncestorsGetHashArraySize()
int graph_pseudoAncestorsGetHashArraySize | ( | const PSEUDOANS * | pseudoancestors | ) |
returns minimum required number for hash array
- Parameters
-
pseudoancestors pseudo-ancestors
Definition at line 1321 of file graph_history.c.
References getNextPow2(), and pseudo_ancestors::nAllPseudoancestors.
Referenced by delPseudoCheckReplacement(), delPseudoEdgeGetReplaceEdges(), delPseudoGetReplaceEdges(), extreduce_checkComponent(), extreduce_reddataIsClean(), fixedPseudoAncestorsAreValid(), generalStarSetUp(), graph_pseudoAncestors_addToEdge(), graph_pseudoAncestors_addToNode(), graph_pseudoAncestors_appendCopyArrayToEdge(), graph_pseudoAncestors_appendCopyEdge(), graph_pseudoAncestors_appendCopyEdgeToNode(), graph_pseudoAncestors_appendCopyNode(), graph_pseudoAncestors_appendCopyNodeToEdge(), graph_pseudoAncestors_appendCopySingToEdge(), graph_pseudoAncestors_edgesInConflict(), graph_valid_pseudoAncestors(), pseudoAncestorsHash(), pseudoAncestorsHashPc(), and reduce_fixedConflicts().
◆ graph_pseudoAncestors_hashNode()
void graph_pseudoAncestors_hashNode | ( | const PSEUDOANS * | pseudoancestors, |
int | node, | ||
int * | hasharr | ||
) |
hash ancestors of given node
- Parameters
-
pseudoancestors pseudo-ancestors node node for which to hash hasharr hash array
Definition at line 840 of file graph_history.c.
References pseudo_ancestors::ans_nodes, blockedAncestors_hash(), and nnodes.
Referenced by pseudoAncestorsHashPc().
◆ graph_pseudoAncestors_hashEdge()
void graph_pseudoAncestors_hashEdge | ( | const PSEUDOANS * | pseudoancestors, |
int | edge, | ||
int * | hasharr | ||
) |
hash ancestors of given edge
- Parameters
-
pseudoancestors pseudo-ancestors edge edge for which to hash hasharr hash array
Definition at line 824 of file graph_history.c.
References pseudo_ancestors::ans_halfedges, and blockedAncestors_hash().
Referenced by delPseudoCheckReplacement(), delPseudoEdgeGetReplaceEdges(), delPseudoGetReplaceEdges(), generalStarSetUp(), and pseudoAncestorsHash().
◆ graph_pseudoAncestors_unhashNode()
void graph_pseudoAncestors_unhashNode | ( | const PSEUDOANS * | pseudoancestors, |
int | node, | ||
int * | hasharr | ||
) |
hash ancestors of given node
- Parameters
-
pseudoancestors pseudo-ancestors node node for which to unhash hasharr hash array
Definition at line 870 of file graph_history.c.
References pseudo_ancestors::ans_nodes, blockedAncestors_unhashPartial(), and nnodes.
Referenced by pseudoAncestorsHashPc().
◆ graph_pseudoAncestors_unhashEdge()
void graph_pseudoAncestors_unhashEdge | ( | const PSEUDOANS * | pseudoancestors, |
int | edge, | ||
int * | hasharr | ||
) |
unhash ancestors of given edge
- Parameters
-
pseudoancestors pseudo-ancestors edge edge for which to unhash hasharr hash array
Definition at line 854 of file graph_history.c.
References pseudo_ancestors::ans_halfedges, and blockedAncestors_unhashPartial().
Referenced by delPseudoCheckReplacement(), delPseudoEdgeGetReplaceEdges(), delPseudoGetReplaceEdges(), extreduce_extCompClean(), extTreeStackTopAdd(), extTreeStackTopRemove(), extUnhashInitialComponent(), generalStarSetUp(), graph_pseudoAncestors_edgesInConflict(), and pseudoAncestorsHash().
◆ graph_pseudoAncestors_hashNodeDirty()
void graph_pseudoAncestors_hashNodeDirty | ( | const PSEUDOANS * | pseudoancestors, |
int | node, | ||
SCIP_Bool | revertIfConflict, | ||
SCIP_Bool * | conflict, | ||
int * | hasharr | ||
) |
hash ancestors of given node with possible conflicts
- Parameters
-
pseudoancestors pseudo-ancestors node node for which to hash revertIfConflict revert on conflict? conflict conflict? hasharr hash array
Definition at line 902 of file graph_history.c.
References pseudo_ancestors::ans_nodes, blockedAncestors_hashDirty(), and nnodes.
Referenced by pseudoAncestorsHashPc().
◆ graph_pseudoAncestors_hashEdgeDirty()
void graph_pseudoAncestors_hashEdgeDirty | ( | const PSEUDOANS * | pseudoancestors, |
int | edge, | ||
SCIP_Bool | revertIfConflict, | ||
SCIP_Bool * | conflict, | ||
int * | hasharr | ||
) |
hash ancestors of given edge with possible conflicts
- Parameters
-
pseudoancestors pseudo-ancestors edge edge for which to hash revertIfConflict revert on conflict? conflict conflict? hasharr hash array
Definition at line 884 of file graph_history.c.
References pseudo_ancestors::ans_halfedges, and blockedAncestors_hashDirty().
Referenced by extTreeStackTopAdd(), generalStarSetUp(), graph_pseudoAncestors_edgesInConflict(), and pseudoAncestorsHash().
◆ graph_pseudoAncestors_unhashNodeDirty()
void graph_pseudoAncestors_unhashNodeDirty | ( | const PSEUDOANS * | pseudoancestors, |
int | node, | ||
int * | hasharr | ||
) |
hash ancestors of given node with possible conflicts
- Parameters
-
pseudoancestors pseudo-ancestors node node for which to unhash hasharr hash array
Definition at line 934 of file graph_history.c.
References pseudo_ancestors::ans_nodes, blockedAncestors_unhashDirty(), and nnodes.
◆ graph_pseudoAncestors_unhashEdgeDirty()
void graph_pseudoAncestors_unhashEdgeDirty | ( | const PSEUDOANS * | pseudoancestors, |
int | edge, | ||
int * | hasharr | ||
) |
unhash ancestors of given edge with possible conflicts
- Parameters
-
pseudoancestors pseudo-ancestors edge edge for which to unhash hasharr hash array
Definition at line 918 of file graph_history.c.
References pseudo_ancestors::ans_halfedges, and blockedAncestors_unhashDirty().
◆ graph_pseudoAncestors_edgeIsHashed()
SCIP_Bool graph_pseudoAncestors_edgeIsHashed | ( | const PSEUDOANS * | pseudoancestors, |
int | edge, | ||
const int * | hasharr | ||
) |
any ancestors of given edge already hashed?
- Parameters
-
pseudoancestors pseudo-ancestors edge edge for which to check hasharr hash array
Definition at line 948 of file graph_history.c.
References pseudo_ancestors::ans_halfedges, and blockedAncestors_hashIsHitBlock().
Referenced by delPseudoCheckReplacement(), delPseudoEdgeGetReplaceEdges(), delPseudoGetReplaceEdges(), extreduce_stackTopIsHashed(), extreduce_treeIsHashed(), and extTreeRuleOutEdgeSimple().
◆ graph_pseudoAncestors_nodeIsHashed()
SCIP_Bool graph_pseudoAncestors_nodeIsHashed | ( | const PSEUDOANS * | pseudoancestors, |
int | node, | ||
const int * | hasharr | ||
) |
any ancestors of given node already hashed?
- Parameters
-
pseudoancestors pseudo-ancestors node node for which to check hasharr hash array
Definition at line 962 of file graph_history.c.
References pseudo_ancestors::ans_nodes, and blockedAncestors_hashIsHitBlock().
◆ graph_pseudoAncestors_edgesInConflict()
SCIP_Bool graph_pseudoAncestors_edgesInConflict | ( | SCIP * | scip, |
const GRAPH * | g, | ||
const int * | edges, | ||
int | nedges | ||
) |
any ancestors of given edges in conflict?
- Parameters
-
scip SCIP data structure g the graph edges edges to check nedges number of edges to check
Definition at line 1010 of file graph_history.c.
References FALSE, graph_pseudoAncestors_hashEdgeDirty(), graph_pseudoAncestors_unhashEdge(), graph_pseudoAncestorsGetHashArraySize(), GRAPH::knots, GRAPH::pseudoancestors, SCIP_Bool, SCIP_CALL_ABORT, SCIPallocCleanBufferArray, SCIPfreeCleanBufferArray, and TRUE.
Referenced by bdkStarIsReplacableDeg3(), bdkStarIsReplacableDegGe4(), isPseudoDeletable(), and isPseudoDeletableDeg3().
◆ graph_valid_pseudoAncestors()
valid pseudo-ancestors (no conflicts)?
- Parameters
-
scip SCIP data structure g the graph
Definition at line 1569 of file graph_history.c.
References pseudo_ancestors::ans_halfedges, pseudo_ancestors::ans_nodes, blockedAncestors_isValid(), FALSE, graph_pc_isPcMw(), graph_pseudoAncestorsGetHashArraySize(), GRAPH::pseudoancestors, SCIP_Bool, SCIP_OKAY, and TRUE.
Referenced by graph_knot_replaceDeg2().
◆ graph_init_fixed()
SCIP_RETCODE graph_init_fixed | ( | SCIP * | scip, |
GRAPH * | g | ||
) |
initializes fixed
- Parameters
-
scip SCIP data structure g the graph
Definition at line 1618 of file graph_history.c.
References FALSE, GRAPH::fixedcomponents, fixed_graph_components::fixedges, fixed_graph_components::fixpseudonodes, fixed_graph_components::movedFrom, fixed_graph_components::nfixnodes, NULL, SCIP_CALL, SCIP_OKAY, and SCIPallocMemory.
Referenced by graph_copyFixed(), and graph_fixed_add().
◆ graph_free_fixed()
frees fixed
- Parameters
-
scip SCIP data structure g the graph
Definition at line 1642 of file graph_history.c.
References GRAPH::fixedcomponents, fixed_graph_components::fixedges, fixed_graph_components::fixpseudonodes, fixed_graph_components::nfixnodes, NULL, Int_List_Node::parent, SCIPfreeBlockMemory, SCIPfreeBlockMemoryArray, and SCIPfreeMemory.
Referenced by graph_freeHistoryDeep(), and reinsertSubgraphTransferFixedHistory().
◆ graph_free_fixedEdgesOnly()
frees fixed edges
- Parameters
-
scip SCIP data structure g the graph
Definition at line 1671 of file graph_history.c.
References GRAPH::fixedcomponents, fixed_graph_components::fixedges, fixed_graph_components::nfixnodes, NULL, Int_List_Node::parent, and SCIPfreeBlockMemory.
Referenced by graph_subgraphCompleteNewHistory().
◆ graph_fixed_add()
SCIP_RETCODE graph_fixed_add | ( | SCIP * | scip, |
IDX * | edges, | ||
const int * | pseudonodes, | ||
int | npseudonodes, | ||
GRAPH * | g | ||
) |
adds new fixed components
- Parameters
-
scip SCIP data structure edges edge to add or NULL pseudonodes nodes to add npseudonodes number of nodes to add g the graph
Definition at line 1698 of file graph_history.c.
References FALSE, GRAPH::fixedcomponents, fixed_graph_components::fixedges, fixedPseudoAncestorsAreValid(), fixed_graph_components::fixpseudonodes, graph_init_fixed(), fixed_graph_components::movedFrom, fixed_graph_components::nfixnodes, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPallocBlockMemoryArray, SCIPintListNodeAppendCopy(), SCIPreallocBlockMemoryArray, and GRAPH::withInexactReductions.
Referenced by graph_fixed_addEdge(), and graph_fixed_addNodePc().
◆ graph_fixed_addEdge()
SCIP_RETCODE graph_fixed_addEdge | ( | SCIP * | scip, |
int | edge, | ||
GRAPH * | g | ||
) |
adds ancestors from given edges
- Parameters
-
scip SCIP data structure edge edge g the graph
Definition at line 1760 of file graph_history.c.
References GRAPH::ancestors, graph_edge_getAncestors(), graph_edge_getPseudoAncestors(), graph_edge_nPseudoAncestors(), graph_fixed_add(), SCIP_CALL, and SCIP_OKAY.
Referenced by contractEdgeWithFixedEnd(), graph_knot_contractFixed(), reduce_contract0Edges(), and reduce_simple().
◆ graph_fixed_addNodePc()
SCIP_RETCODE graph_fixed_addNodePc | ( | SCIP * | scip, |
int | node, | ||
GRAPH * | g | ||
) |
adds ancestors from given edges
- Parameters
-
scip SCIP data structure node node g the graph
Definition at line 1778 of file graph_history.c.
References GRAPH::ancestors, graph_fixed_add(), graph_knot_getPseudoAncestors(), graph_knot_nPseudoAncestors(), graph_pc_isPcMw(), graph_pc_knotIsDummyTerm(), GRAPH::pcancestors, SCIP_CALL, and SCIP_OKAY.
Referenced by graph_fixed_moveNodePc(), and packPcMwVanished().
◆ graph_fixed_moveNodePc()
SCIP_RETCODE graph_fixed_moveNodePc | ( | SCIP * | scip, |
int | node, | ||
GRAPH * | g | ||
) |
moves ancestors from given edges
- Parameters
-
scip SCIP data structure node node g the graph
Definition at line 1798 of file graph_history.c.
References graph_fixed_addNodePc(), graph_knot_delPseudoAncestors(), graph_pc_isPcMw(), GRAPH::pcancestors, SCIP_CALL, SCIP_OKAY, and SCIPintListNodeFree().
Referenced by contractEdgeWithFixedEnd().
◆ graph_copyFixed()
SCIP_RETCODE graph_copyFixed | ( | SCIP * | scip, |
GRAPH * | g, | ||
SCIP_Bool | moveFixedEdges, | ||
GRAPH * | g_copy | ||
) |
copies and potentially moves fixed components
- Parameters
-
scip SCIP data structure g the original graph moveFixedEdges move fixed edges? If false, nothing is done! g_copy the copied graph
Definition at line 1895 of file graph_history.c.
References BMScopyMemoryArray, GRAPH::fixedcomponents, fixed_graph_components::fixedges, fixed_graph_components::fixpseudonodes, graph_init_fixed(), fixed_graph_components::movedFrom, fixed_graph_components::nfixnodes, NULL, SCIP_CALL, SCIP_OKAY, SCIPallocBlockMemoryArray, and TRUE.
Referenced by extractSubgraphInitHistory().
◆ graph_getFixedges()
gets fixed edges
- Parameters
-
g the graph
Definition at line 1944 of file graph_history.c.
References GRAPH::fixedcomponents, fixed_graph_components::fixedges, and NULL.
Referenced by computeHistory(), computeHistoryPcMw(), reduce_exec(), retransformReducedProbSolution(), SCIPStpHeurRecExclude(), solstp_getOrg(), updateEdgestateFromRed(), and updateEdgestateFromRedPcmw().
◆ graph_getFixpseudonodes()
gets fixed pseudo eliminated nodes
- Parameters
-
scip SCIP data structure g the graph
Definition at line 1957 of file graph_history.c.
References GRAPH::fixedcomponents, fixed_graph_components::fixpseudonodes, and NULL.
Referenced by fixedPseudoAncestorsAreValid(), and reduce_fixedConflicts().
◆ graph_getNfixpseudonodes()
int graph_getNfixpseudonodes | ( | const GRAPH * | g | ) |
gets number of fixed pseudo eliminated nodes
- Parameters
-
g the graph
Definition at line 1971 of file graph_history.c.
References GRAPH::fixedcomponents, and fixed_graph_components::nfixnodes.
Referenced by fixedPseudoAncestorsAreValid(), graph_printEdgeConflicts(), reduce_fixedConflicts(), and reinsertSubgraphTransferFixedHistory().
◆ graph_termsReachable()
SCIP_RETCODE graph_termsReachable | ( | SCIP * | scip, |
const GRAPH * | g, | ||
SCIP_Bool * | reachable | ||
) |
checks whether all terminals are reachable from root
- Parameters
-
scip scip struct g the new graph reachable are they reachable?
Definition at line 370 of file graph_util.c.
References FALSE, graph_trail_arr(), Is_term, GRAPH::knots, nnodes, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPallocBufferArray, SCIPfreeBufferArray, GRAPH::source, GRAPH::term, and TRUE.
◆ graph_findCentralTerminal()
SCIP_RETCODE graph_findCentralTerminal | ( | SCIP * | , |
const GRAPH * | , | ||
int | , | ||
int * | |||
) |
Definition at line 410 of file graph_util.c.
References shortest_path::dist, GRAPH::edges, FARAWAY, FSP_MODE, GRAPH::grad, graph_get_nNodes(), graph_knotIsNWLeaf(), graph_path_exec(), Is_term, GRAPH::layers, GRAPH::mark, nnodes, NULL, SCIP_CALL, SCIP_OKAY, SCIP_VERBLEVEL_HIGH, SCIPallocBufferArray, SCIPfreeBufferArray, SCIPisEQ(), SCIPisLT(), SCIPverbMessage(), GRAPH::source, STP_CENTER_ALL, STP_CENTER_DEG, STP_CENTER_MIN, STP_CENTER_OK, STP_CENTER_SUM, STP_NWPTSPG, GRAPH::stp_type, GRAPH::term, and TRUE.
Referenced by SCIPprobdataCreateFromGraph().
◆ graph_trail_arr()
SCIP_RETCODE graph_trail_arr | ( | SCIP * | scip, |
const GRAPH * | g, | ||
int | start, | ||
SCIP_Bool * | nodevisited | ||
) |
traverses the graph from vertex 'start' and marks all reached nodes
- Parameters
-
scip SCIP g the new graph start node to start from nodevisited marks which node has been visited
Definition at line 336 of file graph_util.c.
References FALSE, SCIP_OKAY, and trail().
Referenced by graph_termsReachable(), graph_valid(), graph_validInput(), reduce_unconnected(), and reduce_unconnectedInfeas().
◆ graph_trail_costAware()
SCIP_RETCODE graph_trail_costAware | ( | SCIP * | scip, |
const GRAPH * | g, | ||
int | start, | ||
SCIP_Bool * | nodevisited | ||
) |
traverses the graph and marks all reached nodes, does not take edge of cost >= FARAWAY
- Parameters
-
scip SCIP g the new graph start node to start from nodevisited marks which node has been visited
Definition at line 353 of file graph_util.c.
References SCIP_OKAY, trail(), and TRUE.
Referenced by graphisValidPcMw(), pcmwUpdate(), and reduce_unconnectedForDirected().
◆ graph_heap_create()
SCIP_RETCODE graph_heap_create | ( | SCIP * | scip, |
int | capacity, | ||
int * | position, | ||
DENTRY * | entries, | ||
DHEAP ** | heap | ||
) |
creates new heap. If entries array is provided, it must be of size capacity + 2
- Parameters
-
scip SCIP capacity heap capacity position heap position array or NULL entries entries array or NULL heap the heap
Definition at line 992 of file graph_util.c.
References DHEAP_MAX_KEY, DHEAP_MIN_KEY, graph_heap_clean(), dijkstra_heap_entry::key, SCIP_CALL, SCIP_OKAY, SCIPallocMemory, SCIPallocMemoryArray, and TRUE.
Referenced by checkSdWalk(), cmst_init(), distCloseNodesCompute(), distGetRestricted(), dpsolverInitData(), extreduce_distDataInit(), graph_dijkLimited_init(), graph_vnoiCompute(), graph_vnoiComputeImplied(), mst_init(), reduce_redLoopPc(), SCIPStpHeurLocalExtendPcMwOut(), stptest_dheap(), and tmBaseInit().
◆ graph_heap_free()
frees the heap
- Parameters
-
scip SCIP freePositions free positions array? freeEntries free entries array? heap the heap
Definition at line 1034 of file graph_util.c.
References SCIPfreeMemory, and SCIPfreeMemoryArray.
Referenced by checkSdWalk(), cmst_free(), distCloseNodesCompute(), distGetRestricted(), dpsolverFreeData(), extreduce_distDataFree(), graph_dijkLimited_free(), graph_vnoiCompute(), graph_vnoiComputeImplied(), mst_free(), reduce_redLoopPc(), SCIPStpHeurLocalExtendPcMwOut(), stptest_dheap(), and tmBaseFree().
◆ graph_heap_deleteMin()
deletes heap minimum
- Parameters
-
node pointer to value of minimum key pointer to key of minimum heap the heap
Definition at line 1053 of file graph_util.c.
References dijkstra_heap::entries, graph_heap_deleteMinGetNode(), and dijkstra_heap_entry::key.
Referenced by propagateUBs(), subtreesExtend(), and subtreesRemoveNonValids().
◆ graph_heap_deleteMinGetNode()
void graph_heap_deleteMinGetNode | ( | int * | node, |
DHEAP * | heap | ||
) |
deletes heap minimum
- Parameters
-
node pointer to node stored in minimum (set by method) heap the heap
Definition at line 1065 of file graph_util.c.
References graph_heap_deleteMinReturnNode().
Referenced by graph_heap_deleteMin(), and stptest_dheap().
◆ graph_heap_deleteMinReturnNode()
int graph_heap_deleteMinReturnNode | ( | DHEAP * | heap | ) |
deletes heap minimum and returns corresponding node
- Parameters
-
heap the heap
Definition at line 1076 of file graph_util.c.
References CONNECT, DHEAP_MAX_KEY, dijkstra_heap::entries, dijkstra_heap::position, SCIP_Real, and dijkstra_heap::size.
Referenced by closeNodesRunCompute(), cmst_computeMst(), computeOnMarked_exec(), computeSteinerTree_exec(), computeSteinerTree_execBiased(), computeSteinerTree_execDirected(), computeSteinerTree_execPcMw(), computeSteinerTree_execPcMwFull(), computeSteinerTree_execRpcMw(), distCloseNodesCompute(), distGetRestricted(), graph_heap_deleteMinGetNode(), graph_path_st_pcmw_extendOut(), graph_pathInLimitedExec(), graph_sdCloseNodesBiased(), graph_sdStar(), graph_sdStarBiased(), graph_sdWalks_csr(), graph_sdWalksTriangle(), sdCliqueStarComputeSds(), vnoiCompute(), and vnoiComputeImplied().
◆ graph_heap_clean()
clean the heap
- Parameters
-
cleanposition clean position array? heap the heap
Definition at line 938 of file graph_util.c.
References dijkstra_heap::capacity, graph_heap_isClean(), dijkstra_heap::position, SCIP_Bool, dijkstra_heap::size, and UNKNOWN.
Referenced by computeOnMarked_init(), computeSteinerTree_init(), graph_dijkLimited_clean(), graph_dijkLimited_reset(), graph_heap_create(), graph_path_st_pcmw_extendOut(), propagateUBs(), reduce_sdStar(), reduce_sdStarPc(), reduce_sdStarPc2(), reduce_sdWalk_csr(), reduce_sdWalkTriangle(), sdStarReset(), stptest_dheap(), subtreesExtend(), and subtreesRemoveNonValids().
◆ graph_heap_correct()
corrects node position in heap according to new key (or newly inserts the node)
- Parameters
-
node the node newkey the new key (needs to be smaller than current one) heap the heap
Definition at line 1166 of file graph_util.c.
References dijkstra_heap::capacity, CONNECT, DHEAP_MAX_KEY, DHEAP_MIN_KEY, dijkstra_heap::entries, GE, dijkstra_heap::position, SCIP_Real, dijkstra_heap::size, and UNKNOWN.
Referenced by closeNodesRunCompute(), closeNodesRunInit(), cmst_computeMst(), computeOnMarked_exec(), computeOnMarked_init(), computeSteinerTree_connectNode(), computeSteinerTree_connectPseudoTerm(), computeSteinerTree_connectTerminal(), computeSteinerTree_exec(), computeSteinerTree_execBiased(), computeSteinerTree_execDirected(), computeSteinerTree_execPcMw(), computeSteinerTree_execPcMwFull(), computeSteinerTree_execRpcMw(), computeSteinerTree_init(), distCloseNodesCompute(), distGetRestricted(), graph_path_st_pcmw_extendOut(), graph_pathInLimitedExec(), graph_sdCloseNodesBiased(), graph_sdStar(), graph_sdStarBiased(), graph_sdWalks_csr(), graph_sdWalksTriangle(), propagateUBs(), sdCliqueStarInit(), sdCliqueStarUpdateNodeDist(), stptest_dheap(), subtreesExtend(), subtreesRemoveNonValids(), vnoiCompute(), vnoiComputeImplied(), and vnoiInit().
◆ graph_heap_isClean()
is the heap clean?
- Parameters
-
heap the heap
Definition at line 962 of file graph_util.c.
References dijkstra_heap::capacity, FALSE, dijkstra_heap::position, SCIPdebugMessage, dijkstra_heap::size, TRUE, and UNKNOWN.
Referenced by cmst_computeMst(), graph_heap_clean(), sdCliqueStarInit(), sdStarInit(), and vnoiInit().
◆ graph_init_csr()
SCIP_RETCODE graph_init_csr | ( | SCIP * | scip, |
GRAPH * | g | ||
) |
initializes CSR storage of graph
- Parameters
-
scip SCIP data structure g the graph
Definition at line 1581 of file graph_util.c.
References GRAPH::cost, GRAPH::csr_storage, GRAPH::edges, graph_csr_alloc(), graph_csr_build(), graph_valid_csr(), GRAPH::knots, NULL, SCIP_CALL, SCIP_OKAY, and TRUE.
Referenced by dpborder_solve(), and SCIPStpHeurLocalExtendPcMwOut().
◆ graph_init_csrWithEdgeId()
SCIP_RETCODE graph_init_csrWithEdgeId | ( | SCIP * | scip, |
GRAPH * | g | ||
) |
initializes CSR storage of graph
- Parameters
-
scip SCIP data structure g the graph
Definition at line 1603 of file graph_util.c.
References GRAPH::cost, GRAPH::csr_storage, GRAPH::edges, graph_csr_allocWithEdgeId(), graph_csr_build(), graph_valid_csr(), GRAPH::knots, NULL, SCIP_CALL, SCIP_OKAY, and TRUE.
Referenced by dpborder_probePotential(), and dpterms_solve().
◆ graph_free_csr()
frees dynamic CSR storage of graph
- Parameters
-
scip SCIP data structure g the graph
Definition at line 1623 of file graph_util.c.
References GRAPH::csr_storage, graph_csr_free(), and NULL.
Referenced by dpborder_probePotential(), dpborder_solve(), dpterms_solve(), graph_free(), and SCIPStpHeurLocalExtendPcMwOut().
◆ graph_csr_alloc()
SCIP_RETCODE graph_csr_alloc | ( | SCIP * | scip, |
int | nnodes, | ||
int | nedges, | ||
CSR ** | csr | ||
) |
allocates empty (and invalid!) CSR storage
- Parameters
-
scip SCIP data structure nnodes nodes nedges edges csr CSR
Definition at line 1231 of file graph_util.c.
References csr_storage::cost, csr_storage::edge_id, csr_storage::head, csr_storage::nedges_max, nnodes, csr_storage::nnodes, NULL, SCIP_CALL, SCIP_OKAY, SCIPallocMemory, SCIPallocMemoryArray, and csr_storage::start.
Referenced by csrdepoTest2(), dcmstTest1(), dcmstTest2(), dcmstTest2b(), dcmstTest3(), extreduce_contractionInit(), graph_csr_allocWithEdgeId(), and graph_init_csr().
◆ graph_csr_allocWithEdgeId()
SCIP_RETCODE graph_csr_allocWithEdgeId | ( | SCIP * | scip, |
int | nnodes, | ||
int | nedges, | ||
CSR ** | csr | ||
) |
allocates empty (and invalid!) CSR storage
- Parameters
-
scip SCIP data structure nnodes nodes nedges edges csr CSR
Definition at line 1270 of file graph_util.c.
References csr_storage::edge_id, graph_csr_alloc(), NULL, SCIP_CALL, SCIP_OKAY, and SCIPallocMemoryArray.
Referenced by graph_init_csrWithEdgeId(), mst_init(), and tmBaseInit().
◆ graph_csr_copy()
copies CSR storage
- Parameters
-
csr_in CSR source csr_out CSR target
Definition at line 1483 of file graph_util.c.
References BMScopyMemoryArray, csr_storage::cost, csr_storage::edge_id, FALSE, graph_csr_isValid(), csr_storage::head, csr_storage::nedges_max, csr_storage::nnodes, NULL, and csr_storage::start.
Referenced by baseMstBuildNew(), dcmstTest1(), dcmstTest2(), dcmstTest2b(), and dcmstTest3().
◆ graph_csr_build()
Builds CSR storage from graph and cost array. NOTE: for PC/MW no dummy nodes are considered!
- Parameters
-
g the graph edgecosts edge costs (w.r.t graph 'g') csr CSR
Definition at line 1351 of file graph_util.c.
References csr_storage::cost, csr_storage::edge_id, GRAPH::edges, FARAWAY, flipedge, GRAPH::grad, graph_csr_isValid(), graph_get_nEdges(), graph_get_nNodes(), graph_pc_isPcMw(), graph_pc_knotIsDummyTerm(), graph_typeIsDirected(), csr_storage::head, GRAPH::head, csr_storage::nedges_max, nnodes, csr_storage::nnodes, NULL, GRAPH::oeat, GRAPH::outbeg, SCIP_Bool, SCIP_Real, csr_storage::start, STP_DCSTP, GRAPH::stp_type, and TRUE.
Referenced by graph_init_csr(), graph_init_csrWithEdgeId(), mst_init(), and tmBaseInit().
◆ graph_csr_buildCosts()
void graph_csr_buildCosts | ( | const GRAPH * | , |
const CSR * | , | ||
const SCIP_Real * | , | ||
SCIP_Real * | RESTRICT | ||
) |
Referenced by tmBaseInit().
◆ graph_csr_chgCosts()
Changes edge costs. NOTE: for PC/MW no dummy nodes are considered!
- Parameters
-
g the graph edgecosts edge costs (w.r.t graph 'g') csr CSR
Definition at line 1298 of file graph_util.c.
References csr_storage::cost, csr_storage::edge_id, GRAPH::edges, FARAWAY, flipedge, GRAPH::grad, graph_csr_isValid(), graph_get_nEdges(), graph_get_nNodes(), graph_pc_isPcMw(), graph_pc_knotIsDummyTerm(), csr_storage::head, GRAPH::head, csr_storage::nedges_max, nnodes, csr_storage::nnodes, NULL, GRAPH::oeat, GRAPH::outbeg, SCIP_Bool, SCIP_Real, csr_storage::start, and TRUE.
Referenced by pcmwSetEdgeCosts().
◆ graph_csr_print()
void graph_csr_print | ( | const CSR * | csr | ) |
prints CSR storage
- Parameters
-
csr CSR to print
Definition at line 1514 of file graph_util.c.
References csr_storage::cost, FALSE, graph_csr_isValid(), csr_storage::head, csr_storage::nedges_max, csr_storage::nnodes, SCIP_Real, and csr_storage::start.
Referenced by baseMstFinalizeNew(), and compMstFinalizeNew().
◆ graph_csr_getNedges()
int graph_csr_getNedges | ( | const CSR * | csr | ) |
gets currently used CSR edges
- Parameters
-
csr CSR to print
Definition at line 1536 of file graph_util.c.
References csr_storage::nedges_max, nnodes, csr_storage::nnodes, and csr_storage::start.
Referenced by pruneSteinerTreePc_csr(), pruneSteinerTreeStp_csr(), solstp_convertCsrToGraph(), solstp_getObjCsr(), solstp_pcGetObjCsr(), and strongPruneSteinerTreePc_csr().
◆ graph_csr_free()
frees dynamic CSR storage
- Parameters
-
scip SCIP data structure csr CSR
Definition at line 1554 of file graph_util.c.
References csr_storage::cost, csr_storage::edge_id, csr_storage::head, csr_storage::nnodes, SCIPfreeMemory, SCIPfreeMemoryArray, SCIPfreeMemoryArrayNull, and csr_storage::start.
Referenced by csrdepoTest2(), dcmstTest1(), dcmstTest2(), dcmstTest2b(), dcmstTest3(), extreduce_contractionFree(), graph_free_csr(), mst_free(), and tmBaseFree().
◆ graph_csr_costsAreInSync()
SCIP_Bool graph_csr_costsAreInSync | ( | const GRAPH * | g, |
const CSR * | csr, | ||
const SCIP_Real * | edgecosts_g | ||
) |
are CSR and graph costs corresponding?
- Parameters
-
g the graph csr CSR edgecosts_g edge costs w.r.t graph 'g'
Definition at line 1448 of file graph_util.c.
References csr_storage::cost, csr_storage::edge_id, EQ, FALSE, graph_get_nEdges(), graph_get_nNodes(), nnodes, csr_storage::nnodes, SCIP_Real, csr_storage::start, and TRUE.
Referenced by runTmPcMW_mode(), and solstp_pruneFromTmHeur_csr().
◆ graph_csr_isValid()
is CSR storage valid?
- Parameters
-
csr the CSR graph verbose be verbose?
Definition at line 1637 of file graph_util.c.
References FALSE, csr_storage::head, csr_storage::nedges_max, nnodes, csr_storage::nnodes, csr_storage::start, and TRUE.
Referenced by graph_csr_build(), graph_csr_chgCosts(), graph_csr_copy(), graph_csr_print(), graph_valid_csr(), and reduce_dcmstMstIsValid().
◆ graph_valid_csr()
is CSR storage of graph valid?
- Parameters
-
g the graph verbose be verbose?
Definition at line 1694 of file graph_util.c.
References csr_storage::cost, GRAPH::csr_storage, GRAPH::edges, FALSE, graph_csr_isValid(), csr_storage::head, GRAPH::knots, csr_storage::nedges_max, and csr_storage::nnodes.
Referenced by graph_init_csr(), and graph_init_csrWithEdgeId().
◆ graph_buildOrgNodesToReducedMap()
void graph_buildOrgNodesToReducedMap | ( | const GRAPH * | g, |
int * | map | ||
) |
builds mapping from original vertices to non-zero degree ones
- Parameters
-
g the graph map map
Definition at line 560 of file graph_util.c.
References GRAPH::grad, graph_get_nNodes(), nnodes, and UNKNOWN.
◆ graph_csrdepo_init()
SCIP_RETCODE graph_csrdepo_init | ( | SCIP * | scip, |
int | ncsrs_max, | ||
int | datasize_max, | ||
CSRDEPO ** | depository | ||
) |
initializes CSR depository
- Parameters
-
scip SCIP data structure ncsrs_max maximum number of CSRs datasize_max the maximum capacity depository the depository
Definition at line 590 of file graph_util.c.
References compressed_sparse_storages_depository::all_costs, compressed_sparse_storages_depository::all_heads, compressed_sparse_storages_depository::all_starts, compressed_sparse_storages_depository::csr_isEmpty, compressed_sparse_storages_depository::csr_nedges, compressed_sparse_storages_depository::csr_nnodes, compressed_sparse_storages_depository::csr_ptrsData, compressed_sparse_storages_depository::csr_ptrsStart, compressed_sparse_storages_depository::csr_weight, csrdepoCleanDebug(), compressed_sparse_storages_depository::datasize_max, graph_csrdepo_isEmpty(), compressed_sparse_storages_depository::ncsrs_curr, compressed_sparse_storages_depository::ncsrs_max, SCIP_CALL, SCIP_OKAY, SCIPallocMemory, and SCIPallocMemoryArray.
Referenced by csrdepoTest1(), csrdepoTest2(), and extreduce_extPermaInit().
◆ graph_csrdepo_free()
frees CSR depository
- Parameters
-
scip SCIP data structure depository the depository
Definition at line 637 of file graph_util.c.
References compressed_sparse_storages_depository::all_costs, compressed_sparse_storages_depository::all_heads, compressed_sparse_storages_depository::all_starts, compressed_sparse_storages_depository::csr_isEmpty, compressed_sparse_storages_depository::csr_nedges, compressed_sparse_storages_depository::csr_nnodes, compressed_sparse_storages_depository::csr_ptrsData, compressed_sparse_storages_depository::csr_ptrsStart, compressed_sparse_storages_depository::csr_weight, SCIPfreeMemory, and SCIPfreeMemoryArray.
Referenced by csrdepoTest1(), csrdepoTest2(), and extreduce_extPermaFree().
◆ graph_csrdepo_print()
void graph_csrdepo_print | ( | const CSRDEPO * | depository | ) |
Prints depository.
- Parameters
-
depository the depository
Definition at line 908 of file graph_util.c.
References compressed_sparse_storages_depository::csr_weight, graph_csrdepo_getCSR(), graph_csrdepo_getNcsrs(), csr_storage::nedges_max, and csr_storage::nnodes.
Referenced by baseMstFinalizeNew(), and compMstFinalizeNew().
◆ graph_csrdepo_getCSR()
gets CSR from depository
- Parameters
-
depository the depository index the index of the CSR to get csr pointer to CSR struct to fill
Definition at line 667 of file graph_util.c.
References compressed_sparse_storages_depository::csr_isEmpty, csrdepoFillCSR(), compressed_sparse_storages_depository::ncsrs_curr, and csr_storage::start.
Referenced by csrdepoGetTopWeight(), csrdepoTest2(), graph_csrdepo_getTopCSR(), graph_csrdepo_print(), and ruledOut().
◆ graph_csrdepo_getTopCSR()
gets top (last added) CSR from depository
- Parameters
-
depository the depository csr pointer to CSR struct to fill
Definition at line 684 of file graph_util.c.
References compressed_sparse_storages_depository::csr_weight, csrdepoCsrIsSet(), csrdepoCsrWeight(), csrdepoGetTopIndex(), EQ, FALSE, graph_csrdepo_getCSR(), graph_csrdepo_hasEmptyTop(), compressed_sparse_storages_depository::ncsrs_curr, and SCIP_Real.
Referenced by baseMstInitMsts(), compMstInitMsts(), extreduce_mstTopCompInSync(), extreduce_mstTopLevelBaseObjValid(), mstCompRuleOut(), and mstLevelLeafTryExtMst().
◆ graph_csrdepo_getNcsrs()
int graph_csrdepo_getNcsrs | ( | const CSRDEPO * | depository | ) |
gets number of CSRs in depository
- Parameters
-
depository the depository
Definition at line 741 of file graph_util.c.
References compressed_sparse_storages_depository::ncsrs_curr.
Referenced by compMstInitMsts(), extreduce_mstCompRemove(), extreduce_mstInternalsInSync(), extreduce_mstLevelRemove(), graph_csrdepo_print(), mstLevelBuildBaseMstRoot(), and postCleanMSTs().
◆ graph_csrdepo_getDataSize()
int graph_csrdepo_getDataSize | ( | const CSRDEPO * | depository | ) |
gets current size of data (from all CSRs) in depository
- Parameters
-
depository the depository
Definition at line 709 of file graph_util.c.
References compressed_sparse_storages_depository::csr_ptrsData, compressed_sparse_storages_depository::csr_ptrsStart, csrdepoGetNedges(), csrdepoGetNnodes(), csrdepoGetTopIndex(), compressed_sparse_storages_depository::datasize_max, MAX, and compressed_sparse_storages_depository::ncsrs_curr.
Referenced by graph_csrdepo_addEmptyTop().
◆ graph_csrdepo_clean()
void graph_csrdepo_clean | ( | CSRDEPO * | depository | ) |
cleans CSR depository
- Parameters
-
depository the depository
Definition at line 781 of file graph_util.c.
References csrdepoCleanDebug(), graph_csrdepo_isEmpty(), graph_csrdepo_removeTop(), and compressed_sparse_storages_depository::ncsrs_curr.
Referenced by postCleanMSTs().
◆ graph_csrdepo_removeTop()
void graph_csrdepo_removeTop | ( | CSRDEPO * | depository | ) |
removes top of CSR depository
- Parameters
-
depository the depository
Definition at line 753 of file graph_util.c.
References compressed_sparse_storages_depository::csr_nedges, compressed_sparse_storages_depository::csr_nnodes, compressed_sparse_storages_depository::csr_weight, csrdepoCsrUnsetDebug(), csrdepoFillCSR(), csrdepoGetTopIndex(), graph_csrdepo_hasEmptyTop(), graph_csrdepo_isEmpty(), and compressed_sparse_storages_depository::ncsrs_curr.
Referenced by compMstFinalizeNew(), csrdepoTest1(), csrdepoTest2(), extreduce_mstCompRemove(), extreduce_mstLevelRemove(), and graph_csrdepo_clean().
◆ graph_csrdepo_addEmptyTop()
void graph_csrdepo_addEmptyTop | ( | CSRDEPO * | depository, |
int | nnodes, | ||
int | nedges | ||
) |
adds empty top to CSR depository
- Parameters
-
depository the depository nnodes nodes of new top nedges number of (directed!) edges of new top
Definition at line 800 of file graph_util.c.
References compressed_sparse_storages_depository::csr_isEmpty, compressed_sparse_storages_depository::csr_nedges, compressed_sparse_storages_depository::csr_nnodes, compressed_sparse_storages_depository::csr_ptrsData, compressed_sparse_storages_depository::csr_ptrsStart, compressed_sparse_storages_depository::csr_weight, csrdepoGetTopIndex(), compressed_sparse_storages_depository::datasize_max, EQ, graph_csrdepo_getDataSize(), graph_csrdepo_hasEmptyTop(), graph_csrdepo_isEmpty(), MAX, compressed_sparse_storages_depository::ncsrs_curr, compressed_sparse_storages_depository::ncsrs_max, nnodes, and TRUE.
Referenced by add1NodeMst(), csrdepoTest1(), csrdepoTest2(), and graph_csrdepo_addEmptyTopTree().
◆ graph_csrdepo_addEmptyTopTree()
void graph_csrdepo_addEmptyTopTree | ( | CSRDEPO * | depository, |
int | nnodes | ||
) |
adds empty top for tree to CSR depository
- Parameters
-
depository the depository nnodes nodes of new top
Definition at line 836 of file graph_util.c.
References graph_csrdepo_addEmptyTop().
Referenced by baseMstInitMsts(), and compMstInitMsts().
◆ graph_csrdepo_isEmpty()
is the CSR depository empty?
- Parameters
-
depository the depository
Definition at line 851 of file graph_util.c.
References compressed_sparse_storages_depository::ncsrs_curr.
Referenced by csrdepoTest1(), csrdepoTest2(), extreduce_extPermaIsClean(), graph_csrdepo_addEmptyTop(), graph_csrdepo_clean(), graph_csrdepo_init(), graph_csrdepo_removeTop(), mstAddRootLevelMsts(), and mstLevelBuildBaseMstRoot().
◆ graph_csrdepo_hasEmptyTop()
is top of CSR depository empty?
- Parameters
-
depository the depository
Definition at line 863 of file graph_util.c.
References compressed_sparse_storages_depository::csr_isEmpty, and csrdepoGetTopIndex().
Referenced by graph_csrdepo_addEmptyTop(), graph_csrdepo_getTopCSR(), and graph_csrdepo_removeTop().
◆ graph_csrdepo_getEmptyTop()
Gets empty top of current depository.
- Parameters
-
depository the depository csr pointer to csr struct to fill
Definition at line 874 of file graph_util.c.
References compressed_sparse_storages_depository::csr_isEmpty, csrdepoFillCSR(), csrdepoGetTopIndex(), and compressed_sparse_storages_depository::ncsrs_max.
Referenced by add1NodeMst(), baseMstInitMsts(), compMstInitMsts(), csrdepoTest1(), and csrdepoTest2().
◆ graph_csrdepo_emptyTopSetMarked()
void graph_csrdepo_emptyTopSetMarked | ( | CSRDEPO * | depository | ) |
Sets formerly empty top to marked.
- Parameters
-
depository the depository
Definition at line 890 of file graph_util.c.
References compressed_sparse_storages_depository::csr_isEmpty, compressed_sparse_storages_depository::csr_weight, csrdepoGetTopIndex(), csrdepoGetTopWeight(), EQ, and FALSE.
Referenced by add1NodeMst(), baseMstFinalizeNew(), compMstFinalizeNew(), csrdepoTest1(), and csrdepoTest2().
◆ graph_init_dcsr()
SCIP_RETCODE graph_init_dcsr | ( | SCIP * | scip, |
GRAPH * | g | ||
) |
initializes dynamic CSR storage
- Parameters
-
scip SCIP data structure g the graph
Definition at line 1721 of file graph_util.c.
References dynamic_csr_storage::cost, GRAPH::cost, dynamic_csr_storage::cost2, dynamic_csr_storage::cost3, GRAPH::dcsr_storage, EAT_LAST, dynamic_csr_storage::edgeid, GRAPH::edges, csr_range::end, GRAPH::extended, FARAWAY, flipedge, GRAPH::grad, graph_mark(), graph_pc_isPcMw(), graph_valid_dcsr(), dynamic_csr_storage::head, GRAPH::head, dynamic_csr_storage::id2csredge, GRAPH::knots, GRAPH::mark, dynamic_csr_storage::nedges, nnodes, dynamic_csr_storage::nnodes, NULL, GRAPH::oeat, GRAPH::outbeg, dynamic_csr_storage::range, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPallocMemory, SCIPallocMemoryArray, csr_range::start, and TRUE.
Referenced by extCheckArc(), extCheckEdge(), extCheckNode(), extDeleteNodes(), extInit(), extreduce_init(), fixVarsRedbased(), reduce_pathreplace(), reduce_pathreplaceExt(), reduce_sdStar(), reduce_sdStarBiasedWithProfit(), reduce_sdStarPc(), reduce_sdStarPc2(), reduce_sdWalk_csr(), reduce_sdWalkTriangle(), reduce_termsepaDa(), sdneighborUpdateInit(), sepafullInitDistdata(), testDistCloseNodesAreValid(), testDistCloseNodesPcAreValid1(), testDistCloseNodesPcAreValid2(), testDistCloseNodesPcAreValidAfterDeletion(), testDistDistancesAreValid(), testDistRootPathsAreValid(), and testNode3PseudoDeletedBySdBiasedSimple().
◆ graph_update_dcsr()
updates dynamic CSR storage
- Parameters
-
scip SCIP data structure g the graph
Definition at line 1829 of file graph_util.c.
◆ graph_dcsr_deleteEdge()
void graph_dcsr_deleteEdge | ( | DCSR * | dcsr, |
int | tail, | ||
int | e_csr | ||
) |
deletes CSR indexed edge
- Parameters
-
dcsr DCSR container tail tail of edge e_csr CSR indexed edge
Definition at line 1840 of file graph_util.c.
References dynamic_csr_storage::cost, dynamic_csr_storage::cost2, dynamic_csr_storage::cost3, dynamic_csr_storage::edgeid, csr_range::end, FARAWAY, dynamic_csr_storage::head, dynamic_csr_storage::id2csredge, nnodes, dynamic_csr_storage::range, and SCIP_Real.
Referenced by graph_dcsr_deleteEdgeBi().
◆ graph_dcsr_deleteEdgeBi()
deletes CSR indexed edge and anti-parallel one
- Parameters
-
scip SCIP data structure dcsr DCSR container e_csr CSR indexed edge
Definition at line 1894 of file graph_util.c.
References dynamic_csr_storage::cost, dynamic_csr_storage::edgeid, flipedge, graph_dcsr_deleteEdge(), dynamic_csr_storage::head, dynamic_csr_storage::id2csredge, SCIPdebugMessage, and SCIPisEQ().
Referenced by graph_edge_delFull(), reduce_sdStar(), reduce_sdStarPc(), reduce_sdStarPc2(), reduce_sdWalk_csr(), reduce_sdWalkTriangle(), replaceEdgeByPath(), and sdStarBiasedProcessNode().
◆ graph_free_dcsr()
frees dynamic CSR storage
- Parameters
-
scip SCIP data structure g the graph
Definition at line 1807 of file graph_util.c.
References dynamic_csr_storage::cost, GRAPH::dcsr_storage, dynamic_csr_storage::edgeid, dynamic_csr_storage::head, dynamic_csr_storage::id2csredge, dynamic_csr_storage::nnodes, NULL, dynamic_csr_storage::range, SCIPfreeMemory, and SCIPfreeMemoryArray.
Referenced by extCheckArc(), extCheckEdge(), extCheckNode(), extDeleteNodes(), extFree(), extreduce_exit(), fixVarsRedbased(), graph_free(), reduce_pathreplace(), reduce_pathreplaceExt(), reduce_sdStar(), reduce_sdStarBiasedWithProfit(), reduce_sdStarPc(), reduce_sdStarPc2(), reduce_sdWalk_csr(), reduce_sdWalkTriangle(), sdneighborUpdateFree(), sepafullInitDistdata(), testDistCloseNodesAreValid(), testDistCloseNodesPcAreValid1(), testDistCloseNodesPcAreValid2(), testDistCloseNodesPcAreValidAfterDeletion(), testDistDistancesAreValid(), testDistRootPathsAreValid(), and testNode3PseudoDeletedBySdBiasedSimple().
◆ graph_valid_dcsr()
is DCSR storage of graph valid?
- Parameters
-
g the graph verbose be verbose?
Definition at line 1919 of file graph_util.c.
References GRAPH::dcsr_storage, dynamic_csr_storage::edgeid, GRAPH::edges, csr_range::end, FALSE, dynamic_csr_storage::head, GRAPH::head, dynamic_csr_storage::id2csredge, GRAPH::knots, dynamic_csr_storage::nedges, nnodes, dynamic_csr_storage::nnodes, dynamic_csr_storage::range, csr_range::start, GRAPH::tail, and TRUE.
Referenced by extreduce_distDataInit(), graph_edge_delFull(), graph_init_dcsr(), and replaceEdgeByPath().
◆ graph_dijkLimited_init()
SCIP_RETCODE graph_dijkLimited_init | ( | SCIP * | scip, |
const GRAPH * | g, | ||
DIJK ** | dijkdata | ||
) |
initializes (allocates and fills) limited Dijkstra structure members
- Parameters
-
scip SCIP g the graph dijkdata data for limited Dijkstra
Definition at line 1989 of file graph_util.c.
References dijkstra_data::dheap, dijkstra_data::edgelimit, FALSE, FARAWAY, graph_heap_create(), GRAPH::knots, nnodes, dijkstra_data::node_bias, dijkstra_data::node_distance, dijkstra_data::node_visited, NULL, dijkstra_data::nvisits, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPallocMemory, SCIPallocMemoryArray, and dijkstra_data::visitlist.
Referenced by dapathsInit(), extreduce_distDataInit(), reduce_bdkWithSd(), reduce_sdEdgeCliqueStar(), sdneighborUpdateInit(), sdStarInit(), testSdCliqueStarDeg3AdjacencyIsCorrect(), testSdCliqueStarDeg3IsCorrect(), testSdCliqueStarDeg3IsCorrect2(), testSdCliqueStarDeg4IsCorrect(), testSdGetterReturnsCorrectSds(), and testSdStarPcKillsEdge().
◆ graph_dijkLimited_initPcShifts()
SCIP_RETCODE graph_dijkLimited_initPcShifts | ( | SCIP * | scip, |
const GRAPH * | g, | ||
DIJK * | dijkdata | ||
) |
initializes PC shifts per node
- Parameters
-
scip SCIP g the graph dijkdata data for limited Dijkstra
Definition at line 2031 of file graph_util.c.
References GRAPH::cost, EAT_LAST, EQ, GRAPH::extended, FARAWAY, graph_get_nNodes(), graph_pc_isPc(), graph_pc_isRootedPcMw(), GT, GRAPH::ieat, GRAPH::inpbeg, Is_term, nnodes, dijkstra_data::node_bias, GRAPH::prize, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPallocMemoryArray, GRAPH::source, GRAPH::tail, and GRAPH::term.
Referenced by extreduce_distDataInit().
◆ graph_dijkLimited_reset()
reset data of limited Dijkstra structure
- Parameters
-
g the graph dijkdata data for limited Dijkstra
Definition at line 2105 of file graph_util.c.
References dijkstra_data::dheap, FALSE, FARAWAY, graph_heap_clean(), GRAPH::knots, dijkstra_data::node_distance, dijkstra_data::node_visited, dijkstra_data::nvisits, dijkstra_heap::position, SCIP_Real, UNKNOWN, and dijkstra_data::visitlist.
Referenced by dapathsRunShortestPaths(), distDataRecomputeNormalDist(), extreduce_distDataInit(), reduce_bdkWithSd(), reduce_sdEdgeCliqueStar(), and sdneighborMarkCloseNodes().
◆ graph_dijkLimited_clean()
cleans limited Dijkstra structure members
- Parameters
-
g the graph dijkdata data for limited Dijkstra
Definition at line 2083 of file graph_util.c.
References dijkstra_data::dheap, dijkstra_data::edgelimit, FALSE, FARAWAY, graph_heap_clean(), GRAPH::knots, nnodes, dijkstra_data::node_distance, dijkstra_data::node_visited, dijkstra_data::nvisits, SCIP_Real, and TRUE.
Referenced by reduce_bdkWithSd(), reduce_sdEdgeCliqueStar(), testSdCliqueStarDeg3AdjacencyIsCorrect(), testSdCliqueStarDeg3IsCorrect(), testSdCliqueStarDeg3IsCorrect2(), testSdCliqueStarDeg4IsCorrect(), and testSdGetterReturnsCorrectSds().
◆ graph_dijkLimited_free()
frees limited Dijkstra structure member
- Parameters
-
scip SCIP dijkdata data for limited Dijkstra
Definition at line 2143 of file graph_util.c.
References dijkstra_data::dheap, graph_heap_free(), dijkstra_data::node_bias, dijkstra_data::node_distance, dijkstra_data::node_visited, SCIPfreeMemoryArray, SCIPfreeMemoryArrayNull, TRUE, and dijkstra_data::visitlist.
Referenced by dapathsFreeMembers(), extreduce_distDataFree(), reduce_bdkWithSd(), reduce_sdEdgeCliqueStar(), sdneighborUpdateFree(), sdStarFinalize(), testSdCliqueStarDeg3AdjacencyIsCorrect(), testSdCliqueStarDeg3IsCorrect(), testSdCliqueStarDeg3IsCorrect2(), testSdCliqueStarDeg4IsCorrect(), testSdGetterReturnsCorrectSds(), and testSdStarPcKillsEdge().
◆ graph_mark()
void graph_mark | ( | GRAPH * | g | ) |
marks the current graph
- Parameters
-
g the graph
Definition at line 1130 of file graph_base.c.
References GRAPH::extended, FALSE, GRAPH::grad, graph_get_nNodes(), graph_isMarked(), graph_pc_isPcMw(), graph_pc_isRootedPcMw(), Is_pseudoTerm, Is_term, GRAPH::mark, nnodes, GRAPH::source, GRAPH::term, and TRUE.
Referenced by checkSdWalk(), computeSteinerTreeDijk(), daRoundExit(), daRoundInit(), divideAndConquer(), enumeration_findSolPcMw(), extInit(), extreduce_deleteEdges(), extreduce_init(), extreduce_pseudoDeleteNodes(), fixVarsDualcost(), fixVarsExtendedRed(), graph_get4nextTTerms(), graph_init_dcsr(), graph_pc_2org(), graph_pc_2trans(), graph_tpathsSetAll2(), graph_tpathsSetAll3(), graph_tpathsSetAll4(), initDecompose(), localExtendPc(), localInsertion(), localInsertion2(), localInsertion2pc(), localKeyPathExchange(), localKeyPathExchangeMw(), localKeyPathExchangePc(), localKeyPathExchangePc2(), localKeyVertex(), localKeyVertexPc(), localKeyVertexPc2(), pcmwDeleteNonSolEdges(), prunegraphInit(), redcosts_initializeDistances(), reduce_ans(), reduce_articulations(), reduce_bd34(), reduce_bd34WithSd(), reduce_bdkWithSd(), reduce_bidecomposition(), reduce_bidecompositionExact(), reduce_blctreeInit(), reduce_bound(), reduce_da(), reduce_dapaths(), reduce_daPcMw(), reduce_daSlackPrune(), reduce_impliedProfitBasedRpc(), reduce_npv(), reduce_nvAdv(), reduce_sdBiased(), reduce_sdBiasedNeighbor(), reduce_sdEdgeCliqueStar(), reduce_sdStarPc2(), reduce_simple_mw(), reduce_sl(), reduce_termcompChangeSubgraphToBottleneck(), reduceWithNodeFixingBounds(), SCIPStpHeurPruneUpdateSols(), stptest_graphSetUp(), termcompReduceWithParams(), testDistCloseNodesAreValid(), testDistDistancesAreValid(), testDistRootPathsAreValid(), testEdgeDeletion1_deprecated(), testEdgeDeletion2_deprecated(), testEdgeDeletion3_deprecated(), and testEdgeDeletion4_deprecated().
◆ graph_show()
void graph_show | ( | const GRAPH * | ) |
Definition at line 1251 of file graph_base.c.
References GRAPH::cost, EAT_FREE, GRAPH::edges, GRAPH::grad, GRAPH::head, GRAPH::ieat, GRAPH::inpbeg, GRAPH::knots, NULL, GRAPH::oeat, GRAPH::outbeg, GRAPH::tail, and GRAPH::term.
◆ graph_uncover()
void graph_uncover | ( | GRAPH * | g | ) |
reinsert all hidden edges
- Parameters
-
g the graph
Definition at line 1276 of file graph_base.c.
References EAT_HIDE, GRAPH::edges, GRAPH::grad, GRAPH::head, GRAPH::ieat, GRAPH::inpbeg, NULL, GRAPH::oeat, GRAPH::outbeg, and GRAPH::tail.
◆ graph_free()
free the graph
- Parameters
-
scip SCIP data structure graph graph to be freed final delete ancestor data structures?
Definition at line 796 of file graph_base.c.
References GRAPH::cost, GRAPH::cost_org_pc, GRAPH::costbudget, GRAPH::csr_storage, GRAPH::dcsr_storage, GRAPH::grad, graph_free_csr(), graph_free_dcsr(), graph_freeHistory(), graph_freeHistoryDeep(), graph_mincut_exit(), graph_mincut_isInitialized(), graph_path_exists(), graph_path_exit(), GRAPH::grid_coordinates, GRAPH::grid_dim, GRAPH::grid_ncoords, GRAPH::head, GRAPH::ieat, GRAPH::inpbeg, GRAPH::mark, GRAPH::maxdeg, NULL, GRAPH::oeat, GRAPH::outbeg, GRAPH::prize, GRAPH::rootedgeprevs, SCIPfreeMemory, SCIPfreeMemoryArray, SCIPfreeMemoryArrayNull, STP_DCSTP, STP_RSMT, GRAPH::stp_type, GRAPH::tail, GRAPH::term, and GRAPH::term2edge.
Referenced by bdkFree(), boundPruneHeur(), buildsolgraph(), checkSdWalk(), computeHistory(), dualascent_execPcMw(), graph_pack(), graph_subgraphFree(), graph_subgraphReinsert(), initReceivedSubproblem(), localExtendPc(), localInsertion(), localInsertion2(), localInsertion2pc(), localKeyPathExchange(), localKeyPathExchangeMw(), localKeyPathExchangePc(), localKeyPathExchangePc2(), localKeyVertex(), localKeyVertexPc(), localKeyVertexPc2(), lurkpruneFinalize(), pseudoAncestorsCreation(), pseudoAncestorsHash(), pseudoAncestorsHashPc(), pseudoAncestorsMerge(), pseudoAncestorsMergePc(), pseudoDelDouble(), pseudoDelSingle(), redcostGraphFree(), reduce_bd34(), reduce_bd34WithSd(), reduce_bound(), reduce_boundHop(), reduce_daPcMw(), reduce_impliedProfitBasedRpc(), reduce_npv(), reduce_sd(), reduce_sdgraphFree(), reduce_sdPc(), reduce_termcompFree(), SCIP_DECL_PROBDELORIG(), SCIP_DECL_PROPEXITSOL(), SCIPStpHeurPruneRun(), SCIPStpHeurRecExclude(), SCIPStpHeurRecRun(), SCIPStpHeurSlackPruneRun(), stptest_graphTearDown(), substpsolver_solve(), supergraphComputeMst(), testDaPathsPcMw3EdgesWorks(), testDistCloseNodesAreValid(), testDistDistancesAreValid(), and testDistRootPathsAreValid().
◆ graph_freeHistory()
frees the history
- Parameters
-
scip SCIP data p graph data
Definition at line 868 of file graph_base.c.
References GRAPH::ancestors, GRAPH::contracttrace, GRAPH::edges, graph_freePseudoAncestors(), NULL, Int_List_Node::parent, GRAPH::pseudoancestors, SCIPfreeBlockMemory, SCIPfreeMemoryArray, and SCIPfreeMemoryArrayNull.
Referenced by graph_free(), and updatePropgraph().
◆ graph_freeHistoryDeep()
frees the deep history
- Parameters
-
scip SCIP data p graph data
Definition at line 900 of file graph_base.c.
References GRAPH::fixedcomponents, graph_free_fixed(), GRAPH::norgmodelknots, NULL, GRAPH::orghead, GRAPH::orgtail, Int_List_Node::parent, GRAPH::path_heap, GRAPH::path_state, GRAPH::pcancestors, SCIPfreeBlockMemory, and SCIPfreeMemoryArray.
Referenced by graph_free(), and updatePropgraph().
◆ graph_getIsTermArray()
Definition at line 540 of file graph_base.c.
References GRAPH::extended, FALSE, graph_pc_isPcMw(), graph_pc_termIsNonLeafTerm(), Is_term, GRAPH::knots, nnodes, SCIP_Bool, GRAPH::term, and TRUE.
Referenced by checkSdWalk(), extreduce_extPermaInit(), prInit(), reduce_nvAdv(), and reduce_sl().
◆ graph_getTerms()
void graph_getTerms | ( | const GRAPH * | g, |
int * | terms | ||
) |
gets terminals
- Parameters
-
g the graph terms array of size g->terms
Definition at line 567 of file graph_base.c.
References graph_get_nNodes(), Is_term, nnodes, nterms, GRAPH::term, and GRAPH::terms.
Referenced by graph_getTermsRandom(), and termsepaFindTerminalSource().
◆ graph_getTermsRandom()
SCIP_RETCODE graph_getTermsRandom | ( | SCIP * | scip, |
const GRAPH * | g, | ||
int * | terms | ||
) |
gets randomly permuted terminals
- Parameters
-
scip SCIP data structure g the graph terms array of size g->terms
Definition at line 588 of file graph_base.c.
References graph_getTerms(), SCIP_CALL, SCIP_OKAY, SCIPcreateRandom(), SCIPfreeRandom(), SCIPrandomPermuteIntArray(), GRAPH::terms, and TRUE.
Referenced by dpborder_coreUpdateOrdering().
◆ graph_getEdgeCosts()
◆ graph_getEdgeRevCosts()
◆ graph_getCsr()
void graph_getCsr | ( | const GRAPH * | , |
int * | RESTRICT, | ||
int * | RESTRICT, | ||
int * | RESTRICT, | ||
int * | |||
) |
Referenced by daExec().
◆ graph_resize()
SCIP_RETCODE graph_resize | ( | SCIP * | scip, |
GRAPH * | g, | ||
int | ksize, | ||
int | esize, | ||
int | layers | ||
) |
enlarge given graph
- Parameters
-
scip SCIP data structure g graph to be resized ksize new node slots esize new edge slots layers layers (set to -1 by default)
Definition at line 744 of file graph_base.c.
References GRAPH::cost, GRAPH::costbudget, GRAPH::edges, GRAPH::esize, GRAPH::grad, GRAPH::head, GRAPH::ieat, GRAPH::inpbeg, GRAPH::knots, GRAPH::ksize, GRAPH::layers, GRAPH::mark, NULL, GRAPH::oeat, GRAPH::outbeg, GRAPH::prize, SCIP_CALL, SCIP_OKAY, SCIPreallocMemoryArray, GRAPH::tail, GRAPH::term, and GRAPH::term2edge.
Referenced by getBiasedMw(), graph_transPc(), graph_transPc2Spg(), graph_transPcGetSap(), graph_transRmw(), graph_transRpc(), and graph_transRpc2FixedProper().
◆ graph_copy()
SCIP_RETCODE graph_copy | ( | SCIP * | scip, |
const GRAPH * | orggraph, | ||
GRAPH ** | copygraph | ||
) |
copy the graph
- Parameters
-
scip SCIP data structure orggraph original graph copygraph graph to be created
Definition at line 939 of file graph_base.c.
References GRAPH::esize, graph_copyData(), graph_init(), GRAPH::ksize, GRAPH::layers, NULL, SCIP_CALL, and SCIP_OKAY.
Referenced by graph_transPcGetRsap(), graph_transPcGetSap(), initPropgraph(), initReceivedSubproblem(), prunegraphInit(), SCIP_DECL_PROBCOPY(), SCIPprobdataCreateFromGraph(), SCIPStpHeurPruneRun(), SCIPStpHeurSlackPruneRun(), solveSub(), and substpsolver_getObjFromGraph().
◆ graph_copyPseudoAncestors()
SCIP_RETCODE graph_copyPseudoAncestors | ( | SCIP * | scip, |
const GRAPH * | orggraph, | ||
GRAPH * | copygraph | ||
) |
copies the pseudo-ancestors
- Parameters
-
scip SCIP data structure orggraph original graph copygraph graph to be created
Definition at line 1088 of file graph_base.c.
References EAT_FREE, GRAPH::edges, FALSE, graph_addPseudoAncestors(), graph_edge_getPseudoAncestors(), graph_edge_nPseudoAncestors(), graph_get_nEdges(), graph_getNpseudoAncestors(), graph_pseudoAncestors_appendCopyArrayToEdge(), GRAPH::ieat, SCIP_Bool, SCIP_CALL, and SCIP_OKAY.
Referenced by initPropgraph(), SCIP_DECL_PROBCOPY(), and SCIPprobdataCreateFromGraph().
◆ graph_copyData()
SCIP_RETCODE graph_copyData | ( | SCIP * | scip, |
const GRAPH * | orgraph, | ||
GRAPH * | copygraph | ||
) |
copy the data of the graph
- Parameters
-
scip SCIP data structure orgraph original graph copygraph graph to be copied to
Definition at line 957 of file graph_base.c.
References BMScopyMemoryArray, GRAPH::budget, GRAPH::cost, GRAPH::cost_org_pc, GRAPH::costbudget, GRAPH::csr_storage, GRAPH::dcsr_storage, GRAPH::edges, EQ, GRAPH::esize, GRAPH::extended, GRAPH::grad, graph_pc_isPc(), graph_pc_isPcMw(), graph_pc_isRootedPcMw(), graph_pc_knotIsFixedTerm(), graph_valid(), GRAPH::grid_coordinates, GRAPH::grid_dim, GRAPH::grid_ncoords, GRAPH::head, GRAPH::hoplimit, GRAPH::ieat, GRAPH::inpbeg, GRAPH::is_packed, Is_term, GRAPH::knots, GRAPH::ksize, GRAPH::mark, GRAPH::maxdeg, GRAPH::norgmodeledges, GRAPH::norgmodelknots, GRAPH::norgmodelterms, NULL, GRAPH::oeat, GRAPH::orgedges, GRAPH::orgknots, GRAPH::orgsource, GRAPH::outbeg, GRAPH::prize, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPallocMemoryArray, SCIPfreeMemoryArray, SCIPfreeMemoryArrayNull, GRAPH::source, STP_BRMWCSP, STP_DCSTP, STP_RSMT, GRAPH::stp_type, GRAPH::tail, GRAPH::term, GRAPH::term2edge, GRAPH::terms, and GRAPH::withInexactReductions.
Referenced by graph_copy(), and updatePropgraph().
◆ graph_pack()
SCIP_RETCODE graph_pack | ( | SCIP * | scip, |
GRAPH * | graph, | ||
GRAPH ** | newgraph, | ||
REDSOL * | redsol, | ||
SCIP_Bool | verbose | ||
) |
Packs the graph, i.e. builds a new graph that discards deleted edges and nodes. The original graph is deleted.
- Parameters
-
scip SCIP data structure graph the graph newgraph the new graph redsol reduce solution or NULL verbose verbose?
Definition at line 1324 of file graph_base.c.
References GRAPH::ancestors, GRAPH::budget, EAT_FREE, GRAPH::edges, GRAPH::extended, FALSE, FARAWAY, GRAPH::fixedcomponents, GRAPH::grad, graph_free(), graph_get_nEdges(), graph_get_nNodes(), graph_init(), graph_knot_add(), graph_path_exit(), graph_pc_finalizeSubgraph(), graph_pc_getNonLeafTermOffset(), graph_pc_isPc(), graph_pc_isPcMw(), graph_pc_isRootedPcMw(), graph_valid(), GRAPH::grid_coordinates, GRAPH::grid_dim, GRAPH::grid_ncoords, GRAPH::hoplimit, GRAPH::ieat, GRAPH::is_packed, Is_term, GRAPH::knots, GRAPH::layers, GRAPH::maxdeg, nnodes, GRAPH::norgmodeledges, GRAPH::norgmodelknots, GRAPH::norgmodelterms, NULL, GRAPH::oeat, GRAPH::orgedges, GRAPH::orghead, GRAPH::orgknots, GRAPH::orgsource, GRAPH::orgtail, packEdges(), packNodes(), packPcMwInit(), packPcMwVanished(), GRAPH::path_heap, GRAPH::pcancestors, GRAPH::prize, reduce_solGetOffsetPointer(), reduce_solPack(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPfreeBufferArray, GRAPH::source, STP_RSMT, GRAPH::stp_type, GRAPH::term, GRAPH::terms, TRUE, and UNKNOWN.
Referenced by graph_obstgrid_create(), presolveStp(), and SCIPStpHeurRecRun().
◆ graph_init()
SCIP_RETCODE graph_init | ( | SCIP * | scip, |
GRAPH ** | g, | ||
int | ksize, | ||
int | esize, | ||
int | layers | ||
) |
initialize graph
- Parameters
-
scip SCIP data structure g new graph ksize slots for nodes esize slots for edges layers number of layers (only needed for packing, otherwise 1)
Definition at line 607 of file graph_base.c.
References GRAPH::ancestors, GRAPH::budget, GRAPH::contracttrace, GRAPH::cost, GRAPH::cost_org_pc, GRAPH::costbudget, GRAPH::csr_storage, GRAPH::dcsr_storage, GRAPH::edges, GRAPH::esize, GRAPH::extended, FALSE, GRAPH::fixedcomponents, GRAPH::grad, GRAPH::grid_coordinates, GRAPH::grid_dim, GRAPH::grid_ncoords, GRAPH::head, GRAPH::hoplimit, GRAPH::ieat, GRAPH::inpbeg, GRAPH::is_packed, GRAPH::knots, GRAPH::ksize, GRAPH::layers, GRAPH::mark, GRAPH::maxdeg, GRAPH::mincut_dist, GRAPH::mincut_e, GRAPH::mincut_head, GRAPH::mincut_nedges, GRAPH::mincut_next, GRAPH::mincut_nnodes, GRAPH::mincut_numb, GRAPH::mincut_prev, GRAPH::mincut_r, GRAPH::mincut_temp, GRAPH::mincut_x, GRAPH::norgmodeledges, GRAPH::norgmodelknots, GRAPH::norgmodelterms, NULL, GRAPH::oeat, GRAPH::orgedges, GRAPH::orghead, GRAPH::orgknots, GRAPH::orgsource, GRAPH::orgtail, GRAPH::outbeg, GRAPH::path_heap, GRAPH::path_state, GRAPH::pcancestors, GRAPH::prize, GRAPH::pseudoancestors, GRAPH::rootedgeprevs, SCIP_CALL, SCIP_OKAY, SCIPallocMemory, SCIPallocMemoryArray, GRAPH::source, GRAPH::stp_type, GRAPH::tail, GRAPH::term, GRAPH::term2edge, GRAPH::terms, UNKNOWN, and GRAPH::withInexactReductions.
Referenced by boundPruneHeur(), buildsolgraph(), computeHistory(), extractSubgraphBuild(), graph_buildCompleteGraph(), graph_copy(), graph_grid_create(), graph_load(), graph_obstgrid_create(), graph_pack(), graph_transRpcGetSpg(), graphBuildV5E5(), localExtendPc(), localInsertion(), localInsertion2(), localInsertion2pc(), localKeyPathExchange(), localKeyPathExchangeMw(), localKeyPathExchangePc(), localKeyPathExchangePc2(), localKeyVertex(), localKeyVertexPc(), localKeyVertexPc2(), pseudoDelDouble(), pseudoDelSingle(), redcostGraphBuild(), reduce_bound(), reduce_boundHop(), reduce_npv(), reduce_sd(), reduce_sdPc(), SCIPStpHeurRecExclude(), sdgraphBuildDistgraph(), sdgraphBuildDistgraphFromTpaths(), subgraphBuild(), supergraphComputeMst(), testBdkSdMstDeletesNodeDeg3(), testBdkSdMstDeletesNodeDeg4(), testBdkSdMstStarDeletesNodeDeg4(), testBdkTreeDistDeletesNodeDeg4(), testBiasedTerminalPathsTo4NextFound(), testBiconnectedComponentsAreFound(), testBiconnectedComponentsAreFound2(), testBiconnectedComponentsAreFound3(), testBiconnectedDecomposition(), testBiconnectedDecomposition2(), testBiconnectedDecomposition3(), testBLCworksFor3Star(), testBLCworksFor3StarAfterReduction(), testBLCworksFor5Tree(), testDaPathsPcMw3EdgesWorks(), testDistCloseNodesAreValid(), testDistCloseNodesPcAreValid1(), testDistCloseNodesPcAreValid2(), testDistCloseNodesPcAreValidAfterDeletion(), testDistDistancesAreValid(), testDistRootPathsAreValid(), testEdgeDeletedBy3LeafSpg(), testEdgeDeletedByCommonRedCostsTargets(), testEdgeDeletedByEqBottleneck(), testEdgeDeletedByEqBottleneck2(), testEdgeDeletedByMst1(), testEdgeDeletedByMst2(), testEdgeDeletedByMultiRedCosts(), testEdgeDeletion1_deprecated(), testEdgeDeletion2_deprecated(), testEdgeDeletion3_deprecated(), testEdgeDeletion4_deprecated(), testEdgeDeletion5_deprecated(), testEdgeNotDeleted1(), testGeneralStarDeletedEdge1(), testGeneralStarDeletedEdge2(), testGeneralStarDeletedEdge3(), testNode3PseudoDeletedByContraction(), testNode3PseudoDeletedByRedCosts1(), testNode3PseudoDeletedBySd1(), testNode3PseudoDeletedBySd2(), testNode3PseudoDeletedBySd3(), testNode3PseudoDeletedBySdBiased(), testNode3PseudoDeletedBySdBiasedSimple(), testNode4PseudoDeletedBySd1(), testNode4PseudoNotDeletedBySd1(), testNsvImpliedContractsCutDistEdge(), testNsvImpliedContractsCutDistMiddleEdge(), testNsvImpliedContractsEdge(), testNsvImpliedContractsEdge2(), testNsvImpliedContractsImpliedToTermEdge(), testPathReplaceDeletesEdge(), testPathReplaceDeletesEdge2(), testPcEdgeDeletedByMst1(), testPcEdgeNotDeleted(), testPcNode3PseudoDeletedBySd1(), testPcNode4PseudoDeletedBySd1(), testPrunedSolIsImprovedPc1(), testPrunedSolIsImprovedPc2(), testRmwAnsDeletesOneEdge(), testRmwAnsDeletesOneNode(), testRmwAnsDeletesTwoNodes(), testRmwChain2DeletesNode(), testRmwNpv3DeletesNode(), testRmwTerminalContraction(), testRmwTerminalDeg1Contraction1(), testRmwTerminalDeg1Contraction2(), testRmwTerminalDeg1Contraction3(), testSdBiasedBottleneckDeletesEdge(), testSdBiasedBottleneckTermPathDeletesEdge(), testSdBiasedDeletesEdge(), testSdCliqueStarDeg3AdjacencyIsCorrect(), testSdCliqueStarDeg3IsCorrect(), testSdCliqueStarDeg3IsCorrect2(), testSdCliqueStarDeg4IsCorrect(), testSdCliqueStarDeletesEdge(), testSdGetterReturnsCorrectSds(), testSdGraphDistsAreValid(), testSdGraphDistsAreValid2(), testSdGraphQueriesAreValid(), testSdGraphStrongBiasedDistsAreValid(), testSdPcKillsEdge1(), testSdPcKillsEdge2(), testSdPcKillsTwoEdges(), testSdRepair(), testSdStarBiasedDeletesEdge(), testSdStarBiasedDeletesEdge2(), testSdStarBiasedDeletesEdge3(), testSdStarPcKillsEdge(), testStar3IsCorrect(), testStar4EdgeIsCorrect(), testStar4IsCorrect(), testStar5IsCorrect(), testTerminalPathsRepair(), testTerminalPathsRepair2(), testTerminalPathsRepair3(), testTerminalPathsTo3NextFound(), testTerminalSeparatorsAreFound(), testTerminalSeparatorsAreFound2(), testTerminalSeparatorsAreFound3(), testTmGivesExpectedTreePcFull1(), testTmGivesExpectedTreePcFull2(), and testTmGivesExpectedTreePcFull3().
◆ graph_initHistory()
SCIP_RETCODE graph_initHistory | ( | SCIP * | scip, |
GRAPH * | graph | ||
) |
initialize data structures required to keep track of reductions
- Parameters
-
scip SCIP data structure graph graph
Definition at line 695 of file graph_base.c.
References GRAPH::ancestors, BMScopyMemoryArray, graph_get_nEdges(), graph_initAncestors(), graph_initPseudoAncestors(), graph_pc_isPcMw(), GRAPH::head, GRAPH::knots, nnodes, NULL, GRAPH::orghead, GRAPH::orgtail, GRAPH::pcancestors, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPallocMemoryArray, and GRAPH::tail.
Referenced by checkSdWalk(), graphBuildV5E5(), initPropgraph(), localExtendPc(), localInsertion(), localInsertion2(), localInsertion2pc(), localKeyPathExchange(), localKeyPathExchangeMw(), localKeyPathExchangePc(), localKeyPathExchangePc2(), localKeyVertex(), localKeyVertexPc(), localKeyVertexPc2(), prunegraphInit(), pseudoDelDouble(), pseudoDelSingle(), redcostGraphBuild(), reduce_exec(), SCIPStpHeurPruneRun(), SCIPStpHeurSlackPruneRun(), stptest_graphSetUp(), substpsolver_initHistory(), testDistCloseNodesAreValid(), testDistDistancesAreValid(), testDistRootPathsAreValid(), testEdgeDeletion1_deprecated(), testEdgeDeletion2_deprecated(), testEdgeDeletion3_deprecated(), testEdgeDeletion4_deprecated(), and updatePropgraph().
◆ graph_isMarked()
is the current graph properly marked?
- Parameters
-
g the graph
Definition at line 1165 of file graph_base.c.
References GRAPH::extended, FALSE, GRAPH::grad, graph_knot_printInfo(), graph_pc_isPcMw(), graph_pc_isRootedPcMw(), Is_pseudoTerm, Is_term, GRAPH::knots, GRAPH::mark, nnodes, GRAPH::source, GRAPH::term, and TRUE.
Referenced by bidecomposition_isPossible(), blctreeComputeBottlenecks(), blctreeComputeEdgesState(), extCheckArc(), extreduce_checkArc(), extreduce_checkEdge(), extreduce_deleteEdges(), extreduce_distDataRecomputeDirtyPaths(), findSolPcMw(), findSolRPcMw(), getRedCost2ndNextDistances(), graph_mark(), graph_tpathsRepair(), graph_transRpcGetSpg(), isPseudoDeletable(), pseudodeleteExecute(), redcosts_initializeDistances(), reduce_dapaths(), and termcompDeleteEdges().
◆ graph_isSetUp()
is the current graph already set up? (with history and path)
- Parameters
-
g the graph
Definition at line 1240 of file graph_base.c.
References GRAPH::ancestors, NULL, and GRAPH::orgtail.
Referenced by reduce_exec().
◆ graph_buildCompleteGraph()
SCIP_RETCODE graph_buildCompleteGraph | ( | SCIP * | scip, |
GRAPH ** | g, | ||
int | nnodes | ||
) |
builds complete graph (Kn) with unit edge weights and no terminals
- Parameters
-
scip SCIP data structure g new graph nnodes number of nodes
Definition at line 440 of file graph_base.c.
References graph_edge_add(), graph_init(), graph_knot_add(), nnodes, SCIP_CALL, and SCIP_OKAY.
Referenced by bdkInit(), reduce_bd34(), reduce_bd34WithSd(), and testSdGetterReturnsCorrectSds().
◆ graph_valid()
is the given graph valid?
- Parameters
-
scip scip struct g the graph
Definition at line 1480 of file graph_base.c.
References EAT_FREE, EAT_LAST, GRAPH::edges, FALSE, GRAPH::grad, graph_knot_printInfo(), graph_pc_isPcMw(), graph_pc_knotIsFixedTerm(), graph_trail_arr(), graphisValidPcMw(), GRAPH::head, GRAPH::ieat, GRAPH::inpbeg, Is_term, GRAPH::knots, nnodes, nterms, NULL, GRAPH::oeat, GRAPH::outbeg, SCIP_Bool, SCIP_CALL_ABORT, SCIPallocBufferArray, SCIPdebugMessage, SCIPfreeBufferArrayNull, GRAPH::source, GRAPH::tail, GRAPH::term, GRAPH::terms, and TRUE.
Referenced by boundPruneHeur(), boundPruneHeurMw(), buildsolgraph(), computeNewSols(), computePertubedSol(), computeReducedProbSolution(), computeSteinerTree(), daRoundExit(), decomposeExec(), decomposeExecExact(), decomposeGetSubgraph(), decomposeReduceSubDoIt(), execNvSl(), fixVarsRedbased(), graph_copyData(), graph_load(), graph_pack(), graph_save(), graph_subgraphReinsert(), graph_transPc(), graph_transPcmw2rooted(), graph_transRmw(), ledgeFromNetgraph(), localRun(), nsvExec(), redcostGraphBuild(), redcostGraphComputeSteinerTree(), redcostGraphComputeSteinerTreeDegCons(), redcostGraphComputeSteinerTreeDirected(), reduce_ans(), reduce_ansAdv(), reduce_ansAdv2(), reduce_applyPseudoDeletions(), reduce_bd34(), reduce_bd34WithSd(), reduce_bound(), reduce_boundHop(), reduce_boundHopDa(), reduce_boundHopR(), reduce_boundHopRc(), reduce_boundPruneHeur(), reduce_da(), reduce_dapaths(), reduce_daPcMw(), reduce_exec(), reduce_identifyNonLeafTerms(), reduce_impliedProfitBasedRpc(), reduce_nnp(), reduce_pathreplace(), reduce_pathreplaceExt(), reduce_redLoopStp(), reduce_sd(), reduce_sdBiased(), reduce_sdBiasedNeighbor(), reduce_sdPc(), reduce_sdsp(), reduce_simple(), reduce_simple_mw(), reduce_simple_pc(), reduce_simple_sap(), reduceLurk(), runTmPcMW_mode(), SCIPStpHeurAscendPruneRun(), SCIPStpHeurPruneRun(), SCIPStpHeurRecExclude(), SCIPStpHeurRecRun(), SCIPStpHeurSlackPruneRun(), SCIPStpPropGetGraph(), SCIPStpValidateSol(), sdgraphBuildDistgraph(), sdgraphBuildDistgraphFromTpaths(), selectBranchingVertexBySol(), and termcompDeleteEdges().
◆ graph_validInput()
is the given input graph valid?
- Parameters
-
scip scip struct g the graph
Definition at line 1619 of file graph_base.c.
References EAT_LAST, FALSE, GRAPH::grad, graph_get_nNodes(), graph_pc_isPcMw(), graph_pc_knotIsFixedTerm(), graph_trail_arr(), graphisValidPcMw(), GRAPH::head, GRAPH::ieat, GRAPH::inpbeg, Is_term, GRAPH::knots, nnodes, nterms, NULL, GRAPH::oeat, GRAPH::outbeg, SCIP_Bool, SCIP_CALL_ABORT, SCIPallocBufferArray, SCIPerrorMessage, SCIPfreeBufferArrayNull, GRAPH::source, GRAPH::tail, GRAPH::term, GRAPH::terms, and TRUE.
Referenced by check_inputgraph().
◆ graph_knotIsNWLeaf()
Definition at line 35 of file graph_node.c.
References GRAPH::cost, EAT_LAST, FARAWAY, LT, NULL, GRAPH::oeat, GRAPH::outbeg, STP_NWPTSPG, and GRAPH::stp_type.
Referenced by computeStarts(), graph_findCentralTerminal(), graph_knot_printInfo(), nwptstpSetRoot(), reduce_rpt(), and runTm().
◆ graph_subgraphExtract()
SCIP_RETCODE graph_subgraphExtract | ( | SCIP * | scip, |
GRAPH * | orggraph, | ||
SUBINOUT * | subinout, | ||
GRAPH ** | subgraph | ||
) |
Obtains a new subgraph corresponding to marked nodes. Also fills a node map from the new to the original nodes. Creates a shallow copy and moves parts wrt ancestor information: ancestors and pseudo-ancestors are kept/moved and will be modified also for original graph!
- Parameters
-
scip SCIP data structure orggraph original graph subinout data structure for inserting/extracting sub-problem subgraph graph to be created
Definition at line 712 of file graph_sub.c.
References borderNodesCollect(), extractSubgraphBuild(), graph_pc_isPcMw(), GRAPH::knots, SCIP_CALL, SCIP_OKAY, and GRAPH::withInexactReductions.
Referenced by decomposeExactSubTry(), decomposeGetSubgraph(), and decomposeReduceSubDoIt().
◆ graph_subinoutInit()
SCIP_RETCODE graph_subinoutInit | ( | SCIP * | scip, |
const GRAPH * | orggraph, | ||
SUBINOUT ** | subinout | ||
) |
initializes
- Parameters
-
scip SCIP data structure orggraph original graph subinout data structure for handling inclusion/exclusion of sub-problems
Definition at line 733 of file graph_sub.c.
References FALSE, graph_get_nNodes(), nnodes, NULL, SCIP_CALL, SCIP_OKAY, SCIPallocMemory, SCIPallocMemoryArray, and sub.
Referenced by bidecomposition_initSubInOut().
◆ graph_subinoutFree()
frees
- Parameters
-
scip SCIP data structure subinout data structure for handling inclusion/exclusion of sub-problems
Definition at line 859 of file graph_sub.c.
References SCIPfreeMemory, SCIPfreeMemoryArray, SCIPfreeMemoryArrayNull, StpVecFree, and sub.
Referenced by bidecomposition_free().
◆ graph_subinoutClean()
cleans
- Parameters
-
scip SCIP data structure subinout data structure for handling inclusion/exclusion of sub-problems
Definition at line 882 of file graph_sub.c.
References StpVecClear.
Referenced by decomposeExactSubDoIt(), and decomposeSolveSub().
◆ graph_subinoutUsesNewHistory()
new history per subproblem is being used?
- Parameters
-
subinout data structure for handling inclusion/exclusion of sub-problems
Definition at line 848 of file graph_sub.c.
Referenced by decomposeSolveSub().
◆ graph_subinoutActivateEdgeMap()
SCIP_RETCODE graph_subinoutActivateEdgeMap | ( | const GRAPH * | orggraph, |
SUBINOUT * | subinout | ||
) |
activates
- Parameters
-
orggraph original graph subinout data structure for handling inclusion/exclusion of sub-problems
Definition at line 769 of file graph_sub.c.
References graph_get_nEdges(), SCIP_CALL, SCIP_OKAY, SCIPallocMemoryArray, and TRUE.
Referenced by decomposeExec(), and decomposePartialExact().
◆ graph_subinoutActivateNewHistory()
void graph_subinoutActivateNewHistory | ( | SUBINOUT * | subinout | ) |
activates
- Parameters
-
subinout data structure for handling inclusion/exclusion of sub-problems
Definition at line 788 of file graph_sub.c.
References TRUE.
Referenced by decomposeExec(), and decomposePartialExact().
◆ graph_subinoutGetSubToOrgEdgeMap()
const int* graph_subinoutGetSubToOrgEdgeMap | ( | const SUBINOUT * | subinout | ) |
gets edge map
- Parameters
-
subinout data structure for handling inclusion/exclusion of sub-problems
Definition at line 812 of file graph_sub.c.
Referenced by decomposeExactFixSol(), decomposeExactSubDoIt(), decomposeSolveSub(), and subsolFixOrgEdges().
◆ graph_subinoutGetSubToOrgNodeMap()
const int* graph_subinoutGetSubToOrgNodeMap | ( | const SUBINOUT * | subinout | ) |
gets nodes map
- Parameters
-
subinout data structure for handling inclusion/exclusion of sub-problems
Definition at line 799 of file graph_sub.c.
Referenced by decomposeReduceSubDoIt().
◆ graph_subinoutGetOrgToSubNodeMap()
const int* graph_subinoutGetOrgToSubNodeMap | ( | const SUBINOUT * | subinout | ) |
gets nodes map
- Parameters
-
subinout data structure for handling inclusion/exclusion of sub-problems
Definition at line 825 of file graph_sub.c.
Referenced by bidecomposition_getMarkedSubRoot(), and decomposeReduceSubDoIt().
◆ graph_subinoutGetContractionRecord()
const int* graph_subinoutGetContractionRecord | ( | const SUBINOUT * | subinout | ) |
get contraction record for cut nodes (-1 if no contraction)
- Parameters
-
subinout data structure for handling inclusion/exclusion of sub-problems
Definition at line 837 of file graph_sub.c.
Referenced by bidecomposition_markSub().
◆ graph_knot_getContractionRecordAncestor()
int graph_knot_getContractionRecordAncestor | ( | int | node, |
const SUBINOUT * | subinout | ||
) |
gets ancestor
- Parameters
-
node node to get ancestors for subinout data structure for handling inclusion/exclusion of sub-problems
Definition at line 895 of file graph_sub.c.
Referenced by bidecomposition_markSub().
◆ graph_subgraphCompleteNewHistory()
SCIP_RETCODE graph_subgraphCompleteNewHistory | ( | SCIP * | scip, |
const int * | edgemap_subToOrg, | ||
GRAPH * | orggraph, | ||
GRAPH * | subgraph | ||
) |
completes history NOTE: necessary to allocate block memory on subscip
- Parameters
-
scip SCIP data structure edgemap_subToOrg maps edges of subgraph to original graph orggraph original graph subgraph graph to fill
Definition at line 920 of file graph_sub.c.
References BMScopyMemoryArray, GRAPH::cost, EQ, extractSubgraphInitHistory(), FALSE, GRAPH::fixedcomponents, graph_edge_getPseudoAncestors(), graph_edge_nPseudoAncestors(), graph_free_fixedEdgesOnly(), graph_get_nEdges(), graph_initAncestors(), graph_pseudoAncestors_appendCopyArrayToEdge(), GRAPH::head, GRAPH::orghead, GRAPH::orgtail, GRAPH::pseudoancestors, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPallocMemoryArray, and GRAPH::tail.
Referenced by substpsolver_transferHistory().
◆ graph_subgraphReinsert()
SCIP_RETCODE graph_subgraphReinsert | ( | SCIP * | scip, |
SUBINOUT * | subinout, | ||
GRAPH * | orggraph, | ||
GRAPH ** | subgraph | ||
) |
reinserts extracted (and modified) subgraph; also deletes subgraph. Dual to "graph_subgraphExtract"
- Parameters
-
scip SCIP data structure subinout data structure for handling inclusion/exclusion of sub-problems orggraph original graph subgraph graph to be reinserted (and freed)
Definition at line 983 of file graph_sub.c.
References FALSE, GRAPH::fixedcomponents, graph_free(), graph_path_exit(), graph_pc_isPcMw(), graph_valid(), NULL, GRAPH::orghead, GRAPH::orgtail, reinsertSubgraph(), SCIP_CALL, SCIP_OKAY, and SCIPfreeMemoryArray.
Referenced by decomposeReduceSubDoIt().
◆ graph_subgraphFree()
frees extracted subgraph. NOTE: fixed history components are not deleted
- Parameters
-
scip SCIP data structure subgraph graph to be freed
Definition at line 1022 of file graph_sub.c.
References FALSE, graph_free(), and graph_path_exit().
◆ graph_grid_create()
SCIP_RETCODE graph_grid_create | ( | SCIP * | scip, |
GRAPH ** | gridgraph, | ||
int ** | coords, | ||
int | nterms, | ||
int | grid_dim, | ||
int | scale_order | ||
) |
creates a graph out of a given grid
- Parameters
-
scip SCIP data structure gridgraph the grid graph to be constructed coords coordinates nterms number of terminals grid_dim problem dimension scale_order scale order
Definition at line 338 of file graph_grid.c.
References compEdges(), getNodeNumber(), graph_edge_add(), graph_init(), graph_knot_add(), graph_knot_chg(), GRAPH::grid_coordinates, GRAPH::grid_dim, GRAPH::grid_ncoords, nnodes, nterms, NULL, SCIP_CALL, SCIP_OKAY, SCIPallocBufferArray, SCIPallocMemoryArray, SCIPfreeBufferArray, SCIPsortInt(), STP_RSMT, and GRAPH::stp_type.
Referenced by graph_load().
◆ graph_obstgrid_create()
SCIP_RETCODE graph_obstgrid_create | ( | SCIP * | scip, |
GRAPH ** | gridgraph, | ||
int ** | coords, | ||
int ** | obst_coords, | ||
int | nterms, | ||
int | grid_dim, | ||
int | nobstacles, | ||
int | scale_order | ||
) |
creates a graph out of a given grid
- Parameters
-
scip SCIP data structure gridgraph the (obstacle) grid graph to be constructed coords coordinates of all points obst_coords coordinates of obstacles nterms number of terminals grid_dim dimension of the problem nobstacles number of obstacles scale_order scale factor
Definition at line 175 of file graph_grid.c.
References compEdgesObst(), FALSE, getNodeNumber(), graph_edge_add(), graph_init(), graph_knot_add(), graph_knot_chg(), graph_pack(), GRAPH::grid_coordinates, GRAPH::grid_dim, GRAPH::grid_ncoords, nnodes, nterms, NULL, SCIP_CALL, SCIP_OKAY, SCIPallocBufferArray, SCIPallocMemoryArray, SCIPfreeBufferArray, SCIPsortInt(), GRAPH::source, STP_OARSMT, GRAPH::stp_type, and TRUE.
Referenced by graph_load().
◆ graph_grid_coordinates()
SCIP_RETCODE graph_grid_coordinates | ( | SCIP * | scip, |
int ** | coords, | ||
int ** | nodecoords, | ||
int * | ncoords, | ||
int | node, | ||
int | grid_dim | ||
) |
computes coordinates of node 'node'
- Parameters
-
scip SCIP data structure coords coordinates nodecoords coordinates of the node (to be computed) ncoords array with number of coordinate node the node grid_dim problem dimension
Definition at line 486 of file graph_grid.c.
References NULL, SCIP_CALL, SCIP_OKAY, and SCIPallocMemoryArray.
Referenced by SCIPprobdataWriteSolution().
◆ graph_edge_add()
Referenced by computeHistory(), distgraphInsertEdge(), extractSubgraphAddEdge(), getBiasedMw(), graph_buildCompleteGraph(), graph_grid_create(), graph_load(), graph_obstgrid_create(), graph_transPc(), graph_transPcGetSap(), graph_transRmw(), graph_transRpc(), graph_voronoiWithRadius(), graphBuildV5E5(), localExtendPc(), localInsertion(), localInsertion2(), localInsertion2pc(), localKeyPathExchange(), localKeyPathExchangeMw(), localKeyPathExchangePc(), localKeyPathExchangePc2(), localKeyVertex(), localKeyVertexPc(), localKeyVertexPc2(), pseudoDelDouble(), pseudoDelSingle(), reduce_npv(), reduce_sd(), reduce_sdPc(), supergraphComputeMst(), testSdPcKillsEdge1(), testSdPcKillsEdge2(), and testSdPcKillsTwoEdges().
◆ graph_edge_addBi()
Referenced by graph_transPc2Spg(), graph_transRpc2FixedProper(), graph_transRpcGetSpg(), subgraphBuild(), testBdkSdMstDeletesNodeDeg3(), testBdkSdMstDeletesNodeDeg4(), testBdkSdMstStarDeletesNodeDeg4(), testBdkTreeDistDeletesNodeDeg4(), testBiasedTerminalPathsTo4NextFound(), testBiconnectedComponentsAreFound(), testBiconnectedComponentsAreFound2(), testBiconnectedComponentsAreFound3(), testBiconnectedDecomposition(), testBiconnectedDecomposition2(), testBiconnectedDecomposition3(), testBLCworksFor3Star(), testBLCworksFor3StarAfterReduction(), testBLCworksFor5Tree(), testDaPathsPcMw3EdgesWorks(), testDistCloseNodesAreValid(), testDistCloseNodesPcAreValid1(), testDistCloseNodesPcAreValid2(), testDistCloseNodesPcAreValidAfterDeletion(), testDistDistancesAreValid(), testDistRootPathsAreValid(), testEdgeDeletedBy3LeafSpg(), testEdgeDeletedByCommonRedCostsTargets(), testEdgeDeletedByEqBottleneck(), testEdgeDeletedByEqBottleneck2(), testEdgeDeletedByMst1(), testEdgeDeletedByMst2(), testEdgeDeletedByMultiRedCosts(), testEdgeDeletion1_deprecated(), testEdgeDeletion2_deprecated(), testEdgeDeletion3_deprecated(), testEdgeDeletion4_deprecated(), testEdgeDeletion5_deprecated(), testEdgeNotDeleted1(), testGeneralStarDeletedEdge1(), testGeneralStarDeletedEdge2(), testGeneralStarDeletedEdge3(), testNode3PseudoDeletedByContraction(), testNode3PseudoDeletedByRedCosts1(), testNode3PseudoDeletedBySd1(), testNode3PseudoDeletedBySd2(), testNode3PseudoDeletedBySd3(), testNode3PseudoDeletedBySdBiased(), testNode3PseudoDeletedBySdBiasedSimple(), testNode4PseudoDeletedBySd1(), testNode4PseudoNotDeletedBySd1(), testNsvImpliedContractsCutDistEdge(), testNsvImpliedContractsCutDistMiddleEdge(), testNsvImpliedContractsEdge(), testNsvImpliedContractsEdge2(), testNsvImpliedContractsImpliedToTermEdge(), testPathReplaceDeletesEdge(), testPathReplaceDeletesEdge2(), testPcEdgeDeletedByMst1(), testPcEdgeNotDeleted(), testPcNode3PseudoDeletedBySd1(), testPcNode4PseudoDeletedBySd1(), testPrunedSolIsImprovedPc1(), testPrunedSolIsImprovedPc2(), testRmwAnsDeletesOneEdge(), testRmwAnsDeletesOneNode(), testRmwAnsDeletesTwoNodes(), testRmwChain2DeletesNode(), testRmwNpv3DeletesNode(), testRmwTerminalContraction(), testRmwTerminalDeg1Contraction1(), testRmwTerminalDeg1Contraction2(), testRmwTerminalDeg1Contraction3(), testSdBiasedBottleneckDeletesEdge(), testSdBiasedBottleneckTermPathDeletesEdge(), testSdBiasedDeletesEdge(), testSdCliqueStarDeg3AdjacencyIsCorrect(), testSdCliqueStarDeg3IsCorrect(), testSdCliqueStarDeg3IsCorrect2(), testSdCliqueStarDeg4IsCorrect(), testSdCliqueStarDeletesEdge(), testSdGetterReturnsCorrectSds(), testSdGraphDistsAreValid(), testSdGraphDistsAreValid2(), testSdGraphQueriesAreValid(), testSdGraphStrongBiasedDistsAreValid(), testSdRepair(), testSdStarBiasedDeletesEdge(), testSdStarBiasedDeletesEdge2(), testSdStarBiasedDeletesEdge3(), testSdStarPcKillsEdge(), testStar3IsCorrect(), testStar4EdgeIsCorrect(), testStar4IsCorrect(), testStar5IsCorrect(), testTerminalPathsRepair(), testTerminalPathsRepair2(), testTerminalPathsRepair3(), testTerminalPathsTo3NextFound(), testTerminalSeparatorsAreFound(), testTerminalSeparatorsAreFound2(), testTerminalSeparatorsAreFound3(), testTmGivesExpectedTreePcFull1(), testTmGivesExpectedTreePcFull2(), and testTmGivesExpectedTreePcFull3().
◆ graph_edge_addSubgraph()
void graph_edge_addSubgraph | ( | SCIP * | scip, |
const GRAPH * | orggraph, | ||
const int * | nodemapOrg2sub, | ||
int | orgedge, | ||
GRAPH * | subgraph | ||
) |
add a new edge to a subgraph
- Parameters
-
scip SCIP data structure orggraph original graph nodemapOrg2sub node mapping from original to subgraph orgedge original edge subgraph the subgraph
Definition at line 341 of file graph_edge.c.
References GRAPH::cost, GRAPH::extended, flipedge, graph_edge_add(), graph_pc_isPcMw(), graph_pc_updateSubgraphEdge(), GRAPH::head, and GRAPH::tail.
Referenced by buildsolgraph(), packEdges(), redcostGraphBuild(), and SCIPStpHeurRecExclude().
◆ graph_edge_del()
delete an edge from standard data structure
- Parameters
-
scip SCIP data structure g the graph e the edge freeancestors free edge ancestors?
Definition at line 368 of file graph_edge.c.
References GRAPH::ancestors, EAT_FREE, EAT_HIDE, GRAPH::grad, graph_edge_delHistory(), GRAPH::head, GRAPH::ieat, GRAPH::knots, GRAPH::oeat, removeEdge(), and GRAPH::tail.
Referenced by ansProcessCandidateWithBridge(), boundPruneHeur(), boundPruneHeurMw(), cutEdgePrune(), daRpcmwDeleteTermIncidents(), decomposeExactFixSol(), delPseudoEdgeDeleteEdge(), graph_edge_delBlocked(), graph_edge_delFull(), graph_edge_redirect(), graph_knot_contract(), graph_knot_del(), graph_knot_delFull(), graph_knot_replaceDeg2(), graph_pc_deleteTerm(), graph_transPcGetRsap(), ledgeFromNetgraph(), mwContractNonPositiveChain(), mwTraverseChain(), pcmwDeleteNonSolEdges(), pcmwReduceKnotDeg1(), pcmwReduceTerm0Prize(), pcReduceTermDeg2(), propgraphDeleteEdge(), pseudoDelDouble(), reduce_bound(), reduce_boundHop(), reduce_boundHopR(), reduce_boundHopRc(), reduce_boundMw(), reduce_chain2(), reduce_cnsAdv(), reduce_daSlackPrune(), reduce_deleteConflictEdges(), reduce_deleteMultiedges(), reduce_fixedConflicts(), reduce_impliedProfitBasedRpc(), reduce_nnp(), reduce_npv(), reduce_nvAdv(), reduce_sd(), reduce_sdBiased(), reduce_sdBiasedNeighbor(), reduce_sdEdgeCliqueStar(), reduce_sdImpLongEdge(), reduce_sdPc(), reduce_sdsp(), reduce_sdspSap(), reduce_sdWalk(), reduce_sdWalkExt(), reduce_sdWalkExt2(), reduce_simple(), reduce_simple_dc(), reduce_simple_hc(), reduce_simple_sap(), reduce_unconnectedInfeas(), reduce_unconnectedRpcRmwInfeas(), reduceFixedVars(), reduceLurk(), reducePcMw(), reduceRootedProb(), reduceWithEdgeFixingBounds(), reinsertSubgraphDeleteOldEdges(), removeEdge(), SCIPStpHeurPruneRun(), SCIPStpHeurSlackPruneRun(), sepafullReduceFromSols(), termcompDeleteEdges(), termDeleteExtension(), testBLCworksFor3StarAfterReduction(), testSdRepair(), testTerminalPathsRepair2(), and testTerminalPathsRepair3().
◆ graph_edge_delFull()
delete an edge from standard, DCSR (if existent) and CSR (if existent) data structures
- Parameters
-
scip SCIP data structure g the graph e the edge freeancestors free edge ancestors?
Definition at line 418 of file graph_edge.c.
References GRAPH::csr_storage, GRAPH::dcsr_storage, FALSE, graph_dcsr_deleteEdgeBi(), graph_edge_del(), graph_valid_dcsr(), and dynamic_csr_storage::id2csredge.
Referenced by deleteEdge(), graph_knot_delFull(), removeEdge(), and testDistDistancesAreValid().
◆ graph_edge_delBlocked()
void graph_edge_delBlocked | ( | SCIP * | scip, |
GRAPH * | g, | ||
const SCIP_Bool * | edge_deletable, | ||
SCIP_Bool | freeancestors | ||
) |
deletes edges marked by given array
- Parameters
-
scip SCIP data structure g the graph edge_deletable marks edges to delete (of size nedges / 2) freeancestors free edge ancestors?
Definition at line 448 of file graph_edge.c.
References GRAPH::edges, and graph_edge_del().
Referenced by reduce_sdStar(), reduce_sdStarPc(), reduce_sdStarPc2(), reduce_sdWalk_csr(), reduce_sdWalkTriangle(), and sdStarFinalize().
◆ graph_edge_delHistory()
free the history of an edge
- Parameters
-
scip SCIP data g graph data edge edge for which to free the history
Definition at line 466 of file graph_edge.c.
References GRAPH::ancestors, flipedge_Uint, graph_edge_delPseudoAncestors(), and SCIPintListNodeFree().
Referenced by graph_edge_del(), graph_edge_reinsert(), graph_knot_replaceDeg2(), mwTraverseChain(), and packEdges().
◆ graph_edge_hide()
void graph_edge_hide | ( | GRAPH * | g, |
int | e | ||
) |
hide edge
- Parameters
-
g the graph e the edge
Definition at line 483 of file graph_edge.c.
References EAT_FREE, EAT_HIDE, GRAPH::grad, GRAPH::head, GRAPH::ieat, NULL, GRAPH::oeat, removeEdge(), and GRAPH::tail.
◆ graph_edge_redirect()
int graph_edge_redirect | ( | SCIP * | scip, |
GRAPH * | g, | ||
int | eki, | ||
int | k, | ||
int | j, | ||
SCIP_Real | cost, | ||
SCIP_Bool | forcedelete, | ||
SCIP_Bool | checkexist | ||
) |
redirects given edge eki
- Parameters
-
scip SCIP data structure g the graph eki the edge k new tail j new head cost new cost forcedelete delete edge eki if it is not used? checkexist check if there is already an edge kj
Definition at line 103 of file graph_edge.c.
References GRAPH::cost, EAT_FREE, EAT_LAST, Edge_anti, FALSE, GRAPH::grad, graph_edge_del(), graph_edge_isInRange(), GRAPH::head, GRAPH::ieat, GRAPH::inpbeg, NULL, GRAPH::oeat, GRAPH::outbeg, SCIPisGE(), SCIPisGT(), and GRAPH::tail.
Referenced by delPseudoPath(), extractSubgraphAddEdge(), graph_edge_reinsert(), graph_knot_replaceDeg2(), graph_transPcGetRsap(), graph_transPcGetSap(), graph_transPcmw2rooted(), and mwTraverseChain().
◆ graph_knot_contract()
SCIP_RETCODE graph_knot_contract | ( | SCIP * | scip, |
GRAPH * | g, | ||
int * | solnode, | ||
int | t, | ||
int | s | ||
) |
contracts node s into node t
- Parameters
-
scip SCIP data structure g graph data structure solnode node array to mark whether an node is part of a given solution (CONNECT), or NULL t tail node to be contracted (surviving node) s head node to be contracted
Definition at line 264 of file graph_node.c.
References singleton_ancestors_edge::ancestors, GRAPH::ancestors, CONNECT, GRAPH::contracttrace, GRAPH::cost, EAT_LAST, Edge_anti, Edge_even, FALSE, flipedge, flipedge_Uint, GRAPH::grad, graph_edge_del(), graph_edge_delPseudoAncestors(), graph_edge_nPseudoAncestors(), graph_knot_chg(), graph_knot_del(), graph_knot_isInRange(), graph_pseudoAncestors_appendCopySingToEdge(), graph_singletonAncestors_freeMembers(), graph_singletonAncestors_init(), graph_typeIsUndirected(), GRAPH::head, GRAPH::ieat, GRAPH::inpbeg, Is_term, section::mark, NULL, GRAPH::oeat, GRAPH::outbeg, singleton_ancestors_edge::revancestors, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPallocBlockMemoryArray, SCIPdebugMessage, SCIPfreeBlockMemoryArray, SCIPintListNodeAppendCopy(), SCIPintListNodeFree(), SCIPisGT(), SCIPisLE(), GRAPH::source, GRAPH::tail, GRAPH::term, and TRUE.
Referenced by borderNodesContract(), contractEdgeNoFixedEnd(), contractEdgeWithFixedEnd(), graph_knot_contractFixed(), graph_knot_contractLowdeg2High(), mwContract0WeightVertices(), reduce_contract0Edges(), reduce_simple(), and reduce_simple_sap().
◆ graph_knot_contractFixed()
SCIP_RETCODE graph_knot_contractFixed | ( | SCIP * | scip, |
GRAPH * | g, | ||
int * | solnode, | ||
int | edge, | ||
int | t, | ||
int | s | ||
) |
contract an edge, given index and by its endpoints, which is to be fixed
- Parameters
-
scip SCIP data structure g graph data structure solnode node array to mark whether an node is part of a given solution (CONNECT), or NULL edge the edge t tail node to be contracted (surviving node) s head node to be contracted
Definition at line 521 of file graph_node.c.
References graph_fixed_addEdge(), graph_knot_contract(), SCIP_CALL, and SCIP_OKAY.
Referenced by nsvEdgeContract(), reduce_nv(), reduce_nvAdv(), reduce_rpt(), reduce_simple_sap(), and reduce_sl().
◆ graph_knot_contractLowdeg2High()
SCIP_RETCODE graph_knot_contractLowdeg2High | ( | SCIP * | scip, |
GRAPH * | g, | ||
int * | solnode, | ||
int | t, | ||
int | s | ||
) |
contract endpoint of lower degree into endpoint of higher degree
- Parameters
-
scip SCIP data structure g graph data structure solnode node array to mark whether an node is part of a given solution (CONNECT), or NULL t tail node to be contracted s head node to be contracted
Definition at line 539 of file graph_node.c.
References GRAPH::grad, graph_knot_contract(), NULL, SCIP_CALL, and SCIP_OKAY.
Referenced by reduce_simple().
◆ graph_knot_replaceDeg2()
SCIP_RETCODE graph_knot_replaceDeg2 | ( | SCIP * | scip, |
int | vertex, | ||
SCIP_Real | edgecost, | ||
int | ancestornode, | ||
GRAPH * | g, | ||
SCIP_Bool * | edgeEliminated | ||
) |
pseudo deletes non-terminal of degree 2
- Parameters
-
scip SCIP data structure vertex the vertex to replace edgecost new edge cost ancestornode node to copy ancestors from or -1 g the graph edgeEliminated edge eliminated? (due to conflict)
Definition at line 158 of file graph_node.c.
References GRAPH::ancestors, BMScopyMemoryArray, GRAPH::cost, Edge_even, FALSE, flipedge, GRAPH::grad, graph_edge_del(), graph_edge_delHistory(), graph_edge_getAncestors(), graph_edge_getPseudoAncestors(), graph_edge_nPseudoAncestors(), graph_edge_redirect(), graph_knot_del(), graph_pc_isPcMw(), graph_pseudoAncestors_appendCopyArrayToEdge(), graph_pseudoAncestors_appendCopyNodeToEdge(), graph_typeIsUndirected(), graph_valid_pseudoAncestors(), GRAPH::head, Is_term, NULL, GRAPH::oeat, GRAPH::outbeg, GRAPH::pcancestors, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPallocBlockMemoryArray, SCIPdebugMessage, SCIPfreeBlockMemoryArrayNull, SCIPintListNodeAppend(), SCIPintListNodeAppendCopy(), SCIPintListNodeFree(), SCIPisEQ(), GRAPH::term, and TRUE.
Referenced by pcReduceKnotDeg2(), and reduce_simple().
◆ graph_edge_reinsert()
SCIP_RETCODE graph_edge_reinsert | ( | SCIP * | scip, |
GRAPH * | g, | ||
int | edge, | ||
int | tail, | ||
int | head, | ||
SCIP_Real | cost, | ||
int | ancestornode, | ||
SINGLETONANS * | ancestorsBackward, | ||
SINGLETONANS * | ancestorsForward, | ||
int * | insertedge, | ||
SCIP_Bool * | conflict | ||
) |
reinsert an edge to replace two other edges
- Parameters
-
scip SCIP data structure g the graph edge edge to reinsert tail new tail head new head cost new edge cost ancestornode node to copy ancestors from or -1 ancestorsBackward backwards (edge) ancestors ancestorsForward forward (edge) ancestors insertedge pointer to inserted edge or -1 conflict does the newly edge contain conflicts? (i.e. is redundant)
Definition at line 200 of file graph_edge.c.
References singleton_ancestors_edge::ancestors, GRAPH::ancestors, Edge_anti, Edge_even, FALSE, flipedge, graph_edge_delHistory(), graph_edge_redirect(), graph_pc_isPcMw(), graph_pseudoAncestors_appendCopyNodeToEdge(), graph_pseudoAncestors_appendCopySingToEdge(), graph_typeIsUndirected(), NULL, GRAPH::pcancestors, singleton_ancestors_edge::revancestors, SCIP_CALL, SCIP_OKAY, SCIPintListNodeAppendCopy(), and TRUE.
Referenced by delPseudoDeleteVertex(), delPseudoEdgeDeleteEdge(), and pcReduceTermDeg2().
◆ graph_knot_isInRange()
is node in range?
- Parameters
-
g the graph k the node
Definition at line 52 of file graph_node.c.
Referenced by addLevel(), bidecomposition_getMarkedSubRoot(), bidecomposition_markSub(), blctreeBuildMst(), blctreeComputeBottlenecks(), blctreeComputeEdgesState(), borderNodesCollect(), borderNodesContract(), bottleneckMarkEqualityPath(), closeNodesRunInit(), computeOrderingFromNode(), computeSteinerTree_execBiased(), cutNodesCompute(), cutNodesTreeBuildSteinerTree(), cutNodesTreeMakeTerms(), cutNodesTreeMakeTermsIsComplete(), dapathsRunShortestPaths(), dapathsUpdate(), decomposeCsrIsValid(), decomposeGetFirstMarked(), decomposeGetSubgraph(), dpborder_coreUpdateOrdering(), dpgraphInit(), dpsolverGetSolution(), dualascent_allTermsReachable(), dualascent_execDegCons(), extensionHasImplicationConflict(), extractSubgraphAddEdge(), extractSubgraphAddEdgesWithHistory(), extractSubgraphAddNodes(), extreduce_bottleneckCheckNonLeaves(), extreduce_bottleneckIsDominated(), extreduce_bottleneckIsDominatedBiased(), extreduce_distComputeRestrictedDist(), extreduce_distDataGetSp(), extreduce_mstbiasedCheck3NodeSimple(), extreduce_spgCheck3ComponentSimple(), extreduce_spgCheck3NodeSimple(), extStackTopProcessInitialEdges(), extTreeGetDirectedRedcost(), extTreeGetDirectedRedcostProper(), extTreeStackTopRootRemove(), getTreeRedcosts_dbg(), gmlWriteEdge(), graph_contractTrace(), graph_knot_contract(), graph_knot_del(), graph_knot_delFull(), graph_knot_hasContractTrace(), graph_path_st_dc(), graph_pathInLimitedExec(), graph_tpathsGetClosestTerm(), graph_tpathsGetProfitNodes(), graph_tpathsPrintForNode(), graph_transRpcGetSpg(), graphmarkIsClean(), impliedNodesRemoveTerm(), initSolve(), mincutFree(), redcostGraphBuild(), redcostGraphMark(), reduce_compbuilderPrintSeparators(), reduce_impliedNodesIsValid(), reduce_impliedNodesRepair(), reduce_nodesDeg1(), reduce_sdneighborGetCloseTerms(), reduce_termcompChangeSubgraphToBottleneck(), reduce_termsepaGetNextComp(), reinsertSubgraphAdaptSubToOrgMap(), reinsertSubgraphDeleteOldEdges(), reinsertSubgraphTransferEdges(), reinsertSubgraphTransferTerminals(), sdneighborUpdateExec(), sdqueryAttachBinaryTreeNode(), sdqueryBuildNodesToFullMap(), sdqueryBuildNodesToRmqMap(), subgraphBuild(), subgraphIdentify(), subtreesRemoveNonValids(), termcompMarkPseudoDelNodes(), termcompReduce(), termsepaCsrGetMaxNedges(), termsepaCutIsCorrect(), termsepaStoreCutTry(), termsepaTraverseSinkComp(), tpathsGetKCloseTerms(), tpathsPrintPath(), tpathsRepairExit(), tpathsRepairExitLevel(), tpathsRepairTraverse1st(), tpathsRepairTraverseLevelWithStack(), tpathsRepairTraverseStackAddBelow(), tpathsRepairUpdate1st(), tpathsRepairUpdateLevel(), tpathsScan2nd(), updateBorder(), updateTerminalSource(), and vnoiDataRepairPreprocess().
◆ graph_knot_add()
void graph_knot_add | ( | GRAPH * | p, |
int | term | ||
) |
add a vertex
- Parameters
-
p the graph term terminal property
Definition at line 64 of file graph_node.c.
References EAT_LAST, GRAPH::grad, GRAPH::inpbeg, Is_term, GRAPH::knots, GRAPH::ksize, GRAPH::mark, NULL, GRAPH::outbeg, GRAPH::term, GRAPH::terms, and TRUE.
Referenced by buildsolgraph(), computeHistory(), distgraphAddNodes(), extractSubgraphAddNodes(), getBiasedMw(), graph_buildCompleteGraph(), graph_grid_create(), graph_load(), graph_obstgrid_create(), graph_pack(), graph_transPc(), graph_transPc2Spg(), graph_transPcGetSap(), graph_transRmw(), graph_transRpc(), graph_transRpc2FixedProper(), graph_transRpcGetSpg(), graph_voronoiWithRadius(), graphBuildV5E5(), localExtendPc(), localInsertion(), localInsertion2(), localInsertion2pc(), localKeyPathExchange(), localKeyPathExchangeMw(), localKeyPathExchangePc(), localKeyPathExchangePc2(), localKeyVertex(), localKeyVertexPc(), localKeyVertexPc2(), packNodes(), pseudoDelDouble(), pseudoDelSingle(), redcostGraphBuild(), reduce_npv(), reduce_sd(), reduce_sdPc(), SCIPStpHeurRecExclude(), subgraphBuild(), supergraphComputeMst(), testBdkSdMstDeletesNodeDeg3(), testBdkSdMstDeletesNodeDeg4(), testBdkSdMstStarDeletesNodeDeg4(), testBdkTreeDistDeletesNodeDeg4(), testBiasedTerminalPathsTo4NextFound(), testBiconnectedComponentsAreFound(), testBiconnectedComponentsAreFound2(), testBiconnectedComponentsAreFound3(), testBiconnectedDecomposition(), testBiconnectedDecomposition2(), testBiconnectedDecomposition3(), testBLCworksFor3Star(), testBLCworksFor3StarAfterReduction(), testBLCworksFor5Tree(), testDaPathsPcMw3EdgesWorks(), testDistCloseNodesAreValid(), testDistCloseNodesPcAreValid1(), testDistCloseNodesPcAreValid2(), testDistCloseNodesPcAreValidAfterDeletion(), testDistDistancesAreValid(), testDistRootPathsAreValid(), testEdgeDeletedBy3LeafSpg(), testEdgeDeletedByCommonRedCostsTargets(), testEdgeDeletedByEqBottleneck(), testEdgeDeletedByEqBottleneck2(), testEdgeDeletedByMst1(), testEdgeDeletedByMst2(), testEdgeDeletedByMultiRedCosts(), testEdgeDeletion1_deprecated(), testEdgeDeletion2_deprecated(), testEdgeDeletion3_deprecated(), testEdgeDeletion4_deprecated(), testEdgeDeletion5_deprecated(), testEdgeNotDeleted1(), testGeneralStarDeletedEdge1(), testGeneralStarDeletedEdge2(), testGeneralStarDeletedEdge3(), testNode3PseudoDeletedByContraction(), testNode3PseudoDeletedByRedCosts1(), testNode3PseudoDeletedBySd1(), testNode3PseudoDeletedBySd2(), testNode3PseudoDeletedBySd3(), testNode3PseudoDeletedBySdBiased(), testNode3PseudoDeletedBySdBiasedSimple(), testNode4PseudoDeletedBySd1(), testNode4PseudoNotDeletedBySd1(), testNsvImpliedContractsCutDistEdge(), testNsvImpliedContractsCutDistMiddleEdge(), testNsvImpliedContractsEdge(), testNsvImpliedContractsEdge2(), testNsvImpliedContractsImpliedToTermEdge(), testPathReplaceDeletesEdge(), testPathReplaceDeletesEdge2(), testPcEdgeDeletedByMst1(), testPcEdgeNotDeleted(), testPcNode3PseudoDeletedBySd1(), testPcNode4PseudoDeletedBySd1(), testPrunedSolIsImprovedPc1(), testPrunedSolIsImprovedPc2(), testRmwAnsDeletesOneEdge(), testRmwAnsDeletesOneNode(), testRmwAnsDeletesTwoNodes(), testRmwChain2DeletesNode(), testRmwNpv3DeletesNode(), testRmwTerminalContraction(), testRmwTerminalDeg1Contraction1(), testRmwTerminalDeg1Contraction2(), testRmwTerminalDeg1Contraction3(), testSdBiasedBottleneckDeletesEdge(), testSdBiasedBottleneckTermPathDeletesEdge(), testSdBiasedDeletesEdge(), testSdCliqueStarDeg3AdjacencyIsCorrect(), testSdCliqueStarDeg3IsCorrect(), testSdCliqueStarDeg3IsCorrect2(), testSdCliqueStarDeg4IsCorrect(), testSdCliqueStarDeletesEdge(), testSdGetterReturnsCorrectSds(), testSdGraphDistsAreValid(), testSdGraphDistsAreValid2(), testSdGraphQueriesAreValid(), testSdGraphStrongBiasedDistsAreValid(), testSdPcKillsEdge1(), testSdPcKillsEdge2(), testSdPcKillsTwoEdges(), testSdRepair(), testSdStarBiasedDeletesEdge(), testSdStarBiasedDeletesEdge2(), testSdStarBiasedDeletesEdge3(), testSdStarPcKillsEdge(), testStar3IsCorrect(), testStar4EdgeIsCorrect(), testStar4IsCorrect(), testStar5IsCorrect(), testTerminalPathsRepair(), testTerminalPathsRepair2(), testTerminalPathsRepair3(), testTerminalPathsTo3NextFound(), testTerminalSeparatorsAreFound(), testTerminalSeparatorsAreFound2(), testTerminalSeparatorsAreFound3(), testTmGivesExpectedTreePcFull1(), testTmGivesExpectedTreePcFull2(), and testTmGivesExpectedTreePcFull3().
◆ graph_knot_chg()
void graph_knot_chg | ( | GRAPH * | p, |
int | node, | ||
int | term | ||
) |
change terminal property of a vertex
- Parameters
-
p the graph node node to be changed term terminal property
Definition at line 86 of file graph_node.c.
References Is_term, NULL, STP_TERM, STP_TERM_NONE, STP_TERM_NONLEAF, STP_TERM_PSEUDO, GRAPH::term, and GRAPH::terms.
Referenced by applyBranchHistoryToGraph(), boundPruneHeur(), cutNodesTreeMakeTerms(), decomposeExactFixSol(), distgraphAddNodes(), fixVarsDualcost(), getBiasedMw(), graph_grid_create(), graph_knot_contract(), graph_load(), graph_obstgrid_create(), graph_pc_2org(), graph_pc_2trans(), graph_pc_fixedTermToNonTerm(), graph_pc_knotToFixedTerm(), graph_pc_knotToFixedTermProperty(), graph_pc_knotToNonTermProperty(), graph_pc_nonTermToFixedTerm(), graph_transMw(), graph_transNw2pc(), graph_transPc(), graph_transPc2Spg(), graph_transPcGetRsap(), graph_transPcmw2rooted(), graph_transRmw(), graph_transRpc(), graph_transRpc2FixedProper(), initReceivedSubproblem(), keyNodesResetTerms(), keyNodesSetTerms(), localExtendPc(), localInsertion(), localInsertion2(), localInsertion2pc(), localKeyPathExchange(), localKeyPathExchangePc(), localKeyPathExchangePc2(), localKeyVertex(), localKeyVertexPc(), localKeyVertexPc2(), markNonLeafTerms_2trans(), markNonLeafTerms_pretransPc(), nsvEdgeContract(), propgraphFixNode(), reduce_bound(), reduce_boundHop(), reduce_sd(), reduce_sl(), reinsertSubgraphTransferTerminals(), SCIP_DECL_CONSSEPALP(), SCIPStpHeurTMRunLP(), selectBranchingVertexBySol(), sepafullReduceFromSols(), termDeleteExtension(), testBdkSdMstDeletesNodeDeg3(), testBdkSdMstDeletesNodeDeg4(), testBdkSdMstStarDeletesNodeDeg4(), testBdkTreeDistDeletesNodeDeg4(), testBiasedTerminalPathsTo4NextFound(), testBiconnectedComponentsAreFound(), testBiconnectedComponentsAreFound2(), testBiconnectedComponentsAreFound3(), testBiconnectedDecomposition(), testBiconnectedDecomposition2(), testBiconnectedDecomposition3(), testBLCworksFor5Tree(), testDaPathsPcMw3EdgesWorks(), testEdgeDeletion3_deprecated(), testEdgeDeletion4_deprecated(), testEdgeDeletion5_deprecated(), testNsvImpliedContractsCutDistEdge(), testNsvImpliedContractsCutDistMiddleEdge(), testNsvImpliedContractsEdge(), testNsvImpliedContractsEdge2(), testNsvImpliedContractsImpliedToTermEdge(), testRmwAnsDeletesOneEdge(), testRmwAnsDeletesOneNode(), testRmwAnsDeletesTwoNodes(), testRmwChain2DeletesNode(), testRmwNpv3DeletesNode(), testRmwTerminalContraction(), testRmwTerminalDeg1Contraction1(), testRmwTerminalDeg1Contraction2(), testRmwTerminalDeg1Contraction3(), testSdBiasedBottleneckDeletesEdge(), testSdBiasedBottleneckTermPathDeletesEdge(), testSdBiasedDeletesEdge(), testSdCliqueStarDeg3AdjacencyIsCorrect(), testSdCliqueStarDeg3IsCorrect(), testSdCliqueStarDeg3IsCorrect2(), testSdCliqueStarDeg4IsCorrect(), testSdCliqueStarDeletesEdge(), testSdGetterReturnsCorrectSds(), testSdGraphDistsAreValid(), testSdGraphDistsAreValid2(), testSdGraphStrongBiasedDistsAreValid(), testSdPcKillsEdge2(), testSdPcKillsTwoEdges(), testSdRepair(), testSdStarBiasedDeletesEdge(), testSdStarBiasedDeletesEdge2(), testSdStarBiasedDeletesEdge3(), testTerminalPathsRepair(), testTerminalPathsRepair2(), testTerminalPathsRepair3(), testTerminalPathsTo3NextFound(), testTerminalSeparatorsAreFound(), testTerminalSeparatorsAreFound2(), testTerminalSeparatorsAreFound3(), testTmGivesExpectedTreePcFull2(), and testTmGivesExpectedTreePcFull3().
◆ graph_knot_del()
deletes node
- Parameters
-
scip SCIP data structure g the graph k the node freeancestors free edge ancestors?
Definition at line 111 of file graph_node.c.
References EAT_LAST, GRAPH::grad, graph_edge_del(), graph_knot_isInRange(), GRAPH::inpbeg, and GRAPH::outbeg.
Referenced by ansDeleteVertex(), cutNodesTreeDeleteComponents(), delPseudoDeleteVertex(), graph_knot_contract(), graph_knot_replaceDeg2(), graph_pc_deleteTerm(), graph_transPcGetRsap(), graph_transPcmw2rooted(), pcmwReduceTerm0Prize(), propgraphApplyImplicationsPcMw(), propgraphDeleteNode(), pseudodeleteExecute(), reduce_daSlackPrune(), reduce_nodesDeg1(), reduce_npv(), reduce_simple_sap(), reduce_unconnected(), reduce_unconnectedForDirected(), reduce_unconnectedRpcRmwInfeas(), reduceRootedProb(), reduceWithNodeFixingBounds(), and rpcTryFullReduce().
◆ graph_knot_delFull()
deletes node, and also adapts DCSR storage
- Parameters
-
scip SCIP data structure g the graph k the node freeancestors free edge ancestors?
Definition at line 131 of file graph_node.c.
References GRAPH::dcsr_storage, EAT_LAST, GRAPH::grad, graph_edge_del(), graph_edge_delFull(), graph_knot_isInRange(), GRAPH::inpbeg, and GRAPH::outbeg.
◆ graph_knot_contract_dir()
void graph_knot_contract_dir | ( | GRAPH * | , |
int | , | ||
int | |||
) |
◆ graph_edge_delPseudo()
SCIP_RETCODE graph_edge_delPseudo | ( | SCIP * | scip, |
GRAPH * | g, | ||
const SCIP_Real * | cutoffcosts, | ||
const SCIP_Real * | cutoffs, | ||
const SCIP_Real * | cutoffsrev, | ||
int | edge, | ||
SCIP_Real * | edgecosts_adapt, | ||
SCIP_Bool * | success | ||
) |
Pseudo deletes edge, i.e. reconnects tail of edge with neighbors of head; maximum degree of STP_DELPSEUDO_MAXGRAD! The orientation of the edge is important!
- Parameters
-
scip SCIP data structure g the graph cutoffcosts edge costs for cutoff cutoffs cutoff values for each incident edge (or NULL) cutoffsrev reverse edge cutoff values (or NULL if undirected or non-existent) edge the edge, mind the orientation! edgecosts_adapt costs to adapt or NULL success has node been pseudo-eliminated?
Definition at line 1097 of file graph_delpseudo.c.
References delPseudoEdgeDeleteEdge(), delPseudoEdgeGetReplaceEdges(), delPseudoEdgeInit(), delPseudoFreeData(), delPseudoIsEdgeDeletionMode(), GRAPH::grad, graph_edge_isInRange(), GRAPH::head, NULL, SCIP_CALL, SCIP_OKAY, STP_DELPSEUDO_MAXGRAD, and TRUE.
Referenced by bdkTryDegGe4().
◆ graph_edge_delPseudoPath()
SCIP_RETCODE graph_edge_delPseudoPath | ( | SCIP * | scip, |
GRAPH * | g, | ||
int | edge, | ||
int | edge_pathtail, | ||
int | edge_pathhead, | ||
SCIP_Real * | edgecosts_adapt | ||
) |
Path replacement of edge; path is given by three oriented edges: edge_pathtail -> edge -> edge_pathhead. Middle edges is replaced.
- Parameters
-
scip SCIP data structure g the graph edge the edge to be replaced, mind the orientation! edge_pathtail tail edge of path edge_pathhead head edge of path edgecosts_adapt costs to adapt or NULL
Definition at line 1136 of file graph_delpseudo.c.
References delPseudoPath(), graph_edge_isInRange(), GRAPH::head, SCIP_CALL, SCIP_OKAY, and GRAPH::tail.
Referenced by replaceEdgeByPath().
◆ graph_knot_delPseudo()
SCIP_RETCODE graph_knot_delPseudo | ( | SCIP * | scip, |
GRAPH * | g, | ||
const SCIP_Real * | cutoffcosts, | ||
const SCIP_Real * | cutoffs, | ||
const SCIP_Real * | cutoffsrev, | ||
int | vertex, | ||
REDCOST * | redcostdata, | ||
SCIP_Bool * | success | ||
) |
pseudo delete node, i.e. reconnect neighbors; maximum degree of STP_DELPSEUDO_MAXGRAD!
- Parameters
-
scip SCIP data structure g the graph cutoffcosts edge costs for cutoff cutoffs cutoff values for each incident edge (or NULL) cutoffsrev reverse edge cutoff values (or NULL if undirected or non-existent) vertex the vertex redcostdata reduced cost data for adaptation or NULL success has node been pseudo-eliminated?
Definition at line 1015 of file graph_delpseudo.c.
References delPseudoDeleteVertex(), delPseudoFreeData(), delPseudoGetReplaceEdges(), delPseudoInit(), delPseudoIsEdgeDeletionMode(), GRAPH::grad, NULL, SCIP_CALL, SCIP_OKAY, STP_DELPSEUDO_MAXGRAD, STP_DELPSEUDO_MAXNEDGES, TRUE, and UNKNOWN.
Referenced by bdkTryDeg3(), bdkTryDegGe4(), boundPruneHeur(), pseudoDelDouble(), pseudodeleteDeleteNode(), pseudoDelSingle(), reduce_applyPseudoDeletions(), reduce_bd34(), reduce_bd34WithSd(), and reduce_bound().
◆ graph_knot_delPseudoCheckIfPossible()
SCIP_RETCODE graph_knot_delPseudoCheckIfPossible | ( | SCIP * | scip, |
const GRAPH * | g, | ||
const SCIP_Real * | cutoffcosts, | ||
const SCIP_Real * | cutoffs, | ||
const SCIP_Real * | cutoffsrev, | ||
int | vertex, | ||
SCIP_Bool * | isPossible | ||
) |
checks whether pseudo-deletion is possible; maximum degree of STP_DELPSEUDO_MAXGRAD!
- Parameters
-
scip SCIP data structure g the graph cutoffcosts edge costs for cutoff cutoffs cutoff values for each incident edge (or NULL) cutoffsrev reverse edge cutoff values (or NULL if undirected or non-existent) vertex the vertex isPossible can vertex pseudo-eliminated?
Definition at line 1063 of file graph_delpseudo.c.
References delPseudoCheckReplacement(), delPseudoFreeDataForCheck(), delPseudoInitForCheck(), delPseudoIsEdgeDeletionMode(), GRAPH::grad, NULL, SCIP_CALL, SCIP_OKAY, STP_DELPSEUDO_MAXGRAD, TRUE, and UNKNOWN.
Referenced by pseudodeleteDeleteComputeCutoffs().
◆ graph_printEdgeConflicts()
SCIP_RETCODE graph_printEdgeConflicts | ( | SCIP * | scip, |
const GRAPH * | g | ||
) |
prints edge conflicts
- Parameters
-
scip SCIP data structure g the graph
Definition at line 408 of file graph_stats.c.
References a, GRAPH::ancestors, GRAPH::edges, GRAPH::extended, FALSE, graph_edge_getPseudoAncestors(), graph_edge_nPseudoAncestors(), graph_getNfixpseudonodes(), graph_knot_getPseudoAncestors(), graph_knot_nPseudoAncestors(), graph_pc_isPcMw(), Is_term, GRAPH::knots, MAX, nnodes, NULL, GRAPH::orgedges, GRAPH::pcancestors, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPallocBufferArray, SCIPfreeBufferArray, GRAPH::term, and TRUE.
◆ graph_edge_printInfo()
void graph_edge_printInfo | ( | const GRAPH * | g, |
int | e | ||
) |
print information on edge
- Parameters
-
g the graph e the edge
Definition at line 133 of file graph_stats.c.
References GRAPH::cost, flipedge, graph_pc_isPcMw(), graph_typeIsUndirected(), h, GRAPH::head, GRAPH::tail, and GRAPH::term.
Referenced by applyEdgestateToProb(), bdkStarLoadNext(), bottleneckMarkEqualityPath(), delPseudoEdgeDeleteEdge(), delPseudoPath(), distCloseNodesPrintLostNodeInfo(), extreduce_printStack(), extStackAddCompsNonExpanded(), extTreeRuleOutEdgeSimple(), fixEdgestate(), generalStarCheck(), generalStarCheckGetNextStar(), generalStarCheckInit(), getBoundaryPathCostPrized(), getKeyPathsStar(), getKeyPathUpper(), graph_pc_transOrgAreConistent(), nsvEdgeContract(), pcsolPrune(), pcsubtreeDelete(), pcsubtreePruneForProfit(), reduce_blctreeGetMstEdgesToCutDist(), reduce_impliedProfitBasedRpc(), reduce_rpt(), reduce_sdBiased(), reduce_sdBiasedNeighbor(), reduce_sdEdgeCliqueStar(), reduce_sdImpLongEdge(), reduce_simple_sap(), reduce_sl(), removeEdge(), replaceEdgeByPath(), SCIPStpHeurLocalExtendPcMw(), sepafullReduceFromSols(), setEdgestate(), setSubBottleneckEdges(), solstp_print(), subgraphBuild(), subsolFixOrgEdges(), supergraphComputeMst(), tbottleneckInit(), termcompDeleteEdges(), testDistRootPathsAreValid(), tpathsPrintPath(), treeGetCounters(), and validateEdgestate().
◆ graph_edge_isBlocked()
is the edge blocked?
- Parameters
-
g the graph e the edge
Definition at line 94 of file graph_stats.c.
References BLOCKED, BLOCKED_MINOR, GRAPH::cost, EQ, FALSE, and TRUE.
Referenced by graph_pc_getOrgCosts(), graph_pc_getOrgCostsCsr(), graph_pc_shiftNonLeafCosts(), graph_pc_transOrgAreConistent(), setCostToOrgPc(), and setCostToOrgPcPreState().
◆ graph_edge_isDeleted()
has edge been deleted?
- Parameters
-
g the graph e the edge
Definition at line 121 of file graph_stats.c.
References EAT_FREE, and GRAPH::oeat.
Referenced by generalStarDeleteEdges(), nsvEdgeIsValid(), reduceLurk(), reinsertSubgraphTransferEdges(), termcompDeleteEdges(), testGeneralStarDeletedEdge1(), testGeneralStarDeletedEdge2(), testGeneralStarDeletedEdge3(), testPathReplaceDeletesEdge(), testPathReplaceDeletesEdge2(), and tpathsPrintPath().
◆ graph_edge_isInRange()
is edge in range?
- Parameters
-
g the graph e the edge
Definition at line 110 of file graph_stats.c.
Referenced by addComponentUpdateTreeCosts(), bdkTryDegGe4(), bottleneckMarkEqualityEdge(), closeNodesPathIsForbidden(), closeNodesRunCompute(), createPrizeConstraints(), daUpdateRescaps(), decomposeExactFixSol(), delPseudoPathCreatePseudoAncestorTuple(), distDataGetNormalDistForbidden(), distDataGetNormalDistForbiddenEq(), distDataGetNormalDistForbiddenLast(), extPreprocessInitialGenStar(), extractSubgraphAddEdge(), extreduce_bottleneckWithExtedgeIsDominated(), extreduce_bottleneckWithExtedgeIsDominatedBiased(), extreduce_distDataGetSdDoubleForbiddenEq(), extreduce_distDataGetSdDoubleForbiddenLast(), extreduce_distDataGetSdDoubleForbiddenSingle(), extreduce_edgeIsValid(), extreduce_extCompClean(), extreduce_redcostTreeRecompute(), extreduce_spgCheck3ComponentSimple(), extTreeStackTopRootRemove(), extUnhashInitialComponent(), generalStarCheck(), generalStarCheckExit(), generalStarCheckGetNextStar(), generalStarCheckInit(), getCloseNodeDistanceForbiddenLast(), getCloseNodePath(), gmlWriteEdge(), graph_edge_delPseudo(), graph_edge_delPseudoPath(), graph_edge_getAncestors(), graph_edge_redirect(), graph_tpathsGetProfitNodes(), graph_tpathsRepair(), graph_voronoiWithDist(), nsvEdgeIsValid(), nsvExec(), redcostGraphSolRetransform(), reduce_cutEdgeTryPrune(), reduce_impliedProfitBasedRpc(), reduce_sdprofitUpdateFromBLC(), reduce_sdRepair(), reduce_starResetWithEdges(), reduceLurk(), removeEdge(), sdgraphMstBuild(), sdqueryBuildBinaryTree(), sepafullReduceFromSols(), sepaspecial_vtimplicationsSeparate(), setSubBottleneckEdges(), subsolFixOrgEdges(), subSolIsRedundant(), tpathsPrintPath(), and tryPathPcMw().
◆ graph_hasMultiEdges()
graph with multi-edges?
- Parameters
-
scip SCIP data structure g graph data structure verbose be verbose?
Definition at line 185 of file graph_stats.c.
References EAT_LAST, FALSE, graph_get_nNodes(), GRAPH::head, nnodes, GRAPH::oeat, GRAPH::outbeg, SCIP_Bool, SCIP_CALL_ABORT, SCIPallocBufferArray, SCIPdebugMessage, SCIPerrorMessage, SCIPfreeBufferArray, and TRUE.
Referenced by check_inputgraph(), and graph_load().
◆ graph_isAlmostUniform()
has the graph almost uniform edge weights?
- Parameters
-
g the graph
Definition at line 237 of file graph_stats.c.
References GRAPH::cost, EAT_FREE, EQ, FARAWAY, graph_get_nEdges(), GRAPH::oeat, SCIP_Real, SCIPdebugMessage, STP_UNIFORM_MINRATIO, STP_UNIFORM_RANGEMAX, STP_UNIFORM_RANGEMIN, and TRUE.
◆ graph_knot_printInfo()
void graph_knot_printInfo | ( | const GRAPH * | g, |
int | k | ||
) |
print information on node
- Parameters
-
g the graph k the node
Definition at line 151 of file graph_stats.c.
References GRAPH::grad, graph_knotIsNWLeaf(), graph_pc_isPcMw(), graph_pc_knotIsFixedTerm(), graph_pc_knotIsNonLeafTerm(), Is_term, NULL, GRAPH::prize, GRAPH::source, STP_NWPTSPG, GRAPH::stp_type, GRAPH::term, and GRAPH::term2edge.
Referenced by addComponentUpdateLeavesStarts(), ansDeleteVertex(), bidecomposition_markSub(), createPrizeConstraints(), cutNodesGetLastCutnode(), cutNodesTreeDeleteComponents(), cutNodesTreeMakeTerms(), cutNodesTreeMakeTermsIsComplete(), dapathsFixPotTerms(), dapathsSortStarts(), decomposeCsrIsValid(), decomposeExactSubTry(), decomposeGetSubgraph(), distCloseNodesPrintLostNodeInfo(), extreduce_distCloseNodesAreValid(), graph_isMarked(), graph_path_st_dc(), graph_pc_term2edgeIsConsistent(), graph_tpathsPrintForNode(), graph_transRpcGetSpg(), graph_valid(), graphmarkIsClean(), propgraphDeleteNode(), propgraphFixNode(), reduce_applyPseudoDeletions(), reduce_bound(), reduce_compbuilderPrintSeparators(), reduce_rpt(), reduce_simple_sap(), reduce_unconnectedRpcRmwInfeas(), SCIPStpHeurLocalExtendPcMw(), SCIPStpHeurLocalExtendPcMwImp(), solDegIsValid(), solstp_isValid(), and termcompMarkPseudoDelNodes().
◆ graph_printInfo()
void graph_printInfo | ( | const GRAPH * | g | ) |
print information on graph
- Parameters
-
g the graph
Definition at line 299 of file graph_stats.c.
References GRAPH::budget, GRAPH::edges, GRAPH::extended, graph_pc_isPc(), graph_pc_isPcMw(), graph_pc_nFixedTerms(), graph_pc_nNonLeafTerms(), graph_pc_nProperPotentialTerms(), GRAPH::knots, NULL, GRAPH::source, STP_BRMWCSP, GRAPH::stp_type, and GRAPH::terms.
Referenced by decomposeExactSubDoIt(), pcmwEnumerationTry(), reduce_bound(), reduce_redLoopPc(), SCIPStpHeurAscendPruneRun(), solveSub(), solveWithDpBorder(), and tbottleneckInit().
◆ graph_printInfoReduced()
void graph_printInfoReduced | ( | const GRAPH * | g | ) |
print information on graph that has been subject to reductions
- Parameters
-
g the graph
Definition at line 375 of file graph_stats.c.
References GRAPH::extended, graph_get_nVET(), graph_pc_isPc(), graph_pc_isPcMw(), graph_pc_nFixedTerms(), graph_pc_nNonLeafTerms(), graph_pc_nProperPotentialTerms(), nnodes, nterms, GRAPH::source, and GRAPH::stp_type.
Referenced by decomposeReduceSubDoIt(), initHelpers(), lurkpruneInit(), mincut_findTerminalSeparators(), nodesolUpdate(), redcostGraphMark(), reduceLurk(), and SCIPStpHeurTMRun().
◆ graph_get_nNodes()
int graph_get_nNodes | ( | const GRAPH * | graph | ) |
get number of nodes
- Parameters
-
graph the graph
Definition at line 536 of file graph_stats.c.
References GRAPH::knots.
Referenced by allTermsAreVisited(), bidecomposition_cutnodesInit(), bidecomposition_init(), bidecomposition_isPossible(), bidecomposition_markSub(), blctreeBuildMst(), blctreeInitPrimitives(), borderNodesCollect(), buildTmAllSp(), cliquePathsInitData(), collectRoots(), computeOnMarked_init(), computeOrderingFromNode(), computeSteinerTree(), computeSteinerTree_allFixedTermsAreReached(), computeSteinerTree_allPseudoTermsAreReached(), computeSteinerTree_allTermsAreReached(), computeSteinerTree_init(), computeSteinerTreeTM(), createModel(), createPrizeConstraints(), cutEdgeProbe(), cutNodesGetLastCutnode(), cutNodesSetDfsRoot(), cutNodesTreeBuildSteinerTree(), cutNodesTreeDeleteComponents(), cutNodesTreeInit(), cutNodesTreeMakeTermsIsComplete(), dapathsInit(), dapathsSetRunParams(), dapathsSortStarts(), daRedcostsInit(), decomposeBuildCsr(), decomposeGetFirstMarked(), deletenodesDeg1(), dhcstpWarmUp(), distCloseNodesIncluded(), distgraphAddEdges(), distgraphAddEdgesFromTpaths(), distgraphAddNodes(), dpborder_coreSolve(), dpborder_dpbsequenceInit(), dpborderInitHelper(), dpgraphInit(), dpiterInit(), dualascent_allTermsReachable(), dualascent_execDegCons(), enumExec(), enumIsPromising(), extractSubgraphAddEdgesWithHistory(), extractSubgraphGetSizeAndMap(), extreduce_distCloseNodesAreValid(), extreduce_distDataRecomputeDirtyPaths(), extreduce_extdataCleanArraysDbg(), extreduce_extdataIsClean(), extreduce_extPermaInit(), extreduce_extPermaIsClean(), extreduce_pcdataIsClean(), extreduce_treeIsFlawed(), findSolPcMw2Term(), findSolRPcMw(), fixVarsRedbased(), getBiasedMw(), getBiasedPc(), getBoundchanges(), getOrgNodeToNodeMap(), getRedCost2ndNextDistances(), getSd(), graph_add1stTermPaths(), graph_add2ndTermPaths(), graph_add3rdTermPaths(), graph_add4thTermPaths(), graph_buildOrgNodesToReducedMap(), graph_csr_build(), graph_csr_buildCosts(), graph_csr_chgCosts(), graph_csr_costsAreInSync(), graph_dijkLimited_initPcShifts(), graph_findCentralTerminal(), graph_get2nextTermPaths(), graph_get3nextTermPaths(), graph_get4nextTermPaths(), graph_getTerms(), graph_hasMultiEdges(), graph_initContractTracing(), graph_load(), graph_mark(), graph_pack(), graph_path_exec(), graph_path_st_dc(), graph_pc_2org(), graph_pc_getNonLeafTermOffset(), graph_pc_getOrgCostsCsr(), graph_pc_knotHasMaxPrize(), graph_pc_nNonLeafTerms(), graph_pc_solGetObj(), graph_sdCloseNodesBiased(), graph_sdStarBiased(), graph_subinoutInit(), graph_tpathsAdd1st(), graph_tpathsAdd2nd(), graph_tpathsAdd3rd(), graph_tpathsAdd4th(), graph_tpathsGetProfitNodes(), graph_tpathsPrintForNode(), graph_tpathsRepairSetUp(), graph_tpathsSetAll2(), graph_tpathsSetAll3(), graph_tpathsSetAll4(), graph_transMw(), graph_transNw2pc(), graph_transNw2sap(), graph_transRpcGetSpg(), graph_transRpcToSpgIsStable(), graph_validInput(), graph_vnoiCompute(), graph_vnoiComputeImplied(), graph_vnoiInit(), graph_voronoiRepair(), graph_voronoiTerms(), graph_voronoiWithDist(), graph_writeReductionStats(), graph_writeStp(), graphmarkIsClean(), initPropAtFirstCall(), initRedcostdata(), initSolve(), isMaxprizeTerm(), keyNodesResetTerms(), keyNodesSetTerms(), ledgeFromNetgraph(), log2floor(), lurkpruneInit(), mincut_separateLp(), mincutExec(), mincutFree(), mincutInit(), mincutInitForLp(), mincutInitForTermSepa(), mincutPrepareForLp(), mst_getObj(), mst_getSoledges(), mst_init(), mwContract0WeightVertices(), mwContractTerminalsChainWise(), mwContractTerminalsSimple(), nodesolGetEdgeSol(), nodesolSetTrivial(), nodesolUpdate(), nsvInitData(), nwptstpSetRoot(), packNodes(), pcmwAdaptStarts(), pcmwDeleteNonSolEdges(), pcmwFindMax2Terms(), pcmwUpdateBestSol_csrInSync(), pcsolGetMstEdges(), pcsolMarkGraphNodes(), pcsolMarkGraphNodes_csr(), pcsolPrune(), prInit(), propgraphApplyImplicationsPcMw(), propgraphApplyStates(), propgraphMarkFixedTermsPcMw(), pruneSteinerTreeStp(), pseudodeleteBiasedIsPromising(), pseudodeleteDeleteMarkedNodes(), pseudodeleteExecute(), pseudodeleteInit(), redcostGetNTermsMarked(), redcostGraphBuild(), redcostGraphComputeSteinerTreeDirected(), redcostGraphMark(), redcostGraphSolRetransform(), redcosts_forLPget(), redcosts_initializeDistances(), reduce_ans(), reduce_ansAdv(), reduce_ansAdv2(), reduce_applyPseudoDeletions(), reduce_baseInit(), reduce_bdkWithSd(), reduce_blctreeGetMstBottlenecks(), reduce_blctreeGetMstEdges(), reduce_blctreeGetMstEdgesState(), reduce_blctreeGetMstEdgesToCutDist(), reduce_bound(), reduce_chain2(), reduce_cnsAdv(), reduce_compbuilderInit(), reduce_cutEdgeTryPrune(), reduce_daPcMw(), reduce_daSlackPrune(), reduce_dc(), reduce_getMinNreductions(), reduce_hc(), reduce_identifyNonLeafTerms(), reduce_impliedNodesGet(), reduce_impliedNodesIsValid(), reduce_mw(), reduce_nnp(), reduce_nodesDeg1(), reduce_npv(), reduce_nvAdv(), reduce_removeDeg0NonLeafTerms(), reduce_rpt(), reduce_sap(), reduce_sd(), reduce_sdBiased(), reduce_sdBiasedNeighbor(), reduce_sdEdgeCliqueStar(), reduce_sdImpLongEdge(), reduce_sdneighborGetCloseTerms(), reduce_sdneighborInit(), reduce_sdprofitPrintStats(), reduce_sdsp(), reduce_sdStarBiasedWithProfit(), reduce_simple_dc(), reduce_simple_mw(), reduce_simple_pc(), reduce_simple_sap(), reduce_solGetEdgesol(), reduce_solLevelTopUpdate(), reduce_sollocalInit(), reduce_sollocalUpdateNodesol(), reduce_solPack(), reduce_stp(), reduce_termcompChangeSubgraphToBottleneck(), reduce_unconnectedForDirected(), reduce_unconnectedInfeas(), reduceExact(), reducePcMw(), reinsertSubgraphAdaptSubToOrgMap(), reinsertSubgraphDeleteOldEdges(), reinsertSubgraphTransferTerminals(), reroot(), SCIPStpHeurSlackPruneRun(), SCIPStpHeurTMRunLP(), SCIPStpPropCheckForInfeas(), SCIPStpPropGetGraph(), SCIPStpValidateSol(), sdCliqueInitData(), sdCliqueUpdateGraphWithStarWalks(), sdGetSdsCliqueTermWalks(), sdgraphAlloc(), sdgraphAllocRestricted(), sdgraphMstBuild(), sdgraphMstMarkOrgEdges(), sdgraphMstSortCosts(), sdgraphSetDefaults(), sdgraphUpdateDistgraphFromTpaths(), sdneighborUpdateExec(), sdneighborUpdateInit(), sdprofitAlloc(), sdprofitBuild(), sdprofitBuild1stOnly(), sdqueryAttachBinaryTreeNode(), sdqueryBuildBinaryTree(), sdqueryBuildNodesToFullMap(), sdqueryBuildNodesToRmqMap(), sdqueryFullInit(), sdqueryGetRmqLength(), sdqueryLcaBuilderInit(), sdqueryRmqInit(), sdStarBiasedProcessNode(), sdStarInit(), selectBranchingVertexBySol(), sep_flow(), sepaspecial_pcimplicationsInit(), sepaspecial_vtimplicationsInit(), setNodeSolArray(), shortestpath_pcInit(), solGetMstEdges_csr(), solstp_getObjCsr(), solstp_isValid(), solstp_pcConnectDummies(), solstp_pcGetObjCsr(), solstp_pcGetSolRoot(), solstp_pruneFromEdges(), STP_Vectype(), stPcmwInit(), stpsol_pruningIsPossible(), stpsolPrune_csr(), strongPruneSteinerTreePc(), strongPruneSteinerTreePc_csr(), stRpcmwInit(), tbottleneckInit(), termcompDeleteEdges(), termcompMarkPseudoDelNodes(), termsepaCsrAddEdges(), termsepaCsrAddReverseEdges(), termsepaCsrAddTermCopies(), termsepaCsrGetMaxNedges(), termsepaCsrGetMaxNnodes(), termsepaCutIsCorrect(), termsepaStoreCutFinalize(), termsepaTraverseSinkComp(), tmAllspFree(), tmAllspInit(), tmBaseInit(), tmVnoiFree(), tmVnoiInit(), tpathsAlloc(), tpathsGetDistNew(), tpathsPrintPath(), tpathsRepairExit(), tpathsRepairInitLevel(), tpathsRepairTraverseLevelWithStack(), tpathsRepairTraverseStackAddBelow(), tpathsRepairTraverseStackAddEdge(), tpathsRepairUpdateLevel(), tpathsResetMembers(), tpathsScan2nd(), tpathsScan3rd(), tpathsScan4th(), trailGraphWithStates(), treeDistsAreFlawed(), treeResetCounters(), tryPathPcMw(), updateEdgestateFromRedPcmw(), updateTerminalSource(), vnoiCompute(), vnoiComputeImplied(), and vnoiInit().
◆ graph_get_nEdges()
int graph_get_nEdges | ( | const GRAPH * | graph | ) |
get number of edges
- Parameters
-
graph the graph
Definition at line 548 of file graph_stats.c.
References GRAPH::edges.
Referenced by applyEdgestateToProb(), blockEdgesWithGlobalFixings(), computeSteinerTree(), computeSteinerTreeSingleNode(), computeSteinerTreeTM(), createModel(), createPrizeConstraints(), dapathsDeleteEdges(), dapathsInitRedCosts(), daRedcostsInit(), daRoundInit(), daUpdateRescaps(), dhcstpWarmUp(), distgraphAddEdges(), distgraphGetNedges(), dpgraphInit(), dualascent_execDegCons(), enumeration_findSolPcMw(), extreduce_deleteArcs(), extreduce_deleteEdges(), extreduce_extdataIsClean(), extreduce_treeIsFlawed(), fixVarsRedbased(), getBoundchanges(), getGraphStatesDirected(), getRedCost2ndNextDistances(), graph_copyPseudoAncestors(), graph_csr_build(), graph_csr_buildCosts(), graph_csr_chgCosts(), graph_csr_costsAreInSync(), graph_getEdgeCosts(), graph_getEdgeRevCosts(), graph_initAncestors(), graph_initHistory(), graph_isAlmostUniform(), graph_pack(), graph_path_st_dc(), graph_pc_costsEqualOrgCosts(), graph_pc_getNorgEdges(), graph_pc_getOrgCosts(), graph_pc_getOrgCostsCsr(), graph_pc_solGetObj(), graph_subgraphCompleteNewHistory(), graph_subinoutActivateEdgeMap(), graph_transGstpClean(), graph_transNw2pc(), graph_writeReductionStats(), initRedcostdata(), keyNodesSetTerms(), ledgeFromNetgraph(), lpcutAdd(), lurkpruneFinalize(), lurkpruneInit(), mark0FixedArcs(), mincutInit(), mincutInitForLp(), mincutInitForTermSepa(), mincutPrepareForLp(), mst_getSoledges(), mst_init(), nodesolGetEdgeSol(), packEdges(), packPseudoAncestors(), pacliquesBuildMap(), pathreplaceExec(), pcmwEnumerationTry(), pcmwUpdateBestSol(), pcmwUpdateBestSol_csrInSync(), propgraphApplyStates(), pruneSteinerTreePc(), redcostGraphComputeSteinerTreeDegCons(), redcostGraphComputeSteinerTreeDirected(), redcostGraphMark(), redcostGraphSolRetransform(), redcosts_forLPareReliable(), redcosts_forLPget(), redcosts_increaseOnDeletedArcs(), redcosts_initializeDistances(), redcosts_unifyBlockedEdgeCosts(), reduce_baseInit(), reduce_bound(), reduce_boundHopDa(), reduce_dapaths(), reduce_daPcMw(), reduce_daSlackPrune(), reduce_fixedConflicts(), reduce_getMinNreductions(), reduce_hc(), reduce_sap(), reduce_sd(), reduce_stp(), reduceExact(), reduceFixedVars(), reduceLurk(), reinsertSubgraphTransferEdges(), runTmDhcstp(), SCIPStpHeurSlackPruneRun(), SCIPStpHeurTMRun(), SCIPStpHeurTMRunLP(), SCIPStpPropCheckForInfeas(), SCIPStpPropGetGraph(), sdgraphAlloc(), sdgraphBuildDistgraph(), sdgraphMstBuild(), sdgraphMstMarkOrgEdges(), sdgraphSetDefaults(), sdStarFinalize(), sdStarInit(), selectBranchingVertexBySol(), sepafullBuildSolcands(), sepafullReduceFromSols(), sepaspecial_pacliquesInit(), sepaspecial_pacliquesSeparate(), setNodeSolArray(), solAddTry(), solGetStpSol(), solpool_addSolToScip(), solstp_addSolToProb(), solstp_convertCsrToGraph(), solstp_getNedges(), solstp_getNedgesBounded(), solstp_getStpFromSCIPsol(), solstp_getTrivialSol(), solstp_isUnreduced(), solstp_print(), solstp_prune(), solstp_pruneFromEdges(), solstp_pruneFromTmHeur(), tbottleneckInit(), termcompComputeSubgraphSol(), termsepaCsrAddReverseEdges(), termsepaCsrGetMaxNedges(), termsepaCsrInit(), tmBaseInit(), treeResetCounters(), updateBestSol(), updateEdgestateFromRed(), updateEdgestateFromRedPcmw(), and validateEdgestate().
◆ graph_get_nTerms()
int graph_get_nTerms | ( | const GRAPH * | graph | ) |
get number of terminals
- Parameters
-
graph the graph
Definition at line 560 of file graph_stats.c.
References GRAPH::terms.
Referenced by dpgraphInit(), reduce_mw(), reduce_nvAdv(), reduce_stp(), and termsepaCsrGetMaxNnodes().
◆ graph_get_nVET()
void graph_get_nVET | ( | const GRAPH * | graph, |
int * | nnodes, | ||
int * | nedges, | ||
int * | nterms | ||
) |
get (real) number of nodes, edges, terminals
- Parameters
-
graph the graph nnodes number of nodes nedges number of edges nterms number of terminals
Definition at line 571 of file graph_stats.c.
References GRAPH::grad, Is_term, GRAPH::knots, MAX, NULL, and GRAPH::term.
Referenced by blctreeInitPrimitives(), daGetNruns(), dapathsIsPromising(), distDataInitSizes(), dpterms_isPromisingFully(), extreduce_getMaxTreeDepth(), getReductionRatios(), graph_printInfoReduced(), graph_writeReductionStats(), graph_writeStp(), initHelpers(), lurkpruneInit(), mincut_findTerminalSeparatorsIsPromising(), redLoopInnerMw(), reduce_compbuilderInit(), SCIPStpHeurPruneRun(), and SCIPStpHeurSlackPruneRun().
◆ graph_get_avgDeg()
get (real) average degree of graph
- Parameters
-
graph the graph
Definition at line 613 of file graph_stats.c.
References GRAPH::grad, and GRAPH::knots.
◆ graph_typeIsSpgLike()
is the given graph a variant that is effectively an STP??
- Parameters
-
g the graph
Definition at line 57 of file graph_stats.c.
References STP_GSTP, STP_OARSMT, STP_RSMT, STP_SPG, and GRAPH::stp_type.
Referenced by abortSlackPruneEarly(), addRedsol(), blockEdgesWithGlobalFixings(), check_inputgraph(), computeReducedProbSolution(), computeSteinerTree_execBiased(), computeSteinerTreeKeyNodesCsr(), createInitialCuts(), daGetNruns(), divideAndConquer(), extractSubgraphBuild(), extreduce_deleteEdges(), fixVarsRedbased(), fixVarsRedbasedIsPromising(), graph_writeReductionRatioStatsLive(), graph_writeStp(), initDecompose(), initPropAtFirstCall(), nodesolUpdate(), probAllowsSolBranching(), probtypeIsValidForSlackPrune(), redcostGraphBuild(), reduce_bidecomposition(), reduce_bidecompositionExact(), reduce_exec(), reduce_getMinNreductions(), reduce_redLoopStp(), runTm(), SCIP_DECL_CONSPROP(), SCIP_DECL_HEUREXEC(), SCIP_DECL_RELAXEXEC(), SCIPprobdataCreateFromGraph(), SCIPStpHeurTMRunLP(), selectBranchingVertexBySol(), sepaspecial_vtimplicationsInit(), setParams(), shortestpath_computeSteinerTree(), shortestpath_computeSteinerTreeBiased(), tmBaseInit(), updateBestSol(), updateSolution(), and useRedcostdata().
◆ graph_typeIsUndirected()
is the given graph (originally) undirected?
- Parameters
-
g the graph
Definition at line 69 of file graph_stats.c.
References FALSE, STP_DHCSTP, STP_NWPTSPG, STP_SAP, GRAPH::stp_type, and TRUE.
Referenced by computeDualSolutionGuided(), daGetNruns(), daGuidedIsPromising(), daRoundInit(), delPseudoPath(), extractSubgraphAddEdge(), graph_edge_getAncestors(), graph_edge_printInfo(), graph_edge_reinsert(), graph_initAncestors(), graph_knot_contract(), graph_knot_replaceDeg2(), graph_sdPaths(), graph_singletonAncestors_init(), graph_typeIsDirected(), graph_valid_ancestors(), redcostGraphMark(), reduce_rpt(), reduce_sap(), reduce_unconnectedForDirected(), reduceRootedProb(), SCIPStpHeurAscendPruneRun(), and SCIPStpHeurRecRun().
◆ graph_typeIsDirected()
is the given graph (originally) directed?
- Parameters
-
g the graph
Definition at line 83 of file graph_stats.c.
References graph_typeIsUndirected().
Referenced by computeSteinerTree_execDirected(), computeSteinerTreeCsr(), computeSteinerTreeRedCostsDirected(), computeSteinerTreeTM(), createInitialCuts(), daExec(), daOrderRoots(), daRoundExit(), graph_csr_build(), redcostGraphSolRetransform(), reduce_da(), reduceWithEdgeFixingBounds(), shortestpath_computeSteinerTreeDirected(), and solstp_isUnreduced().
◆ graph_transNw()
SCIP_RETCODE graph_transNw | ( | SCIP * | scip, |
PRESOL * | presol, | ||
GRAPH * | g | ||
) |
alters the graph for node-weighted Steiner tree problems
- Parameters
-
scip SCIP data structure presol presolving struct g the graph
Definition at line 1519 of file graph_trans.c.
References graph_transNw2pc(), graph_transNw2sap(), nwptstpSetRoot(), SCIP_CALL, SCIP_OKAY, STP_NWPTSPG, and GRAPH::stp_type.
Referenced by graph_load().
◆ graph_transNw2sap()
SCIP_RETCODE graph_transNw2sap | ( | SCIP * | scip, |
PRESOL * | presol, | ||
GRAPH * | g | ||
) |
alters the graph for node-weighted Steiner tree problems
- Parameters
-
scip SCIP data structure presol presolving struct g the graph
Definition at line 1487 of file graph_trans.c.
References GRAPH::cost, EAT_LAST, presolve_info::fixed, graph_get_nNodes(), GRAPH::ieat, GRAPH::inpbeg, Is_term, nnodes, GRAPH::prize, SCIP_OKAY, SCIP_Real, and GRAPH::term.
Referenced by graph_transNw().
◆ graph_transNw2pc()
SCIP_RETCODE graph_transNw2pc | ( | SCIP * | scip, |
PRESOL * | presol, | ||
GRAPH * | g | ||
) |
alters the graph for node-weighted Steiner tree problems
- Parameters
-
scip SCIP data structure presol presolving struct g the graph
Definition at line 1420 of file graph_trans.c.
References BLOCKED, GRAPH::cost, EQ, FARAWAY, presolve_info::fixed, GE, graph_get_nEdges(), graph_get_nNodes(), graph_knot_chg(), graph_transRpc(), GT, Is_term, LT, nnodes, GRAPH::prize, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPdebugMessage, GRAPH::source, STP_TERM, GRAPH::term, and GRAPH::terms.
Referenced by graph_transNw().
◆ graph_transGstpClean()
cleans up GSTP after transformation todo also compute a better big M than just the trivial one, e.g. by building an SAP and computing bound todo move the whole transformation here from graph_load, quite hacky at the moment
- Parameters
-
presol presolving struct graph the graph
Definition at line 1381 of file graph_trans.c.
References BLOCKED, GRAPH::cost, EQ, presolve_info::fixed, graph_get_nEdges(), GRAPH::head, Is_term, GRAPH::knots, LE, GRAPH::norgmodelknots, GRAPH::norgmodelterms, SCIP_Real, STP_GSTP, GRAPH::stp_type, GRAPH::tail, GRAPH::term, and GRAPH::terms.
Referenced by graph_load().
◆ graph_transPc()
SCIP_RETCODE graph_transPc | ( | SCIP * | scip, |
GRAPH * | graph | ||
) |
alters the graph for prize collecting problems
- Parameters
-
scip SCIP data structure graph the graph
Definition at line 154 of file graph_trans.c.
References GRAPH::edges, GRAPH::esize, GRAPH::extended, FARAWAY, flipedge, graph_edge_add(), graph_knot_add(), graph_knot_chg(), graph_pc_initTerm2Edge(), graph_pc_shiftNonLeafCosts(), graph_pc_term2edgeIsConsistent(), graph_resize(), graph_valid(), GRAPH::head, initCostOrgPc(), Is_nonleafTerm, Is_term, GRAPH::knots, GRAPH::ksize, markNonLeafTerms_pretransPc(), nnodes, GRAPH::norgmodeledges, GRAPH::norgmodelknots, GRAPH::orgsource, GRAPH::prize, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, SCIPisGE(), GRAPH::source, STP_MWCSP, STP_PCSPG, STP_TERM, STP_TERM_PSEUDO, GRAPH::stp_type, GRAPH::term, GRAPH::term2edge, TERM2EDGE_FIXEDTERM, TERM2EDGE_NONLEAFTERM, GRAPH::terms, and TRUE.
Referenced by checkSdWalk(), graph_load(), graph_transMw(), graphBuildV5E5(), localExtendPc(), localInsertion2pc(), localKeyPathExchangePc(), localKeyPathExchangePc2(), localKeyVertexPc(), localKeyVertexPc2(), and stptest_graphSetUpPcExtended().
◆ graph_transPc2Spg()
SCIP_RETCODE graph_transPc2Spg | ( | SCIP * | scip, |
PRESOL * | presol, | ||
GRAPH * | graph | ||
) |
alters the graph for prize collecting problems and transforms it to an SPG
- Parameters
-
scip SCIP data structure presol presolving struct graph the graph
Definition at line 257 of file graph_trans.c.
References BLOCKED, GRAPH::edges, EQ, GRAPH::esize, GRAPH::extended, FALSE, FARAWAY, presolve_info::fixed, graph_edge_addBi(), graph_knot_add(), graph_knot_chg(), graph_resize(), Is_term, GRAPH::knots, GRAPH::ksize, GRAPH::prize, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPfreeMemoryArrayNull, SCIPisGE(), SCIPisLT(), GRAPH::source, STP_SPG, STP_TERM, STP_TERM_NONE, GRAPH::stp_type, GRAPH::term, GRAPH::term2edge, and GRAPH::terms.
Referenced by graph_load().
◆ graph_transRpc()
SCIP_RETCODE graph_transRpc | ( | SCIP * | scip, |
GRAPH * | graph | ||
) |
alters the graph for rooted prize collecting problems
- Parameters
-
scip SCIP data structure graph the graph
Definition at line 373 of file graph_trans.c.
References GRAPH::edges, EQ, GRAPH::esize, GRAPH::extended, FARAWAY, flipedge, graph_edge_add(), graph_knot_add(), graph_knot_chg(), graph_pc_initTerm2Edge(), graph_pc_knotToFixedTermProperty(), graph_pc_shiftNonLeafCosts(), graph_resize(), GRAPH::head, initCostOrgPc(), Is_nonleafTerm, Is_term, GRAPH::knots, GRAPH::ksize, markNonLeafTerms_pretransPc(), nnodes, GRAPH::norgmodeledges, GRAPH::norgmodelknots, nterms, GRAPH::orgsource, GRAPH::prize, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, SCIPisEQ(), SCIPisGE(), SCIPisGT(), SCIPisLT(), GRAPH::source, STP_RPCSPG, STP_TERM, STP_TERM_NONE, STP_TERM_PSEUDO, GRAPH::stp_type, GRAPH::term, GRAPH::term2edge, TERM2EDGE_NONLEAFTERM, GRAPH::terms, and TRUE.
Referenced by graph_load(), graph_transNw2pc(), graph_transRpc2FixedProper(), and stptest_graphSetUpRpcExtended().
◆ graph_transRpc2SpgTrivial()
SCIP_RETCODE graph_transRpc2SpgTrivial | ( | SCIP * | scip, |
GRAPH * | g | ||
) |
alters the graph from rooted prize collecting problems to SPG if there are not potential terminals. NOTE: deletes some PC data, but keeps history, in order to be able to reconstruct original optimal solution.
- Parameters
-
scip SCIP data structure g the graph
Definition at line 505 of file graph_trans.c.
References GRAPH::costbudget, graph_pc_2orgcheck(), graph_pc_nNonLeafTerms(), graph_pc_nProperPotentialTerms(), GRAPH::prize, SCIP_ERROR, SCIP_OKAY, SCIPerrorMessage, SCIPfreeMemoryArrayNull, STP_RPCSPG, STP_SPG, GRAPH::stp_type, and GRAPH::term2edge.
Referenced by reduce_redLoopPc().
◆ graph_transRpc2FixedProper()
SCIP_RETCODE graph_transRpc2FixedProper | ( | SCIP * | scip, |
PRESOL * | presol, | ||
GRAPH * | graph | ||
) |
changes the graph for rooted prize collecting problems such that no proper potential terminal are fixed
- Parameters
-
scip SCIP data structure presol presolving struct graph the graph
Definition at line 531 of file graph_trans.c.
References BLOCKED, GRAPH::edges, GRAPH::esize, GRAPH::extended, FARAWAY, presolve_info::fixed, graph_edge_addBi(), graph_knot_add(), graph_knot_chg(), graph_resize(), graph_transRpc(), Is_term, isNonLeaf_pretransPc(), GRAPH::knots, GRAPH::ksize, nnodes, nterms, GRAPH::prize, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPisEQ(), SCIPisGE(), SCIPisGT(), SCIPisLT(), GRAPH::source, STP_TERM, STP_TERM_NONE, and GRAPH::term.
Referenced by graph_load().
◆ graph_transMw()
SCIP_RETCODE graph_transMw | ( | SCIP * | scip, |
GRAPH * | graph | ||
) |
alters the graph for MWCS problems
- Parameters
-
scip SCIP data structure graph the graph
Definition at line 632 of file graph_trans.c.
References GRAPH::cost, EAT_LAST, graph_get_nNodes(), graph_knot_chg(), graph_transPc(), GRAPH::ieat, GRAPH::inpbeg, Is_term, nnodes, nterms, NULL, GRAPH::prize, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPdebugMessage, SCIPisGE(), SCIPisGT(), SCIPisLE(), SCIPisLT(), STP_MWCSP, GRAPH::stp_type, GRAPH::term, and GRAPH::terms.
Referenced by graph_load(), and localKeyPathExchangeMw().
◆ graph_transRmw()
SCIP_RETCODE graph_transRmw | ( | SCIP * | scip, |
GRAPH * | graph | ||
) |
alters the graph for RMWCS problems
- Parameters
-
scip SCIP data structure graph the graph
Definition at line 687 of file graph_trans.c.
References GRAPH::cost, EAT_LAST, GRAPH::edges, EQ, GRAPH::esize, GRAPH::extended, FARAWAY, flipedge, GRAPH::grad, graph_edge_add(), graph_knot_add(), graph_knot_chg(), graph_pc_initTerm2Edge(), graph_pc_knotToFixedTermProperty(), graph_resize(), graph_valid(), GRAPH::head, GRAPH::ieat, GRAPH::inpbeg, Is_term, GRAPH::knots, GRAPH::ksize, LE, nnodes, GRAPH::norgmodeledges, GRAPH::norgmodelknots, NULL, GRAPH::orgsource, GRAPH::prize, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPdebugMessage, SCIPisGE(), SCIPisGT(), SCIPisLT(), GRAPH::source, STP_RMWCSP, STP_TERM, GRAPH::stp_type, GRAPH::term, GRAPH::term2edge, GRAPH::terms, and TRUE.
Referenced by graph_load(), and stptest_graphSetUpRmwExtended().
◆ graph_transPcmw2rooted()
SCIP_RETCODE graph_transPcmw2rooted | ( | SCIP * | scip, |
GRAPH * | graph, | ||
SCIP_Real | fixprize, | ||
SCIP_Bool | verbose | ||
) |
transforms PCSPG or MWCSP to RPCSPG or RMWCSP if possible
- Parameters
-
scip SCIP data structure graph the graph fixprize prize at which to make terminals verbose be verbose?
Definition at line 809 of file graph_trans.c.
References GRAPH::cost, EAT_LAST, GRAPH::extended, FARAWAY, flipedge, GRAPH::grad, graph_edge_redirect(), graph_knot_chg(), graph_knot_del(), graph_pc_getTwinTerm(), graph_pc_isRootedPcMw(), graph_pc_knotToFixedTermProperty(), graph_pc_knotToNonTermProperty(), graph_pc_presolExit(), graph_valid(), GRAPH::head, Is_pseudoTerm, Is_term, NULL, GRAPH::oeat, GRAPH::outbeg, GRAPH::prize, GRAPH::rootedgeprevs, SCIP_OKAY, SCIPdebugMessage, SCIPisGE(), GRAPH::source, STP_MWCSP, STP_PCSPG, STP_RMWCSP, STP_RPCSPG, STP_TERM_NONE, GRAPH::stp_type, GRAPH::term, GRAPH::term2edge, TERM2EDGE_NOTERM, GRAPH::terms, and TRUE.
Referenced by propgraphApplyBoundchanges(), reduce_redLoopMw(), and reduce_redLoopPc().
◆ graph_transPcGetSap()
SCIP_RETCODE graph_transPcGetSap | ( | SCIP * | scip, |
GRAPH * | graph, | ||
GRAPH ** | newgraph, | ||
SCIP_Real * | offset | ||
) |
obtains an SAP from prize collecting problems
- Parameters
-
scip SCIP data structure graph the graph newgraph the new graph offset offset (in/out)
Definition at line 931 of file graph_trans.c.
References GRAPH::cost, EAT_LAST, GRAPH::edges, GRAPH::esize, GRAPH::extended, FALSE, FARAWAY, flipedge, graph_copy(), graph_edge_add(), graph_edge_redirect(), graph_knot_add(), graph_pc_getNonLeafTermOffset(), graph_pc_isPc(), graph_pc_knotIsDummyTerm(), graph_pc_presolExit(), graph_pc_presolInit(), graph_resize(), GRAPH::ieat, GRAPH::inpbeg, Is_pseudoTerm, Is_term, GRAPH::knots, GRAPH::ksize, nnodes, nterms, GRAPH::prize, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPisLT(), SCIPisZero(), GRAPH::source, STP_PCSPG, STP_SAP, GRAPH::stp_type, GRAPH::tail, GRAPH::term, GRAPH::terms, and TRUE.
Referenced by dualascent_execPcMw(), reduce_daPcMw(), and testDaPathsPcMw3EdgesWorks().
◆ graph_transPcGetRsap()
SCIP_RETCODE graph_transPcGetRsap | ( | SCIP * | scip, |
GRAPH * | graph, | ||
GRAPH ** | newgraph, | ||
const int * | rootcands, | ||
int | nrootcands, | ||
int | saproot | ||
) |
builds new rooted SAP graph for prize-collecting problems (with given root for SAP)
- Parameters
-
scip SCIP data structure graph the graph newgraph the new graph rootcands array containing all vertices that could be used as root nrootcands number of all vertices that could be used as root saproot the root of the new SAP
Definition at line 1043 of file graph_trans.c.
References GRAPH::cost, EAT_LAST, GRAPH::edges, GRAPH::esize, FALSE, FARAWAY, flipedge, GRAPH::grad, graph_copy(), graph_edge_del(), graph_edge_redirect(), graph_knot_chg(), graph_knot_del(), graph_pc_2transcheck(), graph_pc_initPrizes(), graph_pc_initTerm2Edge(), graph_pc_isPcMw(), graph_pc_isRootedPcMw(), graph_pc_knotToFixedTermProperty(), graph_pc_presolExit(), graph_pc_presolInit(), GRAPH::head, Is_pseudoTerm, Is_term, GRAPH::knots, GRAPH::ksize, GRAPH::mark, nnodes, GRAPH::oeat, GRAPH::outbeg, GRAPH::prize, SCIP_CALL, SCIP_OKAY, GRAPH::source, STP_SAP, STP_TERM, STP_TERM_NONE, GRAPH::stp_type, GRAPH::tail, GRAPH::term, GRAPH::term2edge, TERM2EDGE_FIXEDTERM, TERM2EDGE_NOTERM, and TRUE.
Referenced by reduce_daPcMw().
◆ graph_transRpcGetSpg()
SCIP_RETCODE graph_transRpcGetSpg | ( | SCIP * | scip, |
const GRAPH * | graph, | ||
SCIP_Real | primalbound, | ||
SCIP_Real * | offset, | ||
int ** | edgemap_new2org, | ||
GRAPH ** | newgraph | ||
) |
constructs equivalent SPG for given RPC
- Parameters
-
scip SCIP data structure graph the graph primalbound primal bound for graph offset offset (in/out) edgemap_new2org maps edges newgraph the new graph
Definition at line 1217 of file graph_trans.c.
References BLOCKED, GRAPH::cost, EAT_LAST, GRAPH::edges, EQ, GRAPH::extended, FARAWAY, flipedge, GRAPH::grad, graph_edge_addBi(), graph_get_nNodes(), graph_init(), graph_isMarked(), graph_knot_add(), graph_knot_isInRange(), graph_knot_printInfo(), graph_pc_knotIsFixedTerm(), graph_pc_knotIsNonLeafTerm(), graph_pc_nNonLeafTerms(), graph_pc_nProperPotentialTerms(), graph_transRpcToSpgIsStable(), GT, GRAPH::head, Is_term, GRAPH::knots, LT, GRAPH::mark, MAX, GRAPH::oeat, GRAPH::outbeg, GRAPH::prize, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPallocMemoryArray, SCIPdebugMessage, SCIPfreeMemoryArray, GRAPH::source, STP_SPG, STP_TERM, STP_TERM_NONE, GRAPH::stp_type, and GRAPH::term.
Referenced by reduce_impliedProfitBasedRpc().
◆ graph_transRpcToSpgIsStable()
is a transformation stable?
- Parameters
-
graph the graph primalbound primal bound for graph
Definition at line 1188 of file graph_trans.c.
References FALSE, FARAWAY, GE, graph_get_nNodes(), GT, LE, LT, nnodes, GRAPH::prize, SCIP_Real, STP_RPCSPG, GRAPH::stp_type, and TRANS_MAXPRIZESUM.
Referenced by graph_transRpcGetSpg(), and reduce_impliedProfitBasedRpc().
◆ graph_pc_knotToNonTermProperty()
void graph_pc_knotToNonTermProperty | ( | GRAPH * | g, |
int | node | ||
) |
change property of node to be a non-terminal; prize is not changed!
- Parameters
-
g the graph node node to be changed
Definition at line 1044 of file graph_pcbase.c.
References graph_knot_chg(), graph_pc_isPcMw(), STP_TERM_NONE, GRAPH::term2edge, and TERM2EDGE_NOTERM.
Referenced by graph_pc_deleteTerm(), graph_pc_termToNonTerm(), graph_transPcmw2rooted(), and pcmwReduceTerm0Prize().
◆ graph_pc_knotToFixedTermProperty()
void graph_pc_knotToFixedTermProperty | ( | GRAPH * | g, |
int | node | ||
) |
change property of node to be a terminal; prize is changed, but no edges are deleted!
- Parameters
-
g the graph node node to be changed
Definition at line 1062 of file graph_pcbase.c.
References FARAWAY, graph_knot_chg(), GRAPH::prize, STP_TERM, GRAPH::term2edge, and TERM2EDGE_FIXEDTERM.
Referenced by graph_pc_enforceNode(), graph_pc_enforceNonLeafTerm(), graph_transPcGetRsap(), graph_transPcmw2rooted(), graph_transRmw(), and graph_transRpc().
◆ graph_pc_termToNonLeafTerm()
change property of (non-fixed) terminal to be a non-leaf terminal NOTE: if force == FALSE, then nothing is done if term is the last terminal
- Parameters
-
scip SCIP data structure g the graph term terminal to be changed force force the transformation? Should usually be FALSE
Definition at line 1210 of file graph_pcbase.c.
References GRAPH::extended, FALSE, graph_pc_isPcMw(), graph_pc_knotIsFixedTerm(), graph_pc_knotIsNonLeafTerm(), Is_term, isLastTerm(), GRAPH::term, GRAPH::term2edge, TERM2EDGE_NONLEAFTERM, and termDeleteExtension().
Referenced by contractEdgeNoFixedEnd(), and reduce_identifyNonLeafTerms().
◆ graph_pc_termToNonTerm()
Makes a non-fixed terminal a non-terminal. Also sets the prize to 0.0 for (R)PC!
- Parameters
-
scip SCIP data structure g graph data structure term terminal to be unfixed
Definition at line 1158 of file graph_pcbase.c.
References GRAPH::extended, FALSE, graph_pc_isPc(), graph_pc_isPcMw(), graph_pc_knotIsFixedTerm(), graph_pc_knotToNonTermProperty(), graph_pc_termIsNonLeafTerm(), Is_anyTerm, GRAPH::prize, GRAPH::source, GRAPH::term, and termDeleteExtension().
Referenced by contractEdgeNoFixedEnd(), contractEdgeWithFixedEnd(), and delPseudoInit().
◆ graph_pc_fixedTermToNonTerm()
Makes a fixed terminal a non-terminal
- Parameters
-
scip SCIP data structure g graph data structure term terminal to be unfixed
Definition at line 1189 of file graph_pcbase.c.
References graph_knot_chg(), graph_pc_isPcMw(), graph_pc_knotIsFixedTerm(), Is_anyTerm, GRAPH::prize, GRAPH::source, STP_TERM_NONE, GRAPH::term, GRAPH::term2edge, and TERM2EDGE_NOTERM.
Referenced by contractEdgeWithFixedEnd().
◆ graph_pc_knotToFixedTerm()
Makes a node a fixed terminal
- Parameters
-
scip SCIP data structure g graph data structure node node offset offset needed for RMW, or NULL
Definition at line 1079 of file graph_pcbase.c.
References GRAPH::extended, graph_knot_chg(), graph_pc_isMw(), graph_pc_isRootedPcMw(), graph_pc_knotIsFixedTerm(), graph_pc_nonTermToFixedTerm(), graph_pc_termIsNonLeafTerm(), Is_pseudoTerm, Is_term, GRAPH::prize, SCIP_Bool, GRAPH::source, STP_TERM_NONE, GRAPH::term, GRAPH::term2edge, TERM2EDGE_NOTERM, termDeleteExtension(), and TRUE.
Referenced by contractEdgeWithFixedEnd(), dapathsFixPotTerms(), propgraphApplyImplicationsPcMw(), propgraphFixNode(), and reduce_sl().
◆ graph_pc_nonTermToFixedTerm()
makes a non-terminal node a fixed terminal
- Parameters
-
g graph data structure node node offset offset needed for RMW, or NULL
Definition at line 1115 of file graph_pcbase.c.
References GRAPH::cost, EAT_LAST, EQ, FARAWAY, GRAPH::grad, graph_knot_chg(), graph_pc_isMw(), graph_pc_isRootedPcMw(), graph_pc_knotIsDummyTerm(), graph_pc_knotIsFixedTerm(), GRAPH::ieat, GRAPH::inpbeg, Is_pseudoTerm, Is_term, NULL, GRAPH::prize, SCIP_Bool, SCIP_Real, GRAPH::source, STP_TERM, STP_TERM_NONE, GRAPH::term, GRAPH::term2edge, TERM2EDGE_FIXEDTERM, and TERM2EDGE_NOTERM.
Referenced by applyBranchHistoryToGraph(), graph_pc_enforceNode(), and graph_pc_knotToFixedTerm().
◆ graph_pc_updateSubgraphEdge()
void graph_pc_updateSubgraphEdge | ( | const GRAPH * | orggraph, |
const int * | nodemapOrg2sub, | ||
int | orgedge, | ||
GRAPH * | subgraph | ||
) |
Updates prize-collecting data for an edge added to subgraph of given graph 'orggraph'. Needs to be called right before corresponding edge is added
- Parameters
-
orggraph original graph nodemapOrg2sub node mapping from original to subgraph orgedge original edge subgraph the subgraph
Definition at line 1661 of file graph_pcbase.c.
References GRAPH::cost_org_pc, GRAPH::edges, GRAPH::esize, GRAPH::extended, flipedge, graph_pc_isPc(), GRAPH::head, Is_anyTerm, GRAPH::source, GRAPH::tail, GRAPH::term, GRAPH::term2edge, and TERM2EDGE_NOTERM.
Referenced by graph_edge_addSubgraph().
◆ graph_pc_enforcePseudoTerm()
Enforces given pseudo-terminal without deleting edges. I.e. the terminal is part of any optimal solution.
- Parameters
-
scip SCIP data graph graph pterm the pseudo-terminal
Definition at line 1530 of file graph_pcbase.c.
References BLOCKED_MINOR, GRAPH::cost, graph_pc_getRoot2PtermEdge(), graph_pc_getTwinTerm(), graph_pc_knotIsDummyTerm(), graph_pc_knotIsPropPotTerm(), GRAPH::prize, SCIPisEQ(), and SCIPisLT().
Referenced by applyBranchHistoryToGraph(), and graph_pc_enforceNode().
◆ graph_pc_enforceNonLeafTerm()
Enforces non-leaf terminal without deleting edges. I.e. the terminal is part of any optimal solution.
- Parameters
-
scip SCIP data graph graph nonleafterm the terminal
Definition at line 1556 of file graph_pcbase.c.
References BLOCKED, GRAPH::cost, GRAPH::cost_org_pc, EAT_LAST, GRAPH::extended, graph_pc_isMw(), graph_pc_isPc(), graph_pc_isRootedPcMw(), graph_pc_knotIsNonLeafTerm(), graph_pc_knotToFixedTermProperty(), GRAPH::ieat, GRAPH::inpbeg, GRAPH::prize, and SCIPisLT().
Referenced by applyBranchHistoryToGraph().
◆ graph_pc_nonLeafTermIsEnforced()
is non-leaf term enforced?
- Parameters
-
scip SCIP data graph graph nonleafterm the terminal
Definition at line 1589 of file graph_pcbase.c.
References BLOCKED_MINOR, GRAPH::extended, graph_pc_isPcMw(), graph_pc_knotIsNonLeafTerm(), GRAPH::prize, and SCIPisEQ().
◆ graph_pc_enforceNode()
Tries to enforce node without deleting or adding edges. I.e. the terminal is part of any optimal solution. Is not always possible!
- Parameters
-
scip SCIP data graph graph term the terminal offset pointer to the offset, for RMW only
Definition at line 1606 of file graph_pcbase.c.
References GRAPH::extended, graph_pc_enforcePseudoTerm(), graph_pc_isMw(), graph_pc_isPcMw(), graph_pc_isRootedPcMw(), graph_pc_knotIsDummyTerm(), graph_pc_knotIsFixedTerm(), graph_pc_knotIsNonLeafTerm(), graph_pc_knotIsPropPotTerm(), graph_pc_knotToFixedTermProperty(), graph_pc_nonTermToFixedTerm(), Is_pseudoTerm, Is_term, and GRAPH::term.
Referenced by initReceivedSubproblem(), and propgraphFixNode().
◆ graph_pc_subtractPrize()
subtract a given sum from the prize of a terminal
- Parameters
-
scip SCIP data structure g the graph cost cost to be subtracted i the terminal
Definition at line 2315 of file graph_pcbase.c.
References GRAPH::cost, GRAPH::extended, graph_pc_getRoot2PtermEdge(), graph_pc_getTwinTerm(), graph_pc_isMw(), graph_pc_isPc(), graph_pc_isPcMw(), graph_pc_knotIsFixedTerm(), graph_pc_termIsNonLeafTerm(), GRAPH::head, Is_term, GRAPH::mark, GRAPH::prize, SCIPisEQ(), SCIPisGE(), GRAPH::source, GRAPH::tail, and GRAPH::term.
Referenced by contractEdgeNoFixedEnd().
◆ graph_pc_knotChgPrize()
changes prize of a node
- Parameters
-
g the graph newprize new prize node the node
Definition at line 1399 of file graph_pcbase.c.
References GRAPH::cost, EQ, GE, graph_pc_getRoot2PtermEdge(), graph_pc_getTwinTerm(), graph_pc_isPcMw(), graph_pc_knotIsPropPotTerm(), Is_term, mwKnotUpdateIncEdges(), GRAPH::prize, SCIP_Bool, STP_MWCSP, STP_RMWCSP, GRAPH::stp_type, and GRAPH::term.
Referenced by propgraphMarkFixedTermsPcMw().
◆ graph_pc_2org()
mark terminals and switch terminal property to original terminals
- Parameters
-
scip SCIP data structure graph the graph
Definition at line 1976 of file graph_pcbase.c.
References GRAPH::extended, FALSE, graph_get_nNodes(), graph_knot_chg(), graph_mark(), graph_pc_isPc(), graph_pc_isPcMw(), graph_pc_knotIsFixedTerm(), Is_nonleafTerm, Is_pseudoTerm, Is_term, nnodes, SCIP_STAGE_INITSOLVE, SCIPgetStage(), setCostToOrgPc(), setCostToOrgPcPreState(), GRAPH::source, STP_TERM, STP_TERM_PSEUDO, and GRAPH::term.
Referenced by checkSdWalk(), computeSteinerTree(), daPcFindRoots(), daPcMarkRoots(), daRoundInit(), findSolPcMw2Term(), findSolRPcMw(), fixVarsExtendedRed(), graph_pc_2orgcheck(), propgraphApplyBoundchanges(), redcosts_initializeDistances(), reduce_dapaths(), reduce_daPcMw(), reduce_daSlackPrune(), reduce_redLoopMw(), reduce_redLoopPc(), reduce_sollocalRebuildTry(), reduce_unconnectedRpcRmwInfeas(), SCIP_DECL_CONSSEPALP(), SCIPStpHeurLocalExtendPcMwOut(), SCIPStpHeurPruneRun(), stptest_graphSetUpPcOrg(), stptest_graphSetUpRmwOrg(), and stptest_graphSetUpRpcOrg().
◆ graph_pc_2trans()
mark transformed graph and adapt terminal properties to transformed graph
- Parameters
-
scip SCIP data structure graph the graph
Definition at line 2018 of file graph_pcbase.c.
References BMScopyMemoryArray, GRAPH::cost, GRAPH::cost_org_pc, GRAPH::edges, GRAPH::extended, graph_knot_chg(), graph_mark(), graph_pc_isPc(), graph_pc_isPcMw(), graph_pc_knotIsFixedTerm(), graph_pc_shiftNonLeafCosts(), Is_pseudoTerm, Is_term, GRAPH::knots, markNonLeafTerms_2trans(), nnodes, GRAPH::source, STP_TERM, STP_TERM_PSEUDO, GRAPH::term, and TRUE.
Referenced by computeSteinerTree(), daPcFindRoots(), daPcMarkRoots(), daRoundExit(), extreduce_pseudoDeleteNodes(), findSolPcMw2Term(), findSolRPcMw(), fixVarsExtendedRed(), graph_pc_2transcheck(), propgraphApplyBoundchanges(), redcosts_initializeDistances(), reduce_applyPseudoDeletions(), reduce_da(), reduce_dapaths(), reduce_daPcMw(), reduce_daSlackPrune(), reduce_redLoopMw(), reduce_redLoopPc(), reduce_sollocalRebuildTry(), reduce_unconnectedRpcRmwInfeas(), SCIP_DECL_CONSSEPALP(), SCIPStpHeurLocalExtendPcMwOut(), and SCIPStpHeurPruneRun().
◆ graph_pc_2orgcheck()
graph_pc_2org if extended
- Parameters
-
scip SCIP data structure graph the graph
Definition at line 2062 of file graph_pcbase.c.
References GRAPH::extended, and graph_pc_2org().
Referenced by extreduce_pseudoDeleteNodes(), graph_transRpc2SpgTrivial(), reduce_applyPseudoDeletions(), reduce_da(), reduce_daPcMw(), reducePcMw(), and SCIPStpHeurLocalExtendPcMwOut().
◆ graph_pc_2transcheck()
graph_pc_2trans if not extended
- Parameters
-
scip SCIP data structure graph the graph
Definition at line 2076 of file graph_pcbase.c.
References GRAPH::extended, and graph_pc_2trans().
Referenced by computePertubedSol(), dualascent_paths(), graph_transPcGetRsap(), SCIPStpHeurLocalExtendPcMw(), and SCIPStpHeurTMRun().
◆ graph_pc_getNorgEdges()
int graph_pc_getNorgEdges | ( | const GRAPH * | graph | ) |
gets number of undeleted, original edges (not going to dummy terminals)
- Parameters
-
graph the graph
Definition at line 1722 of file graph_pcbase.c.
References GRAPH::cost, EAT_FREE, FARAWAY, graph_get_nEdges(), graph_pc_knotIsDummyTerm(), GRAPH::head, LT, GRAPH::oeat, and GRAPH::tail.
◆ graph_pc_getReductionRatios()
void graph_pc_getReductionRatios | ( | const GRAPH * | graph, |
SCIP_Real * | ratio_nodes, | ||
SCIP_Real * | ratio_edges | ||
) |
gets ratio of remaining nodes/edges
- Parameters
-
graph graph ratio_nodes nodes ratio ratio_edges edges ratio
Definition at line 1751 of file graph_pcbase.c.
References GRAPH::edges, GRAPH::extended, GRAPH::grad, graph_pc_isPcMw(), graph_pc_isRootedPcMw(), graph_pc_knotIsDummyTerm(), graph_pc_nNonFixedTerms(), Is_pseudoTerm, Is_term, GRAPH::knots, nnodes, GRAPH::norgmodeledges, GRAPH::norgmodelknots, SCIP_Bool, SCIP_Real, GRAPH::source, GRAPH::term, and GRAPH::terms.
Referenced by getEdgeReductionRatio(), and getReductionRatiosPcMw().
◆ graph_pc_getOrgCosts()
gets original edge costs, when in extended mode
- Parameters
-
scip SCIP data structure graph the graph edgecosts original costs to be filled
Definition at line 1829 of file graph_pcbase.c.
References BLOCKED, BLOCKED_MINOR, BMScopyMemoryArray, GRAPH::cost, GRAPH::cost_org_pc, EQ, GRAPH::extended, graph_edge_isBlocked(), graph_get_nEdges(), graph_pc_isPcMw(), graph_pc_transOrgAreConistent(), SCIP_Bool, SCIP_Real, SCIP_STAGE_INITSOLVE, SCIPgetStage(), and TRUE.
Referenced by graph_pc_costsEqualOrgCosts(), localKeyVertexHeuristics(), localVertexInsertion(), runTmPcMW_mode(), and solstp_prune().
◆ graph_pc_getOrgCostsCsr()
gets original edge costs for CSR, when in extended mode
- Parameters
-
scip SCIP data structure g the graph csr CSR
Definition at line 1871 of file graph_pcbase.c.
References BLOCKED, BLOCKED_MINOR, csr_storage::cost, GRAPH::cost, GRAPH::cost_org_pc, csr_storage::edge_id, EQ, GRAPH::extended, graph_edge_isBlocked(), graph_get_nEdges(), graph_get_nNodes(), graph_pc_isPc(), graph_pc_transOrgAreConistent(), nnodes, csr_storage::nnodes, SCIP_Bool, SCIP_Real, csr_storage::start, and TRUE.
Referenced by tmBaseInit().
◆ graph_pc_markOrgGraph()
void graph_pc_markOrgGraph | ( | GRAPH * | g | ) |
mark original graph (without dummy terminals)
- Parameters
-
g the graph
Definition at line 1944 of file graph_pcbase.c.
References GRAPH::cost, EAT_LAST, GRAPH::extended, FALSE, GRAPH::grad, graph_pc_isPcMw(), graph_pc_isRootedPcMw(), graph_pc_knotIsDummyTerm(), GT, GRAPH::head, GRAPH::knots, GRAPH::mark, nnodes, NULL, GRAPH::oeat, GRAPH::outbeg, and GRAPH::source.
Referenced by graph_path_st_brmwcs(), graph_path_st_pcmw_extendBiased(), pcmwGetStartNodes(), and stRpcmwInit().
◆ graph_pc_adaptSap()
adapts SAP deriving from PCST or MWCS problem with new big M
- Parameters
-
bigM new big M value graph the SAP graph offset the offset
Definition at line 2156 of file graph_pcbase.c.
References GRAPH::cost, EAT_LAST, EQ, NULL, GRAPH::oeat, GRAPH::outbeg, SCIP_Real, SCIPdebugMessage, and GRAPH::source.
◆ graph_pc_presolExit()
changes graph of PC and MW problems needed after exiting presolving routines
- Parameters
-
scip SCIP data structure g the graph
Definition at line 858 of file graph_pcbase.c.
References NULL, GRAPH::rootedgeprevs, SCIPfreeMemoryArray, STP_RPCSPG, and GRAPH::stp_type.
Referenced by graph_transPcGetRsap(), graph_transPcGetSap(), graph_transPcmw2rooted(), and reduce_redLoopPc().
◆ graph_pc_getBiased()
Referenced by localKeyVertexHeuristics(), and runTmPcMW_mode().
◆ graph_pc_termMarkProper()
void graph_pc_termMarkProper | ( | const GRAPH * | g, |
int * | termmark | ||
) |
check whether terminal is not a leaf in at least one optimal tree
- Parameters
-
g the graph termmark terminal mark (2 for proper terminal, 1 for non-proper terminal, 0 otherwise)
Definition at line 1500 of file graph_pcbase.c.
References GRAPH::extended, graph_pc_termIsNonLeafTerm(), Is_term, GRAPH::knots, nnodes, and GRAPH::term.
Referenced by daPcFindRoots(), reduce_sdWalk(), reduce_sdWalk_csr(), reduce_sdWalkExt2(), reduce_sdWalkTriangle(), and sepaspecial_pcimplicationsInit().
◆ graph_pc_shiftNonLeafCosts()
shift costs of non-leaf terminals (call right after transformation to extended has been performed)
- Parameters
-
scip SCIP g the graph
Definition at line 671 of file graph_pcbase.c.
References GRAPH::cost, GRAPH::cost_org_pc, EAT_LAST, GRAPH::edges, GRAPH::extended, FARAWAY, flipedge, graph_edge_isBlocked(), graph_pc_isPc(), GRAPH::ieat, GRAPH::inpbeg, Is_nonleafTerm, GRAPH::knots, nnodes, GRAPH::oeat, GRAPH::prize, SCIP_Real, SCIPisEQ(), SCIPisGE(), SCIPisLT(), and GRAPH::term.
Referenced by graph_pc_2trans(), graph_transPc(), and graph_transRpc().
◆ graph_pc_getNonLeafTermOffset()
returns offset generated by non-leaf terminals
- Parameters
-
scip SCIP data structure graph graph data structure
Definition at line 2209 of file graph_pcbase.c.
References graph_get_nNodes(), graph_pc_knotIsNonLeafTerm(), nnodes, GRAPH::prize, SCIP_Real, SCIPisGT(), STP_PCSPG, STP_RPCSPG, and GRAPH::stp_type.
Referenced by computeDualSolution(), computeDualSolutionGuided(), computeSteinerTreeRedCosts(), computeSteinerTreeRedCostsPcMw(), graph_pack(), graph_pc_solGetObj(), graph_transPcGetSap(), pcmwUpdateBestSol_csrInSync(), reduce_sollocalRebuildTry(), testPrunedSolIsImprovedPc1(), testPrunedSolIsImprovedPc2(), testTmGivesExpectedTreePcFull1(), testTmGivesExpectedTreePcFull2(), and testTmGivesExpectedTreePcFull3().
◆ graph_pc_presolInit()
SCIP_RETCODE graph_pc_presolInit | ( | SCIP * | scip, |
GRAPH * | g | ||
) |
changes graph of PC and MW problems needed for presolving routines
- Parameters
-
scip SCIP data structure g the graph
Definition at line 815 of file graph_pcbase.c.
References EAT_LAST, GRAPH::edges, GRAPH::grad, GRAPH::ieat, GRAPH::inpbeg, NULL, GRAPH::oeat, GRAPH::outbeg, GRAPH::rootedgeprevs, SCIP_CALL, SCIP_OKAY, SCIPallocMemoryArray, GRAPH::source, STP_RPCSPG, and GRAPH::stp_type.
Referenced by graph_transPcGetRsap(), graph_transPcGetSap(), and reduce_redLoopPc().
◆ graph_pc_initSubgraph()
SCIP_RETCODE graph_pc_initSubgraph | ( | SCIP * | scip, |
GRAPH * | subgraph | ||
) |
allocates and initializes arrays for subgraph PC/MW
- Parameters
-
scip SCIP data structure subgraph the subgraph
Definition at line 763 of file graph_pcbase.c.
References GRAPH::cost_org_pc, GRAPH::edges, GRAPH::esize, graph_pc_initPrizes(), graph_pc_initTerm2Edge(), graph_pc_isPc(), graph_pc_isPcMw(), GRAPH::knots, GRAPH::ksize, SCIP_CALL, SCIP_OKAY, and SCIPallocMemoryArray.
Referenced by buildsolgraph(), packPcMwInit(), redcostGraphBuild(), and SCIPStpHeurRecExclude().
◆ graph_pc_finalizeSubgraph()
SCIP_RETCODE graph_pc_finalizeSubgraph | ( | SCIP * | scip, |
GRAPH * | subgraph | ||
) |
allocates and initializes arrays for subgraph PC/MW
- Parameters
-
scip SCIP data structure subgraph the subgraph
Definition at line 795 of file graph_pcbase.c.
References GRAPH::cost_org_pc, GRAPH::extended, graph_pc_isPc(), graph_pc_isPcMw(), Is_term, NULL, GRAPH::prize, SCIP_OKAY, GRAPH::source, GRAPH::term, and GRAPH::term2edge.
Referenced by buildsolgraph(), graph_pack(), redcostGraphBuild(), and SCIPStpHeurRecExclude().
◆ graph_pc_initPrizes()
SCIP_RETCODE graph_pc_initPrizes | ( | SCIP * | scip, |
GRAPH * | g, | ||
int | sizeprize | ||
) |
allocates prizes array for PC and MW problems
- Parameters
-
scip SCIP data structure g the graph sizeprize size of prize array to allocate (or -1)
Definition at line 741 of file graph_pcbase.c.
References FARAWAY, NULL, GRAPH::prize, SCIP_CALL, SCIP_OKAY, and SCIPallocMemoryArray.
Referenced by graph_load(), graph_pc_initSubgraph(), graph_transPcGetRsap(), graphBuildV5E5(), localExtendPc(), localInsertion2pc(), localKeyPathExchangeMw(), localKeyPathExchangePc(), localKeyPathExchangePc2(), localKeyVertexPc(), localKeyVertexPc2(), testDaPathsPcMw3EdgesWorks(), testDistCloseNodesPcAreValid1(), testDistCloseNodesPcAreValid2(), testDistCloseNodesPcAreValidAfterDeletion(), testPcEdgeDeletedByMst1(), testPcEdgeNotDeleted(), testPcNode3PseudoDeletedBySd1(), testPcNode4PseudoDeletedBySd1(), testPrunedSolIsImprovedPc1(), testPrunedSolIsImprovedPc2(), testRmwAnsDeletesOneEdge(), testRmwAnsDeletesOneNode(), testRmwAnsDeletesTwoNodes(), testRmwChain2DeletesNode(), testRmwNpv3DeletesNode(), testRmwTerminalContraction(), testRmwTerminalDeg1Contraction1(), testRmwTerminalDeg1Contraction2(), testRmwTerminalDeg1Contraction3(), testSdBiasedBottleneckDeletesEdge(), testSdPcKillsEdge1(), testSdPcKillsEdge2(), testSdPcKillsTwoEdges(), testSdStarPcKillsEdge(), testTmGivesExpectedTreePcFull1(), testTmGivesExpectedTreePcFull2(), and testTmGivesExpectedTreePcFull3().
◆ graph_pc_initTerm2Edge()
SCIP_RETCODE graph_pc_initTerm2Edge | ( | SCIP * | scip, |
GRAPH * | g, | ||
int | size | ||
) |
initializes term2edge array
- Parameters
-
scip SCIP data structure g the graph size the size
Definition at line 721 of file graph_pcbase.c.
References SCIP_CALL, SCIP_OKAY, SCIPallocMemoryArray, GRAPH::term2edge, and TERM2EDGE_NOTERM.
Referenced by graph_pc_initSubgraph(), graph_transPc(), graph_transPcGetRsap(), graph_transRmw(), and graph_transRpc().
◆ graph_pc_contractNodeAncestors()
SCIP_RETCODE graph_pc_contractNodeAncestors | ( | SCIP * | scip, |
GRAPH * | g, | ||
int | t, | ||
int | s, | ||
int | ets | ||
) |
contract ancestors of an edge of (rooted) prize-collecting Steiner tree problem or maximum-weight connected subgraph problem
- Parameters
-
scip SCIP data structure g the graph t tail node to be contracted (surviving node) s head node to be contracted ets edge from t to s or -1
Definition at line 2352 of file graph_pcbase.c.
References EAT_LAST, graph_edge_getAncestors(), GRAPH::head, NULL, GRAPH::oeat, GRAPH::outbeg, GRAPH::pcancestors, SCIP_CALL, SCIP_OKAY, and SCIPintListNodeAppendCopy().
Referenced by contractEdgeNoFixedEnd(), and mwContract0WeightVertices().
◆ graph_pc_contractEdge()
SCIP_RETCODE graph_pc_contractEdge | ( | SCIP * | scip, |
GRAPH * | g, | ||
int * | solnode, | ||
int | t, | ||
int | s, | ||
int | term4offset | ||
) |
contract an edge of (rooted) prize-collecting Steiner tree problem or maximum-weight connected subgraph problem
- Parameters
-
scip SCIP data structure g the graph solnode solution nodes or NULL t tail node to be contracted (surviving node) s head node to be contracted term4offset terminal to add offset to
Definition at line 2385 of file graph_pcbase.c.
References contractEdgeNoFixedEnd(), contractEdgeWithFixedEnd(), EAT_LAST, GRAPH::extended, GRAPH::grad, graph_pc_isMw(), graph_pc_isRootedPcMw(), graph_pc_knotIsFixedTerm(), GRAPH::head, Is_anyTerm, Is_term, mwKnotUpdateIncEdges(), GRAPH::oeat, GRAPH::outbeg, GRAPH::prize, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, SCIPisEQ(), GRAPH::source, GRAPH::term, GRAPH::term2edge, and TERM2EDGE_NOTERM.
Referenced by graph_pc_contractEdgeUnordered(), mwContract0WeightVertices(), mwContractTerminalsChainWise(), mwContractTerminalsSimple(), mwReduceTermDeg1(), pcReduceTermDeg1(), pcReduceTermDeg2(), reduce_impliedProfitBasedRpc(), reduce_nv(), reduce_nvAdv(), and reduce_sl().
◆ graph_pc_contractEdgeUnordered()
SCIP_RETCODE graph_pc_contractEdgeUnordered | ( | SCIP * | scip, |
GRAPH * | g, | ||
int * | solnode, | ||
int | t, | ||
int | s | ||
) |
contract an edge of (rooted) prize-collecting Steiner tree problem or maximum-weight connected subgraph problem; method decides whether to contract s into t or vice-versa. Offset is added to surviving node
- Parameters
-
scip SCIP data structure g the graph solnode solution nodes or NULL t tail node to be contracted s head node to be contracted
Definition at line 2439 of file graph_pcbase.c.
References GRAPH::grad, graph_pc_contractEdge(), graph_pc_termIsNonLeafTerm(), SCIP_CALL, SCIP_OKAY, and GRAPH::source.
Referenced by pcContractWithAdjacentTerm().
◆ graph_pc_deleteTerm()
Deletes a terminal for a (rooted) prize-collecting problem. Note that the prize of the terminal is not changed!
- Parameters
-
scip SCIP data structure g graph data structure term terminal to be deleted offset pointer to the offset
Definition at line 2235 of file graph_pcbase.c.
References EAT_LAST, GRAPH::extended, FALSE, GRAPH::grad, graph_edge_del(), graph_knot_del(), graph_pc_getTwinTerm(), graph_pc_isPcMw(), graph_pc_knotIsFixedTerm(), graph_pc_knotToNonTermProperty(), graph_pc_termIsNonLeafTerm(), GRAPH::head, Is_pseudoTerm, Is_term, GRAPH::mark, GRAPH::outbeg, GRAPH::prize, SCIPisZero(), GRAPH::source, GRAPH::term, GRAPH::term2edge, TRUE, and UNKNOWN.
Referenced by cutNodesTreeDeleteComponents(), pcReduceTermDeg1(), pcReduceTermDeg2(), propgraphApplyImplicationsPcMw(), propgraphDeleteNode(), reduce_bound(), reduce_removeDeg0NonLeafTerms(), reduce_simple_mw(), reduce_simple_pc(), and reduce_unconnectedRpcRmwInfeas().
◆ graph_pc_realDegree()
Definition at line 2112 of file graph_pcbase.c.
References GRAPH::extended, GRAPH::grad, graph_pc_isMw(), graph_pc_isPcMw(), graph_pc_isRootedPcMw(), graph_pc_knotIsFixedTerm(), graph_pc_knotIsNonLeafTerm(), Is_pseudoTerm, Is_term, NULL, SCIP_Bool, GRAPH::source, and GRAPH::term.
Referenced by delPseudoInitForCheck(), graph_pc_evalTermIsNonLeaf(), graph_pc_term2edgeIsConsistent(), pseudodeleteNodeIsPromising(), reduce_bd34(), reduce_simple_mw(), and reduce_simple_pc().
◆ graph_pc_getRoot2PtermEdge()
int graph_pc_getRoot2PtermEdge | ( | const GRAPH * | graph, |
int | pseudoterm | ||
) |
get edge from root to (pseudo) terminal
- Parameters
-
graph the graph pseudoterm the pseudo terminal
Definition at line 2499 of file graph_pcbase.c.
References EAT_LAST, GRAPH::ieat, GRAPH::inpbeg, NULL, GRAPH::source, and GRAPH::tail.
Referenced by computeReducedProbSolutionBiased(), createVariables(), findRootsMark(), getBoundchangesPcMW(), graph_pc_enforcePseudoTerm(), graph_pc_knotChgPrize(), graph_pc_subtractPrize(), initCostsAndPrioLP(), initReceivedSubproblem(), propgraphApplyImplicationsPcMw(), sepaspecial_pcimplicationsSeparate(), solgraphAdaptForPcMw(), and termDeleteExtension().
◆ graph_pc_nFixedTerms()
int graph_pc_nFixedTerms | ( | const GRAPH * | graph | ) |
get number of fixed terminals (not counting the aritificial root)
- Parameters
-
graph the graph
Definition at line 2526 of file graph_pcbase.c.
References graph_pc_isPcMw(), graph_pc_isRootedPcMw(), graph_pc_knotIsFixedTerm(), GRAPH::knots, nnodes, and NULL.
Referenced by buildsolgraph(), computeSteinerTree_execRpcMw(), graph_pc_nNonFixedTerms(), graph_printInfo(), graph_printInfoReduced(), rpcTryFullReduce(), solstp_getOrg(), solstp_isValid(), and updatePropgraph().
◆ graph_pc_nNonFixedTerms()
int graph_pc_nNonFixedTerms | ( | const GRAPH * | graph | ) |
Returns number of non-fixed terminals. Note that it is equal to the number of the proper potential terminals if g->extended, because in this case the non-leaf terminals are not marked explicitly.
- Parameters
-
graph the graph
Definition at line 2549 of file graph_pcbase.c.
References graph_pc_isPcMw(), graph_pc_isRootedPcMw(), graph_pc_nFixedTerms(), NULL, and GRAPH::terms.
Referenced by computeSteinerTree_execPcMw(), graph_pc_getReductionRatios(), graph_pc_nProperPotentialTerms(), propgraphApplyImplicationsPcMw(), SCIPStpHeurLocalExtendPcMwImp(), and sepaspecial_pcimplicationsSeparate().
◆ graph_pc_nProperPotentialTerms()
int graph_pc_nProperPotentialTerms | ( | const GRAPH * | graph | ) |
returns number of proper potential terminals (potential terminals excluding non-leaf terminals)
- Parameters
-
graph the graph
Definition at line 2582 of file graph_pcbase.c.
References GRAPH::extended, graph_pc_isPcMw(), graph_pc_nNonFixedTerms(), graph_pc_nNonLeafTerms(), and NULL.
Referenced by graph_printInfo(), graph_printInfoReduced(), graph_transRpc2SpgTrivial(), graph_transRpcGetSpg(), reduce_redLoopPc(), rpcTryFullReduce(), sepaspecial_pcimplicationsInit(), sepaspecial_pcimplicationsSeparate(), and solstp_isValid().
◆ graph_pc_nNonLeafTerms()
int graph_pc_nNonLeafTerms | ( | const GRAPH * | graph | ) |
returns number of non-leaf terminals
- Parameters
-
graph the graph
Definition at line 2564 of file graph_pcbase.c.
References graph_get_nNodes(), graph_pc_isPcMw(), graph_pc_knotIsNonLeafTerm(), and nnodes.
Referenced by cutNodesTreeBuildSteinerTree(), graph_pc_nProperPotentialTerms(), graph_printInfo(), graph_printInfoReduced(), graph_transRpc2SpgTrivial(), graph_transRpcGetSpg(), reduce_pc(), and reduce_redLoopPc().
◆ graph_pc_getTwinTerm()
int graph_pc_getTwinTerm | ( | const GRAPH * | g, |
int | vertex | ||
) |
get twin-terminal
- Parameters
-
g the graph vertex the vertex
Definition at line 2653 of file graph_pcbase.c.
References GRAPH::edges, graph_pc_isPcMw(), GRAPH::head, Is_anyTerm, GRAPH::tail, GRAPH::term, and GRAPH::term2edge.
Referenced by computeReducedProbSolutionBiased(), createVariables(), dapathsFixPotTerms(), daPcMarkRoots(), daRpcmwDeleteTermIncidents(), findRootsMark(), getBoundchangesPcMW(), graph_pc_deleteTerm(), graph_pc_enforcePseudoTerm(), graph_pc_knotChgPrize(), graph_pc_subtractPrize(), graph_transPcmw2rooted(), initCostsAndPrioLP(), initReceivedSubproblem(), propgraphApplyImplicationsPcMw(), reduce_unconnectedRpcRmwInfeas(), and sepaspecial_pcimplicationsSeparate().
◆ graph_pc_costsEqualOrgCosts()
SCIP_Bool graph_pc_costsEqualOrgCosts | ( | SCIP * | scip, |
const GRAPH * | graph, | ||
const SCIP_Real * | edgecosts | ||
) |
are the given costs equal to the original edge costs?
- Parameters
-
scip SCIP data structure graph the graph edgecosts edge costs to be checked
Definition at line 1913 of file graph_pcbase.c.
References EQ, FALSE, graph_get_nEdges(), graph_pc_getOrgCosts(), SCIP_Bool, SCIP_CALL_ABORT, SCIP_Real, SCIPallocMemoryArray, SCIPfreeMemoryArray, and TRUE.
Referenced by solstp_pruneFromTmHeur(), and strongPruneSteinerTreePc().
◆ graph_pc_edgeIsExtended()
is the edge part of the extended graph?
- Parameters
-
g the graph edge edge to be checked
Definition at line 1232 of file graph_pcbase.c.
References GRAPH::cost, EQ, FALSE, FARAWAY, flipedge, graph_pc_isPcMw(), graph_pc_knotIsDummyTerm(), GRAPH::head, LT, GRAPH::tail, and TRUE.
Referenced by fixVarsExtendedRed(), getBoundchanges(), pathreplaceExec(), reduceFixedVars(), reduceLurk(), SCIPStpHeurSlackPruneRun(), and validateEdgestate().
◆ graph_pc_knotIsFixedTerm()
check whether node is fixed terminal
- Parameters
-
g the graph node node to be checked
Definition at line 1257 of file graph_pcbase.c.
References GRAPH::cost, EAT_LAST, EQ, FARAWAY, graph_pc_isMw(), GRAPH::ieat, GRAPH::inpbeg, Is_term, GRAPH::prize, GRAPH::source, GRAPH::term, GRAPH::term2edge, and TERM2EDGE_FIXEDTERM.
Referenced by addToCandidates(), applyBranchHistoryToGraph(), collectFixedTerminals(), collectRoots(), computeSteinerTree_allFixedTermsAreReached(), computeSteinerTree_execRpcMw(), contractEdgeNoFixedEnd(), contractEdgeWithFixedEnd(), createVariables(), daOrderRoots(), daPcFindRoots(), findRootsMark(), findSolRPcMw(), getBiasedMw(), getBiasedPc(), graph_copyData(), graph_knot_printInfo(), graph_path_st_pcmw_extendBiased(), graph_path_st_pcmw_full(), graph_path_st_rpcmw(), graph_pc_2org(), graph_pc_2trans(), graph_pc_contractEdge(), graph_pc_deleteTerm(), graph_pc_enforceNode(), graph_pc_evalTermIsNonLeaf(), graph_pc_fixedTermToNonTerm(), graph_pc_getBiased(), graph_pc_knotHasMaxPrize(), graph_pc_knotIsDummyTerm(), graph_pc_knotToFixedTerm(), graph_pc_nFixedTerms(), graph_pc_nonTermToFixedTerm(), graph_pc_realDegree(), graph_pc_subtractPrize(), graph_pc_term2edgeIsConsistent(), graph_pc_termIsNonLeafTerm(), graph_pc_termToNonLeafTerm(), graph_pc_termToNonTerm(), graph_transRpcGetSpg(), graph_valid(), graph_validInput(), graph_voronoiWithRadius(), graph_writeStp(), graphisValidPcMw(), insertionGetCandidateEdges(), isLastTerm(), mwContractTerminalsChainWise(), mwContractTerminalsSimple(), mwReduceTermDeg1(), pcmwGetStartNodes(), pcmwReduceTerm0Prize(), pcmwUpdate(), pcReduceTermDeg1(), pcReduceTermDeg2(), pcsolMarkGraphNodes(), pcsolMarkGraphNodes_csr(), propgraphApplyImplicationsPcMw(), propgraphDeleteNode(), propgraphFixNode(), pseudodeleteNodeIsPromising(), reduce_bd34(), reduce_bound(), reduce_identifyNonLeafTerms(), reduce_impliedProfitBasedRpc(), reduce_simple_mw(), reduce_simple_pc(), reduce_sl(), reduce_unconnectedRpcRmwInfeas(), reduceRootedProb(), reroot(), runTmPcMW_mode(), SCIPStpHeurAscendPruneRun(), SCIPStpHeurLocalExtendPcMw(), SCIPStpHeurLocalExtendPcMwImp(), SCIPStpHeurTMBuildTreePcMw(), sepaspecial_pcimplicationsInit(), solIsTrivialPcMw(), solstp_isValid(), solstp_pcConnectDummies(), stRpcmwInit(), and termDeleteExtension().
◆ graph_pc_knotIsPropPotTerm()
check whether node is proper potential terminal
- Parameters
-
g the graph node node to be checked
Definition at line 1288 of file graph_pcbase.c.
References GRAPH::extended, FALSE, graph_pc_isPcMw(), graph_pc_knotIsDummyTerm(), Is_pseudoTerm, Is_term, GRAPH::prize, GRAPH::term, GRAPH::term2edge, and TRUE.
Referenced by getBoundchangesPcMW(), graph_pc_enforceNode(), graph_pc_enforcePseudoTerm(), graph_pc_knotChgPrize(), propgraphApplyImplicationsPcMw(), propgraphDeleteNode(), propgraphMarkFixedTermsPcMw(), and reduce_impliedProfitBasedRpc().
◆ graph_pc_knotHasMaxPrize()
is there no vertex of higher prize?
- Parameters
-
g graph data structure i the node to be checked
Definition at line 1315 of file graph_pcbase.c.
References EQ, FARAWAY, graph_get_nNodes(), graph_pc_isPc(), graph_pc_knotIsDummyTerm(), graph_pc_knotIsFixedTerm(), LT, nnodes, GRAPH::prize, SCIP_Real, STP_RPCSPG, and GRAPH::stp_type.
Referenced by delPseudoInit(), and delPseudoInitForCheck().
◆ graph_pc_knotIsDummyTerm()
check whether node is a dummy (pseudo) terminal
- Parameters
-
g the graph node node to be checked
Definition at line 1344 of file graph_pcbase.c.
References GRAPH::extended, FALSE, GRAPH::grad, graph_pc_isPcMw(), graph_pc_isRootedPcMw(), graph_pc_knotIsFixedTerm(), Is_pseudoTerm, Is_term, NULL, GRAPH::source, GRAPH::term, and TRUE.
Referenced by ansDeleteVertex(), ansProcessCandidate(), blctreeComputeBottlenecks(), blctreeComputeEdgesState(), buildsolgraph(), computeSteinerTree_execRpcMw(), createVariables(), cutNodesSetDfsRoot(), dapathsFixPotTerms(), extreduce_bottleneckMarkRootPath(), extreduce_edgeIsValid(), findSolPcMw1Term(), getBiasedMw(), getBiasedPc(), getBoundchanges(), getBoundchangesPcMW(), getOrgNodeToNodeMap(), graph_csr_build(), graph_csr_chgCosts(), graph_fixed_addNodePc(), graph_path_st_rpcmw(), graph_pc_edgeIsExtended(), graph_pc_enforceNode(), graph_pc_enforcePseudoTerm(), graph_pc_evalTermIsNonLeaf(), graph_pc_getNorgEdges(), graph_pc_getReductionRatios(), graph_pc_knotHasMaxPrize(), graph_pc_knotIsPropPotTerm(), graph_pc_markOrgGraph(), graph_pc_nonTermToFixedTerm(), graph_pseudoAncestors_addToNode(), graph_transPcGetSap(), graph_writeStp(), graphisValidPcMw(), impliedNodesAddTerm(), mwContractTerminalsChainWise(), mwKnotUpdateIncEdges(), mwReduceTermDeg1(), pathExendPrepare(), pcsolGetTrivialEdges(), pcsolMarkGraphNodes(), pcsolMarkGraphNodes_csr(), pcsubtreeDelete(), pcsubtreePruneForProfit(), propgraphApplyImplicationsPcMw(), propgraphDeleteEdge(), propgraphDeleteNode(), propgraphFixEdge(), propgraphFixNode(), pseudodeleteDeleteComputeCutoffs(), redcostGraphBuild(), redcostGraphMark(), redcosts_forLPget(), reduce_ans(), reduce_ansAdv(), reduce_ansAdv2(), reduce_applyPseudoDeletions(), reduce_daSlackPrune(), reduce_simple_mw(), SCIPStpHeurTMBuildTreePcMw(), sdprofitBuild(), sdprofitBuild1stOnly(), shortestpath_computeSteinerTreePcMw(), shortestpath_computeSteinerTreePcMwFull(), shortestpath_computeSteinerTreeRpcMw(), solgraphAdaptForPcMw(), solstp_pcConnectDummies(), strongPruneSteinerTreePc(), and strongPruneSteinerTreePc_csr().
◆ graph_pc_termIsNonLeafTerm()
check whether terminal is not a leaf (or not contained) in at least one optimal tree
- Parameters
-
g the graph term terminal to be checked
Definition at line 1431 of file graph_pcbase.c.
References GRAPH::extended, FALSE, graph_pc_knotIsFixedTerm(), Is_anyTerm, Is_nonleafTerm, Is_pseudoTerm, Is_term, SCIP_Bool, GRAPH::term, GRAPH::term2edge, and TERM2EDGE_NONLEAFTERM.
Referenced by bottleneckGetDist(), bottleneckMarkEqualityEdges(), cutNodesTreeBuildSteinerTree(), cutNodesTreeDeleteComponents(), extreduce_bottleneckMarkRootPath(), findRootsMark(), graph_getIsTermArray(), graph_pc_contractEdgeUnordered(), graph_pc_deleteTerm(), graph_pc_knotIsNonLeafTerm(), graph_pc_knotToFixedTerm(), graph_pc_subtractPrize(), graph_pc_termMarkProper(), graph_pc_termToNonTerm(), markNonLeafTerms_2trans(), packPcMwVanished(), pcmwReduceTerm0Prize(), pcReduceTermDeg1(), pcReduceTermDeg2(), pseudodeleteNodeIsPromising(), reduce_bd34(), reduce_identifyNonLeafTerms(), reduce_unconnected(), reduce_unconnectedRpcRmwInfeas(), reduceRootedProb(), SCIPStpHeurLocalExtendPcMwOut(), sepaspecial_pcimplicationsInit(), and solstp_isValid().
◆ graph_pc_knotIsNonLeafTerm()
check whether node is a terminal AND is not a leaf (or not contained) in at least one optimal tree
- Parameters
-
g the graph node node to be checked
Definition at line 1383 of file graph_pcbase.c.
References FALSE, graph_pc_termIsNonLeafTerm(), Is_anyTerm, and GRAPH::term.
Referenced by computeSteinerTree_tryConnectNodePcMw(), daPcFindRoots(), extreduce_distDataInit(), getKeyPathsStar(), graph_knot_printInfo(), graph_path_st_pcmw(), graph_path_st_rpcmw(), graph_pc_enforceNode(), graph_pc_enforceNonLeafTerm(), graph_pc_getNonLeafTermOffset(), graph_pc_nNonLeafTerms(), graph_pc_nonLeafTermIsEnforced(), graph_pc_realDegree(), graph_pc_solGetObj(), graph_pc_term2edgeIsConsistent(), graph_pc_termToNonLeafTerm(), graph_transRpcGetSpg(), graph_writeStp(), graphisValidPcMw(), isLastTerm(), markPseudoDeletablesFromBounds(), packPcMwVanished(), propgraphApplyImplicationsPcMw(), propgraphDeleteNode(), pseudodeleteDeleteComputeCutoffs(), pseudodeleteDeleteNode(), reduce_applyPseudoDeletions(), reduce_daPcMw(), reduce_identifyNonLeafTerms(), reduce_nvAdv(), reduce_removeDeg0NonLeafTerms(), reduce_simple_pc(), reduce_sl(), and stpsol_pruningIsPossible().
◆ graph_pc_evalTermIsNonLeaf()
is terminal a non-leaf? Checked by evaluation of the current graph
- Parameters
-
scip SCIP g the graph term terminal to be checked
Definition at line 1467 of file graph_pcbase.c.
References GRAPH::cost, EAT_LAST, GRAPH::extended, FALSE, graph_pc_isPcMw(), graph_pc_isRootedPcMw(), graph_pc_knotIsDummyTerm(), graph_pc_knotIsFixedTerm(), graph_pc_realDegree(), GRAPH::ieat, GRAPH::inpbeg, Is_term, GRAPH::prize, SCIP_Bool, SCIPisLT(), GRAPH::source, GRAPH::tail, GRAPH::term, and TRUE.
Referenced by contractEdgeNoFixedEnd(), graph_pc_term2edgeIsConsistent(), and reduce_identifyNonLeafTerms().
◆ graph_pc_term2edgeIsConsistent()
checks consistency of term2edge array
- Parameters
-
scip SCIP data structure g the graph
Definition at line 874 of file graph_pcbase.c.
References EAT_LAST, GRAPH::extended, FALSE, FARAWAY, flipedge, graph_knot_printInfo(), graph_pc_evalTermIsNonLeaf(), graph_pc_isPcMw(), graph_pc_isRootedPcMw(), graph_pc_knotIsFixedTerm(), graph_pc_knotIsNonLeafTerm(), graph_pc_realDegree(), GRAPH::head, Is_anyTerm, Is_nonleafTerm, Is_pseudoTerm, Is_term, GRAPH::knots, GRAPH::oeat, GRAPH::outbeg, GRAPH::prize, SCIP_Bool, SCIPdebugMessage, SCIPisEQ(), GRAPH::source, GRAPH::term, GRAPH::term2edge, TERM2EDGE_FIXEDTERM, TERM2EDGE_NONLEAFTERM, TERM2EDGE_NOTERM, and TRUE.
Referenced by graph_transPc(), graphisValidPcMw(), reduce_identifyNonLeafTerms(), reduce_redLoopMw(), and reduce_redLoopPc().
◆ graph_pc_transOrgAreConistent()
transformed problem consistent to original one? Call only for extended graph
- Parameters
-
scip SCIP data structure graph the graph verbose be verbose?
Definition at line 980 of file graph_pcbase.c.
References GRAPH::cost, GRAPH::cost_org_pc, EAT_FREE, GRAPH::edges, GRAPH::extended, FALSE, FARAWAY, graph_edge_isBlocked(), graph_edge_printInfo(), graph_pc_isPcMw(), GRAPH::head, Is_nonleafTerm, GRAPH::oeat, GRAPH::prize, SCIP_Real, SCIPisEQ(), SCIPisGE(), SCIPisLT(), GRAPH::term, and TRUE.
Referenced by graph_pc_getOrgCosts(), graph_pc_getOrgCostsCsr(), setCostToOrgPc(), and setCostToOrgPcPreState().
◆ graph_pc_getPosPrizeSum()
Definition at line 2091 of file graph_pcbase.c.
References BLOCKED, GRAPH::extended, Is_term, GRAPH::knots, NULL, GRAPH::prize, SCIP_Real, SCIPisLT(), GRAPH::source, and GRAPH::term.
Referenced by reduce_redLoopMw(), and reduce_redLoopPc().
◆ graph_pc_isPc()
is this graph a prize-collecting variant?
- Parameters
-
g the graph
Definition at line 2463 of file graph_pcbase.c.
References NULL, STP_PCSPG, STP_RPCSPG, and GRAPH::stp_type.
Referenced by blctreeBuildNodeMap(), blctreeComputeBottlenecks(), blctreeComputeEdgesState(), blockEdgesWithGlobalFixings(), bottleneckGetDist(), bottleneckMarkEqualityEdges(), closeNodesRunCompute(), computeSteinerTree(), computeSteinerTree_tryConnectNodePcMw(), computeSteinerTreeRedCostsPcMw(), dbgBottleneckFromLeafIsDominated(), delPseudoDeleteVertex(), distCloseNodesCompute(), distGetRestricted(), extInitRedCostArraysPc(), extInnerNodeAdd(), extInnerNodeRemoveTop(), extProbIsPc(), extreduce_bottleneckMarkRootPath(), extreduce_checkComponent(), extreduce_deleteArcs(), extreduce_deleteEdges(), extreduce_deleteGeneralStars(), extreduce_distDataInit(), extreduce_mstLevelHorizontalAdd(), extreduce_mstLevelHorizontalAddEmpty(), extreduce_mstLevelVerticalAddEmpty(), extreduce_mstLevelVerticalAddLeaf(), extreduce_pcdataIsClean(), extreduce_pseudoDeleteNodes(), extreduce_sdshorizontalInSync(), extreduce_sdsTopInSync(), extreduce_sdsverticalInSync(), extreduce_spgCheck3ComponentSimple(), extreduce_treeRecompCosts(), extStackAddCompsExpanded(), extTreeRuleOutSingletonImplied(), fixVarsRedbased(), getBiasedPc(), getEdgeCostUnbiased(), getKeyPathsStar(), graph_copyData(), graph_dijkLimited_initPcShifts(), graph_pack(), graph_path_st_pcmw(), graph_pc_2org(), graph_pc_2trans(), graph_pc_enforceNonLeafTerm(), graph_pc_finalizeSubgraph(), graph_pc_getBiased(), graph_pc_getOrgCostsCsr(), graph_pc_initSubgraph(), graph_pc_knotHasMaxPrize(), graph_pc_shiftNonLeafCosts(), graph_pc_solGetObj(), graph_pc_subtractPrize(), graph_pc_termToNonTerm(), graph_pc_updateSubgraphEdge(), graph_printInfo(), graph_printInfoReduced(), graph_transPcGetSap(), graph_voronoiRepair(), graph_voronoiTerms(), graph_voronoiWithDist(), initCostOrgPc(), insertionInitInsert(), localKeyVertexHeuristics(), localVertexInsertion(), mstCompLeafGetSDs(), mstCompLeafGetSDsToAncestors(), mstCompLeafToAncestorsBiasedRuleOut(), mstCompRuleOut(), mstLevelHorizontalAddSds(), mstLevelLeafExit(), mstLevelLeafInit(), mstLevelLeafTryExtMst(), pcmwSetEdgeCosts(), pcmwUpdateBestSol_csrInSync(), pcsubtreePruneForProfit(), prInit(), pseudodeleteBiasedIsPromising(), pseudodeleteDeleteComputeCutoffs(), pseudodeleteDeleteNode(), pseudodeleteNodeIsPromising(), reduce_applyPseudoDeletions(), reduce_bd34(), reduce_bound(), reduce_da(), reduce_daPcMw(), reduce_getMinNreductions(), reduce_identifyNonLeafTerms(), reduce_removeDeg0NonLeafTerms(), reduce_simple_pc(), reduce_sl(), reduce_sollocalRebuildTry(), reduce_unconnected(), reduceExact(), runTmPcMW(), runTmPcMW_mode(), SCIP_DECL_HEUREXEC(), selectBranchingVertexBySol(), solstp_isValid(), solstp_pcGetObjCsr(), solstp_prune(), solstp_pruneFromTmHeur(), solstp_pruneFromTmHeur_csr(), spg3StarNeighborRuleOut(), spg4VerticesRuleOut(), stpsol_pruningIsPossible(), strongPruneSteinerTreePc_csr(), tmBaseInit(), and useRedcostdata().
◆ graph_pc_isMw()
is this graph a maximum-weight variant?
- Parameters
-
g the graph
Definition at line 2475 of file graph_pcbase.c.
References NULL, STP_BRMWCSP, STP_MWCSP, STP_RMWCSP, and GRAPH::stp_type.
Referenced by applyBranchHistoryToGraph(), blctreeBuildMst(), boundPruneHeur(), boundPruneHeurMw(), computeSteinerTree(), contractEdgeNoFixedEnd(), contractEdgeWithFixedEnd(), extreduce_deleteEdges(), fixVarsRedbased(), getBiasedMw(), graph_pc_contractEdge(), graph_pc_enforceNode(), graph_pc_enforceNonLeafTerm(), graph_pc_getBiased(), graph_pc_knotIsFixedTerm(), graph_pc_knotToFixedTerm(), graph_pc_nonTermToFixedTerm(), graph_pc_realDegree(), graph_pc_subtractPrize(), graph_sdPaths(), graphisValidPcMw(), initCostsAndPrioLP(), initReceivedSubproblem(), mwContract0WeightVertices(), mwContractNonPositiveChain(), mwContractTerminalsChainWise(), mwContractTerminalsSimple(), mwGetNchains(), mwTraverseChain(), pcsubtreePruneForProfit(), propgraphFixEdge(), reduce_ans(), reduce_ansAdv(), reduce_ansAdv2(), reduce_boundPruneHeur(), reduce_da(), reduce_getMinNreductions(), reduce_nnp(), reduceExact(), reduceWithEdgeFixingBounds(), strongPruneSteinerTreePc(), tpathsGetDistNew(), and updateNodeReplaceBounds().
◆ graph_pc_isPcMw()
is this graph a prize-collecting or maximum-weight variant?
- Parameters
-
g the graph
Definition at line 2487 of file graph_pcbase.c.
References NULL, STP_BRMWCSP, STP_MWCSP, STP_PCSPG, STP_RMWCSP, STP_RPCSPG, and GRAPH::stp_type.
Referenced by addRedsol(), applyBranchHistoryToGraph(), applyEdgestateToProb(), blctreeBuildMst(), branchruleGetType(), buildsolgraph(), computeHistory(), computeHistoryPcMw(), computePertubedSol(), computeReducedProbSolution(), computeReducedProbSolutionBiased(), computeStarts(), computeSteinerTree(), computeSteinerTree_allFixedTermsAreReached(), computeSteinerTree_allPseudoTermsAreReached(), computeSteinerTree_execPcMw(), computeSteinerTree_execPcMwFull(), computeSteinerTreeDijk(), computeSteinerTreeDijkPcMw(), computeSteinerTreeRedCostsPcMw(), computeSteinerTreeSingleNode(), createVariables(), cutNodesSetDfsRoot(), cutNodesTreeBuildSteinerTree(), cutNodesTreeDeleteComponents(), daPcFindRoots(), delPseudoInit(), delPseudoInitForCheck(), dualascent_paths(), enumeration_findSolPcMw(), enumeration_isPossible(), extGetSd(), extGetSdPcUpdate(), extInit(), extreduce_checkArc(), extreduce_checkEdge(), extreduce_distDataInit(), extreduce_edgeIsValid(), extreduce_extPermaInit(), extreduce_init(), extreduce_mstbiasedCheck3NodeSimple(), extreduce_mstTopCompExtObjValid(), extreduce_mstTopCompInSync(), extreduce_mstTopCompObjValid(), extreduce_mstTopLevelBaseObjValid(), extTreeGetDirectedRedcostProper(), fixVarsExtendedRed(), fixVarsRedbased(), fixVarsRedbasedIsPromising(), getBoundaryPathCost(), getBoundaryPathCostPrized(), getBoundchanges(), getBoundchangesPcMW(), getEdgeCosts(), getEdgeReductionRatio(), getGraphStatesDirected(), getHighSolDegVertex(), getKeyPathReplaceCost(), getKeyPathsStar(), getKeyPathUpper(), getNewPrizeNode(), getOrgNodeToNodeMap(), getReductionRatios(), getReductionRatiosPcMw(), getSolObj(), getTmMode(), graph_copyData(), graph_csr_build(), graph_csr_chgCosts(), graph_edge_addSubgraph(), graph_edge_printInfo(), graph_edge_reinsert(), graph_fixed_addNodePc(), graph_fixed_moveNodePc(), graph_get4nextTTerms(), graph_getIsTermArray(), graph_init_dcsr(), graph_initHistory(), graph_initPseudoAncestorsSized(), graph_isMarked(), graph_knot_delPseudoAncestors(), graph_knot_printInfo(), graph_knot_replaceDeg2(), graph_mark(), graph_pack(), graph_path_st_pcmw(), graph_path_st_pcmw_extendOut(), graph_path_st_pcmw_full(), graph_pc_2org(), graph_pc_2trans(), graph_pc_deleteTerm(), graph_pc_edgeIsExtended(), graph_pc_enforceNode(), graph_pc_evalTermIsNonLeaf(), graph_pc_finalizeSubgraph(), graph_pc_fixedTermToNonTerm(), graph_pc_getBiased(), graph_pc_getOrgCosts(), graph_pc_getReductionRatios(), graph_pc_getTwinTerm(), graph_pc_initSubgraph(), graph_pc_knotChgPrize(), graph_pc_knotIsDummyTerm(), graph_pc_knotIsPropPotTerm(), graph_pc_knotToNonTermProperty(), graph_pc_markOrgGraph(), graph_pc_nFixedTerms(), graph_pc_nNonFixedTerms(), graph_pc_nNonLeafTerms(), graph_pc_nonLeafTermIsEnforced(), graph_pc_nProperPotentialTerms(), graph_pc_realDegree(), graph_pc_solGetObj(), graph_pc_subtractPrize(), graph_pc_term2edgeIsConsistent(), graph_pc_termToNonLeafTerm(), graph_pc_termToNonTerm(), graph_pc_transOrgAreConistent(), graph_printEdgeConflicts(), graph_printInfo(), graph_printInfoReduced(), graph_pseudoAncestors_addToNode(), graph_sdStar(), graph_sdStarBiased(), graph_sdWalks(), graph_sdWalks_csr(), graph_sdWalksConnected(), graph_sdWalksExt(), graph_sdWalksExt2(), graph_sdWalksTriangle(), graph_subgraphExtract(), graph_subgraphReinsert(), graph_tpathsSetAll2(), graph_tpathsSetAll3(), graph_transPcGetRsap(), graph_valid(), graph_valid_ancestors(), graph_valid_pseudoAncestors(), graph_validInput(), graph_voronoiRepair(), graph_writeReductionRatioStats(), graph_writeReductionRatioStatsLive(), graph_writeStp(), graphisValidPcMw(), impliedNodesAddTerm(), initCostsAndPrioLP(), initPropAtFirstCall(), initReceivedSubproblem(), insertionGetCandidateEdges(), insertionInitInsert(), insertionRestoreTree(), isLastTerm(), localKeyVertexHeuristics(), localRun(), localVertexInsertion(), nodesolUpdate(), packNodes(), packPcMwInit(), pcBiasCostsDCSR(), pcmwGetNewEdgePrize(), pcmwGetSolRoot(), pcmwReduceTerm0Prize(), pcmwUpdate(), pcSdToNodeMark(), pcSdToNodeUnmark(), presolveStp(), probAllowsSolBranching(), propgraphApplyBoundchanges(), propgraphApplyImplicationsPcMw(), propgraphDeleteEdge(), propgraphDeleteNode(), propgraphFixEdge(), propgraphFixNode(), propgraphMarkFixedTermsPcMw(), prunegraphInit(), pruneSteinerTreePc(), pruneSteinerTreePc_csr(), pseudodeleteNodeIsPromising(), redcostGraphBuild(), redcostGraphMark(), redcosts_forLPget(), reduce_bd34(), reduce_bd34WithSd(), reduce_bdkWithSd(), reduce_bound(), reduce_contract0Edges(), reduce_dapaths(), reduce_daSlackPrune(), reduce_deleteConflictEdges(), reduce_extendedEdge(), reduce_impliedNodesGet(), reduce_impliedNodesRepair(), reduce_impliedProfitBased(), reduce_nonTerminalComponents(), reduce_sdStar(), reduce_sdStarPc(), reduce_sdStarPc2(), reduce_sdWalk(), reduce_sdWalk_csr(), reduce_sdWalkExt(), reduce_sdWalkExt2(), reduce_sdWalkTriangle(), reduce_solInit(), reduce_sollocalInit(), reduce_sollocalRebuildTry(), reduce_solPack(), reduceCheckEdge(), reduceFixedVars(), reduceLurk(), removeEdge(), replaceEdgeByPath(), reroot(), retransformReducedProbSolution(), ruleOutSubtree(), runTm(), runTmPcMW(), SCIP_DECL_CONSSEPALP(), SCIP_DECL_HEUREXEC(), SCIPprobdataCreateFromGraph(), SCIPprobdataProbIsAdversarial(), SCIPprobdataWriteSolution(), SCIPStpHeurAscendPruneRun(), SCIPStpHeurLocalExtendPcMw(), SCIPStpHeurLocalExtendPcMwImp(), SCIPStpHeurLocalExtendPcMwOut(), SCIPStpHeurLurkPruneRun(), SCIPStpHeurRecExclude(), SCIPStpHeurSlackPruneRun(), SCIPStpHeurTMBuildTree(), SCIPStpHeurTMRun(), SCIPStpHeurTMRunLP(), sdprofitBuild(), sdprofitBuild1stOnly(), sdStarInit(), selectBranchingVertexByDegree(), selectBranchingVertexBySol(), sepaspecial_pcimplicationsInit(), setCostToOrgPc(), setCostToOrgPcPreState(), setParams(), shortestpath_computeSteinerTreePcMw(), shortestpath_computeSteinerTreePcMwFull(), shortestpath_pcInit(), solgraphSelectSolsDiff(), solhistory_computeHistory(), solIsTrivialPcMw(), solstp_convertCsrToGraph(), solstp_getObjBounded(), solstp_getObjCsr(), solstp_getOrg(), solstp_getTrivialSol(), solstp_isValid(), solstp_pcConnectDummies(), solstp_pcGetObjCsr(), solstp_pcGetSolRoot(), solstp_prune(), solstp_pruneFromTmHeur(), solstp_pruneFromTmHeur_csr(), strongPruneSteinerTreePc(), strongPruneSteinerTreePc_csr(), supergraphComputeMst(), treeDistsAreFlawed(), updateEdgestateFromRed(), updateEdgestateFromRedPcmw(), and validateEdgestate().
◆ graph_pc_isRootedPcMw()
is this graph a rooted prize-collecting or rooted maximum-weight variant?
- Parameters
-
g the graph
Definition at line 2681 of file graph_pcbase.c.
References NULL, STP_BRMWCSP, STP_RMWCSP, STP_RPCSPG, and GRAPH::stp_type.
Referenced by applyBranchHistoryToGraph(), blctreeBuildMst(), buildsolgraph(), collectFixedTerminals(), collectRoots(), computeHistoryPcMw(), computeStarts(), computeSteinerTree_execPcMw(), computeSteinerTree_execPcMwFull(), computeSteinerTree_execRpcMw(), computeSteinerTreeSingleNode(), computeSteinerTreeTM(), contractEdgeWithFixedEnd(), createInitialCuts(), cutNodesSetDfsRoot(), daOrderRoots(), dapathsFixPotTerms(), daPcFindRoots(), daRoundExit(), daRoundInit(), daRpcmwDeleteTermIncidents(), dualascent_paths(), enumeration_findSolPcMw(), enumeration_isPossible(), findSolPcMw(), findSolRPcMw(), fixVarsExtendedRed(), getBiasedMw(), getBiasedPc(), graph_copyData(), graph_dijkLimited_initPcShifts(), graph_isMarked(), graph_mark(), graph_pack(), graph_path_st_pcmw(), graph_path_st_pcmw_full(), graph_path_st_rpcmw(), graph_pc_contractEdge(), graph_pc_enforceNode(), graph_pc_enforceNonLeafTerm(), graph_pc_evalTermIsNonLeaf(), graph_pc_getReductionRatios(), graph_pc_knotIsDummyTerm(), graph_pc_knotToFixedTerm(), graph_pc_markOrgGraph(), graph_pc_nFixedTerms(), graph_pc_nNonFixedTerms(), graph_pc_nonTermToFixedTerm(), graph_pc_realDegree(), graph_pc_term2edgeIsConsistent(), graph_transPcGetRsap(), graph_transPcmw2rooted(), graphisValidPcMw(), initReceivedSubproblem(), insertionGetCandidateEdges(), isLastTerm(), isMaxprizeTerm(), localKeyVertexHeuristics(), mwContractTerminalsChainWise(), mwContractTerminalsSimple(), packNodes(), packPcMwVanished(), pcmwFindMax2Terms(), pcmwGetSolRoot(), pcmwGetStartNodes(), pcmwUpdate(), pcsolMarkGraphNodes(), pcsolMarkGraphNodes_csr(), propgraphApplyBoundchanges(), propgraphFixNode(), propgraphMarkFixedTermsPcMw(), propgraphPruneUnconnected(), pruneSteinerTreePc(), pruneSteinerTreePc_csr(), redcostGraphBuild(), redcostGraphMark(), redcosts_initializeDistances(), redLoopInnerMw(), redLoopInnerPc(), reduce_boundMw(), reduce_da(), reduce_dapaths(), reduce_daSlackPrune(), reduce_redLoopMw(), reduce_simple_mw(), reduce_unconnectedRpcRmwInfeas(), reduceRootedProb(), runTmPcMW_mode(), SCIPStpHeurLocalExtendPcMw(), SCIPStpHeurPruneRun(), SCIPStpHeurTMBuildTreePcMw(), shortestpath_computeSteinerTreePcMw(), shortestpath_computeSteinerTreeRpcMw(), solgraphAdaptForPcMw(), solIsTrivialPcMw(), solstp_getOrg(), solstp_isValid(), solstp_pcConnectDummies(), solstp_pcGetSolRoot(), stptest_graphSetUpRpcOrg(), strongPruneSteinerTreePc(), termDeleteExtension(), updateEdgestateFromRedPcmw(), updatePropgraph(), and updateSolution().
◆ graph_pc_isUnrootedPcMw()
is this graph a un-rooted prize-collecting or rooted maximum-weight variant?
- Parameters
-
g the graph
Definition at line 2669 of file graph_pcbase.c.
References NULL, STP_MWCSP, STP_PCSPG, and GRAPH::stp_type.
Referenced by reduce_sl(), SCIP_DECL_RELAXEXEC(), SCIPStpHeurTMBuildTreePcMw(), sdprofitBuild(), and sdprofitBuild1stOnly().
◆ graph_pc_solGetObj()
SCIP_Real graph_pc_solGetObj | ( | SCIP * | scip, |
const GRAPH * | g, | ||
const int * | soledge, | ||
SCIP_Real | offset | ||
) |
compute solution value for given edge-solution array (CONNECT/UNKNOWN) and offset, takes prizes into account!
- Parameters
-
scip SCIP data structure g the graph soledge solution offset offset
Definition at line 2603 of file graph_pcbase.c.
References CONNECT, GRAPH::cost, GRAPH::extended, graph_get_nEdges(), graph_get_nNodes(), graph_pc_getNonLeafTermOffset(), graph_pc_isPc(), graph_pc_isPcMw(), graph_pc_knotIsNonLeafTerm(), nnodes, GRAPH::prize, SCIP_CALL_ABORT, SCIP_Real, SCIPallocBufferArray, SCIPfreeBufferArray, SCIPisGT(), and solstp_setVertexFromEdge().
Referenced by computeSteinerTree(), and getSolObj().
◆ graph_path_exit()
Definition at line 515 of file graph_path.c.
References GRAPH::path_heap, GRAPH::path_state, and SCIPfreeMemoryArrayNull.
Referenced by bdkFree(), boundPruneHeur(), checkSdWalk(), computeReducedProbSolution(), fixVarsRedbased(), graph_free(), graph_pack(), graph_subgraphFree(), graph_subgraphReinsert(), initReceivedSubproblem(), localExtendPc(), localInsertion(), localInsertion2(), localInsertion2pc(), localKeyPathExchange(), localKeyPathExchangeMw(), localKeyPathExchangePc(), localKeyPathExchangePc2(), localKeyVertex(), localKeyVertexPc(), localKeyVertexPc2(), lurkpruneFinalize(), pseudoAncestorsCreation(), pseudoAncestorsHash(), pseudoAncestorsHashPc(), pseudoAncestorsMerge(), pseudoAncestorsMergePc(), pseudoDelDouble(), pseudoDelSingle(), redcostGraphComputeSteinerTree(), redcostGraphComputeSteinerTreeDegCons(), redcostGraphComputeSteinerTreeDirected(), reduce_bd34(), reduce_bd34WithSd(), reduce_bound(), reduce_boundHop(), reduce_daPcMw(), reduce_exec(), reduce_impliedProfitBasedRpc(), reduce_npv(), reduce_sd(), runDualAscent(), SCIP_DECL_PROBDELORIG(), SCIPStpHeurPruneRun(), SCIPStpHeurRecExclude(), SCIPStpHeurSlackPruneRun(), SCIPStpPropGetGraph(), sdgraphMstBuild(), stptest_graphTearDown(), supergraphComputeMst(), testDistCloseNodesAreValid(), testDistDistancesAreValid(), and testDistRootPathsAreValid().
◆ graph_path_exec()
Definition at line 541 of file graph_path.c.
References CONNECT, shortest_path::dist, EAT_LAST, shortest_path::edge, FARAWAY, FSP_MODE, graph_get_nNodes(), GRAPH::head, GRAPH::mark, MST_MODE, nnodes, NULL, GRAPH::oeat, GRAPH::outbeg, GRAPH::path_heap, GRAPH::path_state, pathheapCorrect(), pathheapGetNearest(), and UNKNOWN.
Referenced by bdkStarIsSdMstReplacable(), blctreeBuildMst(), boundPruneHeur(), createVariables(), graph_findCentralTerminal(), isPseudoDeletable(), pcsolGetMstEdges(), pricing(), pruneSteinerTreeStp(), reduce_bound(), reduce_boundHop(), reduce_daSlackPrune(), reduce_npv(), reduce_sd(), reduce_termcompChangeSubgraphToBottleneck(), SCIPprobdataAddNewSol(), SCIPStpHeurTMBuildTree(), SCIPStpHeurTMBuildTreePcMw(), sdgraphMstBuild(), supergraphComputeMst(), and tryPathPcMw().
◆ graph_pathInLimitedExec()
void graph_pathInLimitedExec | ( | const GRAPH * | g, |
const SCIP_Real * | edges_cost, | ||
const SCIP_Bool * | nodes_abort, | ||
int | startnode, | ||
DIJK * | dijkdata, | ||
SCIP_Real * | abortdistance | ||
) |
limited Dijkstra on incoming edges
- Parameters
-
g graph data structure edges_cost edge cost nodes_abort nodes to abort at startnode start dijkdata Dijkstra data abortdistance distance at which abort happened
Definition at line 610 of file graph_path.c.
References CONNECT, dijkstra_data::dheap, FARAWAY, graph_heap_correct(), graph_heap_deleteMinReturnNode(), graph_knot_isInRange(), GRAPH::ieat, GRAPH::inpbeg, GRAPH::knots, LT, dijkstra_data::node_distance, dijkstra_data::node_visited, dijkstra_data::nvisits, dijkstra_heap::position, SCIP_Real, dijkstra_heap::size, GRAPH::tail, TRUE, UNKNOWN, and dijkstra_data::visitlist.
Referenced by dapathsRunShortestPaths().
◆ graph_path_execX()
void graph_path_execX | ( | SCIP * | scip, |
const GRAPH * | g, | ||
int | start, | ||
const SCIP_Real * | cost, | ||
SCIP_Real * | pathdist, | ||
int * | pathedge | ||
) |
Dijkstra's algorithm starting from node 'start'
- Parameters
-
scip SCIP data structure g graph data structure start start vertex cost edge costs pathdist distance array (on vertices) pathedge predecessor edge array (on vertices)
Definition at line 905 of file graph_path.c.
References CONNECT, correctX(), EAT_LAST, FARAWAY, GRAPH::head, GRAPH::knots, GRAPH::mark, nearestX(), nnodes, NULL, GRAPH::oeat, GRAPH::outbeg, GRAPH::path_heap, GRAPH::path_state, SCIPisGT(), and UNKNOWN.
Referenced by buildTmAllSp(), computeStarts(), computeTransVoronoi(), getRedCost2ndNextDistances(), redcosts_initializeDistances(), reduce_boundHopR(), reduce_boundHopRc(), reduce_daPcMw(), reduce_daSlackPrune(), and reduce_rpt().
◆ graph_path_invroot()
void graph_path_invroot | ( | SCIP * | scip, |
const GRAPH * | g, | ||
int | start, | ||
const SCIP_Real * | cost, | ||
SCIP_Real * | pathdist, | ||
int * | pathedge | ||
) |
Dijkstra on incoming edges until root is reached
- Parameters
-
scip SCIP data structure g graph data structure start start vertex cost edge costs pathdist distance array (on vertices) pathedge predecessor edge array (on vertices)
Definition at line 973 of file graph_path.c.
References CONNECT, correctX(), EAT_LAST, FARAWAY, GRAPH::ieat, GRAPH::inpbeg, GRAPH::knots, GRAPH::mark, nearestX(), nnodes, NULL, GRAPH::path_heap, GRAPH::path_state, SCIP_Real, SCIPisGT(), GRAPH::source, GRAPH::tail, and UNKNOWN.
◆ graph_path_st()
void graph_path_st | ( | const GRAPH * | g, |
const SCIP_Real * | cost, | ||
SCIP_Real * | pathdist, | ||
int * | pathedge, | ||
int | start, | ||
STP_Bool * | connected | ||
) |
Find a directed tree rooted in node 'start' and spanning all terminals
- Parameters
-
g graph data structure cost edgecosts pathdist distance array (on vertices) pathedge predecessor edge array (on vertices) start start vertex connected array to mark whether a vertex is part of computed Steiner tree
Definition at line 1199 of file graph_path.c.
References correctX(), EAT_LAST, FALSE, FARAWAY, GRAPH::head, Is_term, GRAPH::knots, GRAPH::mark, nearestX(), nnodes, nterms, NULL, GRAPH::oeat, GRAPH::outbeg, GRAPH::path_heap, GRAPH::path_state, resetX(), GRAPH::tail, GRAPH::term, GRAPH::terms, TRUE, and UNKNOWN.
Referenced by computeSteinerTreeDijk().
◆ graph_path_st_dc()
SCIP_RETCODE graph_path_st_dc | ( | SCIP * | scip, |
const GRAPH * | g, | ||
const SCIP_Real * | cost, | ||
SCIP_Real * | pathdist, | ||
int * | pathedge, | ||
int | start, | ||
STP_Bool * | connected, | ||
int * | result, | ||
STP_Bool * | solFound | ||
) |
For DCSTP: Find a directed tree rooted in node 'start' and spanning all terminals, while respecting degree constraints
- Parameters
-
scip SCIP g graph data structure cost edgecosts pathdist distance array (on vertices) pathedge predecessor edge array (on vertices) start start vertex connected array to mark whether a vertex is part of computed Steiner tree result solution solFound pointer to store whether solution was found
Definition at line 1299 of file graph_path.c.
References BMScopyMemoryArray, FALSE, FARAWAY, graph_get_nEdges(), graph_get_nNodes(), graph_knot_isInRange(), graph_knot_printInfo(), Is_term, GRAPH::maxdeg, nnodes, GRAPH::path_heap, GRAPH::path_state, SCIP_CALL, SCIP_OKAY, SCIPallocBufferArray, SCIPdebugMessage, SCIPfreeBufferArray, sdDcExtendTree(), STP_DCSTP, GRAPH::stp_type, GRAPH::term, GRAPH::terms, TRUE, and UNKNOWN.
◆ graph_path_st_rpcmw()
void graph_path_st_rpcmw | ( | GRAPH * | g, |
SCIP_Real * | orderedprizes, | ||
int * | orderedprizes_id, | ||
const SCIP_Real * | cost, | ||
const SCIP_Real * | prize, | ||
SCIP_Real * | pathdist, | ||
int * | pathedge, | ||
int | start, | ||
STP_Bool * | connected | ||
) |
!!!LEGACY CODE!!! Shortest path heuristic for the RMWCSP and RPCSPG Find a directed tree rooted in node 'start' and connecting all terminals as well as all positive vertices (as long as this is profitable).
- Parameters
-
g graph data structure orderedprizes legacy code orderedprizes_id legacy code cost edge costs prize (possibly biased) prize pathdist distance array (on vertices) pathedge predecessor edge array (on vertices) start start vertex connected array to mark whether a vertex is part of computed Steiner tree
Definition at line 1988 of file graph_path.c.
References correctX(), GRAPH::extended, FARAWAY, GE, graph_pc_isRootedPcMw(), graph_pc_knotIsDummyTerm(), graph_pc_knotIsFixedTerm(), graph_pc_knotIsNonLeafTerm(), GRAPH::head, Is_anyTerm, Is_pseudoTerm, Is_term, GRAPH::knots, GRAPH::mark, stortest_path_prizecollecting::maxoutprize, nearestX(), nnodes, nterms, GRAPH::oeat, stortest_path_prizecollecting::orderedprizes, GRAPH::outbeg, GRAPH::path_heap, GRAPH::path_state, resetX(), SCIPdebugMessage, shortestpath_pcConnectNode(), shortestpath_pcReset(), stRpcmwInit(), GRAPH::tail, GRAPH::term, GRAPH::terms, TRUE, and UNKNOWN.
Referenced by computeSteinerTreeDijkPcMw().
◆ graph_path_st_brmwcs()
SCIP_RETCODE graph_path_st_brmwcs | ( | SCIP * | scip, |
GRAPH * | g, | ||
const SCIP_Real * | prize, | ||
SCIP_Real * | pathdist, | ||
int * | pathedge, | ||
int | start, | ||
STP_Bool * | connected, | ||
SCIP_Bool * | solfound | ||
) |
todo refactor, was copied from Henriette's branch
- Parameters
-
scip SCIP data structure g graph data structure prize (possibly biased) prize pathdist distance array (on vertices) pathedge predecessor edge array (on vertices) start start vertex connected array to mark whether a vertex is part of computed Steiner tree solfound could a solution be found?
Definition at line 2146 of file graph_path.c.
References GRAPH::budget, correctX(), GRAPH::costbudget, EAT_LAST, FALSE, FARAWAY, graph_pc_markOrgGraph(), GRAPH::head, Is_term, GRAPH::knots, GRAPH::mark, nearestX(), nnodes, NULL, GRAPH::oeat, GRAPH::outbeg, GRAPH::path_heap, GRAPH::path_state, resetX(), SCIP_CALL, SCIP_ERROR, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPfreeBufferArray, GRAPH::tail, GRAPH::term, GRAPH::terms, TRUE, and UNKNOWN.
Referenced by computeSteinerTreeDijkBMw().
◆ graph_path_st_pcmw()
void graph_path_st_pcmw | ( | GRAPH * | g, |
SCIP_Real * | orderedprizes, | ||
int * | orderedprizes_id, | ||
const SCIP_Real * | cost, | ||
const SCIP_Real * | prize, | ||
SCIP_Bool | costIsBiased, | ||
SCIP_Real * | pathdist, | ||
int * | pathedge, | ||
int | start, | ||
STP_Bool * | connected | ||
) |
!!!LEGACY CODE!!! Find a tree rooted in node 'start' and connecting positive vertices as long as this is profitable. Note that this function overwrites g->mark.
- Parameters
-
g graph data structure orderedprizes legacy code orderedprizes_id legacy code cost edge costs prize (possibly biased) prize costIsBiased is cost biased? pathdist distance array (on vertices) pathedge predecessor edge array (on vertices) start start vertex connected array to mark whether a vertex is part of computed Steiner tree
Definition at line 1430 of file graph_path.c.
References correctX(), EAT_LAST, GRAPH::extended, FALSE, FARAWAY, graph_pc_isPc(), graph_pc_isPcMw(), graph_pc_isRootedPcMw(), graph_pc_knotIsNonLeafTerm(), GRAPH::head, Is_pseudoTerm, GRAPH::knots, LT, GRAPH::mark, stortest_path_prizecollecting::maxoutprize, nearestX(), nnodes, nterms, GRAPH::oeat, stortest_path_prizecollecting::orderedprizes, GRAPH::outbeg, GRAPH::path_heap, GRAPH::path_state, SCIP_Bool, SCIP_Real, SCIPdebugMessage, shortestpath_pcConnectNode(), shortestpath_pcReset(), stPcmwConnectNode(), stPcmwInit(), GRAPH::tail, GRAPH::term, TRUE, and UNKNOWN.
Referenced by computeSteinerTreeDijkPcMw().
◆ graph_path_st_pcmw_full()
void graph_path_st_pcmw_full | ( | GRAPH * | g, |
const SCIP_Real * | cost, | ||
SCIP_Real * | pathdist, | ||
int * | pathedge, | ||
int | start, | ||
STP_Bool * | connected | ||
) |
Find a tree rooted in node 'start' and connecting all positive vertices. Note that this function overwrites g->mark.
- Parameters
-
g graph data structure cost edge costs pathdist distance array (on vertices) pathedge predecessor edge array (on vertices) start start vertex connected array to mark whether a vertex is part of computed Steiner tree
Definition at line 1608 of file graph_path.c.
References correctX(), GRAPH::extended, graph_pc_isPcMw(), graph_pc_isRootedPcMw(), graph_pc_knotIsFixedTerm(), GT, GRAPH::head, Is_pseudoTerm, Is_term, GRAPH::knots, GRAPH::mark, nearestX(), nnodes, nterms, NULL, GRAPH::oeat, GRAPH::outbeg, GRAPH::path_heap, GRAPH::path_state, resetX(), stPcmwInit(), stRpcmwInit(), GRAPH::tail, GRAPH::term, GRAPH::terms, TRUE, and UNKNOWN.
Referenced by computeSteinerTreeDijkPcMwFull().
◆ graph_path_st_pcmw_reduce()
void graph_path_st_pcmw_reduce | ( | SCIP * | scip, |
const GRAPH * | g, | ||
const SCIP_Real * | cost, | ||
SCIP_Real * | tmpnodeweight, | ||
int * | result, | ||
int | start, | ||
STP_Bool * | connected | ||
) |
Reduce given solution Note that this function overwrites g->mark.
- Parameters
-
scip SCIP data structure g graph data structure cost edge costs tmpnodeweight node weight array result incoming arc array start start vertex connected array to mark whether a vertex is part of computed Steiner tree
Definition at line 1556 of file graph_path.c.
References CONNECT, EAT_LAST, FALSE, GRAPH::head, Is_term, NULL, GRAPH::oeat, GRAPH::outbeg, SCIPfreeBufferArray, SCIPisGE(), GRAPH::term, and UNKNOWN.
◆ graph_path_st_pcmw_extend()
void graph_path_st_pcmw_extend | ( | SCIP * | scip, |
const GRAPH * | g, | ||
const SCIP_Real * | cost, | ||
SCIP_Bool | breakearly, | ||
PATH * | path, | ||
STP_Bool * | connected, | ||
SCIP_Bool * | extensions | ||
) |
greedy extension of a given tree for PC or MW problems
- Parameters
-
scip SCIP data structure g graph data structure cost edge costs breakearly finish computation early if no profitable extension possible? path shortest paths data structure connected array to mark whether a vertex is part of computed Steiner tree extensions extensions performed?
Definition at line 1706 of file graph_path.c.
References shortest_path::dist, EAT_LAST, shortest_path::edge, GRAPH::extended, FALSE, FARAWAY, FSP_MODE, GRAPH::grad, GRAPH::head, Is_pseudoTerm, Is_term, GRAPH::knots, GRAPH::mark, nnodes, nterms, NULL, GRAPH::oeat, GRAPH::outbeg, GRAPH::path_heap, GRAPH::path_state, pathheapCorrect(), pathheapGetNearest(), pathheapReset(), GRAPH::prize, SCIP_Real, SCIPisGE(), SCIPisGT(), GRAPH::source, GRAPH::tail, GRAPH::term, TRUE, and UNKNOWN.
Referenced by SCIPStpHeurLocalExtendPcMw().
◆ graph_path_st_pcmw_extendBiased()
void graph_path_st_pcmw_extendBiased | ( | SCIP * | scip, |
GRAPH * | g, | ||
const SCIP_Real * | cost, | ||
const SCIP_Real * | prize, | ||
PATH * | path, | ||
STP_Bool * | connected, | ||
SCIP_Bool * | extensions | ||
) |
greedy extension of a given tree for PC or MW problems; path[i].edge needs to be initialized
- Parameters
-
scip SCIP data structure g graph data structure cost edge costs prize (possibly biased) prize path shortest paths data structure with .edge initialized connected array to mark whether a vertex is part of computed Steiner tree extensions extensions performed?
Definition at line 1845 of file graph_path.c.
References shortest_path::dist, shortest_path::edge, GRAPH::extended, FALSE, FARAWAY, FSP_MODE, graph_pc_knotIsFixedTerm(), graph_pc_markOrgGraph(), GRAPH::head, Is_pseudoTerm, GRAPH::knots, GRAPH::mark, nnodes, nterms, NULL, GRAPH::oeat, GRAPH::outbeg, GRAPH::path_heap, GRAPH::path_state, pathheapCorrect(), pathheapGetNearest(), pathheapReset(), SCIP_Real, SCIPisGE(), GRAPH::source, GRAPH::tail, GRAPH::term, TRUE, and UNKNOWN.
◆ graph_path_st_pcmw_extendOut()
void graph_path_st_pcmw_extendOut | ( | SCIP * | scip, |
const GRAPH * | g, | ||
int | start, | ||
STP_Bool * | connected, | ||
SCIP_Real * | dist, | ||
int * | pred, | ||
STP_Bool * | connected_out, | ||
DHEAP * | dheap, | ||
SCIP_Bool * | success | ||
) |
extension heuristic
- Parameters
-
scip SCIP data structure g graph data structure start start connected array to mark whether a vertex is part of computed Steiner tree dist distances array pred predecessor node connected_out array for internal stuff dheap Dijkstra heap success extension successful?
Definition at line 1051 of file graph_path.c.
References csr_storage::cost, GRAPH::csr_storage, GRAPH::extended, FALSE, FARAWAY, graph_heap_clean(), graph_heap_correct(), graph_heap_deleteMinReturnNode(), graph_pc_isPcMw(), csr_storage::head, Is_term, GRAPH::knots, nnodes, dijkstra_heap::position, GRAPH::prize, SCIP_Real, SCIPisGE(), SCIPisGT(), dijkstra_heap::size, csr_storage::start, GRAPH::term, TRUE, and UNKNOWN.
Referenced by SCIPStpHeurLocalExtendPcMwOut().
◆ graph_pathHeapAdd()
void graph_pathHeapAdd | ( | const PATH * | , |
int | , | ||
int * | RESTRICT, | ||
int * | RESTRICT, | ||
int * | |||
) |
Referenced by computeSteinerTreeVnoi(), tpathsRepairUpdate1st(), tpathsRepairUpdateLevel(), and vnoiDataRepairPreprocess().
◆ graph_path_PcMwSd()
void graph_path_PcMwSd | ( | SCIP * | scip, |
const GRAPH * | g, | ||
PATH * | path, | ||
SCIP_Real * | cost, | ||
SCIP_Real | distlimit, | ||
int * | pathmaxnode, | ||
int * | heap, | ||
int * | state, | ||
int * | stateblock, | ||
int * | memlbl, | ||
int * | nlbl, | ||
int | tail, | ||
int | head, | ||
int | limit | ||
) |
limited Dijkstra for PCSTP, taking terminals into account
- Parameters
-
scip SCIP data structure g graph data structure path shortest paths data structure cost edge costs distlimit distance limit of the search pathmaxnode maximum weight node on path heap array representing a heap state array to indicate whether a node has been scanned during SP calculation stateblock array to indicate whether a node has been scanned during previous SP calculation memlbl array to save labelled nodes nlbl number of labelled nodes tail tail of the edge head head of the edge limit maximum number of edges to consider during execution
Definition at line 788 of file graph_path.c.
References CONNECT, shortest_path::dist, EAT_LAST, FALSE, FSP_MODE, GRAPH::grad, GRAPH::head, Is_term, GRAPH::mark, NULL, GRAPH::oeat, GRAPH::outbeg, pathheapCorrect(), pathheapGetNearest(), GRAPH::prize, SCIP_Bool, SCIP_Real, SCIPisGT(), SCIPisLE(), STP_MWCSP, GRAPH::stp_type, GRAPH::term, TRUE, and UNKNOWN.
Referenced by reduce_sdsp(), and sdGetSdPcMw().
◆ graph_path_init()
SCIP_RETCODE graph_path_init | ( | SCIP * | , |
GRAPH * | |||
) |
Definition at line 480 of file graph_path.c.
References GRAPH::knots, NULL, GRAPH::path_heap, GRAPH::path_state, SCIP_CALL, SCIP_OKAY, and SCIPallocMemoryArray.
Referenced by bdkInit(), boundPruneHeur(), checkSdWalk(), computeReducedProbSolution(), createModel(), extractSubgraphBuild(), graphBuildV5E5(), initReceivedSubproblem(), localExtendPc(), localInsertion(), localInsertion2(), localInsertion2pc(), localKeyPathExchange(), localKeyPathExchangeMw(), localKeyPathExchangePc(), localKeyPathExchangePc2(), localKeyVertex(), localKeyVertexPc(), localKeyVertexPc2(), propgraphApplyBoundchanges(), prunegraphInit(), pseudoDelDouble(), pseudoDelSingle(), redcostGraphComputeSteinerTree(), redcostGraphComputeSteinerTreeDegCons(), redcostGraphComputeSteinerTreeDirected(), reduce_bd34(), reduce_bd34WithSd(), reduce_bound(), reduce_boundHop(), reduce_daPcMw(), reduce_exec(), reduce_impliedProfitBasedRpc(), reduce_npv(), reduce_sd(), runDualAscent(), SCIP_DECL_PROBCOPY(), SCIPStpHeurPruneRun(), SCIPStpHeurRecExclude(), SCIPStpHeurSlackPruneRun(), sdgraphMstBuild(), stptest_graphSetUp(), subgraphBuild(), substpsolver_solve(), supergraphComputeMst(), testDistCloseNodesAreValid(), testDistDistancesAreValid(), testDistRootPathsAreValid(), testEdgeDeletion1_deprecated(), testEdgeDeletion2_deprecated(), testEdgeDeletion3_deprecated(), testEdgeDeletion4_deprecated(), and testSdGetterReturnsCorrectSds().
◆ graph_path_exists()
existing?
- Parameters
-
g graph data structure
Definition at line 497 of file graph_path.c.
References NULL, GRAPH::path_heap, and GRAPH::path_state.
Referenced by graph_free(), reduce_exec(), and substpsolver_solve().
◆ graph_sdPaths()
void graph_sdPaths | ( | const GRAPH * | g, |
PATH * | path, | ||
const SCIP_Real * | cost, | ||
SCIP_Real | distlimit, | ||
int * | heap, | ||
int * | state, | ||
int * | memlbl, | ||
int * | nlbl, | ||
int | tail, | ||
int | head, | ||
int | limit | ||
) |
limited Dijkstra, stopping at terminals
- Parameters
-
g graph data structure path shortest paths data structure cost edge costs distlimit distance limit of the search heap array representing a heap state array to indicate whether a node has been scanned during SP calculation memlbl array to save labelled nodes nlbl number of labelled nodes tail tail of the edge head head of the edge limit maximum number of edges to consider during execution
Definition at line 684 of file graph_path.c.
References CONNECT, shortest_path::dist, FALSE, FARAWAY, FSP_MODE, GE, GRAPH::grad, graph_pc_isMw(), graph_typeIsUndirected(), GT, GRAPH::head, Is_term, GRAPH::mark, NULL, GRAPH::oeat, GRAPH::outbeg, pathheapCorrect(), pathheapGetNearest(), SCIP_Bool, GRAPH::term, TRUE, and UNKNOWN.
Referenced by reduce_getSdByPaths(), reduce_sdsp(), and reduce_sdspSap().
◆ graph_add2ndTermPaths()
void graph_add2ndTermPaths | ( | const GRAPH * | g, |
const SCIP_Real * | cost, | ||
const SCIP_Real * | costrev, | ||
PATH * | path2, | ||
int * | vbase2, | ||
int * | state2 | ||
) |
2nd next terminal to all non terminal nodes NOTE: legacy wrapper
- Parameters
-
g graph data structure cost edge costs costrev reversed edge costs path2 path data structure (leading to first and second nearest terminal) vbase2 first and second nearest terminal to each non terminal state2 array to mark the state of each node during calculation
Definition at line 1482 of file graph_tpath.c.
References graph_get_nNodes(), graph_tpathsAdd2nd(), nodes_to_terminal_paths::nnodes, NULL, and nodes_to_terminal_paths::termpaths.
Referenced by boundPruneHeur(), boundPruneHeurMw(), reduce_bound(), reduce_boundHop(), reduce_boundMw(), and reduce_daPcMw().
◆ graph_add3rdTermPaths()
void graph_add3rdTermPaths | ( | const GRAPH * | g, |
const SCIP_Real * | cost, | ||
const SCIP_Real * | costrev, | ||
PATH * | path3, | ||
int * | vbase3, | ||
int * | state3 | ||
) |
3rd next terminal to all non terminal nodes NOTE: legacy wrapper
- Parameters
-
g graph data structure cost edge costs costrev reversed edge costs path3 path data structure (leading to first, second and third nearest terminal) vbase3 first, second and third nearest terminal to each non terminal state3 array to mark the state of each node during calculation
Definition at line 1501 of file graph_tpath.c.
References graph_get_nNodes(), graph_tpathsAdd3rd(), nodes_to_terminal_paths::nnodes, NULL, and nodes_to_terminal_paths::termpaths.
Referenced by boundPruneHeur(), and reduce_bound().
◆ graph_add4thTermPaths()
void graph_add4thTermPaths | ( | const GRAPH * | , |
const SCIP_Real * | , | ||
const SCIP_Real * | , | ||
PATH * | , | ||
int * | , | ||
int * | |||
) |
Definition at line 1521 of file graph_tpath.c.
References graph_get_nNodes(), graph_tpathsAdd4th(), nodes_to_terminal_paths::nnodes, NULL, and nodes_to_terminal_paths::termpaths.
Referenced by reduce_bound().
◆ graph_get2nextTermPaths()
void graph_get2nextTermPaths | ( | GRAPH * | g, |
const SCIP_Real * | cost, | ||
const SCIP_Real * | costrev, | ||
PATH * | path2, | ||
int * | vbase2, | ||
int * | state2 | ||
) |
gets non-terminal shortest paths to 2 closest terminal for each non-terminal NOTE: legacy wrapper
- Parameters
-
g graph data structure cost edge costs costrev reversed edge costs path2 path data structure (leading to first, second terminal) vbase2 first, second and third nearest terminal to each non terminal state2 array to mark the state of each node during calculation
Definition at line 1542 of file graph_tpath.c.
References graph_get_nNodes(), graph_tpathsSetAll2(), nodes_to_terminal_paths::nnodes, NULL, and nodes_to_terminal_paths::termpaths.
Referenced by getRedCost2ndNextDistances(), redcosts_initializeDistances(), and reduce_daSlackPrune().
◆ graph_get3nextTermPaths()
void graph_get3nextTermPaths | ( | GRAPH * | g, |
const SCIP_Real * | cost, | ||
const SCIP_Real * | costrev, | ||
PATH * | path3, | ||
int * | vbase3, | ||
int * | state3 | ||
) |
gets non-terminal shortest paths to 3 closest terminal for each non-terminal NOTE: legacy wrapper
- Parameters
-
g graph data structure cost edge costs costrev reversed edge costs path3 path data structure (leading to first, second and third nearest terminal) vbase3 first, second and third nearest terminal to each non terminal state3 array to mark the state of each node during calculation
Definition at line 1562 of file graph_tpath.c.
References graph_get_nNodes(), graph_tpathsSetAll3(), nodes_to_terminal_paths::nnodes, NULL, and nodes_to_terminal_paths::termpaths.
Referenced by redcosts_initializeDistances().
◆ graph_get4nextTermPaths()
void graph_get4nextTermPaths | ( | GRAPH * | g, |
const SCIP_Real * | cost, | ||
const SCIP_Real * | costrev, | ||
PATH * | path4, | ||
int * | vbase4, | ||
int * | state4 | ||
) |
gets non-terminal shortest paths to 4 closest terminal for each non-terminal NOTE: legacy wrapper
- Parameters
-
g graph data structure cost edge costs costrev reversed edge costs path4 path data struture (leading to first, second, third and fouth nearest terminal) vbase4 first, second and third nearest terminal to each non terminal state4 array to mark the state of each node during calculation
Definition at line 1582 of file graph_tpath.c.
References graph_get_nNodes(), graph_tpathsSetAll4(), nodes_to_terminal_paths::nnodes, NULL, and nodes_to_terminal_paths::termpaths.
Referenced by reduce_sd(), and reduce_sdPc().
◆ graph_get4nextTTerms()
SCIP_RETCODE graph_get4nextTTerms | ( | SCIP * | scip, |
GRAPH * | g, | ||
const SCIP_Real * | cost, | ||
PATH * | path, | ||
int * | vbase, | ||
int * | heap, | ||
int * | state | ||
) |
get 4 close terminals to each terminal
- Parameters
-
scip SCIP data structure g graph data structure cost edge costs path path data structure (leading to first, second, third and fourth nearest terminal) vbase first, second and third nearest terminal to each non terminal heap array representing a heap state array to mark the state of each node during calculation
Definition at line 1601 of file graph_tpath.c.
References shortest_path::dist, EAT_LAST, GRAPH::edges, FARAWAY, graph_mark(), graph_pc_isPcMw(), GRAPH::head, Is_term, GRAPH::knots, GRAPH::mark, nodes_to_terminal_paths::nnodes, NULL, GRAPH::oeat, GRAPH::outbeg, SCIP_CALL, SCIP_OKAY, SCIPallocBufferArray, SCIPfreeBufferArray, GRAPH::tail, GRAPH::term, UNKNOWN, and utdist().
Referenced by reduce_bound(), and reduce_sdPc().
◆ graph_tpathsInit()
SCIP_RETCODE graph_tpathsInit | ( | SCIP * | scip, |
GRAPH * | g, | ||
TPATHS ** | tpaths | ||
) |
initializes TPATHS structure
- Parameters
-
scip SCIP g graph NOTE: will mark the graph, thus not const :( terrible design tpaths the terminal paths
Definition at line 1682 of file graph_tpath.c.
References SCIP_CALL, SCIP_OKAY, STP_TPATHS_NTERMBASES, tpathsAlloc(), and tpathsBuild().
Referenced by reduce_sdInit(), testBiasedTerminalPathsTo4NextFound(), testTerminalPathsRepair(), testTerminalPathsRepair2(), testTerminalPathsRepair3(), and testTerminalPathsTo3NextFound().
◆ graph_tpathsInitBiased()
SCIP_RETCODE graph_tpathsInitBiased | ( | SCIP * | scip, |
const SDPROFIT * | sdprofit, | ||
GRAPH * | g, | ||
TPATHS ** | tpaths | ||
) |
initializes biased TPATHS structure
- Parameters
-
scip SCIP sdprofit SD profit g graph NOTE: will mark the graph, thus not const :( terrible design tpaths the terminal paths
Definition at line 1700 of file graph_tpath.c.
References SCIP_CALL, SCIP_OKAY, STP_TPATHS_NTERMBASES, tpathsAlloc(), and tpathsBuildBiased().
Referenced by reduce_sdInitBiased(), reduce_sdInitBiasedBottleneck(), and testSdGraphStrongBiasedDistsAreValid().
◆ graph_tpathsRecomputeBiased()
SCIP_RETCODE graph_tpathsRecomputeBiased | ( | const SDPROFIT * | sdprofit, |
GRAPH * | g, | ||
TPATHS * | tpaths | ||
) |
recomputes biased TPATHS structure
- Parameters
-
sdprofit SD profit g graph NOTE: will mark the graph, thus not const :( terrible design tpaths the terminal paths
Definition at line 1776 of file graph_tpath.c.
References SCIP_OKAY, STP_TPATHS_NTERMBASES, and tpathsBuildBiased().
Referenced by reduce_impliedProfitBased(), and reduce_impliedProfitBasedRpc().
◆ graph_tpathsRepair()
SCIP_RETCODE graph_tpathsRepair | ( | SCIP * | scip, |
int | edge, | ||
SCIP_Bool | withEdgeReplacement, | ||
const GRAPH * | g, | ||
TPATHS * | tpaths | ||
) |
repairs TPATHS structure for imminent edge deletion
- Parameters
-
scip SCIP edge edge about to be eliminated withEdgeReplacement with edge replacement? g graph tpaths the terminal paths
Definition at line 1744 of file graph_tpath.c.
References graph_edge_isInRange(), graph_isMarked(), NULL, SCIP_CALL, SCIP_OKAY, STP_TPATHS_NTERMBASES, STP_Vectype, nodes_to_terminal_paths::termbases_org, tpathsRepair1st(), tpathsRepair2nd(), tpathsRepair3rd(), tpathsRepair4th(), tpathsRepairExit(), and tpathsRepairInit().
Referenced by reduce_sdRepair(), testTerminalPathsRepair(), testTerminalPathsRepair2(), and testTerminalPathsRepair3().
◆ graph_tpathsRepairSetUp()
SCIP_RETCODE graph_tpathsRepairSetUp | ( | const GRAPH * | g, |
TPATHS * | tpaths | ||
) |
sets up TPATHS for subsequent edge deletions
- Parameters
-
g graph tpaths the terminal paths
Definition at line 1719 of file graph_tpath.c.
References BMScopyMemoryArray, graph_get_nNodes(), nodes_to_terminal_paths::nnodes, SCIP_CALL, SCIP_OKAY, SCIPallocMemoryArray, nodes_to_terminal_paths::state, STP_TPATHS_NTERMBASES, nodes_to_terminal_paths::termbases, nodes_to_terminal_paths::termbases_org, and UNKNOWN.
Referenced by reduce_sdRepairSetUp(), testTerminalPathsRepair(), testTerminalPathsRepair2(), and testTerminalPathsRepair3().
◆ graph_tpathsFree()
frees TPATHS structure
- Parameters
-
scip SCIP tpaths the terminal paths
Definition at line 2300 of file graph_tpath.c.
References SCIPfreeMemory, SCIPfreeMemoryArray, SCIPfreeMemoryArrayNull, nodes_to_terminal_paths::state, nodes_to_terminal_paths::termbases, nodes_to_terminal_paths::termbases_org, and nodes_to_terminal_paths::termpaths.
Referenced by reduce_sdFree(), testBiasedTerminalPathsTo4NextFound(), testSdGraphStrongBiasedDistsAreValid(), testTerminalPathsRepair(), testTerminalPathsRepair2(), testTerminalPathsRepair3(), and testTerminalPathsTo3NextFound().
◆ graph_tpathsPrintForNode()
void graph_tpathsPrintForNode | ( | const GRAPH * | g, |
const SDPROFIT * | sdprofit, | ||
const TPATHS * | tpaths, | ||
int | node | ||
) |
prints terminal paths from given node
- Parameters
-
g graph data structure sdprofit SD bias for nodes or NULL tpaths storage for terminal paths node node to start from
Definition at line 1793 of file graph_tpath.c.
References shortest_path::dist, graph_get_nNodes(), graph_knot_isInRange(), graph_knot_printInfo(), Is_term, nodes_to_terminal_paths::nnodes, STP_TPATHS_NTERMBASES, GRAPH::term, nodes_to_terminal_paths::termbases, nodes_to_terminal_paths::termpaths, tpathsPrintPath(), and UNKNOWN.
◆ graph_tpathsGetProfitNodes()
void graph_tpathsGetProfitNodes | ( | SCIP * | scip, |
const GRAPH * | g, | ||
const TPATHS * | tpaths, | ||
const SDPROFIT * | sdprofit, | ||
int | start, | ||
int | base, | ||
STP_Vectype(int) | profitnodes | ||
) |
gets nodes with positive profit on path
- Parameters
-
scip SCIP g graph data structure tpaths storage for terminal paths sdprofit SD bias for nodes start start vertex base base vertex (terminal) profitnodes NOTE: needs to be of capacity at least g->knots!
Definition at line 1842 of file graph_tpath.c.
References shortest_path::edge, graph_edge_isInRange(), graph_get_nNodes(), graph_knot_isInRange(), GT, Is_term, GRAPH::knots, nodes_to_terminal_paths::nnodes, reduce_sdprofitGetProfit(), SCIP_Real, STP_TPATHS_NTERMBASES, StpVecClear, StpVecGetcapacity, StpVecGetSize, StpVecPushBack, GRAPH::tail, GRAPH::term, nodes_to_terminal_paths::termbases, and nodes_to_terminal_paths::termpaths.
Referenced by sdgraphUpdateDistgraphFromTpaths().
◆ graph_tpathsAdd1st()
void graph_tpathsAdd1st | ( | const GRAPH * | g, |
const SCIP_Real * | cost, | ||
const SDPROFIT * | sdprofit, | ||
TPATHS * | tpaths | ||
) |
Computes next terminal to all non-terminal nodes. Essentially a Voronoi diagram
- Parameters
-
g graph data structure cost edge costs sdprofit SD bias for nodes or NULL tpaths storage for terminal paths
Definition at line 1932 of file graph_tpath.c.
References FARAWAY, graph_get_nNodes(), Is_term, GRAPH::mark, nodes_to_terminal_paths::nnodes, NULL, GRAPH::path_heap, nodes_to_terminal_paths::state, GRAPH::term, nodes_to_terminal_paths::termbases, nodes_to_terminal_paths::termpaths, tpathsScan1st(), and UNKNOWN.
Referenced by graph_add1stTermPaths(), graph_tpathsSetAll2(), graph_tpathsSetAll3(), and graph_tpathsSetAll4().
◆ graph_tpathsAdd2nd()
void graph_tpathsAdd2nd | ( | const GRAPH * | g, |
const SCIP_Real * | cost, | ||
const SCIP_Real * | costrev, | ||
const SDPROFIT * | sdprofit, | ||
TPATHS * | tpaths | ||
) |
computes 2nd next terminal to all non-terminal nodes
- Parameters
-
g graph data structure cost edge costs costrev reversed edge costs sdprofit SD bias for nodes or NULL tpaths storage for terminal paths
Definition at line 1987 of file graph_tpath.c.
References EAT_LAST, graph_get_nNodes(), GT, GRAPH::head, Is_term, GRAPH::mark, nodes_to_terminal_paths::nnodes, NULL, GRAPH::oeat, GRAPH::outbeg, GRAPH::path_heap, pathheapCorrectDist(), SCIP_Real, nodes_to_terminal_paths::state, GRAPH::term, nodes_to_terminal_paths::termbases, nodes_to_terminal_paths::termpaths, tpathsGetDistNew(), tpathsResetMembers(), and tpathsScan2nd().
Referenced by graph_add2ndTermPaths(), graph_tpathsSetAll2(), graph_tpathsSetAll3(), and graph_tpathsSetAll4().
◆ graph_tpathsAdd3rd()
void graph_tpathsAdd3rd | ( | const GRAPH * | g, |
const SCIP_Real * | cost, | ||
const SCIP_Real * | costrev, | ||
const SDPROFIT * | sdprofit, | ||
TPATHS * | tpaths | ||
) |
computes 3rd next terminal to all non-terminal nodes
- Parameters
-
g graph data structure cost edge costs costrev reversed edge costs sdprofit SD bias for nodes or NULL tpaths storage for terminal paths
Definition at line 2044 of file graph_tpath.c.
References EAT_LAST, graph_get_nNodes(), GT, GRAPH::head, Is_term, GRAPH::mark, nodes_to_terminal_paths::nnodes, NULL, GRAPH::oeat, GRAPH::outbeg, GRAPH::path_heap, pathheapCorrectDist(), SCIP_Real, nodes_to_terminal_paths::state, GRAPH::term, nodes_to_terminal_paths::termbases, nodes_to_terminal_paths::termpaths, tpathsGetDistNew(), tpathsResetMembers(), and tpathsScan3rd().
Referenced by graph_add3rdTermPaths(), graph_tpathsSetAll3(), and graph_tpathsSetAll4().
◆ graph_tpathsAdd4th()
void graph_tpathsAdd4th | ( | const GRAPH * | g, |
const SCIP_Real * | cost, | ||
const SCIP_Real * | costrev, | ||
const SDPROFIT * | sdprofit, | ||
TPATHS * | tpaths | ||
) |
computes 4th next terminal to all non-terminal nodes
- Parameters
-
g graph data structure cost edge costs costrev reversed edge costs sdprofit SD bias for nodes or NULL tpaths storage for terminal paths
Definition at line 2112 of file graph_tpath.c.
References EAT_LAST, graph_get_nNodes(), GT, GRAPH::head, Is_term, GRAPH::mark, nodes_to_terminal_paths::nnodes, NULL, GRAPH::oeat, GRAPH::outbeg, GRAPH::path_heap, pathheapCorrectDist(), SCIP_Real, nodes_to_terminal_paths::state, GRAPH::term, nodes_to_terminal_paths::termbases, nodes_to_terminal_paths::termpaths, tpathsGetDistNew(), tpathsResetMembers(), and tpathsScan4th().
Referenced by graph_add4thTermPaths(), and graph_tpathsSetAll4().
◆ graph_tpathsSetAll2()
void graph_tpathsSetAll2 | ( | GRAPH * | g, |
const SCIP_Real * | cost, | ||
const SCIP_Real * | costrev, | ||
const SDPROFIT * | sdprofit, | ||
TPATHS * | tpaths | ||
) |
computes 2 next terminal to all non-terminal nodes
- Parameters
-
g graph data structure cost edge costs costrev reversed edge costs sdprofit SD bias for nodes or NULL tpaths storage for terminal paths
Definition at line 2180 of file graph_tpath.c.
References EPSILON, graph_get_nNodes(), graph_mark(), graph_pc_isPcMw(), graph_tpathsAdd1st(), graph_tpathsAdd2nd(), LE_FEAS_EPS, nodes_to_terminal_paths::nnodes, NULL, and nodes_to_terminal_paths::termpaths.
Referenced by graph_get2nextTermPaths().
◆ graph_tpathsSetAll3()
void graph_tpathsSetAll3 | ( | GRAPH * | g, |
const SCIP_Real * | cost, | ||
const SCIP_Real * | costrev, | ||
const SDPROFIT * | sdprofit, | ||
TPATHS * | tpaths | ||
) |
computes 3 next terminal to all non-terminal nodes
- Parameters
-
g graph data structure cost edge costs costrev reversed edge costs sdprofit SD bias for nodes or NULL tpaths storage for terminal paths
Definition at line 2219 of file graph_tpath.c.
References EPSILON, graph_get_nNodes(), graph_mark(), graph_pc_isPcMw(), graph_tpathsAdd1st(), graph_tpathsAdd2nd(), graph_tpathsAdd3rd(), LE_FEAS_EPS, nodes_to_terminal_paths::nnodes, NULL, and nodes_to_terminal_paths::termpaths.
Referenced by graph_get3nextTermPaths().
◆ graph_tpathsSetAll4()
void graph_tpathsSetAll4 | ( | GRAPH * | g, |
const SCIP_Real * | cost, | ||
const SCIP_Real * | costrev, | ||
const SDPROFIT * | sdprofit, | ||
TPATHS * | tpaths | ||
) |
computes 4 next terminal to all non-terminal nodes
- Parameters
-
g graph data structure cost edge costs costrev reversed edge costs sdprofit SD bias for nodes or NULL tpaths storage for terminal paths
Definition at line 2260 of file graph_tpath.c.
References graph_get_nNodes(), graph_mark(), graph_tpathsAdd1st(), graph_tpathsAdd2nd(), graph_tpathsAdd3rd(), graph_tpathsAdd4th(), LE, nodes_to_terminal_paths::nnodes, NULL, and nodes_to_terminal_paths::termpaths.
Referenced by graph_get4nextTermPaths(), testBiasedTerminalPathsTo4NextFound(), testTerminalPathsRepair(), testTerminalPathsRepair2(), testTerminalPathsRepair3(), testTerminalPathsTo3NextFound(), tpathsBuild(), and tpathsBuildBiased().
◆ graph_tpathsGetClosestTerm()
void graph_tpathsGetClosestTerm | ( | const GRAPH * | , |
const TPATHS * | , | ||
int | , | ||
int * | RESTRICT, | ||
int * | RESTRICT, | ||
SCIP_Real * | RESTRICT | ||
) |
Referenced by distgraphAddEdgesFromTpaths().
◆ graph_tpathsGet3CloseTerms()
void graph_tpathsGet3CloseTerms | ( | const GRAPH * | , |
const TPATHS * | , | ||
int | , | ||
SCIP_Real | , | ||
int * | RESTRICT, | ||
int * | RESTRICT, | ||
SCIP_Real * | RESTRICT, | ||
int * | RESTRICT | ||
) |
Referenced by distgraphGetBoundaryEdgeDistBest().
◆ graph_tpathsGet4CloseTerms()
◆ graph_tpathsGet4CloseTermsLE()
void graph_tpathsGet4CloseTermsLE | ( | const GRAPH * | , |
const TPATHS * | , | ||
int | , | ||
SCIP_Real | , | ||
int * | RESTRICT, | ||
int * | RESTRICT, | ||
SCIP_Real * | RESTRICT, | ||
int * | RESTRICT | ||
) |
Referenced by nsvEdgeGetTermDists().
◆ graph_sdStar()
void graph_sdStar | ( | SCIP * | scip, |
const GRAPH * | g, | ||
SCIP_Bool | with_zero_edges, | ||
int | star_root, | ||
int | edgelimit, | ||
int * | star_base, | ||
SCIP_Real * | dist, | ||
int * | visitlist, | ||
int * | nvisits, | ||
DHEAP * | dheap, | ||
STP_Bool * | visited, | ||
SCIP_Bool * | success | ||
) |
limited Dijkstra, stopping at terminals
- Parameters
-
scip SCIP data structure g graph data structure with_zero_edges telling name star_root root of the start edgelimit maximum number of edges to consider during execution star_base star base node, must be initially set to SDSTAR_BASE_UNSET dist distances array, initially set to FARAWAY visitlist stores all visited nodes nvisits number of visited nodes dheap Dijkstra heap visited stores whether a node has been visited success will be set to TRUE iff at least one edge can be deleted
Definition at line 1137 of file graph_sdpath.c.
References CONNECT, dynamic_csr_storage::cost, GRAPH::dcsr_storage, eps, EQ, GRAPH::extended, FALSE, FARAWAY, graph_heap_correct(), graph_heap_deleteMinReturnNode(), graph_pc_isPcMw(), GT, dynamic_csr_storage::head, GRAPH::knots, LE, LT, GRAPH::mark, dijkstra_heap::position, dynamic_csr_storage::range, SCIP_Real, SCIPepsilon(), SDSTAR_BASE_UNSET, dijkstra_heap::size, TRUE, and UNKNOWN.
Referenced by reduce_sdStar(), reduce_sdStarPc(), and reduce_sdStarPc2().
◆ graph_sdStarBiased()
SCIP_RETCODE graph_sdStarBiased | ( | SCIP * | scip, |
const GRAPH * | g, | ||
const SDPROFIT * | sdprofit, | ||
int | star_root, | ||
int * | star_base, | ||
DIJK * | dijkdata, | ||
SCIP_Bool * | success | ||
) |
limited Dijkstra with node bias
- Parameters
-
scip SCIP data structure g graph data structure sdprofit SD profit star_root root of the start star_base star base node, must be initially set to SDSTAR_BASE_UNSET dijkdata Dijkstra data success will be set to TRUE iff at least one edge can be deleted
Definition at line 1289 of file graph_sdpath.c.
References CONNECT, dynamic_csr_storage::cost, GRAPH::dcsr_storage, dijkstra_data::dheap, dijkstra_data::edgelimit, eps, EQ, GRAPH::extended, FALSE, FARAWAY, graph_get_nNodes(), graph_heap_correct(), graph_heap_deleteMinReturnNode(), graph_pc_isPcMw(), GT, dynamic_csr_storage::head, LE, LT, GRAPH::mark, nnodes, dijkstra_data::node_distance, dijkstra_data::node_visited, dijkstra_data::nvisits, dijkstra_heap::position, dynamic_csr_storage::range, reduce_sdprofitGetProfit(), SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPepsilon(), SCIPfreeBufferArray, SDSTAR_BASE_UNSET, dijkstra_heap::size, TRUE, UNKNOWN, and dijkstra_data::visitlist.
Referenced by sdStarBiasedProcessNode().
◆ graph_sdCloseNodesBiased()
SCIP_RETCODE graph_sdCloseNodesBiased | ( | SCIP * | scip, |
const GRAPH * | g, | ||
const SDPROFIT * | sdprofit, | ||
int | sourcenode, | ||
DIJK * | dijkdata | ||
) |
limited Dijkstra with node bias that stops at terminals
- Parameters
-
scip SCIP data structure g graph data structure sdprofit SD profit or NULL sourcenode node to start from dijkdata Dijkstra data
Definition at line 1461 of file graph_sdpath.c.
References CONNECT, dynamic_csr_storage::cost, GRAPH::dcsr_storage, dijkstra_data::dheap, dijkstra_data::edgelimit, EQ, GRAPH::extended, FARAWAY, graph_get_nNodes(), graph_heap_correct(), graph_heap_deleteMinReturnNode(), dynamic_csr_storage::head, Is_term, LT, nnodes, dijkstra_data::node_distance, dijkstra_data::node_visited, dijkstra_data::nvisits, dijkstra_heap::position, dynamic_csr_storage::range, reduce_sdprofitGetProfit(), SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPfreeBufferArray, dijkstra_heap::size, GRAPH::term, TRUE, UNKNOWN, and dijkstra_data::visitlist.
Referenced by sdneighborMarkCloseNodes().
◆ graph_sdWalksConnected()
SCIP_Bool graph_sdWalksConnected | ( | SCIP * | scip, |
const GRAPH * | g, | ||
const int * | termmark, | ||
const SCIP_Real * | cost, | ||
const STP_Bool * | endpoint, | ||
int | start, | ||
int | edgelimit, | ||
SCIP_Real * | dist, | ||
int * | visitlist, | ||
int * | nvisits, | ||
STP_Bool * | visited, | ||
SCIP_Bool | resetarrays | ||
) |
modified Dijkstra along walks for PcMw
- Parameters
-
scip SCIP data structure g graph data structure termmark terminal mark (2 for proper terminal, 1 for non-proper terminal, 0 otherwise) cost edge costs endpoint stores whether search should be ended at vertex start start vertex edgelimit maximum number of edges to consider during execution dist distances array, initially set to FARAWAY visitlist stores all visited nodes nvisits number of visited nodes visited stores whether a node has been visited resetarrays should arrays be reset?
Definition at line 2285 of file graph_sdpath.c.
References CONNECT, EAT_LAST, GRAPH::extended, FALSE, FARAWAY, GRAPH::grad, graph_pc_isPcMw(), GRAPH::head, Is_term, GRAPH::knots, GRAPH::mark, nearestX(), NULL, GRAPH::oeat, GRAPH::outbeg, GRAPH::path_heap, GRAPH::path_state, GRAPH::prize, SCIP_Real, SCIPisGT(), SCIPisLE(), sdwalkCorrectHeap(), sdwalkReset(), GRAPH::term, TRUE, and UNKNOWN.
Referenced by daPcFindRoots(), findRootsMark(), and sepaspecial_pcimplicationsInit().
◆ graph_sdWalks()
SCIP_Bool graph_sdWalks | ( | SCIP * | scip, |
const GRAPH * | g, | ||
const SCIP_Real * | cost, | ||
const int * | termmark, | ||
SCIP_Real | distlimit, | ||
int | start, | ||
int | end, | ||
int | edgelimit, | ||
SCIP_Real * | dist, | ||
int * | heap, | ||
int * | state, | ||
int * | visitlist, | ||
int * | nvisits, | ||
STP_Bool * | visited | ||
) |
modified Dijkstra along walks for PcMw, returns special distance between start and end
- Parameters
-
scip SCIP data structure g graph data structure cost edge costs termmark terminal mark (2 for proper terminal, 1 for non-proper terminal, 0 otherwise) distlimit distance limit of the search start start end end edgelimit maximum number of edges to consider during execution dist distances array, initially set to FARAWAY heap array representing a heap state array to indicate whether a node has been scanned visitlist stores all visited nodes nvisits number of visited nodes visited stores whether a node has been visited
Definition at line 1564 of file graph_sdpath.c.
References CONNECT, EAT_LAST, GRAPH::extended, FALSE, GRAPH::grad, graph_pc_isPcMw(), GRAPH::head, GRAPH::mark, MAX, nearestX(), NULL, GRAPH::oeat, GRAPH::outbeg, GRAPH::prize, SCIP_Bool, SCIP_Real, SCIPisGT(), SCIPisLE(), sdwalkCorrectHeap(), TRUE, and UNKNOWN.
Referenced by reduce_sdWalk().
◆ graph_sdWalks_csr()
SCIP_Bool graph_sdWalks_csr | ( | SCIP * | scip, |
const GRAPH * | g, | ||
const int * | termmark, | ||
SCIP_Real | distlimit, | ||
int | start, | ||
int | end, | ||
int | edgelimit, | ||
SCIP_Real * | dist, | ||
int * | visitlist, | ||
int * | nvisits, | ||
DHEAP * | dheap, | ||
STP_Bool * | visited | ||
) |
modified Dijkstra along walks for PcMw, returns special distance between start and end
- Parameters
-
scip SCIP data structure g graph data structure termmark terminal mark (2 for proper terminal, 1 for non-proper terminal, 0 otherwise) distlimit distance limit of the search start start end end edgelimit maximum number of edges to consider during execution dist distances array, initially set to FARAWAY visitlist stores all visited nodes nvisits number of visited nodes dheap Dijkstra heap visited stores whether a node has been visited
Definition at line 1696 of file graph_sdpath.c.
References CONNECT, dynamic_csr_storage::cost, GRAPH::dcsr_storage, GRAPH::extended, FALSE, GRAPH::grad, graph_heap_correct(), graph_heap_deleteMinReturnNode(), graph_pc_isPcMw(), dynamic_csr_storage::head, GRAPH::knots, LT, GRAPH::mark, MAX, dijkstra_heap::position, GRAPH::prize, dynamic_csr_storage::range, SCIP_Bool, SCIP_Real, SCIPisGT(), SCIPisLE(), dijkstra_heap::size, TRUE, and UNKNOWN.
Referenced by reduce_sdWalk_csr().
◆ graph_sdWalksTriangle()
SCIP_Bool graph_sdWalksTriangle | ( | SCIP * | scip, |
const GRAPH * | g, | ||
const int * | termmark, | ||
const int * | stateprev, | ||
SCIP_Real | distlimit, | ||
int | start, | ||
int | end, | ||
int | edgelimit, | ||
SCIP_Real * | prizeoffset, | ||
SCIP_Real * | dist, | ||
int * | visitlist, | ||
int * | nvisits, | ||
DHEAP * | dheap, | ||
STP_Bool * | visited | ||
) |
modified Dijkstra along walks for PcMw, returns special distance between start and end
- Parameters
-
scip SCIP data structure g graph data structure termmark terminal mark (2 for proper terminal, 1 for non-proper terminal, 0 otherwise) stateprev state of previous run or NULL distlimit distance limit of the search start start end end edgelimit maximum number of edges to consider during execution prizeoffset array for storing prize offset or NULL dist distances array, initially set to FARAWAY visitlist stores all visited nodes nvisits number of visited nodes dheap Dijkstra heap visited stores whether a node has been visited
Definition at line 1830 of file graph_sdpath.c.
References CONNECT, dynamic_csr_storage::cost, GRAPH::dcsr_storage, GRAPH::extended, FALSE, GRAPH::grad, graph_heap_correct(), graph_heap_deleteMinReturnNode(), graph_pc_isPcMw(), dynamic_csr_storage::head, GRAPH::knots, LT, GRAPH::mark, MAX, dijkstra_heap::position, GRAPH::prize, dynamic_csr_storage::range, SCIP_Bool, SCIP_Real, SCIPisLE(), SCIPisZero(), dijkstra_heap::size, TRUE, and UNKNOWN.
Referenced by reduce_sdWalkTriangle().
◆ graph_sdWalksExt()
SCIP_Bool graph_sdWalksExt | ( | SCIP * | scip, |
const GRAPH * | g, | ||
const SCIP_Real * | cost, | ||
SCIP_Real | distlimit, | ||
int | start, | ||
int | end, | ||
int | edgelimit, | ||
int | maxnprevs, | ||
SCIP_Real * | dist, | ||
int * | prevterms, | ||
int * | nprevterms, | ||
int * | heap, | ||
int * | state, | ||
int * | visitlist, | ||
int * | nvisits, | ||
STP_Bool * | visited | ||
) |
modified Dijkstra along walks for PcMw, returns special distance between start and end
- Parameters
-
scip SCIP data structure g graph data structure cost edge costs distlimit distance limit of the search start start end end edgelimit maximum number of edges to consider during execution maxnprevs maximum number of previous terminals to save dist distances array, initially set to FARAWAY prevterms previous terminals nprevterms number of previous terminals heap array representing a heap state array to indicate whether a node has been scanned visitlist stores all visited nodes nvisits number of visited nodes visited stores whether a node has been visited
Definition at line 1999 of file graph_sdpath.c.
References CONNECT, EAT_LAST, GRAPH::extended, FALSE, GRAPH::grad, graph_pc_isPcMw(), GRAPH::head, Is_term, GRAPH::mark, MAX, nearestX(), NULL, GRAPH::oeat, GRAPH::outbeg, GRAPH::prize, SCIP_Bool, SCIP_Real, SCIPisGT(), SCIPisLE(), sdwalkCorrectHeap(), sdwalkHasConflict(), sdwalkUpdate(), GRAPH::term, TRUE, and UNKNOWN.
Referenced by reduce_sdWalkExt().
◆ graph_sdWalksExt2()
SCIP_Bool graph_sdWalksExt2 | ( | SCIP * | scip, |
const GRAPH * | g, | ||
const SCIP_Real * | cost, | ||
const int * | termmark, | ||
SCIP_Real | distlimit, | ||
int | start, | ||
int | end, | ||
int | edgelimit, | ||
int | maxnprevs, | ||
SCIP_Real * | dist, | ||
int * | prevterms, | ||
int * | nprevterms, | ||
int * | prevNPterms, | ||
int * | nprevNPterms, | ||
int * | prevedges, | ||
int * | nprevedges, | ||
int * | heap, | ||
int * | state, | ||
int * | visitlist, | ||
int * | nvisits, | ||
STP_Bool * | visited | ||
) |
modified Dijkstra along walks for PcMw, returns special distance between start and end
- Parameters
-
scip SCIP data structure g graph data structure cost edge costs termmark terminal mark (2 for proper terminal, 1 for non-proper terminal, 0 otherwise) distlimit distance limit of the search start start end end edgelimit maximum number of edges to consider during execution maxnprevs maximum number of previous terminals to save dist distances array, initially set to FARAWAY prevterms previous terminals nprevterms number of previous terminals prevNPterms previous non-proper terminals nprevNPterms number of previous non-proper terminals prevedges previous edges nprevedges number of previous edges heap array representing a heap state array to indicate whether a node has been scanned visitlist stores all visited nodes nvisits number of visited nodes visited stores whether a node has been visited
Definition at line 2140 of file graph_sdpath.c.
References CONNECT, EAT_LAST, GRAPH::extended, FALSE, GRAPH::grad, graph_pc_isPcMw(), GRAPH::head, GRAPH::mark, MAX, nearestX(), NULL, GRAPH::oeat, GRAPH::outbeg, GRAPH::prize, SCIP_Bool, SCIP_Real, SCIPisGT(), SCIPisLE(), SCIPisLT(), SCIPisZero(), sdwalkCorrectHeap(), sdwalkGetdistnewEdge(), sdwalkGetdistnewPrize(), sdwalkHasConflict(), sdwalkUpdate2(), TRUE, and UNKNOWN.
Referenced by reduce_sdWalkExt2().
◆ graph_sdComputeCliqueStar()
SCIP_RETCODE graph_sdComputeCliqueStar | ( | SCIP * | scip, |
const GRAPH * | g, | ||
const SDPROFIT * | sdprofit, | ||
SDCLIQUE * | cliquedata | ||
) |
computes (or rather updates) SDs between all
- Parameters
-
scip SCIP data structure g graph data structure sdprofit profit or NULL cliquedata data
Definition at line 2398 of file graph_sdpath.c.
References special_distance_clique::cliquenodes, cliquePathsFreeData(), cliquePathsInitData(), special_distance_clique::dijkdata, GRAPH::knots, special_distance_clique::ncliquenodes, NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, sdCliqueStarComputeSds(), sdCliqueStarInit(), and special_distance_clique::sds.
Referenced by reduce_sdEdgeCliqueStar(), sdCliqueUpdateGraphWithStarWalks(), testSdCliqueStarDeg3AdjacencyIsCorrect(), testSdCliqueStarDeg3IsCorrect(), testSdCliqueStarDeg3IsCorrect2(), and testSdCliqueStarDeg4IsCorrect().
◆ graph_vnoiInit()
SCIP_RETCODE graph_vnoiInit | ( | SCIP * | scip, |
const GRAPH * | graph, | ||
SCIP_Bool | useBufferArrays, | ||
VNOI ** | vnoi | ||
) |
initializes VNOI structure
- Parameters
-
scip SCIP graph graph data structure to work on useBufferArrays should buffer arrays be used? vnoi the VNOI
Definition at line 1265 of file graph_vnoi.c.
References graph_get_nNodes(), nnodes, voronoi_storage::nnodes, voronoi_storage::nodes_base, voronoi_storage::nodes_dist, voronoi_storage::nodes_predEdge, SCIP_CALL, SCIP_OKAY, SCIPallocBufferArray, SCIPallocMemory, SCIPallocMemoryArray, and voronoi_storage::usingBufferArrays.
Referenced by sdgraphBuildDistgraph().
◆ graph_vnoiFree()
frees VNOI structure
- Parameters
-
scip SCIP vnoi the VNOI
Definition at line 1348 of file graph_vnoi.c.
References voronoi_storage::nodes_base, voronoi_storage::nodes_dist, voronoi_storage::nodes_predEdge, SCIPfreeBufferArray, SCIPfreeMemory, SCIPfreeMemoryArray, and voronoi_storage::usingBufferArrays.
Referenced by sdgraphFinalize().
◆ graph_vnoiCompute()
SCIP_RETCODE graph_vnoiCompute | ( | SCIP * | scip, |
const GRAPH * | graph, | ||
VNOI * | vnoi | ||
) |
computes Voronoi region on given graph
- Parameters
-
scip SCIP graph graph data structure to work on vnoi the VNOI
Definition at line 1302 of file graph_vnoi.c.
References graph_get_nNodes(), graph_heap_create(), graph_heap_free(), GRAPH::knots, nnodes, voronoi_storage::nnodes, NULL, SCIP_CALL, SCIP_OKAY, TRUE, vnoiCompute(), and vnoiInit().
Referenced by sdgraphBuildDistgraph().
◆ graph_vnoiComputeImplied()
SCIP_RETCODE graph_vnoiComputeImplied | ( | SCIP * | scip, |
const GRAPH * | graph, | ||
const SDPROFIT * | sdprofit, | ||
VNOI * | vnoi | ||
) |
computes implied Voronoi region on given graph
- Parameters
-
scip SCIP graph graph data structure to work on sdprofit SD profit vnoi the VNOI
Definition at line 1323 of file graph_vnoi.c.
References graph_get_nNodes(), graph_heap_create(), graph_heap_free(), GRAPH::knots, nnodes, voronoi_storage::nnodes, NULL, SCIP_CALL, SCIP_OKAY, TRUE, vnoiComputeImplied(), and vnoiInit().
Referenced by sdgraphBuildDistgraph().
◆ graph_voronoi()
void graph_voronoi | ( | const GRAPH * | g, |
const SCIP_Real * | cost, | ||
const SCIP_Real * | costrev, | ||
const STP_Bool * | basemark, | ||
int * | vbase, | ||
PATH * | path | ||
) |
build a Voronoi region, w.r.t. shortest paths, for a given set of bases
- Parameters
-
g graph data structure cost edge costs costrev reversed edge costs (or NULL if symmetric) basemark array to indicate whether a vertex is a Voronoi base vbase voronoi base to each vertex path path data struture (leading to respective Voronoi base)
Definition at line 333 of file graph_vnoi.c.
References CONNECT, correct(), shortest_path::dist, shortest_path::edge, FARAWAY, GT, GRAPH::head, GRAPH::knots, nearest(), NULL, GRAPH::oeat, GRAPH::outbeg, GRAPH::path_heap, GRAPH::path_state, GRAPH::source, and UNKNOWN.
Referenced by computeSteinerTreeVnoi(), and localKeyVertexHeuristics().
◆ graph_voronoiTerms()
Referenced by reduce_sl().
◆ graph_voronoiRepair()
void graph_voronoiRepair | ( | SCIP * | scip, |
const GRAPH * | g, | ||
const SCIP_Real * | cost, | ||
const SCIP_Real * | cost_org, | ||
int * | nheapelems, | ||
int * | vbase, | ||
PATH * | path, | ||
int * | newedge, | ||
int | crucnode, | ||
UF * | uf | ||
) |
repair a Voronoi diagram for a given set of base nodes
- Parameters
-
scip SCIP data structure g graph data structure cost edge costs (possibly biased) cost_org original edge costs (only needed for PC) nheapelems pointer to number of heap elements vbase array containing Voronoi base of each node path Voronoi paths data struture newedge the new edge crucnode the current crucial node uf union find data structure
Definition at line 1100 of file graph_vnoi.c.
References CONNECT, correct(), shortest_path::dist, EAT_LAST, FARAWAY, graph_get_nNodes(), graph_pc_isPc(), graph_pc_isPcMw(), GRAPH::head, GRAPH::mark, nearest(), nnodes, GRAPH::oeat, GRAPH::outbeg, GRAPH::path_heap, GRAPH::path_state, SCIP_Bool, SCIP_Real, SCIPisGT(), SCIPStpunionfindFind(), and UNKNOWN.
Referenced by localKeyVertexHeuristics().
◆ graph_voronoiRepairMult()
void graph_voronoiRepairMult | ( | SCIP * | , |
const GRAPH * | , | ||
const SCIP_Real * | , | ||
const STP_Bool * | , | ||
int * | RESTRICT, | ||
int * | RESTRICT, | ||
int * | RESTRICT, | ||
int * | RESTRICT, | ||
UF * | RESTRICT, | ||
PATH * | RESTRICT | ||
) |
Referenced by localKeyVertexHeuristics().
◆ graph_voronoiWithRadiusMw()
void graph_voronoiWithRadiusMw | ( | SCIP * | scip, |
const GRAPH * | g, | ||
PATH * | path, | ||
const SCIP_Real * | cost, | ||
SCIP_Real * | radius, | ||
int * | vbase, | ||
int * | heap, | ||
int * | state | ||
) |
Build partition of graph for MWCSP into regions around the positive vertices. Store the weight of a minimum weight center-boundary path for each region in the radius array (has to be reverted to obtain the final r() value).
- Parameters
-
scip SCIP data structure g graph data structure path array containing graph decomposition data cost edge costs radius array storing shortest way from a positive vertex out of its region vbase array containing base of each node heap array representing a heap state array to mark state of each node during calculation
Definition at line 973 of file graph_vnoi.c.
References CONNECT, correct(), shortest_path::dist, EAT_LAST, shortest_path::edge, FARAWAY, GRAPH::head, Is_term, GRAPH::knots, GRAPH::mark, nearest(), nnodes, nterms, NULL, GRAPH::oeat, GRAPH::outbeg, GRAPH::prize, SCIP_Real, SCIPisGE(), SCIPisGT(), SCIPisLT(), GRAPH::source, GRAPH::term, GRAPH::terms, and UNKNOWN.
Referenced by reduce_boundMw().
◆ graph_voronoiMw()
void graph_voronoiMw | ( | SCIP * | scip, |
const GRAPH * | g, | ||
const SCIP_Real * | costrev, | ||
PATH * | path, | ||
int * | vbase, | ||
int * | heap, | ||
int * | state | ||
) |
build a Voronoi region, w.r.t. shortest paths, for all positive vertices
- Parameters
-
scip SCIP data structure g graph data structure costrev reversed edge costs path path data structure (leading to respective Voronoi base) vbase Voronoi base to each vertex heap array representing a heap state array to mark the state of each node during calculation
Definition at line 517 of file graph_vnoi.c.
References CONNECT, correct(), shortest_path::dist, EAT_LAST, shortest_path::edge, FARAWAY, GRAPH::head, Is_term, GRAPH::knots, GRAPH::mark, nearest(), nnodes, NULL, GRAPH::oeat, GRAPH::outbeg, GRAPH::prize, SCIPisGT(), GRAPH::term, and UNKNOWN.
Referenced by boundPruneHeurMw(), and reduce_boundMw().
◆ graph_add1stTermPaths()
void graph_add1stTermPaths | ( | const GRAPH * | g, |
const SCIP_Real * | cost, | ||
PATH * | path, | ||
int * | vbase, | ||
int * | state | ||
) |
builds a Voronoi region w.r.t. shortest paths, for all terminals NOTE: serves as a wrapper
- Parameters
-
g graph data structure cost edge costs path path data structure (leading to respective Voronoi base) vbase Voronoi base to each vertex state array to mark the state of each node during calculation
Definition at line 1464 of file graph_tpath.c.
References graph_get_nNodes(), graph_tpathsAdd1st(), nodes_to_terminal_paths::nnodes, NULL, nodes_to_terminal_paths::state, and nodes_to_terminal_paths::termpaths.
Referenced by computeTransVoronoi(), redcosts_initializeDistances(), reduce_boundHopR(), reduce_boundHopRc(), and reduce_daPcMw().
◆ voronoiSteinerTreeExt()
◆ graph_voronoiExtend()
SCIP_RETCODE graph_voronoiExtend | ( | SCIP * | scip, |
const GRAPH * | g, | ||
const SCIP_Real * | cost, | ||
PATH * | path, | ||
SCIP_Real ** | distarr, | ||
int ** | basearr, | ||
int ** | edgearr, | ||
STP_Bool * | termsmark, | ||
int * | reachednodes, | ||
int * | nreachednodes, | ||
int * | nodenterms, | ||
int | nneighbterms, | ||
int | base, | ||
int | countex | ||
) |
extend a Voronoi region until all neighbouring terminals are spanned
- Parameters
-
scip SCIP data structure g graph data structure cost edgecosts path shortest paths data structure distarr array to store distance from each node to its base basearr array to store the bases edgearr array to store the ancestor edge termsmark array to mark terminal reachednodes array to mark reached nodes nreachednodes pointer to number of reached nodes nodenterms array to store number of terimals to each node nneighbterms number of neighbouring terminals base voronoi base countex count of heap elements
Definition at line 253 of file graph_vnoi.c.
References CONNECT, correct(), shortest_path::dist, EAT_LAST, shortest_path::edge, FALSE, GT, GRAPH::head, Is_term, GRAPH::knots, GRAPH::mark, nearest(), NULL, GRAPH::oeat, GRAPH::outbeg, GRAPH::path_heap, GRAPH::path_state, SCIP_OKAY, GRAPH::term, and TRUE.
Referenced by computeSteinerTreeVnoi().
◆ graph_voronoiWithDist()
SCIP_RETCODE graph_voronoiWithDist | ( | SCIP * | , |
const GRAPH * | , | ||
const SCIP_Bool * | , | ||
const SCIP_Real * | , | ||
double * | , | ||
int * | , | ||
int * | , | ||
int * | , | ||
int * | , | ||
PATH * | |||
) |
Referenced by reduce_nv(), and reduce_nvAdv().
◆ graph_voronoiWithRadius()
SCIP_RETCODE graph_voronoiWithRadius | ( | SCIP * | scip, |
const GRAPH * | graph, | ||
GRAPH * | adjgraph, | ||
PATH * | path, | ||
SCIP_Real * | rad, | ||
SCIP_Real * | cost, | ||
SCIP_Real * | costrev, | ||
int * | vbase, | ||
int * | heap, | ||
int * | state | ||
) |
build voronoi regions, w.r.t. shortest paths, for all terminals and compute the radii
- Parameters
-
scip SCIP data structure graph graph data structure adjgraph graph data structure path array containing Voronoi paths data rad array storing shortest way from a terminal out of its Voronoi region cost edge costs costrev reversed edge costs vbase array containing Voronoi base of each node heap array representing a heap state array to mark state of each node during calculation
Definition at line 774 of file graph_vnoi.c.
References CONNECT, correct(), GRAPH::cost, shortest_path::dist, EAT_LAST, shortest_path::edge, Edge_anti, GRAPH::extended, FARAWAY, graph_edge_add(), graph_knot_add(), graph_pc_knotIsFixedTerm(), GRAPH::head, Is_term, GRAPH::knots, GRAPH::mark, nearest(), nnodes, nterms, NULL, GRAPH::oeat, GRAPH::outbeg, GRAPH::prize, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPfreeBufferArray, SCIPisGE(), SCIPisGT(), GRAPH::source, STP_DHCSTP, STP_MWCSP, STP_PCSPG, STP_RPCSPG, GRAPH::stp_type, GRAPH::tail, GRAPH::term, GRAPH::terms, TRUE, and UNKNOWN.
Referenced by boundPruneHeur(), reduce_bound(), and reduce_boundHop().
◆ graph_mincut_exit()
frees min cut arrays
- Parameters
-
scip SCIP data structure p graph data structure
Definition at line 1175 of file graph_mcut.c.
References graph_mincut_isInitialized(), GRAPH::mincut_dist, GRAPH::mincut_e, GRAPH::mincut_head, GRAPH::mincut_head_inact, GRAPH::mincut_nedges, GRAPH::mincut_next, GRAPH::mincut_nnodes, GRAPH::mincut_numb, GRAPH::mincut_prev, GRAPH::mincut_r, GRAPH::mincut_temp, and SCIPfreeMemoryArray.
Referenced by graph_free(), graph_mincut_exec(), graph_mincut_reInit(), initReceivedSubproblem(), and SCIP_DECL_PROBDELORIG().
◆ graph_mincut_exec()
void graph_mincut_exec | ( | const GRAPH * | , |
const int | , | ||
const int | , | ||
const int | , | ||
const int | , | ||
const int | , | ||
const int * | , | ||
const int * | , | ||
int * | RESTRICT, | ||
const int * | , | ||
const int * | , | ||
const int * | , | ||
const SCIP_Bool | |||
) |
Referenced by mincut_separateLp(), and mincutExec().
◆ graph_mincut_init()
SCIP_RETCODE graph_mincut_init | ( | SCIP * | scip, |
GRAPH * | p | ||
) |
initialize min cut arrays
- Parameters
-
scip SCIP data structure p graph data structure
Definition at line 1105 of file graph_mcut.c.
References GRAPH::edges, graph_mincut_isInitialized(), GRAPH::knots, mincutInit(), NULL, SCIP_CALL, and SCIP_OKAY.
Referenced by createModel(), graph_mincut_exec(), initReceivedSubproblem(), and SCIP_DECL_PROBCOPY().
◆ graph_mincut_reInit()
SCIP_RETCODE graph_mincut_reInit | ( | SCIP * | scip, |
int | nnodes, | ||
int | nedges, | ||
GRAPH * | p | ||
) |
reinitializes minimum cut arrays
- Parameters
-
scip SCIP data structure nnodes number of nodes nedges number of edges p graph data structure
Definition at line 1120 of file graph_mcut.c.
References graph_mincut_exit(), graph_mincut_isInitialized(), mincutInit(), SCIP_CALL, and SCIP_OKAY.
Referenced by mincutInitForTermSepa().
◆ graph_mincut_isInitialized()
is the minimum data initialized?
- Parameters
-
p graph data structure
Definition at line 1139 of file graph_mcut.c.
References FALSE, GRAPH::mincut_dist, GRAPH::mincut_e, GRAPH::mincut_head, GRAPH::mincut_next, GRAPH::mincut_nnodes, GRAPH::mincut_numb, GRAPH::mincut_prev, GRAPH::mincut_r, GRAPH::mincut_temp, GRAPH::mincut_x, NULL, and TRUE.
Referenced by graph_free(), graph_mincut_exit(), graph_mincut_init(), and graph_mincut_reInit().
◆ graph_mincut_setDefaultVals()
void graph_mincut_setDefaultVals | ( | GRAPH * | g | ) |
sets default values
- Parameters
-
g graph data structure
Definition at line 1081 of file graph_mcut.c.
References GRAPH::knots, GRAPH::mincut_e, GRAPH::mincut_head, GRAPH::mincut_head_inact, GRAPH::mincut_nnodes, nnodes, and Q_NULL.
Referenced by mincut_findTerminalSeparators(), and mincut_separateLp().
◆ graph_load()
SCIP_RETCODE graph_load | ( | SCIP * | , |
GRAPH ** | , | ||
const char * | , | ||
PRESOL * | |||
) |
Definition at line 885 of file graph_load.c.
References BLOCKED, GRAPH::budget, check_inputgraph(), GRAPH::cost, GRAPH::costbudget, DIRSEP, EAT_LAST, GRAPH::edges, EXTSEP, FAILURE, FALSE, FARAWAY, current_file::filename, presolve_info::fixed, section::flag, FLAG_REQUIRED, key::format, current_file::fp, get_arguments(), GRAPH::grad, graph_edge_add(), graph_get_nNodes(), graph_grid_create(), graph_hasMultiEdges(), graph_init(), graph_knot_add(), graph_knot_chg(), graph_obstgrid_create(), graph_pc_initPrizes(), graph_transGstpClean(), graph_transMw(), graph_transNw(), graph_transPc(), graph_transPc2Spg(), graph_transRmw(), graph_transRpc(), graph_transRpc2FixedProper(), graph_valid(), GRAPH::hoplimit, GRAPH::ieat, init_coordinates(), GRAPH::inpbeg, Is_term, KEY_BUDGET_B, KEY_COMMENT_CREATOR, KEY_COMMENT_DATE, KEY_COMMENT_NAME, KEY_COMMENT_PROBLEM, KEY_COMMENT_REMARK, KEY_COORDINATES_DD, KEY_COORDINATES_DDD, KEY_COORDINATES_DDDD, KEY_COORDINATES_DDDDD, KEY_COORDINATES_DDDDDD, KEY_COORDINATES_DDDDDDD, KEY_COORDINATES_DDDDDDDD, KEY_COORDINATES_END, KEY_COORDINATES_GRID, KEY_END, KEY_EOF, KEY_GRAPH_A, KEY_GRAPH_AA, KEY_GRAPH_E, KEY_GRAPH_EDGES, KEY_GRAPH_HOPLIMIT, KEY_GRAPH_NODES, KEY_GRAPH_OBSTACLES, KEY_MAXDEGS_MD, KEY_NODEWEIGHTS_END, KEY_NODEWEIGHTS_NW, KEY_OBSTACLES_END, KEY_OBSTACLES_RR, KEY_PRESOLVE_DATE, KEY_PRESOLVE_EA, KEY_PRESOLVE_EC, KEY_PRESOLVE_ED, KEY_PRESOLVE_ES, KEY_PRESOLVE_FIXED, KEY_PRESOLVE_LOWER, KEY_PRESOLVE_TIME, KEY_PRESOLVE_UPPER, KEY_SECTION, KEY_TERMINALS_END, KEY_TERMINALS_GROUPS, KEY_TERMINALS_RB, KEY_TERMINALS_ROOT, KEY_TERMINALS_ROOTP, KEY_TERMINALS_T, KEY_TERMINALS_TB, KEY_TERMINALS_TERMINALS, KEY_TERMINALS_TF, KEY_TERMINALS_TG, KEY_TERMINALS_TL, KEY_TERMINALS_TP, KEY_TERMINALS_TR, KEY_TREE_S, key::keyword, GRAPH::knots, current_file::line, presolve_info::lower, section::mark, MAX_ARGUMENTS, MAX_KEYWORD_LEN, MAX_LINE_LEN, MAX_PATH_LEN, GRAPH::maxdeg, message(), MSG_DEBUG, MSG_ERROR, MSG_FATAL, MSG_INFO, parameter::n, section::name, nnodes, NULL, GRAPH::oeat, open_file(), GRAPH::outbeg, GRAPH::prize, scale_coords(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_READERROR, SCIPallocBufferArray, SCIPallocMemoryArray, SCIPerrorMessage, SCIPfreeBufferArrayNull, SCIPfreeMemoryArrayNull, SCIPgetBoolParam(), SCIPisGT(), SCIPsnprintf(), current_file::section, SECTION_EXISTEND, SECTION_MISSING, GRAPH::source, start_section(), STP_BRMWCSP, STP_DCSTP, STP_DHCSTP, STP_GSTP, STP_MWCSP, STP_NWPTSPG, STP_NWSPG, STP_OARSMT, STP_PCSPG, STP_RMWCSP, STP_RPCSPG, STP_RSMT, STP_SAP, STP_SPG, STP_TERM, GRAPH::stp_type, SUCCESS, key::sw_code, GRAPH::tail, GRAPH::term, GRAPH::terms, presolve_info::time, TRUE, UNKNOWN, and presolve_info::upper.
Referenced by SCIPprobdataCreate().
◆ graph_save()
Definition at line 370 of file graph_save.c.
References bea_save(), FALSE, FF_BEA, FF_GRD, FF_PRB, FF_STP, graph_valid(), NULL, and stp_save().
◆ graph_writeReductionStats()
void graph_writeReductionStats | ( | const GRAPH * | graph, |
const char * | probname, | ||
const char * | filename | ||
) |
Write (append) reduction statistics of current graph to file. Call before graph packing!
- Parameters
-
graph Graph to be printed probname Name of the problem filename Name of the output file
Definition at line 412 of file graph_save.c.
References graph_get_nEdges(), graph_get_nNodes(), graph_get_nVET(), nnodes, and NULL.
◆ graph_writeReductionRatioStats()
void graph_writeReductionRatioStats | ( | const GRAPH * | graph, |
const char * | probname, | ||
const char * | filename | ||
) |
Write (append) reduction ratio statistics of current graph to file. Call before graph packing!
- Parameters
-
graph Graph to be printed probname Name of the problem filename Name of the output file
Definition at line 285 of file graph_save.c.
References getReductionRatios(), getReductionRatiosPcMw(), graph_pc_isPcMw(), and SCIP_Real.
◆ graph_writeReductionRatioStatsLive()
SCIP_RETCODE graph_writeReductionRatioStatsLive | ( | SCIP * | scip, |
GRAPH * | graph, | ||
const char * | probname | ||
) |
Write (append) reduction ratio statistics of current graph to file. NOTE: Only for testing! Graph will be killed
- Parameters
-
scip SCIP data graph Graph to be printed probname Name of the problem
Definition at line 316 of file graph_save.c.
References getReductionRatios(), getReductionRatiosPcMw(), graph_pc_isPcMw(), graph_typeIsSpgLike(), reduce_exec(), reduce_solFree(), reduce_solInit(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPgetIntParam(), SCIPgetStringParam(), STP_REDUCTION_ADVANCED, and TRUE.
Referenced by presolveStp().
◆ graph_writeGml()
SCIP_RETCODE graph_writeGml | ( | const GRAPH * | graph, |
const char * | filename, | ||
const SCIP_Bool * | edgemark | ||
) |
print graph (in undirected form) in GML format
- Parameters
-
graph Graph to be printed filename Name of the output file edgemark Array of (undirected) edges to highlight
Definition at line 441 of file graph_save.c.
References EAT_FREE, GRAPH::edges, FALSE, gmlWriteEdge(), gmlWriteNode(), GRAPH::grad, GRAPH::head, GRAPH::knots, NULL, GRAPH::oeat, SCIP_OKAY, SCIPgmlWriteClosing(), SCIPgmlWriteOpening(), GRAPH::source, and GRAPH::tail.
Referenced by SCIPprobdataCreateFromGraph(), and SCIPprobdataPrintGraph().
◆ graph_writeGmlSub()
SCIP_RETCODE graph_writeGmlSub | ( | const GRAPH * | graph, |
const char * | filename, | ||
const SCIP_Bool * | subnodesmark | ||
) |
prints subgraph of given graph (in undirected form) in GML format
- Parameters
-
graph Graph to be printed filename Name of the output file subnodesmark Array to mark the nodes of the subgraph
Definition at line 490 of file graph_save.c.
References GRAPH::cost, EAT_FREE, GRAPH::edges, FALSE, gmlWriteNode(), GRAPH::grad, GRAPH::head, GRAPH::knots, NULL, GRAPH::oeat, SCIP_MAXSTRLEN, SCIP_OKAY, SCIPgmlWriteClosing(), SCIPgmlWriteEdge(), SCIPgmlWriteOpening(), SCIPsnprintf(), GRAPH::source, and GRAPH::tail.
◆ graph_writeStp()
writes graph in .stp format to file
Definition at line 568 of file graph_save.c.
References GRAPH::cost, EAT_FREE, Edge_anti, GRAPH::edges, EQ, GRAPH::extended, getOrgNodeToNodeMap(), GRAPH::grad, graph_get_nNodes(), graph_get_nVET(), graph_pc_isPcMw(), graph_pc_knotIsDummyTerm(), graph_pc_knotIsFixedTerm(), graph_pc_knotIsNonLeafTerm(), graph_typeIsSpgLike(), GT, GRAPH::head, GRAPH::hoplimit, GRAPH::ieat, Is_anyTerm, Is_term, GRAPH::knots, nnodes, NULL, GRAPH::oeat, GRAPH::prize, SCIP_CALL_ABORT, SCIPallocBufferArray, SCIPfreeBufferArray, SCIPisEQ(), GRAPH::source, STP_DCSTP, STP_DHCSTP, STP_FILE_MAGIC, STP_FILE_VERSION_MAJOR, STP_FILE_VERSION_MINOR, STP_MWCSP, STP_NWPTSPG, STP_NWSPG, STP_OARSMT, STP_PCSPG, STP_RPCSPG, STP_RSMT, STP_SPG, GRAPH::stp_type, GRAPH::tail, GRAPH::term, and GRAPH::terms.
Referenced by graph_writeStpByName(), and SCIP_DECL_READERWRITE().
◆ graph_writeStpByName()
writes graph in .stp format to file
Definition at line 550 of file graph_save.c.
References graph_writeStp().
◆ graph_writeStpOrg()
writes SPG (no variant!) to a file; deprecated
- Parameters
-
scip SCIP data structure graph graph data structure filename file name
Definition at line 799 of file graph_save.c.
References GRAPH::cost, GRAPH::edges, GRAPH::head, Is_term, GRAPH::knots, NULL, GRAPH::tail, GRAPH::term, and GRAPH::terms.
◆ SCIPStpValidateSol()
SCIP_RETCODE SCIPStpValidateSol | ( | SCIP * | scip, |
const GRAPH * | g, | ||
const double * | xval, | ||
SCIP_Bool | allow_cyles, | ||
SCIP_Bool * | feasible | ||
) |
validates whether a (LP) solution is feasible
- Parameters
-
scip SCIP g the new graph xval (LP) solution allow_cyles allow cycles? feasible is feasible?
Definition at line 202 of file validate.c.
References EAT_LAST, GRAPH::edges, EPSILON, FALSE, flipedge, GE, GRAPH::grad, graph_get_nNodes(), graph_valid(), GRAPH::maxdeg, nail(), nnodes, GRAPH::oeat, GRAPH::outbeg, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPallocBufferArray, SCIPdebugMessage, SCIPfreeBufferArray, GRAPH::source, STP_DCSTP, GRAPH::stp_type, GRAPH::term, trail(), and TRUE.
Referenced by SCIP_DECL_CONSCHECK(), SCIP_DECL_CONSENFOLP(), SCIP_DECL_CONSENFOPS(), and solAddTry().