GomoryHuTree.cpp
Go to the documentation of this file.
31 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
143 /* counts occurences of node distances in set of alive nodes, i.e., nodes not contained in the set of nodes
170 /* breadth first search to get exact distance labels from sink with reordering of stack of active nodes */
242 /* identify nodes that are marked alive but have not been reached by BFS and mark them as dead */
257 * Determines maximum flow and minimum cut between nodes s (= *s_ptr) and t (= *t_ptr) in an undirected graph
260 * A. Goldberg/ E. Tarjan: "A New Approach to the Maximum Flow Problem", in Proc. 18th ACM Symp. on Theory of Computing, 1986.
477 /* put all nodes v with dist[v] >= dist[a] into the set of "dead" nodes since they are disconnected from
581 * If the non-zero-edges of a TSP relaxation induce a non-connected graph, an according cut is generated, using
621 * The tree structures is represented by parent pointers which are part of the node structure, the capacity of a tree
622 * edge is stored at the child node, the root of the cut tree is the first node in the list of graph nodes
static SCIP_Bool nodeOnRootPath(GRAPH *gr, int i, int j)
Definition: GomoryHuTree.cpp:562
generator for global cuts in undirected graphs
static void global_relabel(GRAPH *gr, GRAPHNODE *tptr)
Definition: GomoryHuTree.cpp:165
C++ wrapper classes for SCIP.
static double maxflow(GRAPH *gr, GRAPHNODE *s_ptr, GRAPHNODE *t_ptr)
Definition: GomoryHuTree.cpp:263
static void constructSingleCut(GRAPH *gr, SCIP_Bool **cuts)
Definition: GomoryHuTree.cpp:609
Definition: GomoryHuTree.h:40
SCIP_Bool ghc_tree(GRAPH *gr, SCIP_Bool **cuts, int *ncuts, double minviol)
Definition: GomoryHuTree.cpp:632
Definition: GomoryHuTree.h:63
Definition: GomoryHuTree.h:79
static void constructCutList(GRAPH *gr, SCIP_Bool **cuts, int *ncuts, double minviol)
Definition: GomoryHuTree.cpp:585