Sampling Strategy¶
パウリ演算子のサンプリング数を削減することで計算実行時間を短縮させたり、測定値の分散を小さくして収束を早めるための手法がいくつか開発されています。
サンプリングにより測定する場合(QuantumDevice
のtype
がEXACT_SIMULATOR以外の場合)、
sampling_strategy
として指定することが可能です。
いずれも、パウリ演算子の各グループごとのサンプリング数を定めるための設定です(Observable
Grouping参照)。
Type¶
SamplingStrategy
の type
は以下の種類から選択可能です(入力が無い場合は CONSTANT
がデフォルト値として設定されます):
CONSTANT [Arr20]: 全てのグループにおいて
num_shots_per_term
で指定された回数測定行います。UNIFORM [Arr20]:
num_total_shots
で指定された回数を全てのグループに等しく割り当てて測定を行います。WEIGHTED [Arr20]:
num_total_shots
で指定された回数を、グループに属するパウリ演算子の係数の絶対値に比例して配分し測定を行います。WEIGHTED_RANDOM [Arr20]:
num_total_shots
で指定された回数を割り当てます多項分布に従って、すべてのグループにnum_total_shots
統計的重みがの係数である分布パウリ演算子。
Options¶
num_total_shots
: コスト関数に含まれるパウリ演算子全体に使用する測定回数を指定します。入力が無い場合は1E6
回がデフォルト値として設定されます。num_shots_per_term
: CONSTANT が指定された時に各グループの測定回数を指定します。入力が無い場合は1000
回がデフォルト値として設定されます。shot_unit
: UNIFORM、WEIGHTED が指定された時に測定回数の単位を指定します。例えば単位が100
と設定された場合、各グループの測定回数は 100 の倍数となります。入力が無い場合は100
がデフォルト値として設定されます。num_overlap_shots
:Solver
のtype
がVQDの場合に必要な、波動関数の重なりに対するペナルティー項のサンプリング評価に用いる測定回数を指定します。入力が無い場合は10000
回がデフォルト値として設定されます。seed
: 多項分布を生成するために使用されるランダムシード WEIGHTED_RANDOM サンプリング戦略の下での分布。
参考文献:¶
[Arr20] “Operator Sampling for Shot-frugal Optimization in Variational Algorithms”, A. Arrasmith, L. Cincio, R. D. Somma, and P. J. Coles, arXiv:2004.06252
入力例¶
"sampling_strategy": {
"type": "WEIGHTED",
"num_total_shots": 1000000,
"shot_unit": 1
}