Saltar al contenido principal

core

Este módulo proporciona la clase principal Solver, que carga un modelo y encuentra soluciones para el Cubo de Rubik utilizando un algoritmo de búsqueda por haz.

Clase:

  • Solver: Una clase para gestionar la configuración del Cubo de Rubik, el modelo de resolución y la función de búsqueda.

Solver

class Solver()

Una clase de solucionador para gestionar las configuraciones del entorno, el modelo y la búsqueda.

Métodos:

  • load: Carga el modelo de resolución del Cubo de Rubik y lo optimiza para CPU o GPU.
  • __call__: Configura el estado del cubo y lo pasa para su solución mediante búsqueda por haz.

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)

Carga el modelo de resolución del Cubo de Rubik y lo optimiza para CPU o GPU.

Argumentos:

  • model_id str - Identificador de la variante del modelo a cargar ("small", "base" o "large").
  • prefer_gpu bool - Si se prefiere GPU cuando esté disponible.
  • quantize_on_cpu bool - Si se debe cuantificar el modelo para optimización en CPU.
  • jit_mode bool - Si se debe habilitar el modo JIT para una ejecución potencialmente más rápida.
  • *args - Argumentos adicionales para la carga del modelo.
  • **kwargs - Argumentos adicionales de palabras clave para la carga y optimización del modelo.

Retorna:

  • None

__call__

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

Configura el estado del cubo a partir de format y scramble y lo pasa a search.beam_search junto con **kwargs.

Argumentos:

  • format str - Formato de entrada del scramble: ya sea "moves" o "stickers".
  • scramble list - Una secuencia de movimientos/stickers que representan el estado inicial del Cubo de Rubik.
  • allow_wide bool - Si se permiten movimientos amplios.
  • **kwargs - Argumentos de palabras clave que se pasarán a beam_search.

Retorna:

  • solutions dict | None - Diccionario que contiene la respuesta de la solución de search.beam_search.