\documentclass[12pt]{article} %% \usepackage{amstex,epsfig} \newcommand{\ti}{\hbox{TIME}} \newcommand{\p}{\hbox{P}} \newcommand{\pspace}{\hbox{PSPACE}} \newcommand{\np}{\hbox{NP}} \newcommand{\conp}{\hbox{coNP}} \newcommand{\exptime}{\hbox{EXPTIME}} \newcommand{\ntime}{\hbox{NTIME}} \renewcommand {\or} {\hbox{OR}} \renewcommand {\and} {\hbox{AND}} \newcommand {\fp} {\hbox{FP}} \newcommand{\clique}{\hbox{CLIQUE}} %%\newcommand{\iff} {if and only if} \begin{document} \input{preamble.tex} \lecture{13}{March 31st, 1998}{Daniel A. Spielman}{Zulfikar A. Ramzan} In today's lecture, we will discuss circuit lower bounds as well as the tools needed to prove a theorem about lower bounds for sizes of monotone circuits which compute \clique. This result is called Razborov's theorem. \section{Circuit Lower Bounds} The aim of {\em circuit lower bounds} research is to study the difficulty of deciding a class of functions by circuits. Usually one tries to find lower bounds on the sizes of these circuits via combinatorial analysis. The hope is to give us a better understanding of why certain problems are complicated. For general circuits, i.e. a circuit with all three different gates (AND, OR, and NOT), it may be difficult to perform some type of clean combinatorial analysis and get a nice result. Actually, the best known lower bounds for deciding $\np$ funtions under general circuits is only 3n. (unfortunately, linear lower bounds for circuits are not so useful in complexity theory). So to make our task of proving a lower bound easier, we restrict our study to certain classes of circuits. In this lecture we study the circuit lower bounds for deciding the {\bf CLIQUE} function under the class of {\bf monotone circuits}. \section{Monotone Functions and Circuits} First, let's start with some definitions. \begin{definition} A boolean function $f:\{0,1\}^n \longrightarrow \{0,1\}$ is {\bf monotone} if for all $x$ $f(x)=1 \Longrightarrow f(x')=1$ where $x'$ is derived from $x$ by flipping any $0$ in $x$ to $1$. \end{definition} Here is another equivalent way to think about monotone functions: \begin{definition} A function f is {\bf monotone} if $f(\bar{x})=1\Rightarrow f(\bar{y})=1$ for all $\bar{y}$'s such that all bits that are 1 in $\bar{x}$ are also 1 in $\bar{y}$. (So we can see that $f(\bar{y})=0 \Rightarrow f(\bar{x})=0$ for all $\bar{x}$'s such that all bits that are 0 in $\bar{y}$ are also 0 in $\bar{x})$ \end{definition} Yet another equivalent formulation of monotone circuits is: $f(x)=1 \Longrightarrow f(y)=1$ whenever $y$ is greater than $x$ under the partial order defined by the directed edges of the $n$-dimensional hypercube. Here are some examples of monotone functions: \begin{enumerate} \item The all $0$ function; i.e. for all $x$, $f(x)=0$. \item The all $1$ function; i.e. for all $x$, $f(x)=1$. \item Threshold functions; i.e. $f(x)=1$ if there are more than $k$ $1$'s in $x$. \end{enumerate} We can also think about defining monotone functions via a $dual$ property: if $f(x)=0$ and you flip a bit in $x$ from a 1 to a 0 to get $x'$ then $f(x')=0$. It turns out that we can characterize any monotone function $f$ by its set of minterms, where minterms are defined as follows: \begin{definition} The {\bf minterms} of a monotone function $f$ are the inputs on which $f$ evaluates to 1 but if you flip any bit in those inputs from a 1 to a 0, then the evaluation of $f$ on those new inputs is 0. More formally, the set of minterms is: $\{ x \ | \ f(x)=1$, but $f(x')=0$ where $x'$ is derived from $x$ by flipping any $1$ in $x$ to $0 \}$. \end{definition} Similarly, you can characterize $f$ by its {\bf maxterms}: \begin{definition} The {\bf maxterms} of a monotone function $f$ are the inputs on which $f$ evaluates to 0 but if you change any bit in those inputs from a 0 to a 1, then the evaluation of $f$ on those new inputs is 1. More formally, the set of maxterms is: $\{ x \ | \ f(x)=0$, but $f(x')=1$ where $x'$ is derived from $x$ by changing any $0$ in $x$ to a $1 \}$. \end{definition} Here are some examples: \begin{enumerate} \item For threshold functions, the minterms are those $x$ with exactly $k+1$ 1's. And the maxterms are those $x$ with exactly $k$ $1$'s. \item Consider the \clique\ function defined as follows: $\clique_k(x)=1$ if and only if the input $x$ describes a graph that contains a clique of size greater than or equal to $k$. Here we describe a graph by a list of $0$'s and $1$'s (one bit for each possible edge). For example, the input $x$ could be the bits in the upper triangular portion of the adjacency matrix of the graph listed in column major order. From this definition it is clear that $\clique_k$ is monotone, since flipping a bit from a 0 to 1 represents adding an edge to the graph -- and if a graph already has a $k$-clique, and you add an edge to it, then the resulting graph will still have a $k$-clique. In this case, the minterms are the set of graphs for which $k$ of the vertices form a $k$-clique, and any remaining vertices are all isolated (i.e. have degree 0). The maxterms are the set of complete $k-1$ partite graphs -- i.e. graphs for which it is possible to partition the vertices into $k-1$ sets such that there must be an edge between any pair of vertices in distinct sets, but no edge between any pair of vertices in the same set. \end{enumerate} Given this formulation of monotone functions in terms of their minterms, it's not hard to see that any monotone function computing \clique\ can be expressed as a big \or\ of \and s where each \and\ checks, in some sense, whether a particular minterm is in the graph. Of course there could be a simpler way to construct a circuit which computes \clique. Having defined monotone functions, we will now move into the realm of circuits: \begin{definition} A circuit C is {\bf monotone} if it has $\vee$ and $\wedge$ gates, but no $\neg$ gates. \end{definition} \begin{proposition} Every monotone circuit computes a monotone function and every monotone function can be computed by a monotone circuit. \end{proposition} One can use an inductive argument to prove this proposition. Specifically, notice that $\wedge$ and $\vee$ are monotone boolean functions on two single-bit inputs. And, it's not hard to see that if $f$ and $g$ are monotone functions, then so are $f \vee g$ and $f \wedge g$. \section{Razborov's Theorem} Now, we present the main theorem of today's lecture: {\em Razborov's Theorem.} \begin{theorem}[Razborov] Any monotone circuit which computes $\clique_{\log n}$ has at least $n^{\Omega(\log n)}$ gates. \end{theorem} Using similar techniques, and a slightly more intricate analysis, Alon and Boppana were able to get a stronger result: \begin{theorem}[Alon-Boppana] Any monotone circuit which computes $\clique_{n^{2/3}}$ has at least $2^{n^{1/3}/\log n}$ gates. \end{theorem} The rest of today's lecture will discuss the tools needed to prove Razborov's theorem. We start with some definitions: %% %( %% Variables $k$, $l$, and $m$ will appear in the proof. %% While we will not decide on the best values for these until %% the end of the proof, we will give away an approximation %% of the values we will choose so that we can have something %% in mind as we go through the proof. %% \[ %% k\sim n^{{\frac{1}{4}}}, l\sim\sqrt{k}, m\sim{}l^l\newline %% \] %% %) \begin{definition} A {\bf Clique detector} is a function that is 1 if the input graph contains some particular clique, and 0 otherwise. The size of a clique detector is the number of vertices in the clique that it looks for. \end{definition} In other words, a clique detector is an \and\ that examines all edges between a particular subset of the vertices, and returns 1 if all the edges are present. It's easy to build a clique detector: take $l$ vertices, and compute the $\wedge$ for all the edges between them to see whether these $l$ vertices are part of a clique. \begin{definition} A {\bf Clean function} is an \or \ of at most $n$ clique indicators of size at most $k$ (where $n$ is the input size). \end{definition} % Here is the idea behind the proof of Razborov's theorem: Every small monotone circuit can be approximated by a clean function.\newline We do a recursive approximation from the inputs up. Observe that the inputs to the circuit can themselves be thought of as clique indicators of size 2; i.e. if the input is set to 1, then there is an edge present at a particular location, and this edge itself represents a clique of size 2. We show that the \and \ and \or \ of two functions that are approximated by clean functions can also be approximated by a clean functions. But there is one problem, even if $f$ and $g$ are both clean functions, there is no guarantee that $f\wedge{}g$ or $f\vee{}g$ is clean. We get around this by replacing each \or\ with an approximate-\or\ and each \and\ with an approximate-\and. \newline Let's start with the \or\ function. Note that if $f$ and $g$ are clean, then $f\vee{}g$ is the $\or$ of at most $2n$ clique detectors. So to make $f\vee{}g$, we must somehow reduce the number of detectors. We can reduce the number of detectors, by using a combinatorial result due to Erdos and Rado called the {\em The Sunflower Theorem.} \begin{definition} A {\bf sunflower} is a collection of sets $S_1,S_2,...,S_m$ such that $$ \forall{}i{}(p-1)^ll!$, then C contains at least one sunflower with p petals. \end{theorem} Now, in our case, we set our parameters as follows: $k=l= \log \log n$ and $p=(\log n)^3$ (thus, $n \geq (p-1)^l l!$). Given this setting of the parameters, it follows that if we look at the sets of vertices corresponding to the clique detectors in our circuit, then a sunflower exists. Now, we define the following operations on our circuits: \begin{description} \item[pluck($f$)]: let $f$ be an $\or$ of at least $n$ clique detectors, pluck($f$) is obtained by finding a sunflower among the clique detectors, discarding those indicators, and adding their core as a new detector. \item[weed($f$)]: keep applying pluck on $f$ until there are at most $n$ clique detectors left. \end{description} We can now define our approximate-\or\ as: approx-\or\ := weed($f \vee g$). We analyze how this approximation affects the circuit during the next lecture. Now we consider the case of approximate-\and . Observe that if $f$ and $g$ are clean functions, then you can compute $f \wedge g$ as the \or\ of at most $n^2$ \and s (using the distributive law) -- where each \and\ deals with edges from at most $2k$ vertices. However, this is not necessarily a clean function. In order to come up with an approximation, we need to consider some other operations on monotone circuits: \begin{description} \item[cover]: Replace each \and\ with a minimal clique detector that incorporates all edges examined by that \and. More formally: replace $indicator(S_i)\wedge{}indicator(T_j)$ with indicator($S_i\cup{}T_j$). \item[trim]: Remove all clique detectors of size more than $k$. \end{description} Now, we can define our approximate-\and\ as follows: approx-$\and(f,g)$ := weed(trim(cover($f \wedge g$))) Here is some intuition: recall that $f \wedge g$ can be expressed as the \or\ of at most $n^2$ \and s. By first applying cover, we decrease the number of clique detectors. By then applying trim, we insure that the size of each clique detector is at most $k$. Finally, by applying weed, we insure that there are no more than $n$ clique detectors -- thus the resulting circuit is clean. We will analyze how this approximation affects the circuit during the next lecture. \newline This concludes the main tools needed for Razborov's theorem. In the next lecture we will analyze these operations, and present most of the proof of Razborov's theorem. \end{document}