Algoritmi e Complessità Università di Camerino Corso di Laurea in Informatica (tecnologie informatiche) III periodo didattico Docente: Emanuela Merelli Email:emanuela.merelli@unicam.it
Lezione 2 Teoria della computabilità Argomento: La Macchina di Turing Obiettivo conoscitivo: L utilità di un modello formale di calcolo: MdT
Alcune nozioni di logica Completezza: Un sistema formale si dice completo se tutte e sole le verità esprimibili nel linguaggio del sistema sono dimostrabili all interno del sistema stesso. Coerenza: Un sistema formale si dice coerente, se non è possibile ottenere nel sistema una dim. di A e una di non A a.a. 2002-03 e.merelli 3
Il Teorema di incompletezza di Gödel Gödel logico austriaco nel 1931 affermò che Per ogni formalizzazione coerente dell aritmetica, esistono verità aritmetiche che non possono essere dimostrate, all interno del sistema formale nel quale l aritmetica è rappresentabile o più informalmente L aritmetica non è completamente formalizzabile Esistono proposizioni matematiche di cui non è possibile dimostrare che siano vere o false. a.a. 2002-03 e.merelli 4
L aritmetizzazione La tecnica usata per dimostrare il teorema di Gödel è particolarmente interessante per noi oggi Si tratta infatti di un metodo che trasformava tutti i simboli e i termini usati nel sistema formale della logica in numeri naturali, in particolare numeri primi (vedi lez.1 dim. Algoritmi e funzioni calolabibili) a.a. 2002-03 e.merelli 5
Un altra nozione di logica la decidibilità Un sistema formale è decidibile se esiste un metodo che in un numero finito di passi permette di riconoscere, per ogni formula espressa nel linguaggio del sistema, se è un teorema del sistema o non lo è. Un metodo, quindi, che stabilisca in linea di principio se esiste una dimostrazione per quella formula o no. a.a. 2002-03 e.merelli 6
Il problema della decidibilità Dopo i risultati di Gödel, restava da risolvere il problema della decisione, che nella formulazione di Turing era posto in questi termini: è possibile avere un metodo meccanico che in un numero finito di passi permetta di riconoscere se una formula espressa nel linguaggio di un sistema formale è o non è un teorema del sistema? a.a. 2002-03 e.merelli 7
Macchina di Turing Alan Turing introdusse la nozione di MdT nel 1936 come definizione matematica precisa del concetto intuitivo di funzione effettivamente calcolabile per dimostrare l esistenza di problemi indecidibili (tra cui quello della validità logica) Alan Turing pubblicò nel 1936 l articolo: On Computable Numbers with an Application to the decision problem. L idea era di avere una macchina astratta che potesse effettuare ogni tipo di calcolo su numeri e simboli a.a. 2002-03 e.merelli 8
MdT universale Turing nel 1939 definì così il risultato teorico: Si affermò che una funzione è effettivamente calcolabile se i suoi valori possono essere trovati attraverso un metodo puramente meccanico". Possiamo prendere alla lettera questa asserzione, intendendo per metodo puramente meccanico, un processo che può essere portato a termine da una macchina. E' possibile dare una descrizione matematica delle strutture di queste macchine. a.a. 2002-03 e.merelli 9
Che vuol dire metodo meccanico? Secondo Turing un metodo meccanico è una procedura eseguita da un dispositivo meccanico, cioè da una macchina Per dimostrare che questo metodo meccanico non esisteva, Turing doveva inventare la macchina più generale possibile e mostrare che nemmeno questa era adatta allo scopo a.a. 2002-03 e.merelli 10
Ma che cos è una macchina di calcolo? E difficile dare una definizione precisa di macchina di calcolo Per Turing è: Lo strumento più generale che si può usare per effettuare calcoli ma I calcoli sono solo manipolazione di simboli allora La macchina è lo strumento più generale e più elementare in grado di manipolare simboli a.a. 2002-03 e.merelli 11
Una macchina universale Durante la primavera del 1936, Turing inventò la macchina più generale mai concepita, e probabilmente mai concepibile. Il dispositivo era dotato solo di: un nastro bidimensionale diviso in quadrati di lunghezza finita ma illimitata un dispositivo per la lettura, scrittura, eliminazione di simboli e spostamento sul nastro una tavola di istruzioni comprensibile alla macchina che indicava tutte le attività da svolgere senza ambiguità e tutti gli stati in cui la macchina poteva trovarsi a.a. 2002-03 e.merelli 12
Lo schema di una MdT Dispositivo di lettura/scrittura/cancellazione spostamento sul nastro secondo la tavola delle istruzioni a.a. 2002-03 e.merelli 13
Il risultato ottenuto da Turing 1. Turing dimostrò che, se un compito era eseguibile da una macchina, allora era simulabile da una MTU 2. Turing dimostrò che esistono calcoli che non possono essere effettuati, manipolazioni di simboli che non vanno a buon fine, procedure che non hanno mai termine anche per una MTU 3. Il problema della decisione è uno dei calcoli che non è possibile effettuare con una MTU a.a. 2002-03 e.merelli 14
La MdTU è una macchina astratta La MTU è un dispositivo astratto, non deve essere realizzabile in pratica E una macchina nella quale non vengono presi in considerazione i vincoli spazio-temporali: Dimensioni della memoria Tempo di calcolo Spazio di calcolo Realizzazione fisica a.a. 2002-03 e.merelli 15
La macchina universale come macchina simulatrice La MTU emula il comportamento delle altre macchine attraverso una tavola di istruzioni, inserita nella macchina come se fossero i suoi dati La MTU è perciò una macchina virtuale La MTU è l insieme di struttura e tavola di istruzioni: Hardware + Software a.a. 2002-03 e.merelli 16
Bibliografia Casti J.L./ De Pauli (2001) Gödel, Raffaello Cortina Editore, Milano. Cellucci, C. (2002) Filosofia e matematica, LaTerza, Roma. Davis M. (2000) The Universal Computer, W.W. Norton & Co., New York. Somenzi V./ Cordeschi R. (1994) La filosofia degli automi, Bollati Boringhieri, Torino. Tamburrini, G. (2002) I matematici e le macchine intelligenti, Bruno Mondadori, Milano. a.a. 2002-03 e.merelli 17