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

Automi - Unicamcomputerscience.unicam.it/culmone/?download=automi.pdfIn questa sezione definiamo gli automi a stati finiti non deter ministici e deterministici. In questo contesto

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Automi - Unicamcomputerscience.unicam.it/culmone/?download=automi.pdfIn questa sezione definiamo gli automi a stati finiti non deter ministici e deterministici. In questo contesto

20/10/2009 UNICAM - p. 1/55

Automi

Rosario Culmone, Luca Tesei

Page 2: Automi - Unicamcomputerscience.unicam.it/culmone/?download=automi.pdfIn questa sezione definiamo gli automi a stati finiti non deter ministici e deterministici. In questo contesto

20/10/2009 UNICAM - p. 2/55

Storia

▲ Dal latino automatus "che si muove da sé"▲ Macchine o dispositivi reali o ipoteticamente realizzabili, i quali siano in

grado di eseguire computazioni, ovvero di operare su oggetti simbolicisecondo regole precise di tipo logico matematico

Storia dei linguaggi regolari e degli automi

Noam Chomsky, 1928- linguista, nel 1957 definisce grammaticagenerativo-trasformazionale.

Stephen Cole Kleene, 1909-1994 matematico, nel 1956 studia i linguaggi regolarimediante automi

Mealy matematico nel 1955 autore della "‘macchina di mealy"’

Edward F. Moore, 1925- matematico e informatico, nel 1956 autore macchina di"‘moore"’

Rabin, Scott nel 1959 automi a stati finiti non deterministici

Page 3: Automi - Unicamcomputerscience.unicam.it/culmone/?download=automi.pdfIn questa sezione definiamo gli automi a stati finiti non deter ministici e deterministici. In questo contesto

20/10/2009 UNICAM - p. 3/55

Applicazioni

▲ compilatori ed interpreti: traduttori di linguaggi formali ed esecutori▲ reti logiche combinatorie: microprocessoti e circuiti logici▲ pattern matching: ricerca di parole▲ sistemi temporali: protocolli di comunicazione, sistemi real time▲ model checker: verifica di proprietà su modelli formali

Page 4: Automi - Unicamcomputerscience.unicam.it/culmone/?download=automi.pdfIn questa sezione definiamo gli automi a stati finiti non deter ministici e deterministici. In questo contesto

20/10/2009 UNICAM - p. 4/55

Concetto di automa

Un automa a stati finiti è un modello matematico di un sistema che puòassumere numero finito di stati, elaborare input discreti ed eventualmenteemettere un output.Ad esempio il sistema di apertura di un cancello mediante telecomando ad unpulsante è un esempio concreto di automa a stati finiti.▲ Se il cancello è chiuso e si preme il pulsante del telecomando, allora il

cancello si apre▲ Se il cancello è aperto e si preme il pulsante del telecomando, allora il

cancello si chiude

Page 5: Automi - Unicamcomputerscience.unicam.it/culmone/?download=automi.pdfIn questa sezione definiamo gli automi a stati finiti non deter ministici e deterministici. In questo contesto

20/10/2009 UNICAM - p. 5/55

Esempio complesso

Possiamo complicare l’esempio del cancello elettrico con l’introduzione dicellule fotoelettriche e di lampade che segnalano la chiusura e l’apertura.Il sistema si complica ma lo strumento che lo modella (automa) no.

Page 6: Automi - Unicamcomputerscience.unicam.it/culmone/?download=automi.pdfIn questa sezione definiamo gli automi a stati finiti non deter ministici e deterministici. In questo contesto

20/10/2009 UNICAM - p. 6/55

Modello matematico di Automa

In questa sezione definiamo gli automi a stati finiti non deterministici edeterministici.In questo contesto sono dei riconoscitori di stringhe di un certo linguaggio. Siha che tutti i linguaggi regolari, cioè quelli denotabili da espressioni regolari,possono essere accettati anche da un automa a stati finiti ed è vero anche ilviceversa.Dopo la definizione degli automi vedremo un algoritmo importante: lacostruzione dei sottoinsiemi per trasformare un automa non deterministico indeterministico.

Page 7: Automi - Unicamcomputerscience.unicam.it/culmone/?download=automi.pdfIn questa sezione definiamo gli automi a stati finiti non deter ministici e deterministici. In questo contesto

20/10/2009 UNICAM - p. 7/55

Automi non deterministici

Definiamo la classe degli automi finiti non deterministici NFA (dall’ingleseNon-deteriministic Finite Automata). Sia Σ un alfabeto finito.Un NFA su Σ è una tupla 〈S, Σ, δ, s0, F 〉 dove:▲ S è un insieme finito di stati▲ Σ è l’alfabeto dei simboli▲ s0 ∈ S è lo stato iniziale▲ F ⊆ S è l’insieme degli stati di accettazione o stati finali▲ δ : S × Σ −→ ℘(S) è una funzione che specifica per ogni stato s e per ogni

simbolo x di Σ le transizioni etichettate x dallo stato s ad un insieme, anchevuoto, di stati di destinazione. ℘(S) è un elemento di tutti i possibilisottoinsiemi di S (sottoinsieme delle parti).

Page 8: Automi - Unicamcomputerscience.unicam.it/culmone/?download=automi.pdfIn questa sezione definiamo gli automi a stati finiti non deter ministici e deterministici. In questo contesto

20/10/2009 UNICAM - p. 8/55

Rappresentazione grafica

Un NFA può essere rappresentato graficamente tramite un diagramma in cui icerchi sono gli stati, le frecce etichettate sono le transizioni, lo stato iniziale ècerchiato in grassetto e gli stati finali hanno una doppia cerchiatura. Ognifreccia può essere etichettata da un simbolo di Σ o da un insieme di simboli diΣ.

0 1 2 3

{a, b}

a b b

figura 1: un NFA

Page 9: Automi - Unicamcomputerscience.unicam.it/culmone/?download=automi.pdfIn questa sezione definiamo gli automi a stati finiti non deter ministici e deterministici. In questo contesto

20/10/2009 UNICAM - p. 9/55

Rappresentazione grafica

Significato Simbolo

ad ogni stato corrisponde un nodoq

stato inizialeq0

stato finalep

arco tra una coppia di nodip q

a

corrispondenti agli statip e q e arco conetichetta a ∈ Σ se δ(p, a) = q

Page 10: Automi - Unicamcomputerscience.unicam.it/culmone/?download=automi.pdfIn questa sezione definiamo gli automi a stati finiti non deter ministici e deterministici. In questo contesto

20/10/2009 UNICAM - p. 10/55

Rappresentazione tabellare

Sia M = 〈S, Σ, δ, s0, F 〉 un NFA dato da S = {0, 1, 2, 3}, Σ = {a, b}, F = {3} e lafunzione di transizione δ : S × Σ −→ S è data dalla tabella:

δ a b

0 0,1 0

1 2

2 3

3

Page 11: Automi - Unicamcomputerscience.unicam.it/culmone/?download=automi.pdfIn questa sezione definiamo gli automi a stati finiti non deter ministici e deterministici. In questo contesto

20/10/2009 UNICAM - p. 11/55

Caratteristica degli NFA

Gli automi non deterministici possono avere transizioni su stati diversi con lostesso simbolo. Nel nostro esempio si ha che δ(0, a) = {0, 1}, δ(0, b) = {0},δ(1, a) = {}, δ(1, b) = {2}, δ(2, a) = {}, δ(2, b) = {3} e δ(3, a) = δ(3, b) = {}.Un NFA può riconoscere le stringhe di un certo linguaggio. Per chiarire in qualemodo un NFA accetta una stringa definiamo la nozione di cammino etichettato

Page 12: Automi - Unicamcomputerscience.unicam.it/culmone/?download=automi.pdfIn questa sezione definiamo gli automi a stati finiti non deter ministici e deterministici. In questo contesto

20/10/2009 UNICAM - p. 12/55

Cammino etichettato

Sia N = 〈S, Σ, δ, s0, F 〉 un NFA. Un cammino etichettato di lunghezza k ≥ 0 suN è una sequenza

s0

x0→ s1

x1→ · · · sk−1

xk−1→ sk dove:

▲ s0 è lo stato iniziale▲ ∀i ∈ {0, 1, . . . , k − 1}. si+1 ∈ δ(si, xi)La stringa x0x1 · · ·xk−1 si chiama stringa associata al cammino ed è ingenerale una stringa di Σ∗. Se k = 0 allora il cammino è costituito solo dallostato iniziale e la stringa associata è la stringa vuota ǫ.

Page 13: Automi - Unicamcomputerscience.unicam.it/culmone/?download=automi.pdfIn questa sezione definiamo gli automi a stati finiti non deter ministici e deterministici. In questo contesto

20/10/2009 UNICAM - p. 13/55

Riconoscimento di stringhe

Sia N = 〈S, Σ, δ, s0, F 〉 un NFA. Una stringa α ∈ Σ∗ è accettata dall’automa N

se e solo se esiste un cammino etichettato s0

x0→ s1

x1→ · · · sk−1

xk−1→ sk su N tale

che α è la stringa associata al cammino e lo stato sk è uno stato finale (informule sk ∈ F ∧α = x0x1 · · ·xk−1). Se lo stato iniziale è anche di accettazioneallora anche la stringa vuota ǫ è accettata dall’automa.

0

2

1a

bc

a

b

a

figura 2: un NFA

Page 14: Automi - Unicamcomputerscience.unicam.it/culmone/?download=automi.pdfIn questa sezione definiamo gli automi a stati finiti non deter ministici e deterministici. In questo contesto

20/10/2009 UNICAM - p. 14/55

Linguaggio accettato

Sia N = 〈S, Σ, δ, s0, F 〉 un NFA. Il linguaggio accettato dall’automa è l’insieme

L(N) = {α ∈ Σ∗ | α è accettata da N}

Si consideri l’automa fi figura 1, possibili cammini etichettati validi per l’automasono:

0a→ 0

a→ 1

b→ 2

b→ 3

0b→ 0

a→ 1

b→ 2

b→ 3

Facendo altri esempi e considerando la struttura dell’automa è facileconvincersi che il linguaggio accettato è quello denotato da

(a|b)∗abb = {s abb | s ∈ {a, b}∗}

Page 15: Automi - Unicamcomputerscience.unicam.it/culmone/?download=automi.pdfIn questa sezione definiamo gli automi a stati finiti non deter ministici e deterministici. In questo contesto

20/10/2009 UNICAM - p. 15/55

Algoritmo di riconoscimento

La costruzione di un cammino etichettato per una data stringa può essere vistacome un algoritmo di riconoscimento di stringhe. A partite dalla stringa aba sitenta di costruire un cammino etichettato utilizzando dell’automa di figura 2.

0a→ 0

b→ 0

a→ 1

Procedendo con altre prove si può inferire che il linguaggio accettatodall’automa precedente è

(a|b)∗(a+|bc∗) = {s an | s ∈ {a, b}∗, n > 0} ∪ {s b cn | s ∈ {a, b}∗, n ≥ 0}

Page 16: Automi - Unicamcomputerscience.unicam.it/culmone/?download=automi.pdfIn questa sezione definiamo gli automi a stati finiti non deter ministici e deterministici. In questo contesto

20/10/2009 UNICAM - p. 16/55

Alternative

Ad una stessa stringa possono essere associati diversi cammini etichettatipossibilmente riconosciuti dall’automa.Ad esempio se si considera l’automa di figura 2 si ha che:

1. 0a→ 0

b→ 0

a→ 1

a→ 1

2. 0a→ 0

b→ 0

a→ 0

a→ 1

Alla strimga abaa si possono associare due cammini etichettati validi eambedue portano al riconoscimento della stringa abaa.

Page 17: Automi - Unicamcomputerscience.unicam.it/culmone/?download=automi.pdfIn questa sezione definiamo gli automi a stati finiti non deter ministici e deterministici. In questo contesto

20/10/2009 UNICAM - p. 17/55

Esempio di NFA, diagramma degli stati

Definiamo un automa A che accetta tutte e sole le stringhe che terminano con"01"

q0 q1 q2

{0, 1}

0 1

Cosa succede quando si elabora la stringa "00101"

q0 q0 q0 q0 q0 q0

q1⊕ q1 q1

q2⊕ q2∗

0 0 1 0 1

0 0

1

0

1

Page 18: Automi - Unicamcomputerscience.unicam.it/culmone/?download=automi.pdfIn questa sezione definiamo gli automi a stati finiti non deter ministici e deterministici. In questo contesto

20/10/2009 UNICAM - p. 18/55

Esempio di NFA: formalizzazione

Formalmente si ha che per A la tupla 〈S, Σ, δ, s0, F 〉 è definito come({q0, q1, q2}, {0, 1}, δ, q0, {q2}) dove δ è la funzione di transizione così definita:

0 1

q0 {q0, q1} {q0}

q1 ∅ {q2}

q2 ∅ ∅

Page 19: Automi - Unicamcomputerscience.unicam.it/culmone/?download=automi.pdfIn questa sezione definiamo gli automi a stati finiti non deter ministici e deterministici. In questo contesto

20/10/2009 UNICAM - p. 19/55

ǫ − NFA

Se tra i simboli di imput che un automa NFA accetta vi è anche ǫ allora taleautoma viene chiamato ǫ − NFA. In particolare si ha che :▲ Σǫ = Σ ∪ {ǫ}

▲ la funzione di transizione deve includere ǫ tra i possibili inputSi dimostra che dato un ǫ − NFA si può costruire un DFA che accetta lostesso linguaggio e viceversa. accetta

Page 20: Automi - Unicamcomputerscience.unicam.it/culmone/?download=automi.pdfIn questa sezione definiamo gli automi a stati finiti non deter ministici e deterministici. In questo contesto

20/10/2009 UNICAM - p. 20/55

Scenario

Espressioni regolari (RE), NFA e DFA sono legati da vincoli di equivalenzasecondo il seguente schema:

ǫ − NFA

NFA

RE

DFA

E’ possibile dimostrare tutte le 6 forme di equivalenza.

Page 21: Automi - Unicamcomputerscience.unicam.it/culmone/?download=automi.pdfIn questa sezione definiamo gli automi a stati finiti non deter ministici e deterministici. In questo contesto

20/10/2009 UNICAM - p. 21/55

Conversione di espressioni regolari inautomi

Teorema Ogni linguaggio definito da un’espressione regolare è riconosciuto daun automa a stati finiti.

L’automa che costruiremo ha le seguenti caratteristiche:1. un solo stato accettante2. nessun arco entrante nello stato iniziale3. nessun arco uscente dallo stato accettanteLa dimostrazione si svolge per induzione strutturale sulla definizione stessa diespressione regolare.

Page 22: Automi - Unicamcomputerscience.unicam.it/culmone/?download=automi.pdfIn questa sezione definiamo gli automi a stati finiti non deter ministici e deterministici. In questo contesto

20/10/2009 UNICAM - p. 22/55

Costruzione BASE

Utilizzando gli stessi identificatori per indicare le regole per la costruzione delleespressioni regolari B1, B2, B3 per le definizioni base e I1, I2, I3 per ledefinizioni induttive si ha che:

B1 Riconosce il linguaggio {ǫ}ǫ

B2 Riconosce il linguaggio ∅

B3 Riconosce il linguaggio {a}a

Page 23: Automi - Unicamcomputerscience.unicam.it/culmone/?download=automi.pdfIn questa sezione definiamo gli automi a stati finiti non deter ministici e deterministici. In questo contesto

20/10/2009 UNICAM - p. 23/55

Costruzione INDUZIONE

I1 Riconosce il linguaggio unione+

R

S

ǫ

ǫ

ǫ

ǫ

I2 Riconosce il linguaggio concate-nazione

R Sǫ

I3 Riconosce il linguaggio ∗ Rǫ ǫ

ǫ

ǫ

Page 24: Automi - Unicamcomputerscience.unicam.it/culmone/?download=automi.pdfIn questa sezione definiamo gli automi a stati finiti non deter ministici e deterministici. In questo contesto

20/10/2009 UNICAM - p. 24/55

Esempio di costruzione di un ǫ − NFA

Covertiamo l’espressione regolare E = (0 + 1)∗1(0 + 1) in un automa ǫ−NFA.L(E) = {10, 11, 010, 110, 1010, . . . }.▲ con I1 costruiamo il riconoscitore di (0 + 1)

▲ con I3 costruiamo il riconoscitore di (0 + 1)∗

▲ con I2 costruiamo il riconoscitore di (0 + 1)∗1

▲ con I2 e I1 costruiamo il riconoscitore di (0 + 1)∗1(0 + 1)Basta rimuovere le transizioni ǫ ridondanti per ottenere un valido riconoscitoredel linguaggio L(E).

Page 25: Automi - Unicamcomputerscience.unicam.it/culmone/?download=automi.pdfIn questa sezione definiamo gli automi a stati finiti non deter ministici e deterministici. In questo contesto

20/10/2009 UNICAM - p. 25/55

Riconoscitore di alfabeto morse

Proviamo a costruire un automa che riconosca un testo scritto in alfabetomorse. Associamo 0 a punto e 1 a linea, si ha quindi.

Lettere Lettere Numeri Punteggiatura

A 01 N 10 0 11111 . 010101

B 1000 O 111 1 01111 , 110011

C 1010 P 0110 2 00111 : 111000

D 100 Q 1101 3 00011 ? 001100

E 0 R 010 4 00001 = 10001

F 0010 S 000 5 00000 - 100001

G 110 T 1 6 10000 ( 10110

H 0000 U 001 7 11000 ) 101101

I 00 V 0001 8 11100 " 010010

J 0111 W 011 9 11110 ’ 011110

K 101 X 1001 / 10010

L 0100 Y 1011 @ 011010

M 11 Z 1100

Page 26: Automi - Unicamcomputerscience.unicam.it/culmone/?download=automi.pdfIn questa sezione definiamo gli automi a stati finiti non deter ministici e deterministici. In questo contesto

20/10/2009 UNICAM - p. 26/55

Espressione regolare per codifica morse

Per ogni codifica si può associare una espressione regolare:

EA = 01 EN = 10 E0 = 11111 E. = 010101

EB = 1000 EO = 000 E1 = 01111 E, = 110011

EC = 1010 EP = 0110 E2 = 001114 E: = 111000

ED = 100 EQ = 1101 E3 = 00011 E? = 001100

EE = 0 ER = 010 E4 = 00001 E= = 10001

EF = 0010 ES = 000 E5 = 00000 E− = 100001

EG = 110 ET = 1 E6 = 10000 E( = 10110

EH = 0000 EU = 001 E7 = 11000 E) = 101101

EI = 00 EV = 0001 E8 = 11100 E” = 010010

EJ = 0111 EW = 011 E9 = 11110 E′ = 011110

EK = 101 EX = 1001 E/ = 10010

EL = 0100 EY = 1011 E@ = 011010

EM = 11 EZ = 1100

Page 27: Automi - Unicamcomputerscience.unicam.it/culmone/?download=automi.pdfIn questa sezione definiamo gli automi a stati finiti non deter ministici e deterministici. In questo contesto

20/10/2009 UNICAM - p. 27/55

Automa ǫ − NFA per morse

Componendo le varie espressioni regolari associate ad ogni singola codifica siha che un testo in codifica morse è:

Emorse = (EA | EB | EC | ED | · · · | E/ | E@)∗

L’automa associato avrà la struttura:

EA

EB

. . .

E@

ǫ ǫ

ǫǫ

ǫ

ǫǫ

ǫ

ǫ

ǫ

Page 28: Automi - Unicamcomputerscience.unicam.it/culmone/?download=automi.pdfIn questa sezione definiamo gli automi a stati finiti non deter ministici e deterministici. In questo contesto

20/10/2009 UNICAM - p. 28/55

Automi Finiti Deterministici

Un automa finito deterministico (DFA) è una tupla 〈S, Σ, δ, s0, F 〉 dove:▲ S è un insieme finito di stati.▲ Σ è un alfabeto finito di simboli.▲ δ : (S × Σ) −→ S è una funzione di transizione tale che per ogni stato s ∈ S e

per ogni simbolo x ∈ Σ, δ(s, x) o non è definito (funzione parziale) oppure èuguale ad uno stato.

▲ s0 ∈ S è lo stato iniziale.▲ F ⊆ S è l’insieme degli stati finali.

Page 29: Automi - Unicamcomputerscience.unicam.it/culmone/?download=automi.pdfIn questa sezione definiamo gli automi a stati finiti non deter ministici e deterministici. In questo contesto

20/10/2009 UNICAM - p. 29/55

Esempio di DFA

Automa deterministico

0 1 2 3

b a

a b b

b

a

a

figura 3: un DFA

In un automa deterministico da ogni stato non escono mai due transizionietichettate con lo stesso simbolo.Questo automa DFA riconosce le stesse stringhe del primo NFA.

Page 30: Automi - Unicamcomputerscience.unicam.it/culmone/?download=automi.pdfIn questa sezione definiamo gli automi a stati finiti non deter ministici e deterministici. In questo contesto

20/10/2009 UNICAM - p. 30/55

Rappresentazione tabellare

Sia M = 〈S, Σ, δ, s0, F 〉 un NFA dato da S = {0, 1, 2, 3}, Σ = {a, b}, F = {3} e lafunzione di transizione δ : S × Σ −→ S è data dalla tabella:

δ a b

0 1 0

1 1 2

2 1 3

3 1 0

Page 31: Automi - Unicamcomputerscience.unicam.it/culmone/?download=automi.pdfIn questa sezione definiamo gli automi a stati finiti non deter ministici e deterministici. In questo contesto

20/10/2009 UNICAM - p. 31/55

Automi a stati infiniti

Si consideri il linguaggio L = {anbn | n > 0}. Appartengono al linguaggioL = {ab, aabb, aaabbb, aaaabbbb, . . .}. L’automa che riconosce questo linguaggiopotrebbe essere:

00 10 20 30 .....

11 21 31 .....

22 32 .....

33 .....

a

bb

a

b

bb

a

b

b

bb

Page 32: Automi - Unicamcomputerscience.unicam.it/culmone/?download=automi.pdfIn questa sezione definiamo gli automi a stati finiti non deter ministici e deterministici. In questo contesto

20/10/2009 UNICAM - p. 32/55

Automi a stati infiniti

Nel caso precedente ogni stato è identificato da una coppia di interi nm, ilprimo numero indica quante a sono state lette per arrivare allo stato in oggettoe il secondo numero indica quante b. Ad esempio lo stato 32 indica che sonostate lette 3 a e 2 b. Si può facilemente osservare che se le stringhe di inputnon sono finite occorrono infiniti stati per "contare" le a e le b.

Gli automi a stati finiti non sono in grado di gestire vincoli numerici sulleoccorrenze di sottostringhe delle stringhe di input.

L = {anbm | n > 0, n = 3m}K = {anbc2n | n > 0}F = {anbmck | n > m > k, k > 0}

sono linguaggi che non hanno un DFA/NFA che ne rinosce gli elementi.

Page 33: Automi - Unicamcomputerscience.unicam.it/culmone/?download=automi.pdfIn questa sezione definiamo gli automi a stati finiti non deter ministici e deterministici. In questo contesto

20/10/2009 UNICAM - p. 33/55

NFA vs DFA

▲ Gli automi deterministici e non deterministici hanno lo stesso potereespressivo. E’ possibile produrre da un NFA che riconosce un linguaggio unDFA equivalente e vicevera.

▲ Gli automi NFA sono più compatti e più semplice da scrivere▲ Gli automi DFA producono se esiste un solo cammino etichettato associata

ad una stringa riconosciuta

Page 34: Automi - Unicamcomputerscience.unicam.it/culmone/?download=automi.pdfIn questa sezione definiamo gli automi a stati finiti non deter ministici e deterministici. In questo contesto

20/10/2009 UNICAM - p. 34/55

Pensare il non determinismo

NFA e DFA sono equivalenti ma una NFA M può essere vista come:▲ Ogni volta che vi sono scelte multiple in una transizione M si clona in tante

macchine uguali a M, una per ogni scelta possibile e queste proseguono lacompultazione in parallelo

▲ In ogni passo M fa tutte le scelte possibili. Lo stato globale raggiunto è ilsottoinsieme degli stati ragiungibili legendo un simbolo e compiendo tutte letransizioni ammesse.

Page 35: Automi - Unicamcomputerscience.unicam.it/culmone/?download=automi.pdfIn questa sezione definiamo gli automi a stati finiti non deter ministici e deterministici. In questo contesto

20/10/2009 UNICAM - p. 35/55

Riconoscimento tramite DFA

Consideriamo l’automa disegnato in precedenza. Esso è un automadeterministico che accetta lo stesso linguaggio dell’automa non deterministicoassociato cioè (a|b)∗abb. L’unico cammino di accettazione per la stringa aabb è

0a→ 1

a→ 1

b→ 2

b→ 3

Il cammino di accettazione per la stringa abaabb è:

0a→ 1

b→ 2

a→ 1

a→ 1

b→ 2

b→ 3

Page 36: Automi - Unicamcomputerscience.unicam.it/culmone/?download=automi.pdfIn questa sezione definiamo gli automi a stati finiti non deter ministici e deterministici. In questo contesto

20/10/2009 UNICAM - p. 36/55

Costruzione di DFA da un NFA

Utlinizziamo un algoritmo detto costruzione per sottoinsiemi.

Input Un NFA N = 〈S, Σ, δ, s0, F 〉

Output Un DFA D = 〈S′, Σ, δ′, s′0, F′〉 equivalente a N e tale che S′ ⊆ ℘(S).

Metodo Costruiamo la funzione di transizione δ′ simulando, attraverso insiemi distati di N , i comportamenti di N “in parallelo” dovuti al non determinismo.

Page 37: Automi - Unicamcomputerscience.unicam.it/culmone/?download=automi.pdfIn questa sezione definiamo gli automi a stati finiti non deter ministici e deterministici. In questo contesto

20/10/2009 UNICAM - p. 37/55

Algoritmo

▲ L’algoritmo per il calcolo di un punto fisso▲ Terminare sempre in un numero finito di passi.▲ Si parte da S′ contentente un solo stato iniziale.▲ Ad ogni passo selezioniamo uno stato non visitato da S′ e ne calcoliamo le

transizioni uscenti aggiungendo a S′.▲ L’algoritmo termina poichè il numero degli stati è finito (il numero di elementi

di ℘(S)) non ci saranno più stati non visitati da considerare.

Page 38: Automi - Unicamcomputerscience.unicam.it/culmone/?download=automi.pdfIn questa sezione definiamo gli automi a stati finiti non deter ministici e deterministici. In questo contesto

20/10/2009 UNICAM - p. 38/55

Algoritmo

▲ Operazioni utilizzate: δ : (℘(S) × Σ) −→ ℘(S) tale che δ(T, x) =⋃

s∈T δ(s, x).In pratica si mettono in uno stesso insieme tutti gli stati raggiungibili con unostesso simbolo x a partire da uno stato qualunque di T .

Per calcolare la nuova funzione di transizione viene applicata la funzione ditransizione δ per ogni input a partire da tutti gli stati che sono cumulati in T .

Page 39: Automi - Unicamcomputerscience.unicam.it/culmone/?download=automi.pdfIn questa sezione definiamo gli automi a stati finiti non deter ministici e deterministici. In questo contesto

20/10/2009 UNICAM - p. 39/55

Algoritmo

Algoritmo: all’inizio {s0} è l’unico stato di S’ e non è marcato;while c’è uno stato non marcato T in S’ do begin

marca T;for each simbolo di input x ∈ Σ do begin

U := δ(T, x);if U non è in S’ then

aggiungi U , non marcato, a S’;δ′(T, x) := U ;

end ;end ;

Page 40: Automi - Unicamcomputerscience.unicam.it/culmone/?download=automi.pdfIn questa sezione definiamo gli automi a stati finiti non deter ministici e deterministici. In questo contesto

20/10/2009 UNICAM - p. 40/55

Da NFA a DFA esempio 1

Consideriamo l’NFA N seguente.

0 1 2 3

{a, b}

a b b

Il linguaggio accettato è (a|b)∗abb. Applichiamo l’algoritmo mostrato inprecedenza per costruire il DFA D equivalente.

Page 41: Automi - Unicamcomputerscience.unicam.it/culmone/?download=automi.pdfIn questa sezione definiamo gli automi a stati finiti non deter ministici e deterministici. In questo contesto

20/10/2009 UNICAM - p. 41/55

Da NFA a DFA esempio 2

Lo stato iniziale di D è 0 come lo è per N . Per distinguerlo dagli stati di N

indichiamo gli stati di D con una lettera, ovvero S′ = {A}.Alla prima iterazione selezioniamo l’unico stato A di S′ e lo marchiamo.Calcoliamo:▲ move(A, a)) = {0, 1} Chiamiamo questo nuovo stato B = {0, 1}

▲ move(A, b)) = {0} = A

La rappresentazione tabellare di degli stati di D sino a questo punto è:

Stato a b Marcato

A = {0} B A Si

B = {0, 1} No

Page 42: Automi - Unicamcomputerscience.unicam.it/culmone/?download=automi.pdfIn questa sezione definiamo gli automi a stati finiti non deter ministici e deterministici. In questo contesto

20/10/2009 UNICAM - p. 42/55

Da NFA a DFA esempio 3

Procediamo scegliendo uno stato non marcato. Anche questa volta la sceltaobbligata è B e calcoliamo:▲ move(B, a)) = {0, 1} = B

▲ move(B, b)) = {0, 2} Chiamiamo questo nuovo stato C = {0, 2}La tabella degli stati parziale di D è:

Stato a b Marcato

A = {0} B A Si

B = {0, 1} B C Si

C = {0, 2} No

Page 43: Automi - Unicamcomputerscience.unicam.it/culmone/?download=automi.pdfIn questa sezione definiamo gli automi a stati finiti non deter ministici e deterministici. In questo contesto

20/10/2009 UNICAM - p. 43/55

Da NFA a DFA esempio 4

Continuando ad applicare l’algoritmo si arriva a generare un ulteriore statoD = {0, 3} dopodichè non si generano più nuovi stati e l’algoritmo termina. Latabella finale è la seguente:

Stato a b Marcato

A = {0} B A Si

B = {0, 1} B C Si

C = {0, 2} B D Si

D = {0, 3} B A Si

Page 44: Automi - Unicamcomputerscience.unicam.it/culmone/?download=automi.pdfIn questa sezione definiamo gli automi a stati finiti non deter ministici e deterministici. In questo contesto

20/10/2009 UNICAM - p. 44/55

Da NFA a DFA esempio 5

L’automa creato è il seguente:

A B C D

b a

a b b

b

a

a

Ovvero l’automa già mostrato in figura 3.

Page 45: Automi - Unicamcomputerscience.unicam.it/culmone/?download=automi.pdfIn questa sezione definiamo gli automi a stati finiti non deter ministici e deterministici. In questo contesto

20/10/2009 UNICAM - p. 45/55

Caso sfavorevole

Definiamo il seguente NFA

q0 q1 q2 . . . qn

0, 1

1 0, 1 0, 1 0, 1

Accetta le stringhe che hanno un ’1’ a n posizioni dalla fine. L’automa devericordare tutti gli n simboli prima della fine. Vi sono 2n combinazioni diverse dipossibili stringhe. Bisogna ricordarsele tutte in modo che quando arriva la finesappiamo decidere se accettare la stringa. Ci vogliono 2n stati in un DFA.

Page 46: Automi - Unicamcomputerscience.unicam.it/culmone/?download=automi.pdfIn questa sezione definiamo gli automi a stati finiti non deter ministici e deterministici. In questo contesto

20/10/2009 UNICAM - p. 46/55

Minimizzare un DFA

Dato un DFA D è possibile ottenere un altro DFA D′ che riconosce lo stessolinguaggio di D ma che possiede un numero di stati inferiore o al più uguale(ne qual caso non è possibile minimizzare D poichè è già "‘minimo"’). Esiste unalgoritmo che opera in questa direzione ma che non mostreremo. Comunque èfacile rendersi conto che dato un D è possibile fare il viceversa ovvero produrreun DFA D′ che riconosce lo stesso linguaggio ma che ha un numero di statisuperiore.

Page 47: Automi - Unicamcomputerscience.unicam.it/culmone/?download=automi.pdfIn questa sezione definiamo gli automi a stati finiti non deter ministici e deterministici. In questo contesto

20/10/2009 UNICAM - p. 47/55

DFA equivalenti

C E

A B D

b

a

a

b

b

a

a

bb

aÈ facile convincersi che anche questo automa accetta il linguaggio (a|b)∗abb eche tale linguaggio è accettato anche dall’automa già mostrato in figura 3.

Page 48: Automi - Unicamcomputerscience.unicam.it/culmone/?download=automi.pdfIn questa sezione definiamo gli automi a stati finiti non deter ministici e deterministici. In questo contesto

20/10/2009 UNICAM - p. 48/55

Progettare automi

Le specifiche per la progettazione di un automa possono essere date in:▲ con un’espressione regolare (modo formale)▲ con un’espressione su insiemi (modo formale)▲ con una descrizione a parole (modo non formale)I passi da seguire sono i seguenti:1. capire esattamente quale linguaggio si vuole descrivere2. scrivere alcune stringhe del linguaggio, magari i casi limite (la più piccola

stringa, la più uniforme, ecc)3. utilizzando gli strumenti di analisi che si posseggono per ridurre il problema

a istanze di ciò che si conosce in generale.

Page 49: Automi - Unicamcomputerscience.unicam.it/culmone/?download=automi.pdfIn questa sezione definiamo gli automi a stati finiti non deter ministici e deterministici. In questo contesto

20/10/2009 UNICAM - p. 49/55

Esempio

Esercizio A0 Costruire un automa che riconosca le stringhe composte da 0 e 1alternati che iniziano con 1 e terminano con 0. (definizione ambigua?)

lo stesso esercizio può essere formalizzato come

Esercizio A1 Costruire un automa che riconosca il linguaggio così definito

L = {1(01)n0 | n ≥ 0} ∪ {1(10)n0 | n ≥ 0}

oppure ancora

Esercizio A2 Costruire un automa che riconosca il linguaggio definito dallaseguente espressine regolare 1(01|10)∗0.

Page 50: Automi - Unicamcomputerscience.unicam.it/culmone/?download=automi.pdfIn questa sezione definiamo gli automi a stati finiti non deter ministici e deterministici. In questo contesto

20/10/2009 UNICAM - p. 50/55

Come procedere 1

Nell’esempio precedente la formulazione A1 potrebbe essere ambigua.Sappiamo che se un linguaggio è descrivibile con un’espressione regolareallora è facile ed automatico produrre l’automa associato che riconosce lestringhe del linguaggio. Prima cosa da fare è tentare di ridefinire il problema intermini che possano rendere più agevole la soluzione.

Se l’esercizio è posto nella prima forma ridefinirlo nella seconda e meglio nellaterza forma. Quindi effettuare delle prove con delle istanza (stringhepossibilmente marginali) per verificare l’equivalenza delle due definizioni.

Page 51: Automi - Unicamcomputerscience.unicam.it/culmone/?download=automi.pdfIn questa sezione definiamo gli automi a stati finiti non deter ministici e deterministici. In questo contesto

20/10/2009 UNICAM - p. 51/55

Come procedere 2

Se non si è riusciti a riusciti a ridurre in forma di espressione regolare allora seespresso a parole provare a descrivere il linguaggi in forma rigorosa.

Esercizio B0 Costruire un automa che accetti tutte e sole le stringhe di {0, 1}∗

fanno seguire un numero consecutivo di 0 dal doppio numero di 1.

Esercizio B1 Costruire un automa che accetti le stringhe L = {0n12n | n > 0}.

Page 52: Automi - Unicamcomputerscience.unicam.it/culmone/?download=automi.pdfIn questa sezione definiamo gli automi a stati finiti non deter ministici e deterministici. In questo contesto

20/10/2009 UNICAM - p. 52/55

Come procedere 3

Vi sono esempi che non sono facilmente esplicitabili in forma rigorosa.

Esercizio C0 Costruire un automa che accetti tutte e sole le stringhe di {0, 1}∗

che hanno un numero pari di occorrenze del simbolo 1

Esercizio D0 Costruire un automa che accetti tutte e sole le stringhe di {0, 1}∗

che non contengono due 1 consecutivi

Page 53: Automi - Unicamcomputerscience.unicam.it/culmone/?download=automi.pdfIn questa sezione definiamo gli automi a stati finiti non deter ministici e deterministici. In questo contesto

20/10/2009 UNICAM - p. 53/55

Come procedere 4

Vi sono altri casi che si identificano caratteristiche che non permettono diessere classificati come linguaggi regolari.

Esercizio E0 Costruire un automa che accetta tutte e sole le stringhe di {0, 1}∗

che contengano un numero doppio di 1 rispetto al numero di 0

Esercizio F0 Costruire un automa che accetta stringhe del seguente linguaggio

L = {anbm | m > 0, k > 0, n = m ∗ k}

Page 54: Automi - Unicamcomputerscience.unicam.it/culmone/?download=automi.pdfIn questa sezione definiamo gli automi a stati finiti non deter ministici e deterministici. In questo contesto

20/10/2009 UNICAM - p. 54/55

Esercizi

Esercizio E1 Definire un automa che accetta tutte e sole stringhe sull’alfabeto{0, 1} che contengano almeno una sottostringa formata da 5 ’1’ consecutiviquindi uno ’0’ o ’1’ seguito da ’0 oppure 5 ’0’ consecutivi quindi da ’0’ o’1’seguitoda ’1’.

Esercizio E2 Esprimere il linguaggio definito in E1 mediante un’espressioneregolare e una espressione su insiemi.

Page 55: Automi - Unicamcomputerscience.unicam.it/culmone/?download=automi.pdfIn questa sezione definiamo gli automi a stati finiti non deter ministici e deterministici. In questo contesto

20/10/2009 UNICAM - p. 55/55

Esempio da NFA a DFA

Data l’espressione regolare E = 1(0|1)∗0 che definisce il linguaggioL(E) = {10, 100, 110, 1010, 1100, . . . }. Qui di seguito sono definiti l’automa NFAe DFA che accettano L(E)

〈{q0, q1, q2}, {0, 1}, δ, q0, {q2}〉

δ 0 1

q0 q1

q1 q1, q2 q1

q2

〈{A, B, C}, {0, 1}, δ′, A, {C}〉

δ′ 0 1

A = {q0} B

B = {q1} C B

C = {q1, q2} C B