You are on page 1of 39

Neste captulo vamos introduzir outras estruturas que permitem caracterizar as linguagens regulares.

A principal vantagem, destas novas estruturas, sobre a representao com expresses regulares a de terem, naturalmente, associado um algoritmo que testa (em tempo linear) a pertena de uma palavra linguagem que representam. Para alm desta caracterstica, a expressividade aparente dos autmatos, isto , a facilidade com que somos capazes de os escrever, muito maior do que a das expresses regulares.

4.1

Autmatos nitos determinsticos

DR
s0 , com s0 S, o estado inicial; 33

Denio 4.1 (DFA) Um autmato nito determinstico (DFA) um quintplo ordenado S, , , s0 , F em que: S um conjunto nito, no vazio, a que chamamos o conjunto dos estados; um conjunto nito, no vazio, que constitui o alfabeto do autmato; uma funo total : S S, chamada funo de transio; F, com F S, o conjunto dos estados nais.

Um DFA muitas vezes representado informalmente por um diagrama, por um digrafo com estados e arcos etiquetados. Os arcos dos autmatos costumam designar-se por transies.

AF

Autmatos nitos

Exemplo 4.2 O autmato A = {s0 , s1 }, {0, 1}, , s0 , {s1 } com (s0 , 0) = s1 (s0 , 1) = s0 (s1 , 0) = s1 (s1 , 1) = s0 ,

1. Comeamos por nos situarmos no estado inicial do autmato. Aquele que tem, por conveno, uma pequena seta a apontar para ele. 2. Para cada uma das letras da palavra, e por ordem, passamos para o estado do autmato para o qual aponta a transio com o nome da letra em causa, a partir do estado em que estamos. 3. Quando esgotamos as letras da palavra, usando o procedimento do passo anterior, o estado em que nos encontramos determina o sucesso, ou no, da aceitao da palavra: se o estado for nal (um daqueles que est representado com linha dupla) a palavra aceite, e no o , caso contrrio. Para denir rigorosamente este processo e assim obtermos uma denio formal da linguagem associada a um DFA, comecemos por denir indutivamente, para cada autmato, uma nova funo como extenso de :

DR
em que em que denida como atrs. 34

AF
: S S (s) (s S (s, ) = s) L(A) = { | (s0 , ) F},

Informalmente, para vericarmos se uma dada palavra pertence linguagem denida por um dado autmato, se uma palavra reconhecida ou aceite pelo autmato, procedemos da seguinte forma:

T
s0 0 0 s1 1

representado pelo seguinte diagrama:

Denio 4.3 (Linguagem representada por um DFA) Seja A = S, , , s0 , F um DFA. A linguagem L(A) representada por A dene-se como (4.2)

(s ) ((s S ) (s, ) = ((s, ), )).

(4.1)

Exemplo 4.4 A palavra 100 pertence linguagem denida pelo autmato A (Exemplo 4.2) porque (s0 , 100) = ((s0 , 1), 00) = (s0 , 00) = ((s0 , 0), 0) = (s1 , 0) = s1 F. = ((s1 , 0), ) = (s1 , )

A palavra 01 no pertence mesma linguagem porque

(s0 , 01) = ((s0 , 0), 1) = (s1 , 1) = s0 F. /

Problema 27 Seja B a linguagem das palavras de alfabeto {0, 1} que representam em binrio nmeros mltiplos de 5. 1. Descreve um autmato nito determinstico que reconhea esta linguagem. 2. Para o autmato encontrado, prova que o mesmo reconhece a linguagem B. Problema 28 Considera o autmato nito representado na gura.

DR
35

1. Constri uma descrio formal para este autmato como um tuplo A = (Q, , , s0 , F);

2. Indica quais das seguintes palavras so aceites por este autmato: 101001, 111111, 11001010111 e 0000011000; 3. Diz (em portugus) qual a propriedade que uma palavra de {0, 1} tm de ter para ser aceite por este autmato.

Problema 29 Considera os seguintes autmatos nitos do alfabeto = {0, 1}, A = ({s0 , s1 }, , A , s0 , {s1 }) B = ({s0 , s1 , s2 }, , B , s0 , {s1 , s2 })

AF
0 s0 1 s1 1 0, 1 s2 0

= ((s1 , 1), ) = (s0 , )

com as funes de transio dadas por: A (s0 , 0) = s0 A (s0 , 1) = s1 A (s1 , 0) = s0 A (s1 , 1) = s1 B (s0 , 0) = s1 B (s0 , 1) = s2 B (s1 , 1) = s2 B (s2 , 0) = s1

1. Representa cada um dos autmatos por um digrafo. 101 111 11001 01010 00011

2. Diz quais das seguintes palavras so aceites por algum dos autmatos:

3. Diz quais as linguagens reconhecidas pelos autmatos.

Denio 4.5 (Equivalncia de autmatos) Dois autmatos dizem-se equivalentes se representarem a mesma linguagem. Por vezes, por comodidade, relaxa-se um pouco a denio de DFA no exigindo que a funo : S S seja total. Ou seja, permitindo que para algum estado no esteja denida a transio para algum smbolo. Um autmato nito determinstico deste tipo A = S, , , s0 , F em que a funo de transio no total, normalmente designado como no completo, considera-se como abreviatura do DFA completo A = S {s }, , , s0 , F em que s S e denindo / : (S {s }) S {s } (s, ) s quando (s, ) est denido nos outros casos.

AF
(s, )
1 0 0 s2 s0 0 s1 1 0 0 1 s2 s0 0 s1 1 s 0, 1

T
(4.3) 36

DR

Exemplo 4.6 O seguinte autmato no completo

a abreviatura deste outro autmato ( completo)

Problema 30 Descreve um autmato nito que reconhea a linguagem das palavras de {0, 1} que. . . 1. no tm nenhum 1; 3. contm pelo menos algum 0 e algum 1; 4. tm comprimento no inferior a 2; 6. terminam em 1; 2. so diferentes de 1;

5. no contm 101 como subpalavra-palavra; 7. terminam em 1 mas no em 111;

9. terminam em 1 e tm pelo menos dois 0 consecutivos; 10. tm um nmero mpar de 0 ou um nmero par de 1;

11. tm no mximo um par de 0 e um par de 1 consecutivos;

12. so representao binria de inteiros positivos mltiplos de 4;

13. so representao binria de inteiros positivos mltiplos de 2 mas no de 3; 14. contm (algures) pelo menos trs 0 seguidos, mas no contm dois ou mais 1 seguidos 15. se tm algum par de 0 adjacentes, este aparece antes de qualquer par de 1 adjacentes; 16. no terminam em 1101 nem em 1011; 17. tm igual nmero de 0 e 1 e nenhum seu prexo tem um nmero de 0 que excede em dois o nmero de 1, nem um nmero de 1 que excede em dois o nmero de 0

DR
37

Problema 31 Seja A = (, S, , s0 , F) um autmato nito determinstico e s um estado de A, tal que (s, a) = s, a . Mostra por induo no comprimento de , que , (s, ) = s. Problema 32 Dada uma linguagem L, seja LR = {R | L}. Mostra que se L for aceite por um autmato nito , ento LR tambm o . Problema 33 Descreve um autmato nito determinstico que reconhea a linguagem A das palavras de alfabeto {0, 1} em que no ocorrem sequncias pares de 0s imediatamente esquerda de sequncias mpares de 1s.

AF

8. tm pelo menos dois 0 consecutivos;

Problema 34 Seja B a linguagem das palavras de alfabeto {0, 1} que representam em binrio nmeros mltiplos de 5. 1. Descreve um autmato nito determinstico que reconhea esta linguagem. 2. Para o autmato encontrado, prova que o mesmo reconhece a linguagem B.

4.1.1

O autmato complementar

Dada uma linguagem representada por uma expresso regular, relativamente difcil encontrar a expresso regular que representa a sua linguagem complementar. Esta operao particularmente simples se se tratar de autmatos determinsticos nitos.

A linguagem complementar desta, L, a linguagem das palavras que correspondem a inteiros que no so mltiplos de 3, ser a linguagem gerada pelo autmato anterior, mas em que os estados nais e estados no nais foram trocados. Ou seja:

DR
s5 1 s0 1 s2 0

Claro que este reconhece com pertencendo a L apesar de este no representar um nmero em binrio. Mas isso consequncia da forma como denimos a linguagem. 38

AF
0 s5 1 1 s0 1 s2 0 s4 1 0 0 s1 0, 1 0, 1 s3 0 1 0 0 0, 1 s3 1 s4 s1 0, 1

Exemplo 4.7 Consideremos a linguagem, L, das palavras de alfabeto = {0, 1} que correspondem a representaes binrias de inteiros mltiplos de 3. Um DFA que represente L pode ser o representado pelo seguinte diagrama:

A = S, , , s0 , S \ F .

Dem. A demonstrao trivial pois, pela Denio 4.3,

4.1.2

O autmato produto

Sejam A1 = S1 , , 1 , i1 , F1 e A2 = S2 , , 2 , i2 , F2 dois autmatos nitos determinsticos. Vamos construir um autmato produto A3 que vai simular o funcionamento simultneo de A1 e A2 . Esta construo vai permitir encontrar um DFA que represente L(A1 )L(A2 ), o mesmo se passando para L(A1 ) L(A2 ). Formalmente, A3 = S3 , , 3 , i3 , F3 onde S3 = S1 S2 = {(s1 , s2 ) | s1 S1 e s2 S2 }

DR
Proposio 4.9 L(A3 ) = L(A1 ) L(A2 ). 39

i3 = (i1 , i2 ) 3 ((s1 , s2 ), a) = (1 (s1 , a), 2 (s2 , a))

A denio de F3 indicar se a linguagem de A3 ser a interseco ou a reunio das linguagens de A1 e de A2 . Se denirmos F3 = F1 F2 = {(s1 , s2 ) | s1 F1 s2 F2 }

O autmato A3 vai aceitar uma palavra se e s se A1 e A2 tambm a aceitarem, i.e., L(A1 ) L(A2 ) = L(A3 ). Problema 35 Mostra por induo em ||, que , 3 ((s1 , s2 ), ) = (1 (s1 , ), 2 (s2 , ))

AF
L(A).

L L (s0 , ) F

T
(s0 , ) S \ F s 1 S1 , s 2 S 2 , a

Teorema 4.8 (complementar duma linguagem dada por um DFA) O complementar de uma linguagem dada por um DFA tambm uma linguagem representvel por um DFA. Para alm disso se L = L(A) para um DFA completo A = S, , , s0 , F , ento a linguagem complementar L = L(A) com

Dem. L(A3 ) 3 (i3 , ) F3 3 ((i1 , i2 ), ) F1 F2

(1 (i1 , ), 2 (i2 , )) F1 F2 L(A1 ) L(A2 ) L(A1 ) L(A2 )

1 (i1 , ) F1 2 (i2 , ) F2

Exemplo 4.10 Considera os seguintes autmatos nitos determinsticos: A1

Como os autmatos no tm o mesmo alfabeto, antes de calcular o autmato produto necessrio transformar o primeiro autmato sem mudar a linguagem representada por ele. A1 A2

DR
c a, b, c c s2
1 s0 s1 s2 a s1 s1 s2 b c s0 s2 s1 s2 s2 s2 40

Sejam ento A1 = S1 , {a, b, c}, 1 , s0 , , F1 ) e A1 = S2 , {a, b, c}, 2 , q0 , , F2 onde S1 = {s0 , s1 , s2 }, S2 = {q0 , q1 }, F1 = {s1 }, F2 = {q1 }, e as funes de transio 1 e 2 so respectivamente, 2 a b c q0 q0 q1 q0 q1 q0 q1 q0

AF
b s0 a, b a s1 a, c
A2

Como no caso da construo por subconjuntos para a obteno de um autmato nito determinstico equivalente a um no determinstico, a construo da funo de transio pode s envolver os estados do autmato produto que so atingveis do estado inicial.

s0

a, b

s1

T
q0 b b a, c q1 a, c q0 b b q1 a, c

Para o autmato produto A3 = S3 , {a, b, c}, 3 , (s0 , q0 ), F3 , tem-se S3 = {(s0 , q0 ), (s1 , q0 ), (s2 , q0 ), (s0 , q1 ), (s1 , q1 ), (s2 , q1 )}

Se o autmato produto representar a interseco das linguagens de A1 e A2 , temos que F3 = F1 F2 = {(s1 , q1 )}. O diagrama do autmato produto A3 : A3

AF
a (s1 , q0 ) b a a c a (s0 , q0 ) b (s0 , q1 ) b (s1 , q1 c c c b (s2 , q0 ) a, c (s2 , q1 ) a, c
F3 = {(s1 , s2 ) | s1 F1 ou s2 F2 }. 41

3 (s0 , q0 ) (s1 , q0 ) (s2 , q0 ) (s0 , q1 ) (s1 , q1 ) (s2 , q1 )

a (s1 , q0 ) (s1 , q0 ) (s2 , q0 ) (s1 , q0 ) (s1 , q0 ) (s2 , q0 )

DR

O autmato A3 aceita a linguagem constituda pelas palavras de alfabeto {a, b, c} que tm algum a, terminam em b e no tm cs. Se num autmato produto se modicar o valor de F3 podemos obter um autmato que reconhece a reunio das linguagens de A1 e A2 . O autmato A3 aceita uma palavra se pelo menos um dos autmatos A1 ou A2 aceitar:

T
b (s0 , q1 ) (s1 , q1 ) (s2 , q1 ) (s0 , q1 ) (s1 , q1 ) (s2 , q1 ) c (s2 , q0 ) (s2 , q0 ) (s2 , q0 ) . (s2 , q0 ) (s2 , q0 ) (s2 , q0 )

e a funo delta 3 dada por

Proposio 4.11 L(A3 ) = L(A1 ) L(A2 ). Problema 36 Demonstra a Proposio 4.11. Exemplo 4.12 Para o exemplo do Exerccio 4.10 para se obter um autmato para a reunio da linguagens, A3 , basta considerar o conjunto de estados nais constitudo pelos pares em que pelo menos um dos estados seja nal, F3 = {(s1 , q0 ), (s0 , q1 ), (s1 , q1 ), (s2 , q1 )}. O diagrama do autmato da reunio A3 ca: A3

AF
a (s1 , q0 ) b a a c a (s0 , q0 ) b (s0 , q1 ) (s1 , q1 ) b c c c b (s2 , q0 ) (s2 , q1 ) a, c a, c

DR
A1

Exemplo 4.13 Considera os seguintes autmatos nitos determinsticos: A2

s0

s1

a, b

s2

a, b a, b Como os autmatos no so completos, a funo de transio para o autmato produto :


42

T
b b q0 b a q1 a, b q2

O autmato para a interseco A reconhece a linguagem {a} {b} (ou seja, ) e o da reunio A , reconhece a linguagem {a} {b}. Os diagramas para o autmato da interseco e da reunio, so respectivamente: A A

(s0 , q0 ) a b

(s2 , q1 ) a, b (s2 , q2 )

Problema 37 Exemplica todas as construes anteriores considerando as linguagens A = {aa} e B = {bbb} de alfabeto {a, b} e os respectivos autmatos.

4.2

Autmatos nitos no determinsticos (NFA)

DR
43

Muitas vezes, para facilidade formal de demonstrao ou por uma expressividade mais evidente, optamos por outro tipo de autmatos nitos, os autmatos no determinsticos, para representar linguagens regulares. Estes, como vamos ver, tm uma composicionalidade evidente, tornando as operaes elementares das expresses regulares (concatenao, disjuno e fecho de Kleene) em transformaes simples nesta classe de autmatos. Em vez de termos um autmato, em que no temos que tomar decises sobre qual o caminho que vamos tomar ao ler uma palavra, passamos a ter um autmato em que de um estado, e lendo um dado smbolo, podemos ir para diversos estados. Mesmo o estado em que comeamos a ler uma palavra pode no ser nico. Um NFA pode ter um conjunto no singular de estados iniciais e o estado que se usa para comear a ler uma palavra uma das escolhas que temos que fazer. Denio 4.14 (NFA) Um autmato nito no determinstico (NFA) um quntuplo ordenado S, , , I, F em que:

AF
(s1 , q2 ) (s0 , q0 ) a b (s1 , q2 ) a, b a, b a, b (s2 , q1 ) a, b (s2 , q2 )

T
a, b

3 (s0 , q0 ) (s1 , q2 ) (s2 , q1 ) (s2 , q2 )

a (s1 , q2 ) (s2 , q2 ) (s2 , q2 ) (s2 , q2 )

b (s2 , q1 ) (s2 , q2 ) (s2 , q2 ) (s2 , q2 )

S um conjunto nito, no vazio, a que chamamos o conjunto dos estados; um conjunto nito, no vazio, que constitui o alfabeto;

I, com I S e I = , o conjunto de estados iniciais; F, com F S, o conjunto dos estados nais.

Exemplo 4.15 Considera o NFA A = {s0 , s1 }, {0, 1}, , {s0 }, {s1 } com (s0 , 0) = {s0 , s1 } (s0 , 1) = {s0 }

DR
com a seguinte denio recursiva: 44

Como o estado do autmato, resultante da leitura de uma palavra, passa a ser ento dependente da (ou das) escolha(s) que tenhamos feito ao longo desse processo, dizemos que uma palavra aceite por um NFA, se existir um conjunto de escolhas que nos conduza a um estado nal. Para captar esta possibilidade de escolha dos diversos percursos que podemos percorrer com a leitura de uma mesma palavra, a funo de transio de um NFA, no faz corresponder a cada par (estado, letra) um s novo estado mas sim um conjunto de estados. A funo de transio estendida vai fazer corresponder para cada palavra, no um conjunto de estados para cada estado de partida, mas um conjunto de estados para cada conjunto de estados que representa as diversas situaes resultantes das diferentes possveis escolhas at a feitas. Ento, da mesma forma que foi feito para os autmatos determinsticos (DFA) podemos denir uma funo de transio estendida : P(S) P(S)

AF
0, 1 s0 0 s1

Podemos ento denir a linguagem representada por um NFA.

(X ) ((X P(S) ) (X, ) = (

(X) (X P(S) (X, ) = X)

T
(s, ), )).
sX

uma funo parcial : S P(S), chamada funo de transio;

(4.4)

Denio 4.16 (Linguagem representada por um NFA) Seja A = S, , , I, F um NFA. A linguagem L(A) representada por A dene-se como L(A) = { | (I, ) F = }, em que denida como atrs. (4.5)

Uma outra formulao pode ser dada a esta denio 4.16 que, por vezes, se torna bastante cmoda para provar certas proposies. Em vez de utilizarmos os possveis conjuntos de estados correspondentes avaliao sucessiva de (I, ), podemos referir directamente o conjunto de estados que conduzem, com sucesso, a avaliao de uma palavra de um estado inicial a um estado nal.

AF
(X, ) = ((X, ), ). (X, ) = ((X, ), ). = ((X, ), ) = (((X, ), ), ) = ((X, ), ) = ((X, ), ). 45

Lema 4.17 Seja A = S, , , I, F um NFA e = 1 2 . . . || , condio necessria e suciente para que L(A), que (s0 , s1 , . . . , s|| S) (s0 I s|| F (i [0, ||[ si (si1 , i ))). Dem. A demonstrao sai directa, da Denio 4.16 e do enunciado do lema. Problema 38 Demonstra o Lema 4.17. (4.6)

Lema 4.18 Seja A = S, , , I, F uma NFA e com = para algum e . Ento, para qualquer conjunto de estados X S,

Dem. A demonstrao segue por induo sobre o comprimento de ||. Se || = 0 a proposio no faz sentido, pelo que comecemos por provar para de comprimento unitrio, ou seja para . Nesse caso temos trivialmente que, para qualquer conjunto de estados X,

DR
(X, ) = (X, )

Suponhamos, ento, que para qualquer palavra , com || < n, se se tiver = ento, para qualquer conjunto de estados X, (X, ) = ((X, ), ). Seja ento uma palavra tal que || = n e = . Ento seja e tal que = . Ento = com | | < n. Ento (pela denio de (4.4)) (pela hiptese de induo) (pela denio de (4.4))

Portanto o Lema vlido para qualquer palavra de qualquer comprimento.

A linguagem LR a linguagem de alfabeto , denida como: LR = { | R L}.

( ) (( ) ()R = R ).

() ( {} R = )

Denio 4.20 (autmato reverso) Seja A = S, , , I, F um NFA, denimos como o seu autmato reverso, o NFA AR = S, , R , F, I com R : S P(S)

Proposio 4.21 Seja A um NFA, ento

Dem. A demonstrao trivial, usando o Lema 4.17.

DR
s0 1 s1 1 0, 1 s0 0 s1 1

Exemplo 4.22 Consideremos o NFA (neste caso at um DFA) dado pelo diagrama seguinte, que representa a linguagem das palavras de alfabeto = {0, 1} que tm 110 como prexo:
0, 1 s2 0 s3

A linguagem das palavras, com o mesmo alfabeto, que tm 011 como suxo, tem o seguinte NFA como representante.
1

Problema 39 Demonstra a Proposio 4.21.

AF
(s, ) {x S | (x, ) s} L(A)R = L(AR ).
s2 s3

T
46

Denio 4.19 (linguagem reversa) Seja L uma linguagem de alfabeto , e R : a funo dada pela seguinte denio indutiva (ver 2.9):

Teorema 4.23 (Mtodo de construo de subconjuntos) Seja A um autmato nito no determinstico, ento existe um autmato nito determinstico A tal que L(A) = L(A ).

Dem. Seja A = S, , , I, F o NFA. Consideremos o DFA A = P(S), , , I, F que F e = {X S | X F = }

T
(s, ).
sX

em

trivial vericar que este novo DFA est bem denido. Necessitamos provar somente a equivalncia entre os dois autmatos. Comecemos por denir : P(S) P(S), indutivamente, como (X, ) = X (X, ) = ( (X, ), ),

DR
Suponhamos ento que 47

e provemos, por induo sobre o comprimento de ( ), que (I, ) = (I, ).

Se || = 0, e portanto = , tem-se, pela denio, que (I, ) = I = (I, ).

AF
: P(S) P(S) (X, ) ( (|| < n (I, ) = (I, ))).

Seja com || = n. Ento = para algum com | | = n 1.

(I, ) = (I, ) = ((I, ), ) = ( (I, ), )


s (I, )

= =

(s, )

(s, ),

Logo L(A) = L(A ).

Exemplo 4.24 Consideremos o NFA representado pelo seguinte diagrama:

DR
1 0 1 s0 0 1 s2 0 1

Este autmato representa a linguagem das representaes binrias que correspondem a inteiros que no so mltiplos de 3, concatenada com a linguagem das palavras que comeam com um 1 e tm um nmero mpar de 0s. Para obtermos um DFA equivalente a este NFA, prossigamos com a construo dos subconjuntos que resulta do Teorema anterior. Tem-se 48

AF
= ( (I, ), ) = (I, ) = (I, )
s1 1 s3 0 s4 1 0 1

s (I, )

T
(pelo Lema 4.18) (pela hiptese de induo) (pela denio de ) (pela denio de )

O estado inicial o estado {s0 }, e so nais todos os estados a cujo nome pertence s4 . O diagrama do DFA resultante , ento, o seguinte.
1 0 0 1

AF
{s2 } 1 {s2 , s3 } {s1 , s4 } 1 1 {s0 , s3 , s4 } 0 0 0 1 1 {s1 } 1 0 {s0 , s3 } 1 1 {s0 , s4 } 0 1 1 0 {s1 , s3 } {s2 , s4 } 0 b b a b a b a b a b b

{s0 } {s1 } {s2 } {s0 , s3 } {s2 , s3 } {s1 , s3 } {s0 , s4 } {s1 , s4 } {s2 , s4 } {s0 , s3 , s4 } {s1 , s3 , s4 } {s2 , s3 , s4 }

0 {s0 } {s2 } {s1 } {s0 , s4 } {s1 , s4 } {s2 , s4 } {s0 , s3 } {s2 , s3 } {s1 , s3 } {s0 , s3 , s4 } {s2 , s3 , s4 } {s1 , s3 , s4 }

1 {s1 } {s0 , s3 } {s2 , s3 } {s1 , s3 } {s2 , s3 } {s0 , s3 } {s1 , s4 } {s0 , s3 , s4 } {s2 , s3 , s4 } {s1 , s3 , s4 } {s0 , s3 , s4 } {s2 , s3 , s4 }

0 {s0 }

DR
A:
b

Problema 40 Considera os autmatos nitos no-determinsticos representados pelos seguintes diagramas:

Diz quais das seguintes palavras so aceites por A ou B:

1.

T
{s1 , s3 , s4 } 0 0 {s2 , s3 , s4 }

B:

49

2. aa 3. aba 4. abba 6. abab

Problema 41 Constri um autmato nito no-determinstico que reconhea a linguagem do alfabeto = {0, 1} das palavras com um 1 na terceira posio a contar do m. Problema 42 Considera o seguinte autmato nito no-determinstico representado pelo seguinte diagrama:

Converte, pela construo dos subconjuntos, o autmato num autmato nito determinstico. Problema 43 Seja A o autmato nito de alfabeto {a, b, c} representado pelo diagrama seguinte.

DR
a, b, c 0 a 1

1. Qual a linguagem reconhecida pelo autmato A? Porqu?

2. Usando o mtodo da construo de subconjuntos, determina um autmato determinstico que seja equivalente a A.

3. Recorda que se um dado autmato determinstico S, , , s0 , F em que uma funo total (no encrava), reconhece L, ento o autmato S, , , s0 , S\F reconhece \ L (isto , a linguagem complementar de L). Por que que a linguagem reconhecida pelo autmato seguinte no a complementar da linguagem reconhecida por A?
b 2 b 3

AF
a a, b 0 1 b a, b, c 0 a 1 b 2 b 3

T
50

5. bba

4.3

Autmatos no determinsticos com transies por (NFA)

Exemplo 4.25 O NFA seguinte representa o Fecho de Kleene da linguagem das representaes binrias dos inteiros congruentes com 2, mdulo 3.
s2

Denio 4.26 (NFA) Um autmato nito no-determinstico com transies por (NFA) um quntuplo ordenado S, , , I, F em que S um conjunto nito, no vazio, a que chamamos o conjunto dos estados;

DR
51

um conjunto nito, no vazio, que constitui o alfabeto; uma funo parcial : S {} P(S), chamada funo de transio; I, com I S e I = , o conjunto de estados iniciais; F, com F S, o conjunto dos estados nais.

O conceito de Fecho por , a seguir formalizado, corresponde ao conjunto de estados que se podem atingir a partir de um dado estado viajando somente por transies por . Denio 4.27 (Fecho por de um conjunto de estados) Seja A = S, , , I, F um NFA, e seja X S um conjunto de estados de A. Denimos indutivamente o

AF
0 1 0 1 1 s0 s1 0 s3

Por vezes, seja pela sua expressividade intrnseca seja por facilitar construes formais, usamos NFAs que admitem transies por . classe destes autmatos designamos normalmente por NFA. Num NFA, de um estado seu no s podem partir transies por um mesmo smbolo para diversos estados (como num NFA) como podem existir transies para outros estados, que em vez de consumirem um caracter de , consomem . Quando do estado s1 temos uma transio por para o estado s2 , isso signica que quando chegamos a s1 (vindos de outro estado) podemos optar por ir (ou no) para o estado s2 , sem que para isso tenhamos que consumir algum caracter.

seguinte conjunto: F0 (X) = X,

Fn (X) =

Ento o fecho por de X (F (X)) ca denido como: F (X) = Fn (X).

Como se trata de um autmato nito, isto , com um nmero nito de estados, este conjunto est trivialmente bem denido. Quando X = {s} tambm se denomina F (X) por fecho por de s e pode-se designar por F (s). Exemplo 4.28 Considerando o NFA do Exemplo 4.25 podemos calcular F ({s0 }). Tem-se F0 ({s0 }) = {s0 },

Donde, F ({s0 }) =

DR
com a seguinte denio recursiva: com F (X) como est denido em 4.27. 52

Para denir formalmente a linguagem representada por um NFA, comecemos, como zemos para os NFA, por estender a funo de transies . Ento, seja A = S, , , I, F um NFA, denimos como : P(S) P(S)

AF
F1 ({s0 }) = (s0 , ) = {s1 , s3 }, = {s0 } F2 ({s0 }) = (s1 , ) (s3 , )
2 n=0

Fn ({s0 }) = {s0 , s1 , s2 }.

T
sX

F1 (X) =

(s, ), (s, ).

sFn1 (X)

n0

(X )((X P(S) ) (X, ) =

(X)(X P(S) (X, ) = F (X)),


sX

(4.7) F ((s, )), ), (4.8)

Denio 4.29 (linguagem representada por um NFA) Seja A = S, , , I, F um NFA. A linguagem, L(A), representada por A dene-se como L(A) = { | (F (I), ) F = }, em que e F so denidos como atrs. (4.9)

Podemos, como zemos para a converso de NFAs em DFAs, aplicar a denio de linguagem representada por um NFA para obter um algoritmo que encontre um DFA equivalente. Em vez disso, vamos usar a denio de fecho por de um estado para obter uma transformao de um NFA num NFA equivalente.

Dem. Seja A = S, , , I, F o NFA. Consideremos o NFA A = P(S), , , F (I), F em que F = F (X)


XF

DR
53

O NFA A est trivialmente bem denido, e a equivalncia dos autmatos segue directamente das denies das linguagens representadas por estes autmatos, respectivamente 4.29 e 4.16.

Em muitos casos, e em especial para simplicar as demonstraes, conviniente considerar NFAs com um s estado inicial e um s estado nal. O Lema seguinte mostra que tal sempre possvel. Lema 4.31 Seja A = S, , , I, F um NFA, existe um NFA, A = S , , , I , F , equivalente a A, tal que: 1. tem somente um estado inicial I = {s0 }; 2. no h transies que cheguem do estado inicial (s S )(s0 (s, ) s0 (s, ));

AF
L(A) = L(A ). : P(S) P(S) (X, ) F (s, ) .
sX

Teorema 4.30 Dado um NFA A, existe um NFA, A , tal que

3. tem somente um estado nal F = {sf }; 4. no h transies que partam do estado nal ( (sf , ) = )( (sf , ) = ). Um autmato que verique estas propriedades denomina-se normalizado.

Dem. Se o autmato A j estiver nas condies requeridas, nada h a demonstrar. Caso isso no acontea, seja S = S {s0 , sf }, com s0 , sf S. Faamos I = {s0 } e F = {sf } e tomemos como extenso de : S S s S, {} (s, ) (s, ) (s0 , ) F (I) s F (F) (s, ) {sf }.

T
54

Denio 4.32 (linguagem direita) Seja A = S, , , s0 , F uma autmato e s um seu estado. A linguagem direita de S { | (s, ) F}.

Denio 4.33 (linguagem esquerda) Seja Seja A = S, , , s0 , F uma autmato e s um seu estado. A linguagem esquerda de S { | (s0 , ) = s}.

DR

4.4

Equivalncia entre Linguagens Regulares e Linguagens Aceites por Autmatos Finitos

As linguagens aceites por autmatos nitos so precisamente as linguagens regulares, i.e. as descritas por expresses regulares. Teorema 4.34 (Kleene[Kle56]) Uma linguagem reconhecvel por um autmato nito se e s se for regular. Ou seja, o conjunto das linguagens representadas pelas expresses regulares o mesmo que o representado por DFA. Para a demonstrao deste teorema necessrio mostrar que: Qualquer linguagem descrita por uma expresso regular aceite por um autmato nito.

AF

(4.10)

Qualquer linguagem aceite por um autmato nito descrita por uma expresso regular. Existem vrios modos de converso entre estes dois modelos. Vamos para cada caso analisar alguns e indicar quais as suas caractersticas e vantagens.

4.4.1

De Expresses Regulares para Autmatos Finitos

Neste caso temos de demonstrar que:

Teorema 4.35 Seja L uma linguagem representada por uma expresso regular r, L = L(r)), ento existe um DFA A, tal que L = L(A). Pretendemos obter para cada expresso regular r um DFA equivalente. Alguns dos mtodos convertem a expresso regular r num autmato nito no determinstico equivalente, NFA. Como, pelo Teorema 4.23 apresentado na Seco 4.2, podemos transformar este NFA num DFA, temos construdo o autmato pretendido. As converses distinguem-se ainda pelo facto dos NFAs obtidos terem ou no transies por . Temos, entre outros, os seguintes algoritmos (a que habitualmente se associa um autmato com o mesmo nome): Algoritmo de Thompson: produz um NFA.

Algoritmo de Brzozowski: produz um DFA, denominado autmato de derivavas. Algoritmo de Glushkov: produz um NFA, denominado autmato de posies. Algoritmo de Antimirov: produz um NFA, denominado autmato de derivadas parciais.

DR
4.4.1.1 Algoritmo de Thompson 55

Vamos considerar os dois primeiros: algoritmo de Thompson e algoritmo de Brzozowski.

O algoritmo de Thompson [?] constri um NFAs indutivamente na denio das expresses regulares. Para cada regra indutiva da Denio 3.1, e supondo que temos um NFA correspondente a cada uma das expresses regulares (se for esse o caso) constituintes, mostramos como se pode construir um NFA que corresponde expresso regular nal. Construamos ento cada um dos NFA Ar correspondentes a cada uma das expresses regulares r obtidas pelas regras de 3.1. Em cada caso supomos conhecido o alfabeto, .

AF

i) r =

A :

s0

ii) r =

A :

s0
A :

iv) r = r + r

v) r = r r

DR
vi) r = r Ar :

Proposio 4.36 (Correo do Algoritmo de Thompson) Seja r um expresso regular. O Algoritmo de Thompson produz um NFA Ar tal que L(r) = L(Ar ). Dem. A correo de cada uma das construes simples luz da denio de linguagem associada a uma expresso regular (ver tambm a Denio 3.1). 56

AF
Ar
Ar +r :

iii) r = ,

s0

s0

Ar

Ar r :

s0

s0

T
s1 s0 s1 s1 Ar s0 s1 s1 Ar s0 s1 Ar s1 s0 s1

De notar, que depois da aplicao de cada passo deste mtodo, o autmato resultante est normalizado como indicado no Lema 4.31, isto , possui um s estado nal do qual no partem transies, assim como um estado inicial ao qual no chega qualquer transio. Pelo que ca assegurada a aplicabilidade recursiva do mtodo.

i) r = Neste caso L(r) = e A = {s0 }, , , {s0 }, . Como o conjunto de estados nais vazio temos L(A ) = = L(r)..

iii) r = ,

Neste caso L(r) = {} e A = {s0 , s1 }, , {s0 , s1 }, , {s1 } , com (s0 , = {s1 }. Pela funo de transio e sendo s1 um estado nal, temos que L(A ) = {} = L(r). Seja Ar = S , , , {s0 }, {s1 } e Ar = S , , , {s0 }, {s1 } . Temos que L(r) = L(r + r ) = L(r ) L(r ) e, por hiptese de induo, L(r ) = L(Ar ) e L(r ) = L(Ar ). Seja Ar = S, , , {s0 }, {s1 } , com S = S S {s0 , s1 } a funo denida por: (s0 , ) = {s0 , s0 }

(s1 , ) = {s1 } e (s1 , ) = {s1 }

para s S e {}, (s , ) = (s , ). Queremos provar que L(r) = L(Ar ).

para s S e {}, (s , ) = (s , ).

DR
= {s1 } 57

Se L(r) ento L(r ) ou L(r ), e por hiptese de induo L(Ar ) ou L(Ar ), respectivamente. Se L(Ar ) ento ({s0 }, ) {s1 }. E, do mesmo modo, se L(Ar ) ento ({s0 }, ) {s1 }. Em ambos os casos, como F ({s1 }) = F ({s1 }) = {s1 }, temos que L(Ar ). Suponhamos que L(Ar ). Ento,

Analogamente, se L(Ar ). Logo L(Ar ) L(Ar ) L(Ar ). Seja L(Ar ). Ento pela denio de linguagem aceite por um NFA, (F ({s0 }), ) {s1 } = implica que (F ({s0 }), ) = {s1 }. Suponhamos, por

AF
(F ({s0 }), ) F ({s1 })

iv) r = r + r

(F ({s0 }), ) = ({s0 } F ({s0 }) F ({s0 }), )

ii) r = Neste caso L(r) = {} e A = {s0 }, , {s0 }, , {s0 } . Como a funo de transio no est denida para nenhum par (estado,smbolo), mas o estado incial nal temos, pela denio de , que L(A ) = {} = L(r).

(F ({s0 }), ) = ({s0 , s0 }, )

= F ( (F ({s0 }), )) F ( (F ({s0 }), )) e portanto tinhamos L(Ar ) (absurdo!). /

Mas ento L(Ar ) L(Ar ) L(Ar ). Conclumos que L(Ar ) = L(Ar ) L(Ar ) = L(r ) L(r ) = L(r + r ) = L(r). Seja Ar = S , , , {s0 }, {s1 }} e Ar = S , , , {s0 }, {s1 }} . Temos que L(r) = L(r ) L(r ) e, por hiptese de induo, L(r ) = L(Ar ) e L(r ) = L(Ar ). Seja Ar = S S , , , {s0 }, {s1 } , com a funo denida por: (s1 , ) = {s0 } Para s S e {}, (s , ) = (s , ). Queremos provar que L(r) = L(Ar ).

Para s S e {}, (s , ) = (s , ).

Seja L(r). Ento existem , tal que L(r ) e L(r ). Tem-se que L(Ar ) e L(Ar ). Como no caso anterior, tem-se que ({s0 }, ) = {s1 } e ({s0 }, ) = {s1 }. Ento, (F {s0 }, ) = (F {s0 }, ) = (F ({s1 }), )

DR
58

Logo, L(Ar ) e, assim, L(r) L(Ar ).

Seja agora L(Ar ). Ento sabemos que (F {s0 }, ) = {s1 }. Ao reconhecer a palavra temos de passar necessariamente pelo estado s1 . Seja o prexo de tal que (F ({s0 }), ) = (F ({s0 }), ) = {s1 }. (4.11)

No consumindo mais smbolos da palavra pode-se passar, por transies por , para o estado s0 e continuar a reconhecer o resto da palavra , seja

AF
= ( (F {s0 }, ), ) = (F ({s0 }), ) = {s1 }

v) r = r r

absurdo, que L(Ar ) e L(Ar ). Ento, (F ({s0 }), ) = {s1 } e (F ({s0 }), ) = {s1 }. Os estados s1 e s1 so os nicos estados nais de Ar e Ar , respectivamente, e dos nicos que se pode chegar a s1 em Ar (e sem consumir smbolos). Isto , no se poderia ter s1 (F ({s0 }), ) j que

. Tem-se que (F ({s0 }), ) = (F ({s0 }), ) = {s1 }. (4.12)

vi) r = r

Seja Ar = S , , , {s0 }, {s1 }} e, por hiptese de induo, L(r ) = L(Ar ). Seja Ar = S {s0 , s1 }, , , {s0 }, {s1 } , com a funo denida por: (s0 , ) = {s0 } (s0 , ) = {s1 } (s1 , ) = {s0 } (s1 , ) = {s1 }

Para s S e {}, (s , ) = (s , ). Queremos provar que L(r) = L(Ar ).

Temos que F (s0 ) {s0 , s0 , s1 , s1 }, F (s0 ) {s0 , s1 , s1 } e F (s1 ) {s0 , s1 , s1 }. Seja L(r). Se = ento, pela denio de , e F (s0 ), imediato que L(Ar ). Seno, existe n > 0 tal que L(r )n , isto , = 1 . . . n tal que i L(r ), 1 i n. Provamos por induo em n, que L(Ar ). Se n = 1, ento L(Ar ) e considerando F (s0 ) e F (s1 ) tem-se que L(Ar ). Suponhamos que a propriedade se verica para L(r )m , para m < n. Se L(r )n , ento = tal que L(r) e L(r )(n1) . Como no caso para n = 1, tem-se que L(Ar ), e considerando o fecho por de s1 e a hiptese de induo tem-se que L(Ar ). Conclumos que L(r) L(Ar ).

DR
59

Seja agora L(Ar ). Se = ou L(Ar ), imediato pela construo de Ar que L(r). Caso contrrio, = tal que L(Ar ) e tem de ter um prexo L(Ar ). Continuando este processo conclu-se que existe n > 0 tal que = 1 . . . n tal que i L(Ar ), isto , i L(r ), i 1 n. Ento L(r ). E, concluindo, L(Ar ) L(r ).

Exemplo 4.37 Considera a expresso regular (a + b)(a + ba + b ) . Podemos considerar os seguintes sub-autmatos: a Aa :

AF

Podemos concluir que = tal que L(Ar ) e L(Ar ), o que prova que L(Ar ) L(Ar )L(Ar ) = L(r )L(r ) = L(r).

Ab :

b a b a b

Ab :

Aa+b :

Aba :

Denotando por Aa +ba +b o autmato obtido pela unio de Aa , Aba e Ab , e considerando mais uma vez as construes para a concatenao e o fecho de Kleene, obtemos o autmato A(a+b)(a +ba +b ) , correspondente expresso regular dada:

DR
Aa+b s0 s1 s0
60

Exemplo 4.38 Se aplicarmos o mtodo anterior para obter o autmato no determinstico que reconhece a linguagem correspondente expresso regular (a+b) a(a+), obtemos (depois de eliminadas algumas transies por e respectivos estados, para simplicar):

AF
b a Aa
+ba +b

T
s1 s1

Aa :

s1 s0 s4

s2 s3 s5 a s6 s7

s8

s9

4.4.1.2

Derivadas e Algoritmo de Brzozowski

A noo de derivada duma expresso regular em relao a um smbolo, corresponde a uma representao da linguagem que se obtm quando se retira esse smbolo do incio das palavras da linguagem que a expresso regular representa. Dado um smbolo e uma linguagem L podemos denir a linguagem quociente de L por : 1 L = { | L} (4.13) Comeamos por associar a cada expresso regular r uma funo que indica se L(r) contm ou no a palavra vazia, . Denio 4.39 (Parte constante duma expresso regular) Seja () : RE RE a funo constante que dada uma expresso regular r se dene do seguinte modo: (r) = se L(r), caso contrrio.

DR
() = (r .r ) = (r ) = 61

Lema 4.40 A parte constante (r), duma expresso regular r pode-se determinar indutivamente pelas seguintes regras:

AF
() =() = , (r ) se (r ) = , (r + r ) = (r ) se (r ) = , caso contrrio. se (r ) = (r ) = , caso contrrio.

Problema 44 Prova, por induo na estrutura duma expresso regular, o lema anterior, Lema 4.40. Denio 4.41 (Derivada de uma expresso regular por um smbolo) Seja r uma expresso regular e um smbolo de . A derivada de r em relao a , denotada por D r a expresso regular que se obtm pela seguinte denio indutiva:

T
, = 62

D = D (r + r ) =D r + D r D r =(D r ).r

(4.14) (4.15) (4.16) (4.17) (4.18)

D =D = D =

Exemplo 4.42 As derivadas, em relao a a e b, para a expresso regular r, (a + b) (a + ab ) so as seguintes: Da r =Da (a + b) .(a + ab ) + ((a + b) ).Da (a + ab ) =Da (a + b).r + Da (a) + Da (ab ) =.r + .r + + .b =r + + b

Db r =Db (a + b) .(a + ab ) + ((a + b) ).Db (a + ab ) =Db (a + b).r + Db (a) + Db (ab ) =.r + .r + + .b

DR

importante notar que para obter as derivadas consideramos o facto de ser elemento neutro da concatenao e de ser elemento neutro da unio e elemento absorvente da concatenao (ver Proposio 3.8). Tambm devem ser consideradas as propriedades associativa, comutativa e de idempotncia da unio, e que iremos denotar por propriedades ACI.

Exemplo 4.43 As derivadas, em relao a a e a b, para a expresso regular r, (a + b)(a + ba + b ) so as seguintes: Da r = Da (a + b).(a + ba + b ) = (a + ba + b ) = Db r

Lema 4.44 Para toda a expresso regular r RE, e para todo o smbolo , L(D r) = 1 L(r).

AF
=r

D (r .r ) =(D r ).r + (r ).D r

Problema 45 Prova, por induo na estrutura duma expresso regular, o lema anterior, Lema 4.44. A noo de derivada em relao a um smbolo pode-se generalizar para palavras . Denio 4.45 (Derivada em relao a uma palavra) Seja r uma expresso regular e uma palavra de . A derivada de r em relao a uma expresso regular, denotada por D r, e que dene-se indutivamente no tamanho de : D r =r (4.19) (4.20)

D r =D (D (r))

Exemplo 4.46 Considera a expresso regular r dada por (a + b)(a + ba + b ) do Exemplo 4.43. Vamos calcular a derivada desta expresso regular r em relao palavra aab. Pela Denio 4.45, tem-se que Daab = Db (Da (Da r))). Pelo Exemplo 4.43, tem-se que Da r = (a + ba + b ) . Derivando novamente por a tem-se: Da (Da r) =(Da (a ) + Da (ba ) + Da b )(a + ba + b ) =(a + + )(a + ba + b ) =a (a + ba + b )

e, nalmente,

Db (Da (Da r)) =Db (a ).(a + ba + b ) + (a )Db ((a + ba + b ) ) =Db (a + ba + b ).(a + ba + b ) =(a + b )(a + ba + b )

DR
63

Como no caso de um smbolo , dada uma palavra e uma linguagem L podemos denir a linguagem quociente de L por : 1 L = { | L} (4.21)

Lema 4.47 Para toda a expresso regular r RE, e para todo o smbolo , L(D r) = 1 L(r). Problema 46 Prova, por induo na estrutura duma expresso regulare no tamanho da palavra, o lema anterior, Lema 4.47.

AF

Denio 4.48 (expresses regulares similares) Duas expresses regulares dizemse similares se uma pode ser transformada na outra por aplicao das seguintes regras de equivalncia:

T
r = r = +a a +a a +a a 64

r = r = r

r + (r + r ) = (r + r ) + r r+r = r +r r+r= r

(A) (C) (I)

e duas expresses regulares dizem-se no similares se no forem similares.

Exemplo 4.49 As seguintes expresses regulares so similares: (.a + .a ) + a e a. Um facto importante demonstrado por J. Brzozowski [Brz64] o de que o conjunto de derivadas duma expresso regular em relao a todas as palavras (ou, simplesmente o conjunto de derivadas duma expresso regular) nito, desde que se considerem as propriedades algbricas atrs referidas. Proposio 4.50 (Brzozowski) O conjunto Dr de derivadas no similares duma expresso regular r RE nito. importante constatar que se no se considerassem expresses regulares similares, o conjunto de derivadas duma expresso regular podia ser innito. Exemplo 4.51 Seja a expresso regular a s palavras da forma an , para n 1. Da (a ) =a a e considerem-se as derivadas em relao

DR
Daa (a ) =a a Daaa (a ) =a a . . .

Exemplo 4.52 Vamos calcular as derivadas da expresso regular, r dada por (a + b)(a +ba +b ) . Para tal consideramos as palavras de {a, b} por ordem lexicogrca. Comeamos por atribuir uma ordem aos smbolos do alfabeto, neste caso, a < b. Depois consideramos a palavra de tamanho 0 (), depois as de tamanho 1, a e b, em seguida as de tamanho 2, (aa, ab, ba e bb), e assim sucessivamente at no aparecerem novas derivadas (no similares). Pela Proposio 4.50 sabemos que o processo termina.

AF

Tem-se: D r =r = (a + b)(a + ba + b ) Db r =r

Daa r =Da (Da r) = Da r = Da (a + ba + b )r = a r = r Dab r =Db (Da r) = Db r = (a + b )r = r Dba r =Da (Db r) = Da r = r Dbb r =Db (Db r) = Db r = (a + b )r = r

Daaa r =Da (Da (Da r)) = Da (Da r ) = Da r = a r + (a )Da r = r Daab r =Dab (Da r) = Db (Da r ) = Db r = Db r = r Daba r =Dba (Da r) = Da (Db r ) = Da r = r Dabba r =Dbba (Da r) = Da (r ) = r

Dabb r =Dbb (Da r) = Db (Db r ) = Db r = b r + r = r Dabbb r =Dbbb (Da r) = Db (r ) = Db (b )r + Db r = r

Como nestes duas ltimas derivaes no surgiram novas expresses, o processo termina e conclumos que Dr = {r, r , r , r , r }. imediato, do exemplo anterior, que em vez de se ir considerando sucessivamente palavras de , equivalente ir derivando em relao a cada smbolo do alfabeto as expresses regulares que vo aparecendo no processo. Problema 47 Verica o procedimento agora referido para o Exemplo 4.52.

DR
r (s, ) = D (s) Fr = {s Dr | (s) = } 65

Denio 4.53 (Autmato de Derivadas (ou de Brzozowski)) Seja r uma expresso regular e Dr o conjunto seu conjunto de derivadas no similares. O autmato de derivadas Ar = Dr , , r , {r}, Fr onde r e Fr so denidos por: s Dr ,

Proposio 4.54 (Brzozowski) Para toda a expresso regular r, L(Ar ) = L(r). Exemplo 4.55 Seja mais uma vez a expresso regular r, dada por (a + b)(a + ba + b).

AF

Da r =(a + ba + b ) = r

No Exemplo 4.52 j calculamos o conjunto das derivdas Dr . O autmato das derivadas de r Ar = Dr , {a, b}, r , {r}, Fr , onde

Fr

= {r , r , r , r } r (r, a) r (r , a) r (r , a) r (r , a) r (r , a) = = = = =

e com o seguinte diagrama:

de salientar que este autmato um DFA e, ainda assim menor que o NFA obtido no Exemplo 4.37. Problema 48 Compara os autmatos obtidos nos Exemplos 4.37 e 4.55, obtendo um autmato determinstico equivalente ao NFA do Exemplo 4.37.

DR
4.4.2
66

De Autmatos Finitos para Expresses Regulares

Existem diversas formas de se obter uma expresso regular que represente a mesma linguagem que um dado autmato nito reconhece. Aqui exporemos um mtodo conhecido como Algoritmo de Eliminao de Estados (AEE). Vamos supor que o autmato nito um NFA e est normalizado, de acordo com o Lema 4.31: i) Asseguramos que existe um s estado inicial do autmato, s0 , tal que no existe nenhuma transio que termine nesse estado. Se no for esse o caso, acrescentamos um novo estado s , que passa a ser o estado inicial do autmato, com uma nica transio- para o estado s0 .

AF
a a r r a, b r b a b a b b r r

Da r = r Da r = r Da r = r Da r = r Da r = r

T
r (r, b) r (r , b) r (r , b) r (r , b) r (r , b) = = = = = Db r = r Db r = r Db r = r Db r = r Db r = r

Dr = {(a + b)(a + ba + b ) , (a + ba + b ) , a (a + ba + b ) , (a + b )(a + ba + b ) , b (a + ba + b ) + (a + b )(a + ba + b ) } = {r, r , r , r , r }

Generalizamos o conceito de autmato nito a um autmato cuja funo de transio passa a ser de uma diferente natureza: : S RE S

por forma a que as transies no sejam etiquetadas com smbolos do alfabeto mas sim com expresses regulares com o mesmo alfabeto.

S um conjunto nito, no vazio, a que chamamos o conjunto dos estados; um conjunto nito, no vazio, que constitui o alfabeto do autmato; uma funo total : S S RE chamada funo de transio; s0 , com s0 S, o estado inicial; F, com F S, o conjunto dos estados nais. Vamos supor que (s, s ) = sempre que transio entre s S e s S no seja dada explicitamente. Notar que qualquer DFA, NFA ou NFA um GFA. Problema 49 Mostra a armao anterior. 4.4.2.1

Algoritmo de Eliminao de Estados (AEE)

DR
s1 r s2 r r s r
67

Seja A um autmato nito normalizado.

iii) Comeamos por obter um GFA equivalente: fazem-se colapsar transies com as mesmas origens e destinos, sendo a transio restante etiquetada com a unio das expresses regulares das transies agora eliminadas.

AF

Denio 4.56 (Autmato Finito Generalizado (GFA)) Um GFA um quintplo S, , , s0 , F em que:

T
s1 r+r s2 r+r s

ii) Asseguramos que existe um s estado nal, e que deste estado no parte nenhuma transio. Se no for este o caso, acrescentamos um novo estado s , que passa a ser o nico nal, e, para cada estado nal do autmato original, criamos uma transio- para este novo estado.

iv) Todos os estados, diferentes do inicial e do nal, que no tenham, pelo menos, uma transio que deles parta e uma outra que a eles chegue, so eliminados e com eles as transies que os referem.

r s1 r s0 r r

s2

vi) Eliminamos sucessivamente todos os estados, exceptuando o inicial e o nal, procedendo para cada um deles do seguinte modo. Para cada estado s que queremos eliminar, para cada transio s s que chega a s r ((s , s) = r) e para cada transio s s que parte de s ((s, s ) = r ), construmos uma nova transio s s . Por m, eliminamos o estado s e todas as transies que o referem. No nal de cada passo deste necessrio aplicar de novo os passos iii) e v).
rr r

DR
s r r s2 s2 s r
e a expresso regular que procurvamos r. Exemplo 4.57 Considera o seguinte NFA: 68

No m deste processo, o autmato resultante deve ser do tipo

AF
s3 s3 s1 r r s1 s1 rr rr s1

T
s1 r s0 r r rr s2

v) Nos restantes, eliminamos os lacetes passando a expresso regular que etiqueta cada sada a ser a concatenao do fecho de Kleene da expresso que constava no lacete agora eliminado com a expresso regular que constava nessa transio de sada.

rr

s2

rr

s2

b b 0

Normalizando e transformando em GFA tem-se

No h estados que no so atingveis ou de onde no partem transies. Eliminando os lacetes (neste caso s no estado 1), tem-se o GFA seguinte

DR
b 4 0 a+b 1 ba b 2 5
69

Comeamos por eliminar o estado 3 obtendo o GFA

AF
b b a+b 4 0 1 a b a 3 b b 2 5 ba 3 b bb

T
1 3 b b 2

a, b a

Consideremos, para encurtar um pouco as expresses, = b ab. Ento eliminando o lacete existente em S1 temos

Eliminando, agora, os estados 0 e 2 temos

DR
4
70

Eliminando primeiro o lacete em 1 e depois o prprio estado 1 obtemos

AF
4 a+b bb b 0 1 (b a + ) 2 5 (b a + )(a + b) + b bb 1 bb 4 a+b 5 (a + b)( (b a + )(a + b) + b bb) b b 5

Donde podemos concluir que a expresso regular (a + b)( (b a + )(a + b) + b bb) b b equivalente ao NFA dado. de salientar que a ordem pela qual se eliminam os estados do GFA inuencia a forma e o tamanho da expresso regular obtida. Diferentes ordenaes odem conduzir a expresses regulares muito diferentes, embora todas equivalentes. Em cada passo tambm se poder tentar simplicar as expresses regulares obtidas.

T
2 5

a+b

b ab bb 1 b b a + b ab

Problema 50 Obtem uma expresso regular equivalente ao NFA do Exemplo 4.57, utilizando uma ordem de eliminao de estados diferente da usada no exemplo referido.

DR
71

AF

You might also like