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ômatoGramá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çãoProduçõ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

T01
→ 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çãoProduçõ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çãoTransiçã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

T01
→ 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.


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çãoSlidesMenezes (Teorema 2.18, p. 57)Ramos (Algoritmo 3.14, p. 202 e 203)
igualigual
(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:

SlidesMenezes (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 inicialo próprio estado inicialum 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