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
Overview of the course Course homepage and discussion board • sign up at https://piazza.com/purdue/spring2014/cs58000/ • It is recommended to ask questions on the Board instead of directly Emailing the teaching staffs. Grading Grading will be done as follows: • biweekly homework: 20% • midterm: 40% • final: 40% • class and piazza participation & bonus problem: adjust borderline scores Homework Policy • Written homeworks are due at the start of class on their due date. • If you do not know the answer of question, you will receive 15% of the grade for the problem if you admit it up-front by writing “I don’t know how to solve this problem” and nothing else. If your solution is wrong, you get a score of 0 for that problem. • You are encouraged to work in groups of 2 or 3. On all assignments each person should hand-in their own writeup. That is, collaboration should be limited to talking about the problems, so that your writeup is written entirely by you alone, in your own words. Homework Policy • We will not accept late submission. To offset this strict policy, • we will drop the lowest homework grade in the end so that the occasional absence won’t hurt you. • each individual student has a single 48 hours pass. This pass can be used to extend the deadline for one homework by 48 hours. • We prefer that you type up your solutions (preferably using LaTeX). You may neatly hand-write your solutions, but if we have trouble reading them you will be required to type up future solutions. • If you find a solution from any other source, you must rewrite entirely using your own words and cite properly. • The TA rules when it comes to grading homework; their decisions are final. However, they will be available to listen to your explanations. Recommend Textbook for reading • Introduction to Algorithms, by Cormen, Leiserson, Rivest, and Stein (hereafter referred to as "CLRS"). • Algorithm Design by J. Kleinberg and E. Tardos (hereafter refererred as "KT"). What is an algorithm? • Any well defined computational procedure that takes some value, of set of values, as input and produces some value, or set of values, as output for a well defined computation problem. Example Input:integer 𝑛 Output: then 𝑛-th Fibonacci number What is the 𝑛-th Fibonacci number? Definition of Fibonacci number. 𝐹0 = 0, 𝐹1 = 1, 𝐹𝑛 = 𝐹𝑛−1 + 𝐹𝑛 Alg 1. Function f(n) If n=0: return 1 If n =1: return 1 Return f(n-1)+f(n-2) Things we care about an algorithm • Performance • Running time • Space • Correctness Running time of the algorithm Function f(n) If n=0: return 1 If n =1: return 1 Return f(n-1)+f(n-2) Why is this a bad running time? Current State of Arts Moore’s law • Moore's law: the computing power doubles approximately every two years. Algorithm 2. Function f(n) Create an array 𝐴 0 … 𝑛 A[0] =1, A[1] =1 For (i= 2..n) A[i] = A[i-1]+A[i-2] Return A[n] • Correctness? Running time? What will be covered in this course? • Data Structure • Algorithm Design Techniques • Algorithm Analysis Techniques Data structures: We assume you already know what is a binary tree, head, and linked list. • Treap • Binomial heap • Union find • hasing Design Techniques • Greedy algorithm • Dynamic programming • Divide and Conquer • FFT • Network Flow • Linear Programming • Randomized Algorithms • DFS and BFSReduction Tools for analyzing algorithms • Asymptotic Analysis • Amortized Analysis • Probabilistic Analysis Intractability and Complexity Theory • Complexity class such as NP, coNP, RP, • Reduction