core
Ten moduł udostępnia główną klasę Solver
, która ładuje model i znajduje rozwiązania kostki Rubika przy użyciu algorytmu wyszukiwania wiązkowego.
Klasa:
Solver
: Klasa do zarządzania konfiguracją kostki Rubika, modelem rozwiązywania i funkcją wyszukiwania.
Solver
class Solver()
Klasa solvera do zarządzania środowiskiem, modelem i konfiguracjami wyszukiwania.
Metody:
load
: Ładuje model solvera i optymalizuje go pod kątem CPU lub GPU.__call__
: Ustawia stan kostki i przekazuje go do rozwiązania za pomocą wyszukiwania wiązkowego.
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)
Ładuje model solvera kostki Rubika i optymalizuje go pod kątem CPU lub GPU.
Argumenty:
model_id
str - Identyfikator wariantu modelu do załadowania ("small", "base" lub "large").prefer_gpu
bool - Czy preferować GPU, jeśli jest dostępne.quantize_on_cpu
bool - Czy kwantyzować model w celu optymalizacji CPU.jit_mode
bool - Czy włączyć tryb JIT dla potencjalnie szybszego wykonania.*args
- Dodatkowe argumenty do ładowania modelu.**kwargs
- Dodatkowe argumenty słów kluczowych do ładowania i optymalizacji modelu.
Zwraca:
None
__call__
def __call__(scramble, format="moves", allow_wide=True, **kwargs)
Ustawia stan kostki na podstawie format
i scramble
, a następnie przekazuje go do search.beam_search
wraz z **kwargs
.
Argumenty:
format
str - Format wejściowy pomieszania: "moves" lub "stickers".scramble
list - Sekwencja ruchów/naklejek reprezentująca początkowy stan kostki Rubika.allow_wide
bool - Czy dozwolone są szerokie ruchy.**kwargs
- Argumenty słów kluczowych do przekazania dobeam_search
.
Zwraca:
solutions
dict | None - Słownik zawierający odpowiedź z rozwiązaniem zsearch.beam_search
.