aritmetica finita (di macchina)
aritmetica finita (di macchina) ambiente in cui opera un automa esecutore, in particolare un computer. Qualunque sia il modo in cui i numeri sono rappresentati al suo interno, uno strumento di calcolo automatico presenta sempre delle limitazioni di spazio: può memorizzare soltanto un numero finito di cifre e opera, quindi, sempre con numeri che si trovano entro un determinato intervallo e che sono rappresentabili con un numero finito di cifre decimali (sono perciò esclusi numeri periodici e numeri irrazionali). Quando il numero ha più cifre dei posti a disposizione (o addirittura un numero infinito di cifre decimali), alcune cifre necessariamente si perdono e si perde dunque parte dell’informazione. Nella maggior parte dei casi, perciò, il numero che viene rappresentato in una macchina di calcolo è solo una approssimazione del numero reale con cui teoricamente si opera. Tale approssimazione può avvenire seguendo i due consueti metodi di arrotondamento oppure di troncamento. Occorre allora distinguere tra due diversi insiemi numerici: quello teorico o ideale con il quale si opera (per esempio l’insieme dei numeri reali R), e l’insieme F dell’effettivo → ambiente di calcolo con cui opera una macchina, detto insieme dei numeri macchina (→ numero macchina; il simbolo F deriva dall’espressione inglese floating point, virgola mobile). L’aritmetica finita di macchina si distingue dall’aritmetica usuale operante su R in quanto regole operative e risultati derivanti dal calcolo in F potrebbero essere diversi da quelli che si otterrebbero in R applicando le stesse procedure di calcolo. Le ragioni di tale differenza risiedono nella limitatezza intrinseca della rappresentazione dei numeri reali, che può comportare errori tali da rendere inaffidabile il risultato di un calcolo. Se per esempio una calcolatrice rappresenta i numeri in forma esponenziale e ha a disposizione 13 posti per le cifre del numero (compresi un posto per l’eventuale segno e uno per il punto decimale) e 3 posti per le cifre dell’esponente (compreso il posto per indicare il segno dell’esponente), il numero massimo rappresentabile è 9,9999999999 · 1099, mentre il minimo numero positivo rappresentabile è 1 × 10−99. Con tali limiti non sono rappresentabili gli infiniti numeri reali compresi tra 0 e 1 x 10−99. Qualunque sia la macchina, l’insieme F ha le seguenti caratteristiche:
• è finito, e di conseguenza ha un massimo e un minimo;
• ha un ordinamento discreto, e quindi, né denso né continuo.
A fronte di un unico insieme R dei numeri reali, caratterizzato dai suoi assiomi, infinito e dotato di ordinamento continuo, esistono diversi insiemi F, che variano per il numero di elementi che vi appartengono, a seconda del particolare tipo di macchina calcolatrice nella quale l’insieme F realizza una particolare implementazione di R. Gli errori di approssimazione (per arrotondamento o troncamento) che compie la macchina talvolta non sono determinabili con certezza e ciò comporta notevoli conseguenze: una di esse è data dalla situazione di overflow, che si presenta quando un numero supera le capacità di rappresentazione della macchina. La limitatezza determina inoltre il fatto che nell’insieme F dei numeri macchina non valgono le proprietà algebriche che caratterizzano un insieme numerico matematico. Infatti, né l’addizione né la moltiplicazione godono della proprietà associativa né vale la proprietà distributiva della moltiplicazione rispetto all’addizione. Se, per esempio, una calcolatrice accettasse solo numeri interi con al più tre cifre, il minimo dei numeri macchina sarebbe −999 e il massimo 999. Tale strumento calcolerebbe 700 + (300 + (−100)) = 900, ma associando diversamente i numeri da addizionare si avrebbe (700 + 300) + (−100) = overflow giacché il risultato parziale (700 + 300) non sarebbe esprimibile dalla macchina. Nell’elaborazione dei dati, nel calcolare il valore di una formula, nel determinare le soluzioni di un’equazione, occorre spesso eseguire molti calcoli successivi, nei quali gli errori di approssimazione dovuti all’aritmetica finita della macchina si propagano diventando sempre maggiori fino, talvolta, a rendere insignificanti i risultati ottenuti. Oltre agli errori algoritmici, legati alle operazioni eseguite in un particolare algoritmo, che dipendono dal tipo e dal numero di operazioni eseguite e talvolta possono essere ridotti con un’opportuna scelta dell’algoritmo stesso, nel calcolo automatico si presentano due tipi di errori non eliminabili:
• errori di rappresentazione, dovuti al modo in cui i numeri reali forniti come dati di ingresso sono rappresentati e approssimati nell’insieme F; essi dipendono in tutto e per tutto dalla macchina utilizzata e, avendo a disposizione una particolare macchina, non possono essere ridotti;
• errori analitici che si presentano quando, dal punto di vista matematico, occorrerebbe eseguire un numero infinito di operazioni, mentre ogni algoritmo si sviluppa in un tempo finito e prevede un’interruzione a seguito del verificarsi di una determinata condizione o del raggiungimento dell’approssimazione della soluzione desiderata.