AUTOMI A PILA. M.P. Schutzenberger

Documenti analoghi
Aniello Murano Automi e Pushdown

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

Automi a pila. Automi a pila

Linguaggi Regolari e Linguaggi Liberi

Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing

Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing

Linguaggi Regolari e Linguaggi Liberi

Definizione di Grammatica

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

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

Esercizi di Fondamenti di Informatica per la sicurezza. Stefano Ferrari

Pumping lemma per i linguaggi Context-free

Algoritmi e Principi dell'informatica Seconda Prova in Itinere - 14 Febbraio 2014

Le Macchine di Turing

Linguaggi regolari e automi a stati finiti

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

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

Parole note, nuovi significati: linguaggio, determinismo e infinito

Algoritmi e Principi dell Informatica

Corso di Informatica di Base

Macchine di Turing. a n B B. Controllo Finito

Il concetto di calcolatore e di algoritmo

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

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

Equivalenza di Espressioni Algebriche

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe.

Descrizione delle operazioni di calcolo. Espressioni costanti semplici

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

acuradi Luca Cabibbo e Walter Didimo Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 1

RICHIAMI E COMPLEMENTI SU LINGUAGGI FORMALI E AUTOMI

Espressioni regolari

Calcolatori Elettronici Lezione A4 Programmazione a Moduli

La macchina universale

Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili

UNA GERARCHIA DI MACCHINE

Dispensa 1. Da un punto di vista logico l architettura di un compilatore si può suddividere in due parti: Analisi e Sintesi.

La tesi di Church-Turing

Verificare se una grammatica e LL(1) e costruirne la tabella di parsing. Verificare se una grammatica e LR(0) e costruirne la tabele ACTION e GOTO

acuradi Luca Cabibbo e Walter Didimo Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 1

Sistemi Web per il turismo - lezione 3 -

Variabili. Unità 2. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER

Algoritmi e Linguaggi

TEORIA DELLA COMPUTAZIONE 2

MODULO 07 LA MACCHINA DI TURING

Marta Capiluppi Dipartimento di Informatica Università di Verona

Algoritmi e soluzione di problemi

Informatica, Algoritmi, Linguaggi

01 - Elementi di Teoria degli Insiemi

IDE DevC

Modelli e Metodi per la Simulazione (MMS)

Reti Sequenziali. Reti Sequenziali. Corso di Architetture degli Elaboratori

Le macchine di Turing

Grammatiche e Linguaggi Context-Free

PROBLEMI ALGORITMI E PROGRAMMAZIONE

Derivazione Numerica

Esercizi di Informatica Teorica

Dispensa di Informatica II.1

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

STRUMENTI FORMALI PER L ANALISI LESSICALE SINTATTICA

Informatica Generale Homework di Recupero 2016

Complementi 3 - Richiami di algebra tensoriale

Costruzione di espressioni regolari 4

IL POTENZIALE ELETTRICO

Introduzione al DEV C++

04 - Logica delle dimostrazioni

Note del corso di Calcolabilità e Linguaggi Formali - Lezione 5

Linguaggi e Traduttori: Analisi sintattica

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

Informatica Teorica. Macchine a registri

Esercizio su MT. Svolgimento

Corso di Linguaggi di Programmazione + Laboratorio

Il calcolatore. Architettura di un calcolatore (Hardware)

MACCHINE DI TURING defnizione formale del concetto astratto di algoritmo accettare riconoscimento parziale di tutti i linguaggi di tipo 0

Corso di Laurea Magistrale in Ingegneria Informatica A.A Linguaggi Formali e Compilatori. I linguaggi formali. Giacomo PISCITELLI

PASSI DI SVILUPPO DI UN PROGRAMMA: ESEMPIO

Algoritmi e Principi dell Informatica

ESERCITAZIONE I. Linguaggi Regolari

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

ANALISI DELLA VARIANZA A DUE VIE CON INTERAZIONE Prof. Antonio Lanzotti

Il codice di Sarngadeva

Università di Siena Sede di Grosseto Secondo Semestre Macroeconomia. Paolo Pin ( ) Lezione Maggio 2011

FACOLTA DI INGEGNERIA INGEGNERIA INFORMATICA A.A. 2008/2009. Corso VISIONE E PERCEZIONE. Docente. Prof. FIORA PIRRI. Tutor MATIA PIZZOLI

Sviluppi e derivate delle funzioni elementari

Ricerca Automatica. Esercitazione 3. Intelligenza Artificiale Daniele Nardi, 2004 Esercitazione 3 0

Progetto: Dama. 1 - Descrizione. 2 - Regole del gioco. Appello di febbraio 2003


L ELABORATORE ELETTRONICO

Algoritmi e Principi dell Informatica

PARTE III MACCHINE A REGISTRI

Primi passi col linguaggio C

Argomenti Capitolo 1 Richiami

Proprietà dei linguaggi regolari

Sintesi di Reti Sequenziali Sincrone

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software

LA METAFORA DELL UFFICIO

Automi. Sono così esempi di automi una lavatrice, un distributore automatico di bibite, un interruttore, una calcolatrice tascabile,...

Università degli studi Roma Tre. linguaggio Java. A cura di A. Orlandini. Linguaggi: Sintassi e Semantica - Il. Il linguaggio Java

Anno 1. Teoria degli insiemi: definizioni principali

Cosa si intende con stato

Automi Automi finiti: macchine a stati su sistemi di transizioni finiti Modellare con TS e specificare con automi: si usa lo stesso tipo di

Transcript:

UTOMI PIL Introdotti da. G. Oettinger in utomatic Syntactic nalysis and the pushdown store Proc. Symp. pplied Math., 1961 e da M.P. Schutzenberger in Context free languages and pushdown automata Information and Control, 1963 M.P. Schutzenberger Schutzenberger (1920-1996) è stato un ricercatore e un punto di riferimento per varie generazioni di ricercatori nel campo dei linguaggi formali e l informatica teorica. Ha insegnato alla Facoltà di Scienze dell Università di Parigi (VI e VII).

UTOMI PIL: modello mentale a b a b a b a b Controllo B Controllo p C B B In generale ora una mossa dipende dallo stato, dal simbolo in lettura sul nastro di input e dal simbolo in lettura in cima alla pila e la sua esecuzione comporta cambio stato, spostamento testina di lettura e sostituzione simbolo in cima alla pila.

UTOMI PIL: Push a b a b a b a b Controllo B Controllo p C B B B Se si ignora il simbolo in cima alla pila si esegue una Push: si inserisce in cima alla pila. Questa può anche essere una ε-mossa (sull input)

UTOMI PIL: Pop a b a b a b a b Controllo B Controllo p B B Se si cancella il simbolo in cima alla pila si ottiene la Pop, che può anche essere eseguita con una ε-mossa (sull input)

Esempio 1 Un PD che accetta L = {a n b n n > 0} = a,ε;a b,a;ε 0 ε,ε;$ b,a;ε r ε,$;ε s Come nel caso dei DF una parola è accettata solo se si entra in uno stato di accettazione avendo terminato la lettura dell input. Per accettare la parola vuota, si può rendere finale lo stato iniziale.

Esempio 2 Un PD che accetta L = {x&rev(x) x è in {0,1}*} 1,ε;1 0,ε;0 1,1;ε 0,0;ε 0 ε,ε;$ &,ε;ε r ε,$;ε s

Esempio 3 Un PD che accetta L = {xrev(x) x è in {0,1}*} 1,ε;1 0,ε;0 1,1;ε 0,0;ε 0 ε,ε;$ 1,1;ε 0,0;ε r ε,$;ε s

MODELLO FORMLE Un automa pushdown non deterministico, in breve PD da Push Down utomaton, è una 6-pla M = (Q,Σ,Γ,Δ, 0,F) dove 1. Q,Σ,Γ sono insiemi finiti rispettivamente di stati, simboli di input e simboli di pila 2. Δ : Q (Σ {ε}) Γ {ε} P(Q (Γ {ε})) è la funzione di transizione, 3. 0 Q è lo stato iniziale 4. F Q è l'insieme degli stati finali o di accettazione. NOT: P(X) è l insieme dei sottoinsiemi di X.

Passi di calcolo Se (,Β) Δ(p,a,), con a Σ {ε},, Β Γ {ε} allora l'automa nello stato p può eseguire uno dei seguenti passi di calcolo, 1. se a Σ,, Β Γ con a in lettura sul nastro di input e in cima alla pila passa nello stato, rimpiazza con Β in cima alla pila e muove la testina di lettura del nastro di input di una cella verso destra. 2. (PUSH) se a Σ, = ε, Β Γ con a in lettura sul nastro di input e indipendentemente dal simbolo in cima alla pila, passa nello stato, impila Β in cima alla pila e muove la testina di lettura del nastro di input di una cella verso destra. 3. (POP) se a Σ, Γ, Β = ε con a in lettura sul nastro di input e in cima alla pila, passa nello stato, elimina dalla cima della pila e muove la testina di lettura del nastro di input di una cella verso destra. Se a = ε, i tre tipi di mosse avvengono senza che la testina di lettura si sposti.

Configurazione Come nel caso dei DF, il concetto di configurazione è utile per descrivere la situazione in cui si trova la macchina complessivamente: lo stato, l'input ancora da esaminare e il contenuto della pila. Quindi una configurazione è un elemento di Q Σ* Γ*. La configurazione iniziale è ( 0,x,ε), se 0 è lo stato iniziale e x è la parola input, infatti inizialmente la pila è vuota.

Passi di calcolo La relazione di transizione sulle configurazioni descrive una mossa dell automa M, è denotata M ed è così definita: per p, Q, a Σ {ε}, x Σ*,,Β Γ {ε} e γ Γ* (p,ax,γ) M (,x,βγ) se (,Β) in Δ(p,a,).

ccettazione Dato un PD M = (Q,Σ,Γ,Δ, 0,F) il linguaggio accettato da M, L(M), è L(M) = {x x Σ* e ( 0,x,ε) M *(,ε,γ), per F e γ Γ*}, cioè l insieme delle parole in input per l automa che determinano una seuenza di configurazioni in cui la prima è uella iniziale e l ultima, completata la lettura dell input, è in uno stato finale. In un modello formale alternativo ma che si dimostra euivalente si considerano accettate le parole allo svuotamento della pila, indipendetemente dallo stato di arrivo.

Esempio 1 Un PD che accetta L = {a n b n n > 0} = a,ε;a b,a;ε 0 ε,ε;$ b,a;ε r ε,$;ε s Come nel caso dei DF una parola è accettata solo se si entra in uno stato di accettazione avendo terminato la lettura dell input. Per accettare la parola vuota, si può rendere finale lo stato iniziale.

Esercizi Esiste un PD per L={a i b j c k i=j o j=k, con i,j,k 0}? a,ε;a b,a;ε c,ε;ε 0 ε,ε;$ ε,ε;$ 1 3 ε,ε;ε a,ε;ε ε,ε;ε 2 b,ε;b 4 ε,$;ε ε,ε;ε s c,b;ε 5 La parola vuota è accettata in 0. La prima scelta in 0 controlla che le a siano nello stesso numero delle b (anche 0). La seconda verifica che le b siano nello stesso numero delle c, ε,$;ε s

Esempi di linguaggi accettati da un { x {0,1}* n 0 (x) = n 1 (x)} PD 1,$;$ 1,$;1$ 1 0,$;0$ ε,ε;1 1,1;11 0,0;00 1,0;ε 0,1;ε 0 ε,ε;$ ε,$;ε s

utomi Push Down Deterministici Un PD M = (Q,Σ,Γ,Δ, 0,F) è deterministico se per ogni Q, a Σ {ε} e B Γ {ε} (Δ(,a,B)) 1 per ogni Q e, a Σ Δ(,ε,B) Δ(,a,B) = per B Γ {ε} Δ(,a,ε) Δ(,a,B) = per B Γ Così se c è una ε-mossa eseguibile in un certo stato e con un certo simbolo in cima alla pila allora uella è l'unica mossa eseguibile in uello stato e con uel simbolo in cima alla pila. Così se c è una mossa che non dipende dal simbolo in lettura in cima alla pila, uella deve essere l unica mossa possibile.

Esempi IL PD mostrato tale che L() = {a n b n n 0} è deterministico a,ε;a b,a;ε 0 ε,ε;$ b,a;ε r ε,$;ε s

Esempi il PD mostrato tale che L() = Pal = { xrev(x) {0,1}* x = rev(x)} è non deterministico. 1,ε;1 0,ε;0 1,1;ε 0,0;ε 0 ε,ε;$ ε,ε;ε ε,ε;ε r ε,$;ε s Si può dimostrare che non esiste un DPD per Pal.

Esempi il PD tale che L() = { x&rev(x) {0,1}* x = rev(x)} è deterministico. 1,ε;1 0,ε;0 1,1;ε 0,0;ε 0 ε,ε;$ &,ε;ε r ε,$;ε s

Determinismo e non determinismo differenza del caso dei DF, esistono linguaggi accettati da un PD che non possono essere accettati da un DPD. Quindi L(PD), la classe dei linguaggi accettati dai PD, contiene strettamente L(DPD), la classe dei linguaggi accettati dai PD deterministici, in breve L(DPD) L(PD).

Esercizi Esiste un PD per L={a n b m 0<n m 2n}? La soluzione prevede che il simbolo Z di fine pila sia presente nella pila all inizio del calcolo.