core
Этот модуль предоставляет основной класс Solver, который загружает модель и находит решения для кубика Рубика с помощью алгоритма лучевого поиска.
Класс:
Solver: Класс для управления конфигурацией кубика Рубика, моделью для решения и функцией поиска.
Solver
class Solver()
Класс решателя для управления средой, моделью и конфигурациями поиска.
Этот класс управляет средой кубика, моделью нейронной сети и алгоритмом лучевого поиска для нахождения решений.
Методы:
load: Загружает модель решателя и оптимизирует ее для CPU или GPU.__call__(илиsolve): Устанавливает состояние кубика и находит решения с помощью лучевого поиска.benchmark: Оценивает эффективность поиска решателя.evaluate_temporal_performance: (Устарело) Оценивает зависимость длины решения от времени.
load
def load(
model_id: str = dict(cpu="small").get(device.type, "large"),
prefer_gpu: bool = True,
quantize_on_cpu: bool = True,
jit_mode: bool = False,
cache_dir: str = os.path.expanduser("~/.cache/alphacube")
)
Загружает модель решателя кубика Рубика и оптимизирует ее для CPU или GPU.
Аргументы:
model_idstr - Идентификатор варианта модели для загрузки ("small", "base" или "large").prefer_gpubool - Предпочитать ли GPU, если он доступен.quantize_on_cpubool - Квантовать ли модель для оптимизации на CPU.jit_modebool - Включать ли режим JIT для потенциально более быстрого выполнения.cache_dirstr - Директория для кэширования файлов модели.
Возвращает:
None
__call__
def __call__(
scramble,
format="moves",
allow_wide=True,
beam_width: int = 1024,
extra_depths: int = 0,
ergonomic_bias: dict | None = None
)
Устанавливает состояние кубика и находит решения с помощью лучевого поиска.
Аргументы:
scramblelist или str - Последовательность ходов или стикерное представление начального состояния кубика.formatstr - Входной формат скрамбла: "moves" или "stickers".allow_widebool - Разрешать ли широкие ходы в пространстве поиска.Примечание- Этот параметр часто контролируется автоматически черезergonomic_bias.beam_widthint - Ширина луча для алгоритма поиска.extra_depthsint - Количество дополнительных уровней глубины для поиска после нахождения решения.ergonomic_biasdict, optional - Словарь для смещения поиска в сторону определенных ходов на основе эргономических предпочтений.
Возвращает:
dict|None: Словарь, содержащий решение(я) и метаданные поиска, или None, если решение не найдено.
benchmark
Сокращенный метод alphacube.solver.benchmark(...), функционально эквивалентный alphacube._evaluator.benchmark(alphacube.solver, ...). Метод evaluate_search_efficiency перенаправляется на этот метод для обратной совместимости.
evaluate_temporal_performance
Устарело. Сокращение для alphacube._evaluator.evaluate_temporal_performance