メインコンテンツまでスキップ

_evaluator

ソルバーのパフォーマンスを評価するためのモジュールです。

このモジュールは、データセット上でソルバーのパフォーマンスを評価する関数を提供します。 ソルバーの探索効率と時間的パフォーマンスを評価する関数が含まれています。

注意:このモジュールの機能は、オプションの依存関係を必要とします。これらを使用するには、 'eval' extraを指定して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での予測される解の長さです。