_evaluator
Modul zur Bewertung der Leistung eines Lösers.
Dieses Modul stellt Funktionen zur Verfügung, um die Leistung eines Lösers auf einem Datensatz zu bewerten. Es enthält Funktionen zur Bewertung der Sucheffizienz und der zeitlichen Leistung eines Lösers.
HINWEIS: Die Funktionalität in diesem Modul erfordert optionale Abhängigkeiten. Um sie zu verwenden,
installieren Sie AlphaCube bitte mit dem 'eval'-Extra: pip install 'alphacube[eval]'
get_dataset
def get_dataset(
filename="deepcubea-dataset--cube3.json",
cache_dir=os.path.expanduser("~/.cache/alphacube")
)
Ruft einen Datensatz aus einer Datei ab oder lädt ihn herunter, falls er nicht existiert.
Argumente:
filename
str - Der Dateiname des Datensatzes.
Rückgabewert:
dict
- Der Datensatz.
evaluate_search_efficiency
def evaluate_search_efficiency(
solver,
num_samples=1000,
beam_width=2**10 if device.type == "cpu" else 2**13,
verbose=False
)
Bewertet die Sucheffizienz des Modells. (Auch verfügbar als solver.benchmark
)
Diese Funktion löst eine Reihe von Scrambles und berichtet über wichtige Leistungsmetriken, um einen Überblick über die Effizienz des Lösers unter bestimmten Bedingungen zu geben.
Argumente:
solver
- Die zu bewertende Löser-Instanz.num_samples
int - Die Anzahl der Scrambles, die für die Bewertung gelöst werden sollen.beam_width
int - Die Strahlbreite (Beam Width), die für die Suche verwendet werden soll.verbose
bool - Ob ein Fortschrittsbalken angezeigt werden soll.
Rückgabewert:
dict
- Ein Wörterbuch, das die mittleren Ergebnisse für Lösungszeit (t
), Lösungslänge (lmd
) und erweiterte Knoten (nodes
) enthält.
evaluate_temporal_performance
def evaluate_temporal_performance(
solver,
num_samples=1000,
t_standard=1.0,
beam_width_space=2 ** np.arange(6 if device.type == "cpu" else 10, 16 + 1),
verbose=False
)
Bewertet die Leistung des Modells hinsichtlich der nachgelagerten zeitlichen Leistung.
Diese Funktion bewertet die Leistung des Modells, indem sie eine Reihe von Scrambles mit unterschiedlichen Strahlbreiten löst. Anschließend passt sie einen Prädiktor an, um die Beziehung zwischen Lösungslänge und Zeit zu modellieren, und prognostiziert die Lösungslänge bei t=1.
Argumente:
solver
- Der zu bewertende Löser.num_samples
int - Die Anzahl der Stichproben, die für die Bewertung verwendet werden sollen.t_standard
float - Die Standardzeit.beam_width_space
array - Die Strahlbreiten (Beam Widths), die für die Bewertung verwendet werden sollen.verbose
bool - Ob ein Fortschrittsbalken angezeigt werden soll.
Rückgabewert:
float
- Die vorhergesagte Lösungslänge bei t=1.