NFA e transições vazias

Percursos alternativos, fecho-ε, determinização e complemento de uma linguagem reconhecida por NFA.

TLDR

Perguntar sobre esta página

ChatGPTClaudePerplexityGrokGeminiCopiar e abrirDeepSeekCopiar e abrir

NFA e aceitação

Num NFA, δ(q,a)\delta(q,a) é um conjunto de destinos, possivelmente vazio. O NFA aceita quando existe um percurso que consome toda a palavra e termina num final.

  • Simula com conjuntos de estados possíveis: desde o conjunto atual SS e a letra aa, o conjunto seguinte é S′=⋃q∈Sδ(q,a)S'=\bigcup_{q\in S}\delta(q,a).
  • Para o sufixo 0101: pp repete 0,10,1 e pode saltar p→0q→1rp\xrightarrow{0}q\xrightarrow{1}r (rr final, sem saídas). Em 001001: {p},{p,q},{p,q},{p,r}\{p\},\{p,q\},\{p,q\},\{p,r\}. Em 00100010: conjunto final {p,q}\{p,q\}, rejeita.

Fecho-ε

Uma transição ε muda de estado sem consumir entrada. Para um conjunto SS, o fecho E(S)E(S) reúne os estados alcançáveis desde SS com zero ou mais transições ε.

  1. Começa com o conjunto SS e segue só saídas ε, visitando cada estado novo uma vez.
  2. A simulação começa em E({q0})E(\{q_0\}). Para cada letra aa desde o conjunto atual SS, calcula S′=E(⋃q∈Sδ(q,a))S'=E(\bigcup_{q\in S}\delta(q,a)).
  3. No fim da palavra, aceita quando S∩F≠∅S\cap F\ne\emptyset. Os conjuntos guardados já estão fechados.

Na máquina de a∗b∗a^*b^*, o fecho inicial é E({p})={p,q}E(\{p\})=\{p,q\}, por isso ε\varepsilon é aceite. Depois de ler um bb, ler um aa leva ao conjunto vazio.

ε-NFA: segue todos os estados ativos. Aceita se, depois de consumir toda a palavra, algum for final (círculo duplo). ε não consome entrada; calcula-se o fecho no início e após cada símbolo.

aεbpinícioq
Editar estados e transições

Até 12 estados, 8 símbolos e 128 símbolos de entrada. Edições e resultados ficam neste dispositivo durante esta visita.

Pronta para executar. Estados iniciais ativos {p, q}.

Determinização

  1. Começa com uma lista de trabalho desde o conjunto inicial, com fecho-ε quando a máquina tem transições ε.
  2. Para cada subconjunto e cada letra, calcula a união dos destinos e depois o fecho.
  3. Um subconjunto é final quando contém um estado final do NFA. O conjunto vazio, quando alcançável, funciona como poço.
  4. Um NFA com nn estados tem no máximo 2n2^n subconjuntos; só os alcançáveis desde o início interessam.

Eliminar ε sem determinizar: δ′(q,a)=E(⋃p∈E({q})δ(p,a))\delta'(q,a)=E(\bigcup_{p\in E(\{q\})}\delta(p,a)), com qq final quando E({q})∩F≠∅E(\{q\})\cap F\ne\emptyset.

Complemento

Trocar finais num NFA não complementa: uma palavra pode ter um ramo final e outro não final. Determiniza, completa, troca finais no DFA.

Os DFA, NFA e ε-NFA descrevem a mesma classe das linguagens regulares. O não determinismo reduz a descrição, não aumenta o poder.

Tabela completa da determinização.

À tua maneira

Aparência

Modo de cor
Tema
Cor de destaque

Leitura

Fonte de leitura

Álgebra, lógica e uma ideia de cada vez.

Código

Fonte do código

Navegação

Cursor de leitura, sem edição. h, j, k, l movem; / pesquisa nesta página. v seleciona caracteres; V seleciona linhas; y copia. Tab permite destacar ou comentar. Espaço ou Enter abre blocos recolhíveis. Nos cartões, h, j, k, l mudam o foco.

CSS personalizado

Ativa uma sugestão ou guarda o teu CSS. Só muda este navegador.

Usa --page, --text e --accent para acompanhar o tema.

Seletores e recuperação

.site-header, .prose, .course-card, [data-reading-history], [data-playground] e .page-actions.

Abre a aparência com a tecla vírgula ou no rodapé. Se o CSS esconder os controlos, abre esta página sem CSS personalizado.

Pesquisar

Escreve para pesquisar em todo o site.

para escolher · Enter para abrir · Esc para fechar

Copiar fórmula

A cópia automática não está disponível. Copia o LaTeX abaixo.

Pesquisar nesta página

Enter procura · n / N repetem · Esc cancela. Ctrl / Cmd K pesquisa todo o site.

Atalhos de teclado

Clica numa tecla para a mudar. Esc cancela. Backspace desativa.

PesquisarCtrl / Cmd K

Os atalhos não interferem enquanto escreves. Tab e Enter funcionam sempre.