PROBLEMI RISOLUBILI E COMPUTABILITÀ se neanche la macchina di Turing riesce a risolvere un problema, quel problema non è risolubile! Secondo la Tesi di.

Slides:



Advertisements
Presentazioni simili
INSIEMI INSIEME= gruppo di oggetti di tipo qualsiasi detti elementi dell’insieme. Un insieme è definito quando viene dato un criterio non ambiguo che.
Advertisements

Modelli simulativi per le Scienze Cognitive
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.
LINGUAGGI DI PROGRAMMAZIONE
Automi temporizzati.
Grammatiche 1 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa A05 Autovalutazione.
Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica FONDAMENTI DI INFORMATICA Domenico Talia
PRIMI CONCETTI ESEMPI INTRODUTTIVI DEFINIZIONI INTRODUZIONE ALLE FUNZIONI.
Le Frazioni Prof.ssa A.Comis.
x : variabile indipendente
I limiti.
© 2007 SEI-Società Editrice Internazionale, Apogeo
Alcune note, dalla rete, sui Sistemi cellulari
SUMMERMATHCAMP TARVISIO, AGOSTO 2017
il periodo è una frase composta da più proposizioni che possono essere
= 2x – 3 x Definizione e caratteristiche
Appunti sull’ Integrale Indefinito e Definito
Giovanni Finaldi Russo Pietro Bruno
LA CIRCONFERENZA.
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning
Unità di apprendimento 1
Generazione e membership
Le successioni Un caso particolare di funzioni: le successioni
La circonferenza nel piano cartesiano
x : variabile indipendente
Insiemi e logica Insiemi e operazioni insiemistiche
La circonferenza nel piano cartesiano
Intervalli di numeri reali
Definizione e caratteristiche
Algoritmi e soluzioni di problemi
IL CONCETTO DI ALGORITMO
Dal problema al processo risolutivo
x : variabile indipendente
Insiemi di punti: altre caratteristiche
Macchine sequenziali Capitolo 4.
FUNZIONI MATEMATICHE DANIELA MAIOLINO.
04/09/2018 Il concetto di limite 1 1.
Ripasso… Elementi di logica
L'Insieme.
LE PERSONE PARLANO TRA LORO PER SCAMBIARSI EMOZIONI, IDEE, PER RACCONTARSI… COMUNICARE ATTRAVERSO IL LINGUAGGIO E’ LA COSA PIU’ DIFFUSA SU TUTTA LA TERRA.
Programmare.
I RADICALI Definizione di radicali Semplificazione di radicali
Programmazione e Laboratorio di Programmazione
Gli automi.
I numeri relativi DEFINIZIONE. Si dicono numeri relativi tutti i numeri interi, razionali e irrazionali dotati di segno (positivo o negativo). ESEMPI Numeri.
Programmazione e Laboratorio di Programmazione
32 = 9 x2 = 9 x = 3 32 = 9 √9 = 3 L’estrazione di radice
TEORIA ELEMENTARE DEGLI INSIEMI.
Ricorsione 16/01/2019 package.
Introduzione agli Algoritmi e alle Strutture Dati
Definizione di linguaggio di programmazione
LE SUCCESSIONI Si consideri la seguente sequenza di numeri:
Automi e stringhe Lezione n°24 Prof.ssa Rossella Petreschi
Le Macchine di Turing.
Semantica dinamica Vogliamo definire una funzione che associ ad ogni termine corretto del mio linguaggio di programmazione un valore. Questa associazione.
Teoria della computabilità
Analisi e Sintesi di circuiti sequenziali
Matrici e determinanti
Logica Lezioni
Programmazione e Laboratorio di Programmazione
Appunti di analisi matematica: Integrale Definito
Insiemi 25/06/2019.
Le Frazioni Prof.ssa A.Comis.
Il questionario: progettazione e redazione II Modulo
ALGORITMO E’ una successione finita di passi che consente di risolvere tutti i problemi di una classe e di determinare il risultato. Caratteristiche: Finito.
Limite di una funzione appunti.
Definizione e caratteristiche
I sistemi di equazioni di 1° grado
Transcript della presentazione:

PROBLEMI RISOLUBILI E COMPUTABILITÀ se neanche la macchina di Turing riesce a risolvere un problema, quel problema non è risolubile! Secondo la Tesi di Church-Turing, non esiste un formalismo “più potente” della Macchina di Turing, ossia capace di risolvere una classe più ampia di problemi. Dunque...

QUALCHE DEFINIZIONE PROBLEMA RISOLUBILE Un problema la cui soluzione può essere espressa da una Macchina di Turing o formalismo equivalente. La macchina di Turing calcola funzioni, quindi occorre un modo (semplice) per associare a un problema una funzione.

QUALCHE DEFINIZIONE FUNZIONE CARATTERISTICA DI UN PROBLEMA Dato un problema P, l’insieme X dei suoi dati di ingresso, l’insieme Y delle risposte corrette, si dice funzione caratteristica del problema P la funzione: f P : X  Y che associa a ogni dato d’ingresso la corri- spondente risposta corretta.

QUALCHE DEFINIZIONE FUNZIONE CARATTERISTICA DI UN PROBLEMA Perché questo artificio? Perché grazie a questa funzione, decidere se un problema è risolubile equivale a chiedersi se la funzione f P è computabile D’ora in poi parleremo quindi solo di funzioni computabili, sapendo che ciò equivale a parlare di problemi risolubili.

QUALCHE DEFINIZIONE FUNZIONE COMPUTABILE Una funzione f: A  B per la quale esiste una Macchina di Turing che –data sul nastro una rappresentazione di x  A dopo un numero finito di passi –produce sul nastro una rappresentazione del risultato f(x)  B

QUALCHE DEFINIZIONE Attenzione Nel seguito considereremo solo funzioni f: N  N questo non è limitativo perché –ogni informazione è necessariamente finita, –quindi può essere codificata in una collezione di numeri naturali –la quale collezione può essere a sua volta espressa con un unico numero naturale mediante il procedimento di Gödel.

IL PROCEDIMENTO DI GÖDEL “Data una collezione di numeri naturali, esprimerla con un unico numero naturale.” Procedimento: Siano N 1, N 2, … N k i numeri naturali dati e siano P 1, P 2, … P k i primi k numeri primi Il nuovo numero R definito come R ::= P 1 N1 · P 2 N2 · … · P k Nk rappresenta univocamente la collezione N 1, … N k grazie all’unicità della scomposi- zione in fattori primi.

COMPUTABILITÀ È noto dall’analisi matematica che l’insieme F = { f: N  N } non è enumerabile (cardinalità del continuo) Invece, l’insieme delle Macchine di Turing (e quindi delle funzioni computa- bili) è enumerabile. Infatti, poiché il numero di simboli di ingresso, di uscita e di stati di una TM è finito, ogni Macchina di Turing può essere associata a un numero naturale con il procedimento di Gödel.

COMPUTABILITÀ CONSEGUENZA: la maggioranza delle funzioni NON può essere calcolata!!!

COMPUTABILITÀ Però…  le sole funzioni che davvero ci interessano sono quelle che possiamo definire... .. la qual cosa richiede un linguaggio... .. e quindi un alfabeto... .. che è fatto da un numero finito di simboli!

COMPUTABILITÀ Ergo, potremmo sperare che almeno queste si potessero calcolare tutte… … E INVECE NO!! CONSEGUENZA: le funzioni che possiamo realmente defi- nire sono molte di meno, e costituiscono un insieme enumerabile!

FUNZIONI NON COMPUTABILI È facile dimostrare che esistono funzioni definibili ma non computabili e, quindi, problemi non risolubili. ESEMPIO: Problema dell’ halt della macchina di Turing. Dire se una data macchina di Turing T, con un generico ingresso X, si ferma oppure no.

FUNZIONI NON COMPUTABILI Questo problema è perfettamente definito, ma non è computabile (nel caso generale). Dimostrazione Sia M l’insieme di tutte le Macchine di Turing e X l’insieme di tutti i possibili ingressi. Sia poi: – x  Xun generico dato di ingresso –m  Muna generica Macchina di Turing.

FUNZIONI NON COMPUTABILI La funzione caratteristica f H di questo problema può essere così definita: f H (m,x) = 1, se m con ingresso x si ferma 0, se m con ingresso x non si ferma Dimostreremo che questa funzione è definita ma non computabile, in quanto tentare di calcolarla conduce a un assurdo.

FUNZIONI NON COMPUTABILI Se f H è computabile, deve esistere una Macchina di Turing TF capace di calcolarla. Definiamo allora una nuova funzione g H come segue: dove n è il numero naturale che rappresenta una data Macchina di Turing (procedimento di Gödel). g H (n) = 1, se f H (n,n) = 0 , se f H (n,n) = 1

FUNZIONI NON COMPUTABILI In pratica, con un dato ingresso n:  g si ferma e risponde 1 quando f non si ferma  g non si ferma e entra in un ciclo infinito quando invece f si ferma. g H (n) = 1, se f H (n,n) = 0 , se f H (n,n) = 1

FUNZIONI NON COMPUTABILI Come caso particolare, sia ora n = n g, ossia prendiamo come ingresso proprio quel particolare numero che rappresenta la Macchina di Turing TG che calcola g H. Questo significa dare come ingresso a TG, come caso particolare, la sua stessa descrizione.

FUNZIONI NON COMPUTABILI Sostituendo si ottiene: che è assurdo, in quanto afferma che:  se g vale 1 (e quindi TG si ferma), f vale 0 (e quindi TG non si ferma)  se invece g è indefinita (cioè TG non si ferma), f vale 1 (perciò TG si ferma). g H (n g ) = 1, se f H (n g, n g ) = 0 , se f H (n g, n g ) = 1

FUNZIONI NON COMPUTABILI Conclusione: il problema di decidere se una data Macchina di Turing T, con un generico ingresso X, si ferma oppure no non è computabile: È UN PROBLEMA INDECIDIBILE.

INSIEMI NUMERABILI L’analisi matematica introduce il concetto di insieme numerabile come insieme i cui elementi possono essere “contati” ossia che possiede una funzione biettiva f: N  S che mette in corrispondenza i numeri naturali con gli elementi dell’insieme.

INSIEMI NUMERABILI Insiemi che possiedono una funzione biettiva f: N  S che mette in corrispondenza i numeri naturali con gli elementi dell’insieme

INSIEMI RICORSIVAMENTE ENUMERABILI La nozione di computabilità porta a intro- durre un concetto più forte: quello di insieme ricorsivamente enumerabile (o semidecidibile) Un insieme S tale che esiste un proce- dimento effettivo per costruirlo ossia esiste una Macchina di Turing T capace di computare la funzione di corrispon- denza f: N  S.

INSIEMI RICORSIVAMENTE ENUMERABILI Quindi, la funzione f: N  S non deve soltanto esistere

INSIEMI RICORSIVAMENTE ENUMERABILI Quindi, la funzione f: N  S non deve soltanto esistere......deve essere computabile!

INTERPRETAZIONE Dire che la funzione f: N  S è computabile significa dire che l’insieme S può essere effettivamente costruito (per enumerazione) appunto calcolando elemento per elemento la funzione f.

INSIEMI RICORSIVAMENTE ENUMERABILI ATTENZIONE Il fatto che l’insieme S possa essere costruito NON SIGNIFICA AFFATTO che si possa decidere se un elemento appartiene all’insie- me stesso. Quello è tutto un altro problema!!!

INSIEMI RICORSIVI (o DECIDIBILI) Il problema di decidere dell’appartenenza di un elemento a un insieme porta a introdurre un ultimo concetto: quello di insieme ricorsivo (o decidibile)

INSIEMI RICORSIVI (o DECIDIBILI) Un insieme S è ricorsivo (o decidibile) se la sua funzione caratteristica è computabile ossia... f (x) = 1, se x  S 0, se x  S

INSIEMI RICORSIVI (o DECIDIBILI) ossia... se esiste una Macchina di Turing capace di rispondere sì o no, senza entrare in un ciclo infinito, alla domanda se un qualsiasi elemento appartiene all’insieme.

INSIEMI RICORSIVI (o DECIDIBILI) TEOREMA 1 Se un insieme è ricorsivo (decidibile) è anche ricorsivamente enumerabile (semidecidibile) ma non viceversa

INSIEMI RICORSIVI (o DECIDIBILI) TEOREMA 2 Un insieme S è ricorsivo (decidibile) se e solo se sia S sia il suo complemento N-S sono ricorsivamente enumerabili (semidecidibili)

VA BENE, PERÒ….... perché ci interessa tanto??

INSIEMI & LINGUAGGI  I linguaggi di programmazione sono costruiti a partire da un certo alfabeto  e ogni linguaggio è caratterizzato dall’insieme delle sue frasi lecite. Non ci basta che l’insieme delle frasi sia ricorsivamente enumerabile, cioè possa essere generato... (ossia, che si possano generare le frasi “previste”)

INSIEMI & LINGUAGGI  I linguaggi di programmazione sono costruiti a partire da un certo alfabeto  e ogni linguaggio è caratterizzato dall’insieme delle sue frasi lecite. … è indispensabile anche poter decidere se una frase è giusta o sbagliata senza entrare in ciclo infinito e ciò richiede che l’insieme delle frasi del linguaggio sia ricorsivo (decidibile).

INSIEMI & LINGUAGGI Se così non fosse… il compilatore (o interprete) che deve tradurre le istruzioni del linguaggio in linguaggio macchina potrebbe non rispondere (entrando in un ciclo infinito) nel caso incontrasse una frase errata mentre noi vogliamo che si fermi e segnali l’errore.

LINGUAGGI E PROPRIETÀ  Un linguaggio è un insieme di frasi  Una frase è una sequenza di simboli appartenenti a un certo alfabeto  Un linguaggio deve essere effettivamente generabile  Un linguaggio di programmazione deve essere decidibile

ALCUNE DEFINIZIONI Alfabeto V (o vocabolario o lessico) È l’insieme dei simboli con cui si costruiscono le frasi Universo linguistico V* di un alfabeto V È l’insieme di tutte le frasi (sequenze finite di lunghezza arbitraria) di elementi di V. Linguaggio L su un alfabeto V È un sottoinsieme di V*.

LINGUAGGI & GRAMMATICHE Problema: Come specificare il sottoinsieme di V* che definisce il linguaggio? Risposta: Specificando il modo formale e preciso la sintassi delle frasi del linguaggio tramite una grammatica formale

GRAMMATICHE, LINGUAGGI & AUTOMI RICONOSCITORI Grammatiche di diversa struttura comportano linguaggi con diverse proprietà e implicano automi di diversa “potenza computazionale” per riconoscere tali linguaggi.

CLASSIFICAZIONE DI CHOMSKY Le grammatiche sono classificate in 4 tipi in base alla struttura delle produzioni Tipo 0: nessuna restrizione sulle produzioni

CLASSIFICAZIONE DI CHOMSKY Le grammatiche sono classificate in 4 tipi in base alla struttura delle produzioni Tipo 1 (dipendenti dal contesto): produzioni vincolate alla forma: x A y ::= x  y con x,y,  VT  VN)*, A  VN, 

CLASSIFICAZIONE DI CHOMSKY Le grammatiche sono classificate in 4 tipi in base alla struttura delle produzioni Tipo 2 (libere dal contesto): produzioni vincolate alla forma: A ::=  con  VT  VN)*, A  VN, 

CLASSIFICAZIONE DI CHOMSKY Le grammatiche sono classificate in 4 tipi in base alla struttura delle produzioni Tipo 3 (grammatiche regolari): produzioni vincolate alla forma ricorsiva A ::= a | aB(ricorsiva a destra) A ::= a | Ba(ricorsiva a sinistra) con A,B  VN, e a  VT.

CLASSIFICAZIONE DI CHOMSKY In sintesi Tipo 0 (generiche) Tipo 1 (dipendenti da contesto) Tipo 2 (libere da contesto) Tipo 3 (regolari) Generalità Semplicità Automariconoscitore

GRAMMATICHE & MACCHINE PER RICONOSCERE LINGUAGGI I linguaggi generati da grammatiche di tipo 1 (e quindi anche di tipo 2 e tipo 3) sono riconoscibili, ossia esiste un algoritmo per decidere se una frase appartiene o meno al linguaggio. Un tale procedimento non esiste invece, in generale, per grammatiche di tipo 0. Ma… CHI li riconosce?

GRAMMATICHE & MACCHINE PER RICONOSCERE LINGUAGGI  Tipo 3  Automa a Stati Finiti (ASF)  Tipo 2  Macchina a stack (ASF + stack)  Tipo 1  Macchina di Turing con nastro limitato  Tipo 0  SE è riconoscibile (può non esserlo), occorre una Macchina di Turing

AUTOMA A STATI FINITI  Un macchina astratta molto più semplice di una Macchina di Turing  niente nastro  niente funzione di direzione, dfn()  quindi, niente memoria illimitata!  per questo si chiama “a stati finiti”  gli stati sono la sua unica forma di memoria  che riassume la storia passata  spesso descritto con un grafo degli stati

AUTOMA A STATI FINITI dove  A = insieme finito dei simboli d’ingresso / uscita  S = insieme finito degli stati  F = insieme finito degli stati finali (F  S)  mfn: A  S  A(funzione di macchina)  sfn: A  S  S(funzione di stato) Formalmente, è definito dalla quintupla:  A, S, F, mfn, sfn 

AUTOMA A STATI FINITI: ESEMPIO  Riconoscimento di un identificatore P = { ::= { | } ::= A | B | C | D |... | Z ::= 0|1|2|3|4|5|6|7|8|9 }  Un identificatore corretto deve portare l’automa in uno stato finale di accettazione  Un identificatore errato deve portare l’automa in uno stato finale di errore

altro simbolo AUTOMA A STATI FINITI: ESEMPIO S0S1 lettera lettera o cifra S2 cifra o altro simbolo qualunque simbolo stato finale di errore stato finale di accettaz. stato iniziale