Aller au contenu principal

core

Ce module fournit la classe principale Solver, qui charge un modèle et trouve des solutions au Rubik's Cube en utilisant un algorithme de recherche par faisceau.

Classe :

  • Solver : Une classe pour gérer la configuration du Rubik's Cube, le modèle de résolution et la fonction de recherche.

Solver

class Solver()

Une classe de solveur pour gérer les configurations de l'environnement, du modèle et de la recherche.

Méthodes :

  • load : Charge le modèle de résolution du Rubik's Cube et l'optimise pour le CPU ou le GPU.
  • __call__ : Configure l'état du cube et le passe pour résolution en utilisant la recherche par faisceau.

load

def load(model_id: str = "small" if device.type == "cpu" else "large", prefer_gpu: bool = True, quantize_on_cpu: bool = True, jit_mode: bool = False, *args, **kwargs)

Charge le modèle de résolution du Rubik's Cube et l'optimise pour le CPU ou le GPU.

Arguments :

  • model_id str - Identifiant de la variante du modèle à charger ("small", "base" ou "large").
  • prefer_gpu bool - Indique s'il faut préférer le GPU s'il est disponible.
  • quantize_on_cpu bool - Indique s'il faut quantifier le modèle pour l'optimisation CPU.
  • jit_mode bool - Indique s'il faut activer le mode JIT pour une exécution potentiellement plus rapide.
  • *args - Arguments supplémentaires pour le chargement du modèle.
  • **kwargs - Arguments supplémentaires par mot-clé pour le chargement et l'optimisation du modèle.

Retourne :

  • None

__call__

def __call__(scramble, format="moves", allow_wide=True, **kwargs)

Configure l'état du cube à partir de format et scramble et le passe à search.beam_search avec **kwargs.

Arguments :

  • format str - Format d'entrée du mélange : soit "moves" soit "stickers".
  • scramble list - Une séquence de mouvements/autocollants représentant l'état initial du Rubik's Cube.
  • allow_wide bool - Indique si les mouvements larges sont autorisés.
  • **kwargs - Arguments par mot-clé à passer à beam_search.

Retourne :

  • solutions dict | None - Dictionnaire contenant la réponse de la solution de search.beam_search.