Skip to main content
IBM Quantum Platform

SynthesizeRZRotations

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

GitHub

ベース: TransformationPass

RZゲートをクリフォード+T分解に置き換える。

このパスでは、浮動小数点角を用いたすべての単一量子ビットRZ回転ゲートを、同等のClifford+Tシーケンスに置き換えます。

内部的には、このパスは、角度を pi/2: で割った余りを用いることで、任意のθに対するRZ(θ)を合成する。したがって、RZ(θ) 用の回路は、RZ(θ mod pi/2 )用の回路に適切なクリフォードゲートを付加することで構築することができる。 重要な点として、このパスでは合成結果をキャッシュし、互いに所定の許容誤差内にある角度に対してそれらを再利用します。

例:

from qiskit.circuit import QuantumCircuit
from qiskit.transpiler.passes import SynthesizeRZRotations
from qiskit.quantum_info import Operator
from numpy import pi

# The following quantum circuit consists of 5 Clifford gates
# and three single-qubit RZ rotations gates

qc = QuantumCircuit(4)
qc.cx(0, 1)
qc.rz(9*pi/4, 0)
qc.cz(0, 1)
qc.rz(3*pi/8, 1)
qc.h(1)
qc.s(2)
qc.rz(13*pi/2, 2)
qc.cz(2, 0)
qc.rz(5*pi/3, 3)

qct = SynthesizeRZRotations()(qc)

# The transformed circuit consists of Clifford, T and Tdg gates
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
# (with the default value of approximation_degree used by SynthesizeRZRotations)
assert Operator(qc) == Operator(qct)

と の synthesis_errorcache_error 方が指定された場合、これらはそれぞれ近似合成およびキャッシュのためのエラー許容範囲を指定します。 いずれかの値が指定されていない場合、許容される総誤差は から導出され approximation_degree、および synthesis_error に対する適切な値 cache_error が自動的に計算されます。

パラメーター

  • approximation_degree – 近似の全体的な程度を制御します。 デフォルトは. です 1 - 1e-10
  • synthesis_errorRZ(θ)RZ(\theta) の近似合成における許容最大誤差。
  • cache_errorθ\theta に近い角度に対して、キャッシュされた合成結果を再利用する際に許容される最大誤差。

属性

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

dag上で SynthesizeRZRotations パスを実行します。

パラメーター

dag (DAGCircuit)

戻りの型

DAG回路

update_status

update_status(state, run_state)

GitHub

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

パラメーター

  • state (PassManagerState) – 更新するマネージャーの状態を渡す。
  • run_state (RunState) – 現在のタスクの完了状況。

戻り値

パスマネージャーの状態を更新しました。

戻りの型

PassManagerState

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