informatik ii
play

Informatik II Ubung 10 FS 2019 1 Program Today Repetition - PowerPoint PPT Presentation

Informatik II Ubung 10 FS 2019 1 Program Today Repetition Lectures: Adjacency Lists 1 Breadth-First-Search BFS 2 In-Class-Exercise 3 2 Adjacency List class Graph { // G = (V,E) as adjacency list private int V; // number of vertices


  1. Informatik II ¨ Ubung 10 FS 2019 1

  2. Program Today Repetition Lectures: Adjacency Lists 1 Breadth-First-Search BFS 2 In-Class-Exercise 3 2

  3. Adjacency List class Graph { // G = (V,E) as adjacency list private int V; // number of vertices private ArrayList<LinkedList<Integer>> adj; // adj. list // Constructor public Graph(int n) { V = n; adj = new ArrayList<LinkedList<Integer>>(V); for (int i=0; i<V; ++i) adj.add(i,new LinkedList<Integer>()); } // Edge adder method public void addEdge(int u,int v) { adj.get(u).add(v); } } 3

  4. Adjacency List Properties: ArrayList Get element in constant time. LinkedList Add element in constant time. Iterate over whole list in linear time. 4

  5. Adjacency List Properties: ArrayList Get element in constant time. LinkedList Add element in constant time. Iterate over whole list in linear time. - addEdge(u,v) = adj.get(u).add(v) runs in constant time O (1) . 4

  6. Adjacency List Properties: ArrayList Get element in constant time. LinkedList Add element in constant time. Iterate over whole list in linear time. - addEdge(u,v) = adj.get(u).add(v) runs in constant time O (1) . - for (int v : adj.get(u)) runs in time O (deg + ( u )) . 4

  7. Runtimes of simple Operations Operation Matrix List Find neighbours/successors of v ∈ V find v ∈ V without neighbour/successor ( u, v ) ∈ E ? Insert edge Delete edge 5

  8. Runtimes of simple Operations Operation Matrix List Find neighbours/successors of v ∈ V Θ( n ) find v ∈ V without neighbour/successor ( u, v ) ∈ E ? Insert edge Delete edge 5

  9. Runtimes of simple Operations Operation Matrix List Θ(deg + v ) Find neighbours/successors of v ∈ V Θ( n ) find v ∈ V without neighbour/successor ( u, v ) ∈ E ? Insert edge Delete edge 5

  10. Runtimes of simple Operations Operation Matrix List Θ(deg + v ) Find neighbours/successors of v ∈ V Θ( n ) Θ( n 2 ) find v ∈ V without neighbour/successor ( u, v ) ∈ E ? Insert edge Delete edge 5

  11. Runtimes of simple Operations Operation Matrix List Θ(deg + v ) Find neighbours/successors of v ∈ V Θ( n ) Θ( n 2 ) find v ∈ V without neighbour/successor Θ( n ) ( u, v ) ∈ E ? Insert edge Delete edge 5

  12. Runtimes of simple Operations Operation Matrix List Θ(deg + v ) Find neighbours/successors of v ∈ V Θ( n ) Θ( n 2 ) find v ∈ V without neighbour/successor Θ( n ) ( u, v ) ∈ E ? Θ(1) Insert edge Delete edge 5

  13. Runtimes of simple Operations Operation Matrix List Θ(deg + v ) Find neighbours/successors of v ∈ V Θ( n ) Θ( n 2 ) find v ∈ V without neighbour/successor Θ( n ) Θ(deg + v ) ( u, v ) ∈ E ? Θ(1) Insert edge Delete edge 5

  14. Runtimes of simple Operations Operation Matrix List Θ(deg + v ) Find neighbours/successors of v ∈ V Θ( n ) Θ( n 2 ) find v ∈ V without neighbour/successor Θ( n ) Θ(deg + v ) ( u, v ) ∈ E ? Θ(1) Insert edge Θ(1) Delete edge 5

  15. Runtimes of simple Operations Operation Matrix List Θ(deg + v ) Find neighbours/successors of v ∈ V Θ( n ) Θ( n 2 ) find v ∈ V without neighbour/successor Θ( n ) Θ(deg + v ) ( u, v ) ∈ E ? Θ(1) Insert edge Θ(1) Θ(1) Delete edge 5

  16. Runtimes of simple Operations Operation Matrix List Θ(deg + v ) Find neighbours/successors of v ∈ V Θ( n ) Θ( n 2 ) find v ∈ V without neighbour/successor Θ( n ) Θ(deg + v ) ( u, v ) ∈ E ? Θ(1) Insert edge Θ(1) Θ(1) Θ(1) Delete edge 5

  17. Runtimes of simple Operations Operation Matrix List Θ(deg + v ) Find neighbours/successors of v ∈ V Θ( n ) Θ( n 2 ) find v ∈ V without neighbour/successor Θ( n ) Θ(deg + v ) ( u, v ) ∈ E ? Θ(1) Insert edge Θ(1) Θ(1) Θ(deg + v ) Θ(1) Delete edge 5

  18. Breadth-First-Search BFS BFS starting from a : BFS-Tree: Distances and Parents a a distance 0 a c b e b d e f d c f g h i 6

  19. Breadth-First-Search BFS BFS starting from a : BFS-Tree: Distances and Parents a a a distance 0 a a c b e e distance 1 b b d d e f d c f g h i 6

  20. Breadth-First-Search BFS BFS starting from a : BFS-Tree: Distances and Parents a a a distance 0 a a c b b e e distance 1 b b b d d e f d c c f distance 2 g h i 6

  21. Breadth-First-Search BFS BFS starting from a : BFS-Tree: Distances and Parents a a a distance 0 a a c b b e e distance 1 b b b d d d e f d d c c f distance 2 g h i 6

  22. Breadth-First-Search BFS BFS starting from a : BFS-Tree: Distances and Parents a a a distance 0 a a c b b e e e distance 1 b b b d d d e e f d d c c f f distance 2 g h i 6

  23. Breadth-First-Search BFS BFS starting from a : BFS-Tree: Distances and Parents a a a distance 0 a a c c b b e e e distance 1 b b b d d d e e f d d c c c f f distance 2 g h i 6

  24. Breadth-First-Search BFS BFS starting from a : BFS-Tree: Distances and Parents a a a distance 0 a a c c b b e e e distance 1 b b b d d d e e f f d d c c c f f f distance 2 g h i 6

  25. Quiz In how many ways can the following directed graphs be topologically sorted each? A B A B A B C D C D C D number sortings number sortings number sortings ? ? ? 7

  26. Quiz In how many ways can the following directed graphs be topologically sorted each? A B A B A B C D C D C D number sortings number sortings number sortings 2 1 0 7

  27. In-Class-Exercises: Route planning Exercise: You are given a directed, unweighted Graph G = ( V, E ) , represented by an adjacency list, and a designated node t ∈ V (e.g., an emergency exit). Design an algorithm, which computes for each node u ∈ V an outgoing edge in direction of a shortest path to t . and has a running time of O ( | V | + | E | ) . 8

  28. In-Class-Exercises: Route planning Solution: 1 Make a copy of the graph with edges having reverse direction: G T = ( V, E T ) , where E T = { ( v, u ) | ( u, v ) ∈ E } . Running time: O ( | V | + | E | ) . 2 Start a breadth-first search of G T , starting from t , and store all edges of the BFS-Tree. Running time: O ( | V | + | E T | ) = O ( | V | + | E | ) . 3 Assign the stored edges (in reverse direction) to the discovered nodes. Running time: O ( | V | ) . 9

  29. Questions / Suggestions? 10

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