Zum Hauptinhalt springen

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 an beam_search übergeben werden sollen.

Rückgabewert:

  • solutions dict | None - Wörterbuch, das die Lösungsantwort von search.beam_search enthält.