|
There are some computer problems so hard that computer scientists consider them out of reach, like creating airline schedules or predicting economic trends. They label them "intractable" and move on.
But Cornell researchers have developed tools to solve such problems, at least in certain practical situations. Mostly their approach is to have the computer do what a human being might do: stop, go back and start over and try something different.
"Even though these problems are intractable in the worst cases, we can find structure in real-world problems that we can exploit so that the problems do not fall into the worst-case scenario," explained Carla Gomes, associate professor of computing and information science and applied economics and management, speaking at an American Association for the Advancement of Science session on Feb. 21. She and colleague Bart Selman, associate professor of computer science, who moderated the session, have studied these hard problems for several years.
Gomes, who is director of the Cornell Intelligent Information Systems Institute, noted that the hard problems are "combinatorial," in that the computer is given a large set of variables and is programmed to come up with the most effective combination of values to assign to the variables to meet certain constraints. Examples include scheduling airline flights, routing electric power through a grid and predicting economic trends.
Computers attack these problems by trying every possible combination and selecting the one with the best outcome -- or, sometimes, the first decent answer that shows up. An airline, for example, might want the best way to route its 24 aircraft over the next two weeks with six flights a day into 15 airports, using 50 pilots and 65 co-pilots, choosing a result that uses the least fuel. The computer starts by choosing different combinations of value settings, creating an ever-expanding tree of possibilities, repeating the process until an adequate solution is found.
Computers can do this a lot faster than human beings. The catch is that sometimes the computer chooses a tree that takes too long to complete, even by computer standards. There are a large number of possible combinations that take a long time to try. If the computer gets lucky and finds a good solution before it gets around to trying one of those difficult ones, the answer comes up in a few minutes or seconds. But if it happens to hit a combination in the "heavy tail" of the graph, the analysis could take anywhere from days to millennia.
Gomes, Selman and others have come up with a number of strategies to deal with heavy-tailed phenomena in computational problems. One of the most effective approaches is to find a "backdoor set" -- a small number of key variables whose values can be fixed in advance. In an airline scheduling problem with 10,000 variables, Gomes said, sometimes fixing just 12 of them ahead of time makes the problem easy. Most airline scheduling is still done by hand, she noted, and the people who do it use a similar approach, nailing down certain key flights and then filling in the rest of the schedule.
"Humans are very good at seeing the big picture and seeing what's critical," she explained.
| Cornell Chronicle Front Page | | Table of Contents | | Cornell News Service Home Page |