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