TIPE sur le rubik's cube 2x2

Description :
Dans le cadre de mon TIPE (projet de fin de prépa avec sujet libre sur un thème donné), j'ai décidé de m'intéresser au rubik's cube (pour changer !).
Voulant méler informatique et informatique je me suis attaqué à un problème qui a été résolu en 2014 via des astuces mathématiques et une solution informatique :
La recherche du "nombre de Dieu", qui correspond à la borne supérieur garantissant de pouvoir résoudre n'importe quel état du puzzle.
En 2014 une équipe de chercheur a prouvé qu'un rubik's cube classique (3x3) pouvait toujours être résolu en au plus 20 mouvements (pour une métrique donnée).
Je me suis donc penché sur leur preuve mélant théorie des groupes et parcours d'arbre avec l'algorithme A* et j'ai reproduit le fonctionnement pour le rubik's cube 2x2
pour des raisons de capacités techniques
Aspects techniques :
Le projet a entiérement était codé en python, j'ai représenté un rubik's cube via une classe pour me familiariser un peu à la programation orienté objet.
En guise d'heuristique pour l'algorithme A* j'ai généré une table donnant la distance minimale pour atteindre un certains sous-groupe (lorsque toutes les pièces sont orientées)
à partir d'une orientation donnée
Retour personnel
Je suis plutôt fier de ce projet : les deux aspects étaient complémentaire avec de la théorie des groupes pour simplifier le problème :
Montrer que chaque position de chaque classe suivant un groupe peut arriver dans le sous-groupe en moins de k mouvements suffit. Et résoudre ensuite ce problème via un parcours
d'arbre amélioré grâce à une heuristique (A*) pour chaque classe.