Converter expressões e autómatos
Construção de Thompson, eliminação de estados e equivalência entre descrições regulares.
Thompson: expressão para ε-NFA
Cada fragmento tem uma entrada e uma saída, e a saída será o único estado final quando o fragmento estiver completo.
| Expressão | Construção |
|---|---|
| , , | Dois estados; aresta , ε, ou nenhuma |
| Liga a saída de à entrada de por ε; a saída antiga de passa a intermédia e só a saída de fica final | |
| Uma entrada nova escolhe por ε e as saídas ligam por ε a uma saída nova | |
| Uma entrada nova salta ou entra no fragmento; a saída do fragmento repete ou sai para uma saída nova |
Na estrela, o caminho direto aceita . Em , as palavras e são aceites e e são rejeitadas. O método é sistemático, não mínimo, e a correção segue por indução estrutural.
Eliminação: autómato para expressão
- Acrescenta uma entrada nova com ε para o antigo início e uma saída nova com ε desde cada antigo final. Só fica final.
- Cada aresta passa a ter uma expressão; arestas paralelas unem-se por união e a ausência vale .
- Para eliminar o estado , atualiza cada par de estados sobreviventes com e por , sempre com os rótulos anteriores à ronda. Repete até só restarem e .
Aqui: eliminar dá com ; eliminar dá . A ordem muda o texto, não a linguagem.
Derivadas e equivalência
A derivada é uma expressão que denota o quociente à esquerda pela letra : a sua linguagem é . Um estado-expressão é final exatamente quando a sua expressão aceita , isto é, quando é anulável.
Na concatenação, a letra pode vir de ou, quando aceita , diretamente de :
- As expressões, os DFA, os NFA e os ε-NFA descrevem a mesma classe das linguagens regulares.
- Para complementar uma expressão, converte para autómato, determiniza, completa, troca os finais e converte de novo; não basta trocar operadores.
- Para comparar duas expressões, constrói o produto dos DFA; os testes com palavras revelam diferenças, mas só o algoritmo decide a equivalência.