Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Automi nondeterministici
Automi a Pila
Informatica e Computazione
Automi
Marco Maratea
logo.aiia.png
logoUnige.png
siteLogo.png
1/54
M. Maratea Automi
Automi a Stati Finiti
Automi nondeterministici
Automi a Pila
Calcolo nel senso che, data una stringa, possiamo sempre dire
se è accettata o no. (invece, ad esempio non esistono alberi di
derivazione per stringhe non accettate da grammatiche.)
2/54
M. Maratea Automi
Automi a Stati Finiti
Automi nondeterministici
Automi a Pila
Outline
2 Automi nondeterministici
3 Automi a Pila
logo.aiia.png
logoUnige.png
siteLogo.png
3/54
M. Maratea Automi
Automi a Stati Finiti
Automi nondeterministici
Automi a Pila
Outline
2 Automi nondeterministici
3 Automi a Pila
logo.aiia.png
logoUnige.png
siteLogo.png
4/54
M. Maratea Automi
Automi a Stati Finiti
Automi nondeterministici
Automi a Pila
M. Maratea Automi
Automi a Stati Finiti
Automi nondeterministici
Automi a Pila
M. Maratea Automi
Automi a Stati Finiti
Automi nondeterministici
Automi a Pila
Example
Solitamente le regole di transizione si rappresentato tramite
una matrice di transizione:
7/54
M. Maratea Automi
Automi a Stati Finiti
Automi nondeterministici
Automi a Pila
M. Maratea Automi
Automi a Stati Finiti
Automi nondeterministici
Automi a Pila
M. Maratea Automi
Automi a Stati Finiti
Automi nondeterministici
Automi a Pila
0
1 0
q1 q2 q3
0, 1
logo.aiia.png
logoUnige.png
siteLogo.png
10/54
M. Maratea Automi
Automi a Stati Finiti
Automi nondeterministici
Automi a Pila
X = {s ∈ Σ∗ |s = si 1(00)n , n ≥ 0, si ∈ Σ∗ } = L(A1 )
logo.aiia.png
logoUnige.png
siteLogo.png
ovvero A1 riconosce X . 11/54
M. Maratea Automi
Automi a Stati Finiti
Automi nondeterministici
Automi a Pila
Configurazione
Sia A una automa a stati finiti, una configurazione di A è un
elemento (uqv ), dove q ∈ Q è uno stato, u ∈ Σ, e v ∈ Σ∗ .
Una configurazione è:
• Iniziale se q = q0 e u = .
• Intermedia se u 6= e v 6= .
• Di accettazione, o finale, se q ∈ F e v = .
logo.aiia.png
logoUnige.png
siteLogo.png
12/54
M. Maratea Automi
Automi a Stati Finiti
Automi nondeterministici
Automi a Pila
13/54
M. Maratea Automi
Automi a Stati Finiti
Automi nondeterministici
Automi a Pila
Configurazioni: Esempio
Example
Si consideri l’automa precedente, e supponiamo che sia data in
ingresso la stringa 0101.
14/54
M. Maratea Automi
Automi a Stati Finiti
Automi nondeterministici
Automi a Pila
Computazione
Una computazione di s in A è una sequenza di passi di
computazione (`∗ ) tra configurazioni c1 . . . cm (con c1
configurazione iniziale e cm configurazione finale), tale che
esiste un q ∈ F e c1 = (q0 s) `∗A (sm q) = cm , e per ogni j,
1 < j ≤ m, cj−1 `A cj .
15/54
M. Maratea Automi
Automi a Stati Finiti
Automi nondeterministici
Automi a Pila
M. Maratea Automi
Automi a Stati Finiti
Automi nondeterministici
Automi a Pila
M. Maratea Automi
Automi a Stati Finiti
Automi nondeterministici
Automi a Pila
Example
Consideriamo la stringa 1101 e verifichiamo che appartiene al
linguaggio L(GA1 ) = L(A1 ).
1101 ← 110q3 (da 3.) ← 11q2 (da 2.) ← 1q2 (da 2.) ← q1
(da 1.)
18/54
M. Maratea Automi
Automi a Stati Finiti
Automi nondeterministici
Automi a Pila
Outline
2 Automi nondeterministici
3 Automi a Pila
logo.aiia.png
logoUnige.png
siteLogo.png
19/54
M. Maratea Automi
Automi a Stati Finiti
Automi nondeterministici
Automi a Pila
logo.aiia.png
logoUnige.png
siteLogo.png
20/54
M. Maratea Automi
Automi a Stati Finiti
Automi nondeterministici
Automi a Pila
Dal punto di vista della computazione, nel caso che l’AFN sia in
uno stato dal quale partono due archi etichettati dallo stesso
simbolo, che corrisponde alla parte di stringa letta attualmente,
l’automa segue entrambi i passi di computazione in parallelo.
Se durante la computazione si incontra uno stato cha ha un
arco uscente etichettato con , allora l’automa transita senza
leggere l’input.
logo.aiia.png
logoUnige.png
siteLogo.png
21/54
M. Maratea Automi
Automi a Stati Finiti
Automi nondeterministici
Automi a Pila
AFN: Definizione
Definizione
Un AFN è una 5-upla hQ, Σ, δ, q0 , F i dove
• Q è l’insieme finito non vuoto degli stati;
• Σ è un alfabeto finito non vuoto;
• δ : Q × (Σ ∪ {}) → Q p è la funzione di transizione;
• q0 ∈ Q è lo stato iniziale;
• F ⊆ Q è l’insieme degli stati di accettazione.
M. Maratea Automi
Automi a Stati Finiti
Automi nondeterministici
Automi a Pila
Example
Sia N1 = hQ, Σ, δ, q0 , F i un AFN con:
• Q = {q1 , q2 , q3 , q4 };
• Σ = {0, 1};
• δ è definita tramite la seguente matrice di transizione:
0 1
q1 {q1 } {q1 , q2 } ∅
q2 {q3 } ∅ {q3 }
q3 ∅ {q4 } ∅
q4 {q4 } {q4 } ∅
• q1 ∈ Q è lo stato iniziale;
• F = {q4 }. logo.aiia.png
logoUnige.png
siteLogo.png
23/54
M. Maratea Automi
Automi a Stati Finiti
Automi nondeterministici
Automi a Pila
0, 1
0, 1
1 0, 1
q1 q2 q3 q4
logo.aiia.png
logoUnige.png
siteLogo.png
24/54
M. Maratea Automi
Automi a Stati Finiti
Automi nondeterministici
Automi a Pila
logo.aiia.png
logoUnige.png
siteLogo.png
25/54
M. Maratea Automi
Automi a Stati Finiti
Automi nondeterministici
Automi a Pila
AFN: Configurazione
Configurazioni in AFN
Sia N un AFN. Similmente agli automi a stati finiti
deterministici, una configurazione di N è un elemento (uqv )
come definito in precedenza per gli automi deterministici.
∈ δ(qlogoUnige.png
Ciò che cambia è che ora la prima condizione è q2logo.aiia.png 1 , u2 ) siteLogo.png
invece che q2 = δ(q1 , u2 ), dato che δ(q1 , u2 ) è un insieme. 26/54
M. Maratea Automi
Automi a Stati Finiti
Automi nondeterministici
Automi a Pila
Example
Si consideri l’AFN N1 precedente, e supponiamo che sia data
in ingresso la stringa 0101. Alcune delle configurazione di N1
sono {(q1 0101), (0q1 101), (1q2 01), (0q3 1), (1q4 )}.
M. Maratea Automi
Automi a Stati Finiti
Automi nondeterministici
Automi a Pila
AFN: Computazione
Computazione
Una computazione di s in N è una sequenza di passi di
computazione tra configurazioni c1 (iniziale) . . . cm (finale), tale
che esiste un q ∈ F e c1 = (q0 s) `∗N (uq) = cm , e per ogni j,
1 < j ≤ m, cj−1 `N cj , u ∈ sn ∪ {}.
28/54
M. Maratea Automi
Automi a Stati Finiti
Automi nondeterministici
Automi a Pila
Linguaggio accettato
Sia N = (Q, Σ, δ, q0 , F ) un AFN a stati finiti nondeterministico,
e sia s = s1 s2 . . . sn ∈ Σ∗ .
logo.aiia.png
logoUnige.png
siteLogo.png
29/54
M. Maratea Automi
Automi a Stati Finiti
Automi nondeterministici
Automi a Pila
Teorema
Per ogni automa nondeterministico esiste un automa
deterministico ad esso equivalente.
30/54
M. Maratea Automi
Automi a Stati Finiti
Automi nondeterministici
Automi a Pila
Example
Sia VT = L ∪ D, con
• L = {a, . . . , z, A, . . . , Z }, e
• D = {0, 1, . . . , 9, −, +, . . . }.
L’espressione regolare l + d ∗ , l ∈ L, d ∈ VT , definisce il
linguaggio degli identificatori di linguaggi di programmazione
come C o Pascal. logo.aiia.png
logoUnige.png
siteLogo.png
31/54
M. Maratea Automi
Automi a Stati Finiti
Automi nondeterministici
Automi a Pila
logo.aiia.png
logoUnige.png
siteLogo.png
32/54
M. Maratea Automi
Automi a Stati Finiti
Automi nondeterministici
Automi a Pila
Outline
2 Automi nondeterministici
3 Automi a Pila
logo.aiia.png
logoUnige.png
siteLogo.png
33/54
M. Maratea Automi
Automi a Stati Finiti
Automi nondeterministici
Automi a Pila
34/54
M. Maratea Automi
Automi a Stati Finiti
Automi nondeterministici
Automi a Pila
Ln = {0n 1n | n > 0}
non può essere riconosciuto da un automa a stati finiti, ma può
essere riconosciuto da un automa a pila, perchè può
memorizzare nella pila il numero di volte che ha letto il simbolo
0 prima di iniziare a leggere i simboli 1. logo.aiia.png
logoUnige.png
siteLogo.png
35/54
M. Maratea Automi
Automi a Stati Finiti
Automi nondeterministici
Automi a Pila
36/54
M. Maratea Automi
Automi a Stati Finiti
Automi nondeterministici
Automi a Pila
Automi a pila
M. Maratea Automi
Automi a Stati Finiti
Automi nondeterministici
Automi a Pila
M. Maratea Automi
Automi a Stati Finiti
Automi nondeterministici
Automi a Pila
(q2 , c) ∈ δ(q1 , a, b)
cioè:
• se un automa è nello stato q1 con input a, e b è in cima
alla pila, allora l’automa
• si muove nello stato q2 leggendo a e sostituendo b con c
sulla pila.
39/54
M. Maratea Automi
Automi a Stati Finiti
Automi nondeterministici
Automi a Pila
Casi particolari
Sia a, che b, che c possono assumere il valore .
M. Maratea Automi
Automi a Stati Finiti
Automi nondeterministici
Automi a Pila
transizione e del risultato (si veda spiegazione tra tre slides). 41/54
M. Maratea Automi
Automi a Stati Finiti
Automi nondeterministici
Automi a Pila
Input 0 1
Pila 0 $ 0 $ 0 $
q1 (q2 , $)
q2 (q2 , 0) (q3 , )
q3 (q3 , ) (q4 , )
q4
42/54
M. Maratea Automi
Automi a Stati Finiti
Automi nondeterministici
Automi a Pila
0, → 0 1, 0 →
, → $ 1, 0 → , $ →
q1 q2 q3 q4
logo.aiia.png
logoUnige.png
siteLogo.png
43/54
M. Maratea Automi
Automi a Stati Finiti
Automi nondeterministici
Automi a Pila
logo.aiia.png
logoUnige.png
siteLogo.png
45/54
M. Maratea Automi
Automi a Stati Finiti
Automi nondeterministici
Automi a Pila
AP: Computazione
Sia dato una automa a pila AP che accetta una stringa
s = s1 . . . sn .
Passo di computazione
Un passo di computazione di s è una transizione fra due
configurazioni ci e cj dell’automa.
Computazione
Una computazione di s in AP è una sequenza di passi di
computazione tale che da una configurazione iniziale si
raggiunge una configurazione finale, ovvero esiste un q ∈ F e
(q0 s, ) `∗AP (uq, ), u ∈ sn ∪ {}.
logo.aiia.png
logoUnige.png
siteLogo.png
`∗AP è la chiusura riflessiva e transitiva di `AP .
46/54
M. Maratea Automi
Automi a Stati Finiti
Automi nondeterministici
Automi a Pila
Example
Si consideri AP1 , e supponiamo che sia data in ingresso la
stringa 0011.
logo.aiia.png
logoUnige.png
siteLogo.png
47/54
M. Maratea Automi
Automi a Stati Finiti
Automi nondeterministici
Automi a Pila
Example
Si consideri AP1 , e supponiamo che sia data in ingresso la
stringa 00111, che non dovrebbe essere riconosciuta.
48/54
M. Maratea Automi
Automi a Stati Finiti
Automi nondeterministici
Automi a Pila
49/54
M. Maratea Automi
Automi a Stati Finiti
Automi nondeterministici
Automi a Pila
Linguaggio accettato
Sia AP un automa a pila, e sia s = s1 s2 . . . sn ∈ Σ∗ .
u ∈ sn ∪ {}.
50/54
M. Maratea Automi
Automi a Stati Finiti
Automi nondeterministici
Automi a Pila
Lemma 2.
Se un automa a pila riconosce un linguaggio, allora questo
logo.aiia.png è siteLogo.png
logoUnige.png
noncontestuale. 51/54
M. Maratea Automi
Automi a Stati Finiti
Automi nondeterministici
Automi a Pila
M. Maratea Automi
Automi a Stati Finiti
Automi nondeterministici
Automi a Pila
AP3 = h{q0 , q1 , q2 }, {if, fi, do, od, (, )}, {I, D, P, $}, δ, q0 , {q2 }i
Vediamo la proiezione di δ sui soli ingressi do, od, e simboli della pila
D e $:
Input do od
Pila D $ D $ D $
q0 (q1 , $ )
q1 (q1 , D) (q1 , ) (q2 , )
q2
M. Maratea Automi
Automi a Stati Finiti
Automi nondeterministici
Automi a Pila
54/54
M. Maratea Automi