Autómatos finitos - dcc.fc.up.ptrvr/resources/MC/C4.pdf · 1 Exercício 34 Seja A = hQ,⌃,,q...

39
Draft-v0.2.1 4 Autómatos finitos Neste capítulo vamos introduzir outras estruturas que permitem caracterizar as linguagens regulares. A principal vantagem, destas novas estruturas, sobre a representação com expressões regulares é a de terem, naturalmente, associado um algoritmo que testa (em tempo linear) a pertença de uma palavra à linguagem que representam. Para além desta característica, a expressividade aparente dos autómatos, isto é, a facilidade com que somos capazes de os escrever, é muito maior do que a das expressões regulares. 4.1 Autómatos finitos determinísticos Definição 4.1 (DFA) Um autómato finito determinístico (DFA) é um quintúplo ordenado hQ, , δ,q 0 ,Fi em que: Q é um conjunto finito, não vazio, a que chamamos o conjunto dos estados; é um conjunto finito, não vazio, que constitui o alfabeto do autómato; δ é uma função total δ : S ! S, chamada função de transição; q 0 , com q 0 2 Q,éo estado inicial; F, com F Q,éo conjunto dos estados finais. Um DFA é muitas vezes representado informalmente por um diagrama , por um digrafo com estados e arcos etiquetados. Os arcos dos autómatos costumam designar-se por transições . Exemplo 4.2 O autómato A = h{q 0 ,q 1 }, {0, 1}, δ,q 0 , {q 1 }i com δ(q 0 ,0)= q 1 δ(q 0 ,1)= q 0 δ(q 1 ,0)= q 1 δ(q 1 ,1)= q 0 , é representado pelo seguinte diagrama: 33

Transcript of Autómatos finitos - dcc.fc.up.ptrvr/resources/MC/C4.pdf · 1 Exercício 34 Seja A = hQ,⌃,,q...

Page 1: Autómatos finitos - dcc.fc.up.ptrvr/resources/MC/C4.pdf · 1 Exercício 34 Seja A = hQ,⌃,,q 0,Fi um autómato finito determinístico e q um estado de A,talque?(q,)=q, 8 2 ⌃.

Draft-v

0.2.14

Autómatos finitos

Neste capítulo vamos introduzir outras estruturas que permitem caracterizar as linguagens regulares. Aprincipal vantagem, destas novas estruturas, sobre a representação com expressões regulares é a de terem,naturalmente, associado um algoritmo que testa (em tempo linear) a pertença de uma palavra à linguagemque representam. Para além desta característica, a expressividade aparente dos autómatos, isto é, a facilidadecom que somos capazes de os escrever, é muito maior do que a das expressões regulares.

4.1 Autómatos finitos determinísticos

Definição 4.1 (DFA) Um autómato finito determinístico (DFA) é um quintúplo ordenado hQ,⌃, �, q0, Fiem que:

Q é um conjunto finito, não vazio, a que chamamos o conjunto dos estados;

⌃ é um conjunto finito, não vazio, que constitui o alfabeto do autómato;

� é uma função total � : S⇥ ⌃ ! S, chamada função de transição;

q0, com q0 2 Q, é o estado inicial;

F, com F ✓ Q, é o conjunto dos estados finais.

Um DFA é muitas vezes representado informalmente por um diagrama , por um digrafo com estados earcos etiquetados. Os arcos dos autómatos costumam designar-se por transições .

Exemplo 4.2 O autómato A = h{q0, q1}, {0, 1}, �, q0, {q1}i com

�(q0, 0) = q1 �(q0, 1) = q0 �(q1, 0) = q1 �(q1, 1) = q0,

é representado pelo seguinte diagrama:

33

Page 2: Autómatos finitos - dcc.fc.up.ptrvr/resources/MC/C4.pdf · 1 Exercício 34 Seja A = hQ,⌃,,q 0,Fi um autómato finito determinístico e q um estado de A,talque?(q,)=q, 8 2 ⌃.

Draft-v

0.2.1

q0 q1

0

1

1

0

O estado inicial é marcado com uma seta a entrar no nó respectivo e os estados finais com umadupla linha. Usalmente também se descreve a função de transição por uma tabela onde cada colunacorresponde a um símbolo e cada linha a um estado. Os estados iniciais são marcados com um setae os finais com ?. Neste caso, seria

� 0 1

! q0 q1 q0

?q1 q1 q1.

Informalmente, para verificarmos se uma dada palavra pertence à linguagem definida por um dadoautómato, se uma palavra é “reconhecida” ou “aceite” pelo autómato, procedemos da seguinte forma:

1. Começamos por nos “situar” no estado inicial do autómato. Aquele que tem, por convenção, umapequena seta a apontar para ele.

2. Para cada uma das letras da palavra, e por ordem, “passamos” para o estado do autómato para o qual“aponta” a transição 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 quenos “encontramos” determina o sucesso, ou não, da “aceitação” da palavra: se o estado for final (umdaqueles que está representado com linha dupla) a palavra é “aceite”, e não o é, caso contrário.

Para definir rigorosamente este processo e assim obtermos uma definição formal da linguagem associadaa um DFA, comecemos por definir indutivamente, para cada autómato, a seguinte extensão natural de � :

� : Q⇥ ⌃? -! Q

em que

(8q) (q 2 Q ) �(q, ") = q)

(8q 8� 8⇢) ((q 2 Q^ � 2 ⌃^ ⇢ 2 ⌃?) ) �(q,�⇢) = �(�(q,�), ⇢)).(4.1)

Definição 4.3 (Linguagem representada por um DFA) Seja A = hQ,⌃, �, q0, Fi um DFA. A lin-guagem L(A) representada por A define-se como

L(A) = {⇢ 2 ⌃? | �(q0, ⇢) 2 F}. (4.2)

Exemplo 4.4 A palavra 100 pertence à linguagem definida pelo autómato A (Exemplo 4.2) porque

�(q0, 100) = �(�(q0, 1), 00) = �(q0, 00)

= �(�(q0, 0), 0) = �(q1, 0)

= �(�(q1, 0), ") = �(q1, ")

= q1 2 F.

A palavra 01 não pertence à mesma linguagem porque

�(q0, 01) = �(�(q0, 0), 1) = �(q1, 1)

= �(�(q1, 1), ") = �(q0, ")

= q0 /2 F.

34

Page 3: Autómatos finitos - dcc.fc.up.ptrvr/resources/MC/C4.pdf · 1 Exercício 34 Seja A = hQ,⌃,,q 0,Fi um autómato finito determinístico e q um estado de A,talque?(q,)=q, 8 2 ⌃.

Draft-v

0.2.1

Exercício 30 Seja B a linguagem das palavras de alfabeto {0, 1} que representam em binário númerosmúltiplos de 5.

1. Descreve um autómato finito determinístico que reconheça esta linguagem.2. Para o autómato encontrado, prova que o mesmo reconhece a linguagem B.

Exercício 31 Considera o autómato finito representado na figura.

q0 q1 q2

0

1 1

0

0, 1

1. Constrói uma descrição formal para este autómato como um tuplo A = hQ,⌃, �, q0, Fi;2. Indica quais das seguintes palavras são aceites por este autómato: 101001, 111111, 11001010111 e

0000011000;3. Diz (em português) qual a propriedade que uma palavra de {0, 1}? têm de ter para ser aceite por este

autómato.

Exercício 32 Considera os seguintes autómatos finitos do alfabeto ⌃ = {0, 1},

A = h{q0, q1},⌃, �A, q0, {q1}iB = h{q0, q1, q2},⌃, �B, q0, {q1, q2}i

com as funções de transição dadas por:

�A(q0, 0) = q0 �A(q0, 1) = q1

�A(q1, 0) = q0 �A(q1, 1) = q1

�B(q0, 0) = q1 �B(q0, 1) = q2

�B(q1, 1) = q2 �B(q2, 0) = q1

1. Representa cada um dos autómatos por um digrafo.2. Diz quais das seguintes palavras são aceites por algum dos autómatos:

" 101 111

11001 01010 00011

3. Diz quais as linguagens reconhecidas pelos autómatos.

Definição 4.5 (Equivalência de autómatos) Dois autómatos dizem-se equivalentes se representa-rem a mesma linguagem.

Por vezes, por comodidade, relaxa-se um pouco a definição de DFA não exigindo que a função � :Q⇥⌃ ! Q seja total. Ou seja, permitindo que para algum estado não esteja definida a transição para algumsímbolo. Um autómato finito determinístico deste tipo A = hQ,⌃, �, q0, Fi em que a função de transiçãonão é total, normalmente designado como não completo, considera-se como abreviatura do DFA completo

35

Page 4: Autómatos finitos - dcc.fc.up.ptrvr/resources/MC/C4.pdf · 1 Exercício 34 Seja A = hQ,⌃,,q 0,Fi um autómato finito determinístico e q um estado de A,talque?(q,)=q, 8 2 ⌃.

Draft-v

0.2.1

A 0 = hQ [ {q⌦},⌃, � 0, q0, Fi em que q⌦ /2 Q e definindo

� 0 : (Q [ {q⌦})⇥ ⌃ -! S [ {q⌦}

(q,�) 7-!��(q,�) quando �(q,�) está definidoq⌦ nos outros casos.

(4.3)

Exemplo 4.6 O seguinte autómato não completo

q0 q1 q20

1

0

0

é a abreviatura deste outro autómato ( completo)

q0 q1 q2

q⌦

0

1

1

0

0

1

0, 1

Exercício 33 Descreve um autómato finito que reconheça a linguagem das palavras de {0, 1}? que. . .1. não têm nenhum “1”;2. são diferentes de “1”;3. contêm pelo menos algum “0” e algum “1”;4. têm comprimento não inferior a 2;5. não contêm “101” como subpalavra-palavra;6. terminam em “1”;7. terminam em “1” mas não em “111”;8. têm pelo menos dois “0” consecutivos;9. terminam em “1” e têm pelo menos dois “0” consecutivos;

10. têm um número ímpar de “0” ou um número par de “1”;11. têm no máximo um par de “0” e um par de “1” consecutivos;12. são representação binária de inteiros positivos múltiplos de 4;13. são representação binária de inteiros positivos múltiplos de 2 mas não de 3;14. contêm (algures) pelo menos três “0” seguidos, mas não contêm dois ou mais “1” seguidos’15. se têm algum par de “0” adjacentes, este aparece antes de qualquer par de “1” adjacentes;16. não terminam em “1101” nem em “1011”;17. têm igual número de “0” e “1” e nenhum seu prefixo tem um número de “0” que excede em dois o

número de “1”, nem um número de “1” que excede em dois o número de “0”

36

Page 5: Autómatos finitos - dcc.fc.up.ptrvr/resources/MC/C4.pdf · 1 Exercício 34 Seja A = hQ,⌃,,q 0,Fi um autómato finito determinístico e q um estado de A,talque?(q,)=q, 8 2 ⌃.

Draft-v

0.2.1

Exercício 34 Seja A = hQ,⌃, �, q0, Fi um autómato finito determinístico e q um estado de A, tal que�(q,�) = q, 8� 2 ⌃. Mostra por indução no comprimento de ⇢, que 8⇢ 2 ⌃?, �(q, ⇢) = q.

Exercício 35 Descreve um autómato finito determinístico que reconheça a linguagem L das palavras dealfabeto {0, 1} em que não ocorrem sequências pares de 0’s imediatamente à esquerda de sequências ímparesde 1’s.

Exercício 36 Seja L a linguagem das palavras de alfabeto {0, 1} que representam em binário númerosmúltiplos de 5.

1. Descreve um autómato finito determinístico que reconheça esta linguagem.2. Para o autómato encontrado, prova que o mesmo reconhece a linguagem L.

4.1.1 O autómato complementar

Dada uma linguagem representada por uma expressão regular, é relativamente difícil encontrar a expressãoregular que representa a sua linguagem complementar. Esta operação é particularmente simples se se tratarde autómatos determinísticos finitos.

Exemplo 4.7 Consideremos a linguagem, L, das palavras de alfabeto ⌃ = {0, 1} que correspondem arepresentações binárias de inteiros múltiplos de 3. Um DFA que represente L pode ser o representadopelo seguinte diagrama:

q0 q2

q5

q1

q4

q3

0

1

0, 1

0

1

0, 1

0

1

0

1

A linguagem complementar desta, L, a linguagem das palavras que correspondem a inteiros que nãosão múltiplos de 3, será a linguagem gerada pelo autómato anterior, mas em que os estados finaise estados não finais foram trocados. Ou seja:

37

Page 6: Autómatos finitos - dcc.fc.up.ptrvr/resources/MC/C4.pdf · 1 Exercício 34 Seja A = hQ,⌃,,q 0,Fi um autómato finito determinístico e q um estado de A,talque?(q,)=q, 8 2 ⌃.

Draft-v

0.2.1

q0 q2

q5

q1

q4

q3

0

1

0, 1

0

1

0, 1

0

1

0

1

Claro que este reconhece " como pertencendo a L apesar de este não representar um número embinário. Mas isso é consequência da forma como definimos a linguagem.

Teorema 4.8 (complementar duma linguagem dada por um DFA) O complementar de uma lin-guagem dada por um DFA é também uma linguagem representável por um DFA. Para além disso seL = L(A) para um DFA completo A = hQ,⌃, �, q0, Fi, então a linguagem complementar L = L(A) com

A = hQ,⌃, �, q0, S \ Fi.

Dem. A demonstração é trivial pois, pela Definição 4.3,

⇢ 2 L , ⇢ 62 L , �(q0, ⇢) 62 F

, �(q0, ⇢) 2 S \ F

, ⇢ 2 L(A).

4.1.2 O autómato produto

Sejam A1 = hS1,⌃, �1, i1, F1i e A2 = hS2,⌃, �2, i2, F2i dois autómatos finitos determinísticos. Vamosconstruir um autómato produto A3 que vai simular o funcionamento simultâneo de A1 e A2. Estaconstrução vai permitir encontrar um DFA que represente L(A1) [ L(A2), o mesmo se passando paraL(A1) \ L(A2). Formalmente, A3 = hS3,⌃, �3, i3, F3i onde

S3 = S1 ⇥ S2 = {(q1, q2) | q1 2 S1 e q2 2 S2}

i3 = (i1, i2)�3((q1, q2), a) = (�1(q1, a), �2(q2, a)) 8 q1 2 S1, q2 2 S2, a 2 ⌃

A definição de F3 indicará se a linguagem de A3 será a intersecção ou a reunião das linguagens de A1

e de A2. Se definirmos

F3 = F1 ⇥ F2 = {(q1, q2) | q1 2 F1 ^ q2 2 F2}

O autómato A3 vai aceitar uma palavra se e só se A1 e A2 também a aceitarem, i.e., L(A1)\ L(A2) =L(A3).

38

Page 7: Autómatos finitos - dcc.fc.up.ptrvr/resources/MC/C4.pdf · 1 Exercício 34 Seja A = hQ,⌃,,q 0,Fi um autómato finito determinístico e q um estado de A,talque?(q,)=q, 8 2 ⌃.

Draft-v

0.2.1

Exercício 37 Mostra por indução em |⇢|, que 8 ⇢ 2 ⌃?, b�3((q1, q2), ⇢) = ( b�1(q1, ⇢), b�2(q2, ⇢))

Proposição 4.9 L(A3) = L(A1) \ L(A2).

Dem.

⇢ 2 L(A3) () b�3(i3, ⇢) 2 F3

() b�3((i1, i2), ⇢) 2 F1 ⇥ F2

() ( b�1(i1, ⇢), b�2(i2, ⇢)) 2 F1 ⇥ F2

() b�1(i1, ⇢) 2 F1 ^ b�2(i2, ⇢) 2 F2

() ⇢ 2 L(A1) ^ ⇢ 2 L(A2)

() ⇢ 2 L(A1) \ L(A2).

Como no caso da construção por subconjuntos para a obtenção de um autómato finito determinísticoequivalente a um não determinístico (ver Secção 4.2), a construção da função de transição pode só envolveros estados do autómato produto que são atingíveis do estado inicial.

Exemplo 4.10 Considera os seguintes autómatos finitos determinísticos:

A1 A2

q0 q1a

b a, b

q0 q1

b

a, c b

a, c

b?a(a+ b)? ((a+ c) + bb?(a+ c))?bb?

Como os autómatos não têm o mesmo alfabeto, antes de calcular o autómato produto é necessáriotransformar o primeiro autómato sem mudar a linguagem representada por ele.

A1 A2

q0 q1

q2

a

b

c

a, b

c

a, b, c

q0 q1

b

a, c b

a, c

Sejam então A1 = hS1, {a, b, c}, �1, q0, , F1) e A2 = hS2, {a, b, c}, �2, q0, , F2i onde S1 = {q0, q1, q2}, S2 ={q0, q1}, F1 = {q1}, F2 = {q1}, e as funções de transição �1 e �2 são respectivamente,

�1 a b c

! q0 q1 q0 q2

?q1 q1 q1 q2

q2 q2 q2 q2

�2 a b c

! q0 q0 q1 q0

?q1 q0 q1 q0

39

Page 8: Autómatos finitos - dcc.fc.up.ptrvr/resources/MC/C4.pdf · 1 Exercício 34 Seja A = hQ,⌃,,q 0,Fi um autómato finito determinístico e q um estado de A,talque?(q,)=q, 8 2 ⌃.

Draft-v

0.2.1

Para o autómato produto A3 = hS3, {a, b, c}, �3, (q0, q0), F3i, tem-se

S3 = {(q0, q0), (q1, q0), (q2, q0), (q0, q1), (q1, q1), (q2, q1)}

e a função delta �3 é dada por

�3 a b c

! (q0, q0) (q1, q0) (q0, q1) (q2, q0)(q1, q0) (q1, q0) (q1, q1) (q2, q0)(q2, q0) (q2, q0) (q2, q1) (q2, q0)(q0, q1) (q1, q0) (q0, q1) (q2, q0)(q1, q1) (q1, q0) (q1, q1) (q2, q0)(q2, q1) (q2, q0) (q2, q1) (q2, q0)

.

Se o autómato produto representar a intersecção das linguagens de A1 e A2, temos que F3 =F1 ⇥ F2 = {(q1, q1)}. O diagrama do autómato produto A3 é:

A3

(q0, q0) (q0, q1)

(q1, q0)

(q2, q0) (q2, q1)

(q1, q1)

a

b

c

a

b

c

a

b

c

a, c

b

a, c

b

a b

c

O autómato A3 aceita a linguagem constituída pelas palavras de alfabeto {a, b, c} que têm alguma, terminam em b e não têm c’s.

Se num autómato produto se modificar o valor de F3 podemos obter um autómato que reconhece areunião das linguagens de A1 e A2. O autómato A3 aceita uma palavra se pelo menos um dos autómatosA1 ou A2 aceitar:

F3 = {(q1, q2) | q1 2 F1 ou q2 2 F2}.

Proposição 4.11 L(A3) = L(A1) [ L(A2).

40

Page 9: Autómatos finitos - dcc.fc.up.ptrvr/resources/MC/C4.pdf · 1 Exercício 34 Seja A = hQ,⌃,,q 0,Fi um autómato finito determinístico e q um estado de A,talque?(q,)=q, 8 2 ⌃.

Draft-v

0.2.1

Exercício 38 Demonstra a Proposição 4.11.

Exemplo 4.12 Para o exemplo do Exercício 4.10 para se obter um autómato para a reunião dalinguagens, A3, basta considerar o conjunto de estados finais constituído pelos pares em que pelomenos um dos estados seja final,

F3 = {(q1, q0), (q0, q1), (q1, q1), (q2, q1)}.

O diagrama do autómato da reunião A3 fica:

A3

(q0, q0) (q0, q1)

(q1, q0)

(q2, q0) (q2, q1)

(q1, q1)

a

b

c

a

b

c

a

b

c

a, c

b

a, c

b

a b

c

Exemplo 4.13 Considera os seguintes autómatos finitos determinísticos:

A1 A2

q0 q1

q2

a

ba, b

a, b

q0 q1

q2

b

aa, b

a, b

A função de transição para o autómato produto é:

41

Page 10: Autómatos finitos - dcc.fc.up.ptrvr/resources/MC/C4.pdf · 1 Exercício 34 Seja A = hQ,⌃,,q 0,Fi um autómato finito determinístico e q um estado de A,talque?(q,)=q, 8 2 ⌃.

Draft-v

0.2.1

�3 a b

! (q0, q0) (q1, q2) (q2, q1)(q1, q2) (q2, q2) (q2, q2)(q2, q1) (q2, q2) (q2, q2)(q2, q2) (q2, q2) (q2, q2)

O autómato para a intersecção A\ reconhece a linguagem {a} \ {b} (ou seja, ;) e o da reuniãoA[, reconhece a linguagem {a}[ {b}. Os diagramas para o autómato da intersecção e da reunião, sãorespectivamente:

A\ A[

(q0, q0) (q1, q2)

(q2, q1) (q2, q2)

a

b a, b

a, b

a, b

(q0, q0) (q1, q2)

(q2, q1) (q2, q2)

a

b a, b

a, b

a, b

Exercício 39 Exemplifica todas as construções anteriores considerando as linguagens A = {aa} e B = {bbb}

de alfabeto {a, b} e os respectivos autómatos.

4.2 Autómatos finitos não determinísticos (NFA)

Muitas vezes, para facilidade formal de demonstração ou por uma expressividade mais evidente, optamos poroutro tipo de autómatos finitos, os autómatos não determinísticos, para representar linguagens regulares.Estes, como vamos ver, têm uma composicionalidade evidente, tornando as operações elementares dasexpressões regulares (concatenação, disjunção e fecho de Kleene) em transformações simples nesta classede autómatos.

Em vez de termos um autómato, em que não temos “que tomar decisões” sobre qual o caminho quevamos tomar ao ler uma palavra, passamos a ter um autómato em que de um estado, e lendo um dadosímbolo, podemos ir para diversos estados. Mesmo o estado em que começamos a ler uma palavra pode nãoser único. Um NFA pode ter um conjunto não singular de estados iniciais e o estado que se usa para começara ler uma palavra é uma das escolhas que temos que fazer.

Definição 4.14 (NFA) Um autómato finito não determinístico (NFA) é um quíntuplo ordenado hS,⌃, �, I, Fiem que:

S é um conjunto finito, não vazio, a que chamamos o conjunto dos estados;

⌃ é um conjunto finito, não vazio, que constitui o alfabeto;

� é uma função parcial � : S⇥ ⌃ ! P(S), chamada função de transição;

42

Page 11: Autómatos finitos - dcc.fc.up.ptrvr/resources/MC/C4.pdf · 1 Exercício 34 Seja A = hQ,⌃,,q 0,Fi um autómato finito determinístico e q um estado de A,talque?(q,)=q, 8 2 ⌃.

Draft-v

0.2.1

I, com I ✓ S e I 6= ;, é o conjunto de estados iniciais;

F, com F ✓ S, é o conjunto dos estados finais.

Exemplo 4.15 Considera o NFA A = h{q0, q1}, {0, 1}, �, {q0}, {q1}i com

�(q0, 0) = {q0, q1} �(q0, 1) = {q0}

q0 q1

0, 1

0

Como o estado do autómato, resultante da leitura de uma palavra, passa a ser então dependente da(ou das) escolha(s) que tenhamos feito ao longo desse processo, dizemos que uma palavra é “aceite” por umNFA, se existir um conjunto de escolhas que nos conduza a um estado final. Para captar esta possibilidadede escolha dos diversos percursos que podemos percorrer com a leitura de uma mesma palavra, a funçãode transição de um NFA, não faz corresponder a cada par (estado, letra) um só novo estado mas sim umconjunto de estados. A função de transição estendida vai fazer corresponder para cada palavra, não umconjunto de estados para cada estado de partida, mas um conjunto de estados para cada conjunto de estadosque representa as diversas situações resultantes das diferentes possíveis escolhas até aí feitas.

Então, da mesma forma que foi feito para os autómatos determinísticos (DFA) podemos definir umafunção de transição estendida

� : P(S)⇥ ⌃? -! P(S)

com a seguinte definição recursiva:

(8X) (X 2 P(S) ) �(X, ") = X)

(8X 8� 8⇢) ((X 2 P(S)^ � 2 ⌃^ ⇢ 2 ⌃?) ) �(X,�⇢) = �([

s2X

�(s,�), ⇢)). (4.4)

Em particular, para qualquer X 2 P(S) e � 2 ⌃, temos que �(X,�) =S

s2X �(s,�).Podemos então definir a linguagem representada por um NFA.

Definição 4.16 (Linguagem representada por um NFA) Seja A = hS,⌃, �, I, Fi um NFA. A lingua-gem L(A) representada por A define-se como

L(A) = {⇢ 2 ⌃? | �(I, ⇢) \ F 6= ;}, (4.5)

em que � é definida como atrás.

Uma outra formulação pode ser dada a esta Definição 4.16 que, por vezes, se torna bastante cómodapara provar certas proposições. Em vez de utilizarmos os possíveis conjuntos de estados correspondentesà avaliação sucessiva de �(I, ⇢), podemos referir directamente o conjunto de estados que conduzem, comsucesso, a avaliação de uma palavra ⇢ de um estado inicial a um estado final.

Lema 4.17 Seja A = hS,⌃, �, I, Fi um NFA e ⇢ = �1�2 . . .�|⇢| 2 ⌃?, é condição necessária e suficientepara que ⇢ 2 L(A), que

(9q0, q1, . . . , q|⇢| 2 S) (q0 2 I ^ q|⇢| 2 F ^ (8i 2 [0, |⇢|[ qi 2 �(qi-1,�i))). (4.6)

Dem. A demonstração sai directa, da Definição 4.16 e do enunciado do lema. ⇤

43

Page 12: Autómatos finitos - dcc.fc.up.ptrvr/resources/MC/C4.pdf · 1 Exercício 34 Seja A = hQ,⌃,,q 0,Fi um autómato finito determinístico e q um estado de A,talque?(q,)=q, 8 2 ⌃.

Draft-v

0.2.1

Exercício 40 Demonstra o Lema 4.17.

O lema seguinte mostra que a leitura de uma palavra tanto pode ser feita da esquerda para a direitacomo da direita para a esquerda.

Lema 4.18 Seja A = hS,⌃, �, I, Fi uma NFA e ⇢ 2 ⌃? com ⇢ = ⇢ 0� para algum ⇢ 0 2 ⌃? e � 2 ⌃. Então,para qualquer conjunto de estados X ✓ S,

�(X, ⇢) = �(�(X, ⇢ 0),�).

Dem. A demonstração segue por indução sobre o comprimento de |⇢|. Se |⇢| = 0 a proposição não fazsentido, pelo que comecemos por provar para ⇢ de comprimento unitário, ou seja para ⇢ 2 ⌃. Nessecaso temos trivialmente que, para qualquer conjunto de estados X,

�(X, "⇢) = �(�(X, "), ⇢).

Suponhamos, então, que para qualquer palavra ⇢, com |⇢| < n, se se tiver ⇢ = ⇢ 0� então, para qualquerconjunto de estados X, �(X, ⇢ 0�) = �(�(X, ⇢ 0),�). Seja então ⇢ uma palavra tal que |⇢| = n e ⇢ = ⇢ 0�.Então seja � 0 2 ⌃ e ⇢ 00 2 ⌃? tal que ⇢ 0 = � 0⇢ 00. Então ⇢ = � 0⇢ 00� com |⇢ 00�| < n. Então

�(X, ⇢) = �(X,� 0⇢ 00�)

= �(�(X,� 0), ⇢ 00�) (pela definição de � (4.4))= �(�(�(X,� 0), ⇢ 00),�) (pela hipótese de indução)= �(�(X,� 0⇢ 00),�) (pela definição de � (4.4))= �(�(X, ⇢ 0),�).

Portanto o Lema é válido para qualquer palavra ⇢ de qualquer comprimento. ⇤

Definição 4.19 (linguagem reversa) Seja L uma linguagem de alfabeto ⌃, e R : ⌃? ! ⌃? a funçãodada pela seguinte definição indutiva (ver 2.10):

(8�) (� 2 ⌃ [ {"} ) �R = �)

(8� 8⇢) ((� 2 ⌃^ ⇢ 2 ⌃?) ) (�⇢)R = ⇢R�).

A linguagem LR é a linguagem de alfabeto ⌃, definida como:

LR = {⇢ 2 ⌃? | ⇢R 2 L}.

Definição 4.20 (autómato reverso) Seja A = hS,⌃, �, I, Fi um NFA, definimos como o seu autómatoreverso, o NFA AR = hS,⌃, �R, F, Ii com

�R : S⇥ ⌃ -! P(S)

(s,�) 7-! {x 2 S | �(x,�) 3 s}

Proposição 4.21 Seja A um NFA, então

L(A)R = L(AR).

Dem. A demonstração é trivial, usando o Lema 4.17. ⇤

44

Page 13: Autómatos finitos - dcc.fc.up.ptrvr/resources/MC/C4.pdf · 1 Exercício 34 Seja A = hQ,⌃,,q 0,Fi um autómato finito determinístico e q um estado de A,talque?(q,)=q, 8 2 ⌃.

Draft-v

0.2.1

Exemplo 4.22 Consideremos o NFA (neste caso até um DFA) dado pelo diagrama seguinte, querepresenta a linguagem das palavras de alfabeto ⌃ = {0, 1} que têm 110 como prefixo:

q0 q1 q2 q31 1 0

0, 1

A linguagem das palavras, com o mesmo alfabeto, que têm 011 como sufixo, tem o seguinte NFA comorepresentante.

q0 q1 q2 q30

0, 1

1 1

Exercício 41 Demonstra a Proposição 4.21.

Teorema 4.23 (Método de construção de subconjuntos) Seja A um autómato finito não determi-nístico, então existe um autómato finito determinístico A 0 tal que

L(A) = L(A 0).

Dem. Seja A = hS,⌃, �, I, Fi o NFA. Consideremos o DFA A 0 = hP(S),⌃, � 0, I, F 0i em que

F 0 = {X ✓ S | X \ F 6= ;}

e

� 0 : P(S)⇥ ⌃ -! P(S)

(X,�) 7-![

s2X

�(s,�).

É trivial verificar que este novo DFA está bem definido. Necessitamos de provar somente a equivalênciaentre os dois autómatos.

Comecemos por definir b� 0 : P(S)⇥ ⌃? ! P(S), indutivamente, como

b� 0(X, ") = X

b� 0(X,�⇢) = b� 0(� 0(X,�), ⇢),

e provemos, por indução sobre o comprimento de ⇢ (⇢ 2 ⌃?), que

b� 0(I, ⇢) = �(I, ⇢).

Se |⇢| = 0, e portanto ⇢ = ", tem-se, pela definição, que

�(I, ") = I = b� 0(I, ").

Suponhamos então que(8⇢ (|⇢| < n =) �(I, ⇢) = b� 0(I, ⇢))).

45

Page 14: Autómatos finitos - dcc.fc.up.ptrvr/resources/MC/C4.pdf · 1 Exercício 34 Seja A = hQ,⌃,,q 0,Fi um autómato finito determinístico e q um estado de A,talque?(q,)=q, 8 2 ⌃.

Draft-v

0.2.1

Seja ⇢ 2 ⌃? com |⇢| = n. Então ⇢ = ⇢ 0� para algum ⇢ 0 2 ⌃? com |⇢ 0| = n- 1.

�(I, ⇢) = �(I, ⇢ 0�)

= �(�(I, ⇢ 0),�) (pelo Lema 4.18)

= �(b� 0(I, ⇢ 0),�) (pela hipótese de indução)

= �

0

@[

s2 b� 0(I,⇢ 0)

�(s,�), "

1

A (pela definição de �)

=[

s2 b� 0(I,⇢ 0)

�(s,�) (pela definição de �)

= � 0(b� 0(I, ⇢ 0),�)

= b� 0(I, ⇢ 0�)

= b� 0(I, ⇢)

Logo L(A) = L(A 0). ⇤

Exemplo 4.24 Consideremos o NFA representado pelo seguinte diagrama:

q0 q1

q2

q3 q4

0

1

0

1

1

01

1

0

1

0

1

Este autómato representa a linguagem das representações binárias que correspondem a inteiros quenão são múltiplos de 3, concatenada com a linguagem das palavras que começam com um 1 e têm umnúmero ímpar de 0’s.

Para obtermos um DFA equivalente a este NFA, prossigamos com a construção dos subconjuntosque resulta do Teorema anterior. Tem-se

� 0 1

{q0} {q0} {q1}

{q1} {q2} {q0, q3}

{q2} {q1} {q2, q3}

{q0, q3} {q0, q4} {q1, q3}

{q2, q3} {q1, q4} {q2, q3}

{q1, q3} {q2, q4} {q0, q3}

{q0, q4} {q0, q3} {q1, q4}

{q1, q4} {q2, q3} {q0, q3, q4}

{q2, q4} {q1, q3} {q2, q3, q4}

{q0, q3, q4} {q0, q3, q4} {q1, q3, q4}

{q1, q3, q4} {q2, q3, q4} {q0, q3, q4}

{q2, q3, q4} {q1, q3, q4} {q2, q3, q4}

46

Page 15: Autómatos finitos - dcc.fc.up.ptrvr/resources/MC/C4.pdf · 1 Exercício 34 Seja A = hQ,⌃,,q 0,Fi um autómato finito determinístico e q um estado de A,talque?(q,)=q, 8 2 ⌃.

Draft-v

0.2.1

O estado inicial é o estado {q0}, e são finais todos os estados a cujo nome pertence q4. O diagramado DFA resultante é, então, o seguinte.

{q0} {q1}

{q2} {q2, q3}

{q0, q3}

{q1, q3}

{q1, q4}

{q0, q4}

{q2, q4}

{q0, q3, q4}

{q1, q3, q4}

{q2, q3, q4}

0

1

0

1

0

1

0

1

0

10

1

0

1

0

1

0

1

0

1

0

1

0

1

Exercício 42 Considera os autómatos finitos não-determinísticos representados pelos seguintes diagramas:A:

a b

ba

b

b

B:

b b

b

a

ab

Diz quais das seguintes palavras são aceites por A ou B:1. "

2. aa

3. aba

4. abba

5. bba

6. abab

Exercício 431. Constrói um autómato finito não-determinístico que reconheça a linguagem do alfabeto ⌃ = {0, 1}

das palavras com um 1 na terceira posição a contar do fim.2. Considera o seguinte autómato finito não-determinístico representado pelo seguinte diagrama:

47

Page 16: Autómatos finitos - dcc.fc.up.ptrvr/resources/MC/C4.pdf · 1 Exercício 34 Seja A = hQ,⌃,,q 0,Fi um autómato finito determinístico e q um estado de A,talque?(q,)=q, 8 2 ⌃.

Draft-v

0.2.1

0 1

aa, b

b

Converte, pela construção dos subconjuntos, o autómato num autómato finito determinístico.3. Seja A o autómato finito de alfabeto {a, b, c} representado pelo diagrama seguinte.

0 1 2 3

a, b, c

a b b

a) Qual é a linguagem reconhecida pelo autómato A? Porquê?b) Usando o método da construção de subconjuntos, determina um autómato determinístico que

seja equivalente a A.c) Recorda que se um dado autómato determinístico hS,⌃, �, q0, Fi em que � é uma função total (não

encrava), reconhece L, então o autómato hS,⌃, �, q0, S \ Fi reconhece ⌃? \ L (isto é, a linguagemcomplementar de L).Por que é que a linguagem reconhecida pelo autómato seguinte não é a complementar da lingua-gem reconhecida por A?

0 1 2 3

a, b, c

a b b

4.3 Autómatos não determinísticos com transições por " (NFA")

Por vezes, seja pela sua expressividade intrínseca seja por facilitar construções formais, usamos NFAs queadmitem transições por ". À classe destes autómatos designamos normalmente por NFA".

Num NFA", de um estado seu não só podem partir transições por um mesmo símbolo para diversosestados (como num NFA) como podem existir transições para outros estados, que em vez de “consumirem”um caracter de ⌃, consomem ". Quando do estado q1 temos uma transição por " para o estado q2, issosignifica que quando “chegamos” a q1 (“vindos” de outro estado) podemos optar por “ir” (ou não) para oestado q2, sem que para isso tenhamos que “consumir” algum caracter.

Exemplo 4.25 O NFA" seguinte representa o Fecho de Kleene da linguagem das representaçõesbinárias dos inteiros congruentes com 2, módulo 3.

48

Page 17: Autómatos finitos - dcc.fc.up.ptrvr/resources/MC/C4.pdf · 1 Exercício 34 Seja A = hQ,⌃,,q 0,Fi um autómato finito determinístico e q um estado de A,talque?(q,)=q, 8 2 ⌃.

Draft-v

0.2.1

q0

q1 q2

q3

0

1

10

"

" 01

"

Definição 4.26 (NFA") Um autómato finito não-determinístico com transições por " (NFA") é umquíntuplo ordenado hS,⌃, �, I, Fi em que

S é um conjunto finito, não vazio, a que chamamos o conjunto dos estados;

⌃ é um conjunto finito, não vazio, que constitui o alfabeto;

� é uma função parcial � : S⇥ ⌃ [ {"} ! P(S), chamada função de transição;

I, com I ✓ S e I 6= ;, é o conjunto de estados iniciais;

F, com F ✓ S, é o conjunto dos estados finais.

O conceito de Fecho por ", a seguir formalizado, corresponde ao conjunto de estados que se podematingir a partir de um dado estado “viajando” somente por transições por ".

Definição 4.27 (Fecho por " de um conjunto de estados) Seja A = hS,⌃, �, I, Fi um NFA", e sejaX ✓ S um conjunto de estados de A. Definimos indutivamente o seguinte conjunto:

F0"(X) = X,

F1"(X) =[

s2X

�(s, "),

Fn" (X) =[

s2Fn-1" (X)

�(s, ").

Então o fecho por " de X (F"(X)) fica definido como:

F"(X) =[

n�0

Fn" (X).

Como se trata de um autómato finito, isto é, com um número finito de estados, este conjunto estátrivialmente bem definido. Quando X = {s} também se denomina F"(X) por fecho por " de s e pode-sedesignar por F"(s).

Exemplo 4.28 Considerando o NFA" do Exemplo 4.25 podemos calcular F"({q0}). Tem-se

F0"({q0}) = {q0},

F1"({q0}) = �(q0, ")

= {q1, q3},

F2"({q0}) = �(q1, ") [ �(q3, ")

= {q0}

49

Page 18: Autómatos finitos - dcc.fc.up.ptrvr/resources/MC/C4.pdf · 1 Exercício 34 Seja A = hQ,⌃,,q 0,Fi um autómato finito determinístico e q um estado de A,talque?(q,)=q, 8 2 ⌃.

Draft-v

0.2.1

Donde, F"({q0}) =S2

n=0 Fn" ({q0}) = {q0, q1, q2}.

Para definir formalmente a linguagem representada por um NFA", comecemos, como fizemos para osNFA, por estender a função de transições �.

Então, seja A = hS,⌃, �, I, Fi um NFA", definimos � como

� : P(S)⇥ ⌃? -! P(S)

com a seguinte definição recursiva:

(8X)(X 2 P(S) ) �(X, ") = F"(X)),

(8X 8⇢8�)((X 2 P(S)^ � 2 ⌃^ ⇢ 2 ⌃?) ) �(X,�⇢) = �

[

s2X

F"(�(s,�)), ⇢

!),

com F"(X) como está definido em 4.27.

Definição 4.29 (linguagem representada por um NFA") Seja A = hS,⌃, �, I, Fi um NFA". A lin-guagem, L(A), representada por A define-se como

L(A) = {⇢ 2 ⌃? | �(F"(I), ⇢) \ F 6= ;}, (4.7)

em que � e F" são definidos como atrás.

Podemos, como fizemos para a conversão de NFAs em DFAs, aplicar a definição de linguagem represen-tada por um NFA" para obter um algoritmo que encontre um DFA equivalente. Em vez disso, vamos usara definição de fecho por " de um estado para obter uma transformação de um NFA" num NFA equivalente.

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

L(A) = L(A 0).

Dem. Seja A = hS,⌃, �, I, Fi o NFA". Consideremos o NFA A 0 = hS,⌃, � 0, F"(I), Fi em em que

� 0 : S⇥ ⌃ -! P(S)

(s,�) 7-! F"

0

@[

s 02F"(s)

�(s 0,�)

1

A .

O NFA A 0 está trivialmente bem definido, e a equivalência dos autómatos segue directamente dasdefinições das linguagens representadas por estes autómatos, respectivamente 4.29 e 4.16. ⇤

Em muitos casos, e em especial para simplificar as demonstrações, é conviniente considerar NFA"s comum só estado inicial e um só estado final. O Lema seguinte mostra que tal é sempre possível.

Lema 4.31 Seja A = hS,⌃, �, I, Fi um NFA", existe um NFA", A 0 = hS 0,⌃, � 0, I 0, F 0i, equivalente a A,tal que:

1. tem somente um estado inicial I 0 = {s 00};

2. não há transições que “cheguem” do estado inicial (8s 2 S 0 8� 2 ⌃)(s 00 62 � 0(s,�)^ s 00 62 � 0(s, "));

3. tem somente um estado final F = {s 0f};

4. não há transições que “partam” do estado final (� 0(s 0f, ") = ;)^ (8� 2 ⌃ � 0(s 0f,�) = ;).

50

Page 19: Autómatos finitos - dcc.fc.up.ptrvr/resources/MC/C4.pdf · 1 Exercício 34 Seja A = hQ,⌃,,q 0,Fi um autómato finito determinístico e q um estado de A,talque?(q,)=q, 8 2 ⌃.

Draft-v

0.2.1

Um autómato que verifique estas propriedades denomina-se normalizado.

Dem. Se o autómato A já estiver nas condições requeridas, nada há a demonstrar. Caso isso não aconteça,seja S 0 = S [ {s 00, s

0f}, com s 00, s

0f 62 S. Façamos I 0 = {s 00} e F 0 = {s 0f} e tomemos � 0 como extensão de �

� 0 : S 0 ⇥ ⌃ -! S 0

s 2 S, � 2 ⌃ [ {"} (s,�) 7-! �(s,�)

(s 00, ") 7-! F"(I)

s 2 F"(F) (s, ") 7-! {s 0f}.

(4.8)

4.4 Sistemas de Equações de Linguagens

Seja A = hQ,⌃, �, I, Fi um NFA (ou NFA" ou DFA). A linguagem esquerda de um estado q de A é o conjuntode palavras que levam o autómato dum estado inicial a esse estado. De modo análogo a linguagem direita éo conjunto de palavras que são aceites pelo autómato se começar a funcionar nesse estado, i.e. é a linguagemdo autómato hQ,⌃, �, {q}, Fi

Formalmente temos,

Definição 4.32 (linguagem direita) Seja A = hQ,⌃, �, I, Fi um autómato finito e q um seu estado.A linguagem direita de q é

Ds = { ⇢ 2 ⌃? | �(q, ⇢) 2 F }.

Definição 4.33 (linguagem esquerda) Seja A = hQ,⌃, �, I, Fi uma autómato finito e q um seu estado.A linguagem esquerda de q é

Eq = { ⇢ 2 ⌃? | q 2 �(I, ⇢) }.

As linguagens esquerdas de qualquer autómato finito satisfazem um sistema de equações de linguagens.

Teorema 4.34 Seja A = hQ,⌃, �, I, Fi um autómato finito onde Q = {q1, . . . , qn} e ⌃ = {�1, . . . ,�k}.Seja Eqi

a linguagem esquerda de cada estado qi 2 Q e seja

Eij =[

qi2�(qk,�j)

Eqk.

Então temos que

Eqi=

�S�j2⌃ Eij {�j} , se qi /2 I

S�j2⌃ Eij {�j} [ {"}, se qi 2 I.

(4.9)

Temos também que L(A) =S

qi2F Eqi.

Dem. Seja ⇢ 2 Eqipara algum estado qi /2 I. Então, por definição qi 2 �(I, ⇢). Como qi não é inicial

⇢ tem pelo menos uma letra, seja ⇢ = ⇢ 0�j com �j 2 ⌃ e ⇢ 0 2 ⌃?. Então existe um qk 2 �(I, ⇢ 0)tal que qi 2 �(qk,�j). Temos então que ⇢ 0 2 Eqk

✓ Eij. Logo ⇢ 2 Eij{�j} o que mostra queEqi

✓S

�j2⌃ Eij {�j}. Mostremos agora a outra inclusão. Suponhamos que ⇢ 2 Eij {�j} para alguma�j 2 ⌃ e qi 2 Q. Então ⇢ = ⇢ 0�j com ⇢ 0 2 Eij, isto é, existe qk tal que ⇢ 0 2 Eqk

, com qk 2 �(I, ⇢ 0)

51

Page 20: Autómatos finitos - dcc.fc.up.ptrvr/resources/MC/C4.pdf · 1 Exercício 34 Seja A = hQ,⌃,,q 0,Fi um autómato finito determinístico e q um estado de A,talque?(q,)=q, 8 2 ⌃.

Draft-v

0.2.1

e também qi 2 �(qk,�j). Então qi 2 �(�(I, ⇢ 0),�j) = �(I, ⇢). Concluímos, assim, que ⇢ 2 Eqi, o que

mostra queS

�j2⌃ Eij {�j} ✓ Eqi.

Se qi 2 I então por definição qi 2 �(I, ") o que mostra que " 2 Eqi.

Finalmente é evidente que ⇢ 2 L(A) se e só se existe um estado final qi 2 F tal que ⇢ 2 Eqi. ⇤

Exemplo 4.35 Considerando o NFA do Exemplo 4.24 temos as seguintes igualdades

Es0= Es0

{0} [ Es1{1} [ {"}

Es1= Es2

{0} [ Es0{1}

Es2= Es1

{0} [ Es2{1}

Es3= Es4

{0} [ (Es1[ Es2

[ Es3){1}

Es4= Es3

{0} [ Es4{1}

e L(A) = Es4.

As linguagens direitas de qualquer autómato finito satisfazem também um sistema de equações delinguagens.

Teorema 4.36 Seja A = hS,⌃, �, I, Fi um autómato finito onde S = {q1, . . . , qn} e ⌃ = {�1, . . . ,�k}. SejaDqi

a linguagem direita de cada estado qi 2 S e seja

Lij =[

qk2�(qi,�j)

Dqk.

Então temos que

Dqi=

�S�j2⌃ {�j}Lij, se qi /2 F

S�j2⌃ {�j}Lij [ {"}, se qi 2 F.

(4.10)

Temos também que L(A) =S

qi2I Dqi.

Dem. Seja ⇢ 2 Dqipara algum estado qi /2 F. Então, por definição �(qi, ⇢) \ F 6= ;. Como qi não é final

⇢ tem pelo menos uma letra, seja ⇢ = �j⇢0 com �j 2 ⌃ e ⇢ 0 2 ⌃?. Então existe um qk 2 �(qi,�j)

tal que �(qk, ⇢0) \ F 6= ;. Temos então que ⇢ 0 2 Dqk

✓ Lij. Logo ⇢ 2 {�j}Lij o que mostra queDqi

✓S

�j2⌃ {�j}Lij. Mostremos agora a outra inclusão. Suponhamos que temos ⇢ 2 {�j}Lij paraalgum �j 2 ⌃ e qi 2 S. Então ⇢ = �j⇢

0 com ⇢ 0 2 Lij, isto é, existe qk 2 �(qi,�j) tal que ⇢ 0 2 Dqk.

Por definição, �(qk, ⇢0) \ F 6= ;. Como �(qi, ⇢) = �(�(qi,�j), ⇢ 0), temos que �(qk, ⇢

0) ✓ �(qi, ⇢) eportanto �(qi, ⇢) \ F 6= ;. Concluímos, assim, que ⇢ 2 Dqi

, o que mostra queS

�j2⌃ {�j}Lij ✓ Dqi.

Se qi 2 F então por definição qi 2 �(qi, ") o que mostra que " 2 Dqi.

Finalmente é evidente que ⇢ 2 L(A) se e só se existe um estado inicial qi 2 I tal que ⇢ 2 Dqi. ⇤

Exemplo 4.37 Considerando o NFA do Exemplo 4.24 temos as seguintes igualdades

Ds0= {0}Ds0

[ {1}Ds1

Ds1= {0}Ds2

[ {1}(Ds0[Ds3

)

Ds2= {0}Ds1

[ {1}(Ds2[Ds3

)

Ds3= {0}Ds4

[ {1}Ds3

Ds4= {0}Ds3

[ {1}Ds4[ {"}

52

Page 21: Autómatos finitos - dcc.fc.up.ptrvr/resources/MC/C4.pdf · 1 Exercício 34 Seja A = hQ,⌃,,q 0,Fi um autómato finito determinístico e q um estado de A,talque?(q,)=q, 8 2 ⌃.

Draft-v

0.2.1

e L(A) = Ds0.

4.5 Equivalência entre Linguagens Regulares e Linguagens Aceitespor Autómatos Finitos

As linguagens aceites por autómatos finitos são precisamente as linguagens regulares, i.e. as descritas porexpressões regulares.

Teorema 4.38 (Kleene[Kle56]) Uma linguagem é reconhecível por um autómato finito se e só se forregular. Ou seja, o conjunto das linguagens representadas pelas expressões regulares é o mesmo queo representado por DFA.

Para a demonstração deste teorema é necessário mostrar que:

Qualquer linguagem descrita por uma expressão regular é aceite por um autómato finito.

Qualquer linguagem aceite por um autómato finito é descrita por uma expressão regular.

Existem vários modos de conversão entre estes dois modelos. Vamos para cada caso analisar alguns eindicar quais as suas características e vantagens.

4.5.1 De Expressões Regulares para Autómatos Finitos

Neste caso temos de demonstrar que:

Teorema 4.39 Seja L uma linguagem representada por uma expressão regular r, L = L(r)), entãoexiste um DFA A, tal que L = L(A).

Pretendemos obter para cada expressão regular r um DFA equivalente. Alguns dos métodos convertema expressão regular r num autómato finito não determinístico equivalente, NFA. Como, pelo Teorema 4.23apresentado na Secção 4.2, podemos transformar este NFA num DFA, temos construído o autómato preten-dido.

As conversões distinguem-se ainda pelo facto dos NFAs obtidos terem ou não transições por ".Temos, entre outros, os seguintes algoritmos (a que habitualmente se associa um autómato com o

mesmo nome):

Algoritmo de Thompson: produz um NFA".

Algoritmo de Brzozowski: produz um DFA, denominado autómato de derivavas.

Algoritmo de Glushkov: produz um NFA, denominado autómato de posições.

Algoritmo de Antimirov: produz um NFA, denominado autómato de derivadas parciais.

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

4.5.1.1 Algoritmo de Thompson

O algoritmo de Thompson [Tho68] constrói um NFA" indutivamente na definição das expressões regulares.Para cada regra indutiva da Definição 3.2, e supondo que temos um NFA" correspondente a cada uma dasexpressões regulares (se for esse o caso) constituintes, mostramos como se pode construir um NFA" quecorresponde à expressão regular final. Construamos então cada um dos NFA"Ar correspondentes a cada

53

Page 22: Autómatos finitos - dcc.fc.up.ptrvr/resources/MC/C4.pdf · 1 Exercício 34 Seja A = hQ,⌃,,q 0,Fi um autómato finito determinístico e q um estado de A,talque?(q,)=q, 8 2 ⌃.

Draft-v

0.2.1

uma das expressões regulares r obtidas pelas regras de 3.2. Em cada caso supomos conhecido o alfabeto,⌃. De notar, que depois da aplicação de cada passo deste método, o autómato resultante está normalizadocomo indicado no Lema 4.31, isto é, possui um só estado final do qual não partem transições, assim comoum estado inicial ao qual não chega qualquer transição. Pelo que fica assegurada a aplicabilidade recursivado método.

i) r = ; A; :

s0

ii) r = " A" :

s0

iii) r = �,� 2 ⌃ A� :

s0 s1�

iv) r = r1 + r2 Ar1+r2 :

s0

s 00 s 01

s 000 s 001

s1

"

"

"

"

Ar1

Ar2

v) r = r1r2 Ar1r2 :

s 00 s 01 s 000 s 001Ar1 " Ar2

vi) r = r?1 Ar?1:

s0 s 00 s 01 s1" Ar1

"

"

"

Proposição 4.40 (Correção do Algoritmo de Thompson) Seja r um expressão regular. O Algo-ritmo de Thompson produz um NFA" Ar tal que L(r) = L(Ar).

Dem. A correção de cada uma das construções é simples à luz da definição de linguagem associada a umaexpressão regular (ver também a Definição 3.2).

i) r = ;Neste caso L(r) = ; e A; = h{s0},⌃, �, {s0}, ;i. Como o conjunto de estados finais é vazio temosL(A;) = ; = L(r)..

ii) r = " Neste caso L(r) = {"} e A" = h{s0},⌃, {s0}, �, {s0}i. Como a função de transição � não estádefinida para nenhum par (estado,símbolo), mas o estado inícial é final temos, pela definição deb�, que L(A") = {"} = L(r).

54

Page 23: Autómatos finitos - dcc.fc.up.ptrvr/resources/MC/C4.pdf · 1 Exercício 34 Seja A = hQ,⌃,,q 0,Fi um autómato finito determinístico e q um estado de A,talque?(q,)=q, 8 2 ⌃.

Draft-v

0.2.1

iii) r = �,� 2 ⌃

Neste caso L(r) = {�} e A" = h{s0, s1},⌃, {s0, s1}, �, {s1}i, com �(s0,�i = {s1}. Pela função detransição � e sendo s1 um estado final, temos que L(A�) = {�} = L(r).

iv) r = r1 + r2

Seja Ar1 = hS 0,⌃, � 0, {s 00}, {s01}i e Ar2 = hS 00,⌃, � 00, {s 000 }, {s

001 }i. Temos que L(r) = L(r + r1) =

L(r1) [ L(r2) e, por hipótese de indução, L(r1) = L(Ar1) e L(r2) = L(Ar2). Seja Ar =hS,⌃, �, {s0}, {s1}i, com

S = S 0 [ S 00 [ {s0, s1}

a função � é definida por:– �(s0, ") = {s 00, s

000 }

– �(s 01, ") = {s1} e �(s 001 , ") = {s1}

– para s 0 2 S 0 e � 2 ⌃ [ {"}, �(s 0,�) = � 0(s 0,�).– para s 00 2 S 00 e � 2 ⌃ [ {"}, �(s 00,�) = � 00(s 00,�).

Queremos provar que L(r) = L(Ar).Se ⇢ 2 L(r) então ⇢ 2 L(r1) ou ⇢ 2 L(r2), e por hipótese de indução ⇢ 2 L(Ar1) ou ⇢ 2 L(Ar2),respectivamente. Se ⇢ 2 L(Ar1) então b� 0({s 00}, ⇢) ◆ {s 01}. E, do mesmo modo, se ⇢ 2 L(Ar2) entãoc� 00({s 000 }, ⇢) ◆ {s 001 }. Em ambos os casos, como F"({s 01}) = F"({s 001 }) = {s1}, temos que ⇢ 2 L(Ar).Suponhamos que ⇢ 2 L(Ar1). Então,

�(F"({s0}), ⇢) = �({s0} [ F"({s00}) [ F"({s

000 }), ⇢)

◆ �(F"({s00}), ⇢)

◆ F"({s01})

= {s1}

Analogamente, se ⇢ 2 L(Ar2). Logo L(Ar1) [ L(Ar2) ✓ L(Ar).Seja ⇢ 2 L(Ar). Então pela definição de linguagem aceite por um NFA", b�(F"({s0}), ⇢) \ {s1} 6= ;implica que b�(F"({s0}), ⇢) = {s1}. Suponhamos, por absurdo, que ⇢ 62 L(Ar1) e ⇢ 62 L(Ar2).Então, b� 0(F"({s 00}), ⇢) 6= {s 01} e c� 00(F"({s 000 }), ⇢) 6= {s 001 }. Os estados s 01 e s 001 são os únicos estadosfinais de Ar1 e Ar2 , respectivamente, e dos únicos que se pode chegar a s1 em Ar (e sem consumirsímbolos). Isto é, não se poderia ter s1 2 b�(F"({s0}), ⇢) já que

b�(F"({s0}), ⇢) = b�({s 00, s 000 }, ⇢)

= F"(b� 0(F"({s00}), ⇢)) [ F"(b� 0(F"({s

00}), ⇢))

e portanto tinhamos ⇢ /2 L(Ar) (absurdo!).Mas então L(Ar) ✓ L(Ar1)[L(Ar2). Concluímos que L(Ar) = L(Ar1)[L(Ar2) = L(r1)[L(r2) =L(r1 + r2) = L(r).

v) r = r1r2

Seja Ar1 = hS 0,⌃, � 0, {s0}, {s01}}i e Ar2 = hS 00,⌃, � 00, {s 00}, {s1}}i. Temos que L(r) = L(r1) · L(r2) e,

por hipótese de indução, L(r1) = L(Ar1) e L(r2) = L(Ar2). Seja Ar = hS 0 [ S 00,⌃, �, {s0}, {s1}i,com a função � é definida por:

�(s 01, ") = {s 00}

Para s 0 2 S 0 e � 2 ⌃ [ {"}, �(s 0,�) = � 0(s 0,�).Para s 00 2 S 00 e � 2 ⌃ [ {"}, �(s 00,�) = � 00(s 00,�).

55

Page 24: Autómatos finitos - dcc.fc.up.ptrvr/resources/MC/C4.pdf · 1 Exercício 34 Seja A = hQ,⌃,,q 0,Fi um autómato finito determinístico e q um estado de A,talque?(q,)=q, 8 2 ⌃.

Draft-v

0.2.1

Queremos provar que L(r) = L(Ar).Seja ⇢ 2 L(r). Então existem ⇢ 0, ⇢ 00 2 ⌃? tal que ⇢ 0 2 L(r1) e ⇢ 00 2 L(r2). Tem-se que ⇢ 0 2 L(Ar1)e ⇢ 00 2 L(Ar2). Como no caso anterior, tem-se que b� 0({s0}, ⇢ 0) = {s 01} e c� 00({s 00}, ⇢

00) = {s1}. Então,

�(F"{s0}, ⇢) = �(F"{s0}, ⇢0⇢ 00)

= �(b� 0(F"{s0}, ⇢0), ⇢ 00)

= �(F"({s01}), ⇢

00)

= b� 0(F"({s00}), ⇢

00)

= {s1}

Logo, ⇢ 2 L(Ar) e, assim, L(r) ✓ L(Ar).Seja agora ⇢ 2 L(Ar). Então sabemos que �(F"{s0}, ⇢) = {s1}. Ao reconhecer a palavra ⇢ temosde passar necessariamente pelo estado s 01. Seja ⇢ 0 o prefixo de ⇢ tal que

�(F"({s0}), ⇢0) = b� 0(F"({s0}), ⇢

0) = {s 01}. (4.11)

Não consumindo mais símbolos da palavra ⇢ pode-se passar, por transições por ", para o estados 00 e continuar a reconhecer o “resto” da palavra ⇢, seja ⇢ 00. Tem-se que

�(F"({s00}), ⇢

00) = b� 0(F"({s00}), ⇢

00) = {s1}. (4.12)

Podemos concluir que ⇢ = ⇢ 0⇢ 00 tal que ⇢ 0 2 L(Ar1) e ⇢ 00 2 L(Ar2), o que prova que L(Ar) ✓L(Ar1)L(Ar2) = L(r1)L(r2) = L(r).

vi) r = r?1Seja Ar1 = hS 0,⌃, � 0, {s 00}, {s

01}}i e, por hipótese de indução, L(r1) = L(Ar1). Seja Ar = hS 0 [

{s0, s1},⌃, �, {s0}, {s1}i, com a função � é definida por:

�(s0, ") = {s 00}

�(s 00, ") = {s 01}

�(s 01, ") = {s 00}

�(s 01, ") = {s1}

Para s 0 2 S 0 e � 2 ⌃ [ {"}, �(s 0,�) = � 0(s 0,�).

Temos que F"(s0) ◆ {s0, s00, s

01, s1}, F"(s 00) ◆ {s 00, s

01, s1} e F"(s 01) ◆ {s 00, s

01, s1}.

Queremos provar que L(r) = L(Ar).Seja ⇢ 2 L(r). Se ⇢ = " então, pela definição de �, � e F"(s0), é imediato que ⇢ 2 L(Ar).Senão, existe n > 0 tal que ⇢ 2 L(r1)n, isto é, ⇢ = ⇢1 . . . ⇢n tal que ⇢i 2 L(r1), 1 i n.Provamos por indução em n, que ⇢ 2 L(Ar). Se n = 1, então ⇢ 2 L(Ar1) e considerando F"(s0)e F"(s 01) tem-se que ⇢ 2 L(Ar). Suponhamos que a propriedade se verifica para ⇢ 2 L(r1)m, param < n. Se ⇢ 2 L(r1)n, então ⇢ = ⇢ 0⇢ 00 tal que ⇢ 0 2 L(r) e ⇢ 00 2 L(r1)(n-1). Como no caso paran = 1, tem-se que ⇢ 0 2 L(Ar1), e considerando o fecho por " de s 01 e a hipótese de indução tem-seque ⇢ 2 L(Ar). Concluímos que L(r) ✓ L(Ar).Seja agora ⇢ 2 L(Ar?1

). Se ⇢ = " ou ⇢ 2 L(Ar1), é imediato pela construção de Ar que ⇢ 2 L(r).Caso contrário, ⇢ = ⇢ 0⇢ 00 tal que ⇢ 0 2 L(Ar1) e ⇢ 00 tem de ter um prefixo ⇢ 000 2 L(Ar1).Continuando este processo concluí-se que existe n > 0 tal que ⇢ = ⇢1 . . . ⇢n tal que ⇢i 2 L(Ar1),isto é, ⇢i 2 L(r1), i 1 n. Então ⇢ 2 L(r?1). E, concluindo, L(Ar?1

) ✓ L(r?1).

56

Page 25: Autómatos finitos - dcc.fc.up.ptrvr/resources/MC/C4.pdf · 1 Exercício 34 Seja A = hQ,⌃,,q 0,Fi um autómato finito determinístico e q um estado de A,talque?(q,)=q, 8 2 ⌃.

Draft-v

0.2.1

Exemplo 4.41 Considera a expressão regular (a+b)(a?+ba?+b?)?. Podemos considerar os seguintessub-autómatos:

Aa :a

Ab :b

Aa? :

" a

"

"

"

Ab? :

" b

"

"

"

Aa+b :

"

"

a

"

b

"

Aba? :

b " ""a

"

"

Denotando por Aa?+ba?+b? o autómato obtido pela união de Aa? , Aba? e Ab? , e conside-rando mais uma vez as construções para a concatenação e o fecho de Kleene, obtemos o autómatoA(a+b)(a?+ba?+b?)? , correspondente à expressão regular dada:

s 00 s 01 s 000 s 001 s1Aa+b " Aa?+ba?+b?

"

"

"

Exemplo 4.42 Se aplicarmos o método anterior para obter o autómato não determinístico que reco-nhece a linguagem correspondente à expressão regular (a+b)?a(a+"), obtemos (depois de eliminadasalgumas transições por " e respectivos estados, para simplificar):

57

Page 26: Autómatos finitos - dcc.fc.up.ptrvr/resources/MC/C4.pdf · 1 Exercício 34 Seja A = hQ,⌃,,q 0,Fi um autómato finito determinístico e q um estado de A,talque?(q,)=q, 8 2 ⌃.

Draft-v

0.2.1

s0

s1 s2

s3

s4 s5

s6

s7 s8

s9

"

"

"

a

"

"

a

a

"

"

"

a

"

4.5.1.2 Derivadas e Algoritmo de Brzozowski

A noção de derivada duma expressão regular em relação a um símbolo, corresponde a uma representação dalinguagem que se obtém quando se retira esse símbolo do início das palavras da linguagem que a expressãoregular representa.

Dado um símbolo � 2 ⌃ e uma linguagem L ✓ ⌃? podemos definir a linguagem quociente de L por �:

�-1L = {⇢ | �⇢ 2 L} (4.13)

Começamos por associar a cada expressão regular r uma função que indica se L(r) contém ou não apalavra vazia, ".

Definição 4.43 (Parte constante duma expressão regular) Seja "() : RE ! RE a função constanteque dada uma expressão regular r se define do seguinte modo:

"(r) =

�" se " 2 L(r),; caso contrário.

Lema 4.44 A parte constante "(r), duma expressão regular r pode-se determinar indutivamente pelasseguintes regras:

"(") ="

"(;) ="(�) = ;, 8� 2 ⌃

"(r1 + r2) =

8<

:

" se "(r1) = ",

" se "(r2) = ",

; caso contrário.

"(r1.r2) =

�" se "(r1) = "(r2) = ",

; caso contrário.

"(r?1) = "

Exercício 44 Prova, por indução na estrutura duma expressão regular, o lema anterior, Lema 4.44.

Definição 4.45 (Derivada de uma expressão regular por um símbolo) Seja r uma expressão re-gular e � um símbolo de ⌃. A derivada de r em relação a �, denotada por D�r é a expressão regularque se obtém pela seguinte definição indutiva:

58

Page 27: Autómatos finitos - dcc.fc.up.ptrvr/resources/MC/C4.pdf · 1 Exercício 34 Seja A = hQ,⌃,,q 0,Fi um autómato finito determinístico e q um estado de A,talque?(q,)=q, 8 2 ⌃.

Draft-v

0.2.1

D�� =" (4.14)D�; =D�" = D��

0 = ; 8� 0 2 ⌃, � 0 6= � (4.15)D�(r1 + r2) =D�r1 +D�r2 (4.16)D�(r1.r2) =(D�r1).r2 + "(r1).D�r2 (4.17)

D�r?1 =(D�r1).r

?1 (4.18)

Exemplo 4.46 As derivadas, em relação a a e b, para a expressão regular r, (a+b)?(a+ab?) são asseguintes:

Dar =Da(a+ b)?.(a+ ab?) + "((a+ b)?).Da(a+ ab?)

=Da(a+ b).r+Da(a) +Da(ab?)

=".r+ ;.r+ "+ ".b?

=r+ "+ b?

Dbr =Db(a+ b)?.(a+ ab?) + "((a+ b)?).Db(a+ ab?)

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

=".r+ ;.r+ ;+ ;.b?

=r

É importante notar que para obter as derivadas consideramos o facto de " ser elemento neutro daconcatenação e de ; ser elemento neutro da união e elemento absorvente da concatenação (ver Proposição 3.9).Também devem ser consideradas as propriedades associativa, comutativa e de idempotência da união, e queiremos denotar por propriedades ACI.

Exemplo 4.47 As derivadas, em relação a a e a b, para a expressão regular r, (a+b)(a?+ba?+b?)?

são as seguintes:

Dar = Da(a+ b).(a? + ba? + b?)? = (a? + ba? + b?)? = Dbr

Lema 4.48 Para toda a expressão regular r 2 RE, e para todo o símbolo � 2 ⌃, L(D�r) = �-1L(r).

Exercício 45 Prova, por indução na estrutura duma expressão regular, o lema anterior, Lema 4.48.

A noção de derivada em relação a um símbolo pode-se generalizar para palavras ⇢ 2 ⌃?.

Definição 4.49 (Derivada em relação a uma palavra) Seja r uma expressão regular e ⇢ uma pala-vra de ⌃?. A derivada de r em relação a ⇢ é uma expressão regular, denotada por D⇢r, e que define-seindutivamente no tamanho de ⇢:

D"r =r (4.19)D�⇢ 0r =D⇢ 0(D�(r)) (4.20)

Exemplo 4.50 Considera a expressão regular r dada por (a + b)(a? + ba? + b?)? do Exemplo 4.47.Vamos calcular a derivada desta expressão regular r em relação à palavra aab. Pela Definição 4.49,tem-se que Daab = Db(Da(Dar))).

Pelo Exemplo 4.47, tem-se que Dar = (a? + ba? + b?)?. Derivando novamente por a tem-se:

Da(Dar) =(Da(a?) +Da(ba

?) +Dab?)(a? + ba? + b?)

=(a? + ;+ ;)(a? + ba? + b?)?

=a?(a? + ba? + b?)?

59

Page 28: Autómatos finitos - dcc.fc.up.ptrvr/resources/MC/C4.pdf · 1 Exercício 34 Seja A = hQ,⌃,,q 0,Fi um autómato finito determinístico e q um estado de A,talque?(q,)=q, 8 2 ⌃.

Draft-v

0.2.1

e, finalmente,

Db(Da(Dar)) =Db(a?).(a? + ba? + b?)? + "(a?)Db((a

? + ba? + b?)?)

=Db(a? + ba? + b?).(a? + ba? + b?)?

=(a? + b?)(a? + ba? + b?)?

Como no caso de um símbolo � 2 ⌃, dada uma palavra ⇢ 2 ⌃? e uma linguagem L ✓ ⌃? podemosdefinir a linguagem quociente de L por ⇢:

⇢-1L = {⇢ 0 | ⇢⇢ 0 2 L} (4.21)

Lema 4.51 Para toda a expressão regular r 2 RE, e para todo o símbolo � 2 ⌃, L(D⇢r) = ⇢-1L(r).

Exercício 46 Prova, por indução na estrutura duma expressão regulare no tamanho da palavra, o lemaanterior, Lema 4.51.

Definição 4.52 (expressões regulares similares) Duas expressões regulares dizem-se similares se umapode ser transformada na outra por aplicação das seguintes regras de equivalência:

"r = r" = r

;r = r; = ;r+ (r1 + r2) = (r+ r1) + r2 (A)

r+ r1 = r1 + r (C)r+ r = r (I)

e duas expressões regulares dizem-se não similares se não forem similares.

Exemplo 4.53 As seguintes expressões regulares são similares: (;.a? + ".a?) + a? e a?.

Um facto importante demonstrado por J. Brzozowski [Brz64] é o de que o conjunto de derivadas dumaexpressão regular em relação a todas as palavras ⇢ 2 ⌃? (ou, simplesmente o conjunto de derivadas dumaexpressão regular) é finito, desde que se considerem as propriedades algébricas atrás referidas.

Proposição 4.54 (Brzozowski) O conjunto Dr de derivadas não similares duma expressão regularr 2 RE é finito.

É importante constatar que se não se considerassem expressões regulares similares, o conjunto dederivadas duma expressão regular podia ser infinito.

Exemplo 4.55 Seja a expressão regular a?? e considerem-se as derivadas em relação às palavras daforma an, para n � 1.

Da(a??) =a?a??

Daa(a??) =a?a?? + a?a??

Daaa(a??) =a?a?? + a?a?? + a?a??

...

Exemplo 4.56 Vamos calcular as derivadas da expressão regular, r dada por (a+ b)(a? + ba? + b?)?.Para tal consideramos as palavras de {a, b}? por ordem lexicográfica. Começamos por atribuir uma

60

Page 29: Autómatos finitos - dcc.fc.up.ptrvr/resources/MC/C4.pdf · 1 Exercício 34 Seja A = hQ,⌃,,q 0,Fi um autómato finito determinístico e q um estado de A,talque?(q,)=q, 8 2 ⌃.

Draft-v

0.2.1

ordem aos símbolos 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 sucessivamenteaté não aparecerem novas derivadas (não similares). Pela Proposição 4.54 sabemos que o processotermina.

Tem-se:

D"r =r = (a+ b)(a? + ba? + b?)?

Dar =(a? + ba? + b?)? = r1

Dbr =r1

Daar =Da(Dar) = Dar1 = Da(a? + ba? + b?)r1 = a?r1 = r2

Dabr =Db(Dar) = Dbr1 = (a? + b?)r1 = r3

Dbar =Da(Dbr) = Dar1 = r2

Dbbr =Db(Dbr) = Dbr1 = (a? + b?)r1 = r3

Daaar =Da(Da(Dar)) = Da(Dar1) = Dar2 = a?r1 + "(a?)Dar1 = r2

Daabr =Dab(Dar) = Db(Dar1) = Dbr2 = Dbr1 = r3

Dabar =Dba(Dar) = Da(Dbr1) = Dar3 = r2

Dabbr =Dbb(Dar) = Db(Dbr1) = Dbr3 = b?r1 + r3 = r4

Dabbar =Dbba(Dar) = Da(r4) = r2

Dabbbr =Dbbb(Dar) = Db(r4) = Db(b?)r1 +Dbr3 = r4

Como nestes duas últimas derivações não surgiram novas expressões, o processo termina e concluímosque Dr = {r, r1, r2, r3, r4}.

É imediato, do exemplo anterior, que em vez de se ir considerando sucessivamente palavras de ⌃?, éequivalente ir derivando em relação a cada símbolo do alfabeto as expressões regulares que vão aparecendono processo.

Exercício 47 Verifica o procedimento agora referido para o Exemplo 4.56.

Definição 4.57 (Autómato de Derivadas (ou de Brzozowski)) Seja r uma expressão regular e Dr

o conjunto seu conjunto de derivadas não similares. O autómato de derivadas é Ar = hDr,⌃, �r, {r}, Frionde �r e Fr são definidos por:

�r(s,�) = D�(s) 8s 2 Dr,8� 2 ⌃

Fr = {s 2 Dr | "(s) = "}

Proposição 4.58 (Brzozowski) Para toda a expressão regular r, L(Ar) = L(r).

Exemplo 4.59 Seja mais uma vez a expressão regular r, dada por (a+ b)(a? + ba? + b?)?.No Exemplo 4.56 já calculamos o conjunto das derivdas Dr. O autómato das derivadas de r é

Ar = hDr, {a, b}, �r, {r}, Fri, onde

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, r1, r2, r3, r4}

Fr = {r1, r2, r3, r4}

61

Page 30: Autómatos finitos - dcc.fc.up.ptrvr/resources/MC/C4.pdf · 1 Exercício 34 Seja A = hQ,⌃,,q 0,Fi um autómato finito determinístico e q um estado de A,talque?(q,)=q, 8 2 ⌃.

Draft-v

0.2.1

�r(r, a) = Dar = r1 �r(r, b) = Dbr = r1�r(r1, a) = Dar1 = r2 �r(r1, b) = Dbr1 = r3�r(r2, a) = Dar2 = r2 �r(r2, b) = Dbr2 = r3�r(r3, a) = Dar3 = r2 �r(r3, b) = Dbr3 = r4�r(r4, a) = Dar4 = r2 �r(r4, b) = Dbr4 = r4

e com o seguinte diagrama:

r r1

r2

r3

r4a, b

a

b

b

a

a

b

a

b

É de salientar que este autómato é um DFA e, ainda assim é menor que o NFA" obtido noExemplo 4.41.

Exercício 48 Compara os autómatos obtidos nos Exemplos 4.41 e 4.59, obtendo um autómato determinísticoequivalente ao NFA"do Exemplo 4.41.

4.5.1.3 O autómato de Gluskov

O autómato de Glushkov [Glu61] , também chamado autómato de posição, para construir um NFA apartir de uma expressão regular começa por linearizar esta. Uma expressão regular diz-se linear se cadasímbolo do alfabeto nela ocorrer somente uma vez. A linearização aqui efectuada corresponde na anotaçãode cada símbolo alfabético da expressão regular com um índice correspondente à contagem de símbolos oalfabeto até então ocorridos. Seja ↵ uma expressão regular, designamos por ↵ o resultado desta linearização,também chamada expressão regular marcada. Para simplificação de notação , se alpha for uma expressãoregular marcada, representamos por ↵ o resultado da remoção das anotações de linearização a todos ossímbolos alfabéticos da expressão, e portanto, ↵ = ↵.

Exemplo 4.60 Com ↵ = (a+ ba)?(b? + aa), temos ↵ = (a1 + b2a3)?(b?4 + a5a6).

Seja então ↵ uma expressão regular.

4.5.1.4 O autómato Follow

4.5.1.5 O autómato de Mirkin-Antimirov

4.5.2 De Autómatos Finitos para Expressões Regulares

Existem diversas formas de se obter uma expressão regular que represente a mesma linguagem que um dadoautómato finito reconhece. Aqui exporemos um método conhecido como Algoritmo de Eliminação de Estados(AEE). Vamos supor que o autómato finito é um NFA" e está normalizado, de acordo com o Lema 4.31:

62

Page 31: Autómatos finitos - dcc.fc.up.ptrvr/resources/MC/C4.pdf · 1 Exercício 34 Seja A = hQ,⌃,,q 0,Fi um autómato finito determinístico e q um estado de A,talque?(q,)=q, 8 2 ⌃.

Draft-v

0.2.1

i) Asseguramos que existe um só estado inicial do autómato, s0, tal que não existe nenhuma transiçãoque termine nesse estado. Se não for esse o caso, acrescentamos um novo estado s↵, que passa a ser oestado inicial do autómato, com uma única transição-" para o estado s0.

ii) Asseguramos que existe um só estado final, e que deste estado não parte nenhuma transição. Se nãofor este o caso, acrescentamos um novo estado s⌦, que passa a ser o único final, e, para cada estadofinal do autómato original, criamos uma transição-" para este novo estado.

Generalizamos o conceito de autómato finito a um autómato cuja função de transição � 0 passa a ser deuma diferente natureza:

� 0 : S⇥ RE -! S

por forma a que as transições não sejam etiquetadas com símbolos do alfabeto ⌃ mas sim com expressõesregulares com o mesmo alfabeto.

Definição 4.61 (Autómato Finito Generalizado (GFA)) Um GFA é um quintúplo hS,⌃, �, s0, Fi emque:

S é um conjunto finito, não vazio, a que chamamos o conjunto dos estados;

⌃ é um conjunto finito, não vazio, que constitui o alfabeto do autómato;

� é uma função total � : S⇥ S ! RE chamada função de transição;

s0, com s0 2 S, é o estado inicial;

F, com F ✓ S, é o conjunto dos estados finais.

Vamos supor que �(s, s 0) = ; sempre que transição entre s 2 S e s 0 2 S não seja dada explicitamente.Notar que qualquer DFA, NFA ou NFA" é um GFA.

Exercício 49 Mostra a afirmação anterior.

4.5.2.1 Algoritmo de Eliminação de Estados (AEE)

Seja A um autómato finito normalizado.

iii) Começamos por obter um GFA equivalente: fazem-se colapsar transições com as mesmas origens edestinos, sendo a transição restante etiquetada com a união das expressões regulares das transiçõesagora eliminadas.

s1 s2

r

r1

=) s1 s2r+ r1

s1

r

r1

=) s1 r+ r1

63

Page 32: Autómatos finitos - dcc.fc.up.ptrvr/resources/MC/C4.pdf · 1 Exercício 34 Seja A = hQ,⌃,,q 0,Fi um autómato finito determinístico e q um estado de A,talque?(q,)=q, 8 2 ⌃.

Draft-v

0.2.1

iv) Todos os estados, diferentes do inicial e do final, que não tenham, pelo menos, uma transição que delesparta e uma outra que a eles chegue, são eliminados e com eles as transições que os referem.

v) Nos restantes, eliminamos os lacetes passando a expressão regular que etiqueta cada saída a ser aconcatenação do fecho de Kleene da expressão que constava no lacete agora eliminado com a expressãoregular que constava nessa transição de saída.

s1 s0 s2

s3

r3

r

r1

r2

=)

s1 s0 s2

s3

r3 r?r1

r?r2

vi) Eliminamos sucessivamente todos os estados, exceptuando o inicial e o final, procedendo para cada umdeles do seguinte modo.

Para cada estado s que queremos eliminar, para cada transição s 0r-! s que chega a s (�(s 0, s) = r) e

para cada transição sr1-! s 00 que parte de s (�(s, s 00) = r1), construímos uma nova transição s 0

rr1--! s 00.Por fim, eliminamos o estado s e todas as transições que o referem. No final de cada passo deste énecessário aplicar de novo os passos iii) e v).

s1

s

s 01

s2 s 02

r r2

r3

r4

r1

=)

s1 s 01

s2 s 02

rr?4r2

rr?4r3

r1r?4r3

r1r?4r2

No fim deste processo, o autómato resultante deve ser do tipo

s↵ s⌦r

e a expressão regular que procurávamos é r.

Exemplo 4.62 Considera o seguinte NFA:

64

Page 33: Autómatos finitos - dcc.fc.up.ptrvr/resources/MC/C4.pdf · 1 Exercício 34 Seja A = hQ,⌃,,q 0,Fi um autómato finito determinístico e q um estado de A,talque?(q,)=q, 8 2 ⌃.

Draft-v

0.2.1

0 1

2

3a, b

b

a

abbb

b

Normalizando e transformando em GFA tem-se

04 1

2

3

5

a, b

b

a

abb

"

b

b

"

Não há estados que não são atingíveis ou de onde não partem transições. Eliminando os lacetes(neste caso só no estado 1), tem-se o GFA seguinte

04 1

2

3

5

a, b b?a

b?a

b?bb

"

b

b

"

Começamos por eliminar o estado 3 obtendo o GFA

65

Page 34: Autómatos finitos - dcc.fc.up.ptrvr/resources/MC/C4.pdf · 1 Exercício 34 Seja A = hQ,⌃,,q 0,Fi um autómato finito determinístico e q um estado de A,talque?(q,)=q, 8 2 ⌃.

Draft-v

0.2.1

4 0 1

2

5

"

"

a+ b

b?a+ b?ab

b?ab

b?bb

Consideremos, para encurtar um pouco as expressões, ↵ = b?ab. Então eliminando o lacete existenteem S1 temos

4 0 1 2 5" "

a+ b

↵?(b?a+ ↵)

↵?b?b

b

Eliminando, agora, os estados 0 e 2 temos

4 1 5a+ b ↵?b?b

↵?(b?a+ ↵)(a+ b) + ↵?b?bb

Eliminando primeiro o lacete em 1 e depois o próprio estado 1 obtemos

4 5(a+ b)(↵?(b?a+ ↵)(a+ b) + ↵?b?bb)↵?b?b

Donde podemos concluir que a expressão 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 influencia a forma e otamanho da expressão regular obtida. Diferentes ordenações podem conduzir a expressões regularesmuito diferentes, embora todas equivalentes. Em cada passo também se poderá tentar simplificar asexpressões regulares obtidas.

Exercício 50 Obtém uma expressão regular equivalente ao NFA do Exemplo 4.62, utilizando uma ordemde eliminação de estados diferente da usada no exemplo referido.

4.5.2.2 Método de Kleene

Uma forma de obter a expressão regular que corresponda à linguagem representada por um autómato finitopode ser descrita pelo seguinte método apresentado por Kleene [Kle56]. A ideia é a de encontrar todos

66

Page 35: Autómatos finitos - dcc.fc.up.ptrvr/resources/MC/C4.pdf · 1 Exercício 34 Seja A = hQ,⌃,,q 0,Fi um autómato finito determinístico e q um estado de A,talque?(q,)=q, 8 2 ⌃.

Draft-v

0.2.1

os caminhos que “vão” do estado inicial, a algum estado final do autómato, indo coligindo os símbolosdas transições, para assim constituir a expressão regular pretendida. Comecemos por renomear os estadosautómato passando estes a ser {1, . . . , n}, sendo 1 o estado inicial. Se o autómato, agora modificado, forA = hQ = {1, . . . , n},⌃, �, 1, Fi, definamos por Cl

ij o conjunto dos caminhos que vão do estado i para o estadoj, passando somente por estados intermédios cujo número não é superior a l. Como todos os estados têmnúmero superior a 0, C0

ij só não é o conjunto vazio se existir uma transição, por um símbolo, de i para j, ouseja, se existir � tal que �(i,�) = j.

r0ij = ;+X

� , para todos os símbolos � para os quais �(i,�) = j. (4.22)

rlij = rl-1ij + rl-1

il

�rl-1ll

�?rl-1lj (4.23)

4.5.2.3 Método equacional de Brzozowski

Vimos já que as linguagens esquerdas de um NFA satisfazem um sistema de equações (Teorema 4.36).Baseado nesse facto podemos obter um sistema de equações cuja solução é uma expressão regular equivalenteao autómato inicial. A solução é obtida por aplicações sucessivas do Lema de Arden (Lema 3.16), isto é,se tivermos a equação x = s + xr então uma solução é x = sr?, para s, r 2 ER. Começamos por ilustrar ométodo com um exemplo. Embora um pouco longo, cada passo é simples.

Exemplo 4.63 Consideremos o NFA do Exemplo 4.24 e o sistema de equações obtido no Exem-plo 4.35. Podemos substituir cada linguagem esquerda Esi

por uma variável xi, a reunião por + ecada conjunto singular pelo símbolo correspondente. Obtemos, o seguinte sistema de equações sobreexpressões regulares.

x0 = x00+ x11+ "

x1 = x20+ x01

x2 = x10+ x21

x3 = x40+ (x1 + x2 + x3)1

x4 = x30+ x41.

O nosso objectivo é obter uma expressão regular para x4 (único estado final). Começamos pelaprimeira equação e escrevemo-la de forma que possamos aplicar o Lema de Arden,

x0 = (x11+ ") + x0.0

e aplicamos o Lema de Arden para expressar x0 em termos de x1,

x0 = (x11+ ")0?.

Substituindo esta expressão na equação para x1 e rearranjando obtemos

x1 = (x20+ 0?1) + x110?1.

Aplicando novamente o Lema de Arden optemos a expressão de x1 em termos de x2.

x1 = (x20+ 0?1)(10?1)?.

67

Page 36: Autómatos finitos - dcc.fc.up.ptrvr/resources/MC/C4.pdf · 1 Exercício 34 Seja A = hQ,⌃,,q 0,Fi um autómato finito determinístico e q um estado de A,talque?(q,)=q, 8 2 ⌃.

Draft-v

0.2.1

Substituindo esta expressão nas equações de x2 e x3 (as únicas em que ainda aparece x1) temos

x2 = ((x20+ 0?1)(10?1)?)0+ x21

x3 = x40+ ((x20+ 0?1)(10?1)? + x2 + x3)1.

Rearranjando temos

x2 = 0?1(10?1)?0+ x2(0(10?1)?0+ 1)

x3 = (x40+ x2(0(10?1)?1+ 1) + 0?1(10?1)?1) + x31

Aplicando de novo o Lema de Arden à equação de x2 vem

x2 = (0?1(10?1)?0)(0(10?1)?0+ 1)?

Podemos agora substituir esta expressão de x2 na equação de x3 e aplicar o Lema de Arden, donderesulta para x3 a expressão em termos apenas de x4.

x3 = (x40+ ((0?1(10?1)?0)(0(10?1)?0+ 1)?)(0(10?1)?1+ 1) + 0?1(10?1)?1)1?

Representemos a expressão de x3 por x401? + ↵1? onde

↵ = (((0?1(10?1)?0)(0(10?1)?0+ 1)?)(0(10?1)?1+ 1) + 0?1(10?1)?1).

Finalmente, substituindo x3 por esta expressão na equação de x4 temos

x4 = ↵1?0+ x4(01?0+ 1)

donde pelo Lema de Arden mais uma vez obtemos uma expressão regular para x4 que é uma expressãoequivalente ao autómato inicial.

x4 = ↵1?0(01?0+ 1)?.

Em geral, se tivermos o NFA A = ({q1, . . . , qn}, {�1, . . . ,�k}, �, I, F)

1. sejam x1, . . . , xn variáveis

2. Construímos para cada estado qi uma equação para a variável xi que corresponde à sua linguagemesquerda. Se qi /2 I a equação é da forma

xi = xi1�1 + xi2�2 + · · ·+ xik�k,

onde xij =P

qi2�(qk,�j)xk; se qi 2 I temos

xi = xi1�1 + xi2�2 + · · ·+ xik�k + ".

3. No sistema de equações obtido, eliminam-se sucessivamente as variáveis x1, x2, . . . xn, do seguintemodo

Rearranja-se a equação de x1 para a forma

x1 = (x2c12 + x3c13 + · · ·+ xnc1n + r1) + x1c11.

onde os c1i e r1 são expressões regulares (sem variáveis) e no caso de serem ; é ignorada essaparcela.

68

Page 37: Autómatos finitos - dcc.fc.up.ptrvr/resources/MC/C4.pdf · 1 Exercício 34 Seja A = hQ,⌃,,q 0,Fi um autómato finito determinístico e q um estado de A,talque?(q,)=q, 8 2 ⌃.

Draft-v

0.2.1

Aplicando o Lema de Arden, exprimimos x1 em termos de x2, . . . , xn, obtendo

x1 = (x2c12 + x3c13 + · · ·+ xnc1n + r1)c?11.

Substitui-se este valor de x1 nas n- 1 equações restantes.Repete-se o processo para x2, x3, . . . xn.

4. A expressão regular equivalente ao autómato inicial será a disjunção (+) das expressões correspondentesaos estados finais de A.

Não é essencial que ordem de eliminação das variáveis seja a indicada acima, podendo em caso serescolhida a ordem implique um menor número de passos e que pareça conduzir a uma expressão regularmais pequena.

Exemplo 4.64 Considera o NFA do Exemplo 4.62. Podemos obter o seguinte sistema de equações

x0 = "+ x1a+ x3b

x1 = x0(a+ b) + x1b+ x2b+ x3b

x2 = x2b

x3 = x1a

Pretende-se obter uma expressão regular para x2, dado o único estado final é 2. Apenas a equação dex1 tem a ocorrência de x1 no lado direito. Assim podemos começar por substituir a expressão de x0na equação de x1, depois os de x2 e x3 e finalmente arranjar as parcelas. Vem

x1 = ("+ x1a+ x3b)(a+ b) + x1b+ x2b+ x3b

= ("+ x1a+ x1ab)(a+ b) + x1b+ x1bb+ x1ab

= (a+ b) + x1(a(a+ b) + ab(a+ b) + b+ bb+ ab)

De que resulta, pelo Lema de Arden

x1 = (a+ b)(a(a+ b) + ab(a+ b) + b+ bb+ ab)?

Substituindo este valor na equação para x2 obtemos uma expressão regular equivalente ao autómatodado.

x2 = (a+ b)(a(a+ b) + ab(a+ b) + b+ bb+ ab)?b

Neste caso, mais pequena que a obtida pelo método de eliminação de estados.

De modo análogo as linguagens direitas de um NFA satisfazem um sistema de equações (Teorema 4.36).Baseado nesse facto e usando o Lema de Arden, podemos obter um sistema de equações cuja solução é umaexpressão regular equivalente ao autómato inicial. Começamos por ilustrar o método com um exemplo.

Exemplo 4.65 Consideremos o NFA do Exemplo 4.24 e o sistema de equações obtido no Exem-plo 4.37. Podemos substituir cada linguagem direita Dsi

por uma variável Xi, a reunião por + e cadaconjunto singular pelo símbolo correspondente. Obtemos, o seguinte sistema de equações

x0 = 0x0 + 1x1

x1 = 0x2 + 1(x0 + x3)

x2 = 0x1 + 1(x2 + x3)

x3 = 0x4 + 1x3

x4 = 0x3 + 1x4 + ".

69

Page 38: Autómatos finitos - dcc.fc.up.ptrvr/resources/MC/C4.pdf · 1 Exercício 34 Seja A = hQ,⌃,,q 0,Fi um autómato finito determinístico e q um estado de A,talque?(q,)=q, 8 2 ⌃.

Draft-v

0.2.1

O nosso objectivo é obter uma expressão regular para x0. Começamos pela última equação eescrevêmo-la de forma que possamos aplicar o Lema de Arden (neste caso, x = rx+ s)

x4 = 1x4 + (0x3 + "),

e aplicamos o Lema de Arden para expressar x4 em termos de x3,

x4 = 1?(0x3 + ").

Substituindo esta expressão na equação de x3, e rearranjando, vem

x3 = (1+ 01?0)x3 + 01?.

Aplicando o lema de Arden a x3 resulta a solução de x3

x3 = (1+ 01?0)?01?.

Sunstituindo a expressão de x3 nas equações de x1 e x2 vem

x1 = 0x2 + 1x0 + 1(1+ 01?0)?01?

x2 = 1x2 + (0x1 + 1((1+ 01?0)?01?)).

Aplicando, mais uma vez o Lema de Arden agora a x2, vem

x2 = 1?(0x1 + 1((1+ 01?0)?01?))

= 1?0x1 + 1?1((1+ 01?0)?01?)).

Substituindo em x1 e arranjando as parcelas vem

x1 = 01?0x1 + 01?1((1+ 01?0)?01?) + 1x0 + 1((1+ 01?0)?01?).

Aplicando o Lema de Arden temos

x1 = (01?)?(01?1((1+ 01?0)?01?) + 1x0 + 1((1+ 01?0)?01?)).

Finalmente, substituindo esta expressão na equação de x0

x0 = (0+ 11)x0 + 1((01?)?(01?1((1+ 01?0)?01?) + 1((1+ 01?0)?01?))),

e aplicando o Lema de Arden resulta finalmente

x0 = (0+ 11)?(1((01?)?(01?1((1+ 01?0)?01?) + 1((1+ 01?0)?01?)))),

que é uma expressão equivalente ao autómato inicial.

Em geral, se tivermos o NFA A = ({q1, . . . , qn}, {�1, . . . ,�k}, �, I, F)

1. sejam x1, . . . , xn variáveis

2. Construímos para cada estado qi uma equação para a variável xi que corresponde à sua linguagemdireita. Se qi /2 F a equação é da forma

xi = �1xi1 + �2xi2 + · · ·+ �kxik,

onde xij =P

qk2�(qi,�j)xk; se qi 2 F temos

xi = �1xi1 + �2�2xi2 + · · ·+ �kxik + ".

70

Page 39: Autómatos finitos - dcc.fc.up.ptrvr/resources/MC/C4.pdf · 1 Exercício 34 Seja A = hQ,⌃,,q 0,Fi um autómato finito determinístico e q um estado de A,talque?(q,)=q, 8 2 ⌃.

Draft-v

0.2.1

3. No sistema de equações obtido, eliminam-se sucessivamente as variáveis xn, xn-1, . . . x1, do seguintemodo

Rearranja-se a equação de xn para a forma

xn = cnnxn + (cn1x1 + cn2x2 + · · ·+ cnn-1xn-1 + rn),

onde os cni e rn são expressões regulares (sem variáveis) e no caso de serem ; é ignorada essaparcela.

Aplicando o Lema de Arden, exprimimos xn em termos de x1, . . . , xn-1, obtendo

xn = c?nn(cn1x1 + cn2x2 + · · ·+ cnn-1xn-1 + rn).

Substitui-se este valor de xn nas n- 1 equações restantes

Repete-se o processo para xn-1, xn-2, . . . x1.

4. A expressão regular equivalente ao autómato inicial será a disjunção (+) das expressões correspondentesaos estados iniciais de A.

71