Przejdź do głównej zawartości

_evaluator

Moduł do oceny wydajności solwera.

Ten moduł dostarcza funkcje do oceny wydajności solwera na zbiorze danych. Zawiera funkcje do oceny efektywności wyszukiwania i wydajności czasowej solwera.

NOTE: Funkcjonalność w tym module wymaga opcjonalnych zależności. Aby z nich skorzystać, zainstaluj AlphaCube z dodatkiem 'eval': pip install 'alphacube[eval]'

get_dataset

def get_dataset(
filename="deepcubea-dataset--cube3.json",
cache_dir=os.path.expanduser("~/.cache/alphacube")
)

Pobiera zbiór danych z pliku lub pobiera go, jeśli nie istnieje.

Argumenty:

  • filename str - Nazwa pliku zbioru danych.

Zwraca:

  • dict - Zbiór danych.

evaluate_search_efficiency

def evaluate_search_efficiency(
solver,
num_samples=1000,
beam_width=2**10 if device.type == "cpu" else 2**13,
verbose=False
)

Ocenia efektywność wyszukiwania modelu. (Dostępne również jako solver.benchmark)

Ta funkcja rozwiązuje zestaw pomieszanych stanów kostki i raportuje kluczowe metryki wydajności, dostarczając obrazu efektywności solwera w określonych warunkach.

Argumenty:

  • solver - Instancja solwera do oceny.
  • num_samples int - Liczba pomieszanych stanów do rozwiązania w ramach oceny.
  • beam_width int - Szerokość wiązki (beam width) używana podczas wyszukiwania.
  • verbose bool - Czy wyświetlać pasek postępu.

Zwraca:

  • dict - Słownik zawierający średnie wyniki dla czasu rozwiązania (t), długości rozwiązania (lmd) i liczby rozwiniętych węzłów (nodes).

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
)

Ocenia wydajność modelu w kontekście wydajności czasowej.

Ta funkcja ocenia wydajność modelu, rozwiązując zestaw pomieszanych stanów przy użyciu różnych szerokości wiązki. Następnie dopasowuje predyktor do modelowania zależności między długością rozwiązania a czasem i przewiduje długość rozwiązania dla t=1.

Argumenty:

  • solver - Solwer do oceny.
  • num_samples int - Liczba próbek do użycia w ocenie.
  • t_standard float - Standardowy czas.
  • beam_width_space array - Szerokości wiązki do użycia w ocenie.
  • verbose bool - Czy wyświetlać pasek postępu.

Zwraca:

  • float - Przewidywana długość rozwiązania dla t=1.