Autómatos finitos

Estados com significado, função de transição, construção de DFA e provas de correção.

TLDR

Perguntar sobre esta página

ChatGPTClaudePerplexityGrokGeminiCopiar e abrirDeepSeekCopiar e abrir

DFA e aceitação

Um DFA é M=(Q,Σ,δ,q0,F)M=(Q,\Sigma,\delta,q_0,F) com δ:Q×Σ→Q\delta:Q\times\Sigma\to Q total: um destino por cada par estado/símbolo. Num DFA, um desenho incompleto abrevia um poço para as transições omitidas.

  • O DFA aceita quando, depois de consumir toda a entrada, o estado atual é final. Passar por um final antes do fim não basta.
  • A palavra vazia ε\varepsilon é aceite se e só se o início q0q_0 pertence a FF.

Estados com significado

Para palavras terminadas em abab, guarda o sufixo útil do prefixo:

EstadoSignificadoaabb
q0q_0, inicialSem sufixo útilq1q_1q0q_0
q1q_1Termina em aaq1q_1q2q_2
q2q_2, finalTermina em ababq1q_1q0q_0

baabbaab segue q0,q0,q1,q1,q2q_0,q_0,q_1,q_1,q_2 e aceita. abaaba passa por q2q_2 mas termina em q1q_1 e rejeita.

A regra de recuperação pergunta, perante o estado pp e a letra aa, qual é o sufixo útil do prefixo maior. Prova por indução nos prefixos que cada estado conserva o seu significado; só então o critério final equivale à condição nas duas direções.

Construção e editor do DFA.

Transição estendida

δ^(q,ε)=q,δ^(q,xa)=δ(δ^(q,x),a).\widehat\delta(q,\varepsilon)=q,\qquad \widehat\delta(q,xa)=\delta(\widehat\delta(q,x),a).

w∈L(M)w\in L(M) se e só se δ^(q0,w)∈F\widehat\delta(q_0,w)\in F. Podes dividir a leitura em qualquer posição: δ^(q,xy)=δ^(δ^(q,x),y)\widehat\delta(q,xy)=\widehat\delta(\widehat\delta(q,x),y).

Restos e produto

  • Para um binário lido do bit mais significativo para o menos: ler o bit bb quando o valor acumulado é vv dá 2v+b2v+b. Para múltiplos do divisor dd, guarda o resto rr e atualiza por (2r+b) mod d(2r+b)\bmod d; o resto zero é final.
  • Decide ε\varepsilon e zeros iniciais à parte: usa um início novo não final e um poço para o primeiro 00 quando a representação tem de começar em 11.
  • No sentido inverso, do menos para o mais significativo, guarda o resto rr e o peso tt da posição seguinte, com (r,t)↦((r+bt) mod d,2t mod d)(r,t)\mapsto((r+bt)\bmod d,2t\bmod d) desde (0,1)(0,1), onde dd é o divisor.
  • O produto usa estados-pares com ambas as componentes atualizadas por cada letra. Os finais dependem da operação: a interseção exige ambas as componentes finais e a união exige pelo menos uma componente final.

Contagens e convenções completas.

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