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

Recommend


More recommend