Algorithmes optimaux de résolution du Rubik's Cube

De testwiki
Aller à la navigation Aller à la recherche

Les algorithmes optimaux de résolution du Rubik's Cube sont un ensemble d'algorithmes dits optimaux (ou sous-optimaux) permettant de résoudre le casse-tête du Rubik's Cube à partir d'un état quelconque du Cube avec un calculateur.

Il a aussi donné lieu à de nombreuses recherches mathématiques et algorithmiques. On précise les représentations mathématiques du groupe G 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[1]. Les algorithmes optimaux sont ceux qui peuvent calculer, pour un état arbitraire du Cube, une formule de taille minimale permettant de revenir à l'état résolu .

Rubik's Cube : représentations de base

Notations et abréviations

On oriente le Cube c'est-à-dire on dit quelle face est le Haut, quelle face est l'Avant , ... ainsi nous avons 6 faces dans cet ordre : (H)aut, (B)as, (A)vant, (P)ostérieure, (G)auche, (D)roite

H,B,A,P,G,D

ces lettres désignent alors des rotations de base ou des rotations standards:

H = 90° dans le sens horaire

H' = -90°

H² = 180°.

Remarque : En notation (anglo-saxonne) c' est U,D,F,B,L,R. .

Les cubes-arêtes sont notés CA et les cubes-sommets CS. Le terme anglais flip est utilisé pour désigner le basculement d'un cube-arête (valeur binaire 0 ou 1), et twist pour désigner la rotation d'un cube-sommet (valeurs 0, 1, 2 (= -1) en tiers de tours dans le sens des aiguilles d'une montre).

Du point de vue mathématique, n/n désigne l'ensemble des entiers modulo n, et Sn le groupe symétrique des permutations de [1..n], dont le cardinal est n!. La convention est ici de représenter une telle permutation par le vecteur d'entiers images p=[p(1),,p(n)].

Le groupe Modèle:Math des formules, et le groupe Modèle:Math des états

Le groupe des formules du Cube, engendré par les rotations de base est noté M=<H,B,A,P,G,D>.

Une formule est donc une suite finie de rotations de base et leur inverse avec la règle suivante:

HH', BB', AA', PP', GG', DD'  ; interdit

par ex:

C = HB'GDA²H' ⇒ ok

K = ABGDD'PH ⇒ interdit à cause DD'

On pose

HH' = BB' = AA' = PP' = GG' = DD' = I

I = formule neutre (ne rien faire, correspond à la permutation identité id)

On définit sur M une loi de composition '.' concaténation :

1) QT , Q suivi de T ; loi interne

2) QI = IQ = Q  ; élément neutre I

3) Q' = Inverse de Q ; on lit à l'envers prime ↔ non-prime par ex:

C' = HA'²D'G'BH'

QQ' = Q'Q = I

4) Q(TV) = (QT)V ; associative

Ainsi (M,.) forme un groupe, le groupe des formules .

Ces formules Q agissent sur l'état du Cube, qui peut se représenter par une permutation pQS48 des 48 autocollants (stickers) du Cube (les centres ne bougent pas).

Une formule Q engendre donc un état s on va noter :

eQ=s  ; lire : Q appliqué sur e donne s, ou s provient de Q

e = état résolu,

sI=s

On considère que 2 formules donnant le même état sont identiques

eQ=eT Q=T

Par ex:

H=H3

AD'A'D = H'DHD'A'HAH'.

Une visualisation d'un état comme une permutation des autocollants se fait donc par un graphique du type suivant.
superflip
État initial → État final : Superflip

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

pQ = {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 = q est produit par la formule Q de taille 20f  :


Q=HD2APDP2DH2GP2DHBD2ADGP2H2A2.

eQ=q=SuperFlip


Le nombre de permutations S48 est de cardinal 48!=1.24139*1061, beaucoup plus vaste que le nombre des états possibles.

Décomposition canonique du Cube

On peut caractériser un état du Cube par ces 12 arêtes et leurs orientations et ces 8 sommets et leurs orientations. On montre que tout état du Cube se décompose de façon unique en un quadruplet (permutation des arêtes, orientation des arêtes, permutation des sommets, orientation des sommets) :

(p,u,r,v)S12×212×S8×38

avec de plus les contraintes suivantes :

  • flip total 112ui=0 (mod 2),
  • twist total 18vi=0 (mod 3).
  • signatures sign(p)=sign(r),


Les permutations sont représentées par les vecteurs des images : p=[p(1),,p(12)], et de même r=[r(1),,r(8)].

La définition des orientations des vecteurs u, v dépend d'un choix de marquage sur les facettes du Cube, par ex le marquage ci-contre :

Marquage standard
Marquage standard

Quel que soit ce choix, on définit la loi de composition de deux états par :

(p,u,r,v)(p,u,r,v)=(pp,u+p(u),rr,v+r(v))

avec

p(u)=(up(1),up(2),up(3),...up(12))

p(u) = permutation des composantes de u

r(v)=(vr(1),vr(2),vr(3),...vr(8))

r(v) = permutation des composantes de v

On en déduit le cardinal du groupe card(G)=12!.212×8!.38/2.3.2=4325200327448985600043×1018.

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

Coordonnées d'un état du cube

Pour effectuer des calculs rapides sur ces états, Kociemba[1] a introduit une représentation par coordonnées entières, définies ainsi. On associe à une permutation pSn l'entier np=rang(p), 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 u=(u1,,u12) est représenté par l'entier fu=111ui2i1, et le twist est représenté par l'entier tv=17vi3i1 (bases 2 et 3). Donc le vecteur de coordonnées du mouvement m=(p,u,r,v) est coord(m)=(np,fu,nr,tv). Les tailles maximales de ces entiers sont les constantes

NPCA=12!=479001600,NPCS=8!=40320,NFLIP=211=2048,NTWIST=37=2187

Rubik's cube : algorithmes optimaux, sous-groupes

La recherche d'algorithmes de reconstruction optimaux (minimum de mouvements) a été entamée par le mathématicien anglais Thistlethwaite en 1981. Il utilise une démarche de décomposition du groupe en quatre sous-groupes GG1G2G3G4={I}, en se limitant successivement à des carrés (demi-tours) sur les paires de faces opposées FP,GD,HB.

Par exploration successive des classes à droite de ces sous-groupes Gi+1Gi, il construit des tables de calcul permettant la résolution complète par une manœuvre de longueur maximale 52f (face-rotation, A² compte 1). 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[4] permettant, pour tout état du cube, de calculer le mouvement minimal de reconstruction. La description de cet algorithme est donnée ici[5].

L'algorithme à deux phases de Kociemba

Cet algorithme[1] a été élaboré en 1992. Il utilise la sous-suite de Thistlethwaite GG2G4={I},avec le sous-groupe G2=<H,B,G2,D2,A2,P2>.

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

e=(p,u,r,v)G2u=0,v=0,p(Tud)=Tud

La phase 1 consiste à ramener un état quelconque gG, par un mouvement xG, à un état g2G2. On a g=g2x1G2x, on travaille donc dans l'ensemble des classes à droite (right cosets en anglais) modulo G2 : ensemble noté G2G.

Une classe est déterminée par un triplet (pud,u,v) et les coordonnées associées (nud,fu,tv) avec

  • Tranche UD : pud=(1<=i1<i2<i3<i4<=12), images de Tud. Il y en a 412, la coordonnée est le rang dans la liste nud[0..411]
  • Flip u211, coordonnée fu[0..2047],
  • Twist v37, coordonnée tv[0..2186].

La taille de G2G est donc N1=NFLIP×NUD×NTWIST=22170931202.2×109.

La phase 2 résout le groupe G2. Un état est représenté par un triplet (pcs,pud,psl) et les coordonnées associées (ncs,nud,nsl) avec

  • Permutation CS : pcs37, coordonnée ncs[0..40319]
  • Permutation CA de Tud : pudS4, coordonnée nud[0..23],
  • Permutation CA hors Tud : pslS8, coordonnée nud[0..40319].

avec la contrainte de Signature totale=1. La taille de G2 est donc N2=8!8!4!/2=1950842880019×109.

L'algorithme Cube Explorer[6] 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 à 20f. La version initiale de 1992 était sous-optimale et donnait en général des manœuvres de taille inférieure à 23f (mais pas de borne effective prouvée).

L'algorithme optimal (à deux phases) de Reid

La grande étape suivante, vers l'algorithme de Dieu, a été franchie par Michael Reid[7] 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 H-B.

Reid optimal, phase 1

Pour ce faire, il utilise dans la phase 1, une fusion des deux coordonnées (permHB=nud,flip=nu), en une coordonnée unique clfud[0..64429], représentant les classes de symétrie des couples (permHB,flip).

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

NSYMG1=NFLIPUD×NTWIST=140908410

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

Reid optimal, phase 2

Dans cette phase d'exploration complète du groupe G2, on calcule 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 (cl,u,s) avec

  • Classe de permutation des CS : cl[0..1671]
  • Permutation des CA hors Tud:u[0..40319]
  • Permutation signée des CA de Tud:s[0..11]

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

NSYMG2=1672×40319×12=808980480

Diamètre du cube et algorithme de Dieu

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 résolu e. Cette taille minimale est appelée la distance d(g,e). Le diamètre du groupe G est d(G)=max(d(g,e),gG).

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

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

Le superflip est à distance 20f !

En recherchant de façon exhaustive des solutions dans l'algorithme optimal à deux phases, Reid démontre le premier, le Modèle:Date-[9], que le superflip (l' état où tous les sommets sont bien placés et bien orientés, tous les arêtes sont bien placés mais flipés) est à distance minimale 20f du l'état résolu. Il prouve ainsi que le diamètre du groupe G est supérieur ou égal à 20f. 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 20f

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 Modèle:Date-, par la démonstration du résultat fondamental[10] :

Le diamètre du groupe de Rubik R3 est 20f

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 à 20f, 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[6] , ou l'algorithme de Reid[11] 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 GD et AP).

Bibliographie

Notes et références

Lien externe

Modèle:Portail