Also since I wrote this post, Norbert Blum has retracted his proof.
Below is the original post.
A monotone circuit has only AND and OR gates, no NOT gates. Monotone circuits can only produce monotone functions like clique or perfect matching, where adding an edge only makes a clique or matching more likely. Razborov in a famous 1985 paper showed that the clique problem does not have polynomial-size monotone circuits.
I choose Razborov's monotone bound for clique as one of my Favorite Ten Complexity Theorems (1985-1994 edition). In that section I wrote
Initially, many thought that perhaps we could extend these [monotone] techniques into the general case. Now it seems that Razborov's theorem says much more about the weakness of monotone models than about the hardness of NP problems. Razborov showed that matching also does not have polynomial-size monotone circuits. However, we know that matching does have a polynomial-time algorithm and thus polynomial-size nonmonotone circuits. Tardos exhibited a monotone problem that has an exponential gap between its monotone and nonmonotone circuit complexity.I have to confess I never actually read Éva Tardos' short paper at the time but since it serves as Exhibit A against Norbert Blum's recent P ≠ NP paper, I thought I would take a look. The paper relies on the notion of the Shannon graph capacity. If you have a k-letter alphabet you can express kn many words of length n. Suppose some pairs of letters were indistinguishable due to transmission issues. Consider an undirected graph G with edges between pairs of indistinguishable letters. The Shannon graph capacity is the value of c such that you can produce cn distinguishable words of length n for large n. The Shannon capacity of a 5-cycle turns out to be the square root of 5. Grötschel, Lovász, Schrijver use the ellipsoid method to approximate the Shannon capacity in polynomial time.
The Shannon capacity is anti-monotone, it can only decrease or stay the same if we add edges to G. If G has an independent set of size k you can get kn distinguishable words just by using the letters of the independent set. If G is a union of k cliques, then the Shannon capacity is k by choosing one representation from each clique, since all letters in a clique are indistinguishable from each other.
So we have the largest independent set is at most the Shannon capacity is at most the smallest clique cover.
Let G' be the complement of a graph G, i.e. {u,v} is an edge of G' iff {u,v} is not an edge of G. Tardos' insight is to look at the function f(G) = the Shannon capacity of G'. Now f is monotone in G. f(G) is at least the largest independent set of G' which is the same as the largest clique in G. Likewise f(G) is bounded above by the smallest partition into independent sets which is the same as the chromatic number of G since all the nodes with the same color form an independent set. We can only approximate f(G) but by careful rounding we can get a monotone polynomial-time computable function (and thus polynomial-size AND-OR-NOT circuits) that sits between the clique size and the chromatic number.
Finally Tardos notes that the techniques of Razborov and Alon-Boppana show that any monotone function that sits between clique and chromatic number must have exponential-size monotone (AND-OR) circuits. The NOT gate is truly powerful, bringing the complexity down exponentially.
The Shannon capacity is interesting but I feel this post is misleading in several ways by trying very hard to avoid talking about SDPs and the Lovasz theta function. Tardos's function is in fact the Lovasz theta function, appropriately rounded, and I don't think the theta function approximates Shannon capacity to any useful factor in general. So I don't think it's true that we know how to use the ellipsoid method to approximate Shannon capacity. However, we know how to solve SDPs efficiently, and the theta function is the solution to an SDP. It's also monotone and distinguishes k-cliques from complete (k+1)-partite graphs, which is all that's needed.
ReplyDeleteMore details about Tardos' function can be found here.
ReplyDelete