NFA e transições vazias
Percursos alternativos, fecho-ε, determinização e complemento de uma linguagem reconhecida por NFA.
NFA e aceitação
Num NFA, é 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 e a letra , o conjunto seguinte é .
- Para o sufixo : repete e pode saltar ( final, sem saídas). Em : . Em : conjunto final , rejeita.
Fecho-ε
Uma transição ε muda de estado sem consumir entrada. Para um conjunto , o fecho reúne os estados alcançáveis desde com zero ou mais transições ε.
- Começa com o conjunto e segue só saídas ε, visitando cada estado novo uma vez.
- A simulação começa em . Para cada letra desde o conjunto atual , calcula .
- No fim da palavra, aceita quando . Os conjuntos guardados já estão fechados.
Na máquina de , o fecho inicial é , por isso é aceite. Depois de ler um , ler um 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.
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}.
Ver solução
Repõe o exemplo para consultar a máquina de referência. Os estados podem ter outros nomes: a verificação compara o comportamento para todas as entradas.
Determinização
- Começa com uma lista de trabalho desde o conjunto inicial, com fecho-ε quando a máquina tem transições ε.
- Para cada subconjunto e cada letra, calcula a união dos destinos e depois o fecho.
- Um subconjunto é final quando contém um estado final do NFA. O conjunto vazio, quando alcançável, funciona como poço.
- Um NFA com estados tem no máximo subconjuntos; só os alcançáveis desde o início interessam.
Eliminar ε sem determinizar: , com final quando .
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.