Saltar al contenido principal

__init__

El paquete alphacube proporciona algunas funciones para diferentes propósitos:

  • load(*args, **kwargs): Carga una red neuronal profunda entrenada.
  • solve(*args, **kwargs): Resuelve un Cubo de Rubik usando el solucionador cargado.
  • set_verbose(loglevel=logging.INFO): Establece el nivel de verbosidad del registrador.
  • cli(): Utilidad de línea de comandos para resolver un Cubo de Rubik usando AlphaCube.

Consulta Primeros Pasos para el uso básico.

load

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

Carga el modelo solucionador del Cubo de Rubik.

Argumentos:

  • model_id - Identificador de la variante del modelo a cargar ("small", "base" o "large"). Por defecto es small en CPU; large en GPU/MPS.
  • *args - Argumentos posicionales adicionales para configurar la carga del modelo.
  • **kwargs - Argumentos de palabras clave adicionales para configurar la carga del modelo.

Retorna:

  • None

solve

def solve(*args, **kwargs)

Resuelve un rompecabezas del Cubo de Rubik usando el modelo solucionador cargado.

Argumentos:

*args, **kwargs: Argumentos para configurar la resolución del rompecabezas; se pasan a alphacube.core.Solver.__call__() y alphacube.search.beam_search.

Retorna:

  • dict | None: Un diccionario que contiene las soluciones y las métricas de rendimiento. None si falla.

list_models

def list_models()

Lista los IDs de modelos disponibles.

Retorna:

  • list - Una lista de IDs de modelos disponibles.

cli

def cli()

Utilidad de línea de comandos para resolver un Cubo de Rubik usando AlphaCube.

Argumentos:

  • --model_id/-m (str): Elige un modelo específico para resolver (por defecto: 'small' en CPU, de lo contrario large; otra opción es `base``).
  • --format/-f (str): Especifica el formato de entrada ('moves' o 'stickers').
  • --scramble/-s (str): Define el estado inicial del cubo usando una secuencia de movimientos o un diccionario JSON convertido en cadena.
  • --beam_width/-bw (int): Establece el ancho del haz para la búsqueda (por defecto: 1024).
  • --extra_depths/-ex (int): Especifica profundidades adicionales para la exploración (por defecto: 0).
  • --verbose/-v: Habilita la salida detallada para depuración y seguimiento del progreso.

Retorna:

  • None

Ejemplos de Uso:

Sintaxis
alphacube [--model_id MODEL_ID] [--format FORMAT] [--scramble SCRAMBLE]
[--beam_width BEAM_WIDTH] [--extra_depths EXTRA_DEPTHS]
1. Resolver un cubo usando configuraciones predeterminadas
alphacube --scramble "R U R' U'"
2. Resolver un cubo con configuraciones personalizadas
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. Resolver un cubo usando una representación de pegatinas
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