__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äßigsmall
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, sonstlarge
; 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