\documentclass{article} \usepackage{amsmath, amssymb} \input{preamble.tex} \begin{document} \lecture{4}{February 15, 2001}{Daniel A. Spielman}{Matthew Lepinski} \section*{Polynomial Hierarchy} Recall from last lecture the three definitions of the Polynomial Time Hierarchy. \begin{definition} \label{alt_def} $\Sigma_k^P$ is the class of all languages which are accepted by a polynomial time alternating turing machine which begins in a existential state and has at most $k-1$ alternations. Similarly, $\Pi_k^P$ is the class of all languages which are accepted by a polynomial time alternating turning machine which begins in a universal state and has at most $k-1$ alternations. \end{definition} \begin{definition} \label{or_def} \begin{eqnarray*} \Sigma_0^P &=& \Pi_0^P = P \\ \Sigma_k^P &=& NP^{\Sigma_{k-1}^P} \\ \Pi_k^P &=& co-NP^{\Sigma_{k-1}^P} \end{eqnarray*} \end{definition} \begin{definition} \label{wit_def} $\Sigma_0^P = \Pi_0^P = P$. \begin{eqnarray*} \Sigma_k^P & = & \{ A\; |\; \exists\; B \in \Pi_{k-1}^P,\; c > 0 \mbox{ such that } x \in A \iff \exists\; y \mbox{ such that } (x,y) \in B \mbox{ and } |y| \leq |x|^c \} \\ \Pi_k^P & = & \{ A\; |\; \exists\; B \in \Sigma_{k-1}^P,\; c > 0 \mbox{ such that } x \in A \iff \forall\; y \mbox{ such that } (x,y) \in B \mbox{ and } |y| \leq |x|^c \} \end{eqnarray*} \end{definition} \begin{definition} The polynomial hierarchy $PH = \bigcup_k \Sigma_k^P = \bigcup_k \Pi_k^P$. \end{definition} In the previous lecture, we proved the equivalence of Definition \ref{alt_def} and Definition \ref{or_def}. In this lecture, we prove the equivalence of Definition \ref{alt_def} and Definition \ref{wit_def}. In this proof we will make use of the following fact: \begin{fact} Definition \ref{wit_def} is equivalent to $L \in \Sigma_k^P$ if, and only if $\exists c >0$ and $A \in P$ such that $x \in L \Leftrightarrow \exists y_1 \forall y_2 \exists y_3 \ldots (\exists / \forall) y_k$ $(x,y_1,y_2,\ldots,y_k) \in A$ and $|y_i| < |x|^c$. \end{fact} To see that this fact is true, first unroll the recursion in Definition \ref{wit_def}. Then observe that if $|y_{i+1}|$ is polynomial in $(|y_i|+|y_{i-1}+ \ldots +|x|)$ and $|y_j|$ is polynomial in $|x|$ for $j \leq i$, then $|y_{i+1}|$ is polynomial in $|x|$. \begin{theorem} Definition \ref{alt_def} is equivalent to Definition \ref{wit_def}. \end{theorem} \begin{proof} The main difference between Definition \ref{wit_def} and Definition \ref{alt_def} is that in Definition \ref{wit_def} the machine is required to so through all of its Existential and Universal states before it does any other computation. Whereas in Definition \ref{alt_def} the machine is allowed to interleave computation, Universal states and Existential states however it sees fit. (As long as there are at most $k-1$ alternations.) With this in mind, it is clear that Definition \ref{alt_def} includes Definition \ref{wit_def}. This is because the alternating machine in Definition \ref{alt_def} is allowed to do it's alternation before it's other computation and thus can recognize any language of the form specified by Fact 1. To see that Definition \ref{wit_def} includes Definition \ref{alt_def}, consider a language $L$ which is accepted by a polynomial time alternating turing machine $M$ which starts in an existential state and alternates at most $k-1$ times. We will construct a constant $c$ and a language $A \in P$ which satisfies Definition \ref{wit_def}. Since $M$ runs in polynomial time, there is a polynomial $p(n)$ which bounds it's running time. Let $c$ be a constant such that for all sufficiently large $n$, $p(n) < n^c$. We now construct a turing machine $M'$ (we think of $M'$ as simulating $M$ without the non-determinism). We will define A to be the language accepted by $M'$. Therefore, we construct $M'$ to take inputs of the form $(x,y_1, y_2, \ldots, y_k)$. $M'$ begins simulating $M$ on $x$ and uses the following rules to handle the existential and universal states of $M$. \begin{itemize} \item When $M$ would enter a existential state, $M'$ reads a bit from auxiliary input $y_1$ and follows the branch zero if the bit is 0 and follows the branch one if the bit is 1. \item Continue using $y_1$ to determine which branch to follow up until the point where $M$ enters it's first universal state. \item When $M$ would enter a universal state, $M'$ reads a bit from auxiliary input $y_2$ and follows the branch zero if the bit is 0 and follows the branch one if the bit is 1. \item Continue using $y_2$ to determine which branch to follow up until the point where $M$ enters it's next existential state. \item Continue in this fashion advancing to the next auxiliary input each time $M$ alternates between existential and universal states (or vice versa). Note: Since $M$ is guaranteed to have at most $k-1$ alternations, $M'$ will not run out of auxiliary inputs. \end{itemize} By the construction of $M'$, if $M'$ accepts $(x,y_1, y_2, \ldots, y_k)$ for some $y_1$ and all $y_2$ and some $y_3$ \ldots, then $M$ would accept $x$. \end{proof} \section*{The Polynomial Time Hierarchy Collapses} \begin{proposition} If $\Sigma_k^P = \Pi_k^P$ then $\Sigma_k^P = \Sigma_j^P$ for all $j > k$. \end{proposition} \begin{proof} In this proof we use Definition \ref{wit_def}. (Since we've proved all three definitions equivalent, we can use whichever is most convenient.) Additionally, we prove only the case where $j=k+1$, all other $j's$ follow easily by induction. $L \in \Sigma_{k+1}^P \Rightarrow \exists c, \; A \in \Pi_k^P$ such that $x \in L$ if and only if $\exists (x,y) \in A$ with $|y| < |x|^c$. Since $\Sigma_k^P = \Pi_k^P$, we know $A \in \Sigma_k^P$. Therefore, $\exists d, \; B \in \Pi_{k-1}^P$ such that $(x,y) \in A$ if and only if $\exists (x,y,z) \in A$ with $|z| < |x,y|^d$. Therefore, $x \in L$ if and only if $\exists y \; \exists z$ such that $(x,y,z) \in B$ and $|y| < |x|^c$ and $|z| < |x,y|^d$. Now we combine the two existential quantifiers into a single existential quantifier to get $x \in L$ if and only if $\exists (y,z)$ such that $(x,(y,z)) \in B$ and $|(y,z)| < |x|^{cd+1}$. Since, $B$ is a $\Pi_{k-1}^P$ language, $L$ is in $\Sigma_k^P$ by the definition of $\Sigma_k^P$. \end{proof} If the hypothesis of the previous proposition is satisfied (that is, if $\Sigma_k^P = \Pi_k^P$) we say that the Polynomial Time Hierarchy collapses to the $k^{th}$ level. This is the complexity theorist's way of saying ``Horses Can Fly!''. It has not been proven that the hierarchy does not collapse, however, complexity theorists universally believe that such a collapse does not occur. Many theorems in complexity theory take the form ``If Pigs Could Whistle Then Horses Could Fly!''. That is, a complexity theorist might want to prove a result like NP is NOT in P/POLY (i.e. Pigs Can't Whistle) but finds herself unable to do so. Therefore, the complexity theorist instead proves the result ``If NP in P/POLY then the Polynomial Time Hierarchy Collapses'' (i.e. If Pigs Could Whistle Then Horses Could Fly). Since no one believes that the hierarchy collapses (i.e. no one believes that horses can fly), this result is taken as strong evidence that NP is NOT in P/Poly (i.e. strong evidence that Pigs Can't Whistle). In the next lecture we will prove the first theorem of this type. However, first we must define Non-Uniform Complexity. \section*{Non-Uniform Complexity} \begin{definition} For a function $f : \{0,1\}^n \rightarrow \{0,1\}$, the Circuit Complexity of $f$ is the minimum $m$ such that there exists a circuit with $m$ AND, OR and NOT gates that computes $f$ \end{definition} We denote the Circuit Complexity of $f$ by $C(f)$. \begin{definition} A language, $L$, has Polynomial Circuit Complexity if there exists a $k$ such that $C(f_n)=O(n^k)$ where $f_n = 1 \Leftrightarrow$ $x \in L$ and $|x| = n$. \end{definition} Observe that Polynomial Circuit Complexity can give you undecidable languages. For, instance the language $L = \{x: \mbox{Turing Machine number } |x| \mbox{ halts} \}$ has Polynomial Circuit Complexity. \begin{definition} $L \in P$/Poly if there exists $A \in P$, $k>0$ and an infinite sequence of strings $\{S_n\}$ such that $|S_n| = O(n^k)$. \end{definition} \begin{theorem} $L \in P$/Poly if and only if $L$ has Polynomial Circuit Complexity. \end{theorem} \begin{proof} If $L$ has Polynomial Circuit Complexity then there exists a sequence of circuits $\{C_n\}$ and some $k>0$ such that $|C_n| = O(n^k)$ and for all $|x|=n$, $x \in L \Leftrightarrow C_n(x)=1$. To show that Polynomial Circuit Complexity is contained in P/Poly, we just let $S_n$ be a description of $C_n$ and let $A$ be CVAL (the Circuit Value Problem). Observe that $x \in L \Leftrightarrow (x,C_{|x|})\in CVAL$. To show the containment of P/Poly in Polynomial Circuit Complexity, let $L$ be a language in P/Poly and let $M$ be a Turing Machine that accepts $A$. Then $x \in L \Leftrightarrow M(x, S_{|x|})$ accepts. Since $A \in P$ we know that there exists some polynomial $p(n)$ which bounds the running time of $M$. Recall the proof that CVAL is P-Complete. From that proof we know that we can transform $M$ into a circuit, $C$, with input $(x,S_{|x|})$ and size $O(p(n)^2)$ such that $C(x,S_{|x|})=1$ if and only if $M(x,S_{|x|})$ accepts. Now we choose $C_n$ to be the circuit $C$ with $S_{n}$ hardwired in as the second input. \end{proof} \end{document}