A Torre de Hanói é um dos quebra-cabeças matemáticos mais populares. Ele foi inventado por Edouard Lucas em 1883.
Nível Iniciante.
A Torre de Hanói é um dos quebra-cabeças matemáticos mais populares. Ele foi inventado por Edouard Lucas em 1883.
1. Peças
As peças são n discos de tamanhos diferentes e todos com um furo em seu centro e três pinos onde são colocados os discos. Certamente podem ser encontrados em qualquer loja de brinquedos.
2. Regras e objetivos do jogo
Inicialmente os discos formam uma torre onde todos são colocados em um dos pinos em ordem decrescente de tamanho.
Devemos transferir toda a torre para um dos outros pinos de modo que cada movimento é feito somente com um disco, nunca havendo um disco maior sobre um disco menor.
3. A Pergunta que será calada
Queremos saber qual é o menor número de movimentos necessários para resolver uma torre de Hanói com n discos.
Há uma história (imaginada pelo próprio Edouard Lucas) sobre a torre de Hanói:
No começo dos tempos, Deus criou a Torre de Brahma, que contém três pinos de diamante e colocou no primeiro pino 64 discos de ouro maciço. Deus então chamou seus saserdotes e ordenou-lhes que transferissem todos os discos para o terceiro pino, seguindo as regras acima. Os sacerdotes então obedeceram e começaram o seu trabalho, dia e noite. Quando eles terminarem, a Torre de Brahma irá ruir e o mundo acabará.
4. Estudando o problema
Para resolver um problema (não só este, mas vários outros problemas na matemática) que envolve n coisas, ajuda ver o que acontece para valores pequenos de n. Vejamos alguns casos.
· n = 1. Fazemos
1 movimento foi suficiente.
· n = 2. Fazemos
3 movimentos deram.
· n = 3. Fazemos
7 movimentos deram.
Mas é claro que não podemos fazer só isso. Não podemos ficar observando o que acontece para todos os valores de n! Então temos que começar a tirar algumas conclusões.
5. Como resolver o problema com n discos?
Vamos olhar o caso n = 3 mais perto. Observe os três primeiros movimentos:
Note que o que fizemos foi mesmo para resolver o caso n = 2. O próximo movimento foi
Isto é, passamos o disco maior para o pino sem discos.
Agora, veja os três últimos movimentos:
Novamente fizemos o mesmo que foi feito para o caso n = 2, só que transferindo agora a “subtorre” para o pino onde estava o disco maior.
Agora, imaginemos uma torre com n discos. Imagine também que sabemos resolver o problema com n – 1 discos.
Podemos transferir os n – 1 discos de cima para um pino vazio:
Depois passamos o disco maior para o outro pino vazio:
Por fim, colocamos os n – 1 discos menores sobre o disco maior:
Assim, podemos resolver o problema com n discos. Por exemplo, para resolver o problema com 4 discos, transferimos os 4 – 1 = 3 discos de cima para um pino vazio (já sabemos fazer isso!), depois passamos o disco maior para o outro pino vazio e por fim colocamos os 3 discos sobre o disco maior. Para resolver o problema com 5 discos, transferimos os 5 – 1 = 4 discos de cima para um pino vazio (acabamos de aprender a fazer isso!), e assim por diante.
6. Dando nome aos bois
Voltemos à pergunta que será calada: queremos saber o número mínimo de movimentos necessários para resolver uma torre de Hanói com n discos. Vamos dar um nome para este número, digamos Tn. Assim, o número mínimo de movimentos necessários para resolver um problema com 1 disco é T1, com 2 discos é T2, com 2001 discos é T2001, com © discos é T©, e, em especial, com n – 1 discos é Tn – 1.
7. Voltando ao problema
Já vimos que podemos resolver o problema da seguinte forma:
Vamos ver quantos movimentos são necessários neste modo de resolver o problema. Precisamos de Tn – 1 movimentos para movimentar os n – 1 primeiros discos, mais um para movimentar o disco maior e mais Tn – 1 para colocar os n – 1 discos sobre o disco maior. Assim, precisamos de Tn – 1 + 1 + Tn – 1 = 2Tn – 1 + 1 movimentos. Mas não sabemos se este modo de resolver o problema usa o menor número de movimentos; poderia haver outro modo que use menos movimentos. Como o menor número de movimentos é Tn, temos:
(I)
Provemos que na verdade Para isso, mostraremos que (lembre-se de que se , então a = b). Esta aparentemente estranha maneira de se demonstrar que uma coisa é igual a outra é na verdade bem comum em vários problemas. Muitas igualdades podem ser obtidas a partir de desigualdades.
Considere agora, então, o disco maior. Ele vai ter que sair da torre inicial uma hora. Mas para ele sair, é preciso que os outros n – 1 discos saiam de cima dele! E mais, se quisermos mudá-lo de lugar ele vai ter que ir para um pino vazio, pois ele não pode ficar sobre nenhum dos outros discos por ser o maior (que trabalho esse disco dá!)! Logo precisamos transferir os n – 1 discos para um pino só, o que requer no mínimo Tn – 1 movimentos. Para mudarmos ele de lugar, precisamos, é claro, de mais um movimento. E depois, para colocarmos os n – 1 discos sobre o disco maior precisamos no mínimo mais Tn – 1 movimentos. Assim, para resolver o problema precisamos na verdade de no mínimo movimentos. Logo
(II)
Assim, de (I) e (II),
(*)
Assim, como (é só ver o caso n = 1), podemos, fazendo n = 2, concluir que (exatamente como achamos antes!!) e, fazendo n = 3, descobriríamos que (que coisa!). Para n = 4, acharíamos Se quiséssemos então para um valor qualquer de n, devemos ter todos os valores de para k = 1, 2, …, n – 1, mas com certeza é possível calcular. Uma seqüência deste tipo (isto é, tal que para calcular um dos valores usamos os valores anteriores) é chamada recorrente e a equação que relaciona os termos da seqüência é chamada de relação de recorrência (no caso, temos que (*) é uma equação de recorrência).1
Poderíamos parar por aqui (pois já sabemos como calcular os valores de ), mas encontraremos uma fórmula para que não depende de seus valores anteriores (tal fórmula é costumeiramente chamada fórmula fechada). Nem sempre se pode (e quando se pode, pode ser bem difícil) fazer isso com uma relação de recorrência, mas com esta em particular pode ser feita.
Observe que temos “quase” Vamos ver se podemos acertar isso. Se somarmos um número x aos dois lados da equação (*), temos
Se fizermos e sendo temos
Como temos Assim,
Assim, precisamos de movimentos para resolver o problema da torre de Hanói com n discos. Ou seja, os sacerdotes precisarão de movimentos. Mesmo se eles fizessem um movimento por segundo, eles precisariam de mais de 500 bilhões de anos!! Podemos ficar tranqüilos por enquanto.
Observação importante
Os alunos mais observadores devem ter notado de antemão que bem antes, quando calculamos para valores pequenos de n. Ter essa percepção é bom, mas só perceber que não é suficiente.
É preciso provar que esta relação realmente é verdadeira. As aparências podem enganar!! Por exemplo, considere a seqüência
(lembre-se : 2001! = 1× 2 × 3 × …× 2001)
Temos Isto poderia nos levar a crer que não? Pois veja quanto vale e você terá uma bela surpresa!
Exercícios
01. Encontre uma fórmula fechada para cada uma das relações de recorrência a seguir:
a)
b)
Observação:
A grosso modo, uma função f de um conjunto A em um outro conjunto B, é uma relação que toma cada elemento x de A e o transforma em um elemento f(x) de B. As equações de recorrência que acabamos de estudar são exemplos de funções de N em R.
Na torre de Hanói, suponha que em vez de transferir a torre para um dos pinos, você tenha que transferir a torre para cada um dos outros pinos uma vez. Encontre o número mínimo de movimentos para resolver esse problema.