Tab Article
Dal 1936 i costi delle procedure meccaniche di calcolo si misurano contando i passi delle macchine di Turing. Costruiremo la macchina di Turing "universale", capace di effettuare tutte le procedure meccaniche di calcolo concepibili fino a oggi. Tale macchina, pur essendo un oggetto puramente matematico come il numero n, si è progressivamente materializzata nel computer. Approfondiremo la distinzione tra procedure abbordabili, come quelle che regolano l'addizione e la moltiplicazione, e procedure di calcolo il cui costo è proibitivo. Individueremo una classe di problemi la cui complessità oggi non ci è nota, e che sono velocemente traducibili l'uno nell'altro. Il prototipo di questi problemi, denominato sat, chiede di decidere se una formula della logica di Boole sia soddisfacibile. Il problema P/NP chiede se SAT possa essere risolto da una macchina di Turing che utilizza un numero di passi polinomiale rispetto alla lunghezza della formula in input. Se tale macchina esistesse, molti problemi importanti nell'industria e nella vita quotidiana sarebbero risolvibili a costi drasticamente ridotti rispetto ai costi attuali. Come vedremo analizzando l'algoritmo di Euclide, l'ignoranza di algoritmi veloci per il problema SAT ha un'applicazione utile nella crittografia a chiave pubblica.