Survey

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Survey

Document related concepts

no text concepts found

Transcript

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 ﬁnal. 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