core
Dieses Modul stellt die Kernklasse Solver
bereit, die ein Modell lädt und Lösungen für den Rubik's Cube mithilfe eines Beam-Search-Algorithmus findet.
Klasse:
Solver
: Eine Klasse zur Verwaltung der Rubik's Cube Konfiguration, des Lösungsmodells und der Suchfunktion.
Solver
class Solver()
Eine Solver-Klasse zur Verwaltung von Umgebung, Modell und Suchkonfigurationen.
Methoden:
load
: Lädt das Solver-Modell und optimiert es für CPU oder GPU.__call__
: Richtet den Cube-Zustand ein und übergibt ihn zur Lösung mittels Beam-Search.
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)
Lädt das Rubik's Cube Solver-Modell und optimiert es für CPU oder GPU.
Argumente:
model_id
str - Kennung für die zu ladende Modellvariante ("small", "base" oder "large").prefer_gpu
bool - Ob GPU bevorzugt werden soll, falls verfügbar.quantize_on_cpu
bool - Ob das Modell für die CPU-Optimierung quantisiert werden soll.jit_mode
bool - Ob der JIT-Modus für eine potenziell schnellere Ausführung aktiviert werden soll.*args
- Zusätzliche Argumente für das Laden des Modells.**kwargs
- Zusätzliche Schlüsselwortargumente für das Laden und Optimieren des Modells.
Rückgabewert:
None
__call__
def __call__(scramble, format="moves", allow_wide=True, **kwargs)
Richtet den Cube-Zustand aus format
und scramble
ein und übergibt ihn zusammen mit **kwargs
an search.beam_search
.
Argumente:
format
str - Eingabeformat des Scrambles: entweder "moves" oder "stickers".scramble
list - Eine Sequenz von Zügen/Stickern, die den Anfangszustand des Rubik's Cube darstellen.allow_wide
bool - Ob weite Züge erlaubt sind.**kwargs
- Schlüsselwortargumente, die anbeam_search
übergeben werden sollen.
Rückgabewert:
solutions
dict | None - Wörterbuch, das die Lösungsantwort vonsearch.beam_search
enthält.