graphs topic 21

95
Graphs Topic 21 " Hopefully, you've played around a bit with The Oracle of Bacon at Virginia and discovered how few steps are necessary to link just about anybody who has ever been in a movie to Kevin Bacon, but could there be some actor or actress who is even closer to the center of the Hollywood universe?. By processing all of the almost half of a million people in the Internet Movie Database I discovered that there are currently 1160 people who are better centers than Kevin Bacon! … By computing the average of these numbers we see that the average (Sean) Connery Number is about 2.682 making Connery a better center than Bacon" -Who is the Center of the Hollywood Universe?, University of Virginia That was in 2001. In 2013 Harvey Keitel has become the center of

Upload: reba

Post on 24-Feb-2016

31 views

Category:

Documents


0 download

DESCRIPTION

Graphs Topic 21. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Graphs Topic 21

GraphsTopic 21

" Hopefully, you've played around a bit with The Oracle of Bacon at Virginia and discovered how few steps are necessary to link just about anybody who has ever been in a movie to Kevin Bacon, but could there be some actor or actress who is even closer to the center of the Hollywood universe?.By processing all of the almost half of a million people in the Internet Movie Database I discovered that there are currently 1160 people who are better centers than Kevin Bacon! … By computing the average of these numbers we see that the average (Sean) Connery Number is about 2.682 making Connery a better center than Bacon"

-Who is the Center of the Hollywood Universe?, University of VirginiaThat was in 2001. In 2013 Harvey Keitel has become the center of the Hollywood Universe. Connery is 136th. Bacon has moved up to 370th.

Page 2: Graphs Topic 21

CS314 2

An Early Problem in Graph Theory

8 Leonhard Euler (1707 - 1783)– One of the first mathematicians to study graphs

8 The Seven Bridges of Konigsberg Problem8 A puzzle for the residents of the city8 The river Pregel flows through the city8 7 bridges cross the river8Can you cross all bridges while crossing

each bridge only once?

Graphs

Page 3: Graphs Topic 21

CS314 3

Konigsberg and the River Pregel

Graphs

Page 4: Graphs Topic 21

Clicker Question 18How many solutions does the Seven Bridges

of Konigsberg Problem have?A. 0B. 1C. 2D. 3E. 4 or more

CS314 Graphs 4

Page 5: Graphs Topic 21

CS314 5

How to Solve8 Brute Force?8 Euler's Solution

– Redraw the map as a graph (really a multigraph)

a

b

c

d

Graphs

Page 6: Graphs Topic 21

CS314 6

Euler's Proposal 8 A connected graph has an Euler tour

(possible to cross each edge only once while traversing each edge only once and returning to starting point) if and only if every vertex has an even number of edges– Eulerian Circuit

8What if we reduce the problem to only crossing each exactly once edge once?– Doesn't matter if we end up where we started– Eulerian Trail

Graphs

Page 7: Graphs Topic 21

CS314 7

Graph Definitions8 A graph is comprised of a set of vertices

(nodes) and a set of edges (links, arcs) connecting the vertices

8 in a directed graph edges are one-way– movement allowed from first node to second, but

not second to first– directed graphs also called digraphs

8 in an undirected graph edges are two-way– movement allowed in either direction

Graphs

Page 8: Graphs Topic 21

Definitions8 In a weighted graph the edge has cost or weight

that measures the cost of traveling along the edge8 A path is a sequence of vertices connected by

edges– The path length is the number of edges– The weighted path length is the sum of the cost of the

edges in a path8 A cycle is a path of length 1 or more that starts and

ends at the same vertex– a directed acyclic graph is a directed graph with no

cycles

CS314 Graphs 8

Page 9: Graphs Topic 21

CS314 9

Graphs We've Seen

link link link link

link link link

19

12 35

3 16 5621

Graphs

Page 10: Graphs Topic 21

Example Graph8Computer Scientists use graphs to model all

kinds of things

CS314 Graphs 10

Arpanet 1969, 1971

Page 12: Graphs Topic 21

Example Graph

CS314 Graphs 12

Page 13: Graphs Topic 21

Example Graph

CS314 Graphs 13"Jefferson" High School, Ohio http://researchnews.osu.edu/archive/chains.htm, 2005,

Page 14: Graphs Topic 21

CS314 14

8How to store a graph as a data structure?8

Representing Graphs

Graphs

Page 15: Graphs Topic 21

CS314 15

Adjacency Matrix Representation

8    A Br Bl Ch Co E FG G Pa Pe S U VA  0 1  1  1  0  0 0  0 1  0  0 1 0Br 1 0  1  0  1  0 1  1 1  1  1 1 1 Bl 1 1  0  1  0  0 0  0 1  1  0 0 0 Ch 1 0  1  0  0  0 0  0 0  1  0 0 0Co 0 1  0  0  0  1 0  0 0  1  0 0 1E  0 0  0  0  1  0 0  0 0  1  0 0 0 FG 0 1  0  0  0  0 0  0 0  0  1 0 0G  0 1  0  0  0  0 0  0 0  0  1 0 1Pa 1 1  1  0  0  0 0  0 0  0  0 0 0Pe 0 1  1  1  1  1 0  0 0  0  0 0 0S  0 1  0  0  0  0 1  1 0  0  0 0 0U  1 1  0  0  0  0 0  0 0  0  0 0 0V  0 1  0  0  1  0 0  1 0  0  0 0 0

Country Code

Argentina A

Brazil Br

Bolivia Bl

Chile Ch

Columbia Co

Ecuador E

French Guiana FG

Guyana G

Paraguay Pa

Peru Pe

Suriname S

Uruguay U

Venezuela V

Graphs

Page 16: Graphs Topic 21

CS314 16

The Map Coloring Problem8How many colors do you need to color a

map, so that no 2 countries that have a common border (not a point) are colored the same?

8How to solve using Brute Force?

Graphs

Page 17: Graphs Topic 21

CS314 17

8

A Solution

Green

Green

Green

Blue

Yellow

Blue

Yellow

Blue

Yellow

Yellow

Blue

Red

Graphs

Page 18: Graphs Topic 21

CS314 18

What About the Ocean? A Br Bl Ch Co E FG G Pa Pe S U V OcA  0 1  1  1  0  0 0  0 1  0  0 1 0 1Br 1 0  1  0  1  0 1  1 1  1  1 1 1 1 Bl 1 1  0  1  0  0 0  0 1  1  0 0 0 0 Ch 1 0  1  0  0  0 0  0 0  1  0 0 0 1Co 0 1  0  0  0  1 0  0 0  1  0 0 1 1E  0 0  0  0  1  0 0  0 0  1  0 0 0 1 FG 0 1  0  0  0  0 0  0 0  0  1 0 0 1G  0 1  0  0  0  0 0  0 0  0  1 0 1 1Pa 1 1  1  0  0  0 0  0 0  0  0 0 0 0Pe 0 1  1  1  1  1 0  0 0  0  0 0 0 1S  0 1  0  0  0  0 1  1 0  0  0 0 0 1U  1 1  0  0  0  0 0  0 0  0  0 0 0 1V  0 1  0  0  1  0 0  1 0  0  0 0 0 1Oc 1 1 0 1 1 1 1 1 0 1 1 1 1 0

Graphs

Page 19: Graphs Topic 21

CS314 19

8

Make the Ocean Blue

Green

Green

Green

Blue

Yellow

Blue

Yellow

BlueYellow

Yellow

Red

Graphs

Red

Red

Red

Page 20: Graphs Topic 21

More Definitions8 A dense graph is one with a large number of

edges– maximum number of edges?

8 A sparse graph is one in which the number of edges is much less than the maximum possible number of edges– No standard cutoff for dense and sparse graphs

CS314 Graphs 20

Page 21: Graphs Topic 21

Graph Representation8 For dense graphs the adjacency matrix is a

reasonable choice– For weighted graphs change booleans to cost– Can the adjacency matrix handle directed

graphs?8Most graphs are sparse, not dense8 For sparse graphs an adjacency list is an

alternative that uses less space8 Each vertex keeps a list of vertices it is

connected to.CS314 Graphs 21

Page 22: Graphs Topic 21

Graph Implementationpublic class Graph

private static final double INFINITY = Double.MAX_VALUE;

private Map<String, Vertex> vertices;

public Graph() // create empty Graph

public void addEdge(String source, String dest, double cost)

// find all paths from given vertexpublic void findUnweightedShortestPath

(String startName)

// called after findUnweightedShortestPathpublic void printPath(String destName)

Page 23: Graphs Topic 21

Graph Class8 This Graph class stores vertices8 Each vertex has an adjacency list

– what vertices does it connect to?8 shortest path method finds all paths from

start vertex to every other vertex in graph8 after shortest path method called queries can

be made for path length from start node to destination node

CS314 Graphs 23

Page 24: Graphs Topic 21

Vertex Class (nested in Graph)

CS314 Graphs 24

private static class Vertexprivate String name;private List<Edge> adjacent;

public Vertex(String n)

// for shortest path algorithmsprivate double distance;private Vertex prev; private int scratch;

// call before finding new pathspublic void reset()

Page 25: Graphs Topic 21

Edge Class (nested in Graph)

CS314 Graphs 25

private static class Edgeprivate Vertex dest;private double cost;

private Edge(Vertex d, double c)

Page 26: Graphs Topic 21

Unweighted Shortest Path8Given a vertex, S (for start) find the shortest

path from S to all other vertices in the graph8Graph is unweighted (set all edge costs to 1)

CS314 Graphs 26

S

V5V3

V1 V6

V4

V2

V7

V8

Page 27: Graphs Topic 21

Word Ladders8 Agree upon dictionary8 Start word and end word of

same length8Change one letter at a time to

form step8 Step must also be a word8 Example: Start = silly, end =

funny

CS314 Graphs 27

sillysullysulkyhulkyhunkyfunkyfunny

Page 28: Graphs Topic 21

Graph Representation8What are the vertices and when does

an edge exist between two vertices?

Vertices EdgesA. Letters WordsB. Words Words that share one or more

lettersC. Letters Words that share one or more

lettersD. Words Words that differ by one letterE. Words Letters

CS314 Graphs 28

Page 29: Graphs Topic 21

CS314 Graphs 29

smart

swart

start

smarm

smalt

scart

Portion of Graph

Page 30: Graphs Topic 21

Size of Graph8 Number of vertices and edges depends on dictionary8 Modified Scrabble dictionary, 5 letter words8 Words are vertices

– 8660 words8 Edge exists between word if they are one letter

different– 24,942 edges

Is this graph sparse or dense?A. SparseB. Dense

CS314 Graphs 30

Max number of edges = N * (N - 1) / 237,493,470

Page 31: Graphs Topic 21

Unweighted Shortest Path Algorithm8 Problem: Find the shortest word ladder

between two words if one exists8What kind of search should we use?

A. Breadth First SearchB. Depth First SearchC. Either one

CS314 Graphs 31

Page 32: Graphs Topic 21

Unweighted Shortest Path Algorithm8 Set distance of start to itself to 08Create a queue and add the start vertex8while the queue is not empty

– remove front – loop through all edges of current vertex

• get node edge connects to• if this node has not been visited

– sets its distance to current distance + 1– sets its previous node to current node– add new node to queue

CS314 Graphs 32

Page 33: Graphs Topic 21

CS314 Graphs 33

smart

swart

start

smarm

smalt

scart

Portion of Graph

Page 34: Graphs Topic 21

CS314 Graphs 34

smart

swart

start

smarm

smalt

scart

Start at "smart" and enqueue it[smart]

Page 35: Graphs Topic 21

CS314 Graphs 35

smart

swart

start

smarm

smalt

scart

Dequeue (smart), loop through edges[swart]

Page 36: Graphs Topic 21

CS314 Graphs 36

smart

swart

start

smarm

smalt

scart

Dequeue (smart), loop through edges[swart, start]

Page 37: Graphs Topic 21

CS314 Graphs 37

smart

swart

start

smarm

smalt

scart

Dequeue (smart), loop through edges[swart, start, scart]

Page 38: Graphs Topic 21

CS314 Graphs 38

smart

swart

start

smarm

smalt

scart

Dequeue (smart), loop through edges[swart, start, scart, smalt]

Page 39: Graphs Topic 21

CS314 Graphs 39

smart

swart

start

smarm

smalt

scart

Dequeue (smart), loop through edges[swart, start, scart, smalt, smarm]

Page 40: Graphs Topic 21

CS314 Graphs 40

smart

swart

start

smarm

smalt

scart

Done with smart, dequeue (swart)[start, scart, smalt, smarm]

Page 41: Graphs Topic 21

CS314 Graphs 41

smart

swart

start

smarm

smalt

scart

loop through edges of swart (start already present)[start, scart, smalt, smarm]

Page 42: Graphs Topic 21

CS314 Graphs 42

smart

swart

start

smarm

smalt

scart

loop through edges of swart (scart already present)[start, scart, smalt, smarm]

Page 43: Graphs Topic 21

CS314 Graphs 43

smart

swart

start

smarm

smalt

scart

loop through edges of swart[start, scart, smalt, smarm, swarm]

swarm

Page 44: Graphs Topic 21

CS314 Graphs 44

smart

swart

start

smarm

smalt

scart

loop through edges of swart[start, scart, smalt, smarm, swarm, sware]

swarm

sware

Page 45: Graphs Topic 21

Unweighted Shortest Path8 Implement method8 demo8 how is path printed?8 The diameter of a graph is the longest

shortest past in the graph8How to find?8How to find center of graph?

– vertex connected to the largest number of other vertices with the shortest average path length

CS314 Graphs 45

Page 46: Graphs Topic 21

Positive Weighted Shortest Path8 Edges in graph are weighted and all weights

are positive8 Similar solution to unweighted shortest path8Dijkstra's algorithhm8 Edsger W. Dijkstra (1930–2002)8UT Professor 1984 - 20008 Algorithm developed in 1956

and published in 1959.

CS314 Graphs 46

Page 47: Graphs Topic 21

Dijkstra's Algorithm8 Pick the start vertex8 Set the cost of the start vertex to 0 and all other

vertices to INFINITY8 While there are unvisited vertices:

– Let the current vertex be the lowest cost vertex that has not yet been visited

– mark current vertex as visited– for each edge from the current vertex

• if the sum of the cost of the current vertex and the cost of the edge is less than the cost of the destination vertex

– update the cost of the destination vertex– set the previous of the destination vertex to the current vertex

47

Page 48: Graphs Topic 21

Dijkstra's Algorithm8 Example of a Greedy Algorithm

– A Greedy Algorithm does what appears to be the best thing at each stage of solving a problem

8Gives best solution in Dijkstra's Algorithm8Does NOT always lead to best answer8 Fair teams:

– (10, 10, 8, 8, 8), 2 teams8Making change with fewest coins

(1, 5, 10) 15 cents(1, 5, 12) 15 cents

CS314 Graphs 48

Page 49: Graphs Topic 21

49

A

B

C

F

DE

G

1

3

3

214

6

17 5

7

What is the lowest cost path from A to E?A. 3B. 17C. 20D. 28E. 37

Page 50: Graphs Topic 21

50

A

B

C

F

DE

G

1

3

3

214

6

17 5

7

A is start vertexSet cost of A to 0, all others to INFINITYPlace A in a priority queue

Page 51: Graphs Topic 21

51

A

B

C

F

DE

G

1

3

3

214

6

17 5

7

[(A,0)] pqdequeue (A,0)Mark A as visited

Page 52: Graphs Topic 21

52

A

B

C

F

DE

G

1

3

3

214

6

17 5

7

[ ] pqcurrent vertex A:loop through A's edgesif sum of cost from A to edge is less than current cost

update cost and prev

Page 53: Graphs Topic 21

53

A

B

C

F

DE

G

1

3

3

214

6

17 5

7

[ ] pqA -> B, 0 + 1 < INFINITY[(B,1)] pq

Page 54: Graphs Topic 21

54

A

B

C

F

DE

G

1

3

3

214

6

17 5

7

[(B,1)] pqA -> C, 0 + 7 < INFINITY[(B,1), (C, 7)] pq

Page 55: Graphs Topic 21

55

A

B

C

F

DE

G

1

3

3

214

6

17 5

7

[(B,1), (C, 7)] pqA -> G, 0 + 17 < INFINITY[(B,1), (C, 7), (G, 17)] pq

Page 56: Graphs Topic 21

56

A

B

C

F

DE

G

1

3

3

214

6

17 5

7

[(B,1), (C, 7), (G, 17)] pqcurrent vertex B:loop through B's edgesif sum of cost from B to edge is less than current cost

update cost and prev

Page 57: Graphs Topic 21

57

A

B

C

F

DE

G

1

3

3

214

6

17 5

7

[(C, 7), (G, 17)] pqB -> C, 1 + 3 < 7update C's cost and previous[(C, 4), (C, 7), (G, 17)] pq

Page 58: Graphs Topic 21

58

A

B

C

F

DE

G

1

3

3

214

6

17 5

7

[(C, 4), (C, 7), (G, 17)] pqB -> D, 1 + 21 < INFINITY[(C, 4), (C, 7), (G, 17), (D, 22)] pq

Page 59: Graphs Topic 21

59

A

B

C

F

DE

G

1

3

3

214

6

17 5

7

[(C, 4), (C, 7), (G, 17), (D, 22)] pqcurrent vertex is C, cost 4loop through C's edges

Page 60: Graphs Topic 21

60

A

B

C

F

DE

G

1

3

3

214

6

17 5

7

[(C, 7), (G, 17), (D, 22)] pqC -> A, A already visited so skip

Page 61: Graphs Topic 21

61

A

B

C

F

DE

G

1

3

3

214

6

17 5

7

[(C, 7), (G, 17), (D, 22)] pqC -> B, B already visited so skip

Page 62: Graphs Topic 21

62

A

B

C

F

DE

G

1

3

3

214

6

17 5

7

[(C, 7), (G, 17), (D, 22)] pqC -> F, 4 + 3 < INFINITY[(C, 7), (F, 7), (G, 17), (D, 22)] pq

Page 63: Graphs Topic 21

63

A

B

C

F

DE

G

1

3

3

214

6

17 5

7

[(C, 7), (F, 7), (G, 17), (D, 22)] pqcurrent vertex is CAlready visited so skip

Page 64: Graphs Topic 21

64

A

B

C

F

DE

G

1

3

3

214

6

17 5

7

[(F, 7), (G, 17), (D, 22)] pqcurrent vertex is Floop through F's edges

Page 65: Graphs Topic 21

65

A

B

C

F

DE

G

1

3

3

214

6

17 5

7

[(G, 17), (D, 22)] pqF -> C, already visited so skip

Page 66: Graphs Topic 21

66

A

B

C

F

DE

G

1

3

3

214

6

17 5

7

[(G, 17), (D, 22)] pqF -> D, 7 + 4 < 22update D's cost and previous[(D, 11), (G, 17), (D, 22)] pq

Page 67: Graphs Topic 21

67

A

B

C

F

DE

G

1

3

3

214

6

17 5

7

[(D, 11), (G, 17), (D, 22)] pqcurrent vertex is Dloop through D's edges

Page 68: Graphs Topic 21

68

A

B

C

F

DE

G

1

3

3

214

6

17 5

7

[(G, 17), (D, 22)] pqD -> B, already visited so skip

Page 69: Graphs Topic 21

69

A

B

C

F

DE

G

1

3

3

214

6

17 5

7

[(G, 17), (D, 22)] pqD -> E, 11 + 6 < INFINITYupdate E's cost and previous[(G, 17), (E, 17), (D, 22)] pq

Page 70: Graphs Topic 21

70

A

B

C

F

DE

G

1

3

3

214

6

17 5

7

[ (G, 17), (E, 17), (D, 22)] pqD -> F, already visited so skip

Page 71: Graphs Topic 21

71

A

B

C

F

DE

G

1

3

3

214

6

17 5

7

[(G, 17), (E, 17), (D, 22)] pqD -> G, 11 + 5 < 17update G's cost and previous[(G, 16), (G, 17), (E, 17), (D, 22)] pq

Page 72: Graphs Topic 21

72

A

B

C

F

DE

G

1

3

3

214

6

17 5

7

[(G, 17), (E, 17), (D, 22)] pqcurrent vertex is Gloop though edges, already visited all neighbors

Page 73: Graphs Topic 21

73

A

B

C

F

DE

G

1

3

3

214

6

17 5

7

[(E, 17), (D, 22)] pqcurrent vertex is Eloop though edges, already visited all neighbors

Page 74: Graphs Topic 21

74

A

B

C

F

DE

G

1

3

3

214

6

17 5

7

No unvisited vertices.Done.

Page 75: Graphs Topic 21

Implementing Dijkstra's8Create a Path class to allow for multiple

distances to a given vertexprivate static class Path

implements Comparable<Path> {

private Vertex dest;private double cost;

8Use a priority queue of Paths to store the vertices and distances

CS314 Graphs 75

Page 76: Graphs Topic 21

Alternatives to Dijkstra's Algorithm 8 A*, pronounced "A Star"8 A heuristic, goal of finding shortest weighted path

from single start vertex to goal vertex8 Uses actual distance like Dijkstra's but also

estimates remaining cost or distance– distance is set to current distance from start PLUS the

estimated distance to the goal8 For example when finding a path between towns,

estimate the remaining distance as the straight-line (as the crow files) distance between current location and goal.

CS314 Graphs 76

Page 77: Graphs Topic 21

Spanning Tree8 Spanning Tree: A tree of edges that connects

all the vertices in a graph

A

B

C

F

DE

G

1

3

3

214

6

17 5

7

Page 78: Graphs Topic 21

Minimum Spanning Tree8Minimum Spanning Tree: A spanning tree in

a weighted graph with the lowest total cost8 used in network design, taxonomy, Image registration,

and more!

78

A

B

C

F

DE

G

1

3

3

214

6

17 5

7Cost of spanningtree shown?A. 6B. 7C. 29D. 61E. None of These

Page 79: Graphs Topic 21

Prim's Algorithm8 Pick a vertex arbitrarily from graph

– In other words, it doesn't matter which one8 Add lowest cost edge between the tree and a

vertex that is not part of the graph UNTIL every vertex is part of the tree

8Greedy Algorithm, very similar to Dijkstra's

CS314 Graphs 79

Page 80: Graphs Topic 21

Prim's Algorithm

CS314 Graphs 80

A B

C

F

D E

G

2 311

2

7

6

2

1

4

Pick D as root

5 8 4

Page 81: Graphs Topic 21

Prim's Algorithm

CS314 Graphs 81

A B

C

F

D E

G

2 311

2

7

6

2

1

4

Lowest cost edge from tree to vertex not in Tree?2 from D to A (or C)

5 8 4

Page 82: Graphs Topic 21

Prim's Algorithm

CS314 Graphs 82

A B

C

F

D E

G

2 311

2

7

6

2

1

4

Lowest cost edge from tree to vertex not in Tree?2 from D to C (OR from A o B)

5 8 4

Page 83: Graphs Topic 21

Prim's Algorithm

CS314 Graphs 83

A B

C

F

D E

G

2 311

2

7

6

2

1

4

Lowest cost edge from tree to vertex not in Tree?2 from A to B

5 8 4

Page 84: Graphs Topic 21

Prim's Algorithm

CS314 Graphs 84

A B

C

F

D E

G

2 311

2

7

6

2

1

4

Lowest cost edge from tree to vertex not in Tree?5 from D to G

5 8 4

Page 85: Graphs Topic 21

Prim's Algorithm

CS314 Graphs 85

A B

C

F

D E

G

2 311

2

7

6

2

1

4

Lowest cost edge from tree to vertex not in Tree?1 from G to F

5 8 4

Page 86: Graphs Topic 21

Prim's Algorithm

CS314 Graphs 86

A B

C

F

D E

G

2 311

2

7

6

2

1

4

Lowest cost edge from tree to vertex not in Tree?6 from G to E

5 8 4

Page 87: Graphs Topic 21

Prim's Algorithm

CS314 Graphs 87

A

B

C

F

DE

G

1

3

3

214

6

17 5

7

Pick D as root

Page 88: Graphs Topic 21

Prim's Algorithm

CS314 Graphs 88

A

B

C

F

DE

G

1

3

3

214

6

17 5

7

Lowest cost edge from tree to vertex not in Tree?4 from D to F

Page 89: Graphs Topic 21

Prim's Algorithm

CS314 Graphs 89

A

B

C

F

DE

G

1

3

3

214

6

17 5

7

Lowest cost edge from tree to vertex not in Tree?3 from F to C

Page 90: Graphs Topic 21

Prim's Algorithm

CS314 Graphs 90

A

B

C

F

DE

G

1

3

3

214

6

17 5

7

Lowest cost edge from tree to vertex not in Tree?3 from C to B

Page 91: Graphs Topic 21

Prim's Algorithm

CS314 Graphs 91

A

B

C

F

DE

G

1

3

3

214

6

17 5

7

Lowest cost edge from tree to vertex not in Tree?1 from B to A

Page 92: Graphs Topic 21

Prim's Algorithm

CS314 Graphs 92

A

B

C

F

DE

G

1

3

3

214

6

17 5

7

Lowest cost edge from tree to vertex not in Tree?5 from D to G

Page 93: Graphs Topic 21

Prim's Algorithm

CS314 Graphs 93

A

B

C

F

DE

G

1

3

3

214

6

17 5

7

Lowest cost edge from tree to vertex not in Tree?6 from D to E

Page 94: Graphs Topic 21

Prim's Algorithm

CS314 Graphs 94

A

B

C

F

DE

G

1

3

3

214

6

17 5

7

Cost of Spanning Tree?

Page 95: Graphs Topic 21

Other Graph Algorithms8 Lots!8 http://en.wikipedia.org/wiki/Category:Graph_algorithms

CS314 Graphs 95