[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: computer-go: NP-complete problems solved?



> 
> 
> On Mon, Oct 23, 2000 at 10:29:38AM -0700, Patrick G. Bridges wrote:
> 
> > Except according to a proof in Papadimitrou;s "Computational Complexity", 
> > Go is *not* NP, Go is PSPACE-complete, and PSPACE > NP.
> 
> Can you give us (non-mathematicians) some enlightenment about the
> differences?

Ah, I was wrong, if P = NP, then PSPACE=P=NP=coNP, etc... Interesting.

(I'm going to include a general computational complexity discussion here
for completeness. The PSPACE stuff is at the end, and I'm a systems weenie, not
a theory weenie, though I did have the required graduate theory course as part
of my doctoral work)

Problems in P can be solved in polynomial time (for size of problem n, they
can be solved in time a*n^c, where a and c are fixed constants for 
a given solution to the problem) on a deterministic turing machine(DTM), i.e. a 
regular computer.  Problems in P (sometimes called PTIME, meaining
polynomial time) are generally those thought of as tractable.

Problems in NP can be solved in polynomial time on a non-deterministic turing 
machine (NDTM). A non-deterministic turing machine, is (sort of) intuitively a 
computer that is allowed to "guess" between a constant number of choices, and
always guess correctly. One of the big theoretical conjectures in CS is 
P ?= NP. Clearly, those problems in P are a subset of those problems in NP.
Strangely enough, we can't prove whether there are problems in NP that are 
not in P. 

Problems that are NP-complete are conceptually the "hardest" problems in NP.
Any problem in NP can be reduced to one of these problems. For example, the 
travelling salesman problem (TSP) is NP-complete. This means if we can figure 
out how to solve TSP in deterministic polynomial time, then we can solve 
*every* problem NP problem in PTIME. Solving TSP, or any other NP-complete
problem in PTIME is sufficient to prove that P = NP, i.e., that every 
problem in class NP can be solved in polynomial time on a DTM.

So, P is a subset of NP. (P = NP is the question of whether P is a *proper* 
subset of NP.) Most people *believe* that it is, though noone has been able to
prove it. 

NP is a subset of other classes of problem. Here's one: PSPACE.
PSPACE are those problems that can be solved using a polynomial amount of 
storage. NP is clearly a subset of PSPACE, since in polynomial time, we can
only use polynomial storage.

Now, it turns out that NP is a proper subset of EXPTIME. There are problems 
that are in EXPTIME that are not in NP. It's not clear whether NP is a proper
subset of PSPACE. So, what people have done is outline the "hardest" problems
in PSPACE, namely PSPACE-complete problems. PSPACE-complete problems are those
that *every* other problem in PSPACE (and P and NP...) can be reduced to.
Go is one of these problems, where (n is size of the board.)

Now, it turns out that if P = NP, then P = NP = PSPACE, and Go should be
soluble in polynomial time. Of course, most people believe that P != NP, and
that PSPACE is a strict superset of P and NP, but no one has proved it yet.
The person we're talking about claims to have proven that P = NP by solving
a known NP-complete problem, the k-clique problem. 

-Patrick