Reading Materials IRIS H.-R. JIANG 3 ¨ ¨ ¨ DEE3504 ALGORITHMS Iris Hui-Ru Jiang Fall 2014 Introduction Administrative Matters Course Objectives IRIS H.-R. JIANG 2 ¨ ¨ ¨ ¨ Time/location: 1CD3A@SC204 Instructor: 㱆啀⥩ Iris Hui-Ru Jiang ¤ Email: huiru.jiang@gmail.com ¤ Office: ED540, ext. 31211 ¤ Office hours: 1X (made by appointment) Teaching assistants: 愔⭰ⓙ㜵㉦䝦 ¤ Email: nctuee.alg@gmail.com ¤ Lab: ED413, ext. 54226 ¤ Office hours: 2EF Prerequisite: two out of the following courses ¤ Data structures ¤ Discrete mathematics ¤ Computer programming in C ¤ Computer programming in C++ Introduction Course webpage: ¤ e3, NCTU open course ware Required text: ¤ Kleinberg and Tardos, Algorithm Design, Addison Wesley, 2006 n Jon Kleinberg, 20 Best Brains under 40, Discover Magazine, 2008 n Cornell Reference: ¤ S. Dasgupta, C. H. Papadimitriou, and U. V. Vazirani, Algorithms, McGraw-Hill, 2007 n UC Berkeley ¤ Cormen, Leiserson, Rivest, Stein, Introduction to Algorithms, 3rd Ed., McGraw Hill/MIT Press, 2009 n Bible! MIT IRIS H.-R. JIANG 4 ¨ Study unifying principles and concepts of algorithm design ¤ Algorithmic problems form the heart of computer science ¨ Polish your critical thinking and problem-solving technique ¤ Algorithmic problems tend to come bundled together with lots of messy, application-specific detail, some of it essential, some of it extraneous ¤ Two fundamental components n Get to the mathematically clean core of a problem n Identify the appropriate algorithm design techniques based on the structure of the problem ¨ Intended audience: ¤ Who are interested in computer science ¤ Who are computing something ¤ Who are learning problem-solving techniques Introduction Course Content (1/3) Course Content (3/3) IRIS H.-R. JIANG 5 ¨ ¨ ¨ Introduction ¤ An opening problem: stable marriages ¤ Range of problems we will consider Background: ¤ Basics of algorithm analysis ¤ Graphs General algorithmic techniques ¤ Greedy algorithms n Finding optimal solutions with greedy methods n Scheduling time intervals n The minimum spanning tree problem ¤ The divide and conquer method n Some basic primitives in computational geometry Introduction ¨ *The details are subject to change ¤ Dynamic programming with many applications n Weighted interval scheduling n Knapsack problems n Shortest paths n Sequence alignment n Including efficient implementation via divide and conquer Flows and cuts in networks n The basic flow and cut problems n Basic methods: augmenting paths n Application to matching n Polynomial time methods n Extensions to more general models n Applications to resource allocation, sequencing, and segmentation Introduction *The details are subject to change Course Content (Optional) IRIS H.-R. JIANG ¤ Computational Intractability (Optional) ¤ NP-completeness n Hardness of problems in optimization and constraint satisfaction n How to show NP-completeness: reducibility n Examples including the traveling salesman problem, 3dimensional matching, covering, packing, partitioning problems, and subset sum ¤ PSPACE completeness n Hardness of problems in artificial intelligence and gameplaying Introduction Course Content (2/3) 6 IRIS H.-R. JIANG 7 *The details are subject to change IRIS H.-R. JIANG 8 ¨ ¨ ¨ Algorithms for hard problems ¤ Improved exponential methods ¤ Approximation algorithms n greedy algorithms (load balancing, facility location) n The application of linear programming ¤ Local search techniques n The Metropolis Algorithm n Simulated annealing n Applications to graph partitioning and neural networks Randomized algorithms ¤ Including contention-resolution protocols and satisfiability heuristics Algorithms that run forever Introduction *The details are subject to change Grading Policy IRIS H.-R. JIANG 9 ¨ ¨ ¨ Grading: ¤ Homework: 15% ¤ Programming: (two mini-projects: 10% + project: 25%) ¤ Exams: (Midterm: 25% + Final: 25%) Homework & programming: ¤ Discussions are encouraged. However, solutions should be written individually and separately (no credits for plagiarism) ¤ No late submission (partial solutions may get partial credits) ¤ Homework is usually due in two weeks ¤ Programming assignments are usually due in two or three weeks Exams ¤ No discussions, solutions should be written individually Introduction What is an Algorithm? Problem-solving procedure IRIS H.-R. JIANG 10 ¨ Definition: An algorithm is ¤ A finite, definite, effective procedure, with some output [Donald Knuth, 1968] ¤ ¤ ¤ ¤ ¤ ¤ ¨ Input: may have problem solution Output: must have Definiteness: must be clear and unambiguous Finiteness: terminate after a finite number of steps Effectiveness: must be basic and feasible with pencil and paper Procedure: the sequence of specific steps in a logical order Cf. An algorithm is ¤ A well-defined procedure for transforming some input to a desired output [Cormen et al. Introduction to Algorithms, 2nd Ed.] Introduction