NOTE: You are allowed to have a one-page (two sides) normal
where you can write whatever you want to remember for the final exam.
In addition, as we have already seen, I try to focus on problem-solving
questions instead of "by-heart" recitals. Of course, having read the material
we have discussed in class and the material from the book will help you
know the concepts and solcing methods. The midterm and the assignments are indicative
questions. Variations of the questions nd problems we have seen in the
midterm, assignments or in the class could be potentail questions.
From the book: Introduction to Algorithms by Cormen et al
Whatever has been discussed in the class is "fair game", the list below
is to help you study and mainly indicate some of the thnigs we have not
You have to be familiar with misc things such as simple proving techniques
(induction), big-O notation, relationships, logarithms, graph definitions (ch. 5.4, 5.5).
The. = Theorem, Co. = Corollary, Le. = Lemma.
"Except proof of" means except the proof, while you should read and understand
Ch.23: 23.1 Elementary Graph Algorithms
23.2 Breadth First Search except proof of The. 23.4
23.3 Depth First Search except The. 23.6, Co. 23.7
23.4 except proof of The. 23.11
23.5 Strongly Connected Comp. only the algorithm
Ch. 24: Minimum Spanning Trees
24.1 Generic greedy
24.2 Prim and Kruskal's algorithms
Ch. 25: Single Source Shortest Path Algorithms
25.1 Lemma 25.1, Co. 25.2, Le. 25.3, Relaxation, Le .25.4, 25.5
25.2 Dijkstra (NOT the proof of correctness or the modified DIjkstra complexity
we are happy with the compleity O(V^2))
25.3 Bellman-Ford, Lemma 25.12 (NOT THe 25.- correctness)
Ch. 26: All Pairs Shortest Paths
Ch. 27: Maximum Flow
27.2 Ford-Fulkerson (see my explanation page on the web)
Le 27.2, 27.3, Co 27.4, Le 27.5, CO 27.6, The 27.7
(NOT Le 27.8)
27.3 Bipartite Matching Le 27.10 (NOT the proof), 27.11, 27.12
Ch. 36: NP-Completeness
(you are advised to study the notes from the class, and then browse through the book,
since the book has more stuff)
36.1 Polynomial time.
NOT: the formal language framework (we did not talk about languages and you are
not expected to know that approach, which is basically an equivalent framework to what we have been saying)
NOT Lemma 36.1 and Le 36.2
36.2 Polunomial time verification
NOT: the co-P or co-NP classes.
36.3 NP-completeness and reducibility
Fig. 36.5 is important.
THe 36.4 NOT the proof.
NOT the circuit satisfiability.
Steiner tree problem: (see my web-page for s write-up)
Some sample questions:
* execute an alorithm on a small graph (Dijjkstra, transitive closure, Steiner tree approximation)
* A problem in P is also in NP (yes)
Is it in NP-Complete (no, NPC intersection P = null according to most scientists)
* Do reduction (transformation) between problem A to problem B. Is the reduciton polunomial?
* Calculate the competitive ratio of an approximation algorithm say for the Naive algorith ( Steiner tree)