2 aprile 2009
N. Fanizzi (LdP)
2 aprile 2009
1 / 30
Automi a Stati Finiti Rappresentazione di FSA Funzione di transizione per stringhe Classe dei Linguaggi a Stati Finiti Chiusura rispetto al complemento Automi non Deterministici Linguaggio accettato da NDA Linguaggi Non Deterministici Esempio Equivalenza tra FSA e NDA Esercizi Esercizio 1. Esercizio 2. Esercizio 3.
N. Fanizzi (LdP)
2 aprile 2009
2 / 30
N. Fanizzi (LdP)
2 aprile 2009
3 / 30
Osservazione. una funzione parziale: potrebbe essere indenita per qualche coppia (q, x) Per ottenere una funzione totale si considera uno stato aggiuntivo (stato pozzo qP F ) dal quale non si possano raggiungere stati nali
N. Fanizzi (LdP)
2 aprile 2009
4 / 30
Control Unit
q0 q1 q2 q3 q4 q5
schema di automa a stati niti
N. Fanizzi (LdP)
2 aprile 2009
5 / 30
Rappresentazione di FSA
Rappresentazione I
Un FSA M = (Q, , q0 , F ) rappresentabile mediante: un grafo detto diagramma di transizione in cui: ogni stato q Q rappresentato da un cerchio con etichetta q lo stato iniziale q0 ha un arco entrante libero per ogni q Q ed ogni x X , se q = (q, x) allora esiste un arco da q in q etichettato con x
N. Fanizzi (LdP)
2 aprile 2009
6 / 30
Rappresentazione di FSA
Rappresentazione II
una matrice tavola di transizione con: sulle righe gli stati qi Q, i = 1, . . . , m sulle colonne i simboli dellalfabeto dingresso xj X , j = 1, . . . , n in ogni casella: qi = (qi , xj ) x1 x2 1 2 q0 q0 q0 1 2 q1 q1 q1 . . . . . . . . . 1 2 qm qm qm Nota stato iniziale; stati nali
N. Fanizzi (LdP) Automi a Stati Finiti 2 aprile 2009 7 / 30
.. .
xn n q0 n q1 . . .
n qm
Rappresentazione di FSA
Esempio.
X = D = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} M = (Q, , q0 , F ) FSA Q = {q0 , q1 , q2 } q0 = classe resto 0 q1 = classe resto 1 q2 = classe resto 2 F = {q0 }
N. Fanizzi (LdP)
2 aprile 2009
8 / 30
q Q, w X : (q, w) =
Per lautoma dellesempio precedente: (q0 , 1234) = q1 F 1234/ 3 = 411 + 1 = 3 137 + 1 (q , 7290) = q F 7290/ 3 = 2430 + 0 = 3 810 + 0 0 0
N. Fanizzi (LdP) Automi a Stati Finiti 2 aprile 2009 9 / 30
N. Fanizzi (LdP)
2 aprile 2009
10 / 30
Denizione (linguaggio a stati niti deterministico) Un linguaggio L su un alfabeto X un linguaggio a stati niti deterministico (FSL) sse esiste un automa deterministico M, con alfabeto di ingresso X , tale che L = T (M) Risulta cos denita la Classe dei Linguaggi a Stati Finiti (determinisitici): LFSL = {L (X ) | M L = T (M)}
N. Fanizzi (LdP)
2 aprile 2009
11 / 30
Propriet di Chiusura
Proposizione La classe LFSL chiusa rispetto al complemento Dim. Sia L LFSL su X e L = X \ L Per denizione: M = (Q, , q0 , F ) FSA tale che T (M) = L Dato M = (Q, , q0 , Q \ F ), si dimostra che L = T (M) per induzione, facendo vedere che una parola w appartiene ad entrambi w L T (M) o a nessuno dei due w L T (M): base Sia w = . Se L, ossia L = T (M), allora (q0 , ) F (q , ) Q \ F , per cui L T (M). quindi 0 Analogamente, se L allora L T (M). passo Se w L allora w L = T (M) per cui (q0 , w) F ossia (q , w) Q \ F quindi w T (M). 0 Invece se w L allora w L = T (M) quindi (q0 , w) F per cui w T (M)
N. Fanizzi (LdP) Automi a Stati Finiti 2 aprile 2009 12 / 30
Per ogni coppia (q, x) si ha ora un insieme di stati successivi possibili in cui transitare
N. Fanizzi (LdP) Automi a Stati Finiti 2 aprile 2009 13 / 30
(Q) X (Q)
p se w = q (p,v ) (q, x) se w = vx
p (Q) w X : (p, w) =
N. Fanizzi (LdP)
2 aprile 2009
14 / 30
Esempio
N. Fanizzi (LdP)
2 aprile 2009
16 / 30
Esempio
S1 S2 bloccato A A
A S2 bloccato finale
N. Fanizzi (LdP) Automi a Stati Finiti 2 aprile 2009 17 / 30
Esempio
a b S {A, S2 } {S1 , S2 } Considerando la matrice di transizione: 1 {A} S2 {A} A {A, S2 } si pu calcolare la stessa cosa nel seguente modo: ({S1 }, aba) = q ({S1 },ab) (q, a) ({S1 }, ab) = ({S1 }, a) =
q ({S1 },a) (q
, b)
q ({S1 },) (q , a) ({S }, ) = {S } 1 1 ({S1 }, a) = (S1 , a) = {A, S2 } ({S1 }, ab) = (A, b) (S2 , b) = {A} = {A} ({S1 }, aba) = (A, a) = {A, S2 } e siccome A F :
Teorema (Equivalenza) Le classi di linguaggi LFSL e LNDL coincidono Dimostrazione. LFSL LNDL LFSL LNDL LNDL LFSL
N. Fanizzi (LdP)
2 aprile 2009
19 / 30
q0 = {q0 } F = {p Q | p F = } : Q X Q p = {q1 , q2 , . . . , qk } Q x X
k
(p, x) = ({q1 , q2 , . . . , qk }, x) =
j=1
(qj , x) =
qp
(q, x)
N. Fanizzi (LdP)
2 aprile 2009
21 / 30
(1) (2)
q ({q0 },v ) (q , a)
Pertanto ({q0 }, va) = (q0 , va) e quindi, tramite la (1): ({q0 }, va) F =
N. Fanizzi (LdP) Automi a Stati Finiti 2 aprile 2009 22 / 30
Esercizi
Esercizi I
1
Costruire un FSA che accetti questo linguaggio: L = {w {a, b} | w ha un numero pari di a e dispari di b} Costruire un FSA che accetti questo linguaggio: L = {w {a, b} | w = aa, , {a, b} } Trasformare in FSA questo NDA:
N. Fanizzi (LdP)
2 aprile 2009
23 / 30
Esercizi
Esercizi II
4
N. Fanizzi (LdP)
2 aprile 2009
24 / 30
Esercizi
Esercizio 1.
Esercizio 1. Costruire un FSA che accetti questo linguaggio: L = {w {a, b} | w ha un numero pari di a e dispari di b} Soluzione: Sia M = (Q, , q0 , F ) FSA Q = {q0 , q1 , q2 , q3 } dove
q0 q1 q2 q3 stato per un numero pari di a e di b stato per un numero pari di a e dispari di b stato per un numero dispari di a e pari di b stato per un numero dispari di a e di b
N. Fanizzi (LdP)
2 aprile 2009
25 / 30
Esercizi
Esercizio 1.
N. Fanizzi (LdP)
2 aprile 2009
26 / 30
Esercizi
Esercizio 2.
Esercizio 2. Costruire un FSA che accetti questo linguaggio: L = {w {a, b} | w = aa, , {a, b} } Soluzione: Sia M = (Q, , q0 , F ) FSA Q = {q0 , q1 , q2 } dove
q0 stato per parole non contenenti due o pi a consecutive e terminanti con b q1 stato per parole non contenenti due o pi a consecutive e terminanti con a q2 stato pozzo per parole contenenti due o pi a consecutive
N. Fanizzi (LdP)
2 aprile 2009
27 / 30
Esercizi
Esercizio 2.
N. Fanizzi (LdP)
2 aprile 2009
28 / 30
Esercizi
Esercizio 3.
Soluzione: Sia M = (Q , , q0 , F ) FSA Q = {, {q0 }, {q1 }, Q} {q0 } stato iniziale F = {{q1 }, Q} funzione di transizione denita:
N. Fanizzi (LdP)
2 aprile 2009
29 / 30
Esercizi
Esercizio 3.
N. Fanizzi (LdP)
2 aprile 2009
30 / 30