Skip to main content
IBM Quantum Platform

qiskit.circuit.library.unitary_overlap

qiskit.circuit.library.unitary_overlap(unitary1, unitary2, prefix1='p1', prefix2='p2', insert_barrier=False)

GitHub

2つのユニタリーの重なりを返す回路 U2U1U_2^{\dag} U_1

入力量子回路は反転可能でなければならないため、ユニタリー演算を表現しなければならない。 入力がパラメータを持つ場合、出力回路ではパラメータは ParameterVectorに置き換えられる。出力回路では、 “p1” (回路 unitary1 )と “p2” (回路 unitary_2 )という名前になる。

この回路は通常、忠実度を計算する際に採用される:

0U2U102\left|\langle 0| U_2^{\dag} U_1|0\rangle\right|^{2}

全ゼロビット列に含まれる確率を計算することによって、あるいは等価的に、プロジェクター 00|0\rangle\langle 0| の期待値を計算することによって。

基準回路:

import numpy as np
from qiskit.circuit.library import efficient_su2, unitary_overlap

# get two circuit to prepare states of which we compute the overlap
circuit = efficient_su2(2, reps=1)
unitary1 = circuit.assign_parameters(np.random.random(circuit.num_parameters))
unitary2 = circuit.assign_parameters(np.random.random(circuit.num_parameters))

# create the overlap circuit
overlap = unitary_overlap(unitary1, unitary2)
overlap.draw('mpl')
前のコードで出力された回路図。

パラメーター

  • unitary1 (QuantumCircuit) – ケットベクトルに作用するユニタリー。
  • unitary2 (QuantumCircuit) – 逆数がブラ・ベクトルに作用するユニタリー。
  • prefix1 (str) – パラメータ化されている場合、 unitary1 に関連付けられたパラメータ・ベクタの名前。 デフォルトは "p1"
  • prefix2 (str) – パラメータ化されている場合、 unitary2 に関連付けられたパラメータ・ベクタの名前。 デフォルトは "p2"
  • insert_barrier (bool) – 2つのユニタリーの間にバリアを挿入するかどうか。

レイズ

  • CircuitError - unitary1unitary2 の量子ビット数が一致しない。
  • CircuitError - 入力には、測定値および/またはリセットが含まれる。

戻りの型

QuantumCircuit

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