\documentclass{article} \usepackage{amsmath,amssymb} \DeclareMathOperator{\PH}{PH} \DeclareMathOperator{\PSPACE}{PSPACE} \DeclareMathOperator{\FP}{FP} \DeclareMathOperator{\GapP}{Gap-P} \DeclareMathOperator{\acc}{acc} \DeclareMathOperator{\rej}{rej} \DeclareMathOperator{\OR}{OR} \DeclareMathOperator{\AC}{AC} \input{preamble.tex} \begin{document} \def\st{\ |\ } \def\sub{\subset} \def\NumP{\# P} \def\R{\mathbb{R}} \lecture{11}{March 9, 2000}{Dan Spielman}{Michael Brewer} \section{Old News} First, a clarification of what happened last time. We showed that given an OR gate with arbitrary parity, $\OR(x_1,\dots,x_n)$, we could replace it with a randomized polynomial $P(r,x_1,\dots,x_n)$, having degree $O((\log n)^k)$ and with $|r| = O((\log n)^k)$ for some $k$, such that $$\forall x \left( \Pr_{r}(\OR(x_1,\dots,x_n) = P(r,x_1,\dots,x_n) ) > 1 - \left(\frac{7}{8} \right)^{n^{k-3}} \right).$$ Given an $\AC_0$ circuit $C$ of constant depth $c$, then, we can replace each $\OR$ gate with $P$, and each AND gate with $1 - P(1 - \overline{x})$ to get a polynomial $P_C$ with degree $O((\log n)^{k+c})$. Given that $$\#\{\text{gates}\} \times \left(\frac{7}{8} \right)^{n^{k-3}} < \frac{1}{4},$$ we have that $$\Pr_{r} (C(x_1,\dots,x_n) = P_C(r,x_1,\dots,x_n)) > \frac{3}{4}.$$ Now, assuming that $C = \text{parity}(x_1,\dots,x_n)$, and transforming our polynomials from $\{0,1\}$ to $\{1,-1\}$, as discussed last time, we get that $\text{parity}(x_1,\dots,x_n) = \prod_{i=1}^n x_i$. Fixing our random bits $r$, we get that $P_C(r,x_1,\dots,x_n) = \text{parity}(x_1,\dots,x_n)$ on 3/4 of the inputs. Let $S = \{\text{inputs on which $P_C$ and parity agree}\}$. Then, for the function space $S \to \R$, maps from $S$ to the real numbers, we have $\dim (S \to \R) \geq \tfrac{3}{4} \cdot 2^n$. On the other hand, using the parity function, we only need monomials of degree at most $\tfrac{n}{2}$ to express all such functions, using the fact that $(\pm 1)^2 = 1$ and the fact that any monomial is equivalent to one of smaller degree modulo the parity function. This is a contradiction, since $\tfrac{n}{2}$ is much smaller than $\tfrac{3}{4} \cdot 2^n$. In fact, by careful analysis of the proof above, we get that a circuit computing parity needs $2^{n^{\Omega(1/d)}}$ gates. Now on to the new material: \section{A Relativization for $\PH \not= \PSPACE$} \begin{theorem}There exists an oracle $A$ such that $\PH^A \subsetneq \PSPACE^A$. \end{theorem} \begin{proof} The idea is to find something that a $\PSPACE$ machine can do easily, but which is very hard for a $\PH$ machine. We will essentially use a very long parity computation. For an oracle $A$, define $$L_A = \{0^n \st A \ \text{has an odd number of strings of length $n$}\}.$$ \begin{itemize} \item $L_A \in \PSPACE^A$. To see whether $0^n \in L_A$, we check whether each word of length $n$ is in $A$, keeping a running total of how many are, and compute parity of the total. \item $L_A \not\in \PH^A$. It suffices to show that $L_A \not\in \Sigma_k^P$ for any $k$, and in particular to show that no $\Sigma_k^P$ machine which runs in time $n^c$ for constant $c$ decides $L_A$. Suppose, to the contrary, that such a machine $M$ did decide $L_A$. \begin{figure}[h] \begin{center} \input{circuit.latex} \caption{\text{Circuit representing $M$.}} \label{figure:circuit} \end{center} \end{figure} We can represent $M$ with an alternating circuit $C$, a loose diagram of which is given in Figure \ref{figure:circuit}, which starts with an OR gate, has branching factor $2^{n^c}$ at each node, and does polynomial ($n^c$) work at each leaf. Note the size of this circuit isn't quite polynomial in $2^n = N$. Its size is bounded by $2^{k(\log N)^c} < 2^{N^{1/k}}$ for sufficiently large $N$, however, so we will be able to apply our circuit lower bound on parity. At each branch, $C$ can access the oracle polynomially many times. To apply our lower bound, we'll need to correct this: \begin{claim} For any oracle machine $M^? \in \Sigma_k^P$, there exists ${M'}^? \in \Sigma_{k+2}^P$, equivalent, which reads the oracle only once on each branch. \end{claim} \begin{proof-sketch} We want $M'$ to simulate $M$. We can assume $M$ passes through all $\exists$ and $\forall$ states before asking questions of the oracle. $M'$ will follow $M$ through this stage. At this point, $M'$ will: \begin{enumerate} \item Use $\exists$ state to guess which questions $M$ will ask of the oracle, and what the answers the oracle gives will be. \item Simulate $M$ using these guesses, rejecting if $M$ asks a question that $M'$ didn't guess the answer to above. \item Use $\forall$ state to choose one question from (a), ask the oracle that question, and accept if and only if its guess agreed with the oracle. \end{enumerate} \end{proof-sketch} \pagebreak Now, for any $M \in \Sigma_k^P$, for each input length $n$, on input $0^n$, we get some depth $k+2$ AND/OR circuit of size $2^{\textit{poly}(n)}$, with inputs of whether or not a single word of length $2^n$ is in the oracle, and NOTs just above the inputs. We can feed the circuit the words in the oracle of length $n$ to decide whether or not the circuit accepts. From our circuit lower bound, we know that for some sufficiently large $n$, there exists $A$ such that the circuit gets parity wrong. That is, either $M^A(0^n)$ accepts when $0^n \not\in L_A$, or $M^A(0^n)$ rejects when $0^n \in L_A$. To diagonalize, build the following $A$. Enumerate machines $M_i$, and find for each $i$ sufficiently large $n_i$ so that $M_j$, $j < i$, asks no questions about words of length at least $n_i$ on input $0^{n_j}$, and so that there exists some language $A_i$ for which $M_i$ fails to compute parity. Make $A$ agree with $A_i$ on words of length $n_i$. \end{itemize} \end{proof} \section{$\NumP$ and $\GapP$} We previously defined $\NumP$. Note that this class is inflexible: the sum or product of two functions is in $\NumP$, but the difference is not. We define something a bit easier to work with. Write \begin{align*} \acc_M(x) &= \#\{\text{accepting paths of $M$ on $x$}\} \\ \rej_M(x) &= \#\{\text{rejecting paths of $M$ on $x$}\} \end{align*} \begin{definition} A function $f \in \GapP$ if there exists a polynomial-time non-deterministic TM $M$ such that $$\forall x (f(x) = \acc_M(x) - \rej_M(x)).$$ \end{definition} \begin{theorem}$P^{\NumP} = P^{\GapP}$.\end{theorem} \begin{proof} \begin{itemize} \item $P^{\GapP} \sub P^{\NumP}$. We must compute in $P^{\NumP}$, for a polynomial time NTM $M$, $\# \{\text{accepting paths of $M$}\} - \#\{\text{rejecting paths of $M$}\}$. Using the $\NumP$ oracle will give us the number of accepting paths. To get the number of rejecting paths, we swap the accept and reject states for $M$, creating a new NTM $M'$, and call the $\NumP$ oracle on $M'$. \item $P^{\NumP} \sub P^{\GapP}.$ Given a polynomial time NTM $M$, replace our reject states as follows: \begin{figure}[h] \begin{center} \input{modify.latex} \caption{\text{Change in reject states of $M$.}} \end{center} \end{figure} Call the resulting machine $M'$. Then $$\acc_{M'}(x) - \rej_{M'}(x) = \acc_M(x).$$ \end{itemize} \end{proof} Some great things about $\GapP$: \begin{lemma} Let $f,g \in \GapP$ and $h \in \FP$, the class of polynomial-time-computable functions. Then \begin{enumerate} \item $f + g \in \GapP$ \item $-f \in \GapP$ \item $f \cdot g \in \GapP$ \item $h \in \GapP$ \end{enumerate} \end{lemma} \begin{proof} Suppose that $M_f$ and $M_g$ are defining NTMs of $f$ and $g$, respectively. Then \begin{enumerate} \begin{figure}[h] \begin{center} \input{fplusg.latex} \hspace{15ex} \input{fg.latex} \caption{\text{Defining NTMs for $f + g$ and $f \cdot g$, respectively.}} \label{figure:plusandtimes} \end{center} \end{figure} \item $f + g$ has as defining NTM the machine on the left hand side of Figure \ref{figure:plusandtimes}. Clearly the number of accepting and rejecting states add. \item $-f$ has as defining NTM the machine generated from $M_f$ by swapping accept and reject states. \item The defining NTM for $f \cdot g$ has computation structure as on the right hand side of Figure \ref{figure:plusandtimes}. We modify the machine so that it accepts if both $M_f$ and $M_g$ accept or both reject. Call the result $M'$. We have on input $x$, \begin{align*} \acc_{M'}(x) - \rej_{M'}(x) &= \acc_{M_f}(x) \acc_{M_g}(x) + \rej_{M_f}(x) \rej_{M_g}(x) \\ &\hspace{10ex}- \acc_{M_f}(x) \rej_{M_g}(x) - \rej_{M_f}(x) \acc_{M_g}(x) \\ &= (\acc_{M_f}(x) - \rej_{M_f}) \cdot (\acc_{M_g}(x) - \rej_{M_g}) \\ &= f(x) \cdot g(x) \end{align*} as desired. \item Define $M$ to, on input $x$, deterministically compute $h(x)$. If $h(x) = 0$, then $M$ will branch once, accepting on one branch and rejecting on the other. If $h(x) > 0$ ($< 0$, respectively), then $M$ will branch according to the following recursive rule applied to $|h(x)|$, accepting (resp., rejecting) on each leaf. If $M$ needs to create 1 node, it will not branch, otherwise $M$ will branch, creating $\lceil |h(x)| \rceil$ leaves on its left branch, and $\lfloor |h(x)| \rfloor$ leaves on the right branch. \begin{figure}[h] \begin{center} \input{three.latex} \caption{\text{Branching diagram for $M$ when $h(x) = 3$.}} \label{figure:three} \end{center} \end{figure} In all $M$ will create $|h(x)|$ leaves, so that $\acc_M(x) - \rej_M(x) = h(x)$. An example for $M$'s branching process when $h(x) = 3$ is in Figure \ref{figure:three}. \end{enumerate} \end{proof} \end{document}