Knuth


Door Walter Kosters

Uit IMPACT 6 (Jaargang 2), December 1998; uitgave van de Stichting IMPACT

Walter Kosters

Voor natuurkundigen roept de naam Feynman allerlei associaties op. Die zijn veelal verbonden met de bijzondere boeken die hij schreef, zoals "Surely you're joking, Mr. Feynman" en met name de naar hem genoemde "Lectures on Physics". Naast een geniaal natuurkundige was Feynman ook een briljant schrijver en overdrager van ideeen. Als je in de wiskunde zoekt naar soortgelijke personen (Feynman noemt overigens mensen als Einstein, Von Neumann en Pauli, die tot zijn schrik een keer een voordracht van hem bijwoonden, wel monster minds) wordt het lastiger. De naam Hilbert valt misschien: een van de laatsten die nog een breed en diep overzicht over het vak had, en daarvan verslag deed begin deze eeuw.

Voor informatici is het eenvoudiger. Tien tegen een dat zij denken aan Donald E. Knuth. Aan hem is dit stuk gewijd. Nu moet dat laatste woord niet te letterlijk genomen worden, maar in het geval van Knuth komt het dicht in de buurt.

Sinds enige tijd is Knuth "Professor Emeritus of The Art of Computer Programming" aan Stanford University in Californie. Zijn meest bekende boeken zijn getiteld "The Art of Computer Programming", vandaar de naam van zijn aanstelling. Hij mag nu in feite doen wat hij wil - maar dat deed hij altijd al. De stroom publicaties blijft ononderbroken. Zo komen deze jaren naast een eerste versie van deel 4 van zijn hoofdwerk ook bijgewerkte versies van de eerste drie delen uit. En onlangs diverse bundelingen van ander materiaal. En (moet dat) een boek van zijn vrouw. En op Internet (http://www-cs-staff.stanford.edu/~knuth/) is zijn werkschema voor de komende jaren te bewonderen: deel 5 staat gepland voor 2009.

Knuth kwam eind jaren vijftig als jong wiskundestudent in aanraking met computers. Hij kan nog lyrisch worden over zijn toenmalige ervaringen met de IBM 650, de eerste op grote schaal verkochte computer. Zijn proefschrift, resulterend in een artikel in de Transactions van de AMS van 1965, ging over een onderwerp uit de projectieve meetkunde. In 1968, het jaar waarin hij dertig werd, kwam het eerste deel van "The Art of Computer Programming" uit; hierin wordt aandacht besteed aan "Fundamental algorithms". Deel 2 ("Seminumerical algorithms") zag het licht in 1969, deel 3 ("Sorting and searching") in 1973.

Echter: deel 4 pas eind jaren negentig? Wat was er gebeurd? Zijn oorspronkelijke plan (in de lente van 1977) was om een jaar te werken aan algoritmen voor "typography". Het werden er meer dan acht. Conclusie van Knuth: "Software is hard; and it takes a long time". Maar het resultaat was de moeite waard: TeX. Ook buiten de informatica was de naam Knuth nu gevestigd. Voor de duidelijkheid: nergens wekt Knuth de indruk dat hij daarop uit is. Hij blijft vriendelijk, ook tijdens voordrachten, en beantwoordt zelfs zijn email - mits die gaat over eventuele fouten of onduidelijkheden in zijn boeken. Als het fouten zijn krijgt de vinder een cheque ter waarde van 2.56 dollar, of iets dergelijks - voor in het plakboek.

[PLAATJE] De precisie en de hoeveelheid van de door Knuth geproduceerde teksten zijn onthutsend. Soms is de humor ook bijzonder, evenals de ijzeren doordachtheid. De eerste vraag uit het TeX-boek is wat je gaat worden: een technician of texpert - in Appendix A (Antwoorden) staat het antwoord. En wat doet Bo Derek in het TeX-boek? In "Axioms and hulls" legt onze auteur verbanden tussen spiegelingsnetwerken en de oude volkssport change-ringing: het in bepaalde afwisseling luiden van kerkklokken.

Knuth is blijkbaar iemand met een zeer brede belangstelling. Dat blijkt bijvoorbeeld ook uit zijn boek 3:16. Daarin bespreekt hij van alle Bijbelboeken het zestiende vers van het derde hoofdstuk (bijvoorbeeld uit het Johannes-evangelie). Knuth zou Knuth niet zijn, als hij niet een algoritme had bedacht om te beslissen wat te doen als een boek minder dan drie hoofdstukken heeft, of het derde hoofdstuk minder dan zestien verzen. Overigens is het grondidee dat Knuth hier gebruikt interessant: om een inzicht in iets heel ingewikkelds te krijgen neem je een random (willekeurig) steekproef eruit, en ga je daar diep op in. Gelukkig had hij daar ook al weer over geschreven (in deel 2).

Maar zijn belangstelling gaat ook uit naar leuke (kleine) algoritmen. In 1972 gaf zijn collega Floyd als opgave aan informatici, zojuist begonnen aan hun proefschrift, het volgende probleem: De getallen wortel 1,wortel 2, ..., wortel 50 moeten verdeeld worden in twee groepen waarvan de som vrijwel gelijk is; vind een zo goed mogelijke opdeling, waarbij je 10 seconden computertijd mag verbruiken. Daarover schreef Knuth een populair wetenschappelijk verhaal in 1977. In 1996 werd die tekst weer bijgewerkt.

Samengevat: je blijft lezen - en Knuth blijft schrijven.


De webpage van Walter Kosters
Naar de index van dit nummer van IMPACT.
Naar de IMPACT Home Page