Ansatz#

このセクションでは求めたい量子状態を準備する Ansatz を設定します。

Type#

ansatz のタイプは以下の種類から選択可能です。

  • HARDWARE_EFFICIENT [Kan17][解説]

  • SYMMETRY_PRESERVING [Gar20]

  • UCCD [Per14, Sok20]

  • UCCSD [Per14, Sok20][解説]

  • FERMIONIC_ADAPTIVE [Gri19][解説]

注意:#

UCCD 及び UCCSD を使用して励起状態を求める場合、 spin_adapted_ref_statetrue にする必要があります。

参考文献:#

[Kan17] “Hardware-efficient variational quantum eigensolver for small molecules and quantum magnets”, A. Kandala et al., Nature 549, 242–246 (2017).

[Gar20] “Efficient symmetry-preserving state preparation circuits for the variational quantum eigensolver algorithm”, B. T. Gard, L. Zhu, G. S. Barron, N. J. Mayhall, S. E. Economou, and E. Barnes, npj Quantum Information volume 6, Article number: 10 (2020).

[Per14] “A variational eigenvalue solver on a photonic quantum processor” A. Peruzzo et al., Nature Communications 5, 4213 (2014).

[Sok20] “Quantum orbital-optimized unitary coupled cluster methods in the strongly correlated regime: Can quantum algorithms outperform their classical equivalents?”, I. O. Sokolov et al., The Journal of Chemical Physics volume 152, 124107 (2020).

[Gri19] “An adaptive variational algorithm for exact molecular simulations on a quantum computer”, H. R. Grimsley et al., Nature Communications 10, 3007 (2019).

共通オプション#

全ての Ansatz に共通して指定可能なオプションは以下の通りです。

  • reference_state: 以下の参照状態から選択が可能です:

    • RHF: Restricted Hartree–Fock 状態 (デフォルト)。

    • CIS: Configuration Interaction Singles 状態。周期境界条件と共には使用できません。(注:MCVQEの場合はCIS固定となります)

  • spin_adapted_ref_state: reference_stateRHF が選択され、target_moleculemultiplicity および sz_number を指定した場合に、それらの固有状態を参照状態として生成するか指定します (デフォルト値は false)。

  • spin_state_list: spin_adapted_ref_statetrue のとき、参照状態ごとに multiplicitysz をリストで指定可能です。このオプションで multiplicitysz が与えられていない場合は target_molecule で指定された値が用いられます。

  • initial_parameter: Ansatz の初期パラメター。VQD の場合は各状態に対応する初期パラメターを多重リストで指定可能。

  • use_random_initial_guess: Ansatz の初期パラメターにランダムな値を用います (デフォルト値は true)。

  • randomness_type: use_random_initial_guesstrueのとき、用いる乱数の確率分布を以下の選択肢から指定可能:

    • UNIFORM: 連続一様分布。(デフォルト)

    • GAUSSIAN: 正規 (ガウス) 分布。initial_parameterが与えられた場合、それを中心とする分布を作ります。

  • randomness_variance: randomness_typegaussian の場合の正規分布した乱数の分散

  • init_param_random_seed: use_random_initial_guesstrueのとき、用いる乱数のシードを指定します (デフォルト値は1)。

UCCD, UCCSDのオプション#

Ansatz が

  • UCCD

  • UCCSD

の際に必要なオプション:

  • trotter_steps: Trotter-Suzuki 展開 (\(e^{\hat{A} + \hat{B}} \approx [e^{\hat{A}/n} e^{\hat{B}/n}]^n\)) の次数 \(n\)

Ansatz が UCCSD の際に指定可能なオプション:

  • is_spin_restricted_uccsd: true を指定すると、UCCSD ansatz が全スピン (\(S^2\)) を保存するように励起演算子を制限します(デフォルトでfalse)。

入力例#

"ansatz": {
    "type": "UCCD",
    "reference_state": "RHF",
    "is_spin_restricted_uccsd": true,
    "trotter_steps": 1,
    "initial_parameter": [0],
    "use_random_initial_guess": false
}
"ansatz": {
    "type": "UCCSD",
    "reference_state": "RHF",
    "spin_adapted_ref_state": true,
    "spin_state_list": [
        {
            "state": 0,
            "multiplicity": 1,
            "sz": 0
        },
        {
            "state": 1,
            "multiplicity": 3,
            "sz": 0
        }
    ],
    "trotter_steps": 1,
    "use_random_initial_guess": true,
    "randomness_type": "GAUSSIAN",
    "randomness_variance": 0.1
}

Hardware Efficient, Symmetry Preservingのオプション#

Ansatz が

  • HARDWARE_EFFICIENT

  • SYMMETRY_PRESERVING

の際に指定が必要なオプション:

  • depth: 繰り返し回路にかかるゲート層の数

  • is_state_real: true を指定すると、状態ベクトルを実数に保ちます。(デフォルトでtrue

Ansatz が SYMMETRY_PRESERVING の際に指定が必要なオプション:

  • entanglement_pattern: エンタングリングゲートが配置されるパターンを指定するオプション。 LINEAR が指定された場合 n-量子ビット回路の (0, 1), (1, 2), …, (n-2, n-1) の量子ビットペアがそれぞれエンタングルされます。 CIRCULAR が指定された場合、これらに加えて (n-1, 0) の量子ビットもエンタングルされます。入力がない場合は LINEAR がデフォルト値として指定されます。

入力例#

"ansatz": {
    "type": "SYMMETRY_PRESERVING",
    "is_state_real": true,
    "reference_state": "RHF",
    "depth": 4,
    "use_random_initial_guess": true,
    "randomness_variance": 0.75,
    "randomness_type": "GAUSSIAN",
    "init_param_random_seed": 1,
    "entanglement_pattern": "LINEAR",
}

Fermionic Adaptiveのオプション#

Ansatz が FERMIONIC_ADAPTIVE の際に以下のオプションで終了条件を設定する必要があります。

  • adaptive_gtol: 次のイテレーションのAnsatz に追加する回転ゲート \(e^{i \theta \hat{G}}\) の勾配の閾値

初期パラメーターの設定方法#

ポテンシャルエネルギー曲面のスキャン、分子動力学計算など分子構造を変化させながら計算する場合、収束を早めるために前回収束したVQEのパラメーターをVQEの初期パラメーターとして設定することが可能です。 前回出力にあるvqe_resultopt_paramsを、入力にあるansatz内のinitial_parameterとすれば初期パラメーターとして設定できます。

target_moleculeに複数分子構造が設定され、かつuse_previous_resulttrue のとき、前回の計算で得られたopt_paramsを自動でinitial parametersにします。