Further Instructions: When you argue that a coin changing algorithm is optimal, you must prove that your algorithm uses no more coins than any other way to make change for n cents using the specified denominations. Your proof must hold for all n. You must not appeal to general principles (e.g., "It is always better to.."). As a guideline, your proof must not work for your answer to part c.
Further Instructions: You must prove that the schedule produced by your algorithm has an average completion time that is lower than or equal to the average completion time of any other schedule. Appeals to general principle (e.g. "It is always better to ...") are not acceptable proofs because they simply restate what needs to be proven.
Additional instructions: When you are asked to provide a dynamic programming algorithm. You must provide the following:
Hint: Let p_{1} be the leftmost point (i.e., the point with the smallest x-coordinate) and let p_{2} be the second leftmost point (i.e., the point with the second smallest x-coordinate). Argue that the line between p_{1} and p_{2} will always be part of any bitonic traveling salesman tour. How does this help you define the recursive subproblems?
Additional Instructions: When you are asked to provide a dynamic programming algorithm. You must provide the following:
Show how you can use this black box to find a 3-coloring of G in polynomial time. (I.e., you must be able to assign red, green or blue to each vertex of the graph such that no two adjacent vertices have the same color.)
Construct a polynomial-time ≤_{m}-reduction from the Hamiltonian Cycle problem to HAM_PATH.
Note: a graph can have an exponential number of cycles. So, when you show that X ∈ NP, you cannot simply guess E' and check every cycle in G. That would take exponential time.
A matching M ⊆ T (not necessarily a perfect one) just requires that every x ∈ X appears in a triple in M at most once, every y ∈ Y appears in a triple in M at most once and every z ∈ Z appears in a triple in M at most once. So, a matching enforces that triples in M do not share components, but does not require that every x, y and z appears in some triple.
The optimization version of 3DM asks us to find a matching that contains the largest number of triples.
Describe a polynomial-time approximation algorithm that finds a matching that has at least 1/3 as many triples as in the maximum matching.
Argue that the approximation factor you achieve is indeed 3. Briefly state and justify the running time of your algorithm.
Devise an algorithm that gives you at least 1/4 probability of accepting the offer that pays the most. The probability is taken over the order that you open the letters which we assume has been randomized by the Post Office.
Hint: think about the second highest offer. Where can it be in the order? With what probability? How does this help you accept the highest offer?