Skip to main content
IBM Quantum Platform

SubstitutePi4Rotations

class qiskit.transpiler.passes.SubstitutePi4Rotations(*args, **kwargs)

GitHub

ベース: TransformationPass

角度が π/4\pi/4 の整数倍である回転ゲートを、クリフォードゲート、 TGate および TdgGate ゲートの離散集合に変換する。

単一量子ビットの回転ゲート(RXGate, RYGate, RZGate, PhaseGate)および2量子ビットの回転ゲート(RXXGate, RYYGate, RZZGate, RZXGate)について、角度が π/4\pi/4 の倍数である場合、その分解には単一の TGate または TdgGate ゲートに加え、いくつかのクリフォードゲートが必要となる。 2量子ビットの制御回転ゲート(CPhaseGate, CRXGate, CRYGate, CRZGate)について、角度が π/2\pi/2 の倍数である場合、その分解には CPhaseGate 、の場合には3つの TGate または TdgGate ゲートが必要であり、それ以外の場合は2つが必要となるほか、いくつかのクリフォードゲートも必要となる。 なお、 π/4\pi/4 (制御回転の場合は π/2\pi/2 )の倍数、あるいは同等の π/2\pi/2 (制御回転の場合は π\pi )の整数倍であっても、クリフォードゲートのみを用いて記述できることに注意されたい。

例:

from qiskit.circuit import QuantumCircuit
from qiskit.transpiler.passes import SubstitutePi4Rotations
from qiskit.quantum_info import Operator

# The following quantum circuit consists of 5 Clifford gates,
# four rotation gates whose angles are integer multiples of pi/4,
# and one controlled rotation gate whose angle is an integer multiple of pi/2

qc = QuantumCircuit(3)
qc.cx(0, 1)
qc.rz(pi/4, 0)
qc.cz(0, 1)
qc.rx(3*pi/4, 1)
qc.h(1)
qc.s(2)
qc.ry(2*pi/4, 2)
qc.cz(2, 0)
qc.rzz(pi/4, 0, 2)
qc.cry(3*pi/2, 2, 1)

# The transformed circuit consists of Clifford, T and Tdg gates
qct = SubstitutePi4Rotations()(qc)
clifford_t_names = get_clifford_gate_names() + ["t"] + ["tdg"]
assert(set(qct.count_ops().keys()).issubset(set(clifford_t_names)))

# The circuits before and after the transformation are equivalent
assert Operator(qc) == Operator(qct)

パラメーター

近似精度 – 許容差計算に使用される。 これは平均ゲート忠実度の閾値を与える。


属性

is_analysis_pass

パスが解析パスかどうかを確認する。

パスが AnalysisPass, である場合、そのパスはDAGを解析し、その解析結果をプロパティセットに書き込むことができることを意味します。 この種のパスでは、DAGへの変更は許可されません。

is_transformation_pass

パスが変換パスであるかどうかを確認する。

パスが TransformationPass, の場合、そのパスはDAGを操作できますが、プロパティセットを変更することはできません(ただし読み取りは可能です)。


方法

execute

execute(passmanager_ir, state, callback=None)

GitHub

入力Qiskit IRに対して最適化タスクを実行する。

パラメーター

  • passmanager_ir (Any) – Qiskit IR を最適化します。
  • state (PassManagerState) – パスマネージャー自身によるワークフロー実行に関連付けられた状態。
  • callback (Callable | None) – 最適化タスクの実行ごとに呼び出されるコールバック関数。

戻り値

最適化されたQiskit IRとワークフローの現状。

戻りの型

タプル [ Any, PassManagerState ]

name

name()

GitHub

峠の名前。

戻りの型

str

run

run(dag)

GitHub

置換 Pi4-Rotations 最適化パスを実行する dag

パラメーター

dag (DAGCircuit) – 入力DAG

戻り値

出力DAG。

戻りの型

DAG回路

update_status

update_status(state, run_state)

GitHub

ワークフローのステータスを更新する。

パラメーター

  • state (PassManagerState) – 更新するパスワードマネージャーの状態を送信します。
  • run_state (RunState) – 現在のタスクの完了状況。

戻り値

更新されたパスワードマネージャーの状態。

戻りの型

PassManagerState

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