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 abeam_search
.
Retorna:
solutions
dict | None - Diccionario que contiene la respuesta de la solución desearch.beam_search
.