Each year, the Association for Computing Machinery honors a computer scientist for his or her contributions to the field. The prize, which comes with $250,000 thanks to Google and Intel, is named in honor of the British mathematician Alan Turing, who helped develop a theoretical foundation for understanding machine computation. This year, the award is being given to Leslie Valiant, who's currently on Harvard's faculty. Valiant is cited for his contributions to a number of fields, including machine learning, computational complexity, and parallel and distributed computing—the list of achievements appears to be truly staggering.

Like Turing himself, several of Valiant's contributions have provided a theoretical understanding of basic problems that have helped us make a number of practical advances.

Learning from failures

The ACM's description of Valiant's contributions to learning theory provide an excellent example of the sorts of problems a field faces in the absence of an underlying theory. After all, people were already working on machine learning before Valiant published his model, and some of their systems could achieve decent performance. The problem, as the ACM notes, comes from the fact that it's tough to know what to make of a failure. "The importance of clear foundations is that they enable negative as well as positive results: if you can do something, you can simply demonstrate your abilities and avoid worrying about foundational issues," the document reads, "but if you can't, then how are you to know whether this is a personal failing or a genuine impossibility?"

Valiant's approach, called the probably approximately correct (PAC) model, manages to handle this for machine learning. It provides ways of determining whether a training set used to inform a machine learning algorithm provides sufficient information for it to make any accurate predictions at all. And, once trained, allows for the inevitable failures afterward. This sort of behavior can be seen in spam filters where, with only minimal training, they would necessarily let nearly everything through. Once trained, however, there are residual false positives and negatives.

Valiant's work allowed people to start estimating how large a training set they'd need for a given problem, and how computationally expensive it would be to arrive at a solution.

Learning to count

Anyone with a passing familiarity with computation should be aware of the P vs. NP distinction, which determines how easy a given decision—finding the shortest route that passes through 22 points—is to calculate. There are related problems that are distinct from this, however, called counting problems. They could deal with the question of how many routes through those 22 points require less than a specific distance. If the decision problem was hard, the corresponding counting problem would be, too.

Valiant showed that, even when the decision problem is easy, the counting problem could still be hard. He identified a whole class of complex problems, called #P. It turns out that a lot of statistical modeling, such as Markov Chain and Monte Carlo algorithms, are governed by counting problems.

In related work, Valiant also developed a way of estimating the difficulty involved in solving an algebraic formula. This has helped spur analysis of "beyond NP" problems.

How to distribute your computation

As if that weren't enough, Valiant has contributed to distributed and parallel computing. In addition to requiring that work be divided among multiple processors, these approaches require communications among the processors, so the work can be coordinated and the results pooled, and that can create traffic congestion. Implementing a customized scheme to avoid this congestion in software requires compute resources that could be used elsewhere. Doing it in hardware is complex and cuts down on the system's flexibility.

Valiant demonstrated that there was a solution that, mathematically, had to work at avoiding congestion. Instead of heading straight to their destination, every packet should first travel to a randomly chosen node on the network before heading to the destination. This random scattering prevents bottlenecks on a few key routes.

He also provided a way of abstracting custom computing hardware from the process of creating parallel algorithms. In his bulk synchronous parallel model, Valiant argued that we should be able to describe parallel computing hardware with a small number of parameters, which would then allow a compiler to target that architecture appropriately, swapping in distinct algorithms based on the hardware involved. So far, this hasn't won over the field, but it's almost certainly helped inform the debate.

This list of accomplishments sounds like a staggering set of contributions, many of them with clear practical implications.