Problema resolvido na íntegra
-
Por que razão nenhuma máquina finita consegue emparelhar 0s e 1s, independentemente do número de estados que lhe atribua 8 passos
A máquina de paridade nesta página tem dois estados e lê 101101, seis símbolos, sem nunca necessitar de um terceiro. Forneça-lhe seis milhões de símbolos e continuará a precisar de dois. Afinal, o que é que uma máquina com um número fixo de estados não consegue fazer? E como se prova que uma máquina não existe, em vez de simplesmente não se conseguir encontrar uma?
-
Observe a máquina que tem. A paridade começa em e, e cada 1 inverte-a. Seis símbolos mais tarde está de volta a e e a entrada é aceite. Nada se acumulou ao longo do caminho: no símbolo seis, a máquina está exatamente na mesma condição em que poderia ter estado no símbolo um.
-
Esse é todo o recurso disponível. A memória de um DFA é o estado em que se encontra e nada mais. Sem contador, sem pilha, sem fita onde possa escrever. Após ler qualquer prefixo, tudo o que a máquina sabe sobre esse prefixo é qual dos seus k estados ocupa agora.
-
Procure então algo que necessite claramente de mais. Considere as cadeias formadas por um determinado número de zeros seguidos de exatamente o mesmo número de uns. 01 é uma delas, 0011 é outra, 001 não é, nem 0110.
-
Suponha que um DFA com k estados a reconhece. Não pergunte como é a máquina — isso nunca lhe será dito. Basta fornecer-lhe os k+1 prefixos compostos por 0 a k zeros, e registar onde cada um a deixa.
-
Princípio do pombal. Existem mais prefixos do que estados, pelo que dois deles vão parar ao mesmo local. Chame-lhes 0ⁱ e 0ʲ com i menor do que j. A partir desse momento a máquina não consegue distingui-los, e não por estar mal concebida. O estado é tudo o que ela tem, e as duas cadeias conduziram-na ao mesmo.
-
Agora forneça a ambas as continuações a mesma coisa: i uns. Mesmo estado inicial, mesmos símbolos, logo mesmo estado final, logo o mesmo veredito. Não há margem para a máquina fazer qualquer outra coisa.
-
E os dois vereditos têm de ser diferentes. 0ⁱ1ⁱ tem contagens iguais e pertence à linguagem; 0ʲ1ⁱ não, porque j não é i. Uma tem de ser aceite e a outra recusada, mas a máquina dá-lhes a mesma resposta. O que falha é a suposição de que ela existia.
-
Leia novamente o argumento e note o que nunca nele apareceu: um valor de k. Dois, a própria dimensão da máquina de paridade, ou dois mil milhões: k+1 prefixos superam k estados de qualquer das formas. Imponha contudo um limite a n, e a linguagem passa imediatamente a ser de estados finitos: emparelhar até N requer 2N+2 estados, ou seja, 22 para N = 10 e 202 para N = 100.
Resposta
Nenhum autómato finito a reconhece, para qualquer dimensão. A prova não precisa de saber como a máquina é construída, apenas que k+1 coisas não podem ocupar k lugares sem que duas delas partilhem um lugar, e que partilhar um estado é esquecer. A máquina de paridade mostra a mesma coisa em miniatura: forneça-lhe 0, depois 00, depois 000, e as três deixam-na em e, porque ela nem sequer analisa os zeros.
O limite máximo é onde reside toda a dificuldade. Emparelhar até N é fácil, com 2N+2 estados, mais um par por cada símbolo que se pretenda alcançar, e essa contagem cresce sem parar, pelo que cada N específico tem uma máquina e nenhuma máquina serve para todos os N. Essa lacuna é o significado de “memória finita”, e é por isso que o passo seguinte após um DFA é definido ao dotá-lo de uma pilha: um armazenamento ilimitado, reintroduzido precisamente porque é esse o custo da sua ausência. -
Referências (2)
- Insight block 3 — the nerve-net model the finite automaton descends from: W. S. McCulloch and W. Pitts, "A logical calculus of the ideas immanent in nervous activity." Bulletin of Mathematical Biophysics 5(4), 115–133, 1943.
- Insight block 1 — the theorem that fixes the minimum state count: A. Nerode, "Linear automaton transformations." Proceedings of the American Mathematical Society 9(4), 541–544, 1958.