跳到主要内容

_evaluator

用于评估求解器性能的模块。

该模块提供了在数据集上评估求解器性能的函数。 它包含用于评估求解器搜索效率和时间性能的函数。

注意:此模块中的功能需要可选依赖项。要使用它们, 请安装带有 'eval' 附加功能的 AlphaCube:pip install 'alphacube[eval]'

get_dataset

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

从文件获取数据集,如果文件不存在则下载。

参数

  • filename str - 数据集的文件名。

返回值

  • dict - 数据集。

evaluate_search_efficiency

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

评估模型的搜索效率。(也可用作 solver.benchmark

此函数求解一组打乱公式并报告关键性能指标, 从而提供求解器在特定条件下效率的快照。

参数

  • solver - 要评估的求解器实例。
  • num_samples int - 用于评估的打乱公式数量。
  • beam_width int - 用于搜索的集束宽度。
  • verbose bool - 是否显示进度条。

返回值

  • dict - 一个包含求解时间(t)、 解法长度(lmd)和扩展节点数(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
)

评估模型在下游时间性能上的表现。

此函数通过使用不同的集束宽度求解一组打乱公式来评估模型的性能。 然后,它拟合一个预测器来建模解法长度和时间之间的关系,并预测在 t=1 时的解法长度。

参数

  • solver - 要评估的求解器。
  • num_samples int - 用于评估的样本数量。
  • t_standard float - 标准时间。
  • beam_width_space array - 用于评估的集束宽度。
  • verbose bool - 是否显示进度条。

返回值

  • float - 在 t=1 时的预测解法长度。