• Non ci sono risultati.

Automi e Linguaggi Formali

N/A
N/A
Protected

Academic year: 2021

Condividi "Automi e Linguaggi Formali"

Copied!
15
0
0

Testo completo

(1)

Automi e Linguaggi Formali

Equivalenza e minimizzazione di automi

A.A. 2014-2015

(2)

Proprieta’ dei linguaggi regolari

Pumping Lemma

- Ogni linguaggio regolare soddisfa il pumping lemma - Se L non e’ regolare il pumping lemma mostrera’ una

contraddizione

Proprieta’ di chiusura

- Costruire automi da componenti usando delle operazioni algebriche sui linguaggi

- E.g., dati L e M possiamo costruire un automa per L ∩ M

Proprieta’ di decisione

- Analisi computazionale degli automi

- Quanto costa controllare proprieta’ sugli automi Tecniche di minimizzazione

- Risparmiare costruendo automi piu piccoli - Processo di semplificazione

(3)

Equivalenza tra stati

Sia A = ( Q , Σ, δ, q

0

, Q

F

) un DFA con { p , q } ⊆ Q

p ≡ q ⇔ ∀w ∈ Σ

: ˆ δ(p, w) ∈ Q

F

⇐⇒ ˆ δ(q, w) ∈ Q

F

- Se p ≡ q diciamo che p e q sonoequivalenti - Se p . q diciamo che p e q sonodistinguibili

Distingubilita’

→ p e q sono distinguibili se e solo se

∃ w : ˆ δ( p , w ) ∈ Q

F

e ˆ δ( q , w ) < Q

F

(o viceversa)

(4)

Esempio di equivalenza

Start

0 0

1

1

0

1

0 1

0 1

1 0 0

1 1

0

A B C D

E F G H

Alcuni stati ovviamente distinguibili

- ˆδ(C, ) ∈ QF, ˆδ(G, ) < QF =⇒ C . G

Altri meno...

- A ≡ G → per? , 0, 1?

- ˆδ(A, 01) = C ∈ QF, ˆδ(G, 01) = E < QF =⇒ A . G

(5)

Esempio di equivalenza - 2

Start

0 0

1

1

0

1 0

1

0 1

1 0 0

1 1

0

A B C D

E F G H

ˆ δ( A , ) = A < Q

F

, ˆδ( E , ) = E < Q

F

ˆ δ( A , 1 ) = F = ˆ δ( E , 1 )

- ˆδ(A, 1x) = ˆδ(E, 1x) = ˆδ(F, x)

ˆ δ( A , 00 ) = G = ˆ δ( E , 00 )

ˆ δ( A , 01 ) = C = ˆ δ( E , 01 )

(6)

Algoritmo induttivo

Algoritmo di riempimento di una tabella (TF algorithm)

- Trovare coppie di stati distinguibili

Coppie residue → equivalenti Base Se p ∈ QF e q < QF allora p . q

Induzione Se ∃ a ∈ Σ :δ(p, a) = r . s = δ(q, a) allora anche p . q

. Applichiamo a DFA A

B C D E F G H

A B C D E F G x

x x

x x x

x x x x x

x x x x x

x

x x

x x x

x x x

(7)

Correttezza dell’algoritmo

Th. 4.20

Se p e q non sono distinguibili dall’algoritmo allora anche p ≡ q.

Prova

Supponiamo per assurdo che esista { p , q } sbagliata tale che:

- ∃ w : ˆδ(p, w) ∈ QF, ˆδ(q, w) < QF o viceversa - l’algoritmo TF non distingue tra p e q

Per induzione su w = a

1

a

2

· · · a

n

la stringa

piu’ corta

che identifica { p , q } come distinguibili (non colta da TF)

 (n = 0) w =: TF non puo’ non distinguere p e q

 (n ≥ 1): allora ∃ r =δ(p, a1) e s =δ(q, a1)

- p.q⇒r.s per la stringa a2· · ·anche e’ piu’ corta della stringa minima che riconosce una coppia sbagliata

- {r,s}non e’ una coppia sbagliata e TF deve aver scoperto r.s - per la sua parte induttiva TF deve aver scoperto anche p.q

(8)

Testare l’equivalenza tra LR

Siano L e M linguaggi regolari (descritti in qualche forma) Per testare se L ≡ M

1 Convertiamo sia L che M in DFA

2 Immaginiamo il DFA che e’ l’unione dei due DFA (non importa se ha due stati iniziali)

3 Se l’algoritmo TF dice che i due stati iniziali sono distinguibili, allora L . M, altrimenti L ≡ M

(9)

Esempio test equivalenza LR

Start Start

0

0 1

1

0

1 0

1

1 0

A B

C D

E

Entrambi accettano L ( + (

0

+

1

)

0

) Applichiamo TF .

Complessita’?

(10)

Minimizzazione di DFA

Equivalenza →

minimizzazione

Per ogni DFA che accetta L possiamo trovare un DFA

- Equivalente

- Minnumero di stati rispetto a tutti i DFA che accettano L - Tale DFA e’unicoper L

Algoritmo TF per clusterizzare stati equivalenti

- Rimpiazzare p con p/(classe di equivalenza)

Riflessiva, simmetrica e transitiva

Esempio

Start

0 0

1 1

0 1

0 1

1 0 1 0

0 1 1

0

A B C D

E F G H

- {{A, E}, {B, H}, {C}, {D, F}, {G}}

(11)

Transitivita’

Th 4.23

Se p ≡ q e q ≡ r, allora p ≡ r.

Prova

Supponiamo per assurdo che p . r

- ∃w tale che ˆδ(p, w) ∈ QFe ˆδ(r, w) < QF

- ˆδ(q, w) puo’ essere o non essere in QF

 ˆδ(q,w) ∈QF→q.r

 ˆδ(q,w) <QF→p.q

- Simmetricamente nell’altra ipotesi - Concludiamo che p ≡ r

(12)

Algoritmo di minimizzazione

Per minimizzare un DFA A = ( Q , Σ, δ, q

0

, F ) costruiamo un DFA B = ( Q /

, Σ, γ, q

0

/

, F /

)

dove

γ( p /

, a ) = δ( p , a )/

B

ben definito

se

p ≡ q ⇒ δ( p , a ) ≡ δ( q , a )

- In effetti: seδ(p, a) . δ(q, a) TF concluderebbe p . q - Notare anche che F/contiene tutti e soli stati accettanti di A

(13)

Esempio di minimizzazione

Start

0 0 1

1 0

1 0

1

0 1

1 0 0

1 1

0

A B C D

E F G H

Start

1

0 0 1

1

0

0 1

1 0 A,E

G D,F

B,H C

(14)

Minimizzazione di NFA

Possiamo applicare l’agoritmo di minimizzazione a NFA?

NO - Possiamo trovare NFA minimo per L (per enumerazione

esaustiva)

- Non possiamo ”raggruppare” gli stati di un NFA (non riduce il numero di stati)

Esempio

Start

0,1 0

1 0

A B

C

(15)

DFA Minimo

Sia B il DFA minimizzato ottenuto su DFA A

- L (A ) = L (B)

- Puo’ esistere DFA C con L (C) = L (B) ma meno stati di B?

La risposta e’

NO Prova

Applichiamo TF a B e C

- Stati inizali sono indistinguibili poiche’ L (B) ≡ L (C) - Se {p, q} sono indistinguibili, lo sono anche i rispettivi

successori per ogni a ∈ Σ

- Non esistono stati irraggiungibili (altrimenti non DFA minimo) - ∀ p in B, ∃ q in C tale che p ≡ q

- Se per assurdo C avesse meno stati, allora ci sarebbero almeno due stati in B non distiguibili dallo stesso stato in C e quindi non distinguibile con un’altro degli stati in B

(impossibile)

Riferimenti

Documenti correlati

- Costruire automi da componenti usando delle operazioni algebriche sui linguaggi.. - E.g., dati L e M possiamo costruire un automa per L ∩ M Proprieta’

Automi e Linguaggi Formali.. Proprieta’ dei

Grammatiche libere da contesto (Context-free grammars) - Base della sintassi BNF (Backus-Naur-Form).  Regole di derivazione → linguaggi di

Il prodotto di un albero sintattico e’ la stringa ottenuta dal concatenamento delle foglie da sinistra a destra. - E’ una stringa derivabile dalla

Un linguaggio regolare e’ anche libero da contesto Da una espressione regolare, o da un automa, si puo’. ottenere una grammatica che genera lo

(b) Se una computazione e’ legale per un PDA, allora lo e’ anche la computazione formata aggiungendo una stringa alla fine della terza componente (fondo dello stack).. (c) Se

(b) Se una computazione e’ legale per un PDA, allora lo e’ anche la computazione formata aggiungendo una stringa alla fine della terza componente (fondo dello stack). (c) Se

Informalmente In ogni stringa sufficientemente lunga di un CFL si possono trovare due sottostringhe vicine che e possibile eliminare o ripetere (insieme), ottenendo sempre stringhe