Knuth and P = NP

Dated:

The official site of ACM Turing Award winners describes Donald E. Knuth as the rare theoretician who writes many lines of code every day. His main life goal from the 1960s onwards is, in a nutshell, to nail the costs of computation down to the last penny.

Knuth’s school of computer scientists has no time for impractical asymptotic claims, nor room for Bourbaki’s devotion to infinite constructions. In fact, tensions between the abstract and the concrete led Knuth in 1968 to switch from being a math professor to become a computer science professor. By developing his own “concrete mathematics” at Stanford University, he paved the way for answering quantitative questions about the exact cost of running different algorithms on real computers.

My aim here is to place Knuth’s analysis of algorithms into a historical perspective. For this reason, I asked him to contrast his views on asymptotic methods, models of computation, pointer-based data structures, and the like with those of his contemporaries, particularly the theorists including Juris Hartmanis, Stephen Cook, Alfred Aho, and Robert Tarjan.

Meta-considerations constitute another theme throughout the discussion: Why should we historians and computer scientists reflect on the past in the first place, and how can we do so effectively?

The result of this effort is the present booklet, which covers several topics including incentives to study history, events that led to algorithmic discoveries, the beginnings of TeX, and Knuth’s evolving views on the P versus NP question. Many topics in this booklet are interrelated. No attempt is made to disentangle them. On the contrary, my aspiration is to analyze a large part of computing’s past from multiple angles simultaneously. For example, I look at the creation of TeX in other ways than as seen in the documentation of TeX by experts in digital typography. By discussing the making of TeX in the broadest possible terms, other topics can intermittently take center stage such as Knuth’s stance on the P versus NP question in a 1985 paper describing an implementation technique of TeX. Another example is Knuth’s passion for analyzing past developments in science and technology — a passion which becomes apparent when Knuth explains how the work of two masters in analog typography influenced his research on digital typography.

By analyzing several writings of Knuth from these complementary angles, we also start to get some grip on the incentives for Knuth to reverse his opinion with regard to the P versus NP question, and we begin to see multiple reasons why historical awareness is so important to Knuth and to society in general.

The outcome of this booklet, then, is the painting of a vast landscape, linking Knuth’s devotion to the algorithmic, the finite, and the programmable machine to his strong aptitude for mathematics and asymptotics in particular. Seeking the right balance between practice and theory — between the finite, real computer and the infinite Turing machine — is a research agenda that many computer scientists share. Knuth’s role in this regard is vividly told here by no one other than Knuth himself.