LitinskiTransformation
class qiskit.transpiler.passes.LitinskiTransformation(*args, **kwargs)
ベース: TransformationPass
回路にリチンスキー変換を適用する。
この変換は、クリフォード演算、単一量子ビットの 回転ゲート( および を含む)、および標準的な 測定を含む回路に適用され、クリフォードゲートを回路の末尾に移動させます。 その過程で、 の回転をパウリ積の回転に変換し、 の測定をパウリ積の測定に変換する。
で返されるリストにあるすべてのクリフォードゲートをサポートする。 get_clifford_gate_names():
["id", "x", "y", "z", "h", "s", "sdg", "sx", "sxdg", "cx", "cz", "cy", "swap","iswap", "ecr", "dcx"]
でサポートされている回転のリストは以下の通りです:
["t", "tdg", "rz"]
例:
from qiskit import generate_preset_pass_manager
from qiskit.circuit import QuantumCircuit
from qiskit.transpiler.passes import LitinskiTransformation
litinski = LitinskiTransformation(fix_clifford=False, use_ppr=True)
rz_basis = ["rz", "h", "x", "cx"]
pm = generate_preset_pass_manager(basis_gates=rz_basis)
pm.optimization.append(litinski)
qc = QuantumCircuit(3, 1)
qc.h(0)
qc.rz(1.23, 0)
qc.cx(0, 1)
qc.t(1)
qc.cx(1, 2)
qc.measure(2, 0)
pbc = pm.run(qc)参照資料:
[1] リチンスキー。 表面コードのゲーム。 『Quantum』第3巻、128頁(2019年)
パラメーター
- fix_clifford – もし
False(デフォルト以外) の場合、返される回路には ゲートPauliEvolutionのみが含まれ、最後のクリフォードゲートは省略されます。 なお、この場合、元の回路と合成された回路の演算子は、一般的に同等ではないことに注意してください。 - insert_barrier – かつ
Trueの場合fix_clifford=True、回路と最終的なクリフォード演算子の間にバリアを挿入する。 この引数は、の場合には何の効果もありませんfix_clifford=False。 - use_ppr – 指定した場合
True、Pauli回転ゲートを表すためにPauliProductRotationGateを使用する。 パフォーマンスを向上させるため、Rustで完全に実装されたパスを使用することを推奨します。 またはFalseの場合None、 を使用してくださいPauliEvolutionGate。
属性
is_analysis_pass
パスが分析パスかどうかをチェックする。
パスが AnalysisPass,、パスがDAGを分析し、その分析結果をプロパティセットに書き込むことができることを意味する。 この種のパスでは、DAGの変更は許されない。
is_transformation_pass
パスが変身パスかどうかをチェックする。
パスが TransformationPass, の場合、そのパスはDAGを操作することはできるが、プロパティセットを変更することはできない(ただし、読み取ることはできる)ことを意味する。
方法
execute
execute(passmanager_ir, state, callback=None)
入力Qiskit IRに対して最適化タスクを実行する。
パラメーター
- passmanager_ir (Any) – Qiskit IRを最適化する。
- state (PassManagerState) – パスマネージャー自身によるワークフロー実行に関連する状態。
- callback (Callable | None) – 最適化タスクの実行ごとに呼び出されるコールバック関数。
戻り値
Qiskit IRとワークフローの状態を最適化。
戻りの型
タプル [ Any, PassManagerState ]
name
run
run(dag)
. dagに対して LitinskiTransformation パスを実行します。
パラメーター
dag (DAGCircuit) – 入力DAG。
戻り値
出力DAG。
レイズ
TranspilerError – 回路に、そのパスでサポートされていないゲートが含まれている場合。
戻りの型
update_status
update_status(state, run_state)
ワークフローのステータスを更新する。
パラメーター
- state (PassManagerState) – 更新するマネージャーの状態を渡す。
- run_state (RunState) – 現在のタスクの完了状況。
戻り値
パスマネージャーの状態を更新。
戻りの型