Skip to main content
IBM Quantum Platform

PauliTwoDesign

class qiskit.circuit.library.PauliTwoDesign(num_qubits=None, reps=3, seed=None, insert_barriers=False, name='PauliTwoDesign')

GitHub

ベース: TwoLocal

パウリ2デザイン解析。

このクラスは、変分アルゴリズムにおける不毛なプラトーに関する[研究] 2など、量子機械学習の文献で頻繁に研究[されている] 2-デザイン回路1の特定の形式を実装している。

この回路は、回転層とエンタングルメント層が交互に配置されており、最初の層には H=RY(π/4)\sqrt{H} = RY(\pi/4) ゲートが配置されている。 回転層には、単一量子ビットのパウリ回転が含まれており、その回転軸は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 PauliTwoDesign
circuit = PauliTwoDesign(4, reps=2, seed=5, insert_barriers=True)
circuit.draw('mpl')
先のコードで出力された回路図。
関連資料

この pauli_two_design() 関数は、機能的には同じ回路をより高速に構築する。

参考文献

[1] : 中田ら、 ランダムなX-およびZ-対角ユニタリーからのユニタリー2デザイン。

arXiv:1502.07514

[2] : McClean et al、 量子ニューラルネットワークの学習風景における不毛のプラトー。

arXiv:1803.11173

バージョンから非推奨 2.1

クラス qiskit.circuit.library.n_local.pauli_two_design.PauliTwoDesign は Qiskit 2.1 で非推奨となりました。 Qiskit 3.0 で削除されます。 代わりに関数 qiskit.circuit.library.pauli_two_design。

パラメーター

  • num_qubits (int | None) – パウリ2デザイン回路の量子ビット数。
  • reps (int) – 回転層とエンタングルメント層からなるブロックが繰り返される頻度を指定する。
  • seed (int | None) – パウリ回転の軸をランダムに選ぶための種。
  • insert_barriers (bool) – True の場合、各層の間にバリアが挿入される。 False の場合、バリアは挿入されない。 デフォルトは False
  • name (str) – 生成される回路に付ける名前。

属性

num_parameters_settable

設定可能なパラメータの数を返す。

戻り値

異なる可能性のあるパラメータの数。

name

タイプ: str

人間が読める回路名。

from qiskit import QuantumCircuit

qc = QuantumCircuit(2, 2, name="my_circuit")
print(qc.name)
my_circuit
このページは役に立ちましたか?
バグや誤字の報告、またはコンテンツの要求はGitHubで行ってください。