chapter 3 2 3 4 spanning tree algorithms
play

Chapter 3.23.4 Spanning Tree Algorithms Prof. Tesler Math 154 - PowerPoint PPT Presentation

Chapter 3.23.4 Spanning Tree Algorithms Prof. Tesler Math 154 Winter 2020 Prof. Tesler Ch. 3.23.4: Spanning Tree Algorithms Math 154 / Winter 2020 1 / 56 Depth 4 Depth 0 Depth 1 3 8 5 6 2 Depth 2 7 10 9 1 Depth 3 The


  1. Chapter 3.2–3.4 Spanning Tree Algorithms Prof. Tesler Math 154 Winter 2020 Prof. Tesler Ch. 3.2–3.4: Spanning Tree Algorithms Math 154 / Winter 2020 1 / 56

  2. Depth 4 Depth 0 Depth 1 3 8 5 6 2 Depth 2 7 10 9 1 Depth 3 The depth of v is the length of the path from the root to v . The height of the tree is the maximum depth. Prof. Tesler Ch. 3.2–3.4: Spanning Tree Algorithms Math 154 / Winter 2020 2 / 56

  3. Ordered trees 4 4 3 8 8 3 5 6 6 5 2 2 7 10 9 7 10 9 1 1 An ordered tree puts the children of each node into a specific order (pictorially represented as left-to-right). The diagrams shown above are the same as unordered trees , but are different as ordered trees . We’ll be looking at graphs and trees drawn in other ways; there will be other orderings besides left-to-right. Prof. Tesler Ch. 3.2–3.4: Spanning Tree Algorithms Math 154 / Winter 2020 3 / 56

  4. Depth first search of a tree Prof. Tesler Ch. 3.2–3.4: Spanning Tree Algorithms Math 154 / Winter 2020 4 / 56

  5. Depth first search of a tree We will number the vertices by a depth first search (DFS), also called a depth first traversal . Prof. Tesler Ch. 3.2–3.4: Spanning Tree Algorithms Math 154 / Winter 2020 5 / 56

  6. Depth first search of a tree 1 Start at the root r (the top vertex in this diagram), and assign it the number 1 . Prof. Tesler Ch. 3.2–3.4: Spanning Tree Algorithms Math 154 / Winter 2020 6 / 56

  7. Depth first search of a tree 1 2 Visit 1 ’s first child (in left-to-right order), and assign it the number 2 . Prof. Tesler Ch. 3.2–3.4: Spanning Tree Algorithms Math 154 / Winter 2020 7 / 56

  8. Depth first search of a tree 1 2 3 Visit 2 ’s first child (in left-to-right order), and assign it the number 3 . Prof. Tesler Ch. 3.2–3.4: Spanning Tree Algorithms Math 154 / Winter 2020 8 / 56

  9. Depth first search of a tree 1 2 3 3 is a leaf, with no children! We explored as far as possible, but now have to backtrack to explore more. Back up how we came until a vertex ( 2 ) with at least one unnumbered child. Prof. Tesler Ch. 3.2–3.4: Spanning Tree Algorithms Math 154 / Winter 2020 9 / 56

  10. Depth first search of a tree 1 2 3 4 The next child of 2 is numbered 4 . Continue going down this branch, choosing the leftmost option available. Prof. Tesler Ch. 3.2–3.4: Spanning Tree Algorithms Math 154 / Winter 2020 10 / 56

  11. Depth first search of a tree 1 2 3 4 5 Visit 4 ’s first child and assign it the number 5 . Prof. Tesler Ch. 3.2–3.4: Spanning Tree Algorithms Math 154 / Winter 2020 11 / 56

  12. Depth first search of a tree 1 2 3 4 5 6 5 has no children. Back up to the first vertex ( 4 ) that has a child not yet numbered. Assign the first remaining child the number 6 . Prof. Tesler Ch. 3.2–3.4: Spanning Tree Algorithms Math 154 / Winter 2020 12 / 56

  13. Depth first search of a tree 1 2 3 4 5 6 7 6 has no children. Back up to the first vertex ( 4 ) that has a child not yet numbered. Assign the first remaining child the number 7 . Prof. Tesler Ch. 3.2–3.4: Spanning Tree Algorithms Math 154 / Winter 2020 13 / 56

  14. Depth first search of a tree 1 2 3 4 8 5 6 7 7 has no children. Back up to the first vertex ( 2 ) that has a child not yet numbered. Assign the first remaining child the number 8 . Prof. Tesler Ch. 3.2–3.4: Spanning Tree Algorithms Math 154 / Winter 2020 14 / 56

  15. Depth first search of a tree 1 2 9 10 3 4 8 11 12 5 6 7 13 14 15 16 Continue in this fashion until all vertices are numbered. Prof. Tesler Ch. 3.2–3.4: Spanning Tree Algorithms Math 154 / Winter 2020 15 / 56

  16. Breadth first search of a tree Prof. Tesler Ch. 3.2–3.4: Spanning Tree Algorithms Math 154 / Winter 2020 16 / 56

  17. Breadth first search of a tree 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 While depth first search explores as deep as possible, Breadth first search (BFS) works one layer (depth) at a time. Depth 0: Number the root 1 . Depth 1: Consecutively number all neighbors of 1 . Depth 2: The depth 2 elements are all the neighbors of the depth 1 elements not yet accounted for. Number them consecutively. Continue in this way for depth 3 , 4 , etc. Prof. Tesler Ch. 3.2–3.4: Spanning Tree Algorithms Math 154 / Winter 2020 17 / 56

  18. Breadth first search of a tree Depth first search Breadth first search 1 1 2 3 4 2 9 10 5 6 7 8 9 3 4 8 11 12 10 11 12 13 14 15 16 5 6 7 13 14 15 16 Prof. Tesler Ch. 3.2–3.4: Spanning Tree Algorithms Math 154 / Winter 2020 18 / 56

  19. Depth first search (DFS) in a connected graph Prof. Tesler Ch. 3.2–3.4: Spanning Tree Algorithms Math 154 / Winter 2020 19 / 56

  20. Depth first search (DFS) in a connected graph j i f g h d e c b a For trees, we showed the root at the top, and children below in left-to-right order. That doesn’t apply for arbitrary graph drawings. Prof. Tesler Ch. 3.2–3.4: Spanning Tree Algorithms Math 154 / Winter 2020 20 / 56

  21. Depth first search (DFS) in a connected graph j i f g h d e c b a Set up a counter: time = 0 We’ll keep adding 1 to it as we number the vertices. Pick starting vertex: a The starting vertex can be any vertex; a is just an example. You may get a different tree, depending on where you start. This takes the place of the root in a rooted tree. In some applications, it’s called the source . Prof. Tesler Ch. 3.2–3.4: Spanning Tree Algorithms Math 154 / Winter 2020 21 / 56

  22. Depth first search (DFS) in a connected graph j i f g h d e c b 1 a Current vertex: u = a Color u red: a is discovered Time stamp u : T ( a ) = time = 1 Neighbors of u : b , d , e (we’ll use alphabetical order) 1 st undiscovered neighbor: v = b Draw red edge { u , v } : { a , b } Continue exploring: DFS(b) Prof. Tesler Ch. 3.2–3.4: Spanning Tree Algorithms Math 154 / Winter 2020 22 / 56

  23. Depth first search (DFS) in a connected graph j i f g h d e c 2 b 1 a Current vertex: u = b Color u red: b is discovered Time stamp u : T ( b ) = time = 2 Neighbors of u : a , c 1 st undiscovered neighbor: v = c Draw red edge { u , v } : { b , c } Continue exploring: DFS(c) Prof. Tesler Ch. 3.2–3.4: Spanning Tree Algorithms Math 154 / Winter 2020 23 / 56

  24. Depth first search (DFS) in a connected graph j i f g h d e 3 c 2 b 1 a Current vertex: u = c Color u red: c is discovered Time stamp u : T ( c ) = time = 3 Neighbors of u : b , f , h 1 st undiscovered neighbor: v = f Draw red edge { u , v } : { c , f } Continue exploring: DFS(f) Prof. Tesler Ch. 3.2–3.4: Spanning Tree Algorithms Math 154 / Winter 2020 24 / 56

  25. Depth first search (DFS) in a connected graph j Skipping ahead a few steps . . . 5 i f g h 4 6 d e 3 c 2 b 1 a Current vertex: u = g Color u red: g is discovered Time stamp u : T ( g ) = time = 6 Neighbors of u : d , e , j 1 st undiscovered neighbor: v = d Draw red edge { u , v } : { g , d } Continue exploring: DFS(d) Prof. Tesler Ch. 3.2–3.4: Spanning Tree Algorithms Math 154 / Winter 2020 25 / 56

  26. Depth first search (DFS) in a connected graph j 5 i f g h 4 6 d e 3 7 c 2 b 1 a Current vertex: u = d Color u red: d is discovered Time stamp u : T ( d ) = time = 7 Neighbors of u : a , f , g But all neighbors of u have already been discovered! Backtrack to find a vertex ( g ) with an undiscovered neighbor. Prof. Tesler Ch. 3.2–3.4: Spanning Tree Algorithms Math 154 / Winter 2020 26 / 56

  27. Depth first search (DFS) in a connected graph j 5 i f g h 4 6 d e 3 7 c 2 b 1 a Current vertex: u = g Neighbors of u : d , e , j 1 st undiscovered neighbor: v = e { g , e } Draw red edge { u , v } : Continue exploring: DFS(e) Prof. Tesler Ch. 3.2–3.4: Spanning Tree Algorithms Math 154 / Winter 2020 27 / 56

  28. Depth first search (DFS) in a connected graph j 5 i f g h 4 6 d e 3 7 8 c 2 b 1 a Current vertex: u = e Color u red: e is discovered Time stamp u : T ( e ) = time = 8 Neighbors of u : a , g , h 1 st undiscovered neighbor: v = h Draw red edge { u , v } : { e , h } Continue exploring: DFS(h) Prof. Tesler Ch. 3.2–3.4: Spanning Tree Algorithms Math 154 / Winter 2020 28 / 56

  29. Depth first search (DFS) in a connected graph j 5 i f g h 4 6 9 d e 3 7 8 c 2 b 1 a Current vertex: u = h Color u red: h is discovered Time stamp u : T ( h ) = time = 9 Neighbors of u : c , e , i 1 st undiscovered neighbor: v = i Draw red edge { u , v } : { h , i } Continue exploring: DFS(i) Prof. Tesler Ch. 3.2–3.4: Spanning Tree Algorithms Math 154 / Winter 2020 29 / 56

  30. Depth first search (DFS) in a connected graph j 5 i 10 f g h 4 6 9 d e 3 7 8 c 2 b 1 a Current vertex: u = i Color u red: i is discovered Time stamp u : T ( i ) = time = 10 Neighbors of u : h , j All neighbors are already discovered. Backtracking doesn’t give any new branch, so we’re done. Prof. Tesler Ch. 3.2–3.4: Spanning Tree Algorithms Math 154 / Winter 2020 30 / 56

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend