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_id
str - Идентификатор варианта модели для загрузки ("small", "base" или "large").prefer_gpu
bool - Предпочитать ли GPU, если он доступен.quantize_on_cpu
bool - Квантовать ли модель для оптимизации на CPU.jit_mode
bool - Включать ли режим JIT для потенциально более быстрого выполнения.cache_dir
str - Директория для кэширования файлов модели.
Возвращает:
None
__call__
def __call__(
scramble,
format="moves",
allow_wide=True,
beam_width: int = 1024,
extra_depths: int = 0,
ergonomic_bias: dict | None = None
)
Устанавливает состояние кубика и находит решения с помощью лучевого поиска.
Аргументы:
scramble
list или str - Последовательность ходов или стикерное представление начального состояния кубик а.format
str - Входной формат скрамбла: "moves" или "stickers".allow_wide
bool - Разрешать ли широкие ходы в пространстве поиска.Примечание
- Этот параметр часто контролируется автоматически черезergonomic_bias
.beam_width
int - Ширина луча для алгоритма поиска.extra_depths
int - Количество дополнительных уровней глубины для поиска после нахождения решения.ergonomic_bias
dict, optional - Словарь для смещения поиска в сторону определенных ходов на основе эргономических предпочтений.
Возвращает:
dict
|None
: Словарь, содержащий решение(я) и метаданные поиска, или None, если решение не найдено.
benchmark
Сокращенный метод alphacube.solver.benchmark(...)
, функционально эквивалентный alphacube._evaluator.benchmark(alphacube.solver, ...)
. Метод evaluate_search_efficiency
перенаправляется на этот метод для обратной совместимости.
evaluate_temporal_performance
Устарело. Сокращение для alphacube._evaluator.evaluate_temporal_performance