CS 473: Algorithms Chandra Chekuri Ruta Mehta University of Illinois, Urbana-Champaign Fall 2016 Chandra & Ruta (UIUC) CS473 1 Fall 2016 1 / 19
CS 473: Algorithms, Fall 2016 Administrivia, Introduction Lecture 1 August 24, 2016 Chandra & Ruta (UIUC) CS473 2 Fall 2016 2 / 19
Part I Administrivia Chandra & Ruta (UIUC) CS473 3 Fall 2016 3 / 19
Instructional Staff Instructors: Chandra Chekuri and Ruta Mehta 1 Teaching Assistants: Shalmoli Gupta and Patrick Lin 2 Graders: TBD 3 Office hours: See course webpage 4 Email: Use private notes on Piazza to reach course staff. 5 Chandra & Ruta (UIUC) CS473 4 Fall 2016 4 / 19
Online resources Webpage: General information, lecture schedule/slides/notes, 1 homeworks, course policies courses.engr.illinois.edu/cs473 Gradescope: HW submission, grading, regrade requests 2 Moodle: HW solutions, grades 3 Piazza: Announcements, online questions and discussion, 4 contacting course staff (via private notes) See course webpage for links Important: check Piazza/course web page at least once each day Chandra & Ruta (UIUC) CS473 5 Fall 2016 5 / 19
Prerequisites Prerequisites: CS 173 (discrete math), CS 225 (data structures), 1 CS 374 (algorithms and models of computation) or sufficient mathematical maturity Concretely: 2 Good ability to write formal proofs of correctness 1 Comfort with recursive thinking/algorithms, reductions 2 Comfort with basic data structures: balanced binary search 3 trees, priority queues, heaps, etc. Basic graph algorithms: reachability (DFS/BFS), undirected vs 4 directed, strong connected components, shortest paths and Dijkstra’s algorithm, minimum spanning trees Probability: random variables, expectation, variance 5 Exposure to models of computation and NP-Completeness 6 (optional but will help) Chandra & Ruta (UIUC) CS473 6 Fall 2016 6 / 19
Textbooks and Resources Recommended books: (not required) 1 Algorithms by Dasgupta, Papadimitriou & Vazirani. 1 Available online for free! Algorithm Design by Kleinberg & Tardos 2 Lecture notes/slides/pointers: available on course web-page 2 Additional References 3 Lecture notes of Jeff Erickson, Sariel HarPeled, and others 1 Computers and Intractability: Garey and Johnson. 2 Chandra & Ruta (UIUC) CS473 7 Fall 2016 7 / 19
Grading Policy: Overview Homeworks: 25% 1 Midterms: 45% ( 2 × 22 . 5% ) 2 Finals: 30% (covers the full course content) 3 Midterms dates: Midterm 1: Mon, Oct 3, 7–9pm, 1320 DCL 1 Midterm 2: Mon, Nov 7, 7–9pm, 1320 DCL 2 Final Exam: Fri, Dec 9 (TENTATIVE) 3 No conflict exam offered unless you have a valid reason (see course webpage). Chandra & Ruta (UIUC) CS473 8 Fall 2016 8 / 19
Homeworks One homework every week: Due on Tuesdays at 8pm. To be 1 submitted electronically in pdf form in Gradescope . Assigned at least a week in advance. Homeworks can be worked on in groups of up to 3 and each 2 group submits one written solution (except Homework 0). Important: academic integrity policies. See course web page. 3 Chandra & Ruta (UIUC) CS473 9 Fall 2016 9 / 19
More on Homeworks No extensions or late homeworks accepted. 1 To compensate, five problems will be dropped. Homeworks 2 typically have three problems each. Important: Read homework faq/instructions on website. 3 Chandra & Ruta (UIUC) CS473 10 Fall 2016 10 / 19
Advice Attend lectures, please ask plenty of questions. 1 Don’t skip homework and don’t copy homework solutions. 2 Study regularly and keep up with the course. 3 This is a course on problem solving. Solve as many as you can! 4 Books/notes have plenty. Ask for help promptly. Make use of office hours/Piazza. 5 This is an optional mixed undergrad/grad course. 6 (Mathematical) maturity and independence are expected. Chandra & Ruta (UIUC) CS473 11 Fall 2016 11 / 19
Homework 0 HW 0 is posted on the class website. 1 HW 0 due on Tuesday August 30 at 8pm 2 HW 0 to be done and submitted individually. 3 Chandra & Ruta (UIUC) CS473 12 Fall 2016 12 / 19
Miscellaneous Please contact instructors if you need special accommodations. Lectures are being taped. See course webpage. Emergencies: see information at link http://police.illinois.edu/dpsapp/wp-content/uploads/ 2016/08/syllabus-attachment.pdf Chandra & Ruta (UIUC) CS473 13 Fall 2016 13 / 19
Part II Course Goals and Overview Chandra & Ruta (UIUC) CS473 14 Fall 2016 14 / 19
Course Structure Course divided into four parts: Recursion, dynamic programming. 1 Randomization in algorithms 2 Combinatorial and Discrete Optimization: flows/cuts, 3 matchings, introduction to linear and convex programming Intractability and heuristics 4 Chandra & Ruta (UIUC) CS473 15 Fall 2016 15 / 19
Course Goals Mostly algorithms: Some fundamental problems and algorithms 1 FFT, Hashing, Flows/Cuts, Matchings, LP, . . . 1 Broadly applicable techniques in algorithm design 2 Recursion, Divide and Conquer, Dynamic Programming 1 Randomization in algorithms and data structures 2 Optimization via convexity and duality 3 Approximation and heuristics 4 Role of mathematics in algorithm design: graph theory, (linear) 5 algebra, geometry, convexity · · · Chandra & Ruta (UIUC) CS473 16 Fall 2016 16 / 19
Complexity and Algorithms P : class of problems that can solved in polynomial time EXP : class of problems that can be solved in exponential time NP : non-deterministic polynomial-time. DECIDABLE : class of problems that have an algorithm Theorem There exist (many) undecidable problems. Theorem P is a strict subset of EXP . P ⊆ NP ⊆ EXP . Major open problem: Is P = NP ? Many useful and important problems are intractable : NPComplete , EXPComplete , UNDECIDABLE . Chandra & Ruta (UIUC) CS473 17 Fall 2016 17 / 19
Complexity and Algorithms Goals of algorithm desgin. find the “best” possible algorithm for some spefic problems of interest develop broadly applicable techniques for algorithm design Goals of complexity: prove lower bounds for specific problems develop broadly applicable techniques for proving lower bounds develop complexity classes to characterize many problems Rich interplay between the two areas. Chandra & Ruta (UIUC) CS473 18 Fall 2016 18 / 19
Important Ingredients in Algorithm Design What is the problem (really)? 1 What is the input? How is it represented? 1 What is the output? 2 What is the model of computation? What basic operations are 2 allowed? Algorithm design 3 Understand the structure of the problem Relate it to standard and known problems via reductions Try algorithmic paradigms: recursion, divide and conquer, dynamic programming, greedy, convex optimization, · · · Failing, try to prove a lower bound via reduction to existing hard problems or settle for approximation, heuristics. Proving correctness of algorithm 4 Analysis of time and space complexity 5 Algorithmic engineering 6 Chandra & Ruta (UIUC) CS473 19 Fall 2016 19 / 19
Recommend
More recommend