core
Ten moduł dostarcza podstawową klasę Solver, która ładuje model i znajduje rozwiązania Kostki Rubika przy użyciu algorytmu przeszukiwania wiązkowego (beam search).
Klasa:
Solver: Klasa do zarządzania konfiguracją Kostki Rubika, modelem rozwiązującym i funkcją przeszukiwania.
Solver
class Solver()
Klasa solwera do zarządzania konfiguracją środowiska, modelu i przeszukiwania.
Ta klasa zarządza środowiskiem kostki, modelem sieci neuronowej oraz algorytmem przeszukiwania wiązkowego w celu znalezienia rozwiązań.
Metody:
load: Ładuje model solwera i optymalizuje go dla CPU lub GPU.__call__(lubsolve): Ustawia stan kostki i znajduje rozwiązania przy użyciu przeszukiwania wiązkowego.benchmark: Ocenia wydajność przeszukiwania solwera.evaluate_temporal_performance: (Przestarzałe) Ocenia zależność długości rozwiązania od czasu.
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")
)
Ładuje model solwera Kostki Rubika i optymalizuje go dla CPU lub GPU.
Argumenty:
model_idstr - Identyfikator wariantu modelu do załadowania („small”, „base” lub „large”).prefer_gpubool - Czy preferować GPU, jeśli jest dostępne.quantize_on_cpubool - Czy kwantyzować model w celu optymalizacji dla CPU.jit_modebool - Czy włączyć tryb JIT dla potencjalnie szybszego wykonania.cache_dirstr - Katalog do przechowywania plików cache modelu.
Zwraca:
None
__call__
def __call__(
scramble,
format="moves",
allow_wide=True,
beam_width: int = 1024,
extra_depths: int = 0,
ergonomic_bias: dict | None = None
)
Ustawia stan kostki i znajduje rozwiązania przy użyciu przeszukiwania wiązkowego.
Argumenty:
scramblelist lub str - Sekwencja ruchów lub reprezentacja naklejek początkowego stanu kostki.formatstr - Format wejściowy mieszania: „moves” lub „stickers”.allow_widebool - Czy zezwalać na szerokie ruchy w przestrzeni przeszukiwania.Uwaga- Jest to często kontrolowane automatycznie przezergonomic_bias.beam_widthint - Szerokość wiązki dla algorytmu przeszukiwania.extra_depthsint - Liczba dodatkowych głębokości do przeszukania po znalezieniu rozwiązania.ergonomic_biasdict, opcjonalnie - Słownik do faworyzowania w przeszukiwaniu określonych ruchów na podstawie preferencji ergonomicznych.
Zwraca:
dict|None: Słownik zawierający rozwiązanie(a) i metadane przeszukiwania, lub None, jeśli nie znaleziono rozwiązania.
benchmark
Metoda skrótowa alphacube.solver.benchmark(...) funkcjonalnie równoważna alphacube._evaluator.benchmark(alphacube.solver, ...). evaluate_search_efficiency przekierowuje do tej metody w celu zapewnienia wstecznej kompatybilności.
evaluate_temporal_performance
Przestarzałe. Skrót do alphacube._evaluator.evaluate_temporal_performance