_evaluator
Módulo para avaliar o desempenho de um solucionador.
Este módulo fornece funções para avaliar o desempenho de um solucionador em um conjunto de dados. Inclui funções para avaliar a eficiência da busca e o desempenho temporal de um solucionador.
NOTA: A funcionalidade neste módulo requer dependências opcionais. Para usá-las,
instale o AlphaCube com o extra 'eval': pip install 'alphacube[eval]'
get_dataset
def get_dataset(
filename="deepcubea-dataset--cube3.json",
cache_dir=os.path.expanduser("~/.cache/alphacube")
)
Obtém um conjunto de dados de um arquivo ou faz o download se ele não existir.
Argumentos:
filename
str - O nome do arquivo do conjunto de dados.
Retorna:
dict
- O conjunto de dados.
evaluate_search_efficiency
def evaluate_search_efficiency(
solver,
num_samples=1000,
beam_width=2**10 if device.type == "cpu" else 2**13,
verbose=False
)
Avalia a eficiência de busca do modelo. (Também disponível como solver.benchmark
)
Esta função resolve um conjunto de embaralhamentos e relata métricas de desempenho chave, fornecendo um panorama da eficiência do solucionador sob condições específicas.
Argumentos:
solver
- A instância do solucionador a ser avaliada.num_samples
int - O número de embaralhamentos a serem resolvidos para a avaliação.beam_width
int - A largura do feixe (beam width) a ser usada para a busca.verbose
bool - Se deve exibir uma barra de progresso.
Retorna:
dict
- Um dicionário contendo os resultados médios para o tempo de resolução (t
), comprimento da solução (lmd
) e nós expandidos (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
)
Avalia o desempenho do modelo em uma performance temporal downstream.
Esta função avalia o desempenho do modelo resolvendo um conjunto de embaralhamentos usando diferentes larguras de feixe. Em seguida, ajusta um preditor para modelar a relação entre o comprimento da solução e o tempo, e prevê o comprimento da solução em t=1.
Argumentos:
solver
- O solucionador a ser avaliado.num_samples
int - O número de amostras a serem usadas para a avaliação.t_standard
float - O tempo padrão.beam_width_space
array - As larguras de feixe a serem usadas para a avaliação.verbose
bool - Se deve exibir uma barra de progresso.
Retorna:
float
- O comprimento da solução previsto em t=1.