Sampling Strategy#

パウリ演算子のサンプリング数を削減することで計算実行時間を短縮させたり、測定値の分散を小さくして収束を早めるための手法がいくつか開発されています。 サンプリングにより測定する場合(QuantumDevicetypeEXACT_SIMULATOR以外の場合)、 sampling_strategy として指定することが可能です。 いずれも、パウリ演算子の各グループごとのサンプリング数を定めるための設定です(Observable Grouping参照)。

Type#

SamplingStrategytype は以下の種類から選択可能です(入力が無い場合は 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: UNIFORMWEIGHTED が指定された時に測定回数の単位を指定します。例えば単位が 100 と設定された場合、各グループの測定回数は 100 の倍数となります。入力が無い場合は 100 がデフォルト値として設定されます。

  • num_overlap_shots: SolvertypeVQDの場合に必要な、波動関数の重なりに対するペナルティー項のサンプリング評価に用いる測定回数を指定します。入力が無い場合は 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
}