CISC 621 Agorithm Design and Analysis -- final review sheet
Dec 16, 10:30-12:30 final exam in course classroom.
The emphasis is on the post-midterm topics listed here. Although less
emphasized, pre-midterm topics are also fair game.
Topics:
-
P, NP, NPC, Cook's theorem, polynomial time reductions.
Chapter 34
-
FFT, polynomial and integer multiplication.
Chapter 30
-
Divide and conquer multiplication:
Strassen Matrix Mult, Chapter 28.4
Karatsuba polynomial multiplication
-
All Pairs Shortest Paths (Floyd/Warshall), transitive closure, and Gaussian elim.
Chapter 25, 28.2
-
Single Source Shortest Paths (Dijkstra's alg)
Chapter 24
-
Minimal Spanning Trees (Kruskal's and Prim's algs)
chapter 23.
-
BFS, DFS, strong components
chapter 22.
-
Union-Find
chapter 21.
sample questions:
The questions will be mainly `knowledge based' questions such as the
affinity questions on the midterm or `explain this' questions. Some
questions will be `solve problem'. These will be similar to homework
problems we've had.
- Explain this:
Given two n by n matrices, matrix multiplication may be viewed in terms
of n/2 by n/2 blocks. In that case classical multiplication does
8 block multiplies and 4 block adds (costing n2/4 number adds each).
Strassen's method costs 7 n/2 by n/2 block multiplies plus 18 block adds.
Explain why Strassen's is asymptotically better. Include recurrence relation for recursive
application of Strassen's principle, solution as Θ(nc (what c, exactly?),
and solution as O(nd) for reasonable numeric approximation d of c.
- solve problem:
Professor Trisplit has come up with a way to multiply polynomials of degree
bound n by multiplying degree bound n/3 polynomials 5 times and also using
O(n) work in polynomial addition/subtractions. Is this better than
Karatsuba's method? State and solve Trisplit's recurrence relation. Compare
to Karatsuba's.
- affinity: Dr. Trubunal says Trisplit's method is to Karatsuba's as
Coppersmith-Winograd is to Strassen for matrix multiplication. Explain.
In particular state Coppersmith-Winograd exponent for mat mul.
But he also says Trisplit's method is much less significant than
Coppersmith-Winograd. In fact Coppersmith-Winograd is of primarily
theoretical interest whereas the chief interest in Trisplit's will be
practical if any. Explain. In particular, explain why Trisplit's is
not of major theoretical interest.
Remark to those studying for prelims:
We have covered most of the customary prelim topics in Algorithms.
A few areas that do turn up on prelim questions that we didn't have time
to cover are: String matching(Boyer/Moore and Knuth/Morris/Pratt algs),
Computational Geometry (We discussed the closest pair of points alg, but
not for example convex hull algs such as Graham scan and package wrapping),
Approximation algs for NPC problems, Network Flow, Primality and public key
cryptography(RSA).
Oct 30: midterm
Topics:
- Fibonacci Heaps, chapter 20.
- Accelerated Binomial Heaps, binomialHeapA.h
- amortized analysis, chapter 17, scan only
- Binomial Heaps, chapter 19.
- red-black trees, chapter 13.
- binary search trees, chapter 12, scan only
- B-trees, chapter 18.
- Hash tables, chapter 11.
- basic data structures, chapter 10, scan only
- medians, randomized and deterministic select, chapter 9
- combining sort methods, sort/introspectiveSort.h
- a sorting lower bound, chapter 8.1.
- heapSort, chapter 7.
- quickSort, randomized quickSort, chapter 6.
- Master Theorem (statement and use), 4.3
- solving recurrences with recursion tree method, chapter 4.2
- solving recurrences with substitution method, chapter 4.1
- merge sort, chapter 2.3.
- insertion sort, chapter 2.2.
- minimal distance between points, chapter 33.4
- minimum in n-1 comps, max and min together in about 3n/2 comps,
chapter 9.1.