Aller au contenu principal

__init__

Le package alphacube fournit quelques fonctions pour différents usages :

  • load(*args, **kwargs) : Charge un réseau de neurones profond entraîné.
  • solve(*args, **kwargs) : Résout un Rubik's Cube en utilisant le solveur chargé.
  • set_verbose(loglevel=logging.INFO) : Définit le niveau de verbosité du logger.
  • cli() : Utilitaire en ligne de commande pour résoudre un Rubik's Cube avec AlphaCube.

Voir Premiers pas pour l'utilisation de base.

load

def load(model_id: str = "small" if device.type == "cpu" else "large", *args, **kwargs)

Charge le modèle de solveur de Rubik's Cube.

Arguments :

  • model_id - Identifiant de la variante du modèle à charger ("small", "base" ou "large"). Par défaut small sur CPU ; large sur GPU/MPS.
  • *args - Arguments positionnels supplémentaires pour configurer le chargement du modèle.
  • **kwargs - Arguments mot-clé supplémentaires pour configurer le chargement du modèle.

Retourne :

  • None

solve

def solve(*args, **kwargs)

Résout un puzzle Rubik's Cube en utilisant le modèle de solveur chargé.

Arguments :

*args, **kwargs : Arguments pour configurer la résolution du puzzle ; passés à alphacube.core.Solver.__call__() et alphacube.search.beam_search.

Retourne :

  • dict | None : Un dictionnaire contenant les solutions et métriques de performance. None en cas d'échec.

list_models

def list_models()

Liste les identifiants de modèles disponibles.

Retourne :

  • list - Une liste des identifiants de modèles disponibles.

cli

def cli()

Utilitaire en ligne de commande pour résoudre un Rubik's Cube avec AlphaCube.

Arguments :

  • --model_id/-m (str) : Choisit un modèle spécifique pour la résolution (défaut : 'small' sur CPU, sinon large ; un autre choix est base).
  • --format/-f (str) : Spécifie le format d'entrée ('moves' ou 'stickers').
  • --scramble/-s (str) : Définit l'état initial du cube en utilisant soit une séquence de mouvements soit un dictionnaire JSON sous forme de chaîne.
  • --beam_width/-bw (int) : Définit la largeur de faisceau pour la recherche (défaut : 1024).
  • --extra_depths/-ex (int) : Spécifie des profondeurs supplémentaires pour l'exploration (défaut : 0).
  • --verbose/-v : Active la sortie verbeuse pour le débogage et le suivi de la progression.

Retourne :

  • None

Exemples d'utilisation :

Syntaxe
alphacube [--model_id MODEL_ID] [--format FORMAT] [--scramble SCRAMBLE]
[--beam_width BEAM_WIDTH] [--extra_depths EXTRA_DEPTHS]
1. Résoudre un cube avec les paramètres par défaut
alphacube --scramble "R U R' U'"
2. Résoudre un cube avec des paramètres personnalisés
alphacube --model_id large --beam_width 128 --extra_depths 2 \
--scramble "R U2 F' R2 B R' U' L B2 D' U2 R F L"
3. Résoudre un cube en utilisant une représentation par stickers
alphacube --format stickers \
--scramble '{ \
"U": [0, 0, 5, 5, 0, 5, 5, 4, 0], \
"D": [1, 3, 3, 4, 1, 1, 4, 1, 3], \
"L": [4, 5, 1, 0, 2, 2, 0, 1, 4], \
"R": [5, 2, 0, 2, 3, 3, 2, 0, 2], \
"F": [4, 3, 2, 4, 5, 1, 1, 4, 3], \
"B": [1, 5, 5, 0, 4, 3, 3, 2, 2] \
}' \
--beam_width 64