L’imprecisione fatale

Il 21 ottobre 2015 un giovane fruttivendolo di Ja- ipur (India), Suresh Kumar Sharma, è entrato nel Guinness dei primati per aver recitato a memoria 70.030 cifre di pi greco (il record italiano è di un salentino che ne ha recitate ben 22.801, posizionandosi al decimo posto nel mondo). Tantissime rispetto al 3,14 a cui si limita la maggior parte delle persone; poche rispetto ai 62.800 miliardi di cifre calcolate al computer da un gruppo di matematici svizzeri nel 2021. Pochissime, anzi praticamente niente, rispetto all’infinità delle cifre di π. Ma decisamente eccessive rispetto agli usi pratici: quasi sempre basta proprio il famoso 3,14 per avere una precisione sufficiente nei calcoli e anche gli ingegneri, che con i numeri non scherzano, si fermano per lo più a 3,14159. A volte, però, un piccolo errore di approssimazione in un numero decimale, se propagato, può portare a risultati disastrosi. Dhahran (Arabia Saudita), 25 febbraio 1991, nel pieno della prima guerra del Golfo. Dopo avere invaso il Kuwait, l’Iraq di Saddam Hussein si trova a dover fronteggiare una coalizione militare internazionale, guidata dagli Stati Uniti, contro la quale non ha alcuna possibilità di vittoria. Vuole però vendere cara la pelle e lancia i suoi missili di produzione sovietica, chiamati Scud, contro le postazioni nemiche, fra cui quelle di stanza appunto a Dhahran. Gli americani rispondono con il nuovo gioiello della loro tecnologia, il Patriot (acronimo di Phased Array TRacking to Intercept Of Target): un missile terra-aria in grado di intercettare gli Scud e distruggerli prima che possano raggiungere il bersaglio. Quel giorno però qualcosa non va come dovrebbe. Il sistema Patriot funziona incrociando le osservazioni dei radar con la velocità degli Scud (1.676 metri al secondo, pari a circa 6.000 km/h). Serve quindi un’estrema precisione e per questo l’orologio interno della batteria antimissile misura il tempo in decimi di secondo a partire da quando viene attivato. Solo che i computer non usano la nostra numerazione in base 10 ma quella binaria, cioè in base 2. E mentre nella notazione decimale la frazione 1/10 si scrive semplicemente 0,1, in base 2 è un numero periodico con infinite cifre decimali: 0,00011001100110011… (perché lo sviluppo di 1/10 in potenze di 2 è 1/24 + 1/25 + 1/28 + 1/29 + 1/212 + 1/213 + …). Il computer ovviamente non può gestire un numero infinito di cifre e quindi arrotonda i numeri periodici troncandoli a un certo punto. In questo caso, usando un sistema a 24 bit, dopo 24 cifre (lo 0 prima della virgola più altre 23 cifre). Così introduce un errore di circa 9,5 nanosecondi ogni decimo di secondo. Un’imprecisione apparentemente trascurabile, ma solo sui piccoli numeri. La batteria di Dhahran era stata attivata da più di 100 ore, durante le quali non erano stati avvistati Scud. Dato che in un’ora ci sono 3.600 secondi, in 100 ore i decimi di secondo sono 3.600.000. L’errore di 9,5 nanosecondi, moltiplicato per 3.600.000, ha portato a un errore cumulativo di 0,342 secondi, cioè circa un terzo di secondo. Un margine di accuratezza abbastanza sicuro su scala umana, ma non per uno Scud che in un terzo di secondo percorre oltre 500 metri. Morale della favola: il missile Patriot non intercetta lo Scud, che prosegue la sua traiettoria andando a cadere sulla caserma americana. Bilancio: 27 morti e più di 100 feriti. Come spesso succede, la strage è il frutto di una serie di circostanze concomitanti. Intanto, il Patriot era lo sviluppo di un vecchio missile contraereo: quando erano stati aggiornati gli algoritmi per adattarlo alle maggiori velocità degli Scud, era stato inserito un meccanismo per compensare l’approssimazione, ma l’operazione non era stata realizzata in tutti i punti del codice informatico in cui sarebbe stato necessario. Inoltre, il sistema era stato testato per periodi più brevi, durante i quali non si veniva ad accumulare un errore significativo. La strage quindi poteva essere evitata: anche se l’approssimazione non poteva essere eliminata, la si poteva mettere meglio in conto. E, più semplicemente, bastava resettare molto spesso l’orologio della batteria antimissile.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Dimensione massima del file: 50MB Formati consentiti: jpg, gif, png Drop file here