The test will be closed-book, except for 2 sheets (8.5"x11") of notes.
For the test, you should:
1) understand the general concept of the dynamic programming, greedy approach, backtracking, and branch-and-bound problem-solving techniques,
2) understand the dynamic programming, greedy approach, backtracking, and branch-and-bound algorithms for problems discussed in class,
3) be able to apply dynamic programming, greedy approach, backtracking, and branch-and-bound techniques to "new" (i.e., not in the text) problems,
Examples Seen
Technique | Problems |
Greedy | Coin-change problem (not optimal) Prim's MST Algorithm Dijkstra's Single-source Shortest Path Traveling-Salesperson (not optimal) Fractional Knapsack Problem |
Divide-and-Conquer | Coin-change problem Binary search Merge sort Traveling-Salesperson 0-1 Knapsack Problem |
Dynamic Programming | Coin-change problem Binomial Coefficient Floyd's Shortest Paths Algorithm Traveling-Salesperson 0-1 Knapsack Problem |
Backtracking | Coin-change problem 0-1 Knapsack Problem Sum-of-Subsets Problem Traveling-Salesperson |
Branch-and-Bound | Coin-change problem (not a good solution) 0-1 Knapsack Problem Traveling-Salesperson |