La tesi di Church-Turing e

Похожие документы
Corso di Linguaggi di Programmazione

Macchine di Turing. Francesco Paoli. Istituzioni di logica, Francesco Paoli (Istituzioni di logica, ) Macchine di Turing 1 / 29

Teoria della Calcolabilità!

Principio di composizione delle MT

La macchina di Turing

Il concetto di calcolatore e di algoritmo

Teoria della Calcolabilità!

ELEMENTI DI PROGRAMMAZIONE a.a. 2012/13 MACCHINE, ALGORITMI, PROGRAMMI

Problemi, algoritmi, calcolatore

ELEMENTI DI PROGRAMMAZIONE a.a. 2013/14 UNA GERARCHIA DI MACCHINE

Aniello Murano Problemi non decidibili e riducibilità

Linguaggio universale, riduzioni, e teorema di Rice. Linguaggio universale, riduzioni, e teorema di Rice

MODULO 1. Prof. Onofrio Greco. Prof. Greco Onofrio

L ELABORATORE ELETTRONICO

La cardinalità di Q e R

Fondamenti della Matematica a.a LUMSA. Basi di numerazione. Scrittura in forma polinomiale e scrittura in una base

Sviluppo di programmi

Elementi di Complessità Computazionale

Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing

Sistemi di Elaborazione delle Informazioni

Le parole dell informatica: algoritmo e decidibilità

Esercitazioni per il corso di Logica Matematica

Lezione 8. Soluzione di un problema Problema. Soluzione di un problema. Comprensione del Problema. Analisi. Introduzione agli algoritmi

Indice. 1 Analisi matematica dell infinito Concetti base La numerabilità di Q e la non numerabilità di R... 5

Rappresentazione dei numeri interi in un calcolatore

Appunti del corso di Informatica 1 (IN110 Fondamenti) 3 Modelli di calcolo

IL TEOREMA DEGLI ZERI Una dimostrazione di Ezio Fornero

Algoritmo: procedimento non ambiguo che in un numero finito di passi risolve un problema (o una classe di problemi)

L ELABORATORE ELETTRONICO!

INFORMATICA. Scienza dei calcolatori elettronici (computer science) Scienza dell informazione (information science)

Cosa è l Informatica?

Il Concetto Intuitivo di Calcolatore. Esercizio. I Problemi e la loro Soluzione. (esempio)

Teoria dell Informazione

Dall analisi del problema alla definizione dell algoritmo A. Ferrari

Rappresentazione dei numeri interi in un calcolatore

Macchine di Turing: somma di due numeri

Corso di Informatica Modulo T1 1 - Il concetto di problema

Fondamenti di Informatica. Algoritmo. Algoritmo funzionale. Prof.ssa Enrica Gentile Informatica e Comunicazione Digitale a.a.

Appunti del corso di Informatica 1 (IN110 Fondamenti) 2 Algoritmi e diagrammi di flusso

Informatica. Come si risolve un problema?

Architettura di un Computer

Lezione 1 - Insiemi. Laboratorio di Programmazione M1 UD2 Matematica e Logica per la Programmazione

Rappresentazione generale del problema e fasi di progettazione

Matematica Corso Base a.a INTRODUZIONE LEZIONE I Federica Ricca

BOOK IN PROGRESS MATEMATICA ALGEBRA PRIMO ANNO TOMO NR. 1

Algoritmi greedy. Gli algoritmi che risolvono problemi di ottimizzazione devono in genere operare una sequenza di scelte per arrivare alla soluzione

Fondamenti di programmazione!! Parte 2!

Logica proposizionale

AUTOMA A STATI FINITI

ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE)

Il calcolatore universale, origini e nuovi paradigmi

La tesi di Church-Turing

Algoritmi e Strutture Dati

Introduzione alla programmazione

Insiemi, Numeri, Terminologia. Prof. Simone Sbaraglia

Appunti di informatica. Lezione 5 anno accademico Mario Verdicchio

Macchina di Turing Universale

Le macchine di Turing

Correttezza (prima parte)

Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati

Architettura degli Elaboratori

102 MACCHINE DI TURING

Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 30/06/2016/ Foglio delle domande / VERSIONE 1

Esercizi di Programmazione Lineare - Dualità

Elementi di Algebra e di Matematica Discreta Numeri interi, divisibilità, numerazione in base n

Concetti di base di informatica

Il linguaggio di programmazione Python

3. Indicare cosa sta a significare la figura geometrica del rombo in un diagramma a blocchi

LOGICA MATEMATICA PER INFORMATICA (A.A. 12/13)

13 LIMITI DI FUNZIONI

Somma di numeri binari

Corso di Informatica di Base

La codifica digitale

PROBLEMI ALGORITMI E PROGRAMMAZIONE

Capitolo 8: Teoria della complessitá

Appunti di informatica. Lezione 3 anno accademico Mario Verdicchio

1 Esercizi in pseudocodice

Algoritmo. La programmazione. Algoritmo. Programmare. Procedimento di risoluzione di un problema

Rappresentazione dei dati in memoria

RISOLUZIONE IN LOGICA PROPOSIZIONALE. Giovanna D Agostino Dipartimento di Matemaica e Informatica, Università di Udine

Транскрипт:

La tesi di Church-Turing e l indecidibilità

Automi e algoritmi i La domanda d fondamentale dll della teoria dll della calcolabilità è: Quali risultati possiamo e non possiamo ottenere mediante algoritmi? Per affrontare questa domanda dovremo basarci su caratterizzazioni i i precise, non intuitive, i i dll delle nozioni i di algoritmo e di sistema (macchina) che esegue algoritmi. La tesi di Church-Turing fornisce elementi per una caratterizzazione precisa della nozione di algoritmo

Tesi di Church-Turing h Ogni funzione calcolabile l mediante un algoritmo è calcolabile da una macchina di Turing funzione calcolabile mediante un algoritmo (nozione intuitiva) funzione calcolabile l da MdT (nozione precisa)

Tesi di Church-Turing: h conseguenza! Conseguenza logica della Tesi: NON esiste una MdT per calcolare la funzione f? Allora NON esiste alcun algoritmo per calcolare la funzione f! Quindi, non può esistere alcun calcolatore (presente, passato, futuro) in grado di calcolare l quella funzione!

Tesi di Church-Turing: h conseguenza! Conseguenza logica della Tesi: NON esiste una MdT per calcolare la funzione f? Allora NON esiste alcun algoritmo per calcolare la funzione f! Come possiamo sapere se non esiste una MdT che calcola la funzione f? Avere una definizione formale della nozione di MdT ci permette, in alcuni casi, di dimostrarlo Nessuna dimostrazione di questo tipo sarebbe stata possibile in mancanza di adeguata formalizzazione

Turing e la storia dei calcolatori l Turing ha permesso lo sviluppo della teoria della calcolabilità, co ab ovvero o della disciplina che si occupa di capire quali problemi possano essere risolti algoritmicamente, proprio perché ha fornito elementi per sostituire la nozione intuitiva di algoritmo con quella, ben più precisa, di programma per MdT

L analisi di Turing ha permesso di identificare problemi non risolvibili da MdT PC di e quindi, per la Tesi, non risolvibili da alcun sistema algoritmico Turing e la storia dei calcolatori l Z1 (1938) Colossus (1943) PC odierno NASA Columbia Supercomputer (2004) ENIAC (1945) EDVAC (1945) Commodore 64 (1986)

Tesi di Church-Turingh Questa affermazione è detta tesi, e non teorema, perché intrinsecamente indimostrabile Dimostrare questa affermazione richiederebbe una definizione formale dei termini in gioco Abbiamo a disposizione una definizione formale dell espressione calcolabile mediante un programma per MdT (è stata fornita da Turing stesso) Il significato dell espressione espressione calcolabile algoritmicamente è intrinsecamente intuitivo La tesi di Church-Turing (tesi CT da ora in poi) fornisce proprio elementi per una definizione formale della nozione di calcolabile algoritmicamente

Verso le funzioni i non Turing-calcolabili l È stato dimostrato t che esistono funzioni i non Turingcalcolabili In base alla tesi CT, si conclude che esistono funzioni non algoritmicamente calcolabili Una di queste funzioni è relativa al cosiddetto problema della fermata Il di d ll di i i i ill l Il diagramma della diapositiva successiva illustra le relazioni tra tesi CT ed esistenza di funzioni non calcolabili

Verso le funzioni i non Turing-calcolabili l Tesi di Church-Turing algoritmi (nozione intuitiva) iti programmi per MdT (nozione precisa) problema della fermata esistenza di funzioni non Turing-calcolabili funzioni Turingcalcolabili funzioni

TEOREMA: Ei Esistono funzioni i non Turing-calcolabili l A questo risultato si arriva dimostrando che l insieme delle MdT è più piccolo dell insieme delle funzioni funzioni i funzioni Esistono funzioni non Turing- calcolabili? l Turingcalcolabili

L insieme delle MdT è più piccolo dell insieme i delle funzioni i La frase l insieme delle MdT è più piccolo dell insieme delle funzioni solleva un PROBLEMA: L insieme delle MdT è finito o infinito? è INFINITO L insieme delle funzioni è finito o infinito? è INFINITO Com è possibile che un insieme infinito sia più piccolo Com è possibile che un insieme infinito sia più piccolo di un altro insieme infinito?

Georg Cantor (1845-1918) 1918) Cantor ha dimostrato che un insieme infinito può essere più piccolo di un altro insieme infinito: L insieme dei numeri naturali N = {0,1,2,3, } è infinito e più piccolo dell insieme dei numeri reali

Il teorema di Cantor Il teorema di Cantor gioca un ruolo importante nel dimostrare l esistenza di funzioni non Turing-calcolabili DIMOSTRAZIONE PER ASSURDO del teorema di Cantor Supponiamo che i numeri naturali siano tanti quanti sono i numeri reali Da questa affermazione deriviamo una contraddizione Quindi, siamo costretti a negare l assunzione iniziale

Teorema di Cantor: dimostrazione per assurdo Supponiamo che i numeri naturali siano tanti quanti i numeri reali Allora, è possibile mettere in corrispondenza ogni numero naturale con un numero reale numeri naturali numeri reali 1 1,02128384

Teorema di Cantor: dimostrazione per assurdo Supponiamo che i numeri naturali siano tanti quanti i numeri reali Allora, è possibile mettere in corrispondenza ogni numero naturale con un numero reale numeri naturali numeri reali 1 1,02128384 2 1,12528284

Teorema di Cantor: dimostrazione per assurdo Supponiamo che i numeri naturali siano tanti quanti i numeri reali Allora, è possibile mettere in corrispondenza ogni numero naturale con un numero reale numeri naturali numeri reali 1 1,02128384 2 1,12528284 3 2,12528383

Teorema di Cantor: dimostrazione per assurdo Supponiamo che i numeri naturali siano tanti quanti i numeri reali Allora, è possibile mettere in corrispondenza ogni numero naturale con un numero reale numeri naturali numeri reali 1 1,02128384 2 1,12528284 3 2,12528383 4 2,39374532

Teorema di Cantor: dimostrazione per assurdo Supponiamo che i numeri naturali siano tanti quanti i numeri reali Allora, è possibile mettere in corrispondenza ogni numero naturale con un numero reale numeri naturali numeri reali 1 1,02128384 2 1,12528284 3 2,12528383 4 2,39374532 5 2,56746383

Teorema di Cantor: dimostrazione per assurdo Supponiamo che i numeri naturali siano tanti quanti i numeri reali Allora, è possibile mettere in corrispondenza ogni numero naturale con un numero reale e così via all infinito numeri naturali numeri reali 1 1,02128384 2 1,12528284 3 2,12528383 4 2,39374532 5 2,56746383 6 3,27546453

Teorema di Cantor: dimostrazione per assurdo Per ogni numero naturale n, cambiamo a piacere l nesimo decimale del numero reale numeri naturali numeri reali 1 1,02128384 2 1,12528284 3 2,12528383 4 2,39374532 5 2,56746383 6 3,27546453

Teorema di Cantor: dimostrazione per assurdo Per ogni numero naturale n, cambiamo a piacere l nesimo decimale del numero reale numeri naturali numeri reali 1 1,12128384 2 1,12528284 3 2,12528383 4 2,39374532 5 2,56746383 6 3,27546453

Teorema di Cantor: dimostrazione per assurdo Per ogni numero naturale n, cambiamo a piacere l nesimo decimale del numero reale numeri naturali numeri reali 1 1,12128384 2 1,17528284 3 2,12528383 4 2,39374532 5 2,56746383 6 3,27546453

Teorema di Cantor: dimostrazione per assurdo Per ogni numero naturale n, cambiamo a piacere l nesimo decimale del numero reale numeri naturali numeri reali 1 1,12128384 2 1,17528284 3 212328383 2,12328383 4 2,39374532 5 2,56746383 6 3,27546453

Teorema di Cantor: dimostrazione per assurdo Per ogni numero naturale n, cambiamo a piacere l nesimo decimale del numero reale numeri naturali numeri reali 1 1,12128384 2 1,17528284 3 212328383 2,12328383 4 2,39394532 5 2,56746383 6 3,27546453

Teorema di Cantor: dimostrazione per assurdo Per ogni numero naturale n, cambiamo a piacere l nesimo decimale del numero reale numeri naturali numeri reali 1 1,12128384 2 1,17528284 3 212328383 2,12328383 4 2,39394532 5 2,56741383 6 3,27546453

Teorema di Cantor: dimostrazione per assurdo Per ogni numero naturale n, cambiamo a piacere l nesimo decimale del numero reale numeri naturali numeri reali 1 1,12128384 2 1,17528284 3 212328383 2,12328383 4 2,39394532 5 2,56741383 6 3,27546353

Teorema di Cantor: dimostrazione per assurdo Formiamo un numero reale mettendo insieme i i decimali rossi : numeri naturali 1,173913 numeri reali 1 1,12128384 2 1,17528284 3 212328383 2,12328383 4 2,39394532 5 2,56741383 6 3,27546353

Teorema di Cantor: dimostrazione per assurdo 1,173913 Questo è un numero reale; quindi, in base all assunzione assunzione di partenza, dovrebbe essere compreso nella tabella iniziale (prima della modifica dei decimali) e associato a un naturale! Ma può essere così? NO! Perché è diverso da OGNI numero reale in quella lista per UNA cifra decimale QUINDI, quel numero non figura nella colonna numeri reali, e QUINDI non sta in corrispondenza con nessun numero naturale numeri naturali numeri reali 1 1,02128384 2 1,12528284

Il teorema di Cantor: riepilogo il Abbiamo svolto i seguenti passi: 1. Assumiamo che i numeri reali siano tanti quanti i numeri naturali 2. Quindi, possiamo far corrispondere un numero reale a ogni numero naturale 3. Identifichiamo un numero reale che non figura in quella corrispondenza 4. Quindi, l assunzione di partenza è da gettare: L insieme Linsieme dei numeri reali è più grande dell insieme dei numeri naturali!

Esistono funzioni i non Turing-calcolabili l Ora, è possibile dimostrare che L insieme delle MdT è grande quanto l insieme dei numeri naturali l insieme delle funzioni è grande quanto l insieme dei numeri reali QUINDI (in base al teorema di Cantor) Esistono funzioni che non sono Turing-calcolabili! (vedi il diagramma illustrativo alla diapositiva successiva)

Funzioni i non Turing-calcolabili l programmi per MdT (funzioni i Turingcalcolabili) funzioni insieme dei numeri naturali funzioni NON Turing-calcolabili co ab

Funzioni i non Turing-calcolabili l Vedremo ora una funzione non Turingcalcolabile (Turing, 1936) problema della fermata programmi per MdT (funzioni Turingcalcolabili) funzioni

Il problema della fermata Esiste un algoritmo (o una MdT, in base alla tesi CT) per decidere se una qualsiasi MdT m si fermerà su un qualsiasi li i ingresso w?? ingresso qualsiasi 2 # $ a % 3 ^ ingresso MdT U uscita MdT m La MdT m si ferma/non si ferma con l ingresso w

Il problema della fermata NOTA: esistono MdT per decidere se particolari MdT si fermano su particolari ingressi Possiamo studiare il comportamento t della macchina somma e capire che si fermerà su qualsiasi ingresso ingresso qualsiasi 2 # $ a % 3 ^ ingresso MdT U uscita MdT m La MdT m si ferma/non si ferma con l ingresso w

Il problema della fermata Ma noi vogliamo una MdT che sia in grado di decidere se una qualsiasi MdT m si fermerà su un qualsiasi ingresso w! ingresso qualsiasi 2 # $ a % 3 ^ ingresso MdT U uscita MdT m La MdT m si ferma/non si ferma con l ingresso w

Parentesi Il problema della fermata è analogo a molti problemi dell informatica odierna Verifica di correttezza: valutare algoritmicamente se un certo software svolge effettivamente il compito per cui è stato progettato Il problema in questo caso è quello di scrivere un software che controlli il funzionamento di un altro software Pensate all importanza della verifica di correttezza in relazione ai software di controllo aerei o di diagnosi medica!

Ancor prima di dare una risposta Questo problema si basa sulla capacità di fornire una qualche descrizione della MdT m alla MdT u! Come fare? ingresso qualsiasi 2 # $ a % 3 ^ ingresso MdT U uscita MdT m La MdT m si ferma/non si ferma con l ingresso w

Rappresentazione di una MdT sul nastro di un altra MdT È possibile rappresentare un automa finito o un automa a pila (e il loro ingresso) sul nastro di una MdT Mediante questo tipo di rappresentazione è possibile costruire una MdT che simuli il comportamento di un automa finito o di un automa a pila! Come rappresentare una MdT, e il suo ingresso, sul nastro di un altra MdT?

Rappresentazione di una MdT sul nastro di un altra MdT Possiamo rappresentare le quintuple di una MdT sul nastro di una MdT scegliendo un opportuno alfabeto e sistema di codifica! Ad esempio, la quintupla q 1 0 1 D q 2, interpretata come se sei nello stato q 1 e leggi il simbolo 0, allora scrivi 1, vai a destra, e assumi lo stato q 2,può essere rappresentata nel modo seguente: 1 0 1 D 2 (supponendo di interpretare il primo e l ultimo simbolo come rappresentazioni del numero dello stato)

Rappresentazione di una MdT sul nastro di un altra MdT Quindi, per costruire una MdT U che contenga una codifica della MdT M: 1. codifichiamo sul nastro di U l insieme delle istruzioni di M, separate da un simbolo speciale 2. poi inseriamo, di seguito, l ingresso di M MdT che codifica M e il suo ingresso insieme di istruzioni di M ingresso di M

La macchina universale È possibile costruire una MdT U che simuli il comportamento di una qualsiasi MdT M (sulla base di una codifica di M) Questa macchina si chiama macchina universale

La macchina universale Ingresso qualsiasi w 1 I 0 1 1 1 codifica sul nastro della MdT M 1 1 0 0 0 1 MdT (che chiamiamo universale) uscita che avrebbe prodotto M se avesse avuto w come ingresso 1 1 1 1 1 0 0 0 0

La macchina universale La MdT universale U, con ingresso w e la codifica di M, restituisce l uscita che avrebbe prodotto M con ingresso w, se M si ferma non si ferma, se M non si ferma sull ingresso w È importante notare che la macchina universale non è altro che una MdT opportunamente programmata. Così come è possibile costruire una MdT che calcoli la funzione somma, è possibile costruire una macchina (la macchina universale, appunto) che calcoli la funzione simulazione della MdT M su ingresso w, dove M e w sono rappresentati sul suo nastro. Per questo motivo, U può calcolare qualsiasi funzione Turing-calcolabile!

La MdT universale è una macchina di Turing opportunamente t programmata! MdT UNIVERSALE: simula qualsiasi altra MdT MdT che calcola la SOMMA MdT che ORDINA ELEMENTI IN UN INSIEME MdT che CONDUCE UNA PARTITA A SCACCHI MdT che calcola la SOTTRAZIONE

Torniamo al problema della fermata La MdT universale U, con ingresso w e la codifica di M, Restituisce l uscita che avrebbe prodotto M con ingresso w, se M si ferma non si ferma, se M non si ferma sull ingresso w PROBLEMA DELLA FERMATA. È possibile costruire una macchina universale che decida (fermandosi in qualche stato) t ) se una qualsiasi i M si ferma o no su un qualsiasi ingresso w? Si può dimostrare che NON ESISTE una MdT che risolva questo problema

Macchine universali e problema della fermata Possiamo costruire una MdT U che restituisca isca in uscita ciò che un altra MdT m produce (fermandosi) sull ingresso w MA NON possiamo costruire una MdT che decida se una qualsiasi m si fermerà o no su un qualsiasi ingresso w

Conseguenze del teorema della fermata Le MdT (quindi i sistemi algoritmici, se accettiamo la tesi di Church-Turing) sono intrinsecamente limitate: non possiamo costruire una MdT che decida se una qualsiasi altra MdT si ferma o no su un qualsiasi i ingresso w

Attenzione! Evitare l errore comune di enunciare il problema della fermata nel modo seguente: nessuna MdT può decidere se un altra MdT m si ferma sull ingresso w Questo non è il problema della fermata! Infatti, possiamo decidere algoritmicamente se, ad esempio, la MdT che esegue la somma si fermerà sull ingresso 110111! Il problema della fermata è relativo all esistenza di una MdT che decida se qualsiasi MdT si ferma o no: nessuna MdT può decidere se una qualsiasi altra MdT m si ferma su un qualsiasi ingresso w

Appendice: La MdT universale e la programmazione PROGRAMMARE una MdT consiste nello scrivere la descrizione di una MdT e i dati di ingresso sul nastro della MdT universale insieme di istruzioni di M ingresso di M

Analogamente Programmare un calcolatore l significa ifi scrivere un programma e i suoi dati di ingresso nella memoria del calcolatore hard disk memoria RAM

Programmare un calcolatore l programma scritto in un linguaggio di programmazione 1. $cateto1 = 3; 2. $cateto2 = 4; 3. $quadratocateto1 = pow($cateto1,2); 4. $quadratocateto2 = pow($cateto2,2); 5. $sommaquadrati = $quadratocateto1 + $quadratocateto2; 6. $ipotenusa = sqrt($sommaquadrati); 7. echo "L'ipotenusa è ".$ipotenusa;

Esecuzione del programma 1. $cateto1 = 3; 2. $cateto2 = 4; 3. $quadratocateto1 = pow($cateto1,2); 4. $quadratocateto2 = pow($cateto2,2); 5. $sommaquadrati = $quadratocateto1 + $quadratocateto2; 6. $ipotenusa = sqrt($sommaquadrati); 7. echo "L'ipotenusa è ".$ipotenusa; Il processore centrale del PC esegue quel programma su quei dati di ingresso e restituisce il risultato

Macchine universali e calcolatori l odierni i Un PC che conserva nella propria memoria un programma che calcola la somma si comporta, in un certo senso, da macchina universale! Quel PC, infatti, ha nella propria memoria la descrizione di una macchina che esegue la somma e il suo ingresso (analogamente al caso della macchina universale, che conserva sul proprio nastro la descrizione di un altra macchina e il suo ingresso).

I linguaggi i di programmazione I linguaggi di programmazione servono per programmare algoritmi su un calcolatore 1. In base alla tesi CT, qualsiasi algoritmo scritto in uno qualsiasi di questi linguaggi calcola una funzione che può essere calcolata l da una MdT opportunamente programmata. 2. In base ai teoremi che abbiamo visto e alla tesi CT, nessun programma scritto in uno di questi linguaggi potrà risolvere il problema della fermata (ovvero, decidere se un calcolatore qualsiasi restituirà un risultato su un ingresso qualsiasi) 3. né potrà risolvere alcun problema non Turing- 3. né potrà risolvere alcun problema non Turing calcolabile