精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>科学大观>>● 自然科学>>数学>>著名计算机专家Knuth谈P=NP

主题:著名计算机专家Knuth谈P=NP
发信人: wasguru()
整理人: bsese(2000-05-31 10:33:19), 站内信件
这已经是1995年的事了,当时费马最后定理刚刚获得证明。

P=NP is the most famous unsolved problem in computer science,
analogous to Fermat's Last Theorem, although the P=NP problem has
only been around for about 30 years, 25 maybe. In the context of
combinatorial algorithms, it says: Are we going to be able to
solve problems that would require going through 2^n cases? Can we
actually do those in n^10, or something like that, if we knew the
best method? if P=NP, the answer would be "yes", with some
polynomial: we could reduce all these exponential problems to
polynomial problems. If not, the answer is "no", we'll never to
able to reduce them.

I have a feeling that someone might resolve the problem in the
worst possible way, which is that following. Somebody will prove
that P is equal to NP because there are only finitely many
obstructions to it not being equal to NP. [laughter] The result
would be that there is some polynomial such that we could solve
all NP problems in polynomial time. However, we won't know what
the polynomial is; we'll just know that it exists. So maybe the
complexity will be n to the trillionth or something like that ---
but it'll be a polynomial. In such a scenario we'll never be able
to figure it out because it would probably take too long to find
out what the polynomial is. But it might exist. Which means that
the whole question P=NP was the wrong question![laughter] It might
go that way. You see, even if you have a method that takes 2^n
steps and you compare it to a method that takes n^100, then at
least you can use the 2^n one for n up to 20 or 30. But the n^100
you can't even do for n=2. So the degree of that polynomial is
very important. There are so many algorithms out there, the task
of showing that no polynomial algorithms exist is going to be very
hard. Still, I really thought that Fermat's Theorem was a similar
kind of thing, where it was more important to have the problem
than to solve it. Therefore, my real feeling about Wiles's Theorem
is that he did a marvelous wonderful piece of work, but I wish
he'd solved something else! [laughter]

A lot of people think that as soon as a problem is shown to be in
this class NP, they shouldn't work on it, because it means that
there's probably no polynomial way to solve the problem. But
before we studied NP, we had unsolvable problems --- problems for
which there didn't exist any algorithms at all. No matter how long
you worked, you could never solve the problem. To tell whether a
given Turing machine ever stops: This problem is unsolvable by any
algorithm, in general, no matter how long you give yourself. In
the days before NP became famous, people would stop working on a
problem as soon as it was proved to be unsolvable in general. But
that was a bad strategy, because almost every problem we ever
solve is a special case of some unsolvable problem.

Take calculus, for example --- the problem of taking a formula, a
function of n, and saying: "Is the limit as n goes to infinity
equal to zero or not?" That's an unsolvable problem. But its
unsolvability doesn't imply that we shouldn't study calculus. I
mean, limits of lots of useful functions do go to zero, and
therefore people were able to develop calculus. But the general
problem is unsolvable. I mean, you could define f of n --- it only
takes a few lines to make a formula that is equal to zero if a
given Turing machine is stopped at time n, and it's equal to 1 if
the Turing machine is still going at time n. And so the limit is
equal to zero if and only if that Turing machine stops. It's
unsolvable.

A similar thing happens with NP. That is, we have lots of special
cases of problems that are NP-hard that we can solve efficiently;
just knowing that something is NP doesn't mean that it's a good
idea to give up on it or to stop trying to get good heuristic
methods for it.


--
※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 144.92.44.76]

[关闭][返回]