lunedì 19 maggio 2014

I premi Turing: James H. Wilkinson

Chi di voi ha studiato calcolo numerico all’università? Ricordate quei curiosi algoritmi utilizzabili per trovare soluzioni approssimate a svariati problemi di analisi matematica? Per esempio, i metodi per risolvere sistemi di equazioni differenziali alle derivate parziali, o per calcolare gli autovalori di una matrice?
Uno dei più importanti pionieri di questa branca della matematica applicata fu James Wilkinson. Tra gli anni quaranta e cinquanta fu tra i più brillanti esploratori delle metodologie di analisi numerica implementabili sui calcolatori.
Grazie agli sforzi di Wilkinson e di altri matematici dell’epoca si comprese che una procedura adatta a determinare “a mano” soluzioni esatte a problemi matematici, una volta trasferita pari pari in un programma informatico, può spesso portare a risultati del tutto errati.
Per i suoi contributi in questo ambito, Wilkinson fu insignito del Premio Turing nel 1970.

Nato nella cittadina inglese di Strood nel 1919, Wilkinson si laureò in matematica all'università di Cambridge, a meno di 20 anni e con pieni voti. Nel 1940 fu assunto come ricercatore presso il Mathematics Laboratory della stessa città, e tre anni dopo al centro di ricerca di Fort Halstead.
La sua occupazione in questi istituti di ricerca consisteva nell'escogitare tecniche numeriche di calcolo delle soluzioni di equazioni differenziali alle derivate parziali. Considerando che in quegli anni era in corso la seconda guerra mondiale, non sorprende che il principale ambito d'applicazione di questi studi fosse la balistica.
Proprio sul finire del conflitto, nel 1945, Wilkinson conobbe e sposò una sua collega, Heather Nora Ware.

La versione "pilota" di ACE (1950)
Anche una volta finita la guerra, Wilkinson si trasferì al National Physical Laboratory di Teddington, dove rimase fino al suo pensionamento, avvenuto nel 1980.
Qui continuò ad occuparsi di calcoli legati agli armamenti, ma aggiunse ai suoi settori applicativi anche l’aerodinamica supersonica.
Non poteva immaginare che un giorno avrebbe vinto un prestigioso premio intitolato alla memoria del suo primo capo: Alan Turing. Sotto la direzione del pioniere dell'informatica teorica, infatti, Wilkinson contribuì alla costruzione dell'Automatic Computing Engine (ACE), il primo computer elettronico del Regno Unito, che divenne operativo nel 1950. In particolare Wilkinson fu il progettista del modulo preposto alle moltiplicazioni.
ACE rappresentò un ulteriore passo avanti nella storia della computazione britannica dopo l'EDSAC, realizzato da Maurice Wilkes, premio Turing nel 1967, sempre sulla base degli studi teorici del grande Alan.
Questo computer d'altri tempi conteneva 7000 valvole termoioniche, 70000 resistenze, 10000 capacità, 5 milioni di giunzioni saldate. Era in grado di gestire le subroutine e implementava un rudimentale linguaggio di programmazione, chiamato Abbreviated Computer Instructions.

James Wilkinson col premio Turing (da http://amturing.acm.org)
A partire dalla fine degli anni  cinquanta, Wilkinson cominciò a pubblicare numerosi articoli e fu anche l'autore di due libri molto famosi: "Rounding Errors in Algebraic Processes", uscito nel 1963, e "Algebraic Eigenvalue Problem", pubblicato nel 1965.
Sempre in quel periodo cominciò a tenere lezioni al Summer College of Engineering dell'Università del Michigan. Un po' alla volta le sue scoperte nel campo del calcolo numerico diventarono note a un pubblico più vasto, e Wilkinson cominciò a ricevere numerosi premi e riconoscimenti, che culminarono nel 1970 con la vittoria del premio Turing. La motivazione faceva riferimento alle "sue ricerche di analisi numerica che hanno facilitato l'uso dei computer digitali ad alta velocità, con speciale riconoscimento per il suo lavoro nella computazione nell'algebra lineare e nell'analisi degli errori 'all'indietro'".

Che cosa sarà mai questa analisi degli errori "all'indietro" (backward)? Immaginiamo che per un certo problema sia stato escogitato un algoritmo numerico approssimato, in grado di trovare, a partire da un dato di ingresso x, un risultato y*. Ora, tale risultato sarà in generale diverso dalla soluzione esatta y. Mentre l'analisi degli errori "in avanti" (forward) si concentra sulla differenza y* - y, l'analisi backward permette di trovare il dato di ingresso x+Δx tale per cui, risolvendo il problema attraverso la procedura esatta, il risultato sarebbe stato proprio y*. Se si scopre che, per ogni dato di ingresso x, l'errore "all'indietro" Δx è piccolo, allora possiamo dire che l'algoritmo approssimato è "stabile all'indietro", il che fornisce un significativo indice della bontà della metodologia numerica utilizzata.

Il "meglio" degli studi di Wilkinson confluì nel 1971 nel celebre "Handbook for Automatic Computation", scritto insieme a C. Reinsch.
Wilkinson morì nel 1986. Nella lezione che tenne nel 1970 dopo aver ricevuto il Premio Turing, raccontò un interessante lato della personalità del suo maestro:

Turing aveva una forte propensione al ricavare i suoi risultati dai principi primi, e in prima istanza non usava consultare alcun lavoro precedente sull'argomento. Senza dubbio fu grazie a questa sua abitudine che la sua opera acquistò un sapore caratteristico e originale.
Mi sono ricordato di una frase che Beethoven pare abbia pronunciato quando gli fu chiesto se avesse ascoltato una certa opera di Mozart particolarmente famosa. Beethoven rispose di no, e aggiunse: "nemmeno l'ascolterò, altrimenti perderò un po' della mia originalità".

1 commento: