Zum Hauptinhalt springen

__init__

alphacube Paket stellt einige Funktionen für verschiedene Zwecke bereit:

  • load(*args, **kwargs): Lädt ein trainiertes neuronales Netz.
  • solve(*args, **kwargs): Löst einen Rubik's Cube mit dem geladenen Solver.
  • set_verbose(loglevel=logging.INFO): Setzt die Ausführlichkeit des Loggers.
  • cli(): Kommandozeilenprogramm zum Lösen eines Rubik's Cube mit AlphaCube.

Siehe Erste Schritte für die grundlegende Verwendung.

load

def load(model_id: str = "small" if device.type == "cpu" else "large", *args, **kwargs)

Lädt das Rubik's Cube Solver-Modell.

Argumente:

  • model_id - Kennung für die zu ladende Modellvariante ("small", "base" oder "large"). Standardmäßig small auf CPU; large auf GPU/MPS.
  • *args - Zusätzliche Positionsargumente zur Konfiguration des Modell-Ladens.
  • **kwargs - Zusätzliche Schlüsselwortargumente zur Konfiguration des Modell-Ladens.

Rückgabewert:

  • None

solve

def solve(*args, **kwargs)

Löst ein Rubik's Cube Puzzle mit dem geladenen Solver-Modell.

Argumente:

*args, **kwargs: Argumente zur Konfiguration der Puzzle-Lösung; werden an alphacube.core.Solver.__call__() und alphacube.search.beam_search weitergegeben.

Rückgabewert:

  • dict | None: Ein Dictionary mit Lösungen und Leistungsmetriken. None bei Fehler.

list_models

def list_models()

Listet die verfügbaren Modell-IDs auf.

Rückgabewert:

  • list - Eine Liste der verfügbaren Modell-IDs.

cli

def cli()

Kommandozeilenprogramm zum Lösen eines Rubik's Cube mit AlphaCube.

Argumente:

  • --model_id/-m (str): Wählt ein bestimmtes Modell zum Lösen (Standard: 'small' auf CPU, sonst large; eine andere Wahl ist `base``).
  • --format/-f (str): Gibt das Eingabeformat an ('moves' oder 'stickers').
  • --scramble/-s (str): Definiert den Anfangszustand des Würfels entweder durch eine Folge von Zügen oder ein JSON-Dictionary als String.
  • --beam_width/-bw (int): Setzt die Beam-Breite für die Suche (Standard: 1024).
  • --extra_depths/-ex (int): Gibt zusätzliche Tiefen für die Erkundung an (Standard: 0).
  • --verbose/-v: Aktiviert ausführliche Ausgabe zum Debuggen und Verfolgen des Fortschritts.

Rückgabewert:

  • None

Anwendungsbeispiele:

Syntax
alphacube [--model_id MODEL_ID] [--format FORMAT] [--scramble SCRAMBLE]
[--beam_width BEAM_WIDTH] [--extra_depths EXTRA_DEPTHS]
1. Löst einen Würfel mit Standardeinstellungen
alphacube --scramble "R U R' U'"
2. Löst einen Würfel mit benutzerdefinierten Einstellungen
alphacube --model_id large --beam_width 128 --extra_depths 2 \
--scramble "R U2 F' R2 B R' U' L B2 D' U2 R F L"
3. Löst einen Würfel mit einer Aufkleber-Darstellung
alphacube --format stickers \
--scramble '{ \
"U": [0, 0, 5, 5, 0, 5, 5, 4, 0], \
"D": [1, 3, 3, 4, 1, 1, 4, 1, 3], \
"L": [4, 5, 1, 0, 2, 2, 0, 1, 4], \
"R": [5, 2, 0, 2, 3, 3, 2, 0, 2], \
"F": [4, 3, 2, 4, 5, 1, 1, 4, 3], \
"B": [1, 5, 5, 0, 4, 3, 3, 2, 2] \
}' \
--beam_width 64