こんにちは、加藤です。
ベンチマーカーの設定ファイルについて項目を調査しました。
ベンチマーカー概要
どのアルゴリズムが最良かを判定するために使用します。
複数のSolver構成を比較し、最適な構成を選択することができます。
XMLファイルの基本的な項目
<xstreamAnnotatedClass>:
XStreamProblemIOを使用する場合、この項目にクラスを記述。
指定するクラスには@XStreamAliasアノテーションを指定すること。
<problemIOClass>:
CustomProblemIOを使用する場合、この項目にクラスを記述。
<solverBenchmark>:
Solver構成を記述。
<inputSolutionFile>:
入力データのファイルを指定。
サイズの大きいXStream(XML)ファイルはOutOfMemoryErrorが起きやすいので注意する。
<inheritedSolverBenchmark>:
<solverBenchmark>の共通部分を記述。
<benchmarkDirectory>:
作業ディレクトリからの相対パスを記述。
指定したディレクトリにベンチマークレポートが出力される。
<warmUpSecondsSpend>:
ベンチマークを正確に行うため、CPUのウォームアップ時間を記述。
<writeOutputSolutionEnabled>:
各ベンチマーク毎の最適解をログに出力する。
デフォルトでは無効。
ベンチマークレポート関係
<benchmarkReportLocale>:
ベンチマークレポートの言語を設定。
<solverBenchmarkRankingType>:
Solver構成をランク付けする際の基準を設定。
①TOTAL_SCORE(デフォルト)
総合スコアの最大を比較するため、全体のコストを最小限に抑える。
②WORST_SCORE
最悪のシナリオを最小限に抑える。
③TOTAL_RANKING
総合ランキングを最大とする。
データセットによってスコア、サイズ、難易度が大きく異なる場合は、これの使用を推奨。
<solverBenchmarkRankingComparatorClass>:
ランク付けに使用するコンパレータクラスを指定。
<solverBenchmarkRankingWeightFactoryClass>:
ランク付けに使用するウェイトファクトリークラスを指定。
難易度の設定及びソートを行う。
<problemStatisticType>:
ベンチマークレポートのグラフ・CSVへの統計データを設定(複数指定可能)。
ベンチマークの結果に影響を与えることがあるため、デフォルトでは無効。
その他
<parallelBenchmarkCount>:
ベンチマークの並行処理を設定。
プロセッサが複数使用可能なとき、並行してベンチマークを実行可能。
所感
各設定の最適化を行うにあたって、便利だと思いました。
共通処理を一箇所にまとめている点や、勝手にグラフを出してくれる機能も良いです。
ベンチマークレポートの出力統計データにはいくつか種類があり、どれも有用らしく思えるので、詳細は後ほど調査しようと思います。