Propriedades e limites das regulares
Fecho, algoritmos de decisão, equivalência, minimização e provas pelo lema da repetição.
O DFA do sufixo guarda três resumos possíveis. Mesmo que acrescentes estados, a memória continua finita. Para comparar contagens sem limite, como em , precisaremos de mostrar por que nenhum número finito de estados chega.
Primeiro usamos DFA completos para combinar condições e reduzir memória redundante; depois, o lema da repetição fornece uma condição necessária à regularidade.
Propriedades de fecho
Uma classe é fechada para uma operação quando aplicar essa operação a linguagens da classe dá sempre outra linguagem da mesma classe.
Para DFA completos sobre o mesmo alfabeto, o produto tem estados , início e
Após ler , cada componente é o estado que a respetiva máquina atingiria sozinha. A escolha dos finais determina a operação:
| Linguagem | Quando é final |
|---|---|
| e | |
| ou | |
| e | |
| Diferença simétrica | Exatamente uma componente é final |
Toda a linguagem finita é regular: cada palavra tem uma expressão, e uma união finita reúne todas. Para a linguagem vazia, usa .
O complemento de uma regular resulta de trocar finais e não finais num DFA completo. Para concatenação e estrela, usa as construções por transições vazias ou as operações correspondentes em expressões regulares.
Para o reverso , inverte todas as arestas do autómato. O antigo início é o único final. Acrescenta um início novo com transições para todos os antigos finais. Os percursos invertidos leem precisamente as palavras ao contrário.
As operações seguintes mudam um DFA existente em vez de combinar dois.
Quociente e derivada
Fixa uma letra . O quociente à direita é regular. Mantém o DFA de , mas torna final todo o estado com . Agora aceita exatamente quando ler mais um levaria a um final.
A derivada à esquerda também é regular. Mantém os finais e muda o início para . Já leste o primeiro antes de começar a simular .
Intercalar palavras
A última construção deste grupo alterna letras de duas palavras em vez de as concatenar. Intercalar e conserva a ordem dos símbolos de cada palavra, mas pode alternar a sua origem. Por exemplo, intercalar e dá .
Se são regulares, a linguagem de todas essas intercalações também é regular. Num NFA com estados , cada letra pode atualizar a primeira componente ou a segunda, mantendo a outra. Cada ramo escolhe a que palavra pertence a letra; os finais exigem ambas as componentes finais. Isto difere do produto para interseção, onde a mesma letra atualiza as duas componentes.
Perguntas decidíveis
A linguagem pode ser infinita, mas a sua representação tem um grafo finito. Isso permite responder a várias perguntas com algoritmos que terminam.
| Pergunta | Procedimento |
|---|---|
| ? | Simula a máquina, mantendo um estado no DFA ou um conjunto no NFA. |
| ? | Procura um final alcançável a partir do início. |
| ? | Complementa o DFA completo e testa se o resultado é vazio. |
| é infinita? | Num DFA, procura um ciclo alcançável do início e do qual se alcance um final. |
| ? | Testa se é vazia. |
Um ciclo que nunca chega a um final não produz palavras aceites. Num ε-NFA, um ciclo só de arestas vazias não basta para produzir comprimentos ilimitados. Determinizar antes evita essa distinção.
Num DFA com estados, se uma palavra aceite tem comprimento pelo menos , o seu percurso repete um estado. O ciclo repetido pode ser percorrido mais vezes, produzindo infinitas palavras. Inversamente, uma linguagem infinita tem comprimentos sem limite, porque há apenas finitas palavras de cada comprimento.
Teste de equivalência
Para comparar e , procura no produto um estado alcançável em que exatamente uma componente seja final. Se não existir, nenhuma palavra distingue as máquinas, logo .
Se existir, guarda o percurso desde o início: os rótulos formam uma palavra testemunha. Uma pesquisa em largura encontra uma das palavras distinguidoras mais curtas.
Por exemplo, o DFA para palavras que contêm e o DFA para palavras que terminam em não são equivalentes. A palavra é aceite pelo primeiro e rejeitada pelo segundo. Comparar exemplos só prova a diferença quando encontra uma testemunha; não prova equivalência.
Minimização por preenchimento de tabela
Dois estados são equivalentes se todas as continuações dão a mesma resposta:
Remove primeiro os estados inacessíveis. Depois faz uma tabela dos pares de estados distintos:
- Marca todo o par final/não final. A palavra distingue esse par.
- Marca se alguma letra leva a um par já marcado.
- Repete até nenhuma marca nova surgir.
- Junta os estados dos pares não marcados em classes. Cada classe torna-se um estado do DFA mínimo.
Se distingue os destinos de por , então distingue . É por isso que as marcas propagam para trás. Os pares que continuam sem marca não têm qualquer continuação distinguidora.
Exemplo completo
Considera este DFA sobre , com início e finais :
| Estado | ||
|---|---|---|
Todos são alcançáveis, por . Na base marca os seis pares entre e .
Rondas da tabela e palavras distinguidoras
A ronda 0 marca os seis pares final/não final: , , , , , . A palavra distingue cada um, porque só um dos estados é final.
Na ronda 1, o par marca-se porque por vai a , já marcado; a palavra distinguidora é . O par marca-se porque por vai a ; a palavra é também . Os pares e não se marcam: por , vai a , o mesmo par; por vai a . Por , vai a ; por vai a , um par de estados iguais.
Na ronda 2 não surge nenhuma marca nova, por isso o algoritmo para. As classes são , e . A palavra distingue das outras; a palavra distingue de , pois por fica fora do final e por chega ao final.
A tabela abaixo regista a primeira ronda que distingue cada par. O ponto significa que nunca se marcou o par.
| 1 | ||||
| 1 | · | |||
| 0 | 0 | 0 | ||
| 0 | 0 | 0 | · |
Só e ficam sem marca. Fundindo-os, o início é e o único final é :
| Classe | ||
|---|---|---|
Reconheces o DFA para o sufixo . Ele é mínimo: distingue o final dos outros dois, e distingue de . Um DFA mínimo completo é único a menos dos nomes dos estados.
O lema da repetição
Se é regular, existe um inteiro tal que toda a palavra com admite uma decomposição com:
Um DFA com estados percorre posições, incluindo a inicial, ao ler os primeiros símbolos. Algum estado repete. chega a esse estado, dá uma volta ao ciclo e segue até à aceitação. Repetir ou retirar o ciclo não muda o destino.
O ciclo da figura devolve a máquina ao mesmo estado. Por isso o sufixo continua a aceitar depois de zero, uma ou várias voltas.
O lema dá uma condição necessária, não um método para provar regularidade. Uma linguagem que satisfaz a condição não fica, só por isso, provada regular.
Provar que não é regular
Mostrar que um corte falha não prova nada. Em , fixa um inteiro dado pelo lema e escolhe . O corte , , cumpre e , mas com dá . Mas outro corte válido da mesma palavra, , bombeia dentro da linguagem para todo . O lema só é contrariado quando todos os cortes válidos falham, e é por isso que a prova de abaixo analisa a forma geral em vez de um corte concreto.
Exibir um corte que funciona numa palavra também não prova regularidade. O lema exige que toda a palavra suficientemente comprida de admita algum corte válido que bombeie dentro de ; uma palavra isolada com um corte feliz não chega.
Para :
- Supõe que é regular e seja o valor dado pelo lema.
- Escolhe , com comprimento pelo menos .
- Considera qualquer decomposição válida . Como e , temos com .
- Escolhe . Obténs .
Isto contradiz a exigência de permanecer em para todo . Não escolhes a posição do corte; o argumento cobre todos os cortes permitidos.
Quando o problema é o comprimento
Para , escolhe . Em qualquer decomposição, . Bombeando com , o comprimento é , e
Não há quadrado perfeito entre quadrados consecutivos. Logo, a palavra bombeada sai de .
Usar fecho numa prova negativa
Se fosse regular, então seria regular por diferença. Mas essa diferença é , que acabámos de provar não regular. Logo, não é regular.
Uma expressão regular, uma construção de autómato ou uma propriedade de fecho podem provar regularidade. O lema da repetição, uma redução por fecho ou palavras distinguidoras podem provar impossibilidade. Escolhe o argumento de acordo com a conclusão que queres.
Exercícios
A prova de não regularidade adapta o exercício 3a da folha prática 6; o quociente adapta a operação do exercício 4 com outro conjunto. As tabelas de minimização são próprias.
Um corte que falha
Seja , seja um inteiro e seja . O corte , , cumpre e , mas com dá . Isto prova que não é regular?
Pista
Pergunta se existe algum corte válido que bombeie dentro de .
Solução
Não. O corte , , é válido quando e bombeia dentro de para todo . O lema só exige que exista um corte que funcione; um corte que falha não o contradiz. Para provar não regularidade é preciso mostrar que todos os cortes válidos falham.
- Não; outro corte da mesma palavra bombeia sempre dentro da linguagem.. O lema exige um corte que funcione, não que todos funcionem.
- Sim; qualquer corte válido que saia da linguagem refuta a regularidade.. Basta um corte funcionar para cumprir o lema; um que falha não prova nada.
- Sim, desde que a palavra escolhida pertença à linguagem.. A palavra pertence, mas a conclusão exige cobrir todos os cortes.
Erros frequentes
Não confundas “existe um corte que funciona” com “todos os cortes funcionam”. A direção da quantificação é o que distingue provar de refutar com o lema.
Fundir memória redundante
Um DFA tem início A, finais C e D, e tabela: A: ; B: ; C: ; D: . Quantos estados tem o DFA mínimo completo?
Pista
Marca primeiro os pares entre finais e não finais.
Mais uma pista
A e B têm o mesmo comportamento por classes; o mesmo vale para C e D.
Solução
Restam duas classes, e . Uma letra a leva sempre à primeira e uma letra b à segunda. Elas são distintas por , pois só a segunda é final. O mínimo tem 2 estados.
Erros frequentes
Não fundas finais com não finais. Todos os quatro estados são alcançáveis: por .
Provar uma linguagem não regular
Prova que não é regular.
Pista
O limite sobre xy obriga y a ficar no primeiro bloco.
Mais uma pista
Com , , usa i=0.
Solução
Supõe L regular e seja p o comprimento do lema. Escolhe . Para qualquer corte válido, , . Ao retirar y, fica . Para estar em L teria de haver uns, mas continuam 2p. Se k=p, nem há um zero, violando também n≥1. Contradição.
Confere a tua resposta:
- Supõe regular e escolhe 0 elevado a p seguido de 1 elevado a 2p.
- Mostra que y só contém zeros e não é vazia.
- Retira y e compara a proporção entre os blocos.
Erros frequentes
Não escolhas uma palavra fora de L. Não digas apenas que as contagens mudaram: a linguagem permite contagens diferentes, mas exige uma proporção específica.
Conferir um quociente
Seja sobre . Calcula e . É sempre verdade que ? Justifica com este exemplo.
Pista
O quociente à direita testa wa; a derivada à esquerda testa aw.
Mais uma pista
Em , só termina em , e só começa em .
Solução
e . Portanto, : perdem-se e , que não terminam em . Em geral, reúne exatamente as palavras de terminadas em , logo fica contido em , mas pode ser um subconjunto próprio.
Confere a tua resposta:
- Retira a última letra a só das palavras que a têm.
- Retira a primeira letra a só das palavras que a têm.
- Compara o conjunto reconstruído com todas as palavras originais.
Erros frequentes
Não retires um a em qualquer posição. O lado em que se concatena o símbolo faz parte da definição.
Rondas e palavras distinguidoras
Um DFA sobre tem início , finais e tabela:
| Estado | ||
|---|---|---|
Mostra que todos os estados são alcançáveis. Preenche a tabela de pares distinguíveis por rondas, dá uma palavra distinguidora por cada par marcado e constrói o DFA mínimo.
Pista
Ao marcar um par pelos destinos de uma letra, acrescenta essa letra à frente da testemunha dos destinos.
Solução
Os percursos de chegam a . Na ronda 0, os seis pares final/não final são distinguidos por : . Na ronda 1, e são distinguidos por , que leva a e . Na ronda seguinte não há novas marcas.
Restam as classes , e , com início e único final :
| Classe | ||
|---|---|---|
Os pares e levam por cada letra a estados iguais ou a estes mesmos pares sem marca. O algoritmo não encontra continuação que os distinga. As três classes que ficam são distintas pelas testemunhas já indicadas.
Confere a tua resposta:
- Mostrei que os cinco estados são alcançáveis.
- Marquei seis pares por ε e dois por b.
- Construí a tabela das três classes.