Precorsi di Informatica Dott. Antonio Cisternino Settembre 2003

Slides:



Advertisements
Presentazioni simili
Misure ed Errori Prof Valerio CURCIO.
Advertisements

1 I numeri relativi DEFINIZIONE. Si dicono numeri relativi tutti i numeri interi, razionali e irrazionali dotati di segno (positivo o negativo). ESEMPI.
Torniamo al primo problema. Come fare acquisti sicuri via Internet? Come trasmettere informazioni in modo riservato?
LIMITI:DEFINIZIONI E TEOREMI
Sistemi dinamici discreti e computabilità intrinseca
Macchine di Turing e ricorsività generale
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità E1 Dallanalisi del problema alla definizione dellalgoritmo.
Linguaggi Regolari e Linguaggi Liberi
Capitolo 8 Sistemi lineari.
Deduzione naturale + Logica & Calcolabilità
Fisica 1 Termodinamica 9a lezione.
Fisica 1 Termodinamica 8a lezione.
Lez. 41 Universita' di Ferrara Facolta' di Scienze Matematiche, Fisiche e Naturali Laurea Specialistica in Informatica Algoritmi Avanzati Programmazione.
esponente del radicando
Algoritmi e Dimostrazioni Stefano Berardi
Iterazione enumerativa (for)
Esercizi di esonero (a.a. 2007/2008) Compito C, terzo esercizio Data una sequenza di caratteri s1 ed una stringa s2 diciamo che s1 è contenuta in s2 se.
Analisi e Sintesi di circuiti sequenziali
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Capitolo 4 Ordinamento:
Argomenti della lezione
PROGETTO LAUREE SCIENTIFICHE
LEGGE DELLA CIRCUITAZIONE
Modelli simulativi per le Scienze Cognitive Paolo Bouquet (Università di Trento) Marco Casarotti (Università di Padova)
Modelli simulativi per le Scienze Cognitive
Analisi e Sintesi di circuiti sequenziali. Definizione Una macchina sequenziale é un sistema nel quale, detto I(t) l'insieme degli ingressi in t, O(t)
1 Esempio : Utile per considerare limportanza delle ALTE FREQUENZE nella ricostruzione del segnale, in particolare dei FRONTI di SALITA e di DISCESA (trailing.
SUL CONCETTO DI LIMITE PER FUNZIONI REALI DI VARIABILE REALE
Lezione 3 informatica di base per le discipline umanistiche vito pirrelli Istituto di Linguistica Computazionale CNR Pisa Dipartimento di linguistica Università
successioni e limiti di successioni
Le matrici e I Sistemi lineari.
Corso di Matematica Discreta I Anno
Corso di Matematica Discreta cont. 2
INSIEMI NUMERABILI L’analisi matematica introduce il concetto di insieme numerabile come insieme i cui elementi possono essere “contati” ossia che possiede.
PROBLEMI RISOLUBILI E COMPUTABILITÀ
L’AUTOMA ESECUTORE Un automa capace di ricevere dall’esterno una descrizione dello algoritmo richiesto cioè capace di interpretare un linguaggio (linguaggio.
IL GIOCO DELLA LOGICA.
Logica Matematica Seconda lezione.
INTELLIGENZA E MACCHINE CALCOLATRICI
Antonio Cisternino La Macchina di Turing.
Radix-Sort(A,d) // A[i] = cd...c2c1
I NUMERI INTERI Il secondo insieme che prenderemo in esame è quello dei numeri interi. Esso si indica con la lettera Z (dal tedesco Zahl = numero) e i.
TEOREMA Se due rette, tagliate da una trasversale, formano una coppia di angoli alterni interni congruenti, allora, gli angoli esterni sono congruenti,
BIOINFO3 - Lezione 201 Come in ogni corso di introduzione ad un linguaggio di programmazione, proviamo a scrivere lormai celebre primo programma di prova.
ESTENSIONI SEMPLICI e TEOREMA DELL’ELEMENTO PRIMITIVO
L’infinito l’infinito in matematica Il numerabile  o Il continuo C.
La rappresentazione delle informazioni in un computer Seconda parte.
MATEMATIZZAZIONE Con il termine “Matematizzazione” intendiamo quel processo attraverso il quale si tenta di “tradurre” nel formalismo matematico un problema.
Rappresentazione dell’informazione nel calcolatore.
Misure ed Errori.
Logica Lezz Nov Reiterazione (RE) P |- P 1 P A 2 P & P 1,1, &I 3 P 2, & E.
Corso di Matematica Discreta 4
Rappresentazione dell'informazione
Rappresentazione dell'informazione 1 Se ho una rappresentazione in virgola fissa (es. su segno e 8 cifre con 3 cifre alla destra della virgola) rappresento.
Codici prefissi Un codice prefisso è un codice in cui nessuna parola codice è prefisso (parte iniziale) di un’altra Ogni codice a lunghezza fissa è ovviamente.
Conversione binario-ottale/esadecimale
Informatica 4 La ricorsione. Definizione di ricorsione Ricorsione è la proprietà di quei programmi che, all’interno delle istruzioni che li compongono,
I LIMITI.
Indecidibilità Limiti della calcolabilità Pigreco-day 14 marzo 2014 Matematica e Incertezza Prof. Antonio Iarlori Mathesis Lanciano-Ortona.
Forma normale delle equazioni di 2° grado Definizione. Un'equazione di secondo grado è in forma normale se si presenta nella forma Dove sono numeri.
Elementi di calcolo combinatorio e di probabilità. Prof. Ugo Morra Liceo scientifico V. Vecchi di Trani Lezione di potenziamento delle abilità in matematica.
La numerazione ottale. Il sistema di numerazione ottale ha ampio utilizzo in informatica E’ un sistema di numerazione posizionale La base è 8 Il sistema.
© 2015 Giorgio Porcu - Aggiornamennto 09/12/2015 I STITUTO T ECNICO SECONDO BIENNIO T ECNOLOGIE E P ROGETTAZIONE Rappresentazione dell’ Informazione Conversioni.
Criteri di divisibilità
Unità di apprendimento 6
I LIMITI.
Esponenziali e Logaritmi
Logica Lezione 8, DISTRIBUIRE COMPITO 1.
Logica Lezione 19, Distribuire compito 3 DATA esame in classe intermedio: Lunedì 20 aprile.
Logica Lezione 11, Annuncio Non si terrà la lezione di Lunedì 16 Marzo.
INSIEMI E LOGICA PARTE QUARTA.
Transcript della presentazione:

Precorsi di Informatica Dott. Antonio Cisternino 23-25 Settembre 2003 Funzioni calcolabili Precorsi di Informatica Dott. Antonio Cisternino 23-25 Settembre 2003

Scambiamo 0 e 1 Le regole per la Macchina di Turing Universale sono due e sono analoghe a quelle viste nella prima lezione: B S0S11 S1S01 I

Numeriamo le MdT Con la Macchina di Turing Universale abbiamo imparato ad esprimere il programma di una macchina come una stringa Domanda: è possibile associare un numero in modo univoco ad ogni Macchina possibile? Risposta: è possibile associare un numero naturale ad ogni macchina

Associamo cifre ai simboli Lo schema di codifica che vedremo è uno tra i tanti L’idea è quella di trasformare un programma in cifre e quindi associare alla macchina il numero così ottenuto I simboli necessari a definire le regole (e quindi il programma) sono: {S, 0, 1, N} Associamo quindi i simboli a cifre: {S  2, 0  0, 1  1, N  3, B  4, I  5}

Esempio Associamo quindi un numero al programma visto all’inizio secondo la regola stabilita: B S0S11 S1S01 I = 430311313015 Dato il numero siamo in grado di ottenere la macchina? Certamente: basta usare l’associazione al contrario

Codifichiamo l’input Esempio: T01001001N = 2010010013 Possiamo procedere in modo analogo per associare un numero all’input della nostra macchina: {0  0, 1  1, T  2, N  3} Esempio: T01001001N = 2010010013 Ancora una volta possiamo riottenere l’input dal numero

Osservazioni Siamo in grado di ottenere, data una macchina, un numero. Sappiamo anche tornare indietro a partire dal numero È sempre possibile dato un numero ottenere la macchina corrispondente? La risposta è no, nella codifica che abbiamo usato esistono numeri a cui non è possibile associare una macchina Lo stesso si può dire per l’input

Goëdelizzazione È possibile realizzare codifiche che associano ad ogni numero una macchina o un input sempre invertibili Il procedimento di enumerare tutte le Macchine di Turing è noto col termine di Göedelizzazione ATTENZIONE!!!! Le macchine di Turing sono tante quante i numeri naturali: sappiamo ottenere una macchina dato un numero e viceversa!!!!!

La tesi di Church È giunto il momento di ricordare la tesi di Church La tesi di Church/Turing è la seguente: se una funzione è calcolabile secondo un qualsiasi formalismo esistente e non allora lo è anche con una macchina di Turing Le funzioni calcolabili quindi coincidono (secondo questa tesi) con le macchine di Turing

|{f | f è calcolabile}|??? Quante sono le funzioni calcolabili? Sono di più dei numeri naturali? No, visto che abbiamo associato in modo univoco numeri e macchine Sono più dei numeri interi o razionali? No: entrambi gli insiemi sono enumerabili Sono più dei numeri reali? No!!! I numeri reali sono più di quelli naturali!!!

|{f | f:NN}|??? Quante sono le funzioni da numeri naturali in numeri naturali Sono enumerabili? NO!!! Come possiamo dimostrare che le funzioni da naturali in naturali non sono enumerabili (non possono essere messe in corrispondenza con i numeri interi)? Si procede con un argomento proposto dal Matematico G. Cantor: la diagonalizzazione

Considerazioni preliminari Consideriamo i possibili sottoinsiemi dei numeri naturali: {0}, {0, 1}, {2,5,7}… Per ogni sottoinsieme S di N possiamo costruire una funzione che associa ad ogni elemento di N 1 se questo appartiene ad S, 0 altrimenti Le funzioni da N in N sono quindi almeno quanto i sottoinsiemi di N Quanti sono i possibili sottoinsiemi di N?

I sottoinsiemi di N Supponiamo per assurdo che i sottoinsiemi di N siano enumerabili Consideriamo la seguente tabella: 1 2 3 4 … f0 0 1 1 0 … f1 1 0 0 0 … … fi è la funzione che identifica l’i-esimo insieme

Una funzione speciale Costruiamo la seguente funzione: f x0 x1 x2 x3 … 1 2 3 4 … f x0 x1 x2 x3 … dove xi è 1 se l’i-esimo elemento della diagonale è 0, 0 altrimenti. Questa funzione definisce un sottoinsieme di N ma non può apparire nella tabella!!!! Quindi l’ipotesi che le funzioni che definiscono insiemi siano enumerabili non può essere vera

Funzioni non calcolabili Abbiamo dimostrato che un sottoinsieme delle funzioni da N a N non è numerabile Quindi le funzioni sono più dei numeri naturali Ne consegue che esistono funzioni che non sono calcolabili poiché le macchine di Turing sono quanti i numeri naturali

Il problema della fermata Vediamo un esempio di funzione non calcolabile veramente significativo per gli informatici Il problema che ci poniamo è il seguente: esiste una funzione che, dati in ingresso un programma e un input, è in grado di dire se la macchina di Turing con quel programma terminerà la sua esecuzione su quell’Input?

Il problema della fermata Il problema della fermata non ha una risposta ovvia: in fondo se siamo riusciti a programmare l’interprete universale perché non può esistere una tale funzione? Intuizione: come posso verificare la terminazione? Uso l’interprete universale e se termina bene, altrimenti siamo costretti ad aspettare: chissà!

Diagonalizziamo? Per dimostrare che non può esistere una tale funzione utilizziamo l’argomento della diagonalizzazione Assurdo: supponiamo che esista tale funzione Q Come la costruiamo la tabella? Poiché le MdT sono numerabili associamo ad ogni riga la macchina di Turing corrispondente Ad ogni colonna associamo tutti i possibili input

La tabella La tabella diviene quindi: 1 2 3 4 … 1 y n y y … 1 2 3 4 … 1 y n y y … 2 n n y y … All’incrocio (i, j) scriviamo y se la funzione Q dice che la macchina i termina sull’input j, scriviamo n in caso contrario

L’argomento Come abbiamo già fatto in precedenza costruiamo la funzione (artificiosa) prendendo i valori della diagonale e scambiando y con n e viceversa: n y … Questa funzione non occorre nella tabella (differisce sempre per l’elemento sulla diagonale) La funzione Q quindi non è in grado di esprimersi su tutte le funzioni: ciò contraddice l’ipotesi

Uno sguardo alla funzione Com’è fatta la funzione che abbiamo utilizzato per trovare la contraddizione? È una funzione che ha in posizione i il valore opposto rispetto al valore Q(i, i) Ma cosa significa Q(i, i)? Q(i, i) vale y se la macchina i con input i termina la sua esecuzione, n altrimenti Quindi F(i) = opposto(Q(i, i)) Per opposto intendiamo che cambia y in n e viceversa

Un’altra via per dimostrare Si suppone per assurdo che esista la funzione Q e si costruisce una funzione F(i) che applica la macchina i a sé stessa: se Q(i, i) indica y allora non termina altrimenti termina Un’altra possibile dimostrazione del fatto che la funzione Q non è calcolabile poggia sulla definizione di F(i)

L’assurdo Troviamo quindi un assurdo: cosa vale Q(F, F)? Supponiamo Q(F, F) = y: non si può verificare poiché F termina solo se Q(F, F) non termina Supponiamo Q(F, F) = n: non si può verificare per la stessa ragione Abbiamo quindi un assurdo che non può derivare se non dal fatto che abbiamo postulato l’esistenza di Q: Q non può esistere!

Conclusioni In questa lezione abbiamo visto come esistano limiti al calcolo che non possono essere oltrepassati Questo risultato ci insegna inoltre che i modelli aiutano a comprendere meglio un problema Abbiamo visto poi un importante esempio di uso reale del modello delle Macchine di Turing