Aller au contenu principal

_evaluator

Module pour évaluer la performance d'un solveur.

Ce module fournit des fonctions pour évaluer la performance d'un solveur sur un jeu de données. Il inclut des fonctions pour évaluer l'efficacité de la recherche et la performance temporelle d'un solveur.

NOTE : La fonctionnalité de ce module nécessite des dépendances optionnelles. Pour les utiliser, veuillez installer AlphaCube avec l'extra 'eval' : pip install 'alphacube[eval]'

get_dataset

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

Obtient un jeu de données à partir d'un fichier ou le télécharge s'il n'existe pas.

Arguments:

  • filename str - Le nom de fichier du jeu de données.

Retours:

  • dict - Le jeu de données.

evaluate_search_efficiency

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

Évalue l'efficacité de recherche du modèle. (Aussi disponible sous solver.benchmark)

Cette fonction résout un ensemble de mélanges et rapporte des métriques de performance clés, fournissant un aperçu de l'efficacité du solveur dans des conditions spécifiques.

Arguments:

  • solver - L'instance du solveur à évaluer.
  • num_samples int - Le nombre de mélanges à résoudre pour l'évaluation.
  • beam_width int - La largeur du faisceau (beam width) à utiliser pour la recherche.
  • verbose bool - Indique s'il faut afficher une barre de progression.

Retours:

  • dict - Un dictionnaire contenant les résultats moyens pour le temps de résolution (t), la longueur de la solution (lmd), et les nœuds explorés (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
)

Évalue la performance du modèle sur une performance temporelle en aval.

Cette fonction évalue la performance du modèle en résolvant un ensemble de mélanges avec différentes largeurs de faisceau. Elle ajuste ensuite un prédicteur pour modéliser la relation entre la longueur de la solution et le temps, et prédit la longueur de la solution à t=1.

Arguments:

  • solver - Le solveur à évaluer.
  • num_samples int - Le nombre d'échantillons à utiliser pour l'évaluation.
  • t_standard float - Le temps standard.
  • beam_width_space array - Les largeurs de faisceau à utiliser pour l'évaluation.
  • verbose bool - Indique s'il faut afficher une barre de progression.

Retours:

  • float - La longueur de solution prédite à t=1.