La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Automi finiti deterministici (DFA) (1) Un DFA è una quintupla (Q,,, q 0, F) dove: Q è un insieme finito di stati è un alfabeto finito di input q 0 Q è

Presentazioni simili


Presentazione sul tema: "Automi finiti deterministici (DFA) (1) Un DFA è una quintupla (Q,,, q 0, F) dove: Q è un insieme finito di stati è un alfabeto finito di input q 0 Q è"— Transcript della presentazione:

1 Automi finiti deterministici (DFA) (1) Un DFA è una quintupla (Q,,, q 0, F) dove: Q è un insieme finito di stati è un alfabeto finito di input q 0 Q è lo stato iniziale F Q è linsieme degli stati finali è la funzione di transizione Q Q. ^ è lestensione di a stringhe, tale che ^ (q, ) = q ^ (q, wa) = ( ^ (q, w), a) Poiché ^ (q, a) = ( ^ (q, ), a) = (q, a) non cè disaccordo tra e ^ dove sono entrambe definite e scriveremo per ^.

2 Automi finiti deterministici (DFA) (2) Una stringa x è accettata da un DFA M = (Q,,, q 0, F) se (q 0, x) = p per un p F. Definiamo linguaggio accettato da M linsieme di stringhe L(M) = {x | (q 0, x) F}. Il linguaggio accettato da un DFA è detto linguaggio regolare.

3 Diagrammi di transizione A un DFA è associato un grafo (chiamato diagramma di transizione) tale che i nodi corrispondono agli stati del DFA e se c è una transizione dallo stato p allo stato q sullinput a allora nel grafo c è un arco dal vertice corrispondente a p al vertice corrispondente a q. Esempio Lo stato iniziale è anche finale. Se il controllo è in uno degli stati superiori si è letto un numero pari di 0, se è in uno degli stati a sinistra si è letto un numero pari di 1..

4 Automi finiti non deterministici (NFA) (1) Un NFA è una quintupla M = (Q,,, q 0, F) dove: Q,, q 0, F sono come nel DFA e : Q Q. ^ è lestensione di a stringhe, tale che ^ (q, ) = {q} ^ (q, wa) = {p | per qualche r ^ (q, w) p (r, a)}. Poiché ^ (q, a) = (q, a) scriveremo per ^. Si può estendere ad argomenti in Q * (P, w) = q P (q, w) per P Q. Una sequenza di input a 1 a 2 … a n è accettata da un NFA se esiste una sequenza di transizioni corrispondente alle sequenza di input che porta dallo stato iniziale a uno stato finale. Per M = (Q,,, q 0, F), L(M) = {w | ^ (q 0, w) contiene uno stato in F}.

5 Automi finiti non deterministici (NFA) (2) Esempio. Lautoma accetta tutte le stringhe di 0 e 1 con due 0 oppure due 1 consecutivi

6 Equivalenza di NFA e DFA (1) Teorema. Sia L linsieme accettato da un NFA. Esiste un DFA che accetta L. Prova. Sia M = (Q,,, q 0, F) un NFA che accetta L. Sia Sia M = (Q,,, q 0, F) un DFA tale che: Q= Q un elemento di Q è denotato [q 1, q 2, …, q i ] F è linsieme di tutti gli stati in Q contenenti uno stato finale di M q 0 = [q 0 ] ([q 1, q 2, …, q i ], a) = [p 1, p 2, …, p j ] se e solo se ({q 1, q 2, …, q i }, a) = {p 1, p 2, …, p j }. Mostriamo per induzione sulla lunghezza della stringa di input x che (q 0, x) = [q 1, q 2, …, q j ] se e solo se (q 0, x) = {q 1, q 2, …, q j }.

7 Equivalenza di NFA e DFA (2) Base. Immediato per |x| = 0 perché q 0 = [q 0 ] e x deve essere. Passo. Assumiamo la tesi vera per |x|<= m e consideriamo la stringa xa con a. Per ipotesi di induzione (q 0, x) = [p 1, p 2, …, p j ] se e solo se (q 0, x) = {p 1, p 2, …, p j }. Per definizione di si ha ([p 1, p 2, …, p j ], a) = [r 1, r 2, …, r k ] se e solo se ({p 1, p 2, …, p j }, a) = {r 1, r 2, …, r k }. Quindi infine (q 0, xa) = [r 1, r 2, …, r k ] se e solo se (q 0, xa) = {r 1, r 2, …, r k }. Inoltre (q 0, x) F esattamente quando (q 0, x) contiene uno stato in F. Perciò L(M) = L(M).

8 Equivalenza di NFA e DFA (3) Esempio. M = ({q 0, q 1 }, {0, 1},, { q 1 }) con (q 0, 0) = {q 0, q 1 }, (q 0, 1) = {q 1 }, (q 1, 0) =, (q 1,1) = {q 0, q 1 } M = (Q, {0, 1},, [q 0 ], F) con Q = {[q 0 ], [q 1 ], [q 0, q 1 ], } ([q 0 ], 0) = [q 0, q 1 ], (q 0,1) = [q 1 ], (q 1,0) =, (q 1,1) = [q 0, q 1 ] ([q 0, q 1 ], 0) = [q 0, q 1 ], ([q 0, q 1 ],1) = [q 0, q 1 ], (, 0) = (, 1) = F = {[q 1 ], [q 0, q 1 ]}.. q0q0 [q 0 ] [q 1 ] [q 0, q 1 ]

9 NFA con transizioni (1) Si considera una funzione di transizione : Q ( { }) Q. Esempio. Lautoma accetta le stringhe di un numero finito di 0 seguito da un numero finito di 1 seguito da un numero finito di 2. -closure(p) è linsieme di tutti i vertici q tali che cè un cammino da p a q etichettato -closure(P) = p P -closure(p) ^ (q, ) = -closure(q) ^ (q, wa) = -closure({p | r ^ (q, w) p (r, a)}. Osservazione. ^ (q, a) non è necessariamente uguale a (q,a)

10 NFA con transizioni (2) Teorema. Se L è accettato da un NFA con -transizioni allora L è accettato da un NFA senza -transizioni. Prova. Dato M = (Q,,, q 0, F) NFA con -transizioni costruiamo M = (Q,,, q 0, F) senza -transizioni (q,a) = ^ (q,a) e F = F {q 0 } se -closure(q 0 ) contiene uno stato in F e F= F altrimenti. Proviamo (q 0,x) = ^ (q 0,x) per induzione su |x|. Poiché (q 0, )= {q 0 } mentre ^ (q 0, ) = -closure(q 0 ) può non essere vero per x =. Base: |x|=1 (q 0,a) = ^ (q 0,a) per definizione Passo: |x|>1 (q 0,wa) = ( (q 0,w),a). Per ipotesi di induzione (q 0,w) = ^ (q 0,w) = P. Dobbiamo mostrare (P,a) = ^ (q 0,wa). Si ha (P,a) = q P ^ (q,a) per la base dellinduzione = ^ (q 0,wa) per definizione di ^.

11 NFA con transizioni (3) Dobbiamo ora mostrare che (q 0,x) contiene uno stato di F se e solo se ^ (q 0,x) contiene uno stato di F. Se x = (q 0, ) = {q 0 } e è posto in F ogni volta che ^ (q, ) = -closure(q 0 ) contiene uno stato in F. Se non x = se ^ (q 0,x) contiene uno stato in F allora (q 0,x) contiene lo stesso stato in F. Viceversa, se (q 0,x) contiene uno stato in F diverso da q 0, allora ^ (q 0,x) contiene uno stato in F. Infatti se (q 0,x) contiene q 0 e q 0 non è in F, allora per definizione di ^ lo stato in -closure(q 0 ) e in F deve essere in ^ (q 0,x).

12 NFA con transizioni (4) Esempio. Dato lautoma La funzione è la seguente: ^ (q 0,0)={q 0,q 1,q 2 }, ^ (q 0,1)={q 1, q 2 }, ^ (q 0,2)={q 2 } ^ (q 1,0)=, ^ (q 1,1)={q 1, q 2 }, ^ (q 1,2)={q 2 } ^ (q 2,0)=, ^ (q 2,1)=, ^ (q 2,2)={q 2 } Lautoma senza transizioni è il seguente: ,11,2 0,1,

13 Proprietà di chiusura degli insiemi regolari (1) Teorema. Gli insiemi regolari sono chiusi per unione, concatenazione, chiusura di Kleene.

14 Proprietà di chiusura degli insiemi regolari (2) Teorema. Gli insiemi regolari sono chiusi per complementazione, ossia se L è regolare anche *-L è regolare. Prova. Sia L accettato dallautoma M = (Q,,, q 0, F). Prendiamo M = (Q,,, q 0, Q-F). Allora M accetta una parola w se e solo se (q 0,w) è in Q-F, cioè se w *-L. Teorema. Gli insiemi regolari sono chiusi per intersezione. Prova. Siano M 1 = (Q 1,, 1, q 1, F 1 ) e M 2 = (Q 2,, 2, q 2, F 2 ). Lautoma M = (Q 1 Q 2,,, [q 1, q 2 ], F 1 F 2 ) con ([p 1,p 2 ],a) = [ 1 (p 1, a), 2 (p 2, a)] accetta L(M) = L(M 1 ) L(M 2 ). La tesi segue anche dalla chiusura per unione e per complementazione. Infatti L 1 L 2 = (L 1 C L 2 C ) C.

15 Proprietà di chiusura degli insiemi regolari (3) Una sostituzione f : 2 è unapplicazione di un alfabeto su un sottoinsieme di * per un alfabeto. Lapplicazione è estesa a stringhe f( ) = f(xa) = f(x) f(a) e a linguaggi f(L)= x L f(x) Esempio. Sia f(0) = a, f(1) = b*. Allora f(01) = ab*. Se L = 0*(0+1)1* allora f(L) = a*(a+b*)(b*)* = a*b*.

16 Proprietà di chiusura degli insiemi regolari (4) Teorema. La classe degli insiemi regolari è chiusa per sostituzione. Prova. Sia R * un insieme regolare e per ogni a sia f : 2 la sostituzione tale che f(a) = R a. Osserviamo che la sostituzione di unione, prodotto, chiusura è unione, prodotto, chiusura della sostituzione. La prova si fa per induzione sul numero di operatori nellespressione regolare. Un omomorfismo h è una sostituzione tale che h(a) contiene una sola stringa per ciascun a. Limmagine omomorfica di un linguaggio L è h -1 (L)= {x | h(x) L}. Per una stringa w h -1 (w)= {x | h(x) = w}.

17 Proprietà di chiusura degli insiemi regolari (5) Esempio. Prendiamo h tale che h(0) = aa, h(1)= aba. Allora h(0101) = aaabaaaaba. Se L 1 = (01)* allora h(L 1 ) = (aaaba)*. Se L 2 = (ab+ba)*a allora h -1 (L 2 ) = {1} (è la sola stringa tale che h(x) = y con y L 2 ). Osservazione. h(h -1 (L 2 )) = {aba} L 2 Con lomomorfismo h(0) = a, h(1) = aa h -1 (h (L 1 )) = (01+10)* L 1. In generale h(h -1 (L)) L h -1 (h (L)) L 1

18 Proprietà di chiusura degli insiemi regolari (6) Teorema. La classe degli insiemi regolari è chiusa per omomorfismo e omomorfismo inverso. Prova. La chiusura per omomorfismo segue dalla chiusura per sostituzione di cui è un caso particolare. Per la chiusura inversa prendiamo M = (Q,,, q 0, F) che accetta L. Sia h un omomorfismo da in *. Prendiamo M = (Q,,, q 0, F) con (q,a) = (q, h(a)) per q Q, a. Per induzione su |x| si ha (q 0,x) = (q 0,h(x)). Quindi M accetta x se e solo se M accetta h(x), cioè L(M) = h -1 (L (M)).

19 Applicazione della chiusura per omomorfismo e per omomorfismo inverso Sappiamo che {0 n 1 n | n 1} non è regolare. Mostriamo che anche {a n ba n | n 1} non è regolare facendo vedere che si può trasformare in {0 n 1 n | n 1} con operazioni che preservano la regolarità. Prendiamo due omomorfismi h 1, h 2 tali che h 1 (a) = a h 1 (b) = ba h 1 (c) = a h 2 (a) = 0 h 2 (b) =1 h 2 (c) =1 Si ha h 1 -1 ({a n ba n | n 1}) a*b*c*= {a n bc n-1 | n 1} h 2 (h 1 -1 ({a n ba n | n 1}) a*b*c*) = {0 n 1 n | n 1} Se {a n ba n | n 1} fosse regolare, poiché omomorfismi, omomorfismi inversi e intersezione preservano la regolarità ne seguirebbe che {0 n 1 n | n 1} è regolare, che è una contraddizione.

20 Proprietà di chiusura degli insiemi regolari (7) Il quoziente di due linguaggi L 1 e L 2, denotato L 1 /L 2, è {x | y L 2 tale che xy L 1 }. Esempi. Prendiamo L 1 = 0*10*, L 2 = 10*1. Poiché ogni y in L 2 ha due 1 e ogni stringa in L 1 ha un solo 1, non cè x tale che xy L 1, y L 2. Prendiamo L 1 = 0*10*, L 2 = 0*1. Allora L 1 /L 2 = 0* poiché per oni x in 0* possiamo prendere y uguale a 1.

21 Proprietà di chiusura degli insiemi regolari (8) Teorema. La classe degli insiemi regolari è chiusa per quoziente con insiemi arbitrari. Prova. Sia M = (Q,,, q 0, F) un automa che accetta un insieme regolare R. Sia L un linguaggio arbitrario. Il quoziente R/L è accettato da un automa M = (Q,,, q 0, F) che si comporta come M tranne che gli stati finali di M sono tutti gli stati di M tali che esiste un y in L per cui (q,y) è in F. La costruzione non è effettiva.

22 Proprietà decidibili degli insiemi regolari (1) Teorema. Linsieme delle parole accettate da un automa finito M con n stati è: 1. non vuoto se e solo se M accetta una stringa di lunghezza minore di n 2. infinito se e solo se lautoma accetta qualche stringa di lunghezza l con n l < 2n. Prova. 1.se: ovvio. solo se: supponiamo che M accetti un insieme non vuoto e che w sia una delle stringhe più corte accettate da M. Per il pumping lemma deve essere |w| < n. Infatti se w fosse la parola più corta con |w| n, allora sarebbe w = uxy e uy sarebbe la stringa più corta accettata, contro lipotesi.

23 Proprietà decidibili degli insiemi regolari (2) 2. Se w L(M) e n |w| < 2n allora L(M) è infinito per il pumping lemma. Infatti w = w 1 w 2 w 3 e, per ogni i, anche w 1 w 2 i w 3 L(M). Viceversa, se L(M) è infinito esiste in L(M) w tale che |w| n. Dobbiamo dimostrare che |w| < 2n. Se nessuna stringa è di lunghezza compresa tra n e 2n-1, allora sia w di lunghezza almeno 2n ma di lunghezza uguale a quella delle parole più corte di lunghezza almeno 2n. Allora per il pumping lemma possiamo scrivere w = w 1 w 2 w 3 con 1 |w 2 | n e w 1 w 3 L(M). Allora o w non era una parola tra le più corte di quelle di lunghezza 2n o più oppure |w 1 w 3 | è tra n e 2n-1. In ogni caso una contraddizione. Per decidere se L(M) è vuoto basta controllare laccettazione di ogni stringa fino alla lunghezza n. Per decidere se il linguaggio è infinito basta controllare lappartenenza a L(M) di un parola di lunghezza tra n e 2n-1. Basta anche controllare che il diagramma abbia un ciclo.

24 Proprietà decidibili degli insiemi regolari (3) Teorema. Cè un algoritmo per determinare se due automi finiti sono equivalenti. Prova. Siano M 1, M 2 due automi che accettano L 1, L 2 rispettivamente. Per le proprietà di chiusura per unione, intersezione e complementazione (L 1 L 2 C ) (L 1 C L 2 ) è accettato da un automa finito M 3, ma M 3 accetta una stringa se e solo se L 1 L 2.Quindi lequivalenza è ridotta alla vuotezza, che è decidibile.

25 Teorema di Myhill e Nerode (1) Dato un linguaggio L definiamo una relazione R L tale che x R L y se e solo se per ciascuno z o entrambi o nessuno di xz e yz è in L. Osservazione. La relazione è sempre di indice finito, per il pumping lemma, se il linguaggio è regolare. La relazione può essere espressa in termini di automi. Dato un DFA M = (Q,,, q 0, F), per x, y * x R M y se e solo se (q 0,x) = (q 0,y). Proprietà. R M è una relazione di equivalenza. R M divide * in classi di equivalenza (una per ciascuno stato raggiungibile da q 0 ). R M è invariante destra rispetto alla concatenazione: se x R M y allora per ogni z * xz R M yz, poiché (q 0, xz) = ( (q 0,x), z) = ( (q 0,y), z) = (q 0, yz).

26 Teorema di Myhill e Nerode (2) Teorema. Le asserzioni seguenti sono equivalenti: 1. Linsieme L è accettato da un automa finito. 2. Linsieme è lunione di alcune classi di equivalenza di una relazione di equivalenza invariante destra di indice finito. 3. La relazione di equivalenza R L sia definita da x R L y se e solo se per ogni z * è xz L esattamente quando yz L. Allora R L è di indice finito. Prova Sia L accettato da un DFA M = (Q,,, q 0, F). Sia R M la relazione di equivalenza x R M y se e solo se (q 0,x) = (q 0,y). R M è invariante destra perché per ogni z se (q 0,x) = (q 0,y) allora se (q 0,xz) = (q 0,yz). Lindice è finito perché al più uguale al numero degli stati in Q. L è lunione di quelle classi di equivalenza che includono stringhe x tali che (q 0,x) è in F.

27 Teorema di Myhill e Nerode (3) 2 3. Una relazione di equivalenza E che soddisfa (2) è un raffinamento di R L, ossia ogni classe di E è contenuta in una classe di R L. Quindi lindice di R L non è più grande di quello di E e perciò è finito. Assumiamo xEy. Poiché E è invariante destra, allora per ogni z * xzEyz e quindi yz è in L se e solo se xz è in L. Quindi per definizione di R L vale anche xR L y e quindi la classe di equivalenza di x in E è contenuta nella classe di equivalenza di x in R L Mostriamo che R L è invariante destra. Supponiamo xR L y e prendiamo w *. Allora dobbiamo provare xwR L yw. Poiché xR L y allora per v qualsiasi xv L se e solo se yv L. Se prendiamo v = wz è provato che è invariante destra. Sia Q linsieme delle classi di equivalenza di R L e [x] lelemento di Q che contiene x. Definiamo ([x], a)=[xa]. Prendiamo q 0 = [ ], F={[x]| x in L}. Lautoma M = (Q, S,, q 0, F) accetta L poiché (q 0,x)=[x] e cosí x L(M) se e solo se x F.

28 Teorema di Myhill e Nerode (4) Prendiamo lautoma Assumiamo F = {c,d,e}. Tutti gli stati sono raggiungibili dallo stato iniziale. Le classi di equivalenza sono: c a = (00)*, c b = (00)*0, c c = (00)*1, c d = (00)*01, c e = 0*100*, c f = 0*10*1(0+1)*. L è lunione delle classi c c, c d, c e. ab c d e f ,1...

29 Teorema di Myhill e Nerode (5) La relazione R L per L ha x R L y se e solo se x e y non hanno 1 x e y hanno ciascuno un 1 x e y hanno ciascuno più di un 1 (per esempio se x = 00 e y = 000 allora xz in L se e solo se z in 1+100*, ma questo vale anche per yz). Denotiamo le tre classi c 1 = 0*, c 2 = 0*10*, c 3 = 0*10*1(0+1)*. Si ha c 1 = c a c b, c 2 = c c c d c e, c 3 = c f. Da R L costruiamo un DFA. Prendiamo rappresentanti per c 1, c 2, c 3, ad esempio, 1, 11. Prendiamo F ={[1]}. Per abbiamo ([1],0) = [1] perché se w è in [1], ad esempio 0 i 10 j, allora w0 è in 0 i 10 j+1 che è in c 1. [ ] [1][11] 000,1 11.

30 Teorema di Myhill e Nerode (6) Teorema. Il minimo automa che accetta L è unico a meno di isomorfismo (ridenominazione degli stati) ed è dato da M come costruito nella prova del teorema precedente. Prova. Nella prova del teorema precedente si vede che un qualunque DFA M = (Q, S,, q 0, F) che accetta L definisce una relazione di equivalenza che è un raffinamento di R L. Così il numero di stati di M è più grande o uguale al numero di stati dellautoma M che risulta dalla costruzione. Se vale luguaglianza ciascuno stato di M può essere identificato con uno degli stati di M. Ossia, sia q uno stato di M. Ci deve essere x in * tale che (q 0,x) = q, altrimenti q potrebbe essere rimosso e si potrebbe trovare un automa più piccolo. Identifichiamo q con lo stato (q 0,x) di M. Lidentificazione è consistente. Infatti se (q 0,x) = (q 0,y) = q allora (per la prova del teorema precedente) x e y sono nella stessa classe di equivalenza di R L. Ne segue (q 0,x) = (q 0,y) = q e questo prova lunicità.

31 Algoritmo per la costruzione dellautoma minimale (1) Idea. Dato M = (Q, S,, q 0, F) sia la relazione di equivalenza sugli stati di M tale che p q se e solo se, per ogni stringa di input x, (p,x) è uno stato accettore se e solo se (q,x) è uno stato accettore. Per il teorema cè un isomorfismo tra le classi di equivalenza di che contengono gli stati raggiungibili da q 0 per qualche stringa di input e gli stati dellautoma minimale M, cosí gli stati di M possono essere identificati con queste classi. Se p q diciamo che p è equivalente a q. Diciamo che p è distinguibile da q se esiste un x tale che (p,x) è in F e (q,x) no, e viceversa. Lidea è di marcare inizialmente come distinti uno stato finale e uno stato non finale e di procedere quindi marcando come distinti due stati da cui per uno stesso simbolo di input si hanno transizioni a due stati distinti.

32 Algoritmo per la costruzione dellautoma minimale (2) Esempio. Consideriamo lautoma di esempio. Costruiamo una tabella con unentrata per ogni coppia di stati. Mettiamo una marca nella tabella ogni volta che scopriamo che due stati non possono essere equivalenti. Inizialmente marchiamo ogni entrata corrispondente a uno stato finale e a uno non finale. Poi marchiamo coppie di stati da uno dei quali andiamo a uno stato finale mentre dallaltro andiamo a uno stato non finale. b d e f c abecd

33 Algoritmo per la costruzione dellautoma minimale (3) Poiché (f,1), (a,2)) = (f,c) e (f,c) marcata, marchiamo (f,a) e analogamente marchiamo (f,b). Così alla fine abbiamo a b, c d e. Algoritmo begin 1) for p in F and q in Q-F do mark (p,q); 2) for each pair of distinct states (p,q) in F F or Q-F Q-F do 3) if for some input symbol a, ( (p,a), (q,a)) is marked then begin 4) mark (p,q); 5) recursively mark all unmarked pairs on the list for (p,q) and on lists of other pairs that are marked at this step end else /* no pair ( (p,a), (q,a)) is marked */ 6) for all input symbols a do 7) put (p,q) on the list for ( (p,a), (q,a)) unless (p,a) = (q,a) end

34 Algoritmo per la costruzione dellautoma minimale (4) Lemma (Complessità). Assumiamo che abbia k simboli e Q abbia n stati. La complessità dellalgoritmo è O(kn 2 ). Prova. La linea 1 richiede O(n 2 ) passi. Il ciclo delle linee 2-7 è eseguito O(n 2 ) volte, al più una volta per ogni coppia di stati. Il tempo totale speso nelle linee da 2 a 4, 6, 7 è O(kn 2 ). Il tempo speso in totale nella linea 5 è la somma delle lunghezze di tutte le liste, ma ogni coppia è messa nella linea 7 in al più k liste, quindi il tempo speso nella linea 5 è O(kn 2 ), cosí il tempo totale è O(kn 2 ).

35 Algoritmo per la costruzione dellautoma minimale (5) Lemma (Correttezza della marcatura degli stati). Sia M = un DFA. Allora p è distinguibile da q se e solo se lentrata corrispondente alla coppia (p,q) è marcata dallalgoritmo. Prova. Assumiamo che p sia distinguibile da q e sia x la stringa più breve che distingue p da q. Proviamo per induzione sulla lunghezza di x che lentrata (p,q) viene marcata. Se x è allora esattamente uno di p e q è finale e la coppia viene marcata nella linea 1. Assumiamo lipotesi vera per |x| < i, 1 i, e |x| = i. Sia x=ay, t= (p,a), u= (q,a). Ora, y distingue t da u e |y|=i-1, quindi la coppia (t,u) è marcata. Se questo avviene dopo che (p,q) è già stata considerata o è marcata o è nella lista associata a (t,u) e viene marcata (linea 5). Se (p,q) è considerata dopo (t,u), allora (p,q) è marcata quando è considerata. In tutti i casi viene marcata. Viceversa, assumiamo che (p,q) sia marcata e facciamo vedere che p,q sono distinguibili. Perinduziojne sul numero delle coppie.

36 Algoritmo per la costruzione dellautoma minimale (6) Teorema. Il DFA costruito dallalgoritmo e rimuovendo stati inaccessibili è il minimo DFA per il linguaggio che riconosce. Prova. Sia M = (Q, S,, q 0, F) il DFA dato e M = (Q, S,, [q 0 ], F) il DFA costruito con Q= {[q] | q accessibile da q 0 }, F= {[q]| q F}, ([q],a) = (q,a). La relazione è definita consistentemente perché se q p allora (p,a) (q,a), cioè se (p,a) è distinto da (p,a) da x, allora ax distingue q da p. Per induzione su |w| si vede ([q 0 ],w) = (q 0,w)]. Ne segue L(M) = L(M). Mostriamo che Mnon ha più statidi quante sono le classi di equivalenza di R L dove L = L(M). Se non fosse cosí, ci sarebbero in q due stati accessibili q e p tali che non q p e tuttavia ci sono x e y tali che (q 0,x)=q e (q 0,y)=p e xR L y. Ma allora q p, perché se non fosse cosí qualche w in * dovrebbe distinguere p da q (per il lemma). Ma allora sarebbe falso xwR L yw perché potremmo prendere z= e osservare che esattamente uno di xwz e ywz è in L. Ma poiché è invariante destra, si ha xwR L yw. Quindi q e p non esistono, M non ha più stati dellindice di R L.


Scaricare ppt "Automi finiti deterministici (DFA) (1) Un DFA è una quintupla (Q,,, q 0, F) dove: Q è un insieme finito di stati è un alfabeto finito di input q 0 Q è"

Presentazioni simili


Annunci Google