Download Overview

Survey
yes no Was this document useful for you?
   Thank you for your participation!

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

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 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