Zum Hauptinhalt springen

_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.