Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
UMass Lowell Computer Science 91.404 Analysis of Algorithms Prof. Karen Daniels Spring, 2004 Lecture 1 Introduction/Overview Text: Chapters 1, 2 Wed. 1/28/04 Web PageWeb Page http://www.cs.uml.edu/~kdaniels/courses/ALG_404.html Nature of the Course Core course: required for all CS majors Advanced undergraduate level Graduate students take separate course (91.503) No programming required “Pencil-and-paper” exercises Lectures supplemented by: Programs Real-world examples What’s It All About? Algorithm: steps for the computer to follow to solve a problem well-defined computational procedure that transforms input into output Some of our goals: recognize structure of some common problems understand important characteristics of algorithms to solve common problems select appropriate algorithm to solve a problem tailor existing algorithms create new algorithms Some Algorithm Application Areas Robotics Bioinformatics Geographic Information Systems Design Analyze Telecommunications Apply Computer Graphics Medical Imaging Astrophysics Some Typical Problems Sorting Input: Set of items Problem: Arrange items “in order” Median finding Input: Set of numbers or keys Problem: Find item smaller than half of items and bigger than half of items Minimum Spanning Tree Input: Graph G = (V,E) with weighted edges Problem: Find subset of E of G of minimum weight which forms a tree on V Shortest Path Input: Edge-weighted graph G , with start vertex and end vertex t Problem: Find the shortest path from to t in G SOURCE: Steve Skiena’s Algorithm Design Manual (for problem descriptions, see graphics gallery at http://www.cs.sunysb.edu/~algorith) Tools of the Trade Algorithm Design Patterns such as: divide-and-conquer Data Structures such as: trees, linked lists, hash tables, graphs Algorithm Analysis Techniques such as: asymptotic analysis probabilistic analysis Summations Proofs Sets Combinations Growth of Functions Permutations MATH Probability Recurrences Logarithms Tools of the Trade: (continued) Algorithm Animation http://www.cs.brockport.edu/cs/java/apps/sorters/insertsortaniminp.html What are we measuring? Some Analysis Criteria: Scope “Dimension” Upper? Lower? Both? Type of Input Time Complexity? Space Complexity? Type of Bound The problem itself? A particular algorithm that solves the problem? Best-Case? Average-Case? Worst-Case? Type of Implementation Choice of Data Structure Prerequisites Computing I (91.101) Computing II (91.102) Discrete Math I & II (92.321, 92.322) Statistics for Scientists and Engineers (92.386) Calculus I-III (92.131-231) Summations Proofs Sets Combinations Growth of Functions Permutations MATH Probability Recurrences Logarithms Course Structure: 4 Parts Foundations Sorting Heapsort, Priority Queues, Quicksort, Sorting in Linear Time Data Structures Analyzing & Designing Algorithms, Growth of Functions, Recurrences, Probability & Randomized Algorithms Stacks and Queues, Linked Lists, Introduction to Trees, Hash Tables, Binary Search Trees, Balancing Trees: RedBlack Trees Graph Algorithms DFS, BFS, Topological Sort, MST, Shortest paths Textbook Required: Introduction to Algorithms by T.H. Corman, C.E. Leiserson, R.L. Rivest McGraw-Hill New Edition 2001 ISBN 0-07-013151-1 see course web site (MiscDocuments) for errata (1st edition) Ordered for UML bookstore Syllabus (current plan) Lecture Date Topic Reading Foundations Chapters 1-5 W 1/28 Introduction/Overview Chapter 1 F 1/30, M 2/2, W 2/4 Analyzing & Designing Algorithms Chapter 2 F 2/6, M 2/9, W 2/11 Growth of Functions Chapter 3 F 2/13, W 2/18, Th 2/19 Recurrences Chapter 4 F 2/20, M 2/23, W 2/25 Probability & Randomized Algorithms Chapter 5 Sorting Chapters 6-9 F 2/27, M 3/1 Heapsort/ Priority Queues Chapter 6 W 3/3, F 3/5 Quicksort Chapter 7 M 3/8, W 3/10 Review Chapters 1-5 F 3/12 Midterm Exam Chapters 1-5 M 3/22 Quicksort W 3/24, F 3/26, M 3/29 Sorting in Linear Time Chapter 8 Data Structures Chapters 10-13 W 3/31, F 4/1, M 4/5 Stacks, Queues, Linked Lists, Trees Chapter 10 W 4/7, F 4/9 Hash Tables Chapter 11 M 4/12, W 4/16, F 4/18 Binary Search Trees Chapter 12 W 4/21, F 4/23 Balancing Trees: Red-Black Trees Chapter 13 Graph Algorithms Chapters 22-24 M 4/26, W 4/28, M 5/3 Elementary Graph Algorithms Chapter 22 W 5/5, F 5/7 Minimum Spanning Trees Chapter 23 M 5/10 Shortest Paths Chapter 24 W 5/12, F 5/14 Review 1-13, 15-16, 22-24 To Be Determined Final Exam 1-13, 15-16, 22-24 CS Theory Math Review Sheet The Most Relevant Parts... p. 1 O, Q, W definitions Series Combinations p. 2 Recurrences & Master Method p. 3 Probability Factorial Logs Stirling’s approx p. 4 Matrices p. 5 Graph Theory p. 6 Calculus Product, Quotient rules Integration, Differentiation Logs p. 8 Finite Calculus p. 9 Series Math fact sheet (courtesy of Prof. Costello) is on our web site. Important Dates Midterm Exam (Chapters 1-5): Final Exam: Friday, 3/12 TBA Grading Homework Midterm (Chapters 1-5) Final Exam 35% 30% 35% (open book, notes ) (open book, notes )