07 · Equivalência entre Autômatos Finitos e Gramáticas Regulares
Resumo em 30 segundos
Estado vira não terminal e transição vira produção. AF → GR: cada vira (e também se é final). GR → AF: cada vira , e cada leva a um novo estado final . As duas conversões mostram que gramáticas regulares e autômatos finitos descrevem exatamente as mesmas linguagens.
Anterior: 06 - Equivalência AFD e AFND · Voltar ao mapa
A analogia que resolve tudo
| Autômato | Gramática regular |
|---|---|
| estado | não terminal |
| estado inicial | símbolo inicial |
| transição | produção |
| “chegar em final e parar” | produção que termina só com terminal: |
| inicial é final (aceita ) |
Cada passo de derivação corresponde a ler a e ir de para . A forma sentencial de uma gramática regular sempre tem um único não terminal, no fim, e ele faz o papel do estado atual.
AF para GR
Slides 3 e 4. Dado , a gramática é:
- : o mesmo alfabeto.
- .
- : os estados. Estados finais sem nenhuma transição de saída podem ser descartados (é o que o slide chama de “F não aceita símbolos”), porque nunca aparecem do lado direito como .
- , para cada transição :
| Situação | Produções |
|---|---|
| e não tem transições de saída | |
| e tem transições de saída | |
| acrescentar |
O resultado é uma gramática linear à direita (ver aula 03, slide 14).
Exemplo dos slides 5 e 6
| T | 0 | 1 |
|---|---|---|
| → S | {A} | ∅ |
| A | {A, B} | {S} |
| * B | {S} | {A} |
é final e tem saídas, então fica em e toda transição que chega em gera as duas versões.
| Transição | Produções |
|---|---|
Conferi por programa que essa gramática gera exatamente as palavras aceitas pelo autômato (até tamanho 9).
A conversão funciona para AFND também
O exemplo do slide 5 tem , então é um AFND. Não precisa determinizar antes: cada destino do conjunto vira uma produção.
GR para AF
Slides 7 e 8. Dada , o autômato é:
- , onde é um estado novo.
- .
- ( não tem transições de saída).
- Para cada produção:
| Produção | Transição |
|---|---|
| inclui | |
| inclui | |
| também entra em |
Em geral o resultado é um AFND (quando há e com o mesmo , por exemplo). Se precisar de um AFD, aplique a construção de subconjuntos.
Exemplo dos slides 9 e 10
| T | 0 | 1 |
|---|---|---|
| → S | {A} | {B} |
| A | {A, Z} | {B} |
| B | {A} | {S, Z} |
| * Z | ∅ | ∅ |
vem de e : não determinismo. Conferido por programa até tamanho 9.
flowchart LR AF[Autômato Finito] -- "estados viram não terminais<br/>transições viram produções" --> GR[Gramática Regular] GR -- "não terminais viram estados + Z<br/>produções viram transições" --> AFND[AFND] AFND -- "construção de subconjuntos<br/>(aula 06)" --> AFD[AFD] AFD --> AF
Slides 11 e 12: exercícios
Todas as respostas foram conferidas por programa: gerei as palavras de cada gramática e comparei com as aceitas pelo autômato correspondente.
Exercício 1: gramática do autômato da esquerda
Transições lidas do slide ampliado: laço 1; ; laço 1; ; ; ; . Finais: e . ( com 1 vai para : é AFND.)
Renomeando , , ( é final sem saída, então não vira não terminal):
Linguagem (bônus, conferida até tamanho 12): .
Exercício 2: gramática do autômato da direita
Transições: laço 0 e 1; ; laço 1; ; laço 0; . Final: (tem saídas).
Com , , :
Linguagem (bônus, conferida até tamanho 11): palavras com pelo menos dois 0 que terminam em 0.
Exercício 3: autômato da gramática com S, A, B, C
Atenção: é uma produção unitária (lado direito é só um não terminal). Ela não se encaixa em nem , então a regra de conversão dos slides não se aplica direto. Primeiro elimine: troque pelas produções de :
Conferi que a linguagem não muda com essa troca. Agora converta:
T a b → S {A, S, Z} {B, S, Z} A {A} {C} B {C} {B} C {S, Z} {S, Z} * Z ∅ ∅ Curiosidade: essa gramática gera todas as palavras não vazias, , porque sozinho já gera tudo. , e acabam sendo redundantes. Conferido até tamanho 9.
Exercício 4: autômato da gramática com S, A, B
T a b → S {A} {B} A {A, Z} {S} B {S} {B, Z} * Z ∅ ∅ Linguagem (bônus, conferida até tamanho 13): . Em palavras: blocos do tipo “vários a e um b” ou “vários b e um a”, terminando com um bloco de pelo menos dois símbolos iguais.
Visão geral: tudo é a mesma classe
Com as aulas 03b, 04, 05, 06 e 07, fecha-se o quadro das linguagens regulares:
flowchart LR ER[Expressão Regular] <-->|livros, seção 3.6| AFND AFND <-->|aula 06| AFD AFD <-->|aula 07| GR[Gramática Regular] AFND <-->|aula 07| GR
A conversão ER ↔ autômato não está nestes slides; os livros mostram (Ramos, seção 3.6).
Aprofundamento com os livros
Páginas das edições da sua pasta: Menezes 3ª edição (2000) e Ramos, José Neto e Vega (Bookman).
A ideia central, nas palavras do Ramos (p. 203)
Não é só o símbolo inicial que gera uma linguagem: cada não terminal gera a sua, . Do mesmo jeito, cada estado aceita uma linguagem: as palavras que levam de até um estado final. A conversão só faz esses dois coincidirem. Uma produção passa a significar “a linguagem de é a seguido da linguagem de ”, que é exatamente o que a transição diz.
O Ramos ainda observa que o número de passos bate: para gerar uma palavra de símbolos, a gramática usa uma forma sentencial a mais do que o número de configurações do autômato (p. 204 e 206).
GR para AF nos livros: regras com ε
Os livros aceitam dois tipos de produção que os slides não tratam, e convertem os dois com transições vazias:
| Produção | Slides | Menezes (Teorema 2.18, p. 57) | Ramos (Algoritmo 3.14, p. 202 e 203) |
|---|---|---|---|
| igual | igual | ||
| (unitária) | não trata | ||
| só (inicial vira final) |
No Ramos, o autômato resultante tem estados e exatamente uma transição por produção.
O exercício 3 do slide 12, do jeito do Ramos
A produção unitária que eu eliminei na resolução acima pode ser convertida direto numa transição vazia :
Conferi por programa que esse autômato com aceita exatamente , igual à versão sem a produção unitária. As duas resoluções estão certas; use a que o professor preferir.
Menezes, Exemplo 16 (p. 58 e 59)
A gramática , , gera . A regra vira uma transição vazia de para o estado final:
Conferido por programa.
AF para GR nos livros: estados finais viram regras vazias
Os livros usam uma construção um pouco diferente da dos slides:
| Slides | Menezes (Teorema 2.19, p. 59) | Ramos (Algoritmo 3.15, p. 204 e 205) | |
|---|---|---|---|
| Transição | , e também se é final | ||
| Estado final | não gera regra própria | ||
| Símbolo inicial | o próprio estado inicial | um novo com | o próprio estado inicial |
| Transição vazia | não trata | (parte de um AFD) |
Com a regra dos livros, o exemplo do slide 5 fica assim: , , . Conferi por programa que gera a mesma linguagem que a gramática do slide 6.
Qual usar?
A regra dos slides evita produções vazias (útil se o professor exigir a forma do slide 13 da aula 03). A dos livros é mais mecânica: uma produção por transição e uma por estado final, com no Ramos. As duas geram gramáticas equivalentes.
Mais de um caminho, mais de uma derivação (Ramos, Exemplo 3.38, p. 205 e 206)
Quando o autômato é não determinístico, uma palavra pode ser aceita por dois caminhos diferentes. Cada caminho corresponde a uma derivação diferente na gramática gerada. É a primeira aparição, em versão regular, da ideia de ambiguidade que aparece com força nas gramáticas livres de contexto.
O quadro completo das conversões (Menezes, Figura 2.23, p. 61)
O Menezes resume todas as traduções entre formalismos regulares num diagrama. Com as aulas até aqui mais os complementos dos livros:
flowchart LR ER[Expressão regular] -->|"Teorema 2.13"| AFE[AF com ε] AFE -->|"Teorema 2.11"| AFN[AFND] AFN -->|"Teorema 2.7 · aula 06"| AFD AFD -->|"Teorema 2.19 · aula 07"| GR[Gramática regular] GR -->|"Teorema 2.18 · aula 07"| AFE AFD -.->|"Teorema 2.14 (sem prova no Menezes; Ramos Alg. 3.17)"| ER
Os números são dos teoremas do Menezes. O exercício 2.8 do livro (p. 81) pede exatamente para percorrer esse caminho: partir de uma ER e chegar a uma gramática regular passando por AF com ε, AFND e AFD.
Para aprofundar nos livros
Onde ler (páginas das edições da sua pasta)
- Menezes (3ª ed.): 2.6 Gramática Regular, Teoremas 2.18 e 2.19 com os Exemplos 16 e 17, p. 57 a 60; exercícios 2.8 e 2.12, p. 81.
- Ramos, José Neto e Vega: 3.5 Gramáticas Regulares e Autômatos Finitos, p. 202 a 206; 3.4 Gramáticas Regulares e Conjuntos Regulares, p. 192 a 202.
Relacionadas: 03 - Gramáticas Regulares · 06 - Equivalência AFD e AFND · Glossário · Flashcards