La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Ti piacciono le riviste di meccanica? Settantanni di macchine di Turing Francesco Belardinelli Cortona - 30 Agosto 2005.

Presentazioni simili


Presentazione sul tema: "Ti piacciono le riviste di meccanica? Settantanni di macchine di Turing Francesco Belardinelli Cortona - 30 Agosto 2005."— Transcript della presentazione:

1 Ti piacciono le riviste di meccanica? Settantanni di macchine di Turing Francesco Belardinelli Cortona - 30 Agosto 2005

2 Menù del giorno Gli algoritmi: cosa sono e perchè sono importanti. Gli algoritmi: cosa sono e perchè sono importanti. Le macchine di Turing: come sono fatte e come funzionano. Le macchine di Turing: come sono fatte e come funzionano. La tesi di Church-Turing. La tesi di Church-Turing. Le applicazioni delle MT: la macchina di Turing universale e il problema della fermata. Le applicazioni delle MT: la macchina di Turing universale e il problema della fermata. Alcuni sviluppi: calcolabilità e complessità – intelligenza artificiale. Alcuni sviluppi: calcolabilità e complessità – intelligenza artificiale.

3 Che cosè un algoritmo? Algoritmo o procedura effettiva: Algoritmo o procedura effettiva: Regola meccanica o metodo automatico o programma per eseguire una qualche operazione (matematica). Abu Abdullah Muhammad bin Musa al-Khwarizmi

4 Alcuni esempi di algoritmi: Preparare un piatto seguendo una ricetta. Preparare un piatto seguendo una ricetta. Prenotare un volo in aereo su internet. Prenotare un volo in aereo su internet. Dato n, trovare ln-esimo numero primo (crivello di Eratostene). Dato n, trovare ln-esimo numero primo (crivello di Eratostene). Trovare il MCD di due numeri naturali (algoritmo di Euclide). Trovare il MCD di due numeri naturali (algoritmo di Euclide). Sommare due numeri naturali x e y. Sommare due numeri naturali x e y.

5 Sommare due numeri naturali x e y INIZIOsi y = 0? no x := x+1 y := y-1 no y = 0? si Scrivi x FINE

6 La struttura dellalgoritmo Ha un inizio ed una fine. Ha un inizio ed una fine. Presenta un numero finito di passaggi. Presenta un numero finito di passaggi. Ogni passaggio è eseguibile in un tempo finito. Ogni passaggio è eseguibile in un tempo finito. Ogni passaggio è determinato in modo univoco dal passaggio precedente Ogni passaggio è determinato in modo univoco dal passaggio precedente Lalgoritmo termina e il risultato appare dopo un tempo finito.

7 Perchè sono importanti gli algoritmi? Sono alla base della teoria dei calcolatori: Sono alla base della teoria dei calcolatori: i computer lavorano attraverso algoritmi, ciò che un calcolatore può o non può fare in linea di principio è determinato dalla possibilità - o impossibilità - di trovare algoritmi atti al nostro scopo. Si può ricavare un modello per il comportamento intelligente. Si può ricavare un modello per il comportamento intelligente.

8 Aspetto filosofico della questione: Chiarire concettualmente che cosa sia un procedimento effettivo e quali siano i suoi caratteri formali. Chiarire concettualmente che cosa sia un procedimento effettivo e quali siano i suoi caratteri formali.

9 Alan Mathison Turing ( ) Durante la II GM, lavora per il governo britannico alla decodificazione del codice E.N.I.G.M.A. usato dalla Germania nazista. Durante la II GM, lavora per il governo britannico alla decodificazione del codice E.N.I.G.M.A. usato dalla Germania nazista. Nell'articolo On computable numbers, with an application to the Entscheidungsproblem del '37, introduce un dispositivo – la Macchina di Turing - per definire rigorosamente la nozione di procedimento effettivo. Nell'articolo On computable numbers, with an application to the Entscheidungsproblem del '37, introduce un dispositivo – la Macchina di Turing - per definire rigorosamente la nozione di procedimento effettivo.

10 Comè fatta una macchina di Turing? Una MT è composta da: Una MT è composta da: - Una nastro infinito verso destra, diviso in caselle. Ciascuna casella contiene uno e un solo simbolo dall'alfabeto 0, 1. - Un cursore che si sposta da una casella all'altra del nastro. Ad ogni momento della computazione, la MT è in uno stato q i. Gli stati della computazione sono in numero finito. Ad ogni momento della computazione, la MT è in uno stato q i. Gli stati della computazione sono in numero finito. q i q i

11 Comè fatta una macchina di Turing? Una MT può compiere tre tipi di operazioni: Una MT può compiere tre tipi di operazioni: - Cancellare il simbolo nella casella che il cursore sta leggendo e rimpiazzarlo con un altro. - Spostare il cursore una casella a destra della casella che sta leggendo. - Spostare il cursore una casella a sinistra della casella che sta leggendo.

12 Comè fatta una macchina di Turing? Una MT contiene un programma, cioè una successione di istruzioni del tipo q k, n, α, q j, dove: Una MT contiene un programma, cioè una successione di istruzioni del tipo q k, n, α, q j, dove: - q k, q j sono stati della computazione, - n può essere uguale a 0 o a 1, - α può essere uguale a 0, a 1, allo spostamento a destra D, o allo spostamento a sinistra S. Esempio: listruzione q 1, 0, D, q 2 corrisponde al comando: Esempio: listruzione q 1, 0, D, q 2 corrisponde al comando: se ti trovi nello stato q 1 e la casella che stai leggendo contiene il simbolo 0, allora spostati una casella a destra e mettiti nello stato q 2.

13 Cosa calcola una macchina di Turing? Esiste una MT per sommare due numeri naturali x e y: Esiste una MT per sommare due numeri naturali x e y: - Le caselle contengono x+1 occorrenze di 1, seguite da uno 0 e da altre y+1 occorrenze di 1. Le altre caselle contengono 0. - MT contiene il seguente programma: q 1, 1, D, q 1 q 1, 0, 1, q 2 q 2, 1, D, q 2 q 2, 0, S, q 3 q 3, 1, 0, q 4 q 4, 0, S, q 5 q 5, 1, 0, q 6

14 La somma di 2 e 3 q q 1, 1, D, q 1 q 1, 0, 1, q 2 q 2, 1, D, q 2 q 2, 0, S, q 3 q 3, 1, 0, q 4 q 4, 0, S, q 5 q 5, 1, 0, q 6

15 La somma di 2 e 3 q 1 q q 1, 1, D, q 1 q 1, 0, 1, q 2 q 2, 1, D, q 2 q 2, 0, S, q 3 q 3, 1, 0, q 4 q 4, 0, S, q 5 q 5, 1, 0, q 6

16 La somma di 2 e 3 q q 1, 1, D, q 1 q 1, 0, 1, q 2 q 2, 1, D, q 2 q 2, 0, S, q 3 q 3, 1, 0, q 4 q 4, 0, S, q 5 q 5, 1, 0, q 6

17 La somma di 2 e 3 q 1 q q 1, 1, D, q 1 q 1, 0, 1, q 2 q 2, 1, D, q 2 q 2, 0, S, q 3 q 3, 1, 0, q 4 q 4, 0, S, q 5 q 5, 1, 0, q 6

18 La somma di 2 e 3 q 2 q q 1, 1, D, q 1 q 1, 0, 1, q 2 q 2, 1, D, q 2 q 2, 0, S, q 3 q 3, 1, 0, q 4 q 4, 0, S, q 5 q 5, 1, 0, q 6

19 La somma di 2 e 3 q 2 q q 1, 1, D, q 1 q 1, 0, 1, q 2 q 2, 1, D, q 2 q 2, 0, S, q 3 q 3, 1, 0, q 4 q 4, 0, S, q 5 q 5, 1, 0, q 6

20 La somma di 2 e 3 q 2 q q 1, 1, D, q 1 q 1, 0, 1, q 2 q 2, 1, D, q 2 q 2, 0, S, q 3 q 3, 1, 0, q 4 q 4, 0, S, q 5 q 5, 1, 0, q 6

21 La somma di 2 e 3 q 2 q q 1, 1, D, q 1 q 1, 0, 1, q 2 q 2, 1, D, q 2 q 2, 0, S, q 3 q 3, 1, 0, q 4 q 4, 0, S, q 5 q 5, 1, 0, q 6

22 La somma di 2 e 3 q 2 q q 1, 1, D, q 1 q 1, 0, 1, q 2 q 2, 1, D, q 2 q 2, 0, S, q 3 q 3, 1, 0, q 4 q 4, 0, S, q 5 q 5, 1, 0, q 6

23 La somma di 2 e 3 q 2 q q 1, 1, D, q 1 q 1, 0, 1, q 2 q 2, 1, D, q 2 q 2, 0, S, q 3 q 3, 1, 0, q 4 q 4, 0, S, q 5 q 5, 1, 0, q 6

24 La somma di 2 e 3 q 3 q q 1, 1, D, q 1 q 1, 0, 1, q 2 q 2, 1, D, q 2 q 2, 0, S, q 3 q 3, 1, 0, q 4 q 4, 0, S, q 5 q 5, 1, 0, q 6

25 La somma di 2 e 3 q 4 q q 1, 1, D, q 1 q 1, 0, 1, q 2 q 2, 1, D, q 2 q 2, 0, S, q 3 q 3, 1, 0, q 4 q 4, 0, S, q 5 q 5, 1, 0, q 6

26 La somma di 2 e 3 q 5 q q 1, 1, D, q 1 q 1, 0, 1, q 2 q 2, 1, D, q 2 q 2, 0, S, q 3 q 3, 1, 0, q 4 q 4, 0, S, q 5 q 5, 1, 0, q 6

27 La somma di 2 e 3 q 6 q q 1, 1, D, q 1 q 1, 0, 1, q 2 q 2, 1, D, q 2 q 2, 0, S, q 3 q 3, 1, 0, q 4 q 4, 0, S, q 5 q 5, 1, 0, q 6

28 Diversi tipi di macchina di Turing Il nastro è infinito nelle due direzioni destra/sinistra. Il nastro è infinito nelle due direzioni destra/sinistra. Il nastro è infinito in due dimensioni. Il nastro è infinito in due dimensioni. Il cursore può compiere spostamenti di più caselle. Il cursore può compiere spostamenti di più caselle. La macchina di Turing ha più cursori. La macchina di Turing ha più cursori. L'alfabeto contiene un numero arbitrario finito di simboli. L'alfabeto contiene un numero arbitrario finito di simboli. La macchina di Turing può essere non deterministica. La macchina di Turing può essere non deterministica. Tutti questi diversi modelli sono equivalenti! Tutti questi diversi modelli sono equivalenti!

29 Tesi di Church-Turing Una funzione è computabile in senso informale sse è computabile da una macchina di Turing. Una funzione è computabile in senso informale sse è computabile da una macchina di Turing. Vi sono due motivi per ritenere vera la precedente affermazione: Vi sono due motivi per ritenere vera la precedente affermazione: - Non è stata ancora trovata una funzione, computabile in senso informale, che non sia computabile da una MT. - Precisazioni formali indipendenti della nozione di funzione computabile individuano la medesima classe di funzioni: funzioni ricorsive di Gödel (1936); funzioni λ-definibili di Church (1936); sistemi di Post (1943); algoritmi di Markov (1951); macchine universali a registri di Shepherdson e Sturgis (1963).

30 Lo studio delle macchine di Turing Le macchine di Turing sono un'idealizzazione del funzionamento di un calcolatore: se qualcosa è computabile da una MT, allora possiamo sperare che prima o poi si costruisca un calcolatore in grado di eseguire la medesima operazione. Le macchine di Turing sono un'idealizzazione del funzionamento di un calcolatore: se qualcosa è computabile da una MT, allora possiamo sperare che prima o poi si costruisca un calcolatore in grado di eseguire la medesima operazione. Ma se non esiste alcuna MT in grado svolgere un determinato compito, allora - per la tesi di Church-Turing - non vi è possibilità di progettare un computer capace di risolvere il problema in questione. Ma se non esiste alcuna MT in grado svolgere un determinato compito, allora - per la tesi di Church-Turing - non vi è possibilità di progettare un computer capace di risolvere il problema in questione. Lo studio delle MT ci fornisce i limiti di ciò che è - e sarà mai - effettivamente calcolabile da un computer. Lo studio delle MT ci fornisce i limiti di ciò che è - e sarà mai - effettivamente calcolabile da un computer.

31 La codifica delle macchine di Turing Possiamo associare ad ogni una macchina di Turing MT un numero naturale n MT. Possiamo associare ad ogni una macchina di Turing MT un numero naturale n MT. Assegniamo ai simboli 0, 1, D, S, i numeri 8558, 8018, 616, 626; agli stati q 1,..., q n, i numeri 919,..., 9n9. Assegniamo ai simboli 0, 1, D, S, i numeri 8558, 8018, 616, 626; agli stati q 1,..., q n, i numeri 919,..., 9n9. All'istruzione q 1, 1, D, q 1 verrà assegnato il numero All'istruzione q 1, 1, D, q 1 verrà assegnato il numero Al programma per sommare due numeri verrà assegnato il codice Al programma per sommare due numeri verrà assegnato il codice

32 La macchina di Turing Universale Si possono usare le codifiche delle MT come input per altre MT. Si possono usare le codifiche delle MT come input per altre MT. Nei moderni calcolatori i programmi e i dati vengono inseriti nella macchina in un stesso linguaggio binario. Nei moderni calcolatori i programmi e i dati vengono inseriti nella macchina in un stesso linguaggio binario. Si dimostra che esiste una MT - la macchina di Turing universale - che può svolgere qualsiasi operazione eseguibile da una MT. Si dimostra che esiste una MT - la macchina di Turing universale - che può svolgere qualsiasi operazione eseguibile da una MT.

33 Come funziona una MTU? Facciamo sommare alla MTU i numeri 2 e 3. Facciamo sommare alla MTU i numeri 2 e 3. Inseriamo come input nella MTU il codice della MT per sommare due numeri - cioè e i numeri 2 e 3. Inseriamo come input nella MTU il codice della MT per sommare due numeri - cioè e i numeri 2 e 3. La MTU decodifica il codice e ricava il programma per sommare due numeri. La MTU decodifica il codice e ricava il programma per sommare due numeri. La MTU applica il programma agli input 2 e 3. La MTU applica il programma agli input 2 e 3.

34 Il problema della fermata Si può stabilire se dato un certo input n, a una MT M k, la computazione termina? Si può stabilire se dato un certo input n, a una MT M k, la computazione termina? La risposta è negativa. La risposta è negativa.

35 Il problema della fermata Supponiamo che abbiamo un algoritmo per risolvere il problema della fermata, definiamo la seguente funzione f: Supponiamo che abbiamo un algoritmo per risolvere il problema della fermata, definiamo la seguente funzione f: f(k,n) =0, se la computazione di M k con input n non termina indefinita, altrimenti. Per la TCT, se f è computabile in senso informale, allora esiste una MT M q che calcola f. Per la TCT, se f è computabile in senso informale, allora esiste una MT M q che calcola f. La computazione di M q con input q termina? La computazione di M q con input q termina? - Se si, allora M q (q) = j = f(q,q). Ma per def. f(q,q) è indefinita. - Se no, allora M q (q) = f(q,q) è indefinita. Ma per def. f(q,q) = 0.

36 La MTU e il problema della fermata Si può costruire un'automa che può fare qualunque cosa fa un altro automa, ma non si può costruire un'automa che predica il comportamento di un automa arbitrario. In altre parole, si può costruire un organo che fa qualsiasi cosa che può essere fatta, ma non uno che dica se può essere fatta. - J. Von Neumann, 1949 Si può costruire un'automa che può fare qualunque cosa fa un altro automa, ma non si può costruire un'automa che predica il comportamento di un automa arbitrario. In altre parole, si può costruire un organo che fa qualsiasi cosa che può essere fatta, ma non uno che dica se può essere fatta. - J. Von Neumann, 1949

37 Altri problemi irrisolvibili Non vi è un metodo generale per stabilire se una MT computa la funzione zero, cioè se per ogni n, MT(n) = 0. Non vi è un metodo generale per stabilire se una MT computa la funzione zero, cioè se per ogni n, MT(n) = 0. Non vi è un metodo generale per stabilire se due macchine di Turing MT e MT computano la stessa funzione, cioè se per ogni n, MT(n) = MT(n). Non vi è un metodo generale per stabilire se due macchine di Turing MT e MT computano la stessa funzione, cioè se per ogni n, MT(n) = MT(n). Non vi è un metodo generale per stabilire se una formula del calcolo dei predicati è valida (lo Entscheidungsproblem non è risolvibile). Non vi è un metodo generale per stabilire se una formula del calcolo dei predicati è valida (lo Entscheidungsproblem non è risolvibile).

38 Calcolabilità e complessità Per le applicazioni ai calcolatori, non interessa solo che esista un algoritmo per eseguire una certa operazione, ma che l'algoritmo sia implementabili in tempo e spazio ragionevoli. Per le applicazioni ai calcolatori, non interessa solo che esista un algoritmo per eseguire una certa operazione, ma che l'algoritmo sia implementabili in tempo e spazio ragionevoli. Per eseguire una stessa operazione possono esistere procedure più o meno efficienti. Per eseguire una stessa operazione possono esistere procedure più o meno efficienti. Esempio: la MT per sommare due numeri x e y, impiega x+y+7 passi di computazione. Esempio: la MT per sommare due numeri x e y, impiega x+y+7 passi di computazione.

39 Il comportamento delle api Le api indicano alle compagne la posizione e la distanza del cibo con una danza. Le api indicano alle compagne la posizione e la distanza del cibo con una danza. Possiamo attribuire alle api desideri e credenze? Possiamo attribuire alle api desideri e credenze? Le MT ci forniscono un modello per spiegare il comportamento delle api senza tirare in ballo lintenzionalità. Le MT ci forniscono un modello per spiegare il comportamento delle api senza tirare in ballo lintenzionalità. Pensare e calcolare sono una medesima cosa. Pensare e calcolare sono una medesima cosa.

40 Intelligenza artificiale Tesi forte dell'intelligenza artificiale: la mente funziona come una macchina di Turing. Tesi forte dell'intelligenza artificiale: la mente funziona come una macchina di Turing. 1950: Computing Machinery and Intelligence 1950: Computing Machinery and Intelligence Turing ritiene le operazioni computabili sufficienti ad includere tutte le funzioni mentali eseguite dal cervello.

41 Ramon Lull e lArs Magna 1235: nasce a Palma di Majorca, impara larabo dai mori e scrive in latino. 1235: nasce a Palma di Majorca, impara larabo dai mori e scrive in latino : "Ars generalis ultima" (Ars Magna) : "Ars generalis ultima" (Ars Magna). 1315: lapidato dai saraceni a Tunisi. 1315: lapidato dai saraceni a Tunisi.

42 Leibniz e la MathesisUniversalis 1666: De arte combinatoria 1666: De arte combinatoria Progetto di una Characteristica Universalis e di un Calculus Ratiocinator. Progetto di una Characteristica Universalis e di un Calculus Ratiocinator. Se sorgessero delle controversie, non ci sarebbe maggior bisogno di discussione tra due filosofi rispetto a quanta ce ne sia tra due ragionieri. Basterebbe che prendessero le penne in mano e si dicessero: Calculemus! Se sorgessero delle controversie, non ci sarebbe maggior bisogno di discussione tra due filosofi rispetto a quanta ce ne sia tra due ragionieri. Basterebbe che prendessero le penne in mano e si dicessero: Calculemus!

43 Bibliografia e risorse internet Barker-Plummer D., Turing Machines, The Stanford Encyclopedia of Philosophy, Barker-Plummer D., Turing Machines, The Stanford Encyclopedia of Philosophy, Cutland N., Computability: An introduction to recursive function theory, Cambridge University Press, Cambridge, Cutland N., Computability: An introduction to recursive function theory, Cambridge University Press, Cambridge, Davis M., The Universal Computer: the Road from Leibniz to Turing, W. W. Norton and Company, New York, Davis M., The Universal Computer: the Road from Leibniz to Turing, W. W. Norton and Company, New York, Hodges A., Alan Turing: the Enigma, Walker, New York, Hodges A., Alan Turing: the Enigma, Walker, New York, Hodges A., Alan Turing, The Stanford Encyclopedia of Philosophy, Hodges A., Alan Turing, The Stanford Encyclopedia of Philosophy, Tamburrini G., I matematici e le macchine intelligenti, Bruno Mondadori, Milano, 2002 Tamburrini G., I matematici e le macchine intelligenti, Bruno Mondadori, Milano, 2002 Turing A. M., On computables numbers, with an application to the Entscheidungsproblem, Proceedings of the London Mathematical Society, 42, pp , Turing A. M., On computables numbers, with an application to the Entscheidungsproblem, Proceedings of the London Mathematical Society, 42, pp , Turing A. M., Computing machinery and intelligence, Mind, 50, pp Turing A. M., Computing machinery and intelligence, Mind, 50, pp Turing Digital Archive Turing Digital Archive Alan Turing Home Page Alan Turing Home Page The Turing's World Homepage The Turing's World Homepage


Scaricare ppt "Ti piacciono le riviste di meccanica? Settantanni di macchine di Turing Francesco Belardinelli Cortona - 30 Agosto 2005."

Presentazioni simili


Annunci Google