Homework 10

[Note: this webpage last modified Friday, 04-Feb-2011 19:44:51 EST]

This homework assignment will be handed out on Wednesday November 3 and is due by the beginning of class on the following Wednesday, so by 3pm Wednesday November 10. REMEMBER that your solutions should be explained in complete sentences such that your classmates will understand the solution (and can verify your proofs are correct) even if they have not solved the problems themselves.

  1. HW Polices.

    1. Type your HW (in word, latex, text file, etc.) and send to me by email.

    2. Do NOT share electronically. You must type your own solutions. You can discuss the problems with each other, but you may only discuss them. You may not write out solutions together.

    3. You MAY NOT search the Internet, textbooks, etc. for solutions to the problems. The following are the ONLY sources of information that you may use in solving the problems: the textbook for this course (draft available from here ), Computational Complexity: A Modern Approach, and wikipedia articles on basic math/probability/etc. You may discuss the problems with each other and with myself, but must obey the previous item in doing so.

      If you do find the solution in one of these three sources, you still MUST cite the source in your document.

      You may use NOTHING ELSE that is online or other textbooks. You have already received warnings about this! ANY violations of this policy for the rest of the semester will result in you FAILING the course and being brought before the appropriate committee on campus for handling academic misconduct.

    4. You MAY NOT copy word-for-word from any source, even the 3 you are allowed to consult. If you feel it is necessary, you should put the quotation in quotes and provide a reference/citation.

  2. (-3 points if left blank) List who you collaborated with on this assignment, "none" if none.

  3. In this problem we look at a simple algorithm to compute an approximation for the number of satisfying assignments of a Boolean formula. Let φ be a Boolean formula with n variables, and we want to determine p=(# of satisfying assignments to &phi)/2n. Note that 0 ≤ p ≤ 1, and p > 0 iff φ is satisfiable. The randomized algorithm is the following: pick m different assignments to the variables independently at random, and set our estimate equal to pest = (number of chosen assignments that satisfy φ)/m. For i=1, 2, ..., m, let Xi be a random variable indicating if the i-th randomly chosen assignment satisfies φ. Let Z denote our estimate, so Z=(X1+X2+...+Xm)/m.

    1. (5 Points) For each i, what is the expected value of Xi? What is the expected value of Z? And for both, why?

    2. (5 Points) Use Markov's inequality to give a bound on the probability that Z is greater than 10*p? Does Markov's inequality say anything about the probability that Z is less than p/10?

    3. (5 Points) Use the Chernoff bound to give a bound on the probability that Z is epsilon far away from p, so bound the probability that Z is not in the range (p-epsilon, p+epsilon). For what values of epsilon, can we guarantee in polynomial time (i.e., setting m=poly(n)) an estimate that is within epsilon with high probability (say, probably greater than .99).

    4. (5 Points) For an approximation algorithm, we normally want to be within a constant multiplicative factor of the correct value. That would mean, we want an estimate Z that is between (p*(1-1/10), p*(1+1/10)), for example. Is our algorithm an approximation algorithm in this sense? Why?