Le groupe Glissant (Slice group) du Pyraminx, Rubik's Cube, Megaminx

Calculs, programmes, ... en GAP pour le Rubik's Cube, le Pyraminx, le Skewb, ...
Avatar de l’utilisateur
Morphocode
Crazy
Crazy
Homme
Balance
Messages : 784
Inscription : Lun 25/11/2013 17:06
Localisation : Paris
Contact :

Le groupe Glissant (Slice group) du Pyraminx, Rubik's Cube, Megaminx

Message non lupar Morphocode » Dim 24/03/2024 15:31

Le groupe Glissant du Pyraminx

Pyraminx :
Image

Les autocollants (stickers) sont numérotés comme indique la fig ci-dessous
Numérotation des autocollants :
Image

On définit les 4 rotations {g,d,h,p} comme ceci :
Image

On pose :
Q = < g,d,h,p >
Q engendre un ensemble d'états S défini ainsi :
S = { s = état | s = e•V , V€Q } ; e=état résolu
Par définition S est le groupe Glissant (Slice group) du Pyraminx .

Pour trouver S on raisonne ainsi :
* On a 6 arêtes qui baladent partout ==> S6
Chaque une arête a deux orientations ==> Z26
Donc pour les arêtes on a affaire à : S6 x Z26
* Les 3 centres tournent autour d'un sommet, on peut concidèrer comme un gros sommet à 3 orientations ==> Z34
D'où
S+ = S6 x Z26 x Z34
Mais il y a des contraintes N :
Une rotation, g par ex donne un 3-cycle-arêtes ==> signature=pair ==> 2 choix (sig=1,-1)
La somme des orientations des arêtes est pair ==> 2 choix (pair, impair)
N = 2 . 2
Finalement
S = S+ / N
d'où
S = A6 x Z25 x Z34
|S| = 933120


Voici un script en GAP qui permet de trouver |S|


Code : Tout sélectionner

#gap_pyraminx.txt
#per de base: (arete)(arete)(centre)
pg := (2,4,11)(8,10,5)(21,15,16);
pd := (1,12,4)(7,6,10)(17,14,24) ;
ph := (1,8,9)(7,2,3)(22,13,20)   ;
pp := (3,5,12)(9,11,6)(23,19,18) ;
#permutations étendues (violer les lois)
pGamma := (1,7) ;
pOmega := (1,2)(7,8);
#permutation sommet
pG := (30,28,29);
pD := (33,31,32);
pH := (27,25,26);
pP := (35,34,36);

Slice := Group( pg, pd, ph, pp );
Print( "\n |Slice| = ", Size( Slice ) , "\n" );





On trouve :
Image

Remarque : S est le groupe Glissant car il est isomorphe à

Image
Image

Avatar de l’utilisateur
Morphocode
Crazy
Crazy
Homme
Balance
Messages : 784
Inscription : Lun 25/11/2013 17:06
Localisation : Paris
Contact :

Re: Le groupe Glissant (Slice group) du Pyraminx, Rubik's Cube, Megaminx

Message non lupar Morphocode » Mar 26/03/2024 14:57

Le groupe Glissant (Slice group) du Rubik's Cube

Rubik's Cube :
Image

Les autocollants (stickers) sont numérotés comme indique la fig ci-dessous
Numérotation des autocollants :
Image

On définit les 6 rotations comme ceci :
Image

On pose :
Q = < HB', AP', DG' >
Q engendre un ensemble d'états S défini ainsi :
S = { s = état | s = e•V , V€Q }
Par définition S est le groupe Glissant (Slice group) du Rubik's Cube .

Le groupe Q est isomorphe à T = <b,g,p> = < h',d',a' > par les relations:
b = HB' tH'
g = DG' tD'
p = AP' tA'
Image

Les arêtes dans la tranche b restent dans la tranche b, elles tournent autour d'un carré donc on a affaire à Z4
Comme on a 3 tranches , donc pour les arêtes on a affaire à Z43

On a 6 centres mais les centres sont attachés au core (on ne peut pas permuter le centre H et le entre A) les mouvements des centres se comportent comme les rotations-cube : h = tH, d=tD, a=tA donc on a affaire au groupe de déplacement du cube qui est isomorphe à S4

Mais on a des contraintes N, car une rotation tranche h par ex donne un 4-cycle-aretes et un 4-cycle-centre donc signature(aretes) = signature(centres) ==> N=2
Finalement on a :
T = Z43 x S4 / N

S = T
|S| = 768

Voici un script en GAP qui permet de trouver |S|


Code : Tout sélectionner


pH := (2,4,6,8)(26,28,30,32) (1,3,5,7)(17,21,25,29)(19,23,27,31) ;;
pB := (18,24,22,20)(42,48,46,44) (9,15,13,11)(33,45,41,37)(35,47,43,39);;
pA := (2,34,18,36)(26,10,42,12) (1,35,11,23)(17,9,37,3)(19,33,39,21);;
pP := (6,38,22,40)(30,14,46,16) (7,25,13,45)(29,27,41,47)(31,5,43 ,15);;
pG := (4,12,20,14)(28,36,44,38) (3,39,13,27)(21,11,41,5)(23,37,43,25);;
pD := (8,16,24,10)(32,40,48,34) (1,29,15,33)(17,31,45,35)(19,7,47,9);;
pGamma := (2,26);;
pPsi := (1,17,19);;
pOmega := (2,8)(26,32);;
ph := (10,36,14,40)(34,12,38,16)(51,53,52,54);;
pd := (2,30,22,42)(26,6,46,18)(49,52,50,51);;
pa := (4,32,24,44)(28,8,48,20)(49,54,50,53);;
#H=49,B=50,A=51,P=52,G=53,D=54
####

#slide groupe
Slice :=  Group(pH*pB^-1, pA*pP^-1, pD*pG^-1);
Print( "\n |Slice| = ", Size( Slice ) , "\n" );

hda :=  Group(ph, pd, pa);
Print( "\n |<h,d,a>| = ", Size( hda ) , "\n" );




Image
Image

Avatar de l’utilisateur
Morphocode
Crazy
Crazy
Homme
Balance
Messages : 784
Inscription : Lun 25/11/2013 17:06
Localisation : Paris
Contact :

Re: Le groupe Glissant (Slice group) du Pyraminx, Rubik's Cube, Megaminx

Message non lupar Morphocode » Mer 27/03/2024 19:49

Le groupe Glissant (Slice group) du Megaminx

Megaminx :
Image

On définit les 12 rotations comme ceci :
Image
Image


On pose :
Q = < HH', BB', AA', PP', GG', DD' >
Q engendre un ensemble d'états S défini ainsi :
S = { s = état | s = e•V , V€Q }
Par définition S est le groupe Glissant (Slice group) du Megaminx .


Voici un script en GAP qui permet de trouver |S|


Code : Tout sélectionner


pH := (1,9,7,5,3)(50,40,30,200,11)(52,42,32,22,13)(2,10,8,6,4)(51,41,31,21,12);
pB := (70,72,74,76,78)(17,28,80,108,64)(15,26,88,106,62)(71,73,75,77,79)(16,27,89,107,63);
pA := (11,13,15,17,19)(3,200,72,62,54)(5,28,70,60,52)(12,14,16,18,20)(4,29,71,61,53);
pP := (30,32,34,36,38)(7,40,92,84,24)(9,48,90,82,22)(31,33,35,37,39)(8,49,91,83,23);
pG := (50,52,54,56,58)(1,11,60,116,44)(3,19,68,114,42)(51,53,55,57,59)(2,20,69,115,43);
pD := (200,22,24,26,28)(5,30,82,74,15)(7,38,80,72,13)(21,23,25,27,29)(6,39,81,73,14);
ph := (100,102,104,106,108)(98,110,66,78,88)(96,118,64,76,86)(101,103,105,107,109)(97,119,65,77,87);
pb := (40,42,44,46,48)(9,50,114,94,34)(1,58,112,92,32)(41,43,45,47,49)(10,59,113,93,33);
pa := (90,92,94,96,98)(36,48,112,102,86)(34,46,110,100,84)(91,93,95,97,99)(35,47,111,101,85);
pp := (60,62,64,66,68)(19,70,106,118,56)(17,78,104,116,54)(61,63,65,67,69)(18,79,105,117,55);
pg := (80,82,84,86,88)(26,38,90,100,76)(24,36,98,108,74)(81,83,85,87,89)(25,37,99,109,75);
pd := (110,112,114,116,118)(96,46,58,68,104)(94,44,56,66,102)(111,113,115,117,119)(95,45,57,67,103);
# h=opposé de H

Megaminx := Group (pH, pB, pA, pP, pG, pD, ph, pb, pa, pp, pg, pd);;
# Megaminx = 100669616553523347122516032313645505168688116411019768627200000000000
#Print( "\n |Megaminx| = ", Size( Megaminx ) , "\n" );

Slice := Group(pH*ph^-1, pB*pb^-1, pA*pa^-1, pP*pp^-1, pG*pg^-1, pD*pd^-1);;
# Slice = 9627755206121277812101663948800000
Print( "\n |Slice| = ", Size( Slice ) , "\n" );

#Size (Megaminx) = Size (DerivedSubgroup (Megaminx)) ;




On trouve :
Image
Image