Automi e Linguaggi Formali

Documenti analoghi
Automi e Linguaggi Formali

Espressioni regolari. Espressioni regolari

Espressioni regolari. Espressioni regolari

Espressioni regolari

NFA per riconoscere numeri decimali

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

Automi e Linguaggi Formali

Prefazione all edizione italiana

Sommario. Espressioni regolari. Equivalenza tra espressioni regolari e DFA. Esercizi problemi di decisione

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

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

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

Automi e Linguaggi Formali Automi a stack (Pushdown automata)

Proprieta dei Linguaggi Regolari. Proprieta dei Linguaggi Regolari

Proprieta dei Linguaggi regolari

Automi a stati finiti

Analisi Lessicale: Linguaggi Regolari

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

Linguaggi regolari e automi a stati finiti

Esercizi di Informatica Teorica - DFA

Espressioni regolari in UNIX p.1/19

Linguaggi di Programmazione Corso C. Parte n.6 Linguaggi Regolari ed Espressioni Regolari. Nicola Fanizzi

I metodi formali dell Analisi Lessicale: Le Espressioni Regolar

Trasformazione di un NDFA in un DFA con ε-regole

Linguaggi Regolari e Linguaggi Liberi

Logica per la Programmazione

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

Linguaggi Regolari e Linguaggi Liberi

Linguaggi Regolari e Linguaggi Liberi. Linguaggi Regolari. Determinismo vs Non determinismo. Potere espressivo

Introduzione alla logica proposizionale

Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemm

Le grammatiche formali

Grammatiche libere da contesto. Grammatiche libere da contesto

Linguaggi e grammatiche

Informazione binaria: - rappresentazione di valori logici -

Equivalenza e minimizzazione di automi. Equivalenza e minimizzazione di automi

Algebra di Boole. Introdotta nel 1874 da George Boole per fornire una rappresentazione algebrica della logica

Automi a stati finiti

DIMOSTRAZIONI DI TAUTOLOGIE. Corso di Logica per la Programmazione

Università degli Studi di Cagliari Dipartimento di Ingegneria Elettrica ed Elettronica ALGEBRA BOOLEANA

Linguaggi regolari e automi a stati finiti. Linguaggi regolari e automi a stati finiti

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

Elementi di Algebra e di Matematica Discreta Strutture algebriche: gruppi

Elementi di Algebra e Logica Determinare la tavola della verità di ciascuna delle seguenti forme proposizionali:

Logica per la Programmazione

Linguaggi. Claudio Sacerdoti Coen 13/12/ : I connettivi della logica proposizionale classica. Universitá di Bologna

Fondamenti di Informatica

Linguaggi. Rosario Culmone, Luca Tesei. 20/10/2009 UNICAM - p. 1/32

DIMOSTRAZIONI DI TAUTOLOGIE. Corso di Logica per la Programmazione A.A. 2010/11 Andrea Corradini, Paolo Mancarella

Precedenza degli operatori

Elementi di Informatica A. A. 2016/2017

Introduzione alla Matematica per le Scienze Sociali - parte II

Operatori di relazione

Fondamenti di Informatica. Algebra di Boole

Introduzione al corso

Gli insiemi numerici RIPASSIAMO INSIEME OPERAZIONI FRA NUMERI RELATIVI INSIEME N INSIEME Z ELEVAMENTO A POTENZA

Proprieta dei Linguaggi Regolari. Proprieta dei Linguaggi Regolari

Le variabili logiche possono essere combinate per mezzo di operatori detti connettivi logici. I principali sono:

Funzioni, espressioni e schemi logici

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

Elementi di informatica

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

Linguaggi e Traduttori: Analisi lessicale

ALGEBRA I: ASSIOMI DI PEANO E PROPRIETÀ DEI NUMERI NATURALI

Fondamenti dell Informatica

interpretazione astratta

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

Equivalenza di Espressioni Algebriche

Introduzione alla logica matematica

Esempio stringhe palindrome 1

Algebra di Boole. Andrea Passerini Informatica. Algebra di Boole

Logica booleana. Bogdan Maris ( )

Logica: materiale didattico

Codifica binaria: - valori logici e algebra di Boole -

Fondamenti di Informatica

Algebra relazionale D O C E N T E P R O F. A L B E R T O B E L U S S I. Anno accademico 2012/13

Proprietà di CFL. C. Bodei Fondamenti di Programmazione a.a. 17/18

Corso di Calcolatori Elettronici I A.A Algebra di Boole Lezione 4

Fondamenti d Informatica: Grammatiche. Barbara Re, Phd

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

LINGUAGGI REGOLARI. Teorema (Kleene). Le seguenti classi di linguaggi sono equivalenti:

Circuiti e reti combinatorie. Appendice A (libro italiano) + dispense

Linguaggi formali e compilazione

13/10/16. FB ed EB associate. Forme canoniche e forme normali. Assumiamo di avere n variabili {x 1,,x n }:

Sintassi. Linguaggi. 4: Sintassi. Claudio Sacerdoti Coen. Universitá di Bologna 24/02/2011. Claudio Sacerdoti Coen

Il theta-join, espresso come prodotto cartesiano seguito da una selezione, è il tipo di join operativamente più generale. Infatti:

Equazioni di primo grado ad un incognita

La codifica dell informazione

Istituzioni di Logica Matematica

Transcript:

Automi e Linguaggi Formali Espressioni regolari A.A. 2014-2015 Enrico Mezzetti emezzett@math.unipd.it

Espressioni regolari Un FA (NFA o DFA) e un metodo per costruire una macchina che riconosce linguaggi regolari Una espressione regolare e un modo dichiarativo per descrivere un linguaggio regolare - Descrizione algebrica vs. comportamentale Esempio: 01 + 10 - L(01 + 10 ) = {0111111111111 1000000000... } Le espressioni regolari sono usate, ad esempio, in - Comandi UNIX (grep) - Strumenti per l analisi lessicale presenti nelle distro Linux (E.g., lex - Lexical analyzer generator e flex - Fast Lex) Docente: Enrico Mezzetti 2 of 24

Notazione delle espressioni regolari: Operatori Espressioni comprendono operatori e simboli Unione L M = {w : w L o w M} Es.: L = {001, 10, 111} e M = {ɛ, 001} L M = {ɛ, 001, 10, 111} Concatenazione L.M = {w : w = xy, x L, y M} Es.: L = {001, 10, 111} e M = {ɛ, 001} L.M = {001, 10, 111, 001001, 10001, 111001} Potenza L 0 = {ɛ}, L 1 = L, L k+1 = L.L k Es.: L = {001, 10} L 0 = {ɛ}, L 1 = {001, 10}, L 2 = {00110, 10001, 1010, 001001} Chiusura di Kleene L = L i i=0 Es.: L = {0, 11} L = {stringhe di 0 e 1 tali che gli 1 compaiono a coppie} E L include tutte le stringhe che possono essere formate concatenando elementi in L Docente: Enrico Mezzetti 3 of 24

Notazione delle espressioni regolari: Costruzione Definizione induttiva delle espressioni Base - Costanti: ɛ e sono espressioni regolari L(ɛ) = {ɛ} e L( ) =. - Simboli: Se a Σ, allora a e un espressione regolare. L(a) = {a} (in grassetto) - Variabili: L rappresenta un linguaggio arbitrario Induzione - Unione: se E e F sono espressioni regolari E + F e un espressione regolare per L(E + F ) = L(E) L(F ) - Concatenazione: se E e F sono espressioni regolari E.F e un espressione regolare per L(E.F ) = L(E).L(F ) - Chiusura: se E e un espressione regolare E e un espressione regolare per L(E ) = (L(E)) - Parentesizzazione: se E e un espressione regolare (E) e un espressione regolare per L((E)) = L(E) Docente: Enrico Mezzetti 4 of 24

Esempio costruzione espressione regolare Espressione regolare per le stringhe di 0 e 1 alternati L = {w {0, 1} : 0 e 1 alternati in w} Costruzione - 0 e 1 regexp (base - simboli) - 01 regexp per concatenazione - (01) regexp per chiusura - (01) + (10) regexp per unione - (01) + (10) + 0(10) + 1(01) regexp per unione equivalentemente: (01) + (10) + 0(10) + 1(01) (ɛ + 1)(01) (ɛ + 0) E L = (epsilon + 1) = L(ɛ) + L(1) = {ɛ} {1} = {ɛ, 1} Docente: Enrico Mezzetti 5 of 24

Ordine di precedenza per gli operatori Algebre definiscono precedenza tra operatori - x y + z (x y) + z e non x (y + z) Precedenza in espressioni regolari 1 Chiusura ( ) 2 Concatenazione (punto) 3 Unione (+) - Esempio: 01 + 1 e raggruppato in (0(1) ) + 1 Derogabile con uso di parentesi - Esempio: (01) Docente: Enrico Mezzetti 6 of 24

Esempi di regexp Docente: Enrico Mezzetti 7 of 24

Equivalenza di FA e regexp DFA, NFA e ɛ-nfa sono equivalenti - Accettano la stessa classe di linguaggi (l. regolari) -NFA NFA RE DFA Per sostenere equivalenza tra regexp FA dimostriamo che 1 Per ogni DFA A possiamo trovare (costruire) un espressione regolare R, tale che L(R) = L(A). 2 Per ogni espressione regolare R esiste un ɛ-nfa A, tale che L(A) = L(R). Docente: Enrico Mezzetti 8 of 24

Da DFA a RE: tecnica per eliminazione di stati 1 Etichettiamo gli archi con espressioni regolari di simboli R 1m q 1 p 1 Q 1 R 11 S P 1 s q k Q k R km P m p m R k1 Docente: Enrico Mezzetti 9 of 24

La tecnica di eliminazione di stati - 2 2 Ora eliminiamo lo stato s R 11 + Q 1 S* P 1 q 1 p 1 R 1m + Q 1 S* P m q k R k1 + Q k S* P 1 R km + Q k S* P m p m 3 q eliminiamo da FA originale tutti gli stati eccetto q 0 e q. Docente: Enrico Mezzetti 10 of 24

La tecnica di eliminazione di stati - 3 Per ogni q F saremo rimasti con A q in due forme possibili - Corrispondente all espressione regolare E q = (R + SU T ) SU Start R S U - Corrispondente all espressione regolare E q = R T R Start L espressione finale e q F E q Docente: Enrico Mezzetti 11 of 24

Esempio riduzione Ridurre l automa NFA A che accetta il linguaggio delle stringhe con 1 come penultimo o terzultimo elemento L(A) = {W : =, o =, {, }, {, } {, }} 0,1 Start 1 0,1 0,1 A B C D 1 La trasformiamo in un automa con espressioni regolari come etichette 0 + 1 Start 1 0 + 1 0 + 1 A B C D Docente: Enrico Mezzetti 12 of 24

Esempio riduzione - 2 0 + 1 Start 1 0 + 1 0 + 1 A B C D 2 Eliminiamo lo stato B (non terminale) 0 + 1 Start A 1( 0 + 1) 0 + 1 C D 3 Poi eliminiamo lo stato C e otteniamo A D 0 + 1 Start A 1( 0 + 1) ( 0 + 1) D con espressione regolare (0 + 1) 1(0 + 1)(0 + 1) Docente: Enrico Mezzetti 13 of 24

Esempio riduzione - 3 0 + 1 Start A 1( 0 + 1) 0 + 1 C D 4 Alternativamente possiamo eliminare D e ottenere A C 0 + 1 Start A 1( 0 + 1) C con espressione regolare (0 + 1) 1(0 + 1) 5 L espressione finale e la somma delle due espressioni precedenti (0 + 1) 1(0 + 1)(0 + 1) + (0 + 1) 1(0 + 1) Docente: Enrico Mezzetti 14 of 24

Da espressioni regolari a ɛ-nfa Teorema 3.7 Per ogni espressione regolare R possiamo costruire un ɛ-nfa A, tale che L(A) = L(R) con 1 Un solo stato accettante 2 Nessun arco entrante nello stato iniziale 3 Nessun arco uscente dallo stato finale Prova Per induzione strutturale su R Base ɛ-nfa per ɛ,, e a (a) (b) a (c) Docente: Enrico Mezzetti 15 of 24

Da espressioni regolari a ɛ-nfa - 2 Induzione ɛ-nfa per R + S, RS, e R (caso parentesi non rilevante) R S (a) R S (b) R (c) Docente: Enrico Mezzetti 16 of 24

Esempio trasformazione - 1 Docente: Enrico Mezzetti 17 of 24 R=(0 + 1) 1(0 + 1) 0 1 (a) 0 1 (b)

Esempio trasformazione - 2 (b) Start 0 1 1 0 1 (c) Docente: Enrico Mezzetti 18 of 24

Esempi Docente: Enrico Mezzetti 19 of 24

Proprieta algebriche per le espressioni regolari regexp presentano proprieta algebriche - Similitudine con espressioni aritmetiche Associativita e commutativita Commutativita L unione e commutativa L M = M L Associativita L unione e associativa (L M) N = L (M N) La concatenazione e associativa (LM)N = L(MN) Nota: concatenazione non e commutativa cioe L, M tali che LM ML. Docente: Enrico Mezzetti 20 of 24

Proprieta algebriche per le espressioni regolari - 2 Identita e annichilatori Identita e l identita per l unione L = L = L {ɛ} e l identita sinistra e destra per la concatenazione {ɛ}l = L{ɛ} = L Annichilatore e l annichilatore sinistro e destro per la concatenazione L = L = Distributivita Idempotenza Distributivita La concatenazione e distributiva a sinistra sull unione L(M N) = LM LN La concatenazione e distributiva a destra sull unione (M N)L = ML NL Idempotenza L unione e idempotente L L = L Docente: Enrico Mezzetti 21 of 24

Proprieta algebriche per le espressioni regolari - 3 Proprieta relative alla chiusura Idempotenza La chiusura e idempotente (L ) = L Valori notevoli = {ɛ} {ɛ} = {ɛ} L + = LL = L L L = L + {ɛ} Docente: Enrico Mezzetti 22 of 24

Dimostrazione La chiusura e idempotente (L ) = L Dimostrazione w (L ) ( ) i w L j i=0 j=0 k, m N : w (L m ) k p N : w L p w i=0 w L L i Docente: Enrico Mezzetti 23 of 24

Esempi Docente: Enrico Mezzetti 24 of 24