Cheat sheet
Condições, construções e erros a conferir em linguagens, autómatos, gramáticas e computabilidade.
Decide primeiro o que precisas: reconhecer, converter, provar ou calcular custos. Cada linha dá a condição exata e o erro que a quebra. As ligações levam às construções completas.
Reconhecer uma palavra
| Modelo | Condição de aceitação | Erro que quebra |
|---|---|---|
| DFA | Estado final depois de consumir toda a entrada | Parar a meio num final |
| NFA | Existe ramo que consome tudo até um final | Exigir que todos os ramos terminem em final |
| ε-NFA | Simula com fecho-ε antes e depois de cada letra; no fim aceita se o conjunto contém um final | Esquecer o fecho inicial ou aceitar a meio |
| PDA final | Entrada consumida e estado em | Chegar a final com entrada restante |
| PDA pilha vazia | Entrada consumida e pilha vazia | Esvaziar antes de consumir tudo |
| TM | Parar num final aceita, mesmo sem consumir o resto; parar fora de final rejeita | Confundir o limite do simulador com não paragem |
Só a linha TM dispensa consumo total. Uma máquina que entra logo num final aceita, mesmo sem ler o resto da fita.
Um DFA incompleto no desenho abrevia um poço para as transições omitidas; isto não vale para PDA ou TM em geral. Para determinizar, com o conjunto atual já fechado, , com fecho-ε aplicado depois de cada letra e conjunto inicial . Um subconjunto é final quando intersecta . Para complementar, determiniza, completa e troca finais num DFA. DFA, NFA.
Descrever e converter
| Tarefa | Procedimento mínimo |
|---|---|
| Ler expressão | Precedência: estrela, depois concatenação, depois união; |
| Thompson | Fragmentos com entrada e saída; a união escolhe por ε, a concatenação liga a saída de à entrada de e a estrela salta ou repete; só a saída final fica final |
| Eliminar estado | Para estados sobreviventes e , , sempre com os rótulos anteriores à ronda |
| Derivada | ; se aceita , senão |
| Equivalência | Converte para DFA, constrói o produto e procura um par com exatamente uma componente final; exemplos não provam igualdade |
| Complementar expressão | Converte para autómato, determiniza, completa, troca finais e converte de novo; nunca basta trocar operadores |
; ; ; . A igualdade não vale em geral: com e , a palavra pertence a mas não a . Quando , os dois lados coincidem, por isso esse caso não serve como contraexemplo. Conversões.
Provar e decidir
| Pergunta | Resposta, sempre num DFA completo para decisão e minimização |
|---|---|
| Finitas | Toda a linguagem finita é regular: une uma expressão por palavra |
| Fecho por produto | União (pelo menos uma componente final), interseção (ambas finais) e diferença de dois DFA; a construção do produto só muda o critério dos finais |
| Outras operações regulares | Complemento por troca de finais; concatenação, estrela, reverso, quocientes e intercalação por construções próprias, não por troca de finais no produto |
| Vazio | Nenhum estado final é alcançável a partir do início |
| Infinito | No DFA, existe um ciclo alcançável do início do qual se alcança um final; um ciclo só de ε num NFA não chega |
| Inclusão | A diferença é vazia |
| Minimizar | Parte de um DFA completo; retira inacessíveis, marca pares final/não final, propaga marcas pelos destinos e repete até nenhuma ronda produzir marcas novas; junta os pares sem marca |
| Fecho CFL | União, concatenação, estrela, reverso e interseção com uma regular; sem interseção geral, complemento ou diferença |
| Decidível em CFG | Pertença por CYK e vazio pelo teste de início gerador; sem decisor para equivalência, universalidade ou ambiguidade |
Lema regular: existe tal que toda com admite com , e para todo .
Lema CFL: existe tal que toda com admite com , e para todo .
Em ambos: supõe a classe, recebe , escolhe em função de , cobre todos os cortes válidos e exibe um cuja palavra bombeada sai de . Um corte que falha não prova nada e um corte que funciona numa palavra isolada não prova pertença. Limites, CFL.
Gramáticas e pilhas
- Uma CFG é com inicial; cada produção tem a forma com uma variável à esquerda. A linguagem é ; prova sempre as duas inclusões.
- Tipo 3: todas lineares à direita ou todas à esquerda. Tipo 2: uma variável à esquerda. Tipo 1: regras com , admitindo só se não aparece em lados direitos. Classifica as regras dadas, não a menor classe da linguagem.
- Uma gramática é ambígua quando uma palavra tem duas árvores distintas, ou seja, duas derivações mais à esquerda distintas. As ordens esquerda e direita da mesma árvore não contam.
- No PDA, o topo fica à esquerda; lê e substitui por . A variável gera as palavras que levam de a removendo sem mexer na pilha abaixo.
- Para simplificar: elimina produções vazias por combinações (preserva só se pertencia à linguagem, com início novo), depois unitárias copiando produções, depois variáveis não geradoras e inacessíveis. CNF: ou , com isolado e fora dos lados direitos.
- CYK com palavra não vazia: preenche intervalos por comprimento crescente com todos os cortes; numa produção , gera o prefixo esquerdo e o sufixo direito. Aceita se o início está no intervalo total. Custo tempo e espaço para gramática fixa. Gramáticas, pilhas.
Computabilidade e custo
- Um reconhecedor aceita cada palavra de e, fora de , rejeita ou corre para sempre. Um decisor termina sempre com a resposta certa. Se e são reconhecíveis, então é decidível por simulação alternada.
- e são reconhecíveis e indecidíveis. Uma redução usa total computável com ; para provar indecidível, reduz um já indecidível a .
- P decide por TM determinística em tempo polinomial. NP tem, para cada resposta sim, um certificado de comprimento polinomial verificado em tempo polinomial por um verificador determinístico; fora de , nenhum certificado passa. A inclusão está estabelecida; a igualdade continua em aberto.
- Um problema é NP-difícil quando todo o problema de NP se reduz a ele em tempo polinomial. É NP-completo quando é NP-difícil e pertence a NP. Para provar, descreve certificado, tamanho e verificador, depois reduz um NP-completo conhecido com as duas implicações e o custo.
- Um inteiro em binário usa bits ( à parte); iterações são exponenciais no comprimento . Turing, complexidade.