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

Documenti analoghi
Concetti di base sugli automi e sui linguaggi formali

Linguaggi Regolari e Linguaggi Liberi

Parole note, nuovi significati: linguaggio, determinismo e infinito

Fondamenti d Informatica: Le Macchine di Turing. Barbara Re, Phd

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

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

Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing

UNA GERARCHIA DI MACCHINE

Linguaggi Regolari e Linguaggi Liberi

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

Principio di composizione delle MT

Esercizi di Fondamenti di Informatica per la sicurezza. Stefano Ferrari

Proprieta dei Linguaggi Regolari. Proprieta dei Linguaggi Regolari

Macchine di TURING. Alan Mathison Turing ( )

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

Sommario Codifica dei dati Macchina Astratta Definizioni Esempi

AUTOMA A STATI FINITI

Le parole dell informatica: algoritmo e decidibilità

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

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

Proprieta dei Linguaggi regolari

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

ITLCC 2006/10/6 19:09 page 7 #3

Aniello Murano Automi e Pushdown

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

Esempio stringhe palindrome 1

controllo stringa a a b a b b c c b a b x y z pila di memoria

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

Problemi, algoritmi, calcolatore

Teoria della Calcolabilità!

a cura di Luca Cabibbo e Walter Didimo

Il calcolatore universale, origini e nuovi paradigmi

Il concetto di calcolatore e di algoritmo

Corso di Linguaggi e Traduttori 1 AA GRAMMATICHE

Automi e Linguaggi Formali Automi a stack (Pushdown automata)

Linguaggi regolari e automi a stati finiti

Teoria della Calcolabilità!

Aniello Murano Problemi non decidibili e riducibilità

Definizione di Grammatica

Aniello Murano Decidibilità delle teorie logiche

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

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

Capitolo 8: Teoria della complessitá

Informatica. Come si risolve un problema?

Automi per il riconoscimento di linguaggi.

Linguaggi formali e compilazione

Le grammatiche formali

Università degli Studi di Udine. 1 Automi e Linguaggi. Prova Scritta di Fondamenti dell Informatica II Alcune Soluzioni

Forma Normale di Chomsky

Linguaggi formali e compilazione

Forme Normali. Forma normale di Chomsky. E caratterizzata da regole di due tipi. A! BC dove A, B, C $ V N A! a con a $ V T. Forma normale di Greibach

Linguaggi, Traduttori e le Basi della Programmazione

Macchine RAM. API a.a. 2013/2014 Gennaio 27, 2014 Flavio Mutti, PhD

Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing

Macchina di Turing ... !!... !!! a b b! b a! Nastro di Input. testina. s t q i. s r. Unità di Controllo q j S / D / F

Fondamenti d Informatica: Le Macchine di Turing. Barbara Re, Phd

Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemm

Corso di Linguaggi di Programmazione

Macchine per l elaborazione dell informazione dalla macchina di Von Neumann al Calcolatore Elettronico

Quiz sui linguaggi regolari

Parte I.5 Cenni alla computazione

Funzioni calcolabili e linguaggi decidibili

La macchina universale

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.)

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

Corso di Informatica di Base

Informatica Teorica. Macchine a registri

Varianti Macchine di Turing

Appunti sulla teoria degli automi, dei linguaggi e della calcolabilità

Le aree dell informatica

Automi. Rosario Culmone, Luca Tesei. 20/10/2009 UNICAM - p. 1/55

Automa a Stati Finiti (ASF)

Corso di Laurea Magistrale in Ingegneria Informatica A.A Linguaggi Formali e Compilatori. Automi. Giacomo PISCITELLI

LABORATORIO DI INFORMATICA

Pumping lemma per i linguaggi Context-free

Macchine sequenziali. Automa a Stati Finiti (ASF)

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

Elementi di Complessità Computazionale

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

Algoritmi e Principi dell Informatica

LINGUAGGI CONTEXT FREE. Lezione Lezione

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

Le aree dell informatica

Aniello Murano Space Complexity

Fondamenti di informatica per la sicurezza anno accademico docente: Stefano Ferrari

Automi a Pila e Grammatiche Libere dal Contesto. Automi a Pila e Grammatiche Libere dal Contesto

ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE)

Macchina di Turing Universale

Fondamenti d Informatica: linguaggi formali. Barbara Re, Phd

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

AUTOMI A PILA. M.P. Schutzenberger

Sommario. Problema computazionale Sviluppo software Algoritmi. Istruzioni Sequenziali, Condizionali, Cicliche; Javascript

Tipologie di macchine di Turing

L AUTOMA ESECUTORE L AUTOMA ESECUTORE

Dispensa 2. Data una grammatica context free esistono tre metodi diversi per costruirne la parsing table per un parser LR:

Algoritmo per A. !(x) Istanza di B

Costruzione di espressioni regolari 4

Introduzione agli Algoritmi 4. Problemi. Dal Problema alla Soluzione

Linguaggi di programmazione - Principi e paradigmi 2/ed Maurizio Gabbrielli, Simone Martini Copyright The McGraw-Hill Companies srl

Linguaggi di programmazione

Transcript:

Fondamenti di Informatica per la Sicurezza a.a. 2008/09 Automi Stefano Ferrari UNIVERSITÀ DEGLI STUDI DI MILANO DIPARTIMENTO DI TECNOLOGIE DELL INFORMAZIONE Stefano Ferrari Università degli Studi di Milano Fondamenti di Informatica per la Sicurezza Automi a.a. 2008/09- p. 1/46 Automa a stati finiti(1) Unautomaastatifinitièunmodellomatematico caratterizzato da: un input costituito da una sequenza di elementi discreti; eventualmente, un output(anch esso a valori discreti); un insieme finito di stati nei quali l automa può trovarsi durante l esecuzione. Stefano Ferrari Università degli Studi di Milano Fondamenti di Informatica per la Sicurezza Automi a.a. 2008/09- p. 2/46 Stefano Ferrari Fondamenti di Informatica per la Sicurezza a.a. 2008/09 1

Automa a stati finiti(2) Unautomaastatifinitisipuòimmaginarecomeun dispositivo dotato di una testina. L automa legge spostandosi sempre nella stessa direzione lungo un nastro di lunghezza illimitata contenente dei simboli. Asecondadelsimbololetto,l automasiportainun altro stato. Ripete queste operazioni fino a quando non legge un simbolo terminale. Stefano Ferrari Università degli Studi di Milano Fondamenti di Informatica per la Sicurezza Automi a.a. 2008/09- p. 3/46 Definizione formale Un automa a stati finiti deterministico(dfa) è una quintupla Q, Σ, δ, q 0, F dove: Qèl insiemedeglistati(finito); Σèl alfabetodiinput; δ : Q Σ Qèlafunzioneditransizione; q0 èlostatoiniziale; F Qèl insiemedeglistatifinali. Stefano Ferrari Università degli Studi di Milano Fondamenti di Informatica per la Sicurezza Automi a.a. 2008/09- p. 4/46 Stefano Ferrari Fondamenti di Informatica per la Sicurezza a.a. 2008/09 2

Funzione di transizione La funzione di transizione può essere rappresentata in forma tabellare. Esempio: δ a b c d e q 0 q 0 q 0 q 2 q 1 q 1 q 1 q 1 q 3 q 1 q 1 q 1 q 2 q 3 q 2 q 2 q 0 q 1 q 3 q 0 q 1 q 1 q 0 q 1 dove: Q = {q0, q 1, q 2, q 3 } Σ = {a, b, c, d, e} Stefano Ferrari Università degli Studi di Milano Fondamenti di Informatica per la Sicurezza Automi a.a. 2008/09- p. 5/46 Rappresentazione grafica Un DFA può essere rappresentato da un grafo: a, b d, e a, c, d, e q 0 c q 1 dove: a, d b, c, e b e Q = {q0, q 1, q 2, q 3 } Σ = {a, b, c, d, e} q 3 a d q 2 F = {q1 } b, c Stefano Ferrari Università degli Studi di Milano Fondamenti di Informatica per la Sicurezza Automi a.a. 2008/09- p. 6/46 Stefano Ferrari Fondamenti di Informatica per la Sicurezza a.a. 2008/09 3

Linguaggio accettato da un DFA(1) Il concetto di funzione di transizione può essere estesa in modo da essere applicata ripetutamente ad una successione di simboli in input. SidicecheunDFAaccettaunastringase,dopoaverla letta, esso si ritrova in uno stato finale. L insieme delle stringhe accettate da un DFA viene detto linguaggio accettato dal DFA stesso. Stefano Ferrari Università degli Studi di Milano Fondamenti di Informatica per la Sicurezza Automi a.a. 2008/09- p. 7/46 Linguaggio accettato da un DFA(2) Più formalmente: l estensionedi δallestringhe, ˆδ : Q Σ Q,si definisce in modo univoco come: { q se x = ǫ ˆδ(q, x) = δ(ˆδ(q, w), y) se x = wy, w Σ, y Σ una stringa x viene accettata dal DFA M = Q, Σ, δ, q 0, F se ˆδ(q 0, x) F; illinguaggio L(M) = {x Σ ˆδ(q 0, x) F}èil linguaggio accettato da M. Stefano Ferrari Università degli Studi di Milano Fondamenti di Informatica per la Sicurezza Automi a.a. 2008/09- p. 8/46 Stefano Ferrari Fondamenti di Informatica per la Sicurezza a.a. 2008/09 4

Automa non-deterministico Un automa a stati finiti non-deterministico(nfa) è una quintupla Q, Σ, δ, q 0, F dove: Q è un insieme finito di stati; Σ è un alfabeto(alfabeto di input); δ : Q Σ (Q)èlafunzioneditransizione; q0 èlostatoiniziale; F Qèl insiemedeglistatifinali. Nota:oraèammesso δ(q, a) = perqualche q Qe a Σ. Stefano Ferrari Università degli Studi di Milano Fondamenti di Informatica per la Sicurezza Automi a.a. 2008/09- p. 9/46 Linguaggio accettato da un NFA Dalla funzione δ si definisce in modo univoco ˆδ : Q Σ (Q): ˆδ(q, x) = {q} p ˆδ(q, w) se x = ǫ δ(p, y) se x = wy, w Σ, y Σ Una stringa x viene accettata dal NFA M = Q, Σ, δ, q 0, F se ˆδ(q 0, x) F. Illinguaggio L(M) = {x Σ ˆδ(q 0, x) F }èil linguaggio accettato da M. Stefano Ferrari Università degli Studi di Milano Fondamenti di Informatica per la Sicurezza Automi a.a. 2008/09- p. 10/46 Stefano Ferrari Fondamenti di Informatica per la Sicurezza a.a. 2008/09 5

Confronto DFA-NFA La potenzadicalcolo diunnfaèlastessadiundfa. Ciò significa che per ogni linguaggio accettato da un NFA, esiste un DFA che accetta lo stesso linguaggio. LaclassedilinguaggiaccettatidaiDFAèlaclassedei linguaggi regolari. Si può generare in modo automatico il DFA equivalente diundatonfa. AvolteèpiùcomodoprogettareunNFAepoi convertirlo. Stefano Ferrari Università degli Studi di Milano Fondamenti di Informatica per la Sicurezza Automi a.a. 2008/09- p. 11/46 Limiti dei DFA UnDFAèundispositivoamemoriafinita,quindiè adatto a risolvere solo quei problemi che consentono di limitare a priori la lunghezza delle sequenze d ingresso di cui tenere memoria. Da cosa deriva la mancanza di espressività? Ilnumerodistatièfissatoapriorinonconsentedi trattare quei problemi che richiedono un conteggio senza limite fissato. Esempio:unDFAa4statipuòriconoscere aaacbbbmanon aaaacbbbb. Rendere il numero degli stati infinito non è praticabile. Stefano Ferrari Università degli Studi di Milano Fondamenti di Informatica per la Sicurezza Automi a.a. 2008/09- p. 12/46 Stefano Ferrari Fondamenti di Informatica per la Sicurezza a.a. 2008/09 6

Esercizio 1(1) CostruireunDFAsu Σ = {0, 1}cheaccettil insiemedi tutte le stringhe aventi tre 0 consecutivi. Osservazioni: l alfabetoèdato(σ = {0, 1}); si possono individuare le seguenti possibili situazioni: (a) sonogiàstatilettitre(opiù) 0 consecutivi; (b) gliultimiduesimbolilettisono 0 ; (c) l ultimo simbolo letto è 0 ; (d) l ultimo simbolo letto è 1. Stefano Ferrari Università degli Studi di Milano Fondamenti di Informatica per la Sicurezza Automi a.a. 2008/09- p. 13/46 Esercizio 1(2) Indicandocon q i lostatoincuil automasitroverà dopo aver letto i simboli 0 consecutivi: situazione(a) q 3 ; situazione(b) q 2 ; situazione(c) q 1 ; situazione(d) q 0 ; Note: dopo aver letto tre 0, l automa accetterà la stringa qualunque siano i simboli ancora da leggere; q 3 assumequindiilruolodistatofinale; q 0 assumeilruolodistatoiniziale; unostatodalqualenonsiescevienedetto pozzo. Stefano Ferrari Università degli Studi di Milano Fondamenti di Informatica per la Sicurezza Automi a.a. 2008/09- p. 14/46 Stefano Ferrari Fondamenti di Informatica per la Sicurezza a.a. 2008/09 7

Esercizio 1(3) La funzione di transizione può essere: δ 0 1 q 0 q 1 q 0 q 1 q 2 q 0 q 2 q 3 q 0 q 3 q 3 q 3 e il grafico: q 0 1 0 1 q 1 1 0 q 2 0 q 3 0, 1 Stefano Ferrari Università degli Studi di Milano Fondamenti di Informatica per la Sicurezza Automi a.a. 2008/09- p. 15/46 Esercizio 2(1) CostruireunDFAsu Σ = {0, 1}cheaccettil insiemedi tutte le stringhe che se interpretate in notazione binaria risultino divisibili per 2. Osservazioni: l alfabetoèdato(σ = {0, 1}); i numeri pari in notazione binaria terminano per 0; unnumeroinnotazionebinariacheterminaper 0è pari; il problema diventa costruire l automa che accetta solo le stringhe binarie che terminano per 0. Stefano Ferrari Università degli Studi di Milano Fondamenti di Informatica per la Sicurezza Automi a.a. 2008/09- p. 16/46 Stefano Ferrari Fondamenti di Informatica per la Sicurezza a.a. 2008/09 8

Esercizio 2(2) Se,banalmente,indichiamocon q i lostatoincuiviene a trovarsi l automa dopo aver letto il simbolo i: ponendo q 0 comeunicostatofinalefacciamosìche l automa accetti la stringa solo se l ultimo simbolo chehalettoèstato 0; ponendo q 1 comestatoinizialeevitiamochevenga accettata la stringa vuota. Stefano Ferrari Università degli Studi di Milano Fondamenti di Informatica per la Sicurezza Automi a.a. 2008/09- p. 17/46 Esercizio 2(3) Quindi, l automa può essere formalizzato come: Q = {q0, q 1 } Σ = {0, 1} q 1 èlostatoiniziale F = {q0 } δ 0 1 q 0 q 0 q 1 q 1 q 0 q 1 q 1 1 0 1 q 0 0 Stefano Ferrari Università degli Studi di Milano Fondamenti di Informatica per la Sicurezza Automi a.a. 2008/09- p. 18/46 Stefano Ferrari Fondamenti di Informatica per la Sicurezza a.a. 2008/09 9

Esercizio 3(1) CostruireunDFAsu Σ = {0, 1}cheaccettil insiemedi tutte le stringhe che hanno come penultimo simbolo 0. Osservazioni: l alfabetoèdato(σ = {0, 1}); abbiamo bisogno di una finestra di due simboli(gli ultimi due simboli letti); consideriamo quindi quattro situazioni: 00, 01, 10 e 11. Stefano Ferrari Università degli Studi di Milano Fondamenti di Informatica per la Sicurezza Automi a.a. 2008/09- p. 19/46 Esercizio 3(2) Adesempio,sel automasitrovanellostato 01elegge 1, si deve portare nello stato corrispondente a 11. Con questa regola: le situazioni accettate saranno 00 e 01; scegliendo 11 come situazione iniziale, evitiamo di accettare stringhe con meno di due caratteri; codifichiamoconlostato q i lasituazioneincuigli ultimi due simboli letti sono interpretati come la rappresentazione binaria di i. Stefano Ferrari Università degli Studi di Milano Fondamenti di Informatica per la Sicurezza Automi a.a. 2008/09- p. 20/46 Stefano Ferrari Fondamenti di Informatica per la Sicurezza a.a. 2008/09 10

Esercizio 3(3) Quindi, l automa può essere formalizzato come: Q = {q0, q 1, q 2, q 3 } Σ = {0, 1} q3 èlostatoiniziale F = {q0, q 1 } δ 0 1 q 0 q 0 q 1 q 1 q 2 q 3 q 2 q 0 q 1 q 3 q 2 q 3 Stefano Ferrari Università degli Studi di Milano Fondamenti di Informatica per la Sicurezza Automi a.a. 2008/09- p. 21/46 Automaapila(1) Unautomaapilaèunamacchinaidealecheestendele possibilità degli automi a stati finiti. Sitrattadiunautomaastatifinitidotatodiuna struttura dati aggiuntiva per la memorizzazione delle informazioni, la pila: struttura dati di tipo Last In First Out(LIFO). Stefano Ferrari Università degli Studi di Milano Fondamenti di Informatica per la Sicurezza Automi a.a. 2008/09- p. 22/46 Stefano Ferrari Fondamenti di Informatica per la Sicurezza a.a. 2008/09 11

Automaapila(2) Unautomaapilaèquindicompostoda: controllo(stati + funzione di transizione); input(nastro); output(pila): push(w):ponelastringa wsullapila; pop(w):prelevalastringaintestaallapila; empty:verificaselapilaèvuota(restituisceunvalore booleano). Stefano Ferrari Università degli Studi di Milano Fondamenti di Informatica per la Sicurezza Automi a.a. 2008/09- p. 23/46 Funzionamento dell automa a pila L automa legge dal nastro e dalla pila contemporaneamente. Ogni passo di esecuzione comporta: la lettura di un simbolo da nastro e l avanzamento della testina di una posizione; la lettura di un simbolo dalla testa della pila; il cambio dello stato di controllo; la scrittura in testa alla pila. Nota: alcune operazioni possono essere saltate (lettura/scrittura della stringa vuota). Stefano Ferrari Università degli Studi di Milano Fondamenti di Informatica per la Sicurezza Automi a.a. 2008/09- p. 24/46 Stefano Ferrari Fondamenti di Informatica per la Sicurezza a.a. 2008/09 12

Stringhe accettate dall automa a pila L automa ha due possibili condizioni per l accettazione della stringa: sesitrovainunostatofinale; selapilaèvuota. Le due condizioni sono equivalenti: datounautomacheterminaperpilavuota,sene può costruire uno che termina per stato finale. Stefano Ferrari Università degli Studi di Milano Fondamenti di Informatica per la Sicurezza Automi a.a. 2008/09- p. 25/46 Linguaggi accettati dall automa a pila Il non-determinismo, aggiunge potenza espressiva all automa a pila. L automa a pila deterministico riconosce un sottoinsieme dei linguaggi context-free(tipo 2). L automa a pila non-deterministico riconosce i linguaggi context-free. Per esempio: un automa a pila riesce a riconoscere le parentesi benaccoppiate(a n b n ); solo un automa non-deterministico riesce a riconoscere le stringhe palindrome. Stefano Ferrari Università degli Studi di Milano Fondamenti di Informatica per la Sicurezza Automi a.a. 2008/09- p. 26/46 Stefano Ferrari Fondamenti di Informatica per la Sicurezza a.a. 2008/09 13

Limiti degli automa a pila Da cosa deriva la mancanza di espressività? lastrutturadatidisupporto,lapila,haunaccesso limitato, che si limita alla testa della pila; come accedere al primo degli elementi inseriti? Perpoterriconoscerelinguaggiditipo1o0bisogna disporre di una struttura dati più flessibile. Stefano Ferrari Università degli Studi di Milano Fondamenti di Informatica per la Sicurezza Automi a.a. 2008/09- p. 27/46 Macchina di Turing Macchina ideale pensata da Alan Turing negli anni 30 per formalizzare la nozione di agente di calcolo (computer). Una macchina di Turing(MdT) è composta da: nastro: infinito, abilitato alla lettura ed alla scrittura; controllo: automa a stati finiti deterministico. Stefano Ferrari Università degli Studi di Milano Fondamenti di Informatica per la Sicurezza Automi a.a. 2008/09- p. 28/46 Stefano Ferrari Fondamenti di Informatica per la Sicurezza a.a. 2008/09 14

Funzionamento della MdT Ad ogni passo di computazione, una MdT: legge il simbolo sul nastro in corrispondenza della testina; in base alla coppia stato-simbolo: eventualmente modifica il simbolo; spostailnastrodiunacasella,adestraoasinistra; eventualmente cambia lo stato. La computazione della MdT termina quando non è definita alcuna transizione per la coppia stato-simbolo. Stefano Ferrari Università degli Studi di Milano Fondamenti di Informatica per la Sicurezza Automi a.a. 2008/09- p. 29/46 Varianti della MdT Esistono diverse varianti della MdT deterministica. Ad esempio: multinastro; multitestina; nastro semi-infinito; non-deterministica. Sipuòdimostrarecheperognunadiquestevariantisi può costruire una MdT deterministica equivalente. Stefano Ferrari Università degli Studi di Milano Fondamenti di Informatica per la Sicurezza Automi a.a. 2008/09- p. 30/46 Stefano Ferrari Fondamenti di Informatica per la Sicurezza a.a. 2008/09 15

MdT universale È possibile costruire una MdT che simuli una qualsiasi MdT! Questa MdT viene detta universale. All inizio, sul nastro della MdT universale, opportunamente codificati, si trovano: la descrizione della MdT da simulare(cioè della parte di controllo); il suo input. Stefano Ferrari Università degli Studi di Milano Fondamenti di Informatica per la Sicurezza Automi a.a. 2008/09- p. 31/46 Linguaggi accettati UnaMdTriconosceilinguaggiditipo0. Una MdT non deterministica con lunghezza del nastro limitata in modo proporzionale alla lunghezza dell input riconosce i linguaggi di tipo 1. Stefano Ferrari Università degli Studi di Milano Fondamenti di Informatica per la Sicurezza Automi a.a. 2008/09- p. 32/46 Stefano Ferrari Fondamenti di Informatica per la Sicurezza a.a. 2008/09 16

Caratteristiche della MdT(1) LaMdTèstataideatapermodellareilprocessodi calcolo. Infatti, ha le seguenti caratteristiche: 1.ilcontrolloècostituitodaunnumerofinitodi istruzioni; un algoritmo è di lunghezza finita; 2.laMdTèl agentedicalcolocheesegue l elaborazione; esiste un esecutore che può effettuare le istruzioni dell algoritmo; 3. il controllo è affidato ad un automa deterministico; il calcolo è deterministico; Stefano Ferrari Università degli Studi di Milano Fondamenti di Informatica per la Sicurezza Automi a.a. 2008/09- p. 33/46 Caratteristiche della MdT(2) 4.laMdToperaperpassidiscreti; l esecuzione avviene per passi discreti; 5. il nastro è un dispositivo di memorizzazione per l MdT; l esecutore dispone di una memoria ausiliaria per immagazzinare i risultati intermedi dell elaborazione; 6.idatisonomemorizzatisulnastro,ilqualeè illimitato; nonc èlimiteallalunghezzadeidati; 7. la capacità del nastro è illimitata; non c è limite alla quantità di memoria ausiliaria; Stefano Ferrari Università degli Studi di Milano Fondamenti di Informatica per la Sicurezza Automi a.a. 2008/09- p. 34/46 Stefano Ferrari Fondamenti di Informatica per la Sicurezza a.a. 2008/09 17

Caratteristiche della MdT(3) 8.leistruzionichelaMdTpuòeseguireadognipasso sono semplici e ben definite; le istruzioni hanno una complessità finita; 9. non esiste nessuna limitazione al numero di passi di calcolo; l esecuzione termina dopo un numero di passi finito, ma illimitato; 10. è possibile creare una MdT che continua ad eseguire delle istruzioni senza terminare mai; l esecuzione può non terminare. Stefano Ferrari Università degli Studi di Milano Fondamenti di Informatica per la Sicurezza Automi a.a. 2008/09- p. 35/46 Calcolo Una MdT calcola funzioni(su N): funzioni intuitivamente calcolabili; l input è sul nastro all inizio del calcolo; l output è sul nastro alla fine del calcolo. Anche gli altri automi meno potenti possono essere modificati per effettuare dei calcoli(cioè generare un output). Stefano Ferrari Università degli Studi di Milano Fondamenti di Informatica per la Sicurezza Automi a.a. 2008/09- p. 36/46 Stefano Ferrari Fondamenti di Informatica per la Sicurezza a.a. 2008/09 18

Terminazione Lacomputazionediunautomaastatifinitioapila termina sempre. LacomputazionediunaMdTperuncertodatodiinput può non terminare. È l equivalente algoritmico di una funzione non definita per un dato argomento(funzione parziale). Stefano Ferrari Università degli Studi di Milano Fondamenti di Informatica per la Sicurezza Automi a.a. 2008/09- p. 37/46 Linguaggi, grammatiche, automi(1) Le grammatiche danno una descrizione generativa dei linguaggi. Una grammatica è simile ad una teoria: assiomi(simboli iniziali); regole di inferenza(regole di produzione); predicati validi(stringhe del linguaggio); dimostrazioni(produzioni). Stefano Ferrari Università degli Studi di Milano Fondamenti di Informatica per la Sicurezza Automi a.a. 2008/09- p. 38/46 Stefano Ferrari Fondamenti di Informatica per la Sicurezza a.a. 2008/09 19

Linguaggi, grammatiche, automi(2) Un automa realizza una funzione di riconoscimento della stringa come appartenente al linguaggio. La MdT ha la potenza computazionale necessaria e sufficiente per l accettazione dei linguaggi di tipo 0: se Gèunagrammaticaditipo0eL=L(G)èil linguaggio da essa generato, allora esiste una MdT, M L,cheaccetta L; se LèunlinguaggioaccettatodaunaMdT, M L, alloraesisteunagrammaticaditipo0, G,taleche L = L(G). Stefano Ferrari Università degli Studi di Milano Fondamenti di Informatica per la Sicurezza Automi a.a. 2008/09- p. 39/46 Linguaggi e computabilità Restringere lo studio della computabilità ai linguaggi non è restrittivo. Inoltre,lostudiodeivaritipidilinguaggièutileperché fornisce: una scala di complessità di calcolo; uno strumento di descrizione di algoritmi: riconoscibilità(sintassi); interpretazione(semantica). Stefano Ferrari Università degli Studi di Milano Fondamenti di Informatica per la Sicurezza Automi a.a. 2008/09- p. 40/46 Stefano Ferrari Fondamenti di Informatica per la Sicurezza a.a. 2008/09 20

Accettabilità e decidibilità La non terminazione rende necessaria una ulteriore distinzione: un linguaggio viene detto accettabile(o riconoscibile) daunautomaseessoèingradodiaccettaretuttele sue parole; nullavienerichiestoselaparolaininputnonappartieneal linguaggio dato; un linguaggio viene detto decidibile da un automa se essoèingradodiaccettaretuttelesueparoleedi rifiutare tutte le altre parole. In altri termini, se un linguaggio è decidibile, lo deve essere anche il suo complemento. Stefano Ferrari Università degli Studi di Milano Fondamenti di Informatica per la Sicurezza Automi a.a. 2008/09- p. 41/46 Decidibilità dei linguaggi Ilinguaggiditipo1,2e3sonodecidibili. I linguaggi di tipo 0 sono riconoscibili. Tuttavia esistono linguaggi decidibili che non sono di tipo 1. Ogni definizione finita della decidibilità non può comprendere tutti gli insiemi decidibili. Stefano Ferrari Università degli Studi di Milano Fondamenti di Informatica per la Sicurezza Automi a.a. 2008/09- p. 42/46 Stefano Ferrari Fondamenti di Informatica per la Sicurezza a.a. 2008/09 21

Problemi indecidibili(1) È noto un certo insieme di problemi non decidibili: haltingproblem:nonesistealcunamdt, M H,che, dataladescrizionediunamdt, M,eunastringadi input, w, decida se la computazione M(w) termina, oppure no; nonesistenessunamdt, M E,che,dataladescrizione diunamdt, M,possadecidereseillinguaggio riconosciutoda M, L(M),siavuoto,oppureno; nonesistealcunamdt, M R,che,dataladescrizione diunamdt, M,decidaseillinguaggiodaessa riconosciuto, L(M),siadiuntipodato. Stefano Ferrari Università degli Studi di Milano Fondamenti di Informatica per la Sicurezza Automi a.a. 2008/09- p. 43/46 Problemi indecidibili(2) Anche nella pratica si incontrano problemi indecidibili: un programma chiamerà una sua procedura nel corso dell esecuzione per un dato input? una variabile assumerà un dato valore durante l esecuzione? uscirà dal ciclo? un dato programma, in presenza di un dato input, fornirà un particolare output? due programmi dati calcolano la stessa funzione? Stefano Ferrari Università degli Studi di Milano Fondamenti di Informatica per la Sicurezza Automi a.a. 2008/09- p. 44/46 Stefano Ferrari Fondamenti di Informatica per la Sicurezza a.a. 2008/09 22

Problemi indecidibili(3) un programma calcola una funzione costante? il suo output è indipendente dall input? un programma calcola una funzione totale? termina per ogni input? un programma calcola una funzione positiva? unadataformuladelcalcolodeipredicatièun teorema? una data formula dell aritmetica, è un teorema? Stefano Ferrari Università degli Studi di Milano Fondamenti di Informatica per la Sicurezza Automi a.a. 2008/09- p. 45/46 Limite del calcolo La MdT rappresenta il limite per i dispositivi finiti. Nonèl unicoparadigmadelgenere,matuttiglialtrisi sono dimostrati equivalenti. La dimostrazione dell indecidibilità di alcuni problemi equivale infatti al teorema di Gödel. Tuttavia, tra la maggior parte dei problemi pratici sono decidibili(e, quindi, calcolabili). Stefano Ferrari Università degli Studi di Milano Fondamenti di Informatica per la Sicurezza Automi a.a. 2008/09- p. 46/46 Stefano Ferrari Fondamenti di Informatica per la Sicurezza a.a. 2008/09 23