Tours de HanoïLes tours de Hanoï (originellement, la tour d'Hanoï[a]) sont un jeu de réflexion imaginé par le mathématicien français Édouard Lucas, et consistant à déplacer des disques de diamètres différents d'une tour de « départ » à une tour d'« arrivée » en passant par une tour « intermédiaire », et ceci en un minimum de coups, tout en respectant les règles suivantes :
On suppose que cette dernière règle est également respectée dans la configuration de départ. Origine du problèmeLe problème mathématique des tours de Hanoï a été inventé par Édouard Lucas. Paru d'abord en fascicule en 1889[1] , il est publié ensuite dans le tome 3 de ses Récréations mathématiques, parues à titre posthume en 1892[2]. Il annonce que ce problème est dû à un de ses amis, N. Claus de Siam (anagramme de Lucas d'Amiens, Amiens étant sa ville de naissance), prétendument professeur au collège de Li-Sou-Stian (anagramme de Saint Louis, le lycée où Lucas enseignait). Sous le titre « Les brahmes tombent », Lucas relate que « N. Claus de Siam a vu, dans ses voyages pour la publication des écrits de l'illustre Fer-Fer-Tam-Tam, dans le grand temple de Bénarès, au-dessous du dôme qui marque le centre du monde, trois aiguilles de diamant, plantées dans une dalle d'airain, hautes d'une coudée et grosses comme le corps d'une abeille. Sur une de ces aiguilles, Dieu enfila au commencement des siècles, 64 disques d'or pur, le plus large reposant sur l'airain, et les autres, de plus en plus étroits, superposés jusqu'au sommet. C'est la tour sacrée du Brahmâ. Nuit et jour, les prêtres se succèdent sur les marches de l'autel, occupés à transporter la tour de la première aiguille sur la troisième, sans s'écarter des règles fixes que nous venons d'indiquer, et qui ont été imposées par Brahma. Quand tout sera fini, la tour et les brahmes tomberont, et ce sera la fin des mondes[2] ! ». Comme indiqué ci-dessous, un jeu à 64 disques requiert un minimum de 264-1 déplacements (soit 18 446 744 073 709 551 615 déplacements). En admettant qu'il faille une seconde pour déplacer un disque, ce qui fait 86 400 déplacements par jour, la fin du jeu aurait lieu au bout d'environ 213 000 milliards de jours, ce qui équivaut à peu près à 584,5 milliards d'années, soit 43 fois l'âge estimé de l'univers (13,7 milliards d'années selon certaines sources)[b]. Nombre de déplacements à effectuerOn peut démontrer par récurrence que si n est le nombre de disques, il faut 2n - 1 coups au minimum pour parvenir à ses fins[c], quantité qui augmente très rapidement avec n. En effet, soient A, B et C les trois emplacements des tours ; notons xn le nombre de déplacements de disques nécessaires au déplacement d'une tour complète. Pour déplacer une tour de n disques de A vers C, on effectue ces trois étapes :
Le nombre de déplacements de disques vérifie donc la relation de récurrence : ce qui donne bien On peut montrer que la méthode décrite ici donne la séquence optimale (celle qui nécessite le moins de coups), et que celle-ci est unique. En effet, pour déplacer la tour de n disques de A vers C, on devra forcément, à un moment ou à un autre, déplacer le plus grand disque de A vers C, et pour ce faire, on devra avoir empilé les n-1 premiers disques en B. Résolution algorithmiqueSolution récursiveLe problème des tours de Hanoï est souvent présenté en cours d'algorithmique (programmation informatique). En effet, il offre un exemple de la puissance et de la lisibilité des programmes définis de façon récursive (un autre exemple étant le tri arborescent). En effet, la méthode de résolution vue précédemment conduit à un algorithme récursif, décrit ci-dessous. Les paramètres de la procédure Hanoï sont :
La procédure ci-dessous déplace les n disques supérieurs de la tour A vers la tour C en utilisant la tour B comme emplacement temporaire. procédure Hanoï(n, A, B, C) si n ≥ 1 Hanoï(n-1, A, C, B) Déplacer le disque de A vers C Hanoï(n-1, B, A, C) Pour résumer pour déplacer les n disques supérieurs de A vers C en utilisant B comme emplacement temporaire :
La figure ci-contre montre l'exécution de Hanoï(4, A, B, C). La colonne de gauche, montre l'effet global de déplacer les 4 disques de A vers C. La deuxième colonne montre les actions de Hanoï(3, A, C, B) (déplacement des 3 disques supérieurs en A vers B), le déplacement du disque de A vers C puis de Hanoï(3, B, A, C) (déplacement des 3 disques de B vers C). La troisième colonne détaille les appels récursifs pour n = 1. La dernière colonne (de droite) montre la suite complète des déplacements. Algorithme généralisé à une position quelconqueOn peut généraliser la résolution récursive au cas où les disques sont initialement disposés de façon aléatoire sur les trois emplacements, plutôt qu’empilés sur le premier (la position initiale est quelconque). L’objectif sera de regrouper les n disques sur l’emplacement d’arrivée A. On numérote les n disques de 1 à n par ordre de taille croissante, et l’on note Pk la position du disque numéroté k. On part du constat suivant : il faudra forcément, à un moment, déplacer le plus grand disque de Pn vers A. Le raisonnement récursif est alors similaire au précédent :
À la différence du cas particulier traité précédemment, l’emplacement de départ dépend de la disposition des disques. Il faut par ailleurs distinguer le cas où le disque n se trouve déjà au bon endroit (Pn = A). Dans ce cas, suivre la méthode précédente ne serait pas optimal : la deuxième étape est inutile, et l’on peut fusionner les première et troisième étapes en regroupant directement les n-1 premiers disques en A. L’algorithme généralisé devient donc : procédure Hanoï-généralisé(n, A) si n ≠ 0 si Pn = A Hanoï-généralisé(n-1, A) sinon Hanoï-généralisé(n-1, I) Déplacer le disque de Pn vers A Hanoï-généralisé(n-1, A) fin-si fin-si fin-procédure Notons que le dernier appel récursif peut être remplacé par un appel à la procédure Hanoï du cas particulier vu précédemment, puisque tous les n-1 premiers disques sont alors empilés en I. Avec le même raisonnement que précédemment, on montre que cet algorithme donne l’unique séquence optimale. On peut exprimer le nombre de coups en fonction du nombre n de disques, de leur disposition et de l’emplacement A d’arrivée : on le note yn(A).
On a donc la relation de récurrence suivante : On peut alors exprimer yn(A) comme une somme de puissances de 2, où un terme est ajouté si et seulement si le disque correspondant est mal placé : où bk vaut 0 si le disque k est bien placé, 1 sinon. Dans le pire des cas, tous les disques sont mal placés. On a alors . Il est intéressant de remarquer que la situation initiale usuelle est l’un de ces pires des cas. Solution itérativeIl existe également une procédure itérative pour résoudre de façon optimale le problème des tours de Hanoï. Elle consiste à effectuer successivement les deux déplacements suivants, en désignant par A, B, C les trois tours (de gauche à droite) :
et à poursuivre itérativement ces deux déplacements jusqu'à ce que la tour complète soit déplacée, le dernier déplacement se limitant alors à celui du plus petit disque sur le sommet de la tour. L'action « déplacer un autre disque » est non ambiguë puisque, en dehors du plus petit disque, un seul mouvement de disque est possible. Contrairement à la procédure récursive, la procédure itérative n'utilise aucune mémorisation de l'arbre des déplacements à effectuer et nécessite seulement de se souvenir si on doit déplacer le plus petit disque ou non, et dans quel sens sont effectués les déplacements du petit disque. Il permet également, à tout moment, de revenir à la situation de départ : il suffit pour cela d'inverser le sens dans lequel se déplace le plus petit disque. Cependant, les raisons pour lesquelles cet algorithme résout le problème sont moins apparentes que pour l'algorithme récursif. On peut l’expliquer en constatant que dans la solution optimale, on déplace nécessairement le plus petit disque une fois sur deux exactement, car le déplacer deux fois de suite ne serait pas optimal, et déplacer l’autre disque deux fois de suite non plus. Il reste à déterminer la façon dont on déplace ce plus petit disque. Supposons que la tour de n disques soit initialement sur l’emplacement A, et qu’on veuille la déplacer sur l’emplacement C. On montre par récurrence sur n que l’itération des deux mouvements décrits précédemment produit la séquence optimale, si le sens dans lequel est déplacé le plus petit disque est A → B → C → A (de la gauche vers la droite) pour n pair, ou A → C → B → A (de droite à gauche) pour n impair. En effet :
Une autre solution itérativeOn suppose les tours numérotées 1, 2 et 3. Un déplacement de la tour n° i vers la tour n° j est noté i + j. Ainsi le déplacement 3 désigne aussi bien le déplacement de la tour 1 vers la tour 2 que de la tour 2 vers la tour 1, mais il n'y a pas d'ambiguïté possible : on disposera le plus petit disque sur le plus grand. De même le déplacement 4 désigne aussi bien le déplacement de la tour 1 vers la tour 3 que de la tour 3 vers la tour 1. Et enfin le déplacement 5 désigne aussi bien le déplacement de la tour 2 vers la tour 3 que de la tour 3 vers la tour 2. Lorsque le nombre de disques est pair, les déplacements à effectuer sont 3,4,5,3,4,5,3,4,5... autant de fois que nécessaire (la séquence 3,4,5 est répétée fois). Lorsque le nombre de disques est impair, les déplacements à effectuer sont 4,3,5,4,3,5,...autant de fois que nécessaire (la séquence 4,3,5 est répétée fois puis se termine par le déplacement de la tour 1 vers la tour 3). Une troisième solution itérativeOn suppose les disques colorés en noir en blanc, alternativement. Par commodité, on supposera aussi que les socles des trois tiges sont colorés en noir ou blanc. Le socle qui supporte la tour initiale est coloré d'une couleur autre que celle du plus grand disque, de façon à respecter l'alternance des couleurs. Les deux autres socles sont l'un noir, l'autre blanc. On déplace itérativement les disques selon les deux règles suivantes[3] :
Tours de Hanoï et triangle de PascalOn peut représenter le jeu des Tours de Hanoï par un graphe abstrait : chaque sommet du graphe représentant une disposition possible des N disques sur les trois tours, une arête reliant deux sommets s'il existe un mouvement d'un disque permettant de passer d'une disposition, représentée par l'un des sommets, à l'autre. L'étiquetage des sommets est basé sur la position des disques dans la disposition qu'il représente : on lit de gauche à droite à quelle tour appartient chaque disque, en commençant par la position du plus grand disque. Le diagramme montre l'arbre du jeu avec trois disques. La position initiale est située à l'un des sommets du triangle, par exemple AAA, la position finale étant un autre sommet, BBB ou CCC. La couleur des arêtes indique le disque à déplacer : rouge pour le plus petit disque, jaune pour le disque intermédiaire, et bleu pour le grand disque. On montre que, pour tout N, le graphe des Tours de Hanoï à N disques est identique à celui obtenu à partir d'un Triangle de Pascal d'ordre 2N, où l'on relie par une arête les coefficients binomiaux impairs[4]. ApplicationsLa tâche de la Tour de Hanoï est utilisée dans la recherche en psychologie notamment au travers de la résolution de problème. Il est également utilisé comme test neuropsychologique. Cette tâche est sensible aux dysfonctionnements frontaux et préfrontaux[5],[6]. Ce test permet ainsi l'évaluation des fonctions exécutives[7], comme la planification[5], la mémoire de travail[8] et l'inhibition[9]. La performance à la tour d’Hanoï dépend des capacités d'inhibition[10], de la mémoire de travail[11], de la mémoire procédurale[12], et de l'intelligence fluide[13]. Or l'inhibition nécessite la suppression de l'activité du cortex moteur primaire, du cortex frontal inférieur droit et de l'aire motrice supplémentairement[14]. La mémoire de travail implique la partie dorso-latérale du cortex frontal qui permet la manipulation active et le contrôle des informations[15]. De même, la planification est corrélée avec l'activation de la partie dorsale du cortex préfrontal, du cortex pariétal et prémoteur et du cerebellum[16]. On comprend pourquoi la tour d'Hanoï est sensible aux dysfonctionnements frontaux et préfontaux[5]. Ce test est proche de celui du test de la Tour de Londres ainsi que celui des Tours de Toronto[17]. Notes et référencesNotes
Références
Voir aussiBibliographie
Articles connexes
|