Believe it or not, there are some problems computers just can't solve -- at least not quickly enough to be of any use.
Many of them are of the type computer scientists call "combinatorial" in which the computer has to try out a vast number of different combinations, as in arranging a sports schedule or planning airline flights. Sometimes the computer does just fine until the problem grows past a certain size: add just one more team, or even one more airline passenger, and the time the computer needs to find a solution suddenly becomes excessively long.
Now an international group of physicists and computer scientists has explained why, and their answer may lead to ways to make some of the hard problems easier. The group published their findings in the July 8, 1999, issue of Nature,
The calculations computer programs make can be described by mathematical formulas, and in combinatorial problems some of those formulas look like the mathematics physicists use to describe a "phase transition" in which a substance or a process undergoes a major change. The most familiar example of a phase transition is the change that water undergoes when it freezes into ice. Both "hard" and "easy" problems can show phase transitions, but the research group shows that the "hard" problems are those in which the phase transition is "discontinuous."
"All phase changes are, in a sense, abrupt," says Bart Selman, Cornell University professor of computer science and the lead computer scientist in the group, "but some are more abrupt than others." A "continuous" transition, he explains, might be represented by a line on a graph that goes along horizontally for a while, then drops rapidly before resuming its horizontal course. In a "discontinuous" transition the line simply breaks and reappears somewhere else.
When there is a continuous phase change, the group found, the time needed to solve the problem simply increases in proportion to the number of new elements added. But if the change is discontinuous the time increases explosively -- in mathematical terms, exponentially -- with the number or elements, making it impractical to solve even moderate sized problems.
The work applies to a class of problems known as "NP-complete," a classification that grows out of analyzing the mathematical function that represents the program. You can prove mathematically that the solution to an NP-complete problem will be correct, but on a practical level it may take hours or days of computer time to find that solution in the worst cases. Thousands of different problems have been shown to be NP-complete, and if an efficient way could be found to solve one, it would apply to all. It has been assumed that no such efficient solution exists, but the new work might show ways to get around that, at least in many practical applications.
"This could make the hard problems easier," Selman says "There are some properties of these abrupt phase transitions that we may be able to exploit. Scheduling problems, for example, are very hard, but the hardness arises out of certain destinations that are hard to schedule. If you get certain critical destinations right, the rest of the problem is easy."
One of the reasons hard problems take so long, the group said in its paper, is that a computer making random choices might lock in some of the critical variables with the wrong values, then spend a tremendous amount of time trying combinations with those values, none of which will work. Instead, the authors suggest nailing down problematic variables before giving the problem to the computer. Tell it the plane always has to land in Chicago, no matter where else it goes or how many people it carries.
Worst cases also occur right at the phase transition, Selman adds. In the real world, this happens where the constraints and resources converge, as for example when an airline has just enough planes to handle all the passengers, or a cellular phone system has just enough frequencies for all its calls. Selman is working on designing systems that will be "just to the left" of that critical point, he says.
The paper in Nature is "Determining computational complexity from characteristic 'phase transitions,' " by RŽme Monasson, Ricardo Zecchina, Scott Kirkpatrick, Bart Selman and Lidror Troyansky.