Teoria della Calcolabilità!

Documenti analoghi
Teoria della Calcolabilità

Teoria della Calcolabilità!

Turing e la nascita dell'algoritmica Fabrizio luccio. Fibonacci Liber Abaci 1202

Le parole dell informatica: algoritmo e decidibilità

La tesi di Church-Turing e

Principio di composizione delle MT

Corso di Linguaggi di Programmazione

L ELABORATORE ELETTRONICO

Problemi, algoritmi, calcolatore

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

Il concetto di calcolatore e di algoritmo

Informatica Teorica. Macchine a registri

Introduzione alla programmazione

Turing cercò di fornire una risposta matematica al problema CHE COSA SIGNIFICA CALCOLARE?

Parte I.5 Cenni alla computazione

Corso di Matematica per la Chimica

Ma il programma in Fig. 8.2 del libro? Stampa hello, world, dato un input n se e solo se l equazione

Informatica, Algoritmi, Linguaggi

Informatica Teorica. Sezione Cremona + Como. Appello del 20 Luglio 2004

Alcune Tracce dei Precedenti Esami del Dottorato di Siena in Logica Matematica ed Informatica Teorica

LOGICA MATEMATICA PER INFORMATICA

Parole note, nuovi significati: linguaggio, determinismo e infinito

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

Aniello Murano Decidibilità delle teorie logiche

Elementi di Informatica A. A. 2016/2017

Capitolo 8: Teoria della complessitá

L ELABORATORE ELETTRONICO!

Algoritmo per A. !(x) Istanza di B

Informatica Teorica. Appunti della lezione su tesi di Church-Turing e problemi indecidibili

Certificati dei problemi in NP

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

Algoritmi e Strutture Dati

Complessità Computazionale

IL TEOREMA DEGLI ZERI Una dimostrazione di Ezio Fornero

Informatica teorica Lez. n 7 Macchine di Turing. Macchine di Turing. Prof. Giorgio Ausiello Università di Roma La Sapienza

Cosa è l Informatica?

PARTE V TEORIA GENERALE DELLA CALCOLABILITA

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

Problemi senza soluzione

Il calcolatore universale, origini e nuovi paradigmi

Programma di matematica classe I sez. E a.s

Fondamenti di Informatica per la Sicurezza a.a. 2008/09. Automi. Stefano Ferrari. Unautomaastatifinitièunmodellomatematico caratterizzato da:

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

Aniello Murano Problemi non decidibili e riducibilità

Per un vocabolario filosofico dell informatica. Angelo Montanari Dipartimento di Matematica e Informatica Università degli Studi di Udine

CAPITOLO 1 CENNI STORICI

Scaletta. Cenni di computabilità. Cosa fa un programma? Definizioni (1/2) Definizioni (2/2) Problemi e domande. Stefano Mizzaro 1

Corso di Informatica

Introduzione agli Algoritmi

Introduzione Problemi e codifiche Classe P e linguaggi Da NP a NP-C Il mondo NP-C Conclusioni. NP-Completezza

SCUOLA PRIMARIA MATEMATICA (Classe 1ª)

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

algebra: insiemi numerici N e Q +, proprietà operazioni e calcolo linguaggio degli insiemi

LABORATORIO DI INFORMATICA

1 Relazione di congruenza in Z

Elaboratore Elettronico

Liceo Classico Statale Vittorio Emanuele II Matematica in analisi

Logica Matematica: tipiche domande da esame

L AUTOMA ESECUTORE L AUTOMA ESECUTORE

DECLINAZIONE COMPETENZE SCUOLA SECONDARIA DI PRIMO GRADO: MATEMATICA COMPETENZE CONOSCENZE ABILITA

Insiemi, Numeri, Terminologia. Prof. Simone Sbaraglia

La macchina di Turing

Equazioni di primo grado

Corso di Informatica di Base

Lezione 4. Problemi trattabili e soluzioni sempre più efficienti. Gianluca Rossi

Aniello Murano Classe dei problemi NP. Nella lezione precedente abbiamo visto alcuni problemi che ammettono soluzione polinomiale

Fondamenti dell informatica

Modelli e complessità di calcolo

Orario del corso. Contenuti del corso. Modalità d esame. Analisi Numerica 1 a.a. 2014/2015

Numeri naturali ed operazioni con essi

Approssimazione di dati e funzioni

Analisi e Modelli Matematici

1 Esercizi in pseudocodice

Appunti su Indipendenza Lineare di Vettori

Capitolo 1 Linguaggi e Macchine Astratte

U.D.1: POLINOMI conoscere le regole della scomposizione in fattori di un polinomio (raccoglimento totale e parziale, prodotti notevoli).

Fondamenti di Informatica. Definizione di Algoritmo. Algoritmo Euclideo. Prof.V.L.Plantamura Informatica e Comunicazione Digitale a.a.

Problemi, istanze, soluzioni

Cosa si intende con stato

Corso di Analisi Matematica Funzioni di una variabile

La matematica non è un opinione, lo è oppure...?

Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemm

Corso di Matematica per la Chimica. Dott.ssa Maria Carmela De Bonis a.a

Ti piacciono le riviste di meccanica? Settant anni di macchine di Turing

IL CURRICOLO VERTICALE DI MATEMATICA

La tesi di Church-Turing

Complementi di Analisi Matematica Ia. Carlo Bardaro

Algoritmi e Strutture Dati

1 Fattorizzazione di polinomi

Scienza dei calcolatori elettronici (Computer Science) Scienza dell informazione. è uno strumento in grado di eseguire insiemi di azioni elementari.

1. Un sistema di m equazioni lineari in n incognite x 1,... x n aventi tutte termine noto nullo A =...

Altrimenti, il M.C.D. di a e b è anche divisore di r (e.g. a=15,b=6,r=3 che è il M.C.D.)

Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing

e Algoritmi Marco Piastra Intelligenza Artificiale I Soddisfacibilità

Argomenti diagonali. Gianluigi Bellin

Studio degli algoritmi

NOTE DI ALGEBRA LINEARE v = a 1 v a n v n, w = b 1 v b n v n

PARTE III MACCHINE A REGISTRI

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

1 Primitive e integrali indefiniti

Transcript:

Teoria della Calcolabilità!! Si occupa delle questioni fondamentali circa la potenza e le limitazioni dei sistemi di calcolo.!! L'origine risale alla prima metà del ventesimo secolo, quando i logici matematici iniziarono ad esplorare i concetti di! "computazione! "algoritmo! "problema risolvibile per via algoritmica "! "e dimostrarono l'esistenza di problemi non risolvibili, ossia problemi che non ammettono un algoritmo di risoluzione.! "! Problemi non decidibili! 1! Problemi computazionali! "Problemi formulati matematicamente di cui cerchiamo una soluzione algoritmica.! "Classificazione:!! problemi non decidibili!! problemi decidibili!! problemi trattabili (costo polinomiale)!! problemi intrattabili (costo esponenziale)! 2!

Teoria della Complessità Computazionale!! Classificare i problemi decidibili, dividendoli in classi definite sulla base della quantità di risorse a disposizione:!! spazio di memoria!! tempo di calcolo.! 3! Calcolabilità e complessità!! Calcolabilità: nozioni di algoritmo e di problema non decidibile.!! Complessità: nozione di algoritmo efficiente e di problema intrattabile.!! La calcolabilità ha lo scopo di classificare i problemi in risolvibili e non risolvibili, mentre la complessità in facili e difficili.! 4!

ESISTENZA DI! PROBLEMI INDECIDIBILI! 5! Insiemi numerabili!! Due insiemi A e B hanno lo stesso numero di elementi! "! "si può stabilire una corrispondenza biunivoca tra i loro elementi.!! Un insieme è numerabile (possiede una infinità numerabile di elementi)! "! "i suoi elementi possono essere messi in corrispondenza biunivoca con i numeri naturali.! 6!

Insiemi numerabili!! Un insieme numerabile è un insieme i cui elementi possono essere enumerati, ossia descritti da una sequenza del tipo! a 1, a 2,..., a n,...! 7! Insiemi numerabili: esempi!! Insieme dei numeri naturali N!! Insieme dei numeri interi Z:!! n # 2 n + 1 n $ 0!! n # 2 n n < 0!! Insieme dei numeri naturali pari:!! n # 2 n!! Insieme dei numeri razionali Q!! Insieme delle stringhe su un alfabeto finito.! 8!

Insiemi equivalenti!! Due insiemi A e B sono equivalenti, o hanno la stessa potenza, se esiste una corrispondenza biunivoca tra gli elementi di A e gli elementi di B.!! Due insiemi finiti sono equivalenti " hanno lo stesso numero di elementi.!! Gli insiemi numerabili sono tutti e soli gli insiemi equivalenti a N.! 9! Insiemi non numerabili! Sono tutti gli insiemi non equivalenti a N.! Esempi:!! insieme dei numeri reali compresi nell intervallo chiuso [0,1]!! insieme dei numeri reali compresi nell intervallo aperto (0,1)!! insieme dei numeri reali!! insieme di tutte le linee nel piano!! insieme delle funzioni in una o più variabili.! 10!

Problemi computazionali! "L insieme dei problemi computazionali NON è numerabile.! 11! Problemi e funzioni!! Un problema computazionale può essere visto come una funzione matematica che associa ad ogni insieme di dati, espressi da k numeri interi, il corrispondente risultato, espresso da j numeri interi! f: N k! N j!! L insieme delle funzioni f: N k! N j NON è numerabile.! 12!

Diagonalizzazione! "F = { funzioni f f: N! {0,1} }! "ogni f " F può essere rappresentata da una sequenza infinita:! x 0 1 2 3 4... n...! f(x) 0 1 0 1 0... 0...! "o, se possibile, da una regola finita di costruzione:! " f (x) = # 0 x pari $ 1 x dispari 13! Diagonalizzazione! Teorema! L insieme F non è numerabile.! Dim.!! Per assurdo, F sia numerabile.!! Possiamo enumerare ogni funzione:! "assegnare ad ogni f " F un numero progressivo nella numerazione, e costruire una tabella (infinita) di tutte le funzioni! 14!

Diagonalizzazione! x 0 1 2 3 4 5 6 7 8...! f 0 (x) 1 0 1 0 1 0 0 0 1...! f 1 (x) 0 0 1 1 0 0 1 1 0...! f 2 (x) 1 1 0 1 0 1 0 0 1...! f 3 (x) 0 1 1 0 1 0 1 1 1...! f 4 (x) 1 1 0 0 1 0 0 0 1...!.........! 15! Diagonalizzazione! "Consideriamo la funzione g " F "! " g(x) = 0 f x (x) =1 # $ 1 f x (x) = 0 "g non corrisponde ad alcuna delle f i della tabella poiché differisce da tutte nei valori posti sulla diagonale principale.! 16!

Diagonalizzazione! x 0 1 2 3 4 5 6 7 8...!!!!! f 0 (x) 1 0 1 0 1 0 0 0 1...! f 1 (x) 0 0 1 1 0 0 1 1 0...! f 2 (x) 1 1 0 1 0 1 0 0 1...! f 3 (x) 0 1 1 0 1 0 1 1 1...! f 4 (x) 1 1 0 0 1 0 0 0 1...!...! g(x) 0 1 1 1 0...! 17! Diagonalizzazione!! Per assurdo: % j t.c. g(x) = f j (x)!! allora g(j) = f j (j), ma! " g( j) = f j ( j) = 0 f j( j) =1 # $ 1 f j ( j) = 0 " cioè g(j) # f j (j).!! contraddizione!!!! 18!

Conclusione!! F non è numerabile, e a maggior ragione, non sono numerabili gli insiemi delle funzioni:! f: N! N! f: N! R! f: R! R! f: N k! N j! "L insieme dei problemi computazionali non è numerabile.! 19! Il problema della rappresentazione! "L informatica rappresenta tutte le sue entità (quindi anche gli algoritmi) in forma digitale, come sequenze finite di simboli di alfabeti finiti (e.g., {0,1});! "descrive dunque un mondo numerabile.! 20!

Il concetto di algoritmo!! Il concetto di algoritmo è l'elemento centrale della teoria della calcolabilità.!! Un algoritmo è un procedimento di calcolo che consente di pervenire alla soluzione di un problema, numerico o simbolico, mediante una sequenza finita di operazioni, completamente e univocamente determinate.! 21! Algoritmi, funzioni e problemi! "Consideriamo algoritmi che ricevono in ingresso k valori interi, e restituiscono una soluzione data da j numeri interi, con k,j # 1.! "! "Un algoritmo può essere visto come una procedura per il calcolo della funzione (risoluzione del problema)! f: N k! N j! "che associa ad ogni insieme di dati il risultato ad essi corrispondente.! 22!

Algoritmi! "Possiamo descrivere gli algoritmi come programmi per un calcolatore (RAM). Questa rappresentazione è costituita da sequenze finite di simboli:! "Gli algoritmi sono un infinità numerabile!! "Le funzioni matematiche (e quindi i problemi computazionali) non sono numerabili.! 23! Il problema della rappresentazione! {Problemi} > > {Algoritmi}!!! "Esistono funzioni (problemi) per cui non esiste un algoritmo di calcolo! 24!

MODELLI DI CALCOLO E CALCOLABILITÀ! 25! Modelli di calcolo! "La teoria della calcolabilità dipende dal modello di calcolo?! oppure...! "la decidibilità è una proprietà del problema?! 26!

Modelli di calcolo! "I linguaggi di programmazione esistenti sono tutti equivalenti?! "Ce ne sono alcuni più potenti e/o più semplici di altri?! "Ci sono algoritmi descrivibili in un linguaggio, ma non in un altro?! "È possibile che problemi oggi irrisolvibili possano essere risolti in futuro con altri linguaggi o con altri calcolatori?! "La teorie della calcolabilità e della complessità dipendono dal modello di calcolo?! 27! La tesi di Church-Turing! "Tutti i (ragionevoli) calcolatori possono risolvere gli stessi problemi, e possono simularsi a vicenda.! "Tutti i diversi linguaggi di programmazione e i modelli di calcolo definiti si sono dimostrati equivalenti tra loro:! "risolvono esattamente la stessa classe di problemi, ovvero calcolano la stessa classe di funzioni.! 28!

La tesi di Church-Turing! "Incrementi qualitativi alla struttura di una macchina, o alle istruzioni di un linguaggio di programmazione, servono solo a:!! abbassare il tempo di esecuzione!! rendere più agevole la programmazione.! 29! La tesi di Church-Turing! "La tesi di Church-Turing non è dimostrabile.! "Può essere solo accettata o rifiutata:!! non si può escludere a priori la possibilità che un giorno venga individuato uno strumento in grado di calcolare una funzione ritenuta al momento non calcolabile.!! Vi sono ragioni convincenti per credere che ciò non potrà accadere.! 30!

Il problema dell arresto! "Abbiamo dimostrato l esistenza di funzioni/ problemi non calcolabili.! "I problemi che si presentano spontaneamente sono tutti calcolabili.! "Non è stato facile individuare un problema che non lo fosse.! "Turing (1930): Problema dell arresto.! 31! Il problema dell arresto!! Considera algoritmi che indagano sulle proprietà di altri algoritmi, che sono trattati come dati.!! È legittimo: gli algoritmi sono rappresentabili con sequenze di simboli, che possono essere presi dallo stesso alfabeto usato per codificare i dati di input.!! Una stessa sequenza di simboli può essere quindi interpretata sia come un programma, sia come un dato di ingresso di un altro programma.! 32!

Il problema dell arresto!! Un algoritmo A, comunque formulato, può operare sulla rappresentazione di un altro algoritmo B.!! Possiamo calcolare A(B).!! In particolare può avere senso calcolare A(A).! 33! Il problema dell arresto! "Presi ad arbitrio un algoritmo A e i suoi dati di input D, decidere in tempo finito se la computazione di A su D termina o no.! 34!

Il problema dell arresto! "Consiste nel chiedersi se un generico programma termina la sua esecuzione,! "oppure va in ciclo, ovvero continua a ripetere la stessa sequenza di istruzioni all infinito (supponendo di non avere limiti di tempo e memoria).! 35! ESEMPIO:! Stabilire se un intero p > 1 è primo.! Primo(p)! fattore = 2;! while (p % fattore!= 0)!!! fattore++;! return (fattore == p);! Termina sicuramente (la guardia del while diventa falsa quando fattore = p).! 36!

ESEMPIO!! Programma che trova il più piccolo numero intero pari (maggiore di 4) che NON sia la somma di due numeri primi.!! Il programma si arresta quando trova n # 4 che NON è la somma di due primi.! 37! ESEMPIO! Goldbach()! n = 2;! do {!!!n = n + 2;!!!controesempio = true;!!!for (p = 2; p n -2; p++) {!!!!q = n p;!!!!if (Primo(p) && Primo(q))!!!!!controesempio = false;!!!}! } while (!controesempio);! return n;! 38!

Congettura di Goldbach.! XVIII secolo! " ogni numero intero pari n # 4 è la somma di due numeri primi! "Congettura falsa # Goldbach() si arresta! "Congettura vera # Goldbach() NON si arresta! 39! TEOREMA! Turing ha dimostrato che riuscire a dimostrare se un programma arbitrario si arresta e termina la sua esecuzione non è solo un impresa ardua, ma in generale è IMPOSSIBILE!! "TEOREMA! "Il problema dell arresto è INDECIDIBILE.! 40!

DIMOSTRAZIONE! "Se il problema dell arresto fosse decidibile, allora esisterebbe un algoritmo ARRESTO che:!! presi A e D come dati di input!! determina in tempo finito le risposte:! "ARRESTO(A,D) = 1 se A(D) termina! "ARRESTO(A,D) = 0 se A(D) non termina! 41! Osservazione! "L algoritmo ARRESTO non può consistere in un algoritmo che simuli la computazione A(D):! "se A non si arresta su D, ARRESTO non sarebbe in grado di rispondere NO (0) in tempo finito.! 42!

DIMOSTRAZIONE! "In particolare possiamo scegliere D = A, cioè considerare la computazione A(A):! ARRESTO(A,A) = 1! "! A(A) termina! 43! DIMOSTRAZIONE! "Se esistesse l algoritmo ARRESTO, esisterebbe anche il seguente algoritmo: " "! PARADOSSO(A)!!while (ARRESTO(A,A)) {! }!! ;! 44!

DIMOSTRAZIONE! "L ispezione dell algoritmo PARADOSSO mostra che:! PARADOSSO(A) termina! x = ARRESTO(A,A) = 0! A(A) non termina! 45! DIMOSTRAZIONE! Cosa succede calcolando PARADOSSO(PARADOSSO)?! PARADOSSO(PARADOSSO) termina! x = ARRESTO(PARADOSSO, PARADOSSO) = 0! PARADOSSO(PARADOSSO) non termina! contraddizione!! 46!

DIMOSTRAZIONE! "L unico modo di risolvere la contraddizione è che l algoritmo PARADOSSO non possa esistere.! "Dunque non può esistere nemmeno l algoritmo ARRESTO.! "In conclusione, il problema dell arresto è indecidibile!! 47! Osservazione! "Come già osservato, l algoritmo ARRESTO costituirebbe uno strumento estremamente potente:! "permetterebbe infatti di dimostrare congetture ancora aperte sugli interi (esempio: la congettura di Goldbach).! 48!

Problemi indecidibili!! Altri problemi lo sono:!! Ad esempio, è indecidibile stabilire l equivalenza tra due programmi (se per ogni possibile input, producono lo stesso output)!! Lezione di Turing :! "non esistono algoritmi che decidono il comportamento di altri algoritmi esaminandoli dall esterno, cioè senza passare dalla loro simulazione.! 49! Il decimo problema di Hilbert!! Esistono risultati di non calcolabilità relativi ad altre aree della matematica, tra cui la teoria dei numeri e l'algebra.!! Tra questi, occupa un posto di rilievo il ben noto decimo problema di Hilbert.! 50!

Equazioni diofantee! "Un'equazione diofantea è un'equazione della forma! p(x 1,x 2,...,x m ) = 0! "dove p è un polinomio a coefficienti interi.! 51! Il decimo problema di Hilbert! "Data un arbitraria equazione diofantea, di grado arbitrario e con un numero arbitrario di incognite! p(x 1,x 2,...,x m ) = 0! "stabilire se p ammette soluzioni intere.! 52!

Teorema! "Il decimo problema di Hilbert non è calcolabile.! 53! Il decimo problema di Hilbert! "La questione circa la calcolabilità di questo problema è rimasta aperta per moltissimi anni,! "ha attratto l'attenzione di illustri matematici,! "ed è stata risolta nel 1970 da un matematico russo allora poco più che ventenne, Yuri Matiyasevich.! 54!