Problema resolvido na íntegra
-
Configurações pelas quais o programa do palíndromo passa em 1 0 1 0 1 5 passos
O programa de palíndromos começa na fita 1 0 1 0 1, com a cabeça na célula 0, no estado
q0. Conte todas as configurações pelas quais passa antes de parar — a partir da tabela de regras, sem o executar passo a passo — e depois diga o que acontece a essa contagem à medida que a entrada aumenta de comprimento.-
Leia a tabela em termos de rondas, e não como uma lista de movimentos. Apenas uma regra pode abrir uma ronda:
q0apaga o símbolo mais à esquerda e desvia em função do que acabou de apagar, paraq1para um 1 e paraq2para um 0. Esse desvio é todo o mecanismo de comparação. A máquina nunca guarda o símbolo na fita; guarda-o no estado em que se encontra, pelo que testar a extremidade oposta contra ele mais tarde não custa movimentos adicionais. -
Conte uma ronda num bloco de m símbolos. Apagar a extremidade esquerda é 1 movimento. A cabeça atravessa então os m − 1 símbolos que ainda restam e gasta mais 1 movimento no espaço em branco além deles para dar a volta. Apagar a extremidade direita é 1 movimento, regressar sobre os m − 2 sobreviventes são m − 2 movimentos, e 1 último movimento no espaço em branco na extremidade esquerda volta a virar a máquina para a direita em
q0. -
A nossa fita dá um bloco de 5, depois 3, e depois um único símbolo — e um único símbolo não é uma ronda.
q0apaga-o,q1sai pela extremidade direita e vira-se, eq1cencontra um espaço em branco onde deveria estar um par. Um palíndromo de comprimento ímpar tem um centro sem par, e encontrar esse espaço em branco é o que faz aceitar. -
Some os três e tenha em atenção o problema dos postes de vedação. 21 é o número de movimentos; o transporte conta configurações, e 21 movimentos visitam 22 delas, uma vez incluída aquela em que começou.
-
Generalize para qualquer comprimento ímpar n. Os blocos vão de n, n − 2, e assim sucessivamente até 3, custando cada um 2m + 1, com o centro a custar 3. A soma dessa lista dá uma função quadrática em n, e não uma linear.
Resposta
22 configurações — 21 movimentos. O comportamento quadrático é a parte que vale a pena reter. Um palíndromo de 21 símbolos custa 253 movimentos: 12 vezes o trabalho para uma entrada 4,2 vezes mais longa. A razão é geométrica e não por astúcia — os dois símbolos a serem comparados situam-se sempre em extremidades opostas do que resta, e há apenas uma cabeça, pelo que cada par custa uma travessia completa da fita restante. Dê à máquina uma segunda fita e o mesmo trabalho torna-se linear: copie a entrada enquanto a lê, depois execute as duas cabeças em direções opostas e compare numa única passagem, cerca de 3n movimentos. Numa só fita não há onde colocar essa cópia, e o movimento de vaivém é inevitável.
-
Referências (3)
- The single-tape quadratic lower bound for palindromes: F. C. Hennie, "One-tape, off-line Turing machine computations." Information and Control 8(6), 553–578, 1965.
- Where multi-tape time complexity classes were set out: J. Hartmanis and R. E. Stearns, "On the computational complexity of algorithms." Transactions of the American Mathematical Society 117, 285–306, 1965.
- The machine itself: A. M. Turing, "On Computable Numbers, with an Application to the Entscheidungsproblem." Proceedings of the London Mathematical Society s2-42(1), 230–265, 1937.