CS432, Algorithms
Info About Final Exam, Fall '05
Thursday, December 8. 10am-noon. Olsson 005.
(Preferred Alternative for those with "overload" on Thurs.:
Friday., Dec. 9, 10am-noon)
- The final exam is worth 25% of your overall grade.
- The exam will cover material since Exam 2 and also have a comprehensive section of questions on topics from
Exams 1 and 2.
- The questions on new material will be worth 70% of the Exam 3 score.
- The comprehensive section (worth 30% of Exam 3) will not focus on low-level detail (say, exactly how a partition
algorithm works) but on higher-level important topics (example: what partition leads to quicksort's worst case.).
But they might include questions on order-classes for algorithms' complexity. (So the paritition algorithms we
saw are Theta(n).)
- The time allowed for the exam will be 2 hours.
- If you need to take the exam at an alternative time, please email me by Tuesday night, Dec. 6, and explain.
- If you are an LNEC student needing extra time, contact me and let me know if you want to do it all in one go
on the exam day, or if you need to split it into two parts.
Here is completely different set of
Exam 3 review problems. (Here they are with
answers.)
Topics list for "new" material since Exam 2.
Dynamic Programming:
- General principles of dynamic programming
- Optimal substructure property
- Memoization
- Fibonacci numbers
- LCS
- You might be asked to complete the table for given inputs
- You won't be asked to reproduce the code. But know the complexity.
- 0/1 Knapsack -- see handout
- Why greedy doesn't work
- Understand how cells in the table get updated
- Matrix Multiplication
- Understand what entries in the table represent.
- Understand what the simple cases are, and the order in which table-entries are filled in.
- Understand what values are used to calculate the value for a given subproblem.
P, NP and NP-C:
- Text: Read Chap 10 but use the slides to guide your understanding. Material or sections that are in the book
but not in the slides won't be on the exam. Email me if you have questions. Topics listed below.
- Decsion problems vs. optimal values vs. optimal solutions
- Definitions of class P, NP, NP-hard, and NP-c
- NP-c problems: SAT, CNF-SAT, 3-CNF-SAT, k-COL, VertexCover, k-Clique, SubsetSum, 0/1-Knapsack, HamPath, HamCycle,
TSP
- Definition of an non-deterministic algorithm and definition of class NP
- How to prove that a problem is in NP
- Size of input
- What is a polynomial reduction? What's it mean if problem A reduces to problem B?
- Cook's Theorem
- The relationship between P, NP and NP-complete
- The big question: does P = NP?
- Reductions: You won't be asked to come up with a "new" reduction on your own. You need to know what
a reduction is, and how it's described. You might be asked questions about these example reductions:
- 3-Col to CNF-SAT (handout)
- Directed ham. cycle reduces to undirected ham. cycle (same handout as above and slides)
- Hamiltonian cycle to the TSP (slides)
- 3-CNF to k-Clique (slides)
- SubsetSub to 0/1 knapsack (HW6)
- Coping with complexity. What's an approximation algorithm? If you don't remember, go back and look at the handout
on the two greedy approaches to TSP problem, and HW4 (graph coloring and vertex cover -- see posted solutions)
Personalities:
- There will be two straightforward questions (worth 4% total) on the famous figures from algorithms "Wall
of Fame" on the class Web page. Be sure to memorize their names.
Algorithms and Intellectual Property:
There will one or two straightforward
questions (worth 4% total) directly related to questions on HW6 on algorithms, patents, etc.
Previous Material (High-level list of topics):
Exam 1: (Click here for previous review-guide for Exam 1.)
- Basics
- Order classes, worst-case, average-case, lower-bounds, optimal algorithms, etc.
- Divide and conquer
- recurrence relations (No Main or Master theorem!)
- Examples: mergesort, quicksort, trominos, max and min, etc.
- Sorting
- insertion sort, quicksort, mergesort
- lower bound for sorting using key-comparisons
- linear sorting
Exam 2: (Click here for previous review-guide for Exam 2.)
- Priority Queues, Heaps, and Heapsort
- Searching in Graphs, BFS, DFS, Topological Sort, Backtrack Search
- Greedy Algorithms