_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:
filenamestr - 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_samplesint - Liczba pomieszanych stanów do rozwiązania w ramach oceny.beam_widthint - Szerokość wiązki (beam width) używana podczas wyszukiwania.verbosebool - 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_samplesint - Liczba próbek do użycia w ocenie.t_standardfloat - Standardowy czas.beam_width_spacearray - Szerokości wiązki do użycia w ocenie.verbosebool - Czy wyświetlać pasek postępu.
Zwraca:
float- Przewidywana długość rozwiązania dla t=1.