TwoQubitBasisDecomposer
class qiskit.synthesis.TwoQubitBasisDecomposer(gate, basis_fidelity=1.0, euler_basis='U', pulse_optimize=None)
ベース: object
2qubitユニタリーを2qubit基底ゲートの最小使用回数に分解するクラス。
パラメーター
- gate (Gate) – KAK分解で使用される2量子ビットゲート。
- basis_fidelity (float) – KAKゲートのアプリケーションで想定される忠実度。 デフォルトは
1.0です。 - euler_basis (str) – に提供される基本文字列。
OneQubitEulerDecomposer1Q に提供される。 有効なオプションは ['ZYZ'、'ZXZ'、'XYX'、'U'、'U3'、'U1X'、'PSX'、'ZSX'、'RR']。 - pulse_optimize (bool | None) –
Trueの場合、エンタングルゲート間のローカル・ユニタリーを最小化する分解を試みる。 最適な分解が行われない場合は例外が発生する。 現在のところ [{CX, SX, RZ}] が知られている。 もしFalse、最適化を試みてはならない。Noneの場合、最適化を試みる。
__call__
__call__(unitary, basis_fidelity=None, approximate=True, use_dag=False, *, _num_basis_uses=None)
basis_fidelity2量子ビット unitary を固定基底に分解し、 、各基底の適用が有限であることを前提に、最良の近似を用いる。
パラメーター
- unitary (Operator or ndarray) – を合成する。
- basis_fidelity (float or None) – KAKゲートのアプリケーションで想定される忠実度。 与えられた場合、init時に与えられた
basis_fidelityを上書きする。 - approximate (bool) – 基底の忠実度が 1.0 より小さい場合に近似される。
- use_dag (bool) – trueの場合
DAGCircuitQuantumCircuitが返されます。 - _num_basis_uses (int) – [0, 3] の数値を渡すことで、特定の近似を強制する。
戻り値
合成された量子回路。
**リターンタイプ
レイズ
QiskitError - もし pulse_optimize がTrueなら、どうすればいいのかわからない。
方法
decomp0
decomp1
decomp2_supercontrolled
decomp2_supercontrolled(target)
ターゲットの 、 ベースゲートを使用して分解する。
超制御基底 、すべてのbについて、結果 はトレースを持つ
これは、CNOTクラス またはDCNOTクラス と任意のターゲットの基底に対する最適な近似である。 (つまり、 を使用する任意のターゲットに対して厳密な分解が存在するが、この分解ではないかもしれない)。 これは超制御基底とターゲット に対する厳密な分解である。非超制御基底では保証なし。
decomp3_supercontrolled
decomp3_supercontrolled(target)
、ターゲットを分解する。 これは、超制御基底 、すべてのb、任意のターゲットに対する厳密な分解である。 非スーパー・コントロール・ベースの保証はない。