La torre di Hanoi
Un gioco, all'apparenza semplice e quasi
infantile, come la Torre di Hanoi, nasconde in realtà, per
la sua risoluzione, un procedimento matematico di grande interesse.
Si tratta di un procedimento per iterazione utile, ad esempio, agli
studenti di informatica come esercizio per iniziare lo studio della
programmazione. Nella sua forma classica, quella che si trova in molti
negozi di giochi, la Torre di Hanoi è formata da otto dischi
sovrapposti, di dimensioni decrescenti, bucati al centro e infilati
in una delle tre colonnine fissate su una tavoletta.

Gli otto dischi, che formano la cosiddetta
torre, devono poi essere spostati su una delle altre due colonnine
libere, seguendo però una regola precisa: si può spostare
soltanto un disco alla volta ed è proibito collocare uno qualsiasi
dei dischi su uno più piccolo.
Il
gioco venne inventato nell'Ottocento da Edouard Lucas, studioso di teoria
dei numeri, che deve la sua fama all'analisi della successione di Fibonacci.
Professore di matematica in un liceo parigino, Lucas è uno dei
più grandi in giochi matematici, inventore di tanti rompicapi
e giochi ancora oggi popolari. Morì nel 1891, a quarantanove
anni, per un banalissimo incidente. La scheggia di un piatto, rotto
accidentalmente durante un banchetto, lo ferì al volto e morì
in pochi giorni per erisipela.
Lucas lanciò il suo nuovo gioco nel 1883 e quella che segue,
è la sua presentazione originale, dal tono ottocentesco, un po'
ingenuo, ma divertente:
Questo gioco è stato scoperto, per la prima volta, fra le
carte dell'illustre Mandarino FER-FER-TAM-TAM, e sarà pubblicato
nell'immediato futuro, su ordine del governo cinese.
La Torre di Hanoi è composta da una serie dischi, di dimensioni
decrescenti, in numero variabile, che noi abbiamo realizzato con otto
dischi di legno, bucati al centro. In Giappone, in Cina e a Tonkino
sono di porcellana.
Il gioco consiste nel demolire la torre e nel ricostruirla su un'altra
colonnina, seguendo le regole date.
Divertente e istruttivo, facile da imparare e da giocare in città,
in campagna oppure in viaggio, ha per obiettivo la divulgazione della
scienza, come tutti gli altri giochi originali e curiosi del professor
N. CLAUS (OF SIAM)

Lucas per rendere
ancora più affascinante il suo gioco, inventò una curiosa
leggenda, la Torre di Brahma, che riportiamo a parte e che ancora
oggi molti ritengono autentica e di origine indiana.
Indichiamo
con A, B e C le tre colonnine. Nel caso banale di un unico disco, occorrerà
un solo movimento per risolvere il gioco, basta infatti spostare il
disco dalla colonnina A alla colonnina C. Con due dischi, sono necessari
3 movimenti, si deve spostare il disco superiore sulla colonnina B,
il disco più grande su C ed infine l'altro disco sempre su C.
Quali sono gli spostamenti minimi necessari per trasferire la torre
a tre dischi da A a C? Dobbiamo spostare il disco superiore su C e quello
di mezzo su B, sul quale spostiamo poi il disco più piccolo.
In seguito, spostiamo il disco più grande su C, quello più
piccolo su A e, per finire, il disco da B a C e da A a C. Sono, in totale,
sette movimenti.
Con un po' di pratica si arriva facilmente a capire il procedimento
da seguire con un numero qualsiasi di dischi, scoprendo la formula risolutiva
del gioco. Se lo sappiamo risolvere con tre dischi, lo sapremo, infatti,
risolvere anche con quattro. Sarà sufficiente trasportare dapprima
i tre dischi superiori sulla seconda colonnina, con il procedimento
già noto, successivamente il quarto disco sulla terza e infine
si collocheranno su questo gli altri tre dischi, sempre con procedimento
già utilizzato in precedenza. Risolto il caso dei quattro dischi,
non ci saranno difficoltà a procedere, allo stesso modo, con
cinque dischi. Sono richiesti 31 movimenti, ma i primi 15 movimenti
sono identici a quelli della torre con quattro dischi. Si prosegue poi
con sei dischi e così via, sempre rispettando le regole del gioco.
A questo punto il lettore frastornato rischia di non capire più
nulla.
Al solito, è bene ricordarlo, per capire la matematica, anche
soltanto di gioco, non si può soltanto "leggere", ma
è necessario "fare" matematica, con esercizi e riflessioni
personali. In questo caso, giocando con dischi e colonnine reali (o
virtuali, al computer), tutto sarà sicuramente più chiaro.
Saremo comunque in grado, alla fine della nostra indagine, di mettere
in tabella il numero dei movimenti minimi necessari per lo spostamento
della Torre, nel caso di un certo numero di dischi.

Vogliamo mettere
in evidenza i valori in base due della tabella, che costituiscono una
successione di grande semplicità: ogni volta che si aggiunge
un disco alla torre, basta aggiungere un "1" al numero dei
movimenti necessari.
La soluzione matematica di un problema, anche in questo caso, segue
sempre la strada più semplice e lineare.
Dalla tabella possiamo facilmente dedurre la formula generale: con n
dischi si hanno 2^n - 1 movimenti.
Resta in ogni caso da dimostrare la validità di questa formula
che abbiamo scoperto, ma che rimane ancora, a questo punto, una semplice
congettura.
Possiamo servirci del metodo di induzione matematica che, in generale,
viene enunciato nel modo seguente:
Data
una successione infinita di proposizioni A1, A2, A3,
, An, An+1,
, se verifichiamo che la prima proposizione è vera e che,
se si suppone vera per una qualsiasi proposizione An, è vera
anche per An+1, allora tutte le infinite proposizioni della successione
sono vere.
In particolare, possiamo
dire, in aritmetica, che se una proposizione A è vera per il
numero 1 e se si suppone che sia vera per un intero qualsiasi n, si
può dedurre che è vera anche per il successivo n + 1,
allora è vera per tutti i numeri interi.
Applichiamo questo principio di induzione al nostro problema.
Si vede immediatamente che la formula è vera con un solo disco.
Abbiamo infatti:
M(1) = 2^1 - 1 = 1.
Supponiamo ora che sia vera
per n dischi e che si abbia quindi:
M(n) = 2^n - 1.
Nel caso di n + 1 dischi,
incominciamo a spostare gli n dischi superiori dalla colonnina A alla
B e, per questo, abbiamo supposto che siano necessari M(n) = 2^n - 1
movimenti. Spostiamo poi il disco più grande dalla colonnina
A alla C, con un movimento. Infine, spostiamo gli n dischi dalla colonnina
B alla C, sul disco più grande, e questo richiede altri
M(n) = 2^n - 1 movimenti. In totale, i movimenti che abbiamo compiuto,
per spostare gli n + 1 dischi, sono:
M(n) + 1 + M(n) = 2^n -
1 + 1 + 2^n - 1 = 2 x 2^n - 1 = 2^(n+1) - 1
In questo modo, resta confermata
la formula trovata, che è così dimostrata per induzione.
Che cosa succede se introduciamo una quarta colonnina nel nostro gioco?
Abbiamo ancora, come minimo, 3 movimenti con 2 dischi, ma soltanto 5
con 3, 9 con 4, 13 con 5, 17 con 6, 25 con 7 e 33 con 8 dischi.
Si tenga presente che la quarta colonnina consente di costruire più
torri. Ad esempio, con quattro colonnine possiamo fare due torri, una
di due dischi e l'altra di uno. Poiché sono necessari tre movimenti
per costruire la torre di due dischi con quattro colonnine, e un movimento
per la torre di un disco, il totale dei movimenti sarà: 3 + 1
+ 1 + 1 + 3 = 9. Prosegua il lettore curioso questa nuova indagine.
Federico Peiretti
La Torre di Brahma
Narra la leggenda che all'inizio
dei tempi, Brahma portò nel grande tempio di Benares, sotto la
cupola d'oro che si trova al centro del mondo, tre colonnine di diamante
e sessantaquattro dischi d'oro, collocati su una di queste colonnine
in ordine decrescente, dal più piccolo in alto, al più
grande in basso. E' la sacra Torre di Brahma che vede impegnati, giorno
e notte, i sacerdoti del tempio nel trasferimento della torre di dischi
dalla prima alla terza colonnina. Essi non devono contravvenire alle
regole precise, imposte da Brahma stesso, che richiedono di spostare
soltanto un disco alla volta e che non ci sia mai un disco sopra uno
più piccolo. Quando i sacerdoti avranno completato il loro lavoro
e tutti i dischi saranno riordinati sulla terza colonnina, la torre
e il tempio crolleranno e sarà la fine del mondo.
 |
Il
Tempio d'oro di Benares, il più antico e il più
sacro dei mille templi di Benares, la città sacra dell'India.
Qui, secondo la leggenda inventata da Lucas, si trova la Torre
di Brama. Racconta Lucas che il mondo finirà, quando
i sacerdoti avranno spostato tutti e sessantaquattro i dischi.
Se calcoliamo il numero dei movimenti necessari per spostare i
dischi, con la formula data nel testo, 2 elevato a 64, meno 1,
otteniamo 18.446.744.073.551.615 movimenti. Nel caso in cui i
sacerdoti impieghino un secondo per ogni movimento, ci vorranno
più di cinque miliardi di secoli (secondo i calcoli dello
stesso Lucas) per il trasporto di tutti i dischi da una colonnina
all'altra. Possiamo quindi stare tranquilli, almeno da questo
punto di vista, per il nostro futuro. |
Per saperne di più
Il problema originale, nella
versione del suo inventore:
M. Edouard Lucas, Récréations mathematiques, III,
Albert Blanchard, 1979.
Fred Schuh, The master
book of mathematical recreations, Dover, 1968.
Per la Torre di Hanoi con
più di tre colonnine:
Benjamin Schwartz, Mathematical solitaires and games, Baywood,
1978.
La biografia di Lucas, con la presentazione del suo metodo per la ricerca
dei numeri primi:
http://www-history.mcs.st-and.ac.uk/history/Mathematicians/Lucas.html
Un'accurata presentazione
del gioco:
http://cut-the-knot.com/recurrence/hanoi.html
Una curiosa variante della
Torre di Hanoi:
http://cut-the-knot.com/recurrence/BiColorHanoi.html
La Torre di Hanoi sulla
Wikipedia:
http://en.wikipedia.org/wiki/Tower_of_Hanoi
Le diverse soluzioni della
Torre di Hanoi:
http://yupana.autonoma.edu.co/publicaciones/yupana/003/hanoi/hanoi_eng.html
http://obelix.ee.duth.gr/~apostolo/TowersOfHanoi/
Il testo, in inglese, della
presentazione originale, fatta da Lucas, della Torre di Hanoi:
http://www.cs.wm.edu/~pkstoc/toh.html
Gioca on-line
http://www.tiziana1.it/torredi_hanoi.html
http://www.comunedasa.it/torri_Hanoi/applet_Hanoi.asp
http://mazeworks.com/hanoi/index.htm
http://www.funmin.com/online-games/tower-of-hanoi/index.php
http://www.parentinghumor.com/games/hanoi.htm
|