Algorithms
From ResearchWiki
Contents |
History
- 1964: Cobham proposes that P represent the class of efficient computations, as it is invariant under machine transformations.
- 1965: Edmonds discusses the meaning of 'efficient algorithm' and proposes polynomial time as the definition of 'efficient'
- Michael Sipser's paper on P vs NP from STOC 1992 (and a perspective on worst-case analysis)
- Bob Tarjan's Turing Award Lecture (why ignore constants in worst-case analysis)
Thus, the state of algorithm design in the late 1960s was not very satisfactory. \[...\] the typical content of a paper on a combinatorial algorithm was a description of the algorithm, a computer program, some timings of the program on sample data, and conclusions based on these timings. Since changes in programming details can affect the running time of a computer program by an order of magnitude, such conclusions were not necessarily justified.
- Scott Aaronson's article on P vs NP.
What is an algorithm
- Knuth defn
- A problem is not an algorithm
NP Completeness
- P vs NP
- reductions
- show how problems can be sensitive to the choice of model used.
Basic Paradigms
- Greedy Algorithms
- Dynamic programming
- Prune and search
- Max flow
- FFT ?
- Recurrence relations (George Lueker's paper)
Approximations
- Basic setup
- vertex cover
- set cover
- LP-based methods
- Knapsack
Randomization
- Tail bounds
- Min cut
- Closest pair
- Hashing
- approximate counting
Heuristics
- Local search methods
- Metropolis, EM/k-means
Lower Bounds
- decision trees
- 3SUM
- minimax
Quantum Algorithms
Lectures
- 08/20: History of algorithms: what is an algorithm ? polynomial time. algorithm vs problem. HW0
- 08/22: NP-hardness: P vs NP: reductions, Cook-levin: 3SAT
- 08/27: NP-hardness; Examples of different kinds of reductions.HW0 DUE
- 08/29: Recurrences and Analysis
- 09/05: Divide and Conquer/Recursion I: Mergesort, Closest Pair
- 09/10: Divide and Conquer/Recursion II: MIS, 3SAT, FFT (might need another lec)/ HW1
- 09/12: Dynamic Programming I: Interval scheduling, knapsack
- 09/17: Dynamic Programming II: BLAST (sequence alignment)
- 09/19: Greedy algorithms I: Principle of switching/staying ahead to prove optimality. Caching
- 09/24: G II: MST HW2
- 09/26: G III: Matroids
- Approximations I: Definitions, Load Balancing, Vertex Cover
- Approximations II: Interval scheduling, Set Cover
- Approximations III: Dynamic Programming to get PTASs
- Approximations IV: Linear programming and Vertex Cover
- Flows I: definition of flow, ford-fulkerson algorithm HW3
- Flows II: max flows and min cut.
- Randomness III
- Randomness IV
- Flows IHW4
- Flows II
- Flows III
- Linear Programming I
- Simplex HW5
- LP-based Approximations: (Randomized) Rounding
- LP-based approximations: Primal-Dual.
- Heuristic Methods
- Parallel Algorithms HW6
- Quantum Algorithms
- A Case Study: sorting with reversals
References
- Algorithm Design (Kleinberg/Tardos)
- UIUC Algorithms, Spring 2007.
Homeworks
Zero
- checkers problem (graphs)
- O() ordering
- Twelfth day of christmas problem (how many gifts do you get) (analysis)
- KT 3.4 (butterfly classification)
- KT 13.1 (3coloring a graph so 2/3 of all edges are properly colored)