Shanghua Teng, a professor of computer science at Boston University and Daniel Spielman, a professor of applied mathematics and computer science at Yale University, have been awarded this year's $50,000 Godel Prize award by the ACM's Special Interest Group on Algorithms and Computing Theory and the European Association for Theoretical Computer Science for outstanding papers in theoretical science.

Teng and Spielman were recognized for their paper Smoothed Analysis of Algorithms: Why the Simplex Algorithm Usually Takes Polynomial Time. In it, they explain why a common algorithm, used to solve efficiency problems everywhere from airlines to online games, functions so well, especially in business.

Developed by George Dantzig, the simplex algorithm has practical application in almost all areas of business, including advertising, distribution, pricing, production planning, and transportation, among others. Dantzig's algorithm has also been successfully applied to diet design, resource conservation, and economic growth prediction. Stan Sclaroff, chair of the Boston University computer science department, says the simplex method is designed to find a solution in a reasonable amount of computing time and behaves very well in practice. But on paper, scientists were able to contrive worst-case scenarios by introducing abnormalities that would cause the algorithm's behavior to be "horrifyingly bad."

"For these problem configurations, its running time grows exponentially in the number of constraints to satisfy, and thus it could take virtually forever to find the problem solution," Sclaroff says. "Smoothed analysis gave an explanation for why the simplex method behaves very well in practice despite the menace of its worst-case complexity. Explaining this behavior had been an open problem since the simplex method's inception."

Teng's and Spielman's work also represents an advance in predicting the performance of algorithms as well as heuristics, which are methods of solving problems through intelligent trial and error. Understanding the mathematical structure of these problems is necessary to designing efficient algorithms and software.