Converter expressões e autómatos

Construção de Thompson, eliminação de estados e equivalência entre descrições regulares.

TLDR

Perguntar sobre esta página

ChatGPTClaudePerplexityGrokGeminiCopiar e abrirDeepSeekCopiar e abrir

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ãoConstrução
aa, ε\varepsilon, ∅\emptysetDois estados; aresta aa, ε, ou nenhuma
EFEFLiga a saída de EE à entrada de FF por ε; a saída antiga de EE passa a intermédia e só a saída de FF fica final
E+FE+FUma entrada nova escolhe por ε e as saídas ligam por ε a uma saída nova
E∗E^*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 ε\varepsilon. Em (a+b)∗a(a+b)^*a, as palavras aa e baba são aceites e ε\varepsilon e abab 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

  1. Acrescenta uma entrada nova ss com ε para o antigo início e uma saída nova ff com ε desde cada antigo final. Só ff fica final.
  2. Cada aresta passa a ter uma expressão; arestas paralelas unem-se por união e a ausência vale ∅\emptyset.
  3. Para eliminar o estado kk, atualiza cada par i,ji,j de estados sobreviventes com i≠ki\ne k e j≠kj\ne k por Rij′=Rij+Rik(Rkk)∗RkjR'_{ij}=R_{ij}+R_{ik}(R_{kk})^*R_{kj}, sempre com os rótulos anteriores à ronda. Repete até só restarem ss e ff.

Aqui: eliminar pp dá s→qs\to q com a∗ba^*b; eliminar qq dá a∗bc∗a^*bc^*. A ordem muda o texto, não a linguagem.

Derivadas e equivalência

A derivada Da(E)D_a(E) é uma expressão que denota o quociente à esquerda pela letra aa: a sua linguagem é L(Da(E))={w∣aw∈L(E)}L(D_a(E))=\{w\mid aw\in L(E)\}. Um estado-expressão é final exatamente quando a sua expressão aceita ε\varepsilon, isto é, quando é anulável.

Da(E+F)≡Da(E)+Da(F),Da(E∗)≡Da(E)E∗.D_a(E+F)\equiv D_a(E)+D_a(F),\qquad D_a(E^*)\equiv D_a(E)E^*.

Na concatenação, a letra pode vir de EE ou, quando EE aceita ε\varepsilon, diretamente de FF:

Da(EF)≡{Da(E)F+Da(F),ε∈L(E),Da(E)F,ε∉L(E).D_a(EF)\equiv \begin{cases} D_a(E)F+D_a(F),&\varepsilon\in L(E),\\ D_a(E)F,&\varepsilon\notin L(E). \end{cases}
  • 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.

Eliminação com retorno e derivadas.

À 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.