cs 401 computer algorithm i
play

CS 401: Computer Algorithm I BFS Xiaorui Sun 1 This course - PowerPoint PPT Presentation

CS 401: Computer Algorithm I BFS Xiaorui Sun 1 This course Grading Scheme Homework ~ 50% ( Five problem sets due on Wed 4pm) Midterm ~ 20% Final ~ 30% Submit through GradeScope


  1. CS 401: Computer Algorithm I BFS Xiaorui Sun 1

  2. This course Grading Scheme • Homework ~ 50% ( Five problem sets due on Wed 4pm) • Midterm ~ 20% • Final ~ 30% • Submit through GradeScope (https://www.gradescope.com/courses/169509) • Ask question in the class • Use Blackboard raise hand function • All the lectures will be recorded (watch through Blackboard) • Read the textbook! (Algorithm Design by Kleinberg and Tardos) • Website: http://www.cs.uic.edu/~xiaorui/cs401 • Lecture slides, homework • Piazza: piazza.com/uic/fall2020/2020fallcs40141675 • Announcements, online discussion forum • TA will answer course related questions • Office hours: • Myself: Fri 2pm-4pm • Wenyu Jin: Tue 10am-12pm (wjin9@uic.edu) 2

  3. Administrativia Stuffs • Homework 1 is out (due Sep 23) Guidelines: • You can collaborate, but you must write solutions on your own • Your algorithms/proofs should be clear, well-organized, and concise. Spell out main idea. • Sanity Check: Make sure you use assumptions of the problem • You CANNOT search the solution online. • Late homework will be penalized at a rate of 10% of the initial grade per late day. • Correctness proofs of ALGORITHMS are NOT REQUIRED, but you are encouraged to prove the correctness. • Example: stable matching 3

  4. Recap: Undirected graph Notation. G = (V, E) • V = nodes (or vertices) • E = edges between pairs of nodes • Captures pairwise relationship between objects • Graph size parameters: n = |V|, m = |E| Terminology: path, cycle, tree, degree, connected component

  5. #edges Let ! = ($, &) be a graph with ( = |$| vertices and * = & edges. . = - -/0 - = 1(( . ) Claim: 0 ≤ * ≤ . Pf: Since every edge connects two distinct vertices (i.e., G has no loops) and no two edges connect the same pair of vertices (i.e., G has no multi-edges) It has at most - . edges. 5

  6. Degree 1 vertices Claim: If G has no cycle, then it has a vertex of degree ≤ 1 (Every tree has a leaf) Proof: (By contradiction) Suppose every vertex has degree ≥ 2. Start from a vertex & ' and follow a path, & ' , … , & * when we are at & * we choose the next vertex to be different from & *+' . We can do so because deg & * ≥ 2. The first time that we see a repeated vertex ( & / = & * ) we get a cycle. We always get a repeated vertex because 2 has finitely many vertices & 4 & ' & 5 & 3 & 6 6

  7. Trees and Induction Claim: Show that every tree with ! vertices has ! − 1 edges. Proof: (Induction on ! .) Base Case: ! = 1 , the tree has no edge Inductive Step: Let % be a tree with ! vertices. So, % has a vertex & of degree 1 . Remove & and the neighboring edge, and let %’ be the new graph. We claim %’ is a tree: It has no cycle, and it must be connected. So, %’ has ! − 2 edges and % has ! − 1 edges. 7

  8. Graph Traversal Walk (via edges) from a fixed starting vertex ! to all vertices reachable from ! . • Breadth First Search (BFS): Order nodes in successive layers based on distance from ! • Depth First Search (DFS): More natural approach for exploring a maze; Applications of BFS: • Finding shortest path for unit-length graphs • Finding connected components of a graph • Testing bipartiteness 8

  9. Breadth First Search (BFS) Completely explore the vertices in order of their distance from ! . Three states of vertices: • Undiscovered • Discovered • Fully-explored Naturally implemented using a queue The queue will always have the list of Discovered vertices 9

  10. BFS algorithm Initialization: mark all vertices "undiscovered" BFS( ! ) mark ! discovered queue = { ! } while queue not empty " = remove_first(queue) for each edge {", %} if ( % is undiscovered) mark % discovered append % on queue mark " fully-explored 10

  11. BFS(1) 1 Queue: 1 2 3 4 6 7 9 5 11 12 10 8 13 11

  12. BFS(1) 1 Queue: 2 3 2 3 4 6 7 9 5 11 12 10 8 13 12

  13. BFS(1) 1 Queue: 3 4 2 3 4 6 7 9 5 11 12 10 8 13 13

  14. BFS(1) 1 Queue: 4 5 6 7 2 3 4 6 7 9 5 11 12 10 8 13 14

  15. BFS(1) 1 Queue: 5 6 7 8 9 2 3 4 6 7 9 5 11 12 10 8 13 15

  16. BFS(1) 1 Queue: 7 8 9 10 2 3 4 6 7 9 5 11 12 10 8 13 16

  17. BFS(1) 1 Queue: 8 9 10 11 2 3 4 6 7 9 5 11 12 10 8 13 17

  18. BFS(1) 1 Queue: 9 10 11 12 13 2 3 4 6 7 9 5 11 12 10 8 13 18

  19. BFS(1) 1 Queue: 2 3 4 6 7 9 5 11 12 10 8 13 19

  20. Graph representation Adjacency matrix. n-by-n matrix with A uv = 1 if (u, v) is an edge. • Space proportional to n 2 . • Checking if (u, v) is an edge takes Q (1) time. • Identifying all edges takes Q (n 2 ) time.

  21. BFS Analysis Initialization: mark all vertices "undiscovered" Graph representation: adjacency matrix BFS( ! ) mark ! discovered O(n) times: At most once per vertex queue = { ! } while queue not empty O(n) times: " = remove_first(queue) Check every vertex % for each edge {", %} if ( % is undiscovered) mark % discovered append % on queue mark " fully-explored Overall: O(n 2 ) time 21

  22. Graph representation Adjacency list. Node indexed array of lists. • Space proportional to m+n. • Checking if (u, v) is an edge takes O (deg(u)) time. • Identifying all edges takes Q (m+n) time.

  23. BFS Analysis Initialization: mark all vertices "undiscovered" Graph representation: adjacency list BFS( ! ) mark ! discovered O(n) times: At most once per vertex queue = { ! } while queue not empty O(deg( " )) times: " = remove_first(queue) At most twice per edge for each edge {", %} if ( % is undiscovered) mark % discovered append % on queue mark " fully-explored Overall: O(n+m) time 23

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