Utilisateur:Fm4911/Brouillon

Cube de Rubik : représentations et algorithmes optimaux

Le Rubik's Cube[1] est un casse-tête très populaire depuis 1980. Il a aussi donné lieu à de nombreuses recherches mathématiques et algorithmiques. On s'intéresse ici aux algorithmes optimaux (ou sous-optimaux) de résolution par calculateur d'une position quelconque du cube. On précise les représentations mathématiques du groupe des états du cube et de ses sous-groupes, nécessaires pour la mise en œuvre effective sur calculateur. Pour l'essentiel, il s'agit des représentations par coordonnées introduites par Kociemba[2]. Les algorithmes optimaux sont ceux qui peuvent calculer, pour un état arbitraire du cube, le mouvement de taille minimale permettant de revenir à l'état initial du cube (rangé).


Rubik's cube : représentations de base modifier

Notations et abréviations modifier

On fixe la position du cube dans l'espace. La notation standard (anglo-saxonne) des faces et des manœuvres associées (quart de tour dans le sens des aiguilles d'une montre) est  . Les notations françaises équivalentes sont   pour Haut, Bas, Gauche, Droite, Avant, Postérieure. On utilisera souvent la notation anglo-saxonne, qui est la plus répandue.

On note CA les cubes-arêtes, CS les cubes-sommets ou coins. On utilise les termes anglais de flip pour désigner le basculement d'un CA (valeur binaire 0 ou 1), et de twist pour désigner la rotation d'un CS ( valeurs 0, 1,2 en tiers de tours dans le sens des aiguilles d'une montre).

Du point de vue mathématique, on note   l'ensemble des entiers modulo n, et   le groupe symétrique des permutations de  . Son cardinal est  . On convient ici de représenter une telle permutation par le vecteur d'entiers images  .

Le groupe   des mouvements, l'espace   des états modifier

Le groupe engendré par les mouvements de base est noté  .

Ces mouvements agissent sur l'état du cube, qui peut se représenter par une permutation   des 48 facettes mobiles du cube (les centres ne bougent pas). En notant   l'état rangé du cube (permutation identité), on identifie de façon canonique un mouvement   à l'état  . Une visualisation d'un mouvement comme permutation des facettes du cube se fait donc par un graphique du type suivant.

 
Etat initial --> Etat final : Superflip

Voici la permutation   décrite en cycles disjoints : on reconnait les 12 transpositions (2-cycles)=12 CA flipés (Cubes-Arêtes basculés).

pcycle={{2,36},{5,39},{8,37},{11,34},{13,20},{14,15},{16,17},{18,19},{22,44},{25,42},{28,45},{31,47}}

Ce Superflip est produit par le mouvement de taille 20 :

 .

L'espace de toutes les permutations   est de cardinal  , beaucoup plus vaste que l'espace des états possibles.

Décomposition canonique du cube modifier

On peut caractériser l'état du cube au niveau des petits cubes CA (12 cubes arêtes) et CS (8 cubes sommets ou coins). On montre[3] que tout état du cube se décompose de façon unique en un quadruplet (permutation des CA, orientation des CA ou flip, permutation des CS, orientation des CS ou twist) :

 

avec de plus les contraintes suivantes : signatures  , flip total  , twist total  .

Les permutations sont représentées par les vecteurs des images :  , et de même  .

La définition des orientations   est dépendante d'un choix de marquage d'une facette + sur chacun des petits cubes. Quelque soit ce choix, on établit les règles suivantes de composition des états : pour deux mouvements  , la composition dans cet ordre donne le mouvement   avec :

  • Produit des permutations :  
  • Composition des flips et twists :  

La notation   pour appliquer une permutation au vecteur u signifie  .

On en déduit le cardinal du groupe  .

Pour les démonstrations mathématiques détaillées, on se reportera à la référence[4], et au livre complet de théorie des groupes[5], de W.D. Joyner ici [1].

Coordonnées d'un état du cube modifier

Pour effectuer des calculs rapides sur ces états, Kociemba[2] a introduit une représentation par coordonnées entières, définies ainsi. On associe à une permutation   l'entier  , son rang dans l'ordre lexicographique de classement de toutes les permutations. Il faut construire les fonctions calculant le rang, et leurs inverses calculant la permutation associée à un entier donné.

Compte-tenu du total nul, le flip   est représenté par l'entier  , et le twist est représenté par l'entier   (bases 2 et 3). Donc le vecteur de coordonnées du mouvement   est  . Les tailles maximales de ces entiers sont les constantes

 

Rubik's cube : algorithmes optimaux, sous-groupes modifier

La recherche d'algorithmes de reconstruction optimaux[6] (minimum de mouvements) a été entamée par le mathématicien anglais Thistlethwaite[7] en 1981. Il utilise une démarche de décomposition du groupe en quatre sous-groupes  , en se limitant successivement à des carrés (demi-tours) sur les paires de faces opposées  . Par exploration successive des classes à droite[8] de ces sous-groupes  , il construit des tables de calcul permettant la résolution complète par une manœuvre de longueur maximale 52. Il bornait ainsi le diamètre du groupe de Rubik, c'était le début de la course pour déterminer ce diamètre et obtenir l' Algorithme de Dieu[9] permettant, pour tout état du cube, de calculer le mouvement minimal de reconstruction. La description de cet algorithme est donnée ici[10].

L'algorithme à deux phases de Kociemba modifier

Cet algorithme[2] a été élaboré en 1992. Il utilise la sous-suite de Thistlethwaite  ,avec le sous-groupe  .

Kociemba utilise la caractérisation du groupe intermédiaire   : il n'y a ni flip ni twist, et les CA de la tranche du milieu   y restent, on la notera  . Donc

 

La phase 1 consiste à ramener un état quelconque  , par un mouvement  , à un état  . On a  , on travaille donc dans l'ensemble des classes à droite[8] (right cosets en anglais) modulo   : ensemble noté  .

Une classe est déterminée par un triplet   et les coordonnées associées   avec

  • Tranche UD :  , images de  . Il y en a 412, la coordonnée est le rang dans la liste  
  • Flip  , coordonnée  ,
  • Twist  , coordonnée  .

La taille de   est donc  .

La phase 2 résout le groupe  . Un état est représenté par un triplet   et les coordonnées associées   avec

  • Permutation CS :  , coordonnée  
  • Permutation CA de   :  , coordonnée  ,
  • Permutation CA hors   :  , coordonnée  .

avec la contrainte de Signature totale=1. La taille de G2 est donc  .

L'algorithme Cube Explorer[11] réalise ces deux phases, soit de façon rapide sous-optimale, soit de façon exhaustive optimale et plus lente. Il retourne, pour tout état du cube, une manœuvre de résolution en général de longueur inférieure à 20. La version initiale de 1992 était sous-optimale et donnait en général des manœuvres de taille inférieure à 23 (mais pas de borne effective prouvée).

L'algorithme optimal (à deux phases) de Reid modifier

La grande étape suivante, vers l'algorithme de Dieu, a été franchie par Michael Reid[12] en 1997. Il implémente l'algorithme à deux phases de Kociemba, en utilisant une réduction de l'espace de recherche par utilisation de classes d'équivalence (des états ou classes à droite) par les 16 symétries du cube respectant l'axe U-D.

Reid optimal, phase 1 modifier

Pour ce faire, il utilise dans la phase 1, une fusion des deux coordonnées  , en une coordonnée unique  , représentant les classes de symétrie des couples (permUD,flip).

Un élément de   est donc représenté par les coordonnées de symétrie (classe FLIPUD, twist)= . La taille de l'espace à explorer est donc réduite à

 

avec NUDSLICE=64430 (*---Nombres de classes de symétrie de FLIP-UDslice--*).

Reid optimal, phase 2 modifier

Dans cette phase d'exploration complète du groupe G2, on calcul les classes d'équivalence de symétries et inversions des permutations de CS. Il reste 1672 classes. Les classes de symétrie de G2 sont représentées par un triplet de coordonnées   avec

  • Classe de permutation des CS :  
  • Permutation des CA hors  
  • Permutation signée des CA de  

La taille de l'espace des classes à explorer est donc

 

Diamètre du cube et algorithme de Dieu modifier

Puisque le groupe G est fini, il existe pour tout état g une manœuvre de taille minimale (nombre de mouvements élémentaires) qui le ramène à l'état initial  . Cette taille minimale est appelée la distance  . Le diamètre du groupe G est  .

Le diamètre est inférieur ou égal à 29 modifier

Par exploration exhaustive des deux espaces réduits de l'algorithme optimal défini ci-dessus, Mike Reid a établi en 1995[13] que toutes les classes sont résolues par un mouvement de taille maximale 29.

Le superflip est à distance 20 ! modifier

En recherchant de façon exhaustive des solutions dans l'algorithme optimal à deux phases, Reid démontre le premier, le 18 Janvier 1995[14], que le ''superflip'' (état du cube où tous les CS sont bien placés et orientés, tous les CA sont bien placés et ''flipés'') est à distance minimale 20 du cube initial. Il prouve ainsi que le diamètre du groupe G est supérieur ou égal à 20. Il n'y a pas de mouvement plus court que celui donné au début de l'article, pour réaliser le superflip.

Le diamètre est 20 modifier

La recherche de l'algorithme de Dieu et du diamètre effectif du groupe G s'est poursuivie de façon continue après 1995, alliant l'augmentation de puissance et taille mémoire des ordinateurs, l'amélioration de l'analyse mathématique du groupe et des algorithmes de recherche. Elle s'est conclue en Juillet 2010, par la démonstration du résultat fondamental[15] :

Le diamètre du groupe de Rubik   est 20

Ce résultat a été obtenu par un travail conjoint de Tomas Rokicki, Herbert Kociemba, Morley Davidson et John Dethridge. Il a nécessité un temps de calcul de 35 années-CPU, réparti sur un vaste réseau de machines. Il ne donne pas cependant l'algorithme de Dieu, car le programme a cherché pour tous les états (répartis en 2 217 093 120 ensembles de 19 508 428 800 positions chacun) une solution de taille inférieure ou égale à 20, et non une solution optimale.

Ainsi, le meilleur calcul des mouvements de taille minimale pour résoudre une position est donné par l'algorithme Cube Explorer[11] , ou l'algorithme de Reid[16] qui en est une variante antérieure. Ils sont sous-optimaux dans G, car ils utilisent une optimisation séparée en deux phases liées au sous-groupe G2 (mais aussi à ses variantes obtenues par les tranches LR et FB).

Références modifier

  1. « Rubik's Cube », Wikipédia,‎ (lire en ligne, consulté le )
  2. a b et c « Kociemba's Homepage », sur kociemba.org (consulté le )
  3. « Théorie mathématique sur le Rubik's Cube », Wikipédia,‎ (lire en ligne, consulté le )
  4. « Théorie des groupes - Rubik's cube », sur trucsmaths.free.fr (consulté le )
  5. (en) David Joyner, Adventures in Group Theory, Johns Hopkins University Press, (ISBN 0-8018-6947-1)
  6. (en) « Optimal solutions for Rubiks Cube », Wikipedia, the free encyclopedia,‎ (lire en ligne, consulté le )
  7. (en) « Morwen Thistlethwaite », Wikipedia, the free encyclopedia,‎ (lire en ligne, consulté le )
  8. a et b « Classe suivant un sous-groupe », Wikipédia,‎ (lire en ligne, consulté le )
  9. rubikscube, « L'algorithme de dieu - Les Rubiks cube », sur Les Rubiks cube (consulté le )
  10. « Thistlethwaite's 52-move algorithm », sur www.jaapsch.net (consulté le )
  11. a et b « Cube Explorer Download », sur kociemba.org (consulté le )
  12. « Michael Reid's Rubik's cube page », sur www.cflmath.com (consulté le )
  13. « Cube Lovers: new upper bounds », sur www.math.rwth-aachen.de (consulté le )
  14. « Cube Lovers: superflip requires 20 face turns », sur www.math.rwth-aachen.de (consulté le )
  15. « God's Number is 20 », sur www.cube20.org (consulté le )
  16. « Optimal Rubik's cube solver », sur www.cflmath.com (consulté le )

Livres et sites sur les mathématiques du cube modifier

Catégorie:Algorithmique Catégorie:Rubik's Cube Catégorie:Théorie des groupes