qiskit.circuit.library.pauli_two_design
qiskit.circuit.library.pauli_two_design(num_qubits, reps=3, seed=None, insert_barriers=False, parameter_prefix='θ', name='PauliTwoDesign')
Pauli 2-designのansatzを構築する。
このクラスは、例えば変分アルゴリズム [2における] Barren plateausの研究など、量子機械学習の文献で頻繁に研究されている2デザイン回路 [1の]特殊な形式を実装している。
この回路は、回転層とエンタングルメント層が交互に配置されており、最初の層には ゲートが配置されている。 回転層には、単一量子ビットのパウリ回転が含まれており、その回転軸はX、Y、Zのいずれかとなるよう一様ランダムに選択される。 エンタングルメント層は、ペアごとのCZゲートで構成されており、その総深さは2である。
例えば、回路は次のようになる:
┌─────────┐┌──────────┐ ░ ┌──────────┐ ░ ┌──────────┐
q_0: ┤ RY(π/4) ├┤ RZ(θ[0]) ├─■─────░─┤ RY(θ[4]) ├─■─────░──┤ RZ(θ[8]) ├
├─────────┤├──────────┤ │ ░ ├──────────┤ │ ░ ├──────────┤
q_1: ┤ RY(π/4) ├┤ RZ(θ[1]) ├─■──■──░─┤ RY(θ[5]) ├─■──■──░──┤ RX(θ[9]) ├
├─────────┤├──────────┤ │ ░ ├──────────┤ │ ░ ┌┴──────────┤
q_2: ┤ RY(π/4) ├┤ RX(θ[2]) ├─■──■──░─┤ RY(θ[6]) ├─■──■──░─┤ RX(θ[10]) ├
├─────────┤├──────────┤ │ ░ ├──────────┤ │ ░ ├───────────┤
q_3: ┤ RY(π/4) ├┤ RZ(θ[3]) ├─■─────░─┤ RX(θ[7]) ├─■─────░─┤ RY(θ[11]) ├
└─────────┘└──────────┘ ░ └──────────┘ ░ └───────────┘例:
from qiskit.circuit.library import pauli_two_design
circuit = pauli_two_design(4, reps=2, seed=5, insert_barriers=True)
circuit.draw("mpl")
パラメーター
- num_qubits (int) – パウリ2デザイン回路の量子ビット数。
- reps (int) – 回転層とエンタングルメント層からなるブロックが繰り返される頻度を指定する。
- seed (int | None) – パウリ回転の軸をランダムに選ぶための種。
- parameter_prefix (str) – 回転パラメータに用いる接頭辞。
- insert_barriers (bool) –
Trueの場合、各層の間にバリアが挿入される。Falseの場合、バリアは挿入されない。 デフォルトはFalse。 - name (str) – 回路名。
戻り値
パウリ2設計回路。
戻りの型
参照資料:
[1] 中田ら、 ランダムなX-およびZ-対角ユニタリーからのユニタリー2デザイン。 arXiv:1502.07514
[2] McClean et al、 量子ニューラルネットワークの学習風景における不毛のプラトー。 arXiv:1803.11173
このページは役に立ちましたか?
バグや誤字の報告、またはコンテンツの要求はGitHubで行ってください。