Proprietà dei linguaggi regolari

Documenti analoghi
10.2 EQUIVALENZA TRA ESPRESSIONI REGOLARI, GRAMMATICHE REGOLARI E AUTOMI

Proprietà dei linguaggi non contestuali

Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemm

Pumping lemma per i linguaggi Context-free

LINGUAGGI CONTEXT FREE. Lezione Lezione

Parte n.4 Linguaggi: Gerarchia ed Operazioni

Quiz sui linguaggi CF

Cenni di programmazione ricorsiva. Appunti per gli studenti di Programmazione I e Laboratorio (corsi A-B)

Aniello Murano Problemi non decidibili e riducibilità

Linguaggi di Programmazione Corso C. Parte n.3 Linguaggi Liberi da Contesto e Linguaggi Contestuali. Nicola Fanizzi

(2) se A A, allora A c A; (3) se {A n } A, allora +

a cura di Luca Cabibbo e Walter Didimo

Costruzione di espressioni regolari 4

Proprieta dei linguaggi liberi da contesto. Proprieta dei linguaggi liberi da contesto

Un prefisso, un suffisso o una sottostringa di una stringa, quando non sono la stringa stessa, sono detti propri.

Fondamenti dell Informatica: Linguaggi Formali e Calcolabilità

Espressioni Regolari

Linguaggi e Grammatiche Liberi da Contesto

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

ALGEBRE DI BOOLE. (d) x, y X x y oppure y x.

Esercizi di Fondamenti di Informatica per la sicurezza. Stefano Ferrari

Linguaggi Regolari e Linguaggi Liberi

Informatica Teorica. linguaggi non contestuali

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

Espressioni regolari

Prima lezione. Gilberto Bini. 16 Dicembre 2006

Corso di Laurea in Matematica Geometria 2. Foglio di esercizi n. 1 a.a Soluzioni

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

IL TEOREMA FONDAMENTALE DELL ARITMETICA: DIMOSTRAZIONE VELOCE.

Linguaggi Regolari e Linguaggi Liberi

Nozioni Preliminari e Terminologia. Alfabeti Stringhe Linguaggi

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

Proprieta dei Linguaggi regolari

Automi e Linguaggi Formali Automi a stack (Pushdown automata)

Massimo limite e minimo limite di una funzione

I metodi formali dell Analisi Lessicale: Le Espressioni Regolar

carattere a b c d e f cod. var

Dispense del corso di Linguaggi di programmazione e laboratorio Linguaggi formali(versione non definitiva con diversi refusi) Francesco Sisini

Fondamenti d Informatica: linguaggi formali. Barbara Re, Phd

Esempio stringhe palindrome 1

Linguaggi Liberi dal Contesto. Linguaggi Liberi dal Contesto

DAI NUMERI NATURALI AI NUMERI RAZIONALI

Sia k un campo e sia un elemento non appartenente a k chamato, al solito, infinito. Consideriamo k := k { }. Poniamo per definizione:

Forma Normale di Chomsky

Equivalenza e minimizzazione di automi. Equivalenza e minimizzazione di automi

Espressioni regolari. Espressioni regolari

Corso di Linguaggi di Programmazione + Laboratorio Docente: Marco de Gemmis

COSTRUZIONE ASSIOMATICA DEI NUMERI REALI

Intorno al Lemma d Iterazione per Linguaggi Liberi dal Contesto

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

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

11. Misure con segno.

7. Automi a Pila e Grammatiche Libere

9. LINGUAGGI FORMALI E GRAMMATICHE DI CHOMSKY

Spazi Vettoriali ed Applicazioni Lineari

Algebra Lineare e Geometria. Il teorema fondamentale dell algebra. 1 Non c è un ordine totale sull insieme dei complessi

1 Campi di spezzamento

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

Teorema 1.1. (Teorema di Compattezza) Sia Γ un insieme di formule di un linguaggio proposizionale.

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

SCUOLA GALILEIANA DI STUDI SUPERIORI CLASSE DI SCIENZE NATURALI ESAME DI AMMISSIONE, PROVA DI MATEMATICA 13 SETTEMBRE 2011

INSIEMI. Se X è un insieme, indichiamo con P(X) l insieme dei sottoinsiemi di X (sono elementi di P(X) anche e X).

Appunti sui Codici di Reed Muller. Giovanni Barbarino

Appunti del corso Fondamenti di Analisi e Didattica

1 Se X e Y sono equipotenti, Sym(X) e Sym(Y ) sono isomorfi

1 Giochi di Ehrenfeucht-Fraissé e Logica del Prim ordine

Esercizi di Matematica per la prova di ammissione alla Scuola Galileiana /16

Corso di ALGEBRA (M-Z) INSIEMI PARZIALMENTE ORDINATI E RETICOLI

Geometria e Topologia I (U1-4) 2006-mag-10 61

Lezione 7. Relazione di coniugio. Equazione delle classi. { x} C( x) { } { }

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

APPUNTI DI TEORIA DEGLI INSIEMI. L assioma della scelta e il lemma di Zorn Sia {A i } i I

ESERCIZI DI ALGEBRA LINEARE E COMPLEMENTI DI GEOMETRIA

Appunti del Corso Analisi 1

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

Richiami di Matematica. 1. Insiemi, relazioni, funzioni. 2. Cardinalitá degli insiemi infiniti e numerabilitá. 3. Notazione asintotica.

RICHIAMI E COMPLEMENTI SU LINGUAGGI FORMALI E AUTOMI

Lunghezza media. Teorema Codice D-ario prefisso per v.c. X soddisfa. L H D (X). Uguaglianza vale sse D l i. = p i. . p.1/27

Logica per la Programmazione

Linguaggi formali, automi e logiche

Sipser, Capitolo 0. Alfabeti, Stringhe, Linguaggi

RISOLUZIONE IN LOGICA PROPOSIZIONALE. Giovanna D Agostino Dipartimento di Matemaica e Informatica, Università di Udine

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

La definizione di Ultrafiltro e la regolarità per partizioni

INSIEMI E RELAZIONI. 1. Insiemi e operazioni su di essi

Logica per la Programmazione

Progamma sintetico. Nozioni preliminari Automi Finiti Macchine di Turing Limiti delle macchine di Turing La tesi di Church-Turing Le classi P e NP

Definizione di Grammatica

Espressività e limitazioni delle grammatiche regolari

Corso di Linguaggi e Traduttori 1 AA GRAMMATICHE

Equivalentemente, le colonne di A sono linearmente indipendenti se e solo se

Dimostrazione: Data una allora non appartiene all immagine. Se per

Forme bilineari simmetriche

Dimostrazione. Indichiamo con α e β (finiti o infiniti) gli estremi dell intervallo I. Poniamo

Grammatiche. Grammatiche libere da contesto Grammatiche regolari Potenza delle grammatiche libere e regolari Struttura di frase: Alberi di derivazione

Suffix Trees. Docente: Nicolò Cesa-Bianchi versione 21 settembre 2017

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

Linguaggi regolari e automi a stati finiti

Esistenza ed unicità per equazioni differenziali

Sistemi lineari. Lorenzo Pareschi. Dipartimento di Matematica & Facoltá di Architettura Universitá di Ferrara

Transcript:

Proprietà dei linguaggi regolari

Argomenti della lezione Relazione tra automi, grammatiche ed espressioni regolari Pumping lemma per i linguaggi regolari Equivalenza di automi a stati finiti

Le seguenti classi di linguaggi sono equivalenti: L(ER): linguaggi definiti da espressioni regolari L(ASF): linguaggi riconosciuti da ASF L(GR): linguaggi generati da grammatiche regolari (linguaggi regolari)

Dim. i) L(ASF) L(ER) Supponiamo dato l'alfabeto Σ={a,b} La dimostrazione si effettua per induzione sulla struttura delle espressioni regolari e cioé facendo vedere che i linguaggi rappresentati dalle ER a, b e Ø sono riconoscibili con ASFND

Inoltre, se sono riconoscibili con ASFND i linguaggi rappresentati dalle ER e, e1 ed e2, sono riconoscibili con ASFND anche i linguaggi: (e1+e2) (e1. e2) e*

La costruzione degli automi per i linguaggi Λ, {a} e {b} è banale. Vediamo come si costruisce un automa che riconosce il linguaggio risultante dall unione di due linguaggi riconosciuti da automi dati.

Siano dati due ASFND A 1 ed A 2 Esiste un ASFND che riconosce L(A 1 ) L(A 2 ) Sia dato un ASFND A Esiste un ASFND che riconosce L(A)* Le dimostrazioni vengono lasciate come esercizio

ii) L(GR) L(ASF) Sia dato un automa A = <Σ,K,δ,q 0,F> La grammatica corrispondente è la grammatica G=<V T, V N, P, S> dove: V T = Σ V N = {A i per ogni q i K} S= A 0

Per ogni regola di transizione δ(q i,σ) = q j costruiamo la produzione A i σa j e se q j F anche A i σ

iii) L(ER) L(GR) Mostriamo il metodo con l ausilio di un esempio Sia data la grammatica con produzioni A aa bb B bb c ed assioma A

Innanzitutto trasformiamo le produzioni in un sistema di equazioni definite sul monoide sintattico: A aa bb B bb c A=aA+bB B=bB+ c

Quindi si risolvono le equazioni mediante sostituzione; ad esempio, date A=aA+bB B=bB+ c otteniamo A = aa + b(bb + c) = aa + bbb + bc B=bB+ c

Quindi eliminiamo la ricursione; ad esempio, data l'equazione B = bb + c la soluzione è B = b*c è infatti semplice verificare che: b*c = b(b*c)+c = b + c+c = b*c

Applicando ancora la sostituzione abbiamo: A = aa + bbb + bc = aa + bbb*c + bc e applicando ancora l eliminazione della ricursione abbiamo: A = a*(bbb*c + bc) = a*bb*c B = b*c

Poiché A è l assioma, il linguaggio generato dalla grammatica è rappresentato dall espressione regolare a*bb*c

Pumping lemma per i linguaggi regolari Per ogni linguaggio regolare L esiste una costante n tale che se z L e z n allora esistono tre stringhe u, v, w, tali che z=uvw con uv n, v 1 e uv i w L, i=0,1,...

Basata sui cicli (eventualmente presenti) nel diagramma degli stati Supponiamo che A=<Σ,K,δ,q 0,F> sia l'asf che riconosce L con il minimo numero di stati; sia n= K Supponiamo esista z L con z n Poiché z L abbiamo che δ(q 0,z) F

Sia qi 0, qi 1,...,qi z la sequenza di stati attraversati da A durante il riconoscimento di z, qi 0 =q 0 e qi z F Dato che z n, allora esiste almeno uno stato attraversato 2 volte

Consideriamo un prefisso t di z tale che t =n e sia ty = z Anche durante la scansione di t esiste almeno uno stato qi j che viene attraversato due volte Sia u il più breve prefisso di t e di z tale che δ(q 0,u)= qi j e sia t = =uxe e z = =uxy

Sia ora v il più breve prefisso (non vuoto) di x tale che δ(qi j,v)= qi j e sia t = uvs e z = uvw per un opportuna stringa w = sy In base alle ipotesi fatte abbiamo che uv t =n

Poiché δ(q 0,u) = qi j e d(qi j,w) = qi z abbiamo che, δ(q 0,uw) = qi z, quindi uw L

Inoltre, se i 1, abbiamo: δ(q 0,uv i w)=δ(δ(q 0,u),v i w)=δ(qi j,v i w) = δ(δ(qi j,v),v i-1 w)=δ(qi j,v i-1 w) = = δ(qi j,w) = qi z e quindi anche uv i w L per ogni i

Il pumping lemma consente di dimostrare la non-regolarità di un linguaggio dato Il linguaggio L={a n b n n 0} non èregolare

Infatti, per il pumping lemma, per n sufficientemente grande, se L contiene a n b n =uvw dovrebbe contenere uv i w i=1,2,3,4,...

Ne consegue che se v=a h o v=b h allora L dovrebbe contenere a n b m con n m se v=a h b k allora L dovrebbe contenere a m-h (a h b k ) i b m-k

In tutti e tre i casi si tratta di stringhe che non fanno parte di L

Con la stessa tecnica del pumping lemma possiamo dimostrare i due seguenti risultati: Se il linguaggio L riconosciuto da un ASF con n stati non è vuoto esiste una stringa x in L di lunghezza x < n

Se il linguaggio L riconosciuto da un ASF con n stati è infinito esiste una stringa x in L di lunghezza n x <2n

I risultati precedenti ci dicono che è possibile decidere se un linguaggio regolare è vuoto finito infinito

Proprietà di chiusura dei linguaggi regolari Nel corso della lezione abbiamo visto che l'insieme dei linguaggi regolari è chiuso rispetto a: unione concatenazione iterazione

Vediamo ora ulteriori proprietà di chiusura: la classe dei linguaggi regolari è chiusa rispetto alla complementazione

La classe dei linguaggi regolari è chiusa rispetto all'intersezione La proprietà deriva immediatamente dalle proprietà di chiusura già viste e dalla legge di De Morgan che mette in relazione i tre operatori di unione, intersezione e complementazione.

Come ulteriore conseguenza delle proprietà di chiusura e delle proprietà derivanti dal pumping lemma possiamo dimostrare che per le grammatiche regolari (ed ovviamente anche per espressioni regolari, ASF ed ASFND) è decidibile l'equivalenza

Dati due automi A 1 =<Σ 1,K 1,δ 1,q 01,F 1 > >e e A 2 =<Σ 2,K 2,δ 2,q 02,F 2 > è possibile decidere se L(A 1 ) = L(A 2 )

Si può facilmente mostrare, prima di tutto, che i linguaggi regolari sono chiusi rispetto alla differenza simmetrica; infatti se indichiamo con la differenza simmetrica abbiamo:

(L(A 1 ), L(A 2 )) = = L(A 1 )\L(A 2 ) L(A 2 )\L(A 1 ) Successivamente possiamo osservare che L(A 1 ) = L(A 2 )se e solo se (L(A 1 ), L(A 2 )) è vuoto