Skip to main content
IBM Quantum Platform

XX分解装置

class qiskit.synthesis.XXDecomposer(basis_fidelity=1.0, euler_basis='U', embodiments=None, backup_optimizer=None)

GitHub

ベース: object

2量子ビットユニタリー演算を、タイプ XX の2量子ビット基底ゲート(すなわち、 α\alpha が変化する場合もあるが、局所的にはそれぞれ CAN(α,0,0)CAN(\alpha, 0, 0) と同値であるもの)に最適に分解するクラス。

パラメーター

  • basis_fidelity (dict |float) – それぞれの長所と忠実度 (1) XX の角度値をその角度における忠実度にマッピングする辞書、または (2) {pi: f, pi/2: f/2, pi/3: f/3} と解釈される単一の浮動小数点数 f のいずれか。
  • euler_basis (str) – に提供された基本文字列。 OneQubitEulerDecomposer1Q を指定する。 デフォルトは "U"
  • embodiments (dict[float, QuantumCircuit] | None) – 相互作用の強さαをゲート CAN(α,0,0)CAN(\alpha, 0, 0) を具現化するネイティブ回路にマッピングした辞書。強さは、 π/2\pi/2 が完全な CXGate.
  • backup_optimizer (Callable[..., QuantumCircuit] | None) – が効率的な分解を持たない場合、この callable に合成を委ねる。 XXDecomposer に合成を委ねる。 XX(π/2)XX(\pi/2) の2つまたは3つのアプリケーションを含む特殊な場合に有用である。この場合、標準的な合成手法では、 1Q ゲート数が少なくなる。

embodiments が渡されない場合、またはエントリーが見つからない場合は、メソッド _default_embodiment を使って必要に応じて入力される。

__call__

__call__(unitary, basis_fidelity=None, approximate=True, use_dag=False)

GitHub

embodiments として初期化時に提供された回路テンプレートを使用して、特殊なユニタリー演算 unitary を(おそらく近似的に)モデル化する回路を作成する。 このルーチンは、厳密合成を行う場合も含めて、最適な回路テンプレートを選択するために basis_fidelity を使用する。 basis_fidelity の内容は、相互作用の強さ( CX=RZX(π/2)CX = RZX(\pi/2)π/2\pi/2 に対応するようにスケーリングされる)を回路の忠実度にマッピングする辞書である。

パラメーター

  • unitary (Operator or ndarray) – 4×44 \times 4 を合成する。
  • basis_fidelity (dict orfloat) – ベーシス・ゲートの忠実性。 (1) XX の角度値をその角度における忠実度にマッピングする辞書、または (2) {pi: f, pi/2: f/2, pi/3: f/3} と解釈される単一の浮動小数点数 f のいずれか。 与えられた場合、initで与えられたbasis_fidelityを上書きする。
  • approximate (bool) – 基底の忠実度が 1.0 より小さい場合に近似される。
  • use_dag (bool) – trueの場合 DAGCircuitQuantumCircuit が返されます。

戻り値

合成回路。

戻りの型

QuantumCircuit


方法

num_basis_gates

num_basis_gates(unitary)

GitHub

再合成時に放出されるゲート数をカウントする。

この方法は ConsolidateBlocks.

パラメーター

unitary (Operator |ndarray)

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