Top Banner
Visualizing Graphs Cole posted this link last year: http://www.webgraphviz.com/ You can copy the definition of a graph in the text box and generate a picture of it: digraph G { a -> b b -> c c -> d } 320MST 2
29

Visualizing Graphs - Colorado State University

Dec 23, 2021

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Visualizing Graphs - Colorado State University

Visualizing GraphsCole posted this link last year:http://www.webgraphviz.com/You can copy the definition of a graph in the text box and generate a picture of it:

digraph G {a -> bb -> cc -> d}

320‐MST 2

Page 2: Visualizing Graphs - Colorado State University

Algorithm Visualizationshttps://www.cs.usfca.edu/~galles/visualization/Algorithms.htmlBFSDFSKruskal’s MSTPrim’s MSTFibonacci Heapsetc.

320‐MST 3

Page 3: Visualizing Graphs - Colorado State University

Minimum Spanning TreesCS 320, Fall 2017

Dr. Geri Georg, [email protected]

320‐MST 4

Some materials adapted from Prof. Wim Bohm

Page 4: Visualizing Graphs - Colorado State University

320‐MST 5

Algorithmically….Given a set of locations, with positive weights of some sort, we want to create a network (T) that connects all nodes to each other with minimal sum of distances (ce, c  T).

5

23

10 21

14

24

16

6

4

18 9

711

8

G = (V, E)5

6

4

9

711

8

eT ce = 50

Page 5: Visualizing Graphs - Colorado State University

320‐MST 6

An Example

Page 6: Visualizing Graphs - Colorado State University

320‐MST 7

An Example5

34

4

5 4

3

2

2

44 4

33

2

2

2

1

3

33

Page 7: Visualizing Graphs - Colorado State University

320‐MST 8

An Example5

34

4

5 4

3

2

2

44 4

332

2

2

1

3

3a

k j i

h

g

f

e

d

c

b

3

Page 8: Visualizing Graphs - Colorado State University

320‐MST 9

Clustering

Page 9: Visualizing Graphs - Colorado State University

320‐MST 10

Biological Prediction

neuron

dendrites

dendrite length predicted using MSTs

real dendrites MST predictions

Page 10: Visualizing Graphs - Colorado State University

Greedy MST AlgorithmsKruskal's algorithm.  Start with T = . Consider edges in ascending order of cost. Add edge e to T unless doing so would create a cycle.

Reverse‐Delete algorithm.  Start with T = E.  Consider edges in descending order of cost. Delete edge e from T unless doing so would disconnect T.

Prim's algorithm.  Start with some node s and greedily grow a tree T from s.  At each step, add the cheapest edge e to T that has exactly one endpoint in T, i.e. without creating a cycle.

320‐MST 11

Page 11: Visualizing Graphs - Colorado State University

320‐MST12

Cut Property

w’v’

vwe

Se’ 

Let S be a subset of nodes, and let e be the min cost edge with exactly one endpoint in S. Then the MST T contains e.

Proof: T is a spanning tree so it has to have a path from v to w. Follow that path to w. It has to go somehow from v to v’ (last node on P in S), to w’ (1st node on P in V‐S), then somehow to w. 

Page 12: Visualizing Graphs - Colorado State University

320‐MST13

Cut PropertyLet S be a subset of nodes, and let e be the min cost edge with exactly one endpoint in S. Then the MST T contains e.

Proof continued: Now exchange e for e’ to get:T’ = T –{e’}  {e}We claim T’ is a spanning tree. It is connected since any path can use e instead of e’. It is acyclic since we substituted e for e’. e is the cheapest edge with just 1 node in S, so ce < ce’ and the cost of T’ < the cost of T

w’v’

vwe

Se’ 

Page 13: Visualizing Graphs - Colorado State University

Kruskal’s AlgorithmCreate sets for each tree in the forest – initially one for each u  VSort edges from least cost to mostFor each edge (u,v) taken in increasing cost order, if u and v are in different trees, add the edge to the MST and merge the vertices of the 2 trees

320‐MST 17

Page 14: Visualizing Graphs - Colorado State University

320‐MST 18

Muddy City – Kruskal’s5

34

4

54

3

2

2

44 4

332

2

2

1

3

3a

k j i

h

g

f

e

d

c

b

3

Page 15: Visualizing Graphs - Colorado State University

320‐MST 19

ij 1cd 2be 2hi 2gk 2jk 2bf 3bc 3ef 3af 3hk 3ei 3de 3bd 4

di 4ag 4fh 4gh 4eh 4ab 5fg 5

53

4

4

54

3

2

24

4 4

332

2

2

1

3

3a

k j i

h

g

f

e

d

c

b

3

For each edge (u,v) taken in increasing cost order, if u and v are in different trees, add the edge to the MST and merge the vertices of the 2 trees

Page 16: Visualizing Graphs - Colorado State University

320‐MST 21

Kruskal’s

Page 17: Visualizing Graphs - Colorado State University

Recall ….What algorithm did we explore Fri?How did we start it? What did we consider first – vertices or edges, and what did we do with them?In what order did we consider vertices/edges?What happened if we had multiple edges with the same weight and we tried taking them in different order?

320‐MST 23

Page 18: Visualizing Graphs - Colorado State University

Micro‐Survey 1Why is this cut‐property thing important? (Why is the greedy choice safe?)

320‐MST 24

A is a subset of E included in some MST, T. (S, V‐S) is a cut that respects A, and (u,v) is a light edge crossing the cutthat is not in T. At least 1 edge in T has to be on the path from

u to v, e.g. (x,y). Removing (x,y) breaks T into 2 parts. Adding (u,v) connects them to make a new ST, T’. w(T’) ≤ w(T) since (u,v) is a light edge, so T’ is an MST and (u,v) is a safe edge.

Page 19: Visualizing Graphs - Colorado State University

Micro‐Survey 2Usefulness of MST? • MSTs are used in finding the lowest cost 

interconnections in networks of various kinds (cable, utilities, etc.), finding clusters, predicting biological growth, and other applications.

320‐MST 25

Page 20: Visualizing Graphs - Colorado State University

Micro‐Survey 3Complexity?Kruskal’s: • Join trees in a forest into a single tree.• Sort edges by weight: O(E lg E)• Joining sets uses union by rank: “add” the set 

with the lower rank to the other set. Next apply path compression: O(m α(n)) where m is the number of disjoint‐set ops on n elements.

• The sorting part dominates: O(E lg E). • BUT E lg E ≤ E lg V2, which is = 2 E log V, and for 

O() we throw away the constant and get O(E lg V) which is more aesthetically pleasing.

320‐MST 26

Page 21: Visualizing Graphs - Colorado State University

Micro‐Survey 3.5Complexity?Prim’s: • Linear: setup, bookkeeping• Process all edges, potentially perform a heap op 

on each• Heap ops dominate: O(E lg E). • Same argument to get O(E lg V) which is more 

aesthetically pleasing.• If a Fibonacci heap is used, the amortized heap 

ops can make the complexity O(E + V lg V)

320‐MST 27

Page 22: Visualizing Graphs - Colorado State University

Micro‐Survey 4Why doesn’t MST solve the traveling salesman problem?• TSP starts from one vertex, visits all others, and 

ends up at the first (so direction matters). The path is the shortest path. It is really looking for a Hamiltonian cycle.

• MST is looking for the lowest weight tree that connects all the vertices (direction doesn’t matter – the point is that there is a path to every vertex).

• MST can be used to approximate TSP by performing a pre‐order DFS of the tree and constructing a list of vertices the first time we encounter them. This has been shown to be at most 2x the optimal path length 

320‐MST 28

Page 23: Visualizing Graphs - Colorado State University

Micro‐Survey 5Why was the Canvas graph quiz a different format?• The Canvas graphics quiz and a new Canvas 

MST quiz are ‘reading’ quizzes, designed to help direct your reading of the Cormenbook. They are meant to be taken while studying the book. We’ll do at least 2 quizzes this way, and see how it goes.

320‐MST 29

Page 24: Visualizing Graphs - Colorado State University

Prim’s AlgorithmInitialize S = any node. This will be the MST rootApply cut property to S: add min cost edge (v, w) where v is in S and w is in V‐S, and add w to S.Repeat until S = V.

320‐MST 30

S

Page 25: Visualizing Graphs - Colorado State University

320‐MST 31

Prim(G,r)foreach (u V)

a[u] ; u. = a[r]= 0min priority queue Q = {}foreach (u V) insert u onto Q (key: ‘a’

value)set S {}while (Q is not empty) {

u extract min element from QS S { u }foreach (edge e = (u, v) incident to u)

if ((v S) and (ce < a[v]))decrease priority a[v] to cev. = u

Page 26: Visualizing Graphs - Colorado State University

320‐MST 32

Muddy City 2 – Prim’s5

34

4

54

3

2

2

44 4

332

4

23

3a

ki

h

g

f

e

d

c

b

3

Page 27: Visualizing Graphs - Colorado State University

320‐MST 33

V adj a[u] a b,f,g 0 b a,c,d,e,f c b,d d b,c,e,i e b,d,f,h,i f a,b,e,h,g g a,f,h,k h e,f,g,i,k i d,e,h,j j i,k k g,h,j

min priority queue Q = {}foreach (u V) insert u in Q

set S {}while (Q is not empty) {

u Q min element (delete)S S { u }foreach edge e = (u, v) if ((vS) and (ce<a[v]))

a[v] = cev. = u

root

Causes Q to change

53

4

4

54

3

2

24

4 4332

2

4

3

3a

ki

h

g

f

e

d

c

b

3

Page 28: Visualizing Graphs - Colorado State University

320‐MST 35

Prim’s

Weight = 23

Page 29: Visualizing Graphs - Colorado State University

Image CreditsmaterialsMST: http://www.mccormick.northwestern.edu/news/articles/2014/08/database‐accelerates‐the‐development‐of‐new‐materials.html

muddyCity: http://www.utdallas.edu/~besp/teaching/mst‐applications.pdf

clusteringMST2: https://www.researchgate.net/figure/236106483_fig2_Figure‐2‐Unrooted‐minimum‐spanning‐tree‐network‐showing‐genetic‐relationship‐among

dendritePP: http://www.pnas.org/content/109/27/11014.full.pdf

colorDendrite: https://medicalxpress.com/news/2013‐10‐neuroscientists‐mini‐neural‐brain.html

bean: http://clipart‐library.com/bean‐people.html

320‐MST 55