Shared-Memory Exact Minimum Cuts M. Henzinger, A. Noe, C. Schulz, D. - - PowerPoint PPT Presentation

shared memory exact minimum cuts
SMART_READER_LITE
LIVE PREVIEW

Shared-Memory Exact Minimum Cuts M. Henzinger, A. Noe, C. Schulz, D. - - PowerPoint PPT Presentation

Shared-Memory Exact Minimum Cuts M. Henzinger, A. Noe, C. Schulz, D. Strash 1 Christian Schulz : Shared-Memory Exact Minimum Cuts Kernelization General Idea Reductions: rules to decrease graph size, while maintaining optimality solve


slide-1
SLIDE 1

1

Christian Schulz: Shared-Memory Exact Minimum Cuts

Shared-Memory Exact Minimum Cuts

  • M. Henzinger, A. Noe, C. Schulz, D. Strash
slide-2
SLIDE 2

Kernelization

General Idea

2

Christian Schulz: Shared-Memory Exact Minimum Cuts

Reductions: rules to decrease graph size, while maintaining optimality

solve problem on problem kernel → obtain solution on input graph

slide-3
SLIDE 3

Kernelization

General Idea

2

Christian Schulz: Shared-Memory Exact Minimum Cuts

Reductions: rules to decrease graph size, while maintaining optimality

solve problem on problem kernel (using a heuristic) → obtain solution on input graph quickly

slide-4
SLIDE 4

Kernelization

General Idea

2

Christian Schulz: Shared-Memory Exact Minimum Cuts

Reductions: rules to decrease graph size, while maintaining optimality

solve problem on problem kernel → obtain solution on input graph

Independent Sets evolutionary [SEA’15] reduction + evolutionary [ALX’16]

  • nline reductions + LS [SEA’16]

shared-mem parallel [ALX’18] weighted exact [ALX’19]

slide-5
SLIDE 5

Kernelization

General Idea

2

Christian Schulz: Shared-Memory Exact Minimum Cuts

Reductions: rules to decrease graph size, while maintaining optimality

solve problem on problem kernel → obtain solution on input graph

Independent Sets ... shared-mem parallel [ALX’18] weighted exact [ALX’19] “Graph Partitioning” [...] Minimum Cuts shared-mem parallel [ALX’18] exact minimum cut [ALX’19]

slide-6
SLIDE 6

2

Christian Schulz: Shared-Memory Exact Minimum Cuts

Concrete Example

“(In)exact Reductions” in Minimum Cuts

joint work with

  • M. Henzinger,
  • A. Noe,
  • D. Strash
slide-7
SLIDE 7

Minimum Cuts

3

Christian Schulz: Shared-Memory Exact Minimum Cuts

Cut: A cut in a multigraph is a partition of V = C ∪ C → size of the cut is weight of edges between C and C Minimum Cut Problem: what is the size of the minimum cut in G?

slide-8
SLIDE 8

Basics

4

Christian Schulz: Shared-Memory Exact Minimum Cuts

If the size of the minimum cut is λ, then it follows ∀v ∈ V : deg(v) ≥ λ number of edges m ≥ nλ/2 Proof: Assume ∃v ∈ V : deg(v) < λ, then C = {v} is a cut whose size is < λ. Contradiction. The second claim follows from the first one.

slide-9
SLIDE 9

Contraction

5

Christian Schulz: Shared-Memory Exact Minimum Cuts

In a multigraph G, let u and v be connected by an edge e = {x, y} Create G/e = (V′, E′) by contracting e: set V′ to V\{x, y} ∪ {z} (z is new) build E′ from E by

remove all edges between u and v replace every edge between v ∈ V\{x, y} and x or y by an edge between v and z keep all other edges from E

→ multi-edges can be created ( practice use weights)!

slide-10
SLIDE 10

Minimum Cut ↔ Contraction

6

Christian Schulz: Shared-Memory Exact Minimum Cuts

A minimum cut in G/e is at least as a minimum cut in G. Proof: Let (K, K) be a minimum cut in G/e. Let the size of the cut be λ. Wlog let x and y be the vertices of e, and z ∈ K Unpack z and leave x and y in K → cut in G of size λ

A

slide-11
SLIDE 11

Algorithm

Exibit A

7

Christian Schulz: Shared-Memory Exact Minimum Cuts

H ← G while H has more than 2 nodes do e ← edge of H picked uniformly at random H ← contract(H, e) done (C, C) ← vertex set in G that correspond to the vertices in H ————————————————-

slide-12
SLIDE 12

Algorithm

Exibit A

7

Christian Schulz: Shared-Memory Exact Minimum Cuts

H ← G while H has more than 2 nodes do e ← edge of H picked uniformly at random H ← contract(H, e) done (C, C) ← vertex set in G that correspond to the vertices in H ————————————————-

slide-13
SLIDE 13

Algorithm

Exibit A

7

Christian Schulz: Shared-Memory Exact Minimum Cuts

H ← G while H has more than 2 nodes do e ← edge of H picked uniformly at random H ← contract(H, e) done (C, C) ← vertex set in G that correspond to the vertices in H ————————————————-

slide-14
SLIDE 14

Algorithm

Exibit A

7

Christian Schulz: Shared-Memory Exact Minimum Cuts

H ← G while H has more than 2 nodes do e ← edge of H picked uniformly at random H ← contract(H, e) done (C, C) ← vertex set in G that correspond to the vertices in H ————————————————-

slide-15
SLIDE 15

Algorithm

Exibit A

7

Christian Schulz: Shared-Memory Exact Minimum Cuts

H ← G while H has more than 2 nodes do e ← edge of H picked uniformly at random H ← contract(H, e) done (C, C) ← vertex set in G that correspond to the vertices in H ————————————————-

slide-16
SLIDE 16

Algorithm

Exibit A

7

Christian Schulz: Shared-Memory Exact Minimum Cuts

H ← G while H has more than 2 nodes do e ← edge of H picked uniformly at random H ← contract(H, e) done (C, C) ← vertex set in G that correspond to the vertices in H ————————————————-

slide-17
SLIDE 17

Algorithm

Exibit A

7

Christian Schulz: Shared-Memory Exact Minimum Cuts

H ← G while H has more than 2 nodes do e ← edge of H picked uniformly at random H ← contract(H, e) done (C, C) ← vertex set in G that correspond to the vertices in H ————————————————-

slide-18
SLIDE 18

Algorithm

Exibit A

7

Christian Schulz: Shared-Memory Exact Minimum Cuts

H ← G while H has more than 2 nodes do e ← edge of H picked uniformly at random H ← contract(H, e) done (C, C) ← vertex set in G that correspond to the vertices in H ————————————————-

slide-19
SLIDE 19

Algorithm

Exibit A

7

Christian Schulz: Shared-Memory Exact Minimum Cuts

H ← G while H has more than 2 nodes do e ← edge of H picked uniformly at random H ← contract(H, e) done (C, C) ← vertex set in G that correspond to the vertices in H ————————————————- The runtime of the simple minimum cut algorithm is O(n2) Proof: every call contract(H, e) is done in O(n) every loop iteration reduces n by 1 → n − 2 iterations

slide-20
SLIDE 20

Algorithm

Exibit A

7

Christian Schulz: Shared-Memory Exact Minimum Cuts

H ← G while H has more than 2 nodes do e ← edge of H picked uniformly at random H ← contract(H, e) done (C, C) ← vertex set in G that correspond to the vertices in H ————————————————- The algorithm finds a minimum cut with probability Ω(n−2) Proof (sketch): let minimum cut size be λ probability to select a cut edge

λ |E| ≤ λ nλ/2 = 2/n

pn probability that n-vertex graph avoids cut edges pn ≥ (1 − 2/n)pn−1 ≥ . . . = (n

2)−1

slide-21
SLIDE 21

Algorithm

Exibit A

7

Christian Schulz: Shared-Memory Exact Minimum Cuts

H ← G while H has more than 2 nodes do e ← edge of H picked uniformly at random H ← contract(H, e) done (C, C) ← vertex set in G that correspond to the vertices in H ————————————————- Standard Trick: Multiple Repetitions non-error probability 1/n2 very low smallest out of n2/2 is minimum with probability 1 − 1/e: (1 − 2/n2)2/n2 < 1/e runtime O(n4)

slide-22
SLIDE 22

Better Algorithm

IterContract

8

Christian Schulz: Shared-Memory Exact Minimum Cuts

H ← G while H has more than t nodes do e ← edge of H picked uniformly at random H ← contract(H, e) done return H H still contains minimum cut with probability at least

(t

2)/(n 2)

slide-23
SLIDE 23

Karger-Stein

9

Christian Schulz: Shared-Memory Exact Minimum Cuts

if |V| ≤ 6 then C ← optimial cut by deterministic algorithm else t ← ⌈1 + n/ √ 2⌉ H1 ← IterContract(G, t) H2 ← IterContract(G, t) C1 ← CallRecursive(H1) C2 ← CallRecursive(H2) C ← min(C1, C2) done return C running time O(n2 log n) minimum cut with probability Ω(1/ log n) repeat log2 n to achieve probability Ω(1/n)

slide-24
SLIDE 24

Main Questions

10

Christian Schulz: Shared-Memory Exact Minimum Cuts

how can kernelization help?

slide-25
SLIDE 25

Main Questions

10

Christian Schulz: Shared-Memory Exact Minimum Cuts

something better than contracting random edges?

slide-26
SLIDE 26

Main Questions

10

Christian Schulz: Shared-Memory Exact Minimum Cuts

can we still obtain good cuts in practice?

slide-27
SLIDE 27

Main Questions

10

Christian Schulz: Shared-Memory Exact Minimum Cuts

can we then use this to obtain better kernels?

slide-28
SLIDE 28

Kernelization

Padperg-Rinaldi Tests

11

Christian Schulz: Shared-Memory Exact Minimum Cuts

deg(x) ≤ 2ω(x, y)

slide-29
SLIDE 29

Kernelization

Padperg-Rinaldi Tests

12

Christian Schulz: Shared-Memory Exact Minimum Cuts

ω(x, y) ≥ ˆ λ

slide-30
SLIDE 30

Kernelization

Padperg-Rinaldi Tests

13

Christian Schulz: Shared-Memory Exact Minimum Cuts

∃z : deg(x) ≤ 2{ω(x, y) + ω(x, z)} and deg(y) ≤ 2{ω(x, y) + ω(y, z)}

slide-31
SLIDE 31

Kernelization

Padperg-Rinaldi Tests

14

Christian Schulz: Shared-Memory Exact Minimum Cuts

ω(x, y) + ∑z min{ω(x, z), ω(y, z)} ≥ ˆ λ

slide-32
SLIDE 32

Kernelization

Nagamochi, Ono, and Ibaraki

15

Christian Schulz: Shared-Memory Exact Minimum Cuts

Key Idea: a spanning tree contains at least one edge from any cut Let ˆ λ be your current bound for minimum cut Want: smaller minimum cut Compute ˆ λ − 1 maximal spanning forests (iteratively) edges not in forests connect vertices with connectivity ≥ ˆ λ contract all of them Example: ˆ

λ = 4 compute 3 edge-disjoint spanning forests

slide-33
SLIDE 33

Kernelization

Nagamochi, Ono, and Ibaraki

15

Christian Schulz: Shared-Memory Exact Minimum Cuts

Key Idea: a spanning tree contains at least one edge from any cut Let ˆ λ be your current bound for minimum cut Want: smaller minimum cut Compute ˆ λ − 1 maximal spanning forests (iteratively) edges not in forests connect vertices with connectivity ≥ ˆ λ contract all of them Example: ˆ

λ = 4 compute 3 edge-disjoint spanning forests

slide-34
SLIDE 34

Kernelization

Nagamochi, Ono, and Ibaraki

15

Christian Schulz: Shared-Memory Exact Minimum Cuts

Key Idea: a spanning tree contains at least one edge from any cut Let ˆ λ be your current bound for minimum cut Want: smaller minimum cut Compute ˆ λ − 1 maximal spanning forests (iteratively) edges not in forests connect vertices with connectivity ≥ ˆ λ contract all of them Example: ˆ

λ = 4 compute 3 edge-disjoint spanning forests

slide-35
SLIDE 35

Kernelization

Nagamochi, Ono, and Ibaraki

15

Christian Schulz: Shared-Memory Exact Minimum Cuts

Key Idea: a spanning tree contains at least one edge from any cut Let ˆ λ be your current bound for minimum cut Want: smaller minimum cut Compute ˆ λ − 1 maximal spanning forests (iteratively) edges not in forests connect vertices with connectivity ≥ ˆ λ contract all of them NOI define modified BFS to detect contractable edges (more later)

slide-36
SLIDE 36

Kernelization

Nagamochi, Ono, and Ibaraki

15

Christian Schulz: Shared-Memory Exact Minimum Cuts

Key Idea: a spanning tree contains at least one edge from any cut Let ˆ λ be your current bound for minimum cut Want: smaller minimum cut Compute ˆ λ − 1 maximal spanning forests (iteratively) edges not in forests connect vertices with connectivity ≥ ˆ λ contract all of them Note: initial ˆ λ comes from minimum degree Some of the reductions depend heavily on ˆ λ

slide-37
SLIDE 37

Label Propagation

Cut-based, Linear Time Clustering Algorithm [Raghavan et. al]

16

Christian Schulz: Shared-Memory Exact Minimum Cuts

cut-based clustering using label propagation

start with singletons traverse nodes in random order or smallest degree first move node to cluster having strongest connection Scan

... ...

slide-38
SLIDE 38

Label Propagation

17

Christian Schulz: Shared-Memory Exact Minimum Cuts

Iteration Cut [%] 100 1 8.96 2 6.15 3 5.66 4 5.44 5 5.28 6 5.25 7 5.21 8 5.18 ... 5.09

slide-39
SLIDE 39

Label Propagation

17

Christian Schulz: Shared-Memory Exact Minimum Cuts

Iteration Cut [%] 100 1 8.96 2 6.15 3 5.66 4 5.44 5 5.28 6 5.25 7 5.21 8 5.18 ... 5.09

slide-40
SLIDE 40

Label Propagation

17

Christian Schulz: Shared-Memory Exact Minimum Cuts

Iteration Cut [%] 100 1 8.96 2 6.15 3 5.66 4 5.44 5 5.28 6 5.25 7 5.21 8 5.18 ... 5.09

slide-41
SLIDE 41

Label Propagation

17

Christian Schulz: Shared-Memory Exact Minimum Cuts

Iteration Cut [%] 100 1 8.96 2 6.15 3 5.66 4 5.44 5 5.28 6 5.25 7 5.21 8 5.18 ... 5.09

slide-42
SLIDE 42

Label Propagation

17

Christian Schulz: Shared-Memory Exact Minimum Cuts

Iteration Cut [%] 100 1 8.96 2 6.15 3 5.66 4 5.44 5 5.28 6 5.25 7 5.21 8 5.18 ... 5.09

slide-43
SLIDE 43

Label Propagation

17

Christian Schulz: Shared-Memory Exact Minimum Cuts

Iteration Cut [%] 100 1 8.96 2 6.15 3 5.66 4 5.44 5 5.28 6 5.25 7 5.21 8 5.18 ... 5.09

slide-44
SLIDE 44

Label Propagation

17

Christian Schulz: Shared-Memory Exact Minimum Cuts

Iteration Cut [%] 100 1 8.96 2 6.15 3 5.66 4 5.44 5 5.28 6 5.25 7 5.21 8 5.18 ... 5.09

slide-45
SLIDE 45

Label Propagation

17

Christian Schulz: Shared-Memory Exact Minimum Cuts

Iteration Cut [%] 100 1 8.96 2 6.15 3 5.66 4 5.44 5 5.28 6 5.25 7 5.21 8 5.18 ... 5.09

slide-46
SLIDE 46

Label Propagation

17

Christian Schulz: Shared-Memory Exact Minimum Cuts

Iteration Cut [%] 100 1 8.96 2 6.15 3 5.66 4 5.44 5 5.28 6 5.25 7 5.21 8 5.18 ... 5.09

slide-47
SLIDE 47

Label Propagation

17

Christian Schulz: Shared-Memory Exact Minimum Cuts

Iteration Cut [%] 100 1 8.96 2 6.15 3 5.66 4 5.44 5 5.28 6 5.25 7 5.21 8 5.18 ... 5.09

slide-48
SLIDE 48

Basic Idea

Contraction of Clusterings

18

Christian Schulz: Shared-Memory Exact Minimum Cuts

a+b+c

a bc

cluster paradigm: internally dense, externally sparse “unlikely” to contract minimum cut edges clustering not main goal: only perform a couple of iterations

slide-49
SLIDE 49

Fast Inexact Minimum Cuts

19

Christian Schulz: Shared-Memory Exact Minimum Cuts

(Inexact) Cluster reduction + Exact reductions Solve kernel to optimality using Nagamochi, Ono and Ibaraki’s algorithm → overall linear running time, but potentially suboptimal cuts

slide-50
SLIDE 50

Parallelization

Shared-memory with OpenMP

20

Christian Schulz: Shared-Memory Exact Minimum Cuts

Parallel label propagation

as brutal as: pragma openmp for and ignore conflicts on labels

Parallel Padberg-Rinaldi:

check edges independently embarassingly parallel collect edges then contract → essentially linear time

Parallel contraction (not here) run Nagamochi, Ono and Ibarakis algorithm sequentially

slide-51
SLIDE 51

Random Hyperbolic Networks

21

Christian Schulz: Shared-Memory Exact Minimum Cuts

16 32 64 128 256 512 12500 25000 50000 100000 150000 200000

Running Time Per Edge [ns] Number of Vertices

n=12.5K - 200K d=10% k=2

KS HOA HOB HOC Matula NOI seqVieCut

seqVieCut optimal in 99% of runs, Matuala optimal in 69% of runs

slide-52
SLIDE 52

Real-world Networks

22

Christian Schulz: Shared-Memory Exact Minimum Cuts

20 21 22 23 24 107 108 109 1010 Slow Down Number of Edges

KS HOA HOB HOC NOI Matula

No incorrect results (expect Karger-Stein in 36% of the cases)

slide-53
SLIDE 53

Parallelization

23

Christian Schulz: Shared-Memory Exact Minimum Cuts

1 2 3 4 5 6 1 2 3 4 5 6 7 8 9 10 11 12 24

Speedup to seqVieCut Number of Threads

uk-2007-05 k=10

2 4 6 8 10 12 14 1 2 3 4 5 6 7 8 9 10 11 12 24

Speedup to seqVieCut Number of Threads

n=200K, d=10%, k=2

Average speedup using 12 cores: 6.3 (24: 7.9) Average speedup to next fastest (Matula): 13.2 (24: 15.8)

slide-54
SLIDE 54

Stating the Obvious

24

Christian Schulz: Shared-Memory Exact Minimum Cuts

now ≈ 16 times faster than Matuala NO guarantee for minimum cut, but experiments say very likely reductions depend on bound ˆ λ PLUG IN our result into exact NOI algorithm + parallelization currently fastest exact minimum cut algorithm

slide-55
SLIDE 55

Kernelization

Nagamochi, Ono, and Ibaraki

25

Christian Schulz: Shared-Memory Exact Minimum Cuts

Key Idea: a spanning tree contains at least one edge from any cut Let ˆ λ be your current bound for minimum cut Want: smaller minimum cut Compute ˆ λ − 1 maximal spanning forests (iteratively) edges not in forests connect vertices with connectivity ≥ ˆ λ contract all of them Example: ˆ

λ = 4 compute 3 edge-disjoint spanning forests

slide-56
SLIDE 56

Kernelization

Nagamochi, Ono, and Ibaraki

25

Christian Schulz: Shared-Memory Exact Minimum Cuts

Key Idea: a spanning tree contains at least one edge from any cut Let ˆ λ be your current bound for minimum cut Want: smaller minimum cut Compute ˆ λ − 1 maximal spanning forests (iteratively) edges not in forests connect vertices with connectivity ≥ ˆ λ contract all of them Example: ˆ

λ = 4 compute 3 edge-disjoint spanning forests

slide-57
SLIDE 57

Kernelization

Nagamochi, Ono, and Ibaraki

25

Christian Schulz: Shared-Memory Exact Minimum Cuts

Key Idea: a spanning tree contains at least one edge from any cut Let ˆ λ be your current bound for minimum cut Want: smaller minimum cut Compute ˆ λ − 1 maximal spanning forests (iteratively) edges not in forests connect vertices with connectivity ≥ ˆ λ contract all of them Example: ˆ

λ = 4 compute 3 edge-disjoint spanning forests

slide-58
SLIDE 58

Nagamochi, Ono, Ibaraki

Details

26

Christian Schulz: Shared-Memory Exact Minimum Cuts

λ(x, y) capacity of minimum cut separating x and y λ(x, y) ≥ ˆ λ ∃ no cut separating x and y with capacity ≤ ˆ λ we can contract (x, y) but computing λ(x, y) expensive (max-flow algorithm) NOI: compute lower bound q(e) on λ(x, y), i.e. λ(x, y) ≥ q(e) ≥ ˆ λ can contract edge e q(e) = # edge disjoint paths that connect x, y q(e) via k-edge-connected subgraph following algorithm

slide-59
SLIDE 59

k-edge-connected subgraph

27

Christian Schulz: Shared-Memory Exact Minimum Cuts

invariant r[v] = i smallest i s.t. Ei+1 ∪ {e} does not contain a cycle initialize r[v] = 0 all nodes and edges are non-scanned E1 = E2 = . . . = E|E| = ∅ while ∃ non-scanned node u := non-scanned node v with maximal r[v] foreach non-scanned edge e = (u, v) ∈ E do insert e into Er(v)+1 q(e) = r(v) + 1, r(v) = r(v) + 1 Hi = (V, Ei) is a maximal spanning forest in G \ E1 ∪ . . . ∪ Ei−1 Long story short: Everything in Eˆ

λ ∪ . . . ∪ E|E| can be contracted.

contract e if q(e) ≥ ˆ λ

slide-60
SLIDE 60

k-edge-connected subgraph

27

Christian Schulz: Shared-Memory Exact Minimum Cuts

invariant r[v] = i smallest i s.t. Ei+1 ∪ {e} does not contain a cycle invariant r[v] = i incidient to first i trees initialize r[v] = 0 all nodes and edges are non-scanned E1 = E2 = . . . = E|E| = ∅ while ∃ non-scanned node u := non-scanned node v with maximal r[v] foreach non-scanned edge e = (u, v) ∈ E do insert e into Er(v)+1 q(e) = r(v) + 1, r(v) = r(v) + 1, r(u) = r(u) + 1 Hi = (V, Ei) is a maximal spanning forest in G \ E1 ∪ . . . ∪ Ei−1 Long story short: Everything in Eˆ

λ ∪ . . . ∪ E|E| can be contracted.

contract e if q(e) ≥ ˆ λ

slide-61
SLIDE 61

k-edge-connected subgraph

27

Christian Schulz: Shared-Memory Exact Minimum Cuts

invariant r[v] = i smallest i s.t. Ei+1 ∪ {e} does not contain a cycle initialize r[v] = 0 all nodes and edges are non-scanned E1 = E2 = . . . = E|E| = ∅ while ∃ non-scanned node u := non-scanned node v with maximal r[v] foreach non-scanned edge e = (u, v) ∈ E do insert e into Er(v)+1, . . . , Er(v)+c(e) q(e) = r(v) + c(e), r(v) = r(v) + c(e) Hi = (V, Ei) is a maximal spanning forest in G \ E1 ∪ . . . ∪ Ei−1 Long story short: Everything in Eˆ

λ ∪ . . . ∪ E|E| can be contracted.

contract e if q(e) ≥ ˆ λ

c(e) replaces one edge by c(e) edges

slide-62
SLIDE 62

28

Christian Schulz: Shared-Memory Exact Minimum Cuts

Example

slide-63
SLIDE 63

Overall Parallel Algorithm

29

Christian Schulz: Shared-Memory Exact Minimum Cuts

each thread selects random start vertex make sure each vertex scanned by exactly one worker mark contractible edge in parallel union-find data structure

1: ˆ

λ ← VieCut(G), GC ← G

2: while GC has more than 2 vertices 3:

ˆ λ ← Parallel CAPFOREST(GC, ˆ λ)

4:

if no edges marked contractible

5:

ˆ λ ← CAPFOREST(GC, ˆ λ)

6:

GC, ˆ λ ← Parallel Graph Contract(GC)

7: return ˆ

λ

slide-64
SLIDE 64

More Optimizations

30

Christian Schulz: Shared-Memory Exact Minimum Cuts

Observation: values in PQ often higher than bound ˆ λ Algorithm still correct when limiting values to ˆ λ Use BucketPQ in weighted case also! O(1) for push, pop, and increaseKey Bucket implementations make a difference stack vs queue breadth vs depth

slide-65
SLIDE 65

All Graphs

31

Christian Schulz: Shared-Memory Exact Minimum Cuts

HO – original Hao, Orlin algorithm implementation NOI-CGKLS – original NOI implementation NOI-HNSS – our own NOI implementation NOI: BStack, BQueue, Heap ˆ λ – bounding PQ *-VieCut – initialize ˆ λ with VieCut

slide-66
SLIDE 66

Random Hyperbolic Graphs

32

Christian Schulz: Shared-Memory Exact Minimum Cuts

HO – original Hao, Orlin algorithm implementation NOI-CGKLS – original NOI implementation NOI-HNSS – our own NOI implementation NOI: BStack, BQueue, Heap ˆ λ – bounding PQ *-VieCut – initialize ˆ λ with VieCut

slide-67
SLIDE 67

Social and Web Graphs

33

Christian Schulz: Shared-Memory Exact Minimum Cuts

HO – original Hao, Orlin algorithm implementation NOI-CGKLS – original NOI implementation NOI-HNSS – our own NOI implementation NOI: BStack, BQueue, Heap ˆ λ – bounding PQ *-VieCut – initialize ˆ λ with VieCut

slide-68
SLIDE 68

Scalability

34

Christian Schulz: Shared-Memory Exact Minimum Cuts

slide-69
SLIDE 69

Open Things & Software

35

Christian Schulz: Shared-Memory Exact Minimum Cuts

apply heuristics on kernel use inexact results to get better bounds for reductions heuristic reduction to break up reduction space Open Questions: what about the order or reductions in practice? MORE problems? (minimum fill, ...) the other way around: exact reductions for multi-level schemes integrating reductions in currently used algorithms Software: https://viecut.taa.univie.ac.at