UnitaryOverlap
class qiskit.circuit.library.UnitaryOverlap(unitary1, unitary2, prefix1='p1', prefix2='p2', insert_barrier=False)
ベース: QuantumCircuit
2つのユニタリーの重なりを返す回路 。
入力量子回路は反転可能でなければならないため、ユニタリー演算を表現しなければならない。 入力がパラメータを持つ場合、出力回路ではパラメータは ParameterVectorに置き換えられる。出力回路では、 “p1” (回路 unitary1 )と “p2” (回路 unitary_2 )という名前になる。
この回路は通常、忠実度を計算する際に採用される:
全ゼロビット列に含まれる確率を計算することによって、あるいは等価的に、プロジェクター の期待値を計算することによって。
例:
import numpy as np
from qiskit.circuit.library import EfficientSU2, UnitaryOverlap
from qiskit.primitives import Sampler
# get two circuit to prepare states of which we compute the overlap
circuit = EfficientSU2(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 = UnitaryOverlap(unitary1, unitary2)
# sample from the overlap
sampler = Sampler(options={"shots": 100})
result = sampler.run(overlap).result()
# the fidelity is the probability to measure 0
fidelity = result.quasi_dists[0].get(0, 0)バージョンから非推奨 2.1
クラス qiskit.circuit.library.overlap.UnitaryOverlap は Qiskit 2.1 で非推奨となりました。 Qiskit 3.0 で削除されます。 代わりに qiskit.circuit.library.unitary_overlap。
パラメーター
- unitary1 (QuantumCircuit) – ケットベクトルに作用するユニタリー。
- unitary2 (QuantumCircuit) – 逆数がブラ・ベクトルに作用するユニタリー。
- prefix1 (str) – パラメータ化されている場合、
unitary1に関連付けられたパラメータ・ベクタの名前。 デフォルトは"p1"。 - prefix2 (str) – パラメータ化されている場合、
unitary2に関連付けられたパラメータ・ベクタの名前。 デフォルトは"p2"。 - insert_barrier (bool) – 2つのユニタリーの間にバリアを挿入するかどうか。
レイズ
- CircuitError -
unitary1とunitary2の量子ビット数が一致しない。 - CircuitError - 入力には、測定値および/またはリセットが含まれる。
属性
name
タイプ: str
人間が読める回路名。
例
from qiskit import QuantumCircuit
qc = QuantumCircuit(2, 2, name="my_circuit")
print(qc.name)my_circuitこのページは役に立ちましたか?
バグや誤字の報告、またはコンテンツの要求はGitHubで行ってください。