Sei sulla pagina 1di 30

Automi a Stati Finiti

Nicola Fanizzi Corso di Linguaggi di Programmazione


Dipartimento di Informatica Universit degli Studi di Bari

2 aprile 2009

N. Fanizzi (LdP)

Automi a Stati Finiti

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)

Automi a Stati Finiti

2 aprile 2009

2 / 30

Automi a Stati Finiti

Automi a Stati Finiti I


Denizione (Automa deterministico) Dato un alfabeto X , un automa a stati niti deterministico (FSA) una quadrupla M = (Q, , q0 , F ) X lalfabeto dingresso Q un insieme nito e non vuoto di stati la funzione di transizione: : Q X Q

q0 lo stato iniziale F Q linsieme degli stati nali o daccettazione

N. Fanizzi (LdP)

Automi a Stati Finiti

2 aprile 2009

3 / 30

Automi a Stati Finiti

Automi a Stati Finiti II

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)

Automi a Stati Finiti

2 aprile 2009

4 / 30

Automi a Stati Finiti

Automi a Stati Finiti III


a b a a b a a b a a b a

Control Unit

q0 q1 q2 q3 q4 q5
schema di automa a stati niti

N. Fanizzi (LdP)

Automi a Stati Finiti

2 aprile 2009

5 / 30

Automi a Stati Finiti

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)

Automi a Stati Finiti

2 aprile 2009

6 / 30

Automi a Stati Finiti

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

Automi a Stati Finiti

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)

Automi a Stati Finiti

2 aprile 2009

8 / 30

Automi a Stati Finiti

Funzione di transizione per stringhe

Funzione di transizione per stringhe


La funzione generalizza calcolando lo stato di arrivo avendo in ingresso uno stato ed una parola sullalfabeto X Denizione Dato un automa a stati niti M = (Q, , q0 , F ) Si denisce per induzione la funzione : Q X Q q se w = ( (q, w ), x) se w = w x

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

Automi a Stati Finiti

Classe dei Linguaggi a Stati Finiti

Linguaggi accettati da FSA


Una parola si dice accettata (o riconosciuta) da M se, partendo da q0 e data la sequenza di ingresso w, M porta ad uno stato q nale (q0 , w) = q F

Il linguaggio accettato (o riconosciuto) da M dato dallinsieme: T(M) = {w X | (q0 , w) F }

Due FSA M1 e M2 si dicono equivalenti quando: T (M1 ) = T (M2 )

N. Fanizzi (LdP)

Automi a Stati Finiti

2 aprile 2009

10 / 30

Automi a Stati Finiti

Classe dei Linguaggi a Stati Finiti

Classe dei Linguaggi a Stati Finiti

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)

Automi a Stati Finiti

2 aprile 2009

11 / 30

Automi a Stati Finiti

Chiusura rispetto al complemento

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

Automi non Deterministici

Automi Non Deterministici


Denizione (automa non deterministico) Un automa a stati niti non deterministico (NDA) una quadrupla M = (Q, , q0 , F ) dove: Q un insieme nito e non vuoto di stati q0 lo stato iniziale F Q linsieme degli stati nali o daccettazione la funzione di transizione : Q X (Q)

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

Automi non Deterministici

Linguaggio accettato da NDA

Funzione di transizione per stringhe

Si pu denire anche in questo caso lestensione di alle stringhe: :

(Q) X (Q)
p se w = q (p,v ) (q, x) se w = vx

p (Q) w X : (p, w) =

N. Fanizzi (LdP)

Automi a Stati Finiti

2 aprile 2009

14 / 30

Automi non Deterministici

Linguaggi Non Deterministici

Linguaggi Non Deterministici


Una parola si dice accettata (o riconosciuta) dal NDA M se, partendo da q0 con una sequenza di ingresso w, M transita ad uno stato nale in almeno un cammino ({q0 }, w) F = Il linguaggio accettato (o riconosciuto) da M dato dallinsieme: T(M) = {w X | ({q0 }, w) F = } Due NDA sono equivalenti se accettano lo stesso linguaggio Risulta cos denita la Classe dei linguaggi a stati niti non deterministici: LNDL = {L (X ) | M NDA: L = T (M)}
N. Fanizzi (LdP) Automi a Stati Finiti 2 aprile 2009 15 / 30

Automi non Deterministici

Esempio

Esempio. Si consideri lNDA M = ({S1 , S2 , A}, , S1 , {A}):

N. Fanizzi (LdP)

Automi a Stati Finiti

2 aprile 2009

16 / 30

Automi non Deterministici

Esempio

Accetta la stringa w = aba ?

S1 S2 bloccato A A

lettura di a lettura di b lettura di a

A S2 bloccato finale
N. Fanizzi (LdP) Automi a Stati Finiti 2 aprile 2009 17 / 30

Automi non Deterministici

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 :

({S1 }, aba) F = {A} = Quindi M accetta w


N. Fanizzi (LdP) Automi a Stati Finiti 2 aprile 2009 18 / 30

Automi non Deterministici

Equivalenza tra FSA e NDA

Equivalenza tra FSA e NDA I

Teorema (Equivalenza) Le classi di linguaggi LFSL e LNDL coincidono Dimostrazione. LFSL LNDL LFSL LNDL LNDL LFSL

N. Fanizzi (LdP)

Automi a Stati Finiti

2 aprile 2009

19 / 30

Automi non Deterministici

Equivalenza tra FSA e NDA

Equivalenza tra FSA e NDA II


Tesi LFSL LNDL Si consideri un FSA M1 = (Q1 , 1 , q1 , F1 ) con alfabeto di ingresso X , quindi T (M1 ) LFSL Deniamo lNDA M2 = (Q2 , 2 , q2 , F2 ) con lo stesso alfabeto di ingresso X , dove: Q2 = Q1 2 : Q2 X (Q2 ) q Q2 = Q1 x X q2 = q1 F2 = F1 Per induzione sulla lunghezza delle parole si dimostra facilmente che: T (M2 ) = T (M1 )
N. Fanizzi (LdP) Automi a Stati Finiti 2 aprile 2009 20 / 30

2 (q, x) = {1 (q, x)}

Automi non Deterministici

Equivalenza tra FSA e NDA

Equivalenza tra FSA e NDA III


Tesi LNDL LFSL Sia M = (Q, , q0 , F ) un NDA che accetta T (M) Algoritmo di costruzione dellFSA equivalente M = (Q, , q0 , F ): 1 Q = (Q)
2 3 4

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)

Automi a Stati Finiti

2 aprile 2009

21 / 30

Automi non Deterministici

Equivalenza tra FSA e NDA

Equivalenza tra FSA e NDA IV


Occorre ora dimostrare che T (M) = T (M) per induzione sulla lunghezza della parola w base |w | = 0, w = T (M) (q0 , ) F (q0 , ) = ({q0 }, ) = {q0 } = (q0 , ) = (q0 , ) ma {q0 } F (q0 , ) F = quindi T (M) passo Sia w = va T (M) cio (q0 , va) F = ({q0 }, v ) = ({q0 }, v ) Per ipotesi di induzione
(2) (q0 , va) = ({q0 }, va) = ( ({q0 }, v ), a) = = ( ({q0 }, v ), a) = q (q0 ,v ) (q , a)

(1) (2)

Per denizione ({q0 }, va) =

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)

Automi a Stati Finiti

2 aprile 2009

23 / 30

Esercizi

Esercizi II
4

Determinare T(M) e trasformare in FSA questo NDA:

determinare un automa per i seguenti linguaggi:


ling. L1 su {a, b} delle strighe che niscono con aa: w L1 sse w = vaa, con v {a, b} ling. L2 su {0, 1} delle stringhe con tre 0 consecutivi: w L2 sse w = 000, con , {0, 1} ling. su {0, 1} delle stringhe con 011 come sottostringa ling. L4 su {a, b} delle stringhe che cominciano o niscono con ab: w L4 sse w = ab w = ab, con {a, b}

N. Fanizzi (LdP)

Automi a Stati Finiti

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

funzione di transizione denita:


(q0 , a) = (q3 , b) = q2 (q0 , b) = (q3 , a) = q1 (q1 , a) = (q2 , b) = q3 (q1 , b) = (q2 , a) = q0

q0 stato iniziale F = {q1 }

N. Fanizzi (LdP)

Automi a Stati Finiti

2 aprile 2009

25 / 30

Esercizi

Esercizio 1.

N. Fanizzi (LdP)

Automi a Stati Finiti

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

funzione di transizione denita:


(q0 , a) = q1 (q0 , b) = (q1 , b) = q0 (q1 , a) = (q2 , a) = (q2 , b) = q2

q0 stato iniziale F = {q0 , q1 }

N. Fanizzi (LdP)

Automi a Stati Finiti

2 aprile 2009

27 / 30

Esercizi

Esercizio 2.

N. Fanizzi (LdP)

Automi a Stati Finiti

2 aprile 2009

28 / 30

Esercizi

Esercizio 3.

Esercizio 3. Trasformare in FSA questo NDA:

Soluzione: Sia M = (Q , , q0 , F ) FSA Q = {, {q0 }, {q1 }, Q} {q0 } stato iniziale F = {{q1 }, Q} funzione di transizione denita:

N. Fanizzi (LdP)

Automi a Stati Finiti

2 aprile 2009

29 / 30

Esercizi

Esercizio 3.

stato pozzo per denire una totale

N. Fanizzi (LdP)

Automi a Stati Finiti

2 aprile 2009

30 / 30