Przejdź do głównej zawartości

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 do beam_search.

Zwraca:

  • solutions dict | None - Słownik zawierający odpowiedź z rozwiązaniem z search.beam_search.