Skip to main content
IBM Quantum Platform

LieTrotter

class qiskit.synthesis.LieTrotter(reps=1, insert_barriers=False, cx_structure='chain', atomic_evolution=None, wrap=False, preserve_order=True, *, atomic_evolution_sparse_observable=False)

GitHub

ベース: SuzukiTrotter

リー・トロッター積の公式。

Lie-Trotterの公式は、2つの非共約作用素の指数関数を、2次の誤差までの指数関数の積で近似します:

eA+BeAeB.e^{A + B} \approx e^{A}e^{B}.

この実装では、演算子はパウリ演算子の和項として提供される。 例えば、次のように近似する

eit(XI+ZZ)=eitXIeitZZ+O(t2).e^{-it(XI + ZZ)} = e^{-it XI}e^{-it ZZ} + \mathcal{O}(t^2).

参考文献

[1] : D. ベリー、G.アホカス、R.クリーブ、B. Sanders, "Efficient quantum algorithms for simulating sparse Hamiltonians" (2006). arXiv:quant-ph/0508139[ 2] : N. 波多野とM. 鈴木, "高次の指数積公式の発見" (2005). arXiv:math-ph/0506007

パラメーター

  • reps (int) – 時間ステップ数。
  • insert_barriers (bool) – 原子進化の間にバリアを挿入するかどうか。
  • cx_structure (str) – パウリ進化のためにCXゲートをどのように配置するかは、 "chain"、隣同士の接続を使うか、 "fountain"、すべての量子ビットを1つに接続するかである。 これは atomic_evolution is None のときのみ有効です。
  • atomic_evolution (Callable[[QuantumCircuit, qiskit.quantum_info.Pauli |SparsePauliOp, float], None] | None) – の進化を適用する関数。 Pauliまたは SparsePauliOp の展開を回路に適用する関数。 この関数は3つの引数を取る:進化を加える回路、進化させるパウリ演算子、進化時間。 デフォルトでは、1つのパウリ進化は、 CX ゲートの連鎖と、 RZ ゲートの1つに分解される。
  • wrap (bool) – アトミック進化をカスタムゲートオブジェクトにラップするかどうか。 これは、 atomic_evolution is None
  • preserve_order (bool) – False の場合、演算子の項を並べ替えることで、より浅い進化回路が得られる可能性がある。 単項で演算子を合成する場合は関係ない。
  • atomic_evolution_sparse_observable (bool) – カスタム atomic_evolutionSparseObservableへの変換を自動的に適用するには、この引数を False に設定する。 SparsePauliOp. この引数はQiskit 2.2 までサポートされている。 SparseObservableをサポートする必要があります。

属性

settings

オブジェクトを再構築するために使用できる、辞書内の設定を返します。

戻り値

この製品式の設定を含む辞書。

レイズ

NotImplementedError - カスタム・アトミック進化が設定されている場合、シリアライズできない。


方法

expand

expand(evolution)

GitHub

ハミルトニアンをスパースゲートのスズキ・トロッター列に展開する。

例えば、進化時間 t 、次数2式の1反復のハミルトニアン H = IX + ZZ は、 (pauli, indices, rz_rotation_angle) を含む3タプルのリストに分解される:

("X", [0], t), ("ZZ", [0, 1], 2t), ("X", [0], t)

回転角には2という係数が含まれていることに注意されたい。したがって、時間 tt におけるパウリ PP の進化は、 eitPe^{itP} となるが、これは次のように表される (P, indices, 2 * t)

N を繰り返す場合、このシーケンスは N 回繰り返され、係数は N で割られる。

パラメーター

evolution (PauliEvolutionGate) – 拡大する進化の門。

戻り値

トロッター展開のパウリ・ネットワーク。

戻りの型

list[ tuple[ str, list[ int ], ParameterValueType ]]

synthesize

synthesize(evolution)

GitHub

を合成する。 PauliEvolutionGate.

パラメーター

evolution (PauliEvolutionGate) – 合成する進化の門。

戻り値

進化を実装した回路。

戻りの型

QuantumCircuit

このページは役に立ちましたか?
バグや誤字の報告、またはコンテンツの要求はGitHubで行ってください。