La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Espressioni regolari (1) I linguaggi accettati da automi finiti (linguaggi regolari) sono descritti da espressioni regolari. Dato un alfabeto , le espressioni.

Presentazioni simili


Presentazione sul tema: "Espressioni regolari (1) I linguaggi accettati da automi finiti (linguaggi regolari) sono descritti da espressioni regolari. Dato un alfabeto , le espressioni."— Transcript della presentazione:

1 Espressioni regolari (1) I linguaggi accettati da automi finiti (linguaggi regolari) sono descritti da espressioni regolari. Dato un alfabeto , le espressioni regolari su  e gli insiemi che denotano sono definiti ricorsivamente: - Ø è un’espressione regolare e denota l’insieme vuoto -  è un’espressione regolare e denota l’insieme {  } -per ciascun a  S a è un’espressione regolare e denota l’insieme {a} - se r, s sono espressioni regolari che denotano i linguaggi R, S allora (r+s), (rs), r* sono espressioni regolari che denotano i linguaggi R  S, RS, R*. Chiamiamo L(r) il linguaggio denotato da r.

2 Espressioni regolari (2) Assumiamo che l’operatore * abbia precedenza sualla concatenazione e che la concatenazione abbia precedenza su + e omettiamo le parentesi non necessarie. Assumiamo gli assiomi seguenti r + s = s + r+ è commutativo r + (s + t) = (r + s) + t+ è associativo r (s t) = (r s) t. è associativo r (s + t) = r s + r t. distribuisce rispetto a + (s + t) r = s r + t r  r = r  = r  è l’identità per.

3 Espressioni regolari (3) Esempi. L’insieme delle parole chiave begin, end, if, then, else è descritto dall’espressione regolare begin + end + if + then + else. L’insieme degli identificatori è descritto dall’espressione regolare (a + b + … + z) (a + b + … + z … + 9)* L’insieme delle costanti intere è descritto dall’espressione regolare 0 + ( … + 9) ( … + 9 * Due espressioni regolari sono equivalenti se descrivono lo stesso linguaggio. Esempio. (a + b)* ~ (a* b*)*

4 Espressioni regolari (4) Teorema. Sia r un’espressione regolare. Allora esiste un NFA con  transizioni che accetta L( r ). Prova. Per induzione sul numero di operatori di r mostriamo che esiste un NFA M con  transizioni, uno stato finale e nessuna transizione dallo stato finale tale che L(M) = L( r ). Base. è il NFA per r =  è il NFA per r = Ø è il NFA per r = a Passo. Assumiamo che la tesi valga per r con meno di i operatori, con i >=1. Abbia r i operatori. a

5 Espressioni regolari (5) Assumiamo per ipotesi di induzione che per r 1, r 2 con meno di i operatori esistano automi M 1, M 2 che accettano L (r 1 ), L(r 2 ). L’automa M che accetta L (r 1 + r 2 ) ha il diagramma L’automa M che accetta L (r 1 r 2 ) ha il diagramma L’automa M che accetta L (r 1 *) ha il diagramma        

6 Espressioni regolari (6) Teorema. Se L è accettato da un DFA, allora L è denotato da un’espressione regolare. Prova. Sia L accettato da un DFA M = ({q 1, …, q n }, , d, q 1, F). Sia R k ij l’insieme di tutte le stringhe che portano il DFA da q i a q j senza passare da uno stato di numero più alto di k. Allora R n ij denota tutte le stringhe che portano da q i a q j. Si ha R k ij = R k-1 ik (R k-1 kk )* R k-1 kj  R k-1 ij {a |  (q i,a) = q j } se non i=j R 0 ij = {a |  (q i,a) = q j }  {  } se i=j Dobbiamo mostrare che per ciascun i,j,k esiste un’espressione regolare r k ij che denota il linguaggio regolare R k ij.

7 Espressioni regolari (7) Base. R 0 ij è un insieme finito di stringhe ciascuna delle quali o è un simbolo di  oppure . Quindi r 0 ij = a 1 + … + a p oppure a 1 + … + a p +  se i = j, dove {a 1, …, a p } è l’insieme di tutti i simboli a tali che  (q i,a)= q j. Se non ce ne sono r 0 ij = Ø oppure r 0 ij =  se i = j. Passo. La formula ricorsiva per R k ij usa solo unione, concatenazione, chiusura (operatori delle espressioni regolari). Per ipotesi di induzione per ciascun l, m esiste un’espressione regolare r k-1 lm tale che L(r k-1 lm ) = R k-1 lm. Quindi per r k ij possiamo prendere l’espressione r k-1 ik (r k-1 kk )* r k-1 kj + r k-1 ij. Osserviamo che L(M) =  qj  F R n 1j. Perciò L(M) è denotato da r n 1j1 + r n 1j2 + … + r n 1jp dove F = {q j1, …, q jp }.

8 Espressioni regolari (8) Esempio. Prendiamo l’automa Abbiamo r 0 11 =  r 1 11 =  r 2 11 = (00)* r 0 12 = 0r 1 12 = 0r 2 12 = 0(00)* r 0 13 = 1r 1 13 = 1r 2 13 = 0*1 r 0 21 = 0r 1 21 = 0r 2 21 = 0(00)* r 0 22 =  r 1 22 =  + 00r 2 22 = (00)* r 0 23 = 1r 1 23 = r 2 23 = 0*1 r 0 31 = Ø r 1 31 = Ø r 2 31 = (0 +1)(00)*0 r 0 32 = 0+1r 1 32 = 0+1 r 2 32 = (0 +1)(00)* r 0 33 =  r 1 33 =  r 2 33 =  (0+1) 0* , q1q1 q2q2 q3q3

9 Espressioni regolari (9) Quindi r 3 12 = r 2 13 (r 2 33 )* r r 2 12 = 0*1 (  + (0+1) 0*1 )* (  + (0+1) 0*1 ) + 0*1 r 3 13 = r 2 13 (r 2 33 )* r r 2 13 = 0*1 (  + (0+1) 0*1 )* (  + (0+1) 0*1 ) + 0*1 L’espressione regolare per M è r r 3 13.

10 Macchine di Moore e di Mealy (1) Gli automi finiti danno un output che è un segnale di accettazione o di non accettazione. Le macchine di Moore e di Mealy danno un output su un alfabeto diverso da quello di input e associato con lo stato (macchina di Moore) o con la transizione (macchina di Mealy). Una macchina di Moore è M = (Q, , , ,, q 0 ), dove  è l’alfabeto di output e : Q:    associa a ogni stato un simbolo di output. In risposta all’input a 1, …, a n, n ≥ 0, la macchina dà l’output (q 0 ) … (q n ) dove  (q i-1, a i ) = q i, 1  i  n. Esempio. Si voglia determinare il residuo modulo 3 per ogni stringa binaria trattata come un intero binario. La macchina entra in q j se l’input visto fino a tal punto ha residuo j. Sia (q j ) =j per j = 0,1,2. q0q q2q2 q1q1

11 Macchine di Moore e di Mealy (2) Osservazione. Un DFA è un caso speciale di macchina di Moore dove l’alfabeto di output è {0,1} e uno stato q è di accettazione se e solo se (q) = 1. Una macchina di Mealy è M = (Q, , , ,, q 0 ) dove : Q     associa a ogni stato un simbolo di output. L’output in risposta all’input a 1, …, a n, n ≥ 0, è (q 0, a 1 ) … (q n,a n ) dove  (q i-1, a i ) = q i, 1  i  n. Osservazione. La sequenza di output della macchina di Mealy è lunga n (e non n+1 come per la macchina di Moore) perché sull’input  dà output .

12 Macchine di Moore e di Mealy (3) Esempio. Il linguaggio (0+1)*(00+11) che è accettato da un DFA con almeno cinque stati è accettato dall’automa di Mealy che ricorda nello stato l’ultimo simbolo letto q0q0 p0p0 p1p1 0/ n 1/n 0/y 1/n 0/n 1/y

13 Macchine di Moore e di Mealy (4) Sia M una macchina di Mealy o una macchina di Moore. Definiamo T M (w) l’output prodotto da M sull’input w. Una macchina di Mealy M e una macchina di Moore M’ sono equivalenti se, per tutti gli input w, bT M (w) = T M’ (w) dove b è l’output di M’ per il suo stato iniziale. Teorema. Se M 1 = (Q, , , ,, q 0 ) è una macchina di Moore, allora c’è una macchina di Mealy M 2 equivalente a M 1. Prova. Sia M 2 = (Q, , , , ’, q 0 ), con ’(q,a) = (  (q,a)) per tutti gli stati q e simboli di input a. Allora M 1 ed M 2 entrano nella stessa sequenza di stati sul medesimo input e con ciascuna transizione M 2 emette l’output che M 1 associa allo stato in cui è entrato.

14 Macchine di Moore e di Mealy (5) Esempio. La macchina di Mealy equivalente alla macchina di Moore dell’esempio è la seguente: Teorema. Se M 1 = (Q, , , ,, q 0 ) è una macchina di Mealy, allora c’è una macchina di Moore M 1 equivalente. Prova. Sia M 2 = (Q  , , ,  ’, ’, [q 0,b 0 ]), dove b 0   scelto arbitrariamente. Gli stati di M 2 sono coppie [q,b], consistenti di uno stato di M 1 e di un simbolo di output. Definiamo  ’([q,b], a)=  (q,a), (q,a)] e ’([q,b])=b. Con un’induzione su n si mostra che se M 1 entra negli stati q 1, …, q n sull’input a 1, …, a n ed emette b 1, …, b n allora M 2 entra negli stati [q 0,b 0 ], …, [q n,b n ], ed emette b 0, …, b n. 0/0 1/10/2 0/11/0 1/2

15 Macchine di Moore e di Mealy (6) Esempio. La macchina di Moore equivalente alla macchina di Mealy dell’esempio è la seguente: [q 0,n] [q 0,y] [p 0,n] [p 0,y] [p 1,n] [p 1,y] nnn y yy


Scaricare ppt "Espressioni regolari (1) I linguaggi accettati da automi finiti (linguaggi regolari) sono descritti da espressioni regolari. Dato un alfabeto , le espressioni."

Presentazioni simili


Annunci Google