Optimize1qGates
class qiskit.transpiler.passes.Optimize1qGates(*args, **kwargs)
ベース: TransformationPass
u1, u2, u3 ゲートを1つのゲートに組み合わせることで、1量子ビットのゲートの連鎖を最適化する。
Optimize1qGates イニシャライザー。
パラメーター
- basis (list[str]) – 考慮する基底ゲート、例: [‘u3’、'cx']。 このパスの効果では、基底は、基底パラメータと集合 {‘u1’,’u2’,’u3’, ‘u’, ‘p’} の間の集合の交点である。
- eps (float) – EPSの照合
- target (Target) – バックエンドを表す
Targetbasisとtargetの両方が指定されている場合は、この引数が優先され、basisは無視されます。
属性
is_analysis_pass
パスが分析パスかどうかをチェックする。
パスが AnalysisPass,、パスがDAGを分析し、その分析結果をプロパティセットに書き込むことができることを意味する。 この種のパスでは、DAGの変更は許されない。
is_transformation_pass
パスが変形パスかどうかをチェックする。
パスが TransformationPass, の場合、そのパスはDAGを操作することはできるが、プロパティセットを変更することはできない(ただし、読み取ることはできる)ことを意味する。
方法
compose_u3
static compose_u3(theta1, phi1, lambda1, theta2, phi2, lambda2)
積のトリプル theta, phi, lambda を返す。
u3(theta ファイ、ラムダ)
= Γ= u3(theta1, phi1, lambda1).u3(theta2, phi2, lambda2 ) = Rz( phi1 ).Ry( theta1 ).Rz( lambda1+phi2 ).Ry( theta2 ).Rz( lambda2 ) = Rz( phi1 ).Rz(phi').Ry(lambda').Rz( lambda2 ) = u3(theta’, phi1 + phi', lambda2 + lambda')
テータ、ファイ、ラムダを返す。
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)
ダグに Optimize1qGates。
パラメーター
dag (DAGCircuit) – 最適化されるDAG。
戻り値
最適化されたDAG
戻りの型
レイズ
TranspilerError - YZY と ZYZ の角度が同じ回転行列を与えない場合。
update_status
update_status(state, run_state)
ワークフローのステータスを更新する。
パラメーター
- state (PassManagerState) – 更新するマネージャーの状態を渡す。
- run_state (RunState) – 現在のタスクの完了状況。
戻り値
パスマネージャーの状態を更新。
戻りの型
yzy_to_zyz
static yzy_to_zyz(xi, theta1, theta2, eps=1e-09)
Y.Z.Y シングル量子ビットゲートを Z.Y.Z ゲートとして表現する。
方程式を解く
Ry( theta1 ).Rz(xi).Ry( theta2 ) = Rz(phi).Ry(ta).Rz(lambda)
シータ、ファイ、ラムダの場合。
解のθ、φ、λを返す。