1 minimum spanning trees - kitalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfmst: overview...

91
Sanders: Algorithm Engineering 4. Juli 2007 1 1 Minimum Spanning Trees undirected Graph G =( V, E ). nodes V , n = | V |, e.g., V = { 1,..., n } edges e E , m = |E |, two-element subsets of V . edge weight c(e), c(e) R + . G is connected, i.e., path between any two nodes. 4 2 3 1 7 9 2 5 Find a tree ( V, T ) with minimum weight eT c(e) that connects all nodes.

Upload: others

Post on 17-Jul-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 1

1 Minimum Spanning Trees

undirected GraphG = (V,E).

nodesV , n = |V |, e.g.,V = 1, . . . ,nedgese ∈ E, m = |E|, two-element subsets ofV .

edge weightc(e), c(e) ∈ R+.

G is connected, i.e.,∃ path between any two nodes.4

2

3

1

792

5

Find a tree(V,T ) with minimumweight∑e∈T c(e) that connects

all nodes.

Page 2: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 2

MST: Overview

Basics: Edge property and cycle property

Jarník-Prim Algorithm

Kruskals Algorithm

Some tricks and comparison

Advanced algorithms using the cycle property

External MST

Applications: Clustering; subroutine in combinatorial

optimization, e.g., Held-Karp lower bound for TSP. Challenging

real world instances???

Anyway: almost ideal“fruit fly” problem

Page 3: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 3

Selecting and Discarding MST Edges

The Cut Property

For anyS ⊂V consider the cut edges

C = u,v ∈ E : u ∈ S,v ∈V \SThelightestedge inC can be used in an MST. 4

2

3

1

72

59

The Cycle Property

Theheaviestedge on a cycle is not needed for an MST4

2

3

1

792

5

Page 4: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 4

The Jarník-Prim Algorithm [Jarník 1930, Prim

1957]

Idea: grow a tree

T := /0S:= s for arbitrary start nodes

repeat n−1 times

find (u,v) fulfilling the cut property forS

S:= S∪vT := T ∪(u,v)

4

2

3

1

792

5

Page 5: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 5

Implementation Using Priority Queues

Function jpMST(V, E, w) : Setof Edge

dist=[∞, . . . ,∞] : Array [1..n]// dist[v] is distance ofv from the tree

pred: Array of Edge// pred[v] is shortest edge betweenS andv

q : PriorityQueueof Node withdist[·] as priority

dist[s] := 0; q.insert(s) for anys ∈V

for i := 1 to n−1 do dou := q.deleteMin() // new node forS

dist[u] := 0

foreach (u,v) ∈ E doif c((u,v)) < dist[v] then

dist[v] := c((u,v)); pred[v] := (u,v)

if v ∈ q then q.decreaseKey(v) elseq.insert(v)

return pred[v] : v ∈V \s

4

2

3

1

792

5

Page 6: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 6

Graph Representation for Jarník-Prim

We need node→ incident edges

4

2

3

1

792

5

m 8=m+1

V

E

1 3 5 7 91 n 5=n+1

4 1 3 2 4 1 3c 9 5 7 7 2 2 95

2

1

+ fast (cache efficient)

+ more compact than linked lists

− difficult to change

− Edges are stored twice

Page 7: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 7

Analysis

O (m+n) time outside priority queue

n deleteMin (timeO (n logn))

O (m) decreaseKey (timeO (1) amortized)

O (m+n logn) usingFibonacci Heaps

practical implementation using simplerpairing heaps.

But analysis is still partlyopen!

Page 8: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 8

Kruskal’s Algorithm [1956]

T := /0 // subforest of the MST

foreach (u,v) ∈ E in ascending order of weightdoif u andv are indifferent subtrees ofT then

T := T ∪(u,v) // Join two subtrees

return T

Page 9: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 9

The Union-Find Data Structure

ClassUnionFind(n : N) // Maintain a partition of 1..n

parent=[n+1, . . . ,n+1] : Array [1..n] of 1..n+⌈logn⌉Function find(i : 1..n) : 1..n

if parent[i] > n then return i

elsei′ := find(parent[i])

parent[i] := i′

return i′

Procedure link(i, j : 1..n)

asserti and j are leaders of different subsets

if parent[i] < parent[ j] then parent[i] := j

else ifparent[i] > parent[ j] then parent[ j] := i

elseparent[ j] := i; parent[i]++ // nextgeneration

Procedureunion(i, j) if find(i) 6= find( j) then link(find(i), find( j))

3 421

556 1

5 6

rank

1

rank

2

4

1 2

3

parent:

Page 10: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 10

Kruskal Using Union Find

T : UnionFind(n)

sortE in ascending order of weight

kruskal(E)

Procedurekruskal(E)

foreach (u,v) ∈ E dou′:= T.find(u)

v′:= T.find(v)

if u′ 6= v′ thenoutput(u,v)

T.link(u′,v′)

Page 11: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 11

Graph Representation for Kruskal

Just an edge sequence (array) !

+ very fast (cache efficient)

+ Edges are stored only once

more compact than adjacency array

Page 12: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 12

Analysis

O (sort(m)+mα(m,n)) = O (m logm) whereα is the inverse

Ackermann function

Page 13: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 13

Kruskal versus Jarník-Prim I

Kruskal wins for very sparse graphs

Prim seems to win for denser graphs

Switching point isunclear

– How is the inputrepresented?

– How manydecreaseKeys are performed by JP?

(average case:n log mn [Noshita 85])

– Experimental studies are quiteold [?],

useslow graphrepresentationfor both algs,

andartificial inputs

Page 14: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 14

Better Version For Dense Graphs ?

ProcedurequickKruskal(E : Sequence of Edge)

if m ≤ βn then kruskal(E) // for some constantβelse

pick apivot p∈ E

E≤:= 〈e ∈ E : e ≤ E〉 // partitioning a la

E>:= 〈e ∈ E : e > E〉 // quicksort

quickKruskal(E≤)

E ′>:= filter(E>)

quickKruskal(E ′>)

Function filter(E)

make sure that leader[i] gives the leader of nodei // O (n)!

return 〈(u,v) ∈ E : leader[u] 6= leader[v]〉

Page 15: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 15

1.1 Attempted Average-Case Analysis

Assumedifferent random edge weights, arbitrary graphs

Assume pivotp has median weight

Let T (m) denote the expected execution time form edges

m ≤ βn: O (n logn)

Partitioning, Filtering:O (m+n)

m > βn: T (m) = Ω(m)+T(m/2)+T(2n)[Chan 98]

Solves toO(

m+n log(n) · logmn

)

≤ O (m+n log(n) · log logn)

Open Problem: I know of no graph family with

T (n) = ω(m+n log(n))

Page 16: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 16

Kruskal versus Jarník-Prim II

Things are even less clear.

Kruskal may be better even for dense graphs

Experiments would be interesting.

Even for artificial graphs.

Page 17: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 17

1.2 Filtering by Sampling Rather Than Sorting

R:= random sample ofr edges fromE

F :=MST(R) // Wlog assume thatF spansV

L:= /0 // “light edges” with respect toR

foreach e ∈ E do // Filter

C := the unique cycle ine∪F

if e is not heaviest inC thenL:= L∪e

return MST((L∪F))

Page 18: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 18

1.2.1 Analysis

[Chan 98, KKK 95]

Observation:e ∈ L only if e ∈ MST(R∪e).(Otherwisee could replace some heavier edge inF).

Lemma 1. E[|L∪F|] ≤ mnr

Page 19: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 19

MST Verification by Interval Maxima

Number the nodes by the order they were added to the MST

by Prim’s algorithm.

wi = weight of the edge that inserted nodei.

Largest weight on path(u,v) = maxw j‖u < j ≤ v.

14

3

5

8

0 1 84 3 5

14

8

3

5

0 1 4 3 5 8

Page 20: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 20

Interval Maxima

Preprocessing: build

n logn size array

PreSuf.

Level 0

Level 3

Level 2

Level 1

88 56 30 56 52 74 76

88 88 30 65 65 52 52 77 77 74 74 76 80

98 98 98 15 65 75 77 77 77 41 62 76 80

98 98 75 75 75 56 52 77 77 77 77 77 80

98 15 65 75 34 77 41 62 80

757598

98 75 74

98 3498

2 6To find maxa[i.. j]:

Find the level of the LCA: ℓ = ⌊log2(i⊕ j)⌋.

Returnmax(PreSuf[ℓ][i],PreSuf[ℓ][ j]).

Example: 2⊕6 = 010⊕110= 100:ℓ = 2

Page 21: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 21

A Simple Filter Based Algorithm

Chooser =√

mn.

We get expected time

TPrim(√

mn)+O (n logn+m)+TPrim( mn√mn) = O (n logn+m)

The constant factor in front of them is very small.

Page 22: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 22

Results10 000 nodes, SUN-Fire-15000, 900 MHz UltraSPARC-III+

Worst Case Graph

0

100

200

300

400

500

600

0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

Tim

e pe

r ed

ge [n

s]

Edge density

PrimFilter

Page 23: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 23

Results10 000 nodes, SUN-Fire-15000, 900 MHz UltraSPARC-III+

Random Graph

0

100

200

300

400

500

600

0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

Tim

e pe

r ed

ge [n

s]

Edge density

PrimFilter

Page 24: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 24

Results10 000 nodes,

NEC SX-5Vector Machine

“worst case”

0

200

400

600

800

1000

1200

1400

0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

Tim

e pe

r ed

ge [n

s]

Edge density

Prim (Scalar)I-Max (Scalar)

Prim (Vectorized)I-Max (Vectorized)

Page 25: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 25

Edge Contraction

Let u,v denote an MST edge.

Eliminatev:

forall (w,v) ∈ E doE := E \ (w,v)∪(w,u) // but remember orignal terminals

4

1

4 3

1

792

59

2

7 (was 2,3)2

3

Page 26: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 26

Boruvka’s Node Reduction Algorithm

For each node find the lightest incident edge.

Include them into the MST (cut property)

contract these edges,

TimeO (m)

At least halves the number of remaining nodes

4

1

5

792

5 2

33

Page 27: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 27

External Implementation of Boruvka’s Reduction

1. SortE by first incident vertex. (16m/B I/Os.)

2. Scan the result and output the lightest edge(C(v),v) incident to each vertexv. The graphG′

d = (V,L = (C(v),v) : v ∈V).

3. Remove one of the cycle-edges in each tree: Sort the edges(u,v) in L lexicographically by(min(u,v),max(u,v)).(8n/B I/Os.) ScanL. When two antiparallel edges(u,v), (v,u) are found, remove(u,v). Now v is the root of a tree andshould become the representative for all nodes in its tree.

4. Make two copies of each edge inL — anA-copy and aB-copy.

5. Sort the resulting list of 2n edges such thatA-copies are sorted by their first incident node andB-copies are sorted bytheir second incident node. (16n/B I/Os.) Scan the resulting list and form objects consisting of oneA-edge(u,v)followed by consecutiveB-edges of the form(v,w).

6. Sort the resulting object list by increasing weight of theA-edge generating listL′ . (16n/B I/Os.)

7. Set up a priority queueQ storing triples(c,v,v′) of edge weights, node-ids, and their new name.Q initialized byinserting triples(c,w,v) for B-vertices(v,w) that are not preceded by anA-edge of the form(u,v).ScanL′ . For anA-edge(u,v) with weightc in L′ find a matching entry(c,v,v′) and output the pair(v,v′) recording thatv′ is the newname ofv. Enqueue triples(c′,w,v′) for all B-edges of the form(v,w) associated with theA-edge(u,v). (6n/B I/Os.)

8. Sort the resulting renaming sequenceR by their first component. (4n/B I/Os.)

9. Scan the edge listE andR simultaneously and rename the first component of each edge inE. This costs 8m/B I/Os forreading the sorted list of 2m 4-tuples and we have to account another 8m/B I/Os for explicitly storingE in in step 1.

10. SortE by the second component. (16m/B I/Os.)

11. ScanE andR renaming the second component of each edge. (4n/B I/Os).

Page 28: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 28

1.3 Cost of reducing the number of nodes by 2

need 6 pipelined sorters+ priority queue

three different data types (edges, PQ entries, renaming

pairs)

(48m+54n)/B I/Os to halve the node set

Page 29: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 29

1.4 Simpler and Faster Node Reduction

for i := n downto n′ +1 dopick a random nodev

find thelightestedge(u,v) out of v and output it

contract(u,v)

E[degree(v)] ≤ 2m/i

∑n′<i≤n

2mi

= 2m

(

∑0<i≤n

1i− ∑

0<i≤n′

1i

)

≈2m(lnn− lnn′)= 2m lnnn′

4

1

4 3

1

4

1

792

59

2

7 (was 2,3)

output 2,3

2

3 7output 1,2

5

9 2 (was 4,3)

Page 30: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 30

1.5 Randomized Linear Time Algorithm

1. Factor 8 node reduction (3× Boruvka or sweep algorithm)

O (m+n).

2. R ⇐ m/2 random edges.O (m+n).

3. F ⇐ MST (R) [Recursively].

4. Find light edgesL (edge reduction). O (m+n)

E[|L|] ≤ mn/8m/2 = n/4.

5. T ⇐ MST (L∪F) [Recursively].

T (n,m) ≤ T (n/8,m/2)+T (n/8,n/4)+ c(n+m)

T (n,m) ≤ 2c(n+m) fulfills this recurrence.

Page 31: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 31

1.6 External MSTs

Semiexternal Algorithms

Assumen ≤ M−2B:

runKruskal’s algorithmusingexternal sorting

Page 32: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 32

Streaming MSTs

If M is yet a bit larger we can even do it withm/B I/Os:

T := /0 // currentapproximation of MST

while there are any unprocessed edgesdoload anyΘ(M) unprocessed edgesE ′

T := MST(T ∪E ′) // for any internal MST alg.

Corollary: we can do it withlinearexpectedinternal work

Disadvantages to Kruskal:

Slower in practice

Smaller max.n

Page 33: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 33

General External MST

while n > M−2B doperform some node reduction

use semi-external Kruskal

n’<M

m/nn

Theory:O (sort(m)) expected I/Os by externalizing the linear

time algorithm.

(i.e., node reduction+ edge reduction)

Page 34: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 34

External Implementation I: Sweeping

π : random permutationV →V

sortedges(u,v) by min(π(u),π(v))

for i := n downto n′ +1 dopick the nodev with π(v) = i

find thelightestedge(u,v) out of v and output it

contract(u,v)

u v...

relink

relink

outputsweep line

Page 35: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 35

Fast Random Permutations (no I/O)

π : 0..n−1→ 0..n−1

Feistelpermutations:

assume nodei can be represented as a pair(a,b) with

i = a+b√

n

π f ((a,b)) = (b,a+ f (b) mod√

n) for random mapping

f : 0..√

n−1→ 0..√

n−1

n is small implementf as a lookup table (forn = 232

needonly 128 kB)

π(x) = π f (πg(πh(πl(x)))) is good even for cryptography

we useπ(x) = π f (πg(x)))

Page 36: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 36

External Implementation I: Sweeping

π : random permutationV →V

sortedges(u,v) by min(π(u),π(v))

for i := n downto n′ +1 dopick the nodev with π(v) = i

find thelightestedge(u,v) out of v and output it

contract(u,v)

u v...

relink

relink

outputsweep line

Problem: how to implement relinking?

Page 37: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 37

Relinking Using Priority Queues

Q: priority queue // Order:max node, thenmin edge weight

foreach (u,v ,c) ∈ E do Q.insert((π(u),π(v) ,c,u,v))current :=n+1

loop(u,v ,c,u0,v0) := Q.deleteMin()

if current6= maxu,vthenif current= M +1 then returnoutputu0,v0 ,c

current := maxu,vconnect := minu,v

elseQ.insert((minu,v ,connect ,c,u0,v0))

≈ sort(10m ln nM ) I/Os with opt. priority queues [Sanders 00]

Problem:Computebound

u v...

relink

relink

outputsweep line

Page 38: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 38

Sweeping with linear internal work

Assumem = O(

M2/B)

k = Θ(M/B) external bucketswith n/k nodes each

M nodes for last“semiexternal”bucket

split currentbucket into

internalbuckets for eachnode

Sweeping:

Scan current internal bucket twice:

1. Find minimum

2. Relink

New external bucket: scan and put ininternalbuckets

Large degree nodes: move tosemiexternalbucket

...

externalexternal

internal

current semiexternal

Page 39: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 39

Experiments

Instances from “classical” MST study[Moret Shapiro 1994]

sparse random graphs

random geometric graphs

grids

O (sort(m)) I/Os

for planar graphs by

removing parallel edges!

Other instances are rather dense

or designed to fool specific algorithms.

PCI−Busses

Controller

Channels

2x64x66 Mb/s

4 Threads2x Xeon

128

E75001 GBDDRRAM

8x45

4x2x100MB/s

400x64 Mb/s

8x80GBMB/s

Chipset

Intel

Page 40: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 40

m ≈ 2n

1

2

3

4

5

6

5 10 20 40 80 160 320 640 1280 2560

t / m

[µs]

m / 1 000 000

KruskalPrim

randomgeometric

grid

Page 41: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 41

m ≈ 4n

1

2

3

4

5

6

5 10 20 40 80 160 320 640 1280 2560

t / m

[µs]

m / 1 000 000

KruskalPrim

randomgeometric

Page 42: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 42

m ≈ 8n

1

2

3

4

5

6

5 10 20 40 80 160 320 640 1280 2560

t / m

[µs]

m / 1 000 000

KruskalPrim

randomgeometric

Page 43: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 43

MST Summary

Edge reduction helps for very dense, “hard” graphs

A fast and simplenode reductionalgorithm:

(48m+54n)/B vs. ln(2) ·16m/B ≈ 11.1m/B I/Os for

2-reduction

4× less I/Os than previous algorithms

Refined semiexternal MST, use asbase case

Simple pseudo random permutations (no I/Os)

A fast implementation

Experiments with huge graphs (up ton = 4·109 nodes)

External MST is feasible

Page 44: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 44

Open Problems

New experiments for (improved) Kruskal versus

Jarník-Prim

Realistic (huge) inputs

Parallel external algorithms

Implementations for other graph problems

Page 45: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 45

Conclusions

Even fundamental, “simple” algorithmic problems

still raise interesting questions

Implementation and experiments are important and were

neglected by parts of the algorithms community

Theoryan (at least) equally important, essential component

of the algorithm design process

Page 46: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 46

More Algorithm Engineering on Graphs

Count triangles in very large graphs. Interesting as a

measure of clusteredness. (Cooperation with AG Wagner)

External BFS (Master thesis Deepak Ajwani)

Maximum flows: Is the theoretical best algorithm any

good? (Jein)

Approximate max. weighted matching (Studienarbeit Jens

Maue)

Page 47: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 47

Maximal Flows

Theory: O(

mΛ log(n2/m) logU)

binary blocking

flow-algorithm mitΛ = minm1/2,n2/3 [Goldberg-Rao-97].

Problem: best case≈ worst case

[Hagerup Sanders Träff WAE 98]:

Implementable generalization

best case≪ worst case

best algorithms for some “difficult” instances

Page 48: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 48

Ergebnis

u v...

relink

relink

outputsweep line

Einfach extern implementierbar

n′ = M semiexterner Kruskal Algorithmus

InsgesamtO(

sort(mln nm))

erwartete I/Os

Für realistische Eingaben mindestens4× besserals bisher

bekannte Algorithmen

Implementierung in<stxxl> mit bis zu96 GBytegro/3en

Graphen läuft „über Nacht“

Page 49: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 49

Presenting Data from Experiments in

Algorithmics

Restrictions

black and white easy and cheap printing

2D (stay tuned)

no animation

no realism desired

Page 50: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 50

Not here

ensuring reproducibility

describing the setup

finding sources of measurement errors

reducing measuremnt errors (averaging, median,unloaded

machine. . . )

measurements in thecreativephase of experimental

algorithmics.

Page 51: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 51

The Starting Point

(Several) Algorithm(s)

A few quantities to be measured: time, space, solution

quality, comparisons, cache faults,. . . There may also be

measurement errors.

An unlimited number of potential inputs. condense to a

few characteristic ones (size,|V |, |E|, . . . or problem

instances from applications)

Usually there is not a lack but anabundanceof data6= many

other sciences

Page 52: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 52

The Process

Waterfall model?

1. Design

2. Measurement

3. Interpretation

Perhaps the paper should at least look like that.

Page 53: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 53

The Process

Eventually stop asking questions (Advisors/Referees listen

!)

build measurement tools

automate (re)measurements

Choice of Experments driven by risk and opportunity

Distinguish mode

explorative: many different parameter settings, interactive,

short turnaround times

consolidating:many large instances, standardized

measurement conditions, batch mode, many machines

Page 54: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 54

Of Risks and Opportunities

Example: Hypothesis= my algorithm is the best

big risk: untried main competitor

small risk: tuning of a subroutine that takes 20 % of the time.

big opportunity: use algorithm for a new application

new input instances

Page 55: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 55

Basic Principles

Minimize nondata ink

(form follows function, not a beauty contest,. . . )

Letter size≈ surrounding text

Avoid clutter and overwhelming complexity

Avoid boredom (too little data perm2.

Make the conclusions evident

Page 56: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 56

Tables

+ easy

− easy overuse

+ accurate values (6= 3D)

+ more compact than bar chart

+ good for unrelated instances (e.g. solution quality)

− boring

− no visual processing

rule of thumb that “tables usually outperform a graph for smalldata sets of 20 numbers or less”[Tufte 83]

Curves in main paper, tables in appendix?

Page 57: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 57

2D Figures

default:x = input size, y = f (execution time)

Page 58: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 58

x AxisChoose unit to eliminate a parameter?

1

1.1

1.2

1.3

1.4

1.5

1.6

1.7

1.8

10 100 1000 10000 100000 1e+06

impr

ovem

ent m

in(T

* 1,T

* ∞)/

T* *

k/t0

P=64P=1024P=16384

lengthk fractional tree broadcasting. latencyt0 + k

Page 59: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 59

x Axislogarithmic scale?

1

1.1

1.2

1.3

1.4

1.5

1.6

1.7

1.8

10 100 1000 10000 100000 1e+06

impr

ovem

ent m

in(T

* 1,T

* ∞)/

T* *

k/t0

P=64P=1024P=16384

yes if x range is wide

Page 60: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 60

x Axislogarithmic scale, powers of two (or

√2)

0

50

100

150

1024 4096 16384 65536 218 220 222 223

(T(d

elet

eMin

) +

T(in

sert

))/lo

g N

[ns

]

N

bottom up binary heapbottom up aligned 4-ary heapsequence heap

with tic marks, (plus a few small ones)

Page 61: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 61

gnuplotset xlabel "N"

set ylabel "(time per operation)/log N [ns]"

set xtics (256, 1024, 4096, 16384, 65536, "2^18" 262144,

set size 0.66, 0.33

set logscale x 2

set data style linespoints

set key left

set terminal postscript portrait enhanced 10

set output "r10000timenew.eps"

plot [1024:10000000][0:220]\

"h2r10000new.log" using 1:3 title "bottom up binary heap"

"h4r10000new.log" using 1:3 title "bottom up aligned 4-ary

"knr10000new.log" using 1:3 title "sequence heap" with linespoints

Page 62: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 62

Data File256 703.125 87.8906

512 729.167 81.0185

1024 768.229 76.8229

2048 830.078 75.4616

4096 846.354 70.5295

8192 878.906 67.6082

16384 915.527 65.3948

32768 925.7 61.7133

65536 946.045 59.1278

131072 971.476 57.1457

262144 1009.62 56.0902

524288 1035.69 54.51

1048576 1055.08 52.7541

2097152 1113.73 53.0349

4194304 1150.29 52.2859

8388608 1172.62 50.9836

Page 63: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 63

x Axislinear scale for ratios or small ranges (#processor,. . . )

0

100

200

300

400

500

600

0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

Tim

e pe

r ed

ge [n

s]

Edge density

PrimFilter

Page 64: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 64

x AxisAn exotic scale: arrival rate 1− ε of saturation point

1

2

3

4

5

6

7

8

2 4 6 8 10 12 14 16 18 20

aver

age

dela

y

1/ε

nonredundantmirrorring shortest queuering with matchingshortest queue

Page 65: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 65

y AxisAvoid log scale ! scale such that theory gives≈ horizontal lines

0

50

100

150

1024 4096 16384 65536 218 220 222 223

(T(d

elet

eMin

) +

T(in

sert

))/lo

g N

[ns

]

N

bottom up binary heapbottom up aligned 4-ary heapsequence heap

but give easy interpretation of the scaling function

Page 66: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 66

y Axisgive units

0

50

100

150

1024 4096 16384 65536 218 220 222 223

(T(d

elet

eMin

) +

T(in

sert

))/lo

g N

[ns

]

N

bottom up binary heapbottom up aligned 4-ary heapsequence heap

Page 67: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 67

y Axisstart from 0if this does not waste too much space

0

50

100

150

1024 4096 16384 65536 218 220 222 223

(T(d

elet

eMin

) +

T(in

sert

))/lo

g N

[ns

]

N

bottom up binary heapbottom up aligned 4-ary heapsequence heap

you may assume readers to be out of Kindergarten

Page 68: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 68

y Axisclip outclassed algorithms

1

2

3

4

5

6

7

8

2 4 6 8 10 12 14 16 18 20

aver

age

dela

y

1/ε

nonredundantmirrorring shortest queuering with matchingshortest queue

Page 69: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 69

y Axisvertical size: weighted average of the slants of the line segments

in the figure should be about45[Cleveland 94]

1

1.1

1.2

1.3

1.4

1.5

1.6

1.7

1.8

10 100 1000 10000 100000 1e+06

impr

ovem

ent m

in(T

* 1,T

* ∞)/

T* *

k/t0

P=64P=1024P=16384

Page 70: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 70

y Axisgraph a bit wider than high, e.g., golden ratio[Tufte 83]

1

1.1

1.2

1.3

1.4

1.5

1.6

1.7

1.8

10 100 1000 10000 100000 1e+06

impr

ovem

ent m

in(T

* 1,T

* ∞)/

T* *

k/t0

P=64P=1024P=16384

Page 71: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 71

Multiple Curves

+ high information density

+ better than 3D (reading off values)

− Easily overdone

≤ 7 smoothcurves

Page 72: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 72

Reducing the Number of Curves

use ratios

1

1.1

1.2

1.3

1.4

1.5

1.6

1.7

1.8

10 100 1000 10000 100000 1e+06

impr

ovem

ent m

in(T

* 1,T

* ∞)/

T* *

k/t0

P=64P=1024P=16384

Page 73: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 73

Reducing the Number of Curves

omit curves

outclassed algorithms (for case shown)

equivalent algorithms (for case shown)

Page 74: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 74

Reducing the Number of Curves

split into two graphs

1

2

3

4

5

6

7

8

2 4 6 8 10 12 14 16 18 20

aver

age

dela

y

1/ε

nonredundantmirrorring shortest queuering with matchingshortest queue

Page 75: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 75

Reducing the Number of Curvessplit into two graphs

1

1.2

1.4

1.6

1.8

2

2 4 6 8 10 12 14 16 18 20

aver

age

dela

y

1/ε

shortest queuehybridlazy sharingmatching

Page 76: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 76

Keeping Curves apart: log y scale

0

200

400

600

800

1000

1200

1400

0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

Tim

e pe

r ed

ge [n

s]

Edge density

Prim (Scalar)I-Max (Scalar)

Prim (Vectorized)I-Max (Vectorized)

Page 77: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 77

Keeping Curves apart: smoothing

1

2

3

4

5

6

7

8

2 4 6 8 10 12 14 16 18 20

aver

age

dela

y

1/ε

nonredundantmirrorring shortest queuering with matchingshortest queue

Page 78: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 78

Keys

1

2

3

4

5

6

7

8

2 4 6 8 10 12 14 16 18 20

aver

age

dela

y

1/ε

nonredundantmirrorring shortest queuering with matchingshortest queue

same order as curves

Page 79: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 79

Keysplace in white space

1

1.2

1.4

1.6

1.8

2

2 4 6 8 10 12 14 16 18 20

aver

age

dela

y

1/ε

shortest queuehybridlazy sharingmatching

consistent in different figures

Page 80: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 80

Todsünden1. forget explaining theaxes

2. connecting unrelatedpoints

by lines

3. mindless use/overinterpretation

of double-log plot

4. crypticabbreviations

5. microscopiclettering

6. excessivecomplexity

7. pie charts

Page 81: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 81

Arranging Instances

bar charts

stack components of execution time

careful with shading

postprocessing

phase 2

phase 1

preprocessing

Page 82: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 82

Arranging Instancesscatter plots

1

10

100

1000

1 10 100 1000

n / a

ctiv

e se

t siz

e

n/m

Page 83: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 83

Measurements and Connections

straight line between points do not imply claim of linear

interpolation

different with higher order curves

no points imply an even stronger claim. Good for very

dense smooth measurements.

Page 84: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 84

Grids and Ticks

Avoid grids or make it light gray

usually round numbers for tic marks!

sometimes plot important values on the axis

usually avoidable for randomized algorithms. median6=average,. . .

Page 85: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 85

0

5

10

15

20

32 1024 32768n

Measurementlog n + log ln n + 1log n

errors maynot be of statistical nature!

Page 86: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 86

3D

− you cannot read off absolute values

− interesting parts may be hidden

− only one surface

+ good impression of shape

Page 87: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 87

Caption

what is displayed

how has the date been obtained

surrounding text has more.

Page 88: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 88

Check List

Should the experimental setup from the exploratory phase

be redesigned to increase conciseness or accuracy?

What parameters should be varied? What variables should

be measured? How are parameters chosen that cannot be

varied?

Can tables be converted into curves, bar charts, scatter plots

or any other useful graphics?

Should tables be added in an appendix or on a web page?

Should a 3D-plot be replaced by collections of 2D-curves?

Can we reduce the number of curves to be displayed?

How many figures are needed?

Page 89: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 89

Scale thex-axis to makey-values independent of some

parameters?

Should thex-axis have a logarithmic scale? If so, do the

x-values used for measuring have the same basis as the tick

marks?

Should thex-axis be transformed to magnify interesting

subranges?

Is the range ofx-values adequate?

Do we have measurements for the rightx-values, i.e.,

nowhere too dense or too sparse?

Should they-axis be transformed to make the interesting

part of the data more visible?

Should they-axis have a logarithmic scale?

Page 90: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 90

Is it be misleading to start they-range at the smallest

measured value?

Clip the range ofy-values to exclude useless parts of

curves?

Can we use banking to 45?

Are all curves sufficiently well separated?

Can noise be reduced using more accurate measurements?

Are error bars needed? If so, what should they indicate?

Remember that measurement errors are usuallynot random

variables.

Use points to indicate for whichx-values actual data is

available.

Connect points belonging to the same curve.

Page 91: 1 Minimum Spanning Trees - KITalgo2.iti.kit.edu/sanders/courses/algen08/graph.pdfMST: Overview Basics: Edge property and cycle property Jarník-Prim Algorithm Kruskals Algorithm Some

Sanders: Algorithm Engineering4. Juli 2007 91

Only use splines for connecting points if interpolation is

sensible.

Do not connect points belonging to unrelated problem

instances.

Use different point and line styles for different curves.

Use the same styles for corresponding curves in different

graphs.

Place labels defining point and line styles in the right order

and without concealing the curves.

Captions should make figures self contained.

Give enough information to make experiments

reproducible.