Proprieta dei Linguaggi regolari

Documenti analoghi
Linguaggi regolari e automi a stati finiti

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

Equivalenza e minimizzazione di automi. Equivalenza e minimizzazione di automi

Espressioni regolari. Espressioni regolari

Espressioni regolari

Aniello Murano Problemi non decidibili e riducibilità

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

Espressioni regolari descrivono i linguaggi regolari. Un FA (NFA o DFA) è un metodo per costruire una macchina che riconosce linguaggi regolari.

Linguaggi Liberi dal Contesto. Linguaggi Liberi dal Contesto

Quiz sui linguaggi regolari

Linguaggi Regolari e Linguaggi Liberi

Pumping lemma per i linguaggi Context-free

Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemm

Linguaggi Regolari e Linguaggi Liberi

Aniello Murano Problemi decidibili e non decidibili

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

Cammini minimi fra tutte le coppie

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

Esercizi di Fondamenti di Informatica per la sicurezza. Stefano Ferrari

Esempio stringhe palindrome 1

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

Corso di Crittografia Prof. Dario Catalano. Firme Digitali

Fondamenti dell Informatica: Linguaggi Formali e Calcolabilità

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

1 Distanza di un punto da una retta (nel piano)

11. Misure con segno.

Massimo limite e minimo limite di una funzione

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

I Prodotti. Notevoli

Aniello Murano Automi e Pushdown

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

DAI NUMERI NATURALI AI NUMERI RAZIONALI

IL TEOREMA FONDAMENTALE DELL ARITMETICA: DIMOSTRAZIONE VELOCE.

LINGUAGGI CONTEXT FREE. Lezione Lezione

Linguaggi e Grammatiche Liberi da Contesto

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

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

Elementi di Sintassi dei Linguaggi di Programmazione. Appunti per gli studenti di Fondamenti di Programmazione (corsi A-B-C)

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

RELAZIONI, FUNZIONI, INSIEMI NUMERICI. 1. Relazioni. Siano X e Y due insiemi non vuoti. Si definisce il prodotto cartesiano

Sommario. Caratterizzazione alternativa di NP: il verificatore polinomiale esempi di problemi in NP

Matematica II: Calcolo delle Probabilità e Statistica Matematica

La macchina universale

64=8 radice perché 8 2 = 64

Alcune nozioni preliminari di teoria elementare di insiemi e funzioni

(b) le operazioni, sono distributive: (c) le operazioni, hanno un elemento neutro: cioè esistono O e I P(X) tali che A P(X) : A O = A, A I = A.

Alcuni equivalenti dell Assioma della Scelta

TEN Radici quadrate modulo p e modulo p k. Radici quadrate modulo p, con p > 2.

M.P. Cavaliere ELEMENTI DI MATEMATICA E LOGICA MATEMATICA DISCRETA INSIEMI

M.P. Cavaliere ELEMENTI DI MATEMATICA E LOGICA MATEMATICA DISCRETA STRUTTURE ALGEBRICHE

La matematica non è un opinione, lo è oppure...?

Circuiti digitali. Operazioni Logiche: Algebra di Boole. Esempio di circuito. Porte Logiche. Fondamenti di Informatica A Ingegneria Gestionale

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

Complementi di Analisi Matematica Ia. Carlo Bardaro

1 Principio di Induzione

A.A CORSO DI ALGEBRA 1. PROFF. P. PIAZZA, E. SPINELLI. SOLUZIONE ESERCIZI FOGLIO 5.

Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing

Funzioni implicite - Esercizi svolti

Grafi e reti di flusso

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

Algoritmi e Strutture Dati - II modulo Soluzioni degli esercizi

3/10/ Divisibilità e massimo comun divisore

Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili

Transcript:

Proprieta dei Linguaggi regolari Pumping Lemma. Ogni linguaggio regolare soddisfa il pumping lemma. Se qualcuno vi presenta un falso linguaggio regolare, l uso del pumping lemma mostrera una contraddizione. Proprieta di chiusura. Come costruire automi da componenti usando delle operazioni, ad esempio dati L e M possiamo costruire un automa per L M. Proprieta di decisione. Analisi computazionale di automi, cioe quando due automi sono equivalenti. Tecniche di minimizzazione. Possiamo risparmiare costruendo automi piu piccoli. 1

Il Pumping Lemma, informalmente Supponiamo che L 01 = {0 n 1 n : n 1} sia regolare. Allora deve essere accettato da un qualche DFA A, con, ad esempio, k stati. Supponiamo che A legga 0 k. Avra le seguenti transizioni: ǫ p 0 0 p 1 00 p 2...... 0 k p k i < j : p i = p j Chiamiamo q questo stato. 2

Adesso possiamo ingannare A: Se ˆδ(q,1 i ) F l automa accettera, sbagliando, 0 j 1 i. Se ˆδ(q,1 i ) / F l automa rifiutera, sbagliando, 0 i 1 i. Quindi L 01 non puo essere regolare. Generaliziamo questo ragionamento. 3

Teorema 4.1. Il Pumping Lemma per Linguaggi Regolari. Sia L un linguaggio regolare. Allora n, w L : w n w = xyz tale che: 1. y ǫ 2. xy n 3. k 0, xy k z L 4

Prova: Supponiamo che L sia regolare. Allora L e riconosciuto da un DFA A con, ad esempio, n stati. Sia w = a 1 a 2... a m L, m > n. Sia p i = ˆδ(q 0, a 1 a 2 a i ). i < j : p i = p j 5

Ora w = xyz, dove 1. x = a 1 a 2 a i 2. y = a i+1 a i+2 a j 3. z = a j+1 a j+2... a m y = a i+1... a j Start p 0 x = z = a 1... a i a j+1... a m p i Quindi anche xy k z L, per ogni k 0. 6

Esempio: sia L eq il linguaggio delle stringhe con ugual numero di zeri e di uni. Supponiamo che L eq sia regolare. Allora w = 0 n 1 n L. Per il pumping lemma, w = xyz, xy n, y ǫ e xy k z L eq w = 000 }{{} x 0 }{{} y 0111 11 }{{} z In particolare, xz L eq, ma xz ha meno zeri di uni. 7

Supponiamo che L pr = {1 p : p e primo } sia regolare. Sia n dato dal pumping lemma. Scegliamo un numero primo p n + 2. w = p {}}{ 111 }{{} x 1 }{{} y y =m 1111 11 }{{} z Ora xy p m z L pr xy p m z = xz + (p m) y = p m + (p m)m = (1 + m)(p m) che non e primo a meno che uno dei fattori non sia 1. y ǫ 1 + m > 1 m = y xy n, p n + 2 p m n + 2 n = 2. 8

Proprieta di chiusura dei linguaggi regolari Siano L e M due linguaggi regolari. Allora i seguenti linguaggi sono regolari: Unione: L M Intersezione: L M Complemento: N Differenza: L \ M Inversione: L R = {w R : w L} Chiusura: L. Concatenazione: L.M Omomorfismo: h(l) = {h(w) : w L, h e un omom. } Omomorfismo inverso: h 1 (L) = {w Σ : h(w) L, h : Σ e un omom. } 9

Teorema 4.4. Per ogni coppia di linguaggi regolari L e M, L M e regolare. Prova. Sia L = L(E) e M = L(F). Allora L(E + F) = L M per definizione. Teorema 4.5. Se L e un linguaggio regolare su Σ, allora che L = Σ \ L e regolare. Prova. Sia L riconosciuto da un DFA A = (Q,Σ, δ, q 0, F). Sia B = (Q,Σ, δ, q 0, Q \ F). Allora L(B) = L. 10

Esempio: Sia L riconosciuto dal DFA qui sotto: 1 0 Start 0 1 { q } { q, q } {q, 0 0 1 0 2 q } 0 1 Allora L e riconosciuto da: 1 0 Start 0 1 { q } { q, q } {q, 0 0 1 0 2 q } 0 1 Domanda: Quali sono le espressioni regolari per L e L? 11

Teorema 4.8. Se L e M sono regolari, allora anche L M e regolare. Prova. Per la legge di DeMorgan, L M = L M. Sappiamo gia che i linguaggi regolari sono chiusi sotto il complemento e l unione. 12

Teorema 4.8. Se L e M sono regolari, allora anche L M e regolare. Prova. Sia L il linguaggio di A L = (Q L,Σ, δ L, q L, F L ) e M il linguaggio di A M = (Q M,Σ, δ M, q M, F M ) Assumiamo senza perdita di generalita che entrambi gli automi siano deterministici. Costruiremo un automa che simula A L e A M in parallelo, e accetta se e solo se sia A L che A M accettano. 13

Se A L va dallo stato p allo stato s leggendo a, e A M va dallo stato q allo stato t leggendo a, allora A L M andra dallo stato (p, q) allo stato (s, t) leggendo a. Input a A L Start AND Accept A M 14

Formalmente A L M = (Q L Q M,Σ, δ L M,(q L, q M ), F L F M ), dove δ L M ((p, q), a) = (δ L (p, a), δ M (q, a)) Si puo mostrare per induzione su w che ˆδ L M ((q L, q M ), w) = (ˆδ L (q L, w),ˆδ M (q M, w) ) 15

Esempio: (c) = (a) (b) 1 Start p 0 q 0,1 (a) 0 Start r 1 s 0,1 (b) 1 Start pr 1 ps 0 0 qr 1 qs 0,1 0 (c) 16

Teorema 4.10. Se L e M sono linguaggi regolari, allora anche L \ M e regolare. Prova. Osserviamo che L \ M = L M. Sappiamo gia che i linguaggi regolari sono chiusi sotto il complemento e l intersezione. 17

Teorema 4.11. Se L e un linguaggio regolare, allora anche L R e regolare. Prova 1: Sia L riconosciuto da un FA A. Modifichiamo A per renderlo un FA per L R : 1. Giriamo tutti gli archi. 2. Rendiamo il vecchio stato iniziale l unico stato finale. 3. Creiamo un nuovo stato iniziale p 0, con δ(p 0, ǫ) = F (i vecchi stati finali). 18

Teorema 4.11. Se L e un linguaggio regolare, allora anche L R e regolare. Prova 2: Sia L descritto da un espressione regolare E. Costruiremo un espressione regolare E R, tale che L(E R ) = (L(E)) R. Procediamo per induzione strutturale su E. Base: Se E e ǫ,, o a, allora E R = E. Induzione: 1. E = F + G. Allora E R = F R + G R 2. E = F.G. Allora E R = G R.F R 3. E = F. Allora E R = (F R ) L(E R ) = (L(E)) R 19

Proprieta di decisione 1. Convertire tra diverse rappresentazioni dei linguaggi regolari. 2. E L =? 3. E w L? 4. Due descrizioni definiscono lo stesso linguaggio? 20

Da NFA a DFA Supponiamo che un ǫ-nfa abbia n stati. Per calcolare ECLOSE(p) seguiamo al piu n 2 archi. Il DFA ha 2 n stati, per ogni stato S e ogni a Σ calcoliamo δ D (S, a) in n 3 passi. In totale abbiamo O(n 3 2 n ) passi. Se calcoliamo δ solo per gli stati raggiungibili, dobbiamo calcolare δ D (S, a) solo s volte, dove s e il numero di stati raggiungibili. In totale: O(n 3 s) passi. 21

Da DFA a NFA Dobbiamo solo mettere le parentesi graffe attorno agli stati. Totale: O(n) passi. Da FA a espressioni regolari Dobbiamo calcolare n 3 cose di grandezza fino a 4 n. Totale: O(n 3 4 n ). L FA puo essere un NFA. Se prima vogliamo convertire l NFA in un DFA, il tempo totale sara doppiamente esponenziale. Da espressioni regolari a FA Possiamo costruire un albero per l espressione in n passi. Possiamo costruire l automa in n passi. Eliminare le ǫ-transizioni ha bisogno di O(n 3 ) passi. Se si vuole un DFA, potremmo aver bisogno di un numero esponenziale di passi. 22

Testare se un linguaggio e vuoto L(A) per FA A se e solo se uno stato finale e raggiungibile dallo stato iniziale in in A. Totale: O(n 2 ) passi. Oppure, possiamo guardare un espressione regolare E e vedere se L(E) =. Usiamo il seguente metodo: E = F + G. Allora L(E) e vuoto se e solo se sia L(F) che L(G) sono vuoti. E = F.G. Allora L(E) e vuoto se e solo se o L(F) o L(G) sono vuoti. E = F. Allora L(E) non e mai vuoto, perche ǫ L(E). E = ǫ. Allora L(E) non e vuoto. E = a. Allora L(E) non e vuoto. E =. Allora L(E) e vuoto. 23

Controllare l appartenenza Per controllare se w L(A) per DFA A, simuliamo A su w. Se w = n, questo prende O(n) passi. Se A e un NFA e ha s stati, simulare A su w prende O(ns 2 ) passi. Se A e un ǫ-nfa e ha s stati, simulare A su w prende O(ns 3 ) passi. Se L = L(E), per l espressione regolare E di lunghezza s, prima convertiamo E in un ǫ-nfa con 2s stati. Poi simuliamo w su questo automa, in O(ns 3 ) passi. 24