**Name**

(Please do not forget to put your name on all extra sheets of paper)

1. Define what is P, what is NP, what is NP-hard, and what is NP-complete; no need to give a detailed definition of reduction. Which of these three classes contain the problem of adding all numbers in a given array? the 3-coloring problem?

2-6. Reduce the satisfiability problem for the formula (~x1 \/ x2) & (x1 \/ ~x2) & (~x1 \/ x2 \/ x3) to:

- 3-coloring;
- 5-coloring;
- clique;
- subset sum problem;
- interval computations.

7-9. A straightforward algorithm takes time O(n) to compute the sum of all the elements in an array of size n.

- Does this problem belong to the class NC? Explain your answer.
- Is NC equal a subset of P? equal to P? explain your answer.
- If we parallelize and take into account communication time, what is the fastest that we get with such parallel algorithms? Explain your answer.
- Where are similar arguments used in the proof that satisfiability is NP-hard?
- Explain what is the physics behind these arguments and how using non-Euclidean physics can potentially lead to faster computations -- such as solving NP-hard problems in polynomial time.

10. If a probabilistic algorithm produces a result with the probability of error 1/2, how many times do we need to repeat it to reduce the probability of error to 1%?

11. Find what is
Π_{4}P^{Σ2P}.

12. Which class of the polynomial hierarchy corresponds to winning in two steps -- i.e., after you make your move, whatever move the opponent makes, you win.