06 · Equivalência entre AFD e AFND

Resumo em 30 segundos

Teorema: se um AFND aceita , existe um AFD que aceita . A prova é construtiva (construção de subconjuntos): cada estado do AFD é um conjunto de estados do AFND, o conjunto dos estados “ativos” naquele momento. A transição do AFD é a união das transições do AFND. Estados finais do AFD são os conjuntos que contêm algum final do AFND.

Anterior: 05 - Autômatos Finitos Não Determinísticos · Voltar ao mapa · Próxima: 07 - Equivalência AF e GR


Slide 3: o teorema

Se é aceita por um AFND, então existe um AFD que aceita .

Consequência: o AFND não é mais poderoso que o AFD. É uma representação mais livre, mais fácil de escrever, com o mesmo poder. A volta é trivial: todo AFD já é um AFND (cada conjunto de destinos tem um elemento só).

Slides 4 e 5: a construção

Dado o AFND , define-se o AFD :

Componente do AFDDefinição
subconjuntos de ; o estado representa o conjunto
sse
inicial, o conjunto só com o inicial do AFND
subconjuntos que contêm pelo menos um estado de

Detalhe no slide 4

O slide escreve . Como é determinístico, o correto é . Cada estado de já é um conjunto de estados do AFND, então o destino é um único elemento de , não um conjunto deles.

Slide 6: a prova, em português

Por indução no tamanho da palavra , mostra-se:

Ou seja, o estado do AFD depois de ler é exatamente o conjunto de estados em que o AFND pode estar depois de ler .

  • Base (, ): o AFD está em e o AFND em . Iguais por definição.
  • Hipótese: vale para palavras de tamanho .
  • Passo (, tamanho ): pela hipótese, depois de os dois estão em "". Lendo , o AFND vai para e o AFD, por definição de , vai para o mesmo conjunto.

Daí: o AFD aceita ⟺ o conjunto final contém um estado de ⟺ o AFND aceita .

Slide 7: o algoritmo

flowchart TD
  A["Comece com o estado [i]"] --> B{Há estado do AFD<br/>ainda não analisado?}
  B -- não --> Z[Fim: marque como finais<br/>os que contêm algum estado de F]
  B -- sim --> C[Pegue um estado S = conjunto]
  C --> D["Para cada símbolo a:<br/>destino = união de T(q,a) para q em S"]
  D --> E{Destino já existe<br/>na tabela?}
  E -- sim --> B
  E -- não --> F[Crie o novo estado<br/>e coloque na fila] --> B

Dica de prova: só crie os subconjuntos que aparecem a partir de . Não precisa listar os subconjuntos; os inalcançáveis podem ser ignorados.

Slides 8 a 10: exemplo resolvido

AFND:

T01
→ q0{q1}{q2}
q1{q0, q1}{q0}
* q2{q0}{q2}

Passo a passo:

  1. : com 0 vai para ; com 1 vai para . Dois estados novos.
  2. : com 0, , estado novo ; com 1, .
  3. : com 0, ; com 1, .
  4. : com 0, ; com 1, , novo.
  5. : com 0, ; com 1, .
  6. Nenhum estado novo: fim.

AFD resultante (idêntico ao do slide 10, conferido por programa):

T01
→ [q0][q1][q2]
[q1][q0q1][q0]
* [q2][q0][q2]
[q0q1][q0q1][q0q2]
* [q0q2][q0q1][q2]

Finais: e , os que contêm . Conferi também que o AFD e o AFND aceitam exatamente as mesmas palavras até tamanho 10.

Slide 11: exercícios


Aprofundamento com os livros

Páginas das edições da sua pasta: Menezes 3ª edição (2000) e Ramos, José Neto e Vega (Bookman).

O teorema no Menezes (Teorema 2.7, p. 43)

É a mesma construção dos slides, com dois detalhes que o livro deixa explícitos:

  • Os estados do AFD são combinações sem repetição dos estados do AFND, e a ordem não importa: e são o mesmo estado.
  • A volta (todo AFD é um AFND) “decorre trivialmente das definições”, porque um AFD é um AFND em que todo conjunto de destinos tem um elemento só.

A prova é por indução no tamanho da palavra, igual à do slide 6: o estado do AFD depois de ler é exatamente o conjunto de estados em que o AFND pode estar.

Exemplo do livro: “termina em aaa” (Menezes, Exemplos 6 e 7, p. 42 a 44)

O AFND tem 4 estados (veja o diagrama na aula 05). Aplicando a construção a partir de (conferi por programa):

Tab
→
*

De 16 subconjuntos possíveis, só 4 são alcançáveis. O livro chama esses estados de : cada um conta quantos a seguidos acabaram de aparecer. Ler b sempre volta para o começo.

O algoritmo do Ramos é um pouco diferente (Algoritmo 3.4, p. 160 a 162)

Em vez de começar do estado inicial e só criar os conjuntos alcançáveis (como nos slides e no Menezes), o Ramos parte da tabela inteira do AFND e vai trocando cada transição não determinística por um estado novo que junta os destinos, copiando para ele as transições dos estados que o compõem. Repete até não sobrar não determinismo. Consequências que ele destaca:

  • podem sobrar estados inacessíveis no final (no Exemplo 3.15, p. 162, o estado original fica inacessível), que depois podem ser removidos;
  • o número de estados do AFD fica limitado por (todas as combinações não vazias), e o Exemplo 3.17 (p. 164) mostra um caso em que as combinações aparecem.

Os dois métodos chegam a autômatos equivalentes. O dos slides costuma dar menos trabalho na prova porque nunca cria estado inalcançável.

O caminho contrário é trivial

O Ramos mostra (Exemplo 3.18, p. 166) que dá para transformar qualquer AFD num AFND equivalente só acrescentando um estado “morto” alcançável por um símbolo que já tinha transição. A linguagem não muda. Ou seja, a equivalência é mesmo nos dois sentidos.

Depois da conversão, minimize

A construção de subconjuntos costuma gerar estados equivalentes (que se comportam igual para qualquer palavra). No AFND do slide 9 da aula 05, por exemplo, a conversão gera 5 estados, mas dois deles podem ser fundidos. O algoritmo de minimização do Menezes está explicado, com esse exemplo, em 08 - Tópicos Complementares dos Livros. Já os dois exercícios desta aula e o exemplo dos slides 8 a 10 não diminuem: conferi por programa que os AFDs obtidos já são mínimos.

Para aprofundar nos livros

Onde ler (páginas das edições da sua pasta)

  • Menezes (3ª ed.): Teorema 2.7 e Exemplo 7, p. 43 e 44; 2.8 Minimização, p. 66 a 72; exercícios 2.8 e 2.25a, p. 81 e 84.
  • Ramos, José Neto e Vega: Teorema 3.3 e Algoritmo 3.4, p. 160 a 167; 3.7 Minimização de Autômatos Finitos, p. 216 a 230.

Relacionadas: 05 - Autômatos Finitos Não Determinísticos · 07 - Equivalência AF e GR · Glossário · Flashcards