Skip to main content
IBM Quantum Platform

回路ライブラリー

qiskit.circuit.library

回路ライブラリは、アルゴリズムの構成要素、ベンチマークツール、および古典的なシミュレーションでは困難であると推測される例として機能する量子回路の集合体である。 その目的は、明確に定義され、幅広い用途に適用可能で、さまざまなワークフロー間で再利用しやすい回路を提供することです。

ライブラリ内の回路の基準は以下の通りです:

明確に定義された

その回路は、論文や参考文献に裏付けられた、明確な構造や数学的な仕組みを備えている。

広く利用されており、関連性が高い

その回路は、明確に定義された課題に対して標準的あるいは最もよく知られた選択肢であるか、標準的な参照例または一般的なベースラインであるか、あるいは量子コンピューティングの重要なサブ分野において歴史的に基礎をなすものである。

スタンドアロン

この回路は自己完結型であるため、外部への新たな依存関係を生じさせることなく、効率的に生成することができます。

QuantumCircuit回路ライブラリ内の要素は、s または Instructions のいずれかであるため、簡単に調査したり、他の回路に組み込んだりすることができます。 これにより、より高い抽象度での迅速なプロトタイピングや回路設計が可能になります。

例:

from qiskit.circuit import QuantumCircuit
from qiskit.circuit.library import PauliEvolutionGate
from qiskit.quantum_info import SparsePauliOp

hamiltonian = SparsePauliOp(["ZZI", "IZZ", "IXI"], coeffs=[1, 1, -1])
gate = PauliEvolutionGate(hamiltonian)

circuit = QuantumCircuit(hamiltonian.num_qubits)
circuit.append(gate, circuit.qubits)

circuit.draw("mpl")
ハミルトン進化の鈴木-トロッター展開を実装した回路。

このライブラリーは様々なセクションで構成されている:

私たちはオペレーションをさまざまなカテゴリーに分類している:

標準ゲート

これらは基本的な量子ゲートであり、その一部は通常、量子コンピュータにおける基本ゲートセットを構成しています。 Gateこれらは、として表されるユニタリ演算である。 Measureまた、このライブラリは標準的なコンパイラ指令(a Barrier)や非単位演算(のようなもの)も提供しています。

抽象的な操作

このカテゴリには、数学的な操作によって定義されるが、異なる分解を用いて実装できる演算が含まれる。 例えば、マルチ XGate コントロール演算では、すべての制御量子ビットが 1|1\rangle の場合、対象の量子ビットが反転します。また、より低レベルのゲートを用いてこの演算を実装する具体的な回路は数多く存在します。 Instructionこのような抽象的な演算は、 または として Gate 表される。 これにより、各ブロックの具体的な実装を指定することなく回路を構築でき、最終的にはコンパイラ(あるいはユーザーであるあなた)が最適な分解方法を選択できるようになります。 例:

from qiskit.circuit.library import MCXGate
mcx = MCXGate(4)

from qiskit import QuantumCircuit
circuit = QuantumCircuit(5)
circuit.append(mcx, [0, 1, 4, 2, 3])
circuit.draw("mpl")
マルチ制御Xゲートを持つ回路。

抽象的な演算を行う回路では、回路コンテキストがトランスパイル時に考慮される。 例えば、アイドル量子ビットがあれば、それを使ってより浅い回路を得ることができる:

from qiskit import transpile

small_circuit = QuantumCircuit(5)  # here we have no idle qubits
small_circuit.append(mcx, [0, 1, 4, 2, 3])
small_tqc = transpile(small_circuit, basis_gates=["u", "cx"])
print("No aux:", small_tqc.count_ops())

large_circuit = QuantumCircuit(10)  # now we will have 5 idle qubits
large_circuit.append(mcx, [0, 1, 4, 2, 3])
large_tqc = transpile(large_circuit, basis_gates=["u", "cx"])
print("With aux:", large_tqc.count_ops())

どのプリントか:

No aux: OrderedDict([('u', 41), ('cx', 36)])
With aux: OrderedDict([('u', 24), ('cx', 18)])

構造オペレーション

これらのオペレーションは一意に分解される。 コンパイラーは、これらの関数についてより高いレベルで推論する必要がないため、これらの関数は QuantumCircuit オブジェクトを返す関数として実装されている。 例:

from qiskit.circuit.library import real_amplitudes

ansatz = real_amplitudes(5, entanglement="pairwise")
ansatz.draw("mpl")
実振幅アナザッツ回路。

標準ゲート

Gateこれらの演算は可逆なユニタリゲートであり、それらはすべて の部分クラスである。 control()power()to_matrix()その結果、これらすべてに、、というメソッドが存在しますが、これらは通常、ユニタリ演算にのみ適用可能です。

例:

from qiskit.circuit.library import XGate
gate = XGate()
print(gate.to_matrix())             # X gate
print(gate.power(1/2).to_matrix())  # √X gate -- see also the SXGate
print(gate.control(1).to_matrix())  # CX (controlled X) gate
[[0.+0.j 1.+0.j]
 [1.+0.j 0.+0.j]]
[[0.5+0.5j 0.5-0.5j]
 [0.5-0.5j 0.5+0.5j]]
[[1.+0.j 0.+0.j 0.+0.j 0.+0.j]
 [0.+0.j 0.+0.j 0.+0.j 1.+0.j]
 [0.+0.j 0.+0.j 1.+0.j 0.+0.j]
 [0.+0.j 1.+0.j 0.+0.j 0.+0.j]]

機能 get_standard_gate_name_mapping() を使用すると、使用可能な標準ゲートと操作を確認できます。

get_standard_gate_name_mapping

qiskit.circuit.library.get_standard_gate_name_mapping()

GitHub

標準ゲートと命令の名前を、その名前のオブジェクトにマッピングした辞書を返す。

from qiskit.circuit.library import get_standard_gate_name_mapping

gate_name_map = get_standard_gate_name_mapping()
cx_object = gate_name_map["cx"]

print(cx_object)
print(type(cx_object))
Instruction(name='cx', num_qubits=2, num_clbits=0, params=[])
_SingletonCXGate

1量子ビット標準ゲート

HGate(*args[, _force_mutable] )単一量子ビットハダマードゲート。
IGate(*args[, _force_mutable] )アイデンティティ・ゲート
PhaseGate(θ[, ラベル] )Z軸を中心とした1量子ビットの回転。
RGate(θ, φ[, ラベル] )cos(ϕ)x+sin(ϕ)y\cos(\phi)x + \sin(\phi)y 軸を中心に θ\theta 回転。
RXGate(θ[, ラベル] )X軸を中心とした1量子ビットの回転。
RYGate(θ[, ラベル] )Y軸を中心とした1量子ビットの回転。
RZGate(phi[, label] )Z軸を中心とした1量子ビットの回転。
SGate(*args[, _force_mutable] )単一量子ビットSゲート( Z\sqrt{Z} )。
SdgGate(*args[, _force_mutable] )単一量子ビットのS随伴ゲート( SS^\dagger )。
SXGate(*args[, _force_mutable] )単一量子ビットSqrt(X)ゲート( X\sqrt{X} )。
SXdgGate(*args[, _force_mutable] )逆1量子ビットSqrt(X)ゲート。
TGate(*args[, _force_mutable] )単一量子ビットTゲート( Z4\sqrt[4]{Z} )。
TdgGate(*args[, _force_mutable] )単一量子ビットのT随伴ゲート( TT^\dagger )。
UGate(θ, φ, λ[, label] )ZYZオイラー角による一般的な単一量子ビット回転。
U1Gate(θ[, ラベル] )Z軸を中心とした1量子ビットの回転。
U2Gate(phi, lam[, label] )X+Z軸を中心とした1量子ビットの回転。
U3Gate(θ, φ, λ[, label] )3つのオイラー角を持つ一般的な1量子ビット回転ゲート。
XGate(*args[, _force_mutable] )単一量子ビットPauli-Xゲート( σx\sigma_x )。
YGate(*args[, _force_mutable] )シングル量子ビットのポーリ-Yゲート( σy\sigma_y )。
ZGate(*args[, _force_mutable] )シングル量子ビットPauli-Zゲート( σz\sigma_z )。

2量子ビット標準ゲート

CHGate(*args[, _force_mutable] )制御ハダマードゲート。
CPhaseGate(θ[, ラベル, ctrl_state,...] )制御位相ゲート。
CRXGate(θ[, ラベル, ctrl_state, _base_label] )制御されたRXゲート。
CRYGate(θ[, ラベル, ctrl_state, _base_label] )制御されたRYゲート。
CRZGate(θ[, ラベル, ctrl_state, _base_label] )制御されたRZゲート。
CSGate(*args[, _force_mutable] )制御Sゲート。
CSdgGate(*args[, _force_mutable] )制御付き - SS^\dagger ゲート。
CSXGate(*args[, _force_mutable] )制御された√Xゲート。
CUGate(θ, φ, λ, γ[, ラベル,...] )Controlled-Uゲート(4パラメータ2量子ビットゲート)。
CU1Gate(θ[, ラベル, ctrl_state, _base_label] )Controlled-U1 ゲート
CU3Gate(θ, φ, λ[, label,...] )Controlled-U3 ゲート(3パラメータ2量子ビットゲート)。
CXGate(*args[, _force_mutable] )コントロールXゲート。
CYGate(*args[, _force_mutable] )制御Yゲート。
CZGate(*args[, _force_mutable] )制御されたZゲート。
DCXGate(*args[, _force_mutable] )ダブルCXゲート。
ECRGate(*args[, _force_mutable] )エコー・クロスレゾナンス・ゲート。
iSwapGate(*args[, _force_mutable] )iSWAP ゲート
RXXGate(θ[, ラベル] )パラメトリック2量子ビット XXX \otimes X 相互作用(XXに関する回転)。
RYYGate(θ[, ラベル] )パラメトリック2量子ビット YYY \otimes Y 相互作用(YYに関する回転)。
RZXGate(θ[, ラベル] )パラメトリック2量子ビット ZXZ \otimes X 相互作用(ZXに関する回転)。
RZZGate(θ[, ラベル] )パラメトリック2量子ビット ZZZ \otimes Z 相互作用(ZZに関する回転)。
SwapGate(*args[, _force_mutable] )SWAPゲート。
XXMinusYYGate(θ[, β, ラベル] )XX-YY相互作用ゲート。
XXPlusYYGate(θ[, β, ラベル] )XX+YY相互作用ゲート。

3量子ビット以上の標準ゲート

C3SXGate(*args[, _force_mutable] )3量子ビット制御のsqrt-Xゲート。
C3XGate(*args[, _force_mutable] )3量子ビットで制御されるXゲート。
C4XGate(*args[, _force_mutable] )4量子ビット制御Xゲート。
CCXGate(*args[, _force_mutable] )CCXゲート、別名トッフォリゲート。
CCZGate(*args[, _force_mutable] )CCZゲート
CSwapGate(*args[, _force_mutable] )フレドキンゲートとしても知られるControlled-SWAPゲート。
RCCXGate(*args[, _force_mutable] )簡略化されたトッフォリ門は、マルゴルス門とも呼ばれる。
RC3XGate(*args[, _force_mutable] )簡略化された3制御トフォリゲート。

グローバル標準ゲート

以下のゲートはグローバルであり、いかなる量子ビット引数も取らない。

GlobalPhaseGate(位相[、ラベル] )グローバル・フェーズ・ゲート( eiθe^{i\theta} )。

標準指令

ディレクティブは量子スタックに対する操作で、バックエンドやトランスパイラによって解釈されることを意図している。 一般的に、トランスパイラやバックエンドは、実装がない場合、オプションでこれらを無視することができる。


標準操作

演算とは、回路の量子状態を非可逆的に変化させることである。

に加えて Measure、一般化された共同パウリ測定が利用可能であり、パウリベース計算における基本操作として用いられる。

PauliProductMeasurement(pauli[, label] )パウリ積測定手順書

一般化されたゲート

このモジュールは、より幅広い基本ゲートのコレクションで標準ゲートを拡張する。 これには、量子ビットの数が入力に依存するバリアディックゲートも含まれる。 例:

from qiskit.circuit.library import DiagonalGate

diagonal = DiagonalGate([1, 1j])
print(diagonal.num_qubits)

diagonal = DiagonalGate([1, 1, 1, -1])
print(diagonal.num_qubits)

とプリントする:

1
2
DiagonalGate(diag)一般的な斜め量子ゲート。
PermutationGate(パターン)量子ビットを並べ替えるゲート。
MCMTGate(ゲート, 制御量子ビット数,...[,...] )マルチ制御マルチターゲットゲート、任意の単一制御ターゲットゲート用。
MCPhaseGate(lam, num_ctrl_qubits[, label,...] )マルチ制御位相ゲート。
MCXGate( [num_ctrl_qubits, label,...] )一般的なマルチコントロールXゲート。
MSGate(num_qubits, theta[, label] )メルマー・ソーレンセン門。
RVGate(v_x, v_y, v_z[, 基底] )任意の回転軸 v\vec{v} を中心とした回転。ここで、 vertvvert2\\vert \vec{v}\\vert _2 はラジアン単位の回転角である。
PauliGate(ラベル)マルチ量子ビットのパウリゲート。
PauliProductRotationGate(pauli, angle[, label] )一般的なパウリ回転。
LinearFunction(線形[、validate_input] )n量子ビットの線形可逆回路。
Isometry(等長変換, num_ancillas_zero,...[,...] )mm から nn クビットへの任意のアイソメトリーの分解。
UnitaryGate(データ[、ラベル、check_input、...] )ユニタリ行列で指定される量子ゲートのクラス。
UCGate(ゲートリスト[, 対角線まで, マルチプレクサ単純化] )均一制御ゲート(多重化ゲートとも呼ばれる)。
UCPauliRotGate(角度リスト, 回転軸)一様に制御されたパウリ回転。
UCRXGate(angle_list)一様に制御されたパウリ-X回転。
UCRYGate(angle_list)一様に制御されたパウリ-Y回転。
UCRZGate(angle_list)一様に制御されたパウリ-Z回転。

Instruction上記のオブジェクトは または を導出 Gate するため、コンパイラはそれらを抽象的なレベルで処理することができます。 したがって、以下に示すもの(これらは派生 QuantumCircuit され、イージリー構築される)の代わりに、これらを使用することをお勧めします。

Diagonal(diag)対角変換を行う回路。
MCMT(ゲート, 制御量子ビット数, ターゲット量子ビット数)マルチ制御マルチターゲットゲート、任意の単一制御ターゲットゲート用。
MCMTVChain(ゲート, 制御量子ビット数,...)CCXのVチェーンを使ったMCMTの実装。
MCXGrayCode( [num_ctrl_qubits, label,...] )グレーコードを使ってマルチ制御Xゲートを実装する。
MCXRecursive( [num_ctrl_qubits, label,...] )再帰を使用してマルチ制御Xゲートを実装する。
MCXVChain( [num_ctrl_qubits, dirty_ancillas,...] )CXゲートのVチェーンを使ってマルチ制御Xゲートを実装する。
Permutation(num_qubits[, pattern, seed] )量子ビットを並べ替えるn_qubit回路。
GMS(num_qubits, theta)グローバル・モルマー・ソーレンセン・ゲート。
GR(num_qubits, theta, phi)グローバルRゲート。
GRX(num_qubits, theta)グローバルRXゲート。
GRY(num_qubits, theta)グローバルRYゲート
GRZ(num_qubits, phi)グローバルRZゲート。

ブールロジック

Gateこれらは、量子ビットの状態の集合に対する論理 or 演算など、ブール論理演算を実装するものである。

AndGate(num_variable_qubits[, flags] )複数の量子ビットの論理AND演算を表すゲート。
OrGate(num_variable_qubits[, flags] )複数の量子ビットに対する論理和演算を表すゲート。
BitwiseXorGate(num_qubits, amount)入力とある整数 amount とのビットごとのxorを行うn-qubitゲート。
InnerProductGate(num_qubits)F2F_2 上の2つのn量子ビットベクトルの内積を計算する 2n-qubit ブール関数。

上記のオブジェクトは(この型を)派生 Gate させる(あるいはこの型を返す)ため、コンパイラは抽象的なレベルでそれらを解析することができます。 したがって、以下のように導出 QuantumCircuit され、イージーコンストラクションされるものよりも、これらを使用することをお勧めします。

AND(num_variable_qubits[, flags, mcx_mode] )複数の量子ビットに対して論理AND演算を行う回路。
OR(num_variable_qubits[, flags, mcx_mode] )複数の量子ビットに対して論理和演算を行う回路。
XOR(num_qubits[, amount, seed] )n_qubit回路は、入力をある整数 amount とビット毎xorするための回路である。
InnerProduct(num_qubits)F2F_2 上の2つのn量子ビットベクトルの内積を計算する 2n-qubit ブール関数。

ランダムなビット単位の xor 回路は、これを用いて直接生成することができる:

random_bitwise_xor(num_qubits, seed)ランダムな BitwiseXorGate。

基準変更

これらのゲートは量子ビット状態の基底変換を行う。 例えば、量子フーリエ変換(QFT)の場合、計算基底とフーリエ基底の間で変換する。

QFTGate(num_qubits)量子フーリエ変換ゲート。

Gate上記のオブジェクトは派生しており、これによりコンパイラは抽象的なレベルでそれを解析できるようになります。 したがって、以下のように導出 QuantumCircuit され、イージリー構築されるものよりも、こちらを使用することをお勧めします。

QFT( [qubit数, 近似次数,...] )量子フーリエ変換回路。

算術

これらのゲートや回路は、加算や乗算といった古典的な算術を実行する。

毒蛇

加算器は2つの nn -qubitレジスタの和を計算する

anbnana+bt,|a\rangle_n |b\rangle_n \mapsto |a\rangle_n |a + b\rangle_{t},

ここで、出力レジスタのサイズ tt は、使用される加算器のタイプに依存する。

ModularAdderGate(num_state_qubits[, label] )二つの nn -sized qubit registersのmodulo 2n2^n の和を計算する。
HalfAdderGate(num_state_qubits[, label] )キャリーアウトビットを含む2つの等しい大きさの量子ビットレジスタの和を計算する。
FullAdderGate(num_state_qubits[, label] )キャリーインビットとキャリーアウトビットを含む2つの nn -サイズの量子ビットレジスタの和を計算する。

Gate上記のオブジェクトは派生しており、これによりコンパイラは抽象的なレベルでそれらを処理できるようになります。 したがって、以下のように導出 QuantumCircuit され、イージーコンストラクションされるものよりも、これらを使用することをお勧めします。

DraperQFTAdder(num_state_qubits[, kind, name] )QFTを用いて2つの量子ビットレジスタのインプレース加算を行う回路。
CDKMRippleCarryAdder(num_state_qubits[,...] )2つの量子ビットレジスタのインプレース加算を行うリップルキャリー回路。
VBERippleCarryAdder(num_state_qubits[,...] )VBEリップルキャリー加算器 [1]。

乗数

乗算器は2つの nn -qubitレジスタの積を計算する

anbn0tanbnabt,|a\rangle_n |b\rangle_n |0\rangle_{t} \mapsto |a\rangle_n |b\rangle_n |a \cdot b\rangle_t,

ここで、 tt は結果を表すのに使われるビット数である。

MultiplierGate(num_state_qubits[,...] )2つの等しい大きさの量子ビットレジスタの積を新しいレジスタに計算する。

Gate上記のオブジェクトは派生しており、これによりコンパイラは抽象的なレベルでそれを解析できるようになります。 したがって、以下のように導出 QuantumCircuit され、イージーコンストラクションされるものよりも、こちらを使用することをお勧めします。

HRSCumulativeMultiplier(num_state_qubits[,...] )2つの入力レジスタの積を場外に保存する乗算回路。
RGQFTMultiplier(num_state_qubits[,...] )2つの入力レジスタの積をout-of-placeで格納するQFT乗算回路。

振幅関数

振幅関数は、 f:{0,...,2n1}[0,1]f: \{0, ..., 2^n - 1\} \rightarrow [0, 1] nn の量子ビットの振幅に適用される関数を近似する。 より詳細な情報については、クラスのdocstringを参照してください。

LinearAmplitudeFunctionGate(...[, ...])量子ビットの振幅に対する(区分的)線形関数を実装した回路。

Gate上記のオブジェクトは派生しており、これによりコンパイラは抽象的なレベルでそれを解析できるようになります。 したがって、以下のように導出 QuantumCircuit され、イージリー構築されるものよりも、こちらを使用することをお勧めします。

LinearAmplitudeFunction(num_state_qubits,...)量子ビットの振幅に対する(区分的)線形関数を実装した回路。

機能的パウリ回転

関数的パウリ回転は、次のような形式の演算を実行する

x0cos(f(x))x0+sin(f(x))x1|x\rangle |0\rangle \mapsto \cos(f(x))|x\rangle|0\rangle + \sin(f(x))|x\rangle|1\rangle

線形、多項式、またはこれらの区分バージョンなど、さまざまなタイプの関数 ff に対して、Pauli- YY 回転を使用する。 これらは上記の振幅関数と似ているが、ターゲット関数のドメインとイメージのための事前および事後処理はない。

LinearPauliRotationsGate(num_state_qubits[,...] )X、YまたはZ回転をリニアに制御。
PolynomialPauliRotationsGate(num_state_qubits)多項式パウリ回転を実装したゲート。
PiecewiseLinearPauliRotationsGate([...])断片的に線形制御されたパウリ回転。
PiecewisePolynomialPauliRotationsGate(...[, ...])断片的に多項式に制御されたパウリ回転。
PiecewiseChebyshevGate(f_x, num_state_qubits)入力関数に対する区分的チェビシェフ近似。

Gate上記のオブジェクトは派生しており、これによりコンパイラは抽象的なレベルでそれらを処理できるようになります。 したがって、以下のように導出 QuantumCircuit され、イージーコンストラクションされるものよりも、これらを使用することをお勧めします。

FunctionalPauliRotations( [num_state_qubits,...] )関数パウリ回転の基本クラス。
LinearPauliRotations( [num_state_qubits,...] )X、YまたはZ回転をリニアに制御。
PolynomialPauliRotations( [num_state_qubits,...] )多項式パウリ回転を実装した回路。
PiecewiseLinearPauliRotations([...])断片的に線形制御されたパウリ回転。
PiecewisePolynomialPauliRotations([...])断片的に多項式に制御されたパウリ回転。
PiecewiseChebyshev(f_x[, 次数,...] )入力関数に対する区分的チェビシェフ近似。

その他の算術関数

ここでは、追加の演算回路をリストアップする。 詳細は各クラスのドキュメントを参照。

ExactReciprocalGate(num_state_qubits, スケーリング)正確な逆数関数を実装する。
IntegerComparatorGate(num_state_qubits, value)古典的な整数に対して、量子ビット・レジスタで \geq (または << ) を実行する。
QuadraticFormGate( [num_result_qubits,...] )量子ビットレジスタにエンコードされた2値変数に2次形式を実装する。
WeightedSumGate(num_state_qubits[, weights,...] )量子ビットレジスタの重み付き和を計算するゲート。

Gate上記のオブジェクトは派生しており、これによりコンパイラは抽象的なレベルでそれらを処理できるようになります。 したがって、以下のように導出 QuantumCircuit され、イージーコンストラクションされるものよりも、これらを使用することをお勧めします。

ExactReciprocal(num_state_qubits, スケーリング[,...] )正確な逆数
IntegerComparator( [num_state_qubits, value,...] )整数コンパレータ。
QuadraticForm( [num_result_qubits,...] )量子ビットレジスタにエンコードされた2値変数に2次形式を実装する。
WeightedAdder( [num_state_qubits, weights, name] )量子ビットレジスタの重み付き和を計算する回路。

特定の量子回路

以下のゲートと量子回路は、特定の演算を定義している:

fourier_checking(f, g)フーリエ検査回路。
hidden_linear_function(隣接行列)隠れ一次関数問題を解く回路。
iqp(相互作用)瞬間量子多項式時間(IQP)回路。
random_iqp(num_qubits[, seed] )ランダムな瞬間量子多項式時間(IQP)回路。
quantum_volume(num_qubits[, depth, seed] )量子ボリュームモデル回路。
phase_estimation(評価用量子ビット数, ユニタリー演算)位相推定回路。
grover_operator(oracle[, state_preparation,...] )グローバー演算子を構築する。
unitary_overlap(unitary1, unitary2[, ...])2つのユニタリーの重なりを返す回路 U2U1U_2^{\dag} U_1
GraphStateGate(隣接行列)グラフの状態を表すゲート。
PauliEvolutionGate(演算子[、時間、ラベル、……] )パウリからなる演算子の時間発展。
HamiltonianGate(データ、日時[、ラベル] )ハミルトニアン演算子による進化をゲートとして表現するためのクラス。

を派生させるクラスと同じ操作を提供する。 QuantumCircuit. しかし、ランタイムとコンパイラのパフォーマンスを向上させるためには、上記の関数とゲートを使用することをお勧めする。

FourierChecking(f, g)フーリエ検査回路。
GraphState(隣接行列)グラフの状態を準備する回路。
HiddenLinearFunction(隣接行列)隠れ一次関数問題を解く回路。
IQP(相互作用)瞬間量子多項式(IQP)回路。
QuantumVolume(num_qubits[, depth, seed,...] )量子ボリュームモデル回路。
PhaseEstimation(評価用量子ビット数, ユニタリー演算)位相推定回路。
GroverOperator(oracle[, state_preparation,...] )グローバーのオペレーター
UnitaryOverlap(unitary1, unitary2[, ...])2つのユニタリーの重なりを返す回路 U2U1U_2^{\dag} U_1

N-局所回路

以下の関数は、パラメータ化された QuantumCircuit を返し、変分量子アルゴリズムのansatzとして使用します。

例えば、変分回路を作ることができる

from qiskit.circuit.library import efficient_su2

num_qubits = 4
ansatz = efficient_su2(num_qubits, entanglement="pairwise")
ansatz.draw("mpl")
効率的な SU2 アサッツ回路...

と組み合わせる

from qiskit.circuit.library import zz_feature_map

circuit = zz_feature_map(num_qubits)
circuit.barrier()
circuit.compose(ansatz, inplace=True)

circuit.draw("mpl")
... ZZフィーチャーマップと組み合わせる。 ... ZZフィーチャーマップと組み合わせる。

変分量子分類の回路を得る。

以下の関数はすべて変分回路を構成するもので、高速に構成できるように最適化されている:

n_local(num_qubits, rotation_blocks,...[,...] )n-局所変分回路を構成する。
efficient_su2(num_qubits[, su2_gates,...] )ハードウェア効率の高い SU(2)SU(2) 2ローカル回路。
real_amplitudes(量子ビット数[、量子もつれ、……] )実振幅の2ローカル回路を構成する。
pauli_two_design(num_qubits[, reps, seed,...] )Pauli 2-design ansatzを構築する。
excitation_preserving(num_qubits[, mode,...] )発見的励起保存波動関数アサッツ。
qaoa_ansatz(cost_operator[, reps,...] )カスタム初期状態とミキサーをサポートした一般化QAOA量子回路。
hamiltonian_variational_ansatz(ハミルトニアン)ハミルトニアン変分アサッツを構築する。
evolved_operator_ansatz(オペレーター[、担当者、……] )演算子の展開からアナザッツを構築する。

上記の関数を使用することを推奨するが、回路をブロックにラップし、回路のインプレース変異を可能にする以下の BlueprintCircuit も引き続きサポートする:

NLocal( [num_qubits, rotation_blocks,...] )nローカル回路クラス。
TwoLocal( [num_qubits, rotation_blocks,...] )2ローカル回路。
PauliTwoDesign( [num_qubits, reps, seed,...] )パウリ2デザイン解析。
RealAmplitudes( [量子ビット数、量子もつれ、……] )実振幅2ローカル回路。
EfficientSU2( [num_qubits, su2_gates,...] )ハードウェア的に効率的なSU(2) 2ローカル回路。
EvolvedOperatorAnsatz( [オペレーター、担当者、……] )進化した演算子ansatz。
ExcitationPreserving( [num_qubits, mode,...] )発見的励起保存波動関数アサッツ。
QAOAAnsatz( [cost_operator, reps,...] )カスタム初期状態とミキサーをサポートした一般化QAOA量子回路。

データ符号化回路

以下の関数は QuantumCircuit を返し、一連の変分量子アルゴリズムのデータ符号化回路として使用する:

pauli_feature_map(特徴量_次元[, 反復回数,...] )パウリ拡大回路。
z_feature_map(特徴量_次元[, 反復回数,...] )1次のパウリZ進化回路。
zz_feature_map(特徴量_次元[, 反復回数,...] )2次パウリ-Z進化回路。

上記の関数を使用することを推奨するが、回路をブロックにラップし、回路のインプレース変異を可能にする以下の BlueprintCircuit も引き続きサポートする:

PauliFeatureMap( [特徴量_次元, 反復回数,...] )パウリ拡大回路。
ZFeatureMap(特徴量_次元[, 反復回数,...] )1次のパウリZ進化回路。
ZZFeatureMap(特徴量_次元[, 反復回数,...] )2次パウリ-Z進化回路。

データ準備回路

状態準備には以下の操作を行う:

StatePreparation(params[, num_qubits,...] )複雑な振幅状態の準備。
Initialize(params[, num_qubits, normalize] )複素振幅の初期化。

オラクル

オラクル」とは、量子状態に対するさまざまなブラックボックス操作を指す。 ここでは、 f:{0,...,2n1}{0,1}f: \{0, ..., 2^n - 1\} \rightarrow \{0, 1\} フェーズ・フリップを介してブーリアン関数を実装するオラクルを考える

xn(1)f(x)xn,|x\rangle_n \mapsto (-1)^{f(x)} |x\rangle_n,

またはビット反転

xnbxnbf(x).|x\rangle_n |b\rangle \mapsto |x\rangle_n |b \oplus f(x)\rangle.

これらは

PhaseOracleGate(式[, var_order, ラベル] )位相オラクルを実装します。
BitFlipOracleGate(式[, var_order, ラベル] )ビット反転オラクルの実装

grover_operator()また、グローバーのアルゴリズムの重要な構成要素でもある(参照)。

QuantumCircuitGate- ベースの実装に加え、フェーズフリップオラクルの - バージョンもサポートしています

PhaseOracle(式[, var_order] )フェーズ Oracle.

テンプレート回路

テンプレートは、アイデンティティを計算する回路を返す関数である。 これは回路の最適化で使用され、テンプレートの一部をマッチさせることで、コンパイラはそのマッチをテンプレートからの余りの逆数に置き換えることができる。

この例では、テンプレート内のID定数がチェックされる:

from qiskit.circuit.library.templates import template_nct_4b_1
from qiskit.quantum_info import Operator
import numpy as np

template = template_nct_4b_1()

identity = np.identity(2 ** len(template.qubits), dtype=complex)
data = Operator(template).data
np.allclose(data, identity)  # True, template_nct_4b_1 is the identity

NCT(非CNOT-トフォリ)テンプレート回路

CXGateXGate、、および CCXGate (トッフォリ)ゲート用のテンプレート回路。

参照資料:

マスロフ、D.およびデュエック、G. W. とミラー、D. 可逆トフォリネットワークの合成技術, 2007 https://dx.doi.org/10.1145/1278349.1278355

template_nct_2a_1

qiskit.circuit.library.templates.nct.template_nct_2a_1()

GitHub

テンプレート 2a_1:

     ┌───┐┌───┐
q_0: ┤ X ├┤ X ├
     └───┘└───┘

戻り値

量子回路としてのテンプレート

戻りの型

QuantumCircuit

template_nct_2a_2

qiskit.circuit.library.templates.nct.template_nct_2a_2()

GitHub

テンプレート 2a_2:

q_0: ──■────■──
     ┌─┴─┐┌─┴─┐
q_1: ┤ X ├┤ X ├
     └───┘└───┘

戻り値

量子回路としてのテンプレート

戻りの型

QuantumCircuit

template_nct_2a_3

qiskit.circuit.library.templates.nct.template_nct_2a_3()

GitHub

テンプレート 2a_3:

q_0: ──■────■──
       │    │
q_1: ──■────■──
     ┌─┴─┐┌─┴─┐
q_2: ┤ X ├┤ X ├
     └───┘└───┘

戻り値

量子回路としてのテンプレート

戻りの型

QuantumCircuit

template_nct_4a_1

qiskit.circuit.library.templates.nct.template_nct_4a_1()

GitHub

テンプレート 4a_1:

q_0: ───────■─────────■──
            │         │
q_1: ──■────┼────■────┼──
       │    │    │    │
q_2: ──■────■────■────■──
       │  ┌─┴─┐  │  ┌─┴─┐
q_3: ──┼──┤ X ├──┼──┤ X ├
     ┌─┴─┐└───┘┌─┴─┐└───┘
q_4: ┤ X ├─────┤ X ├─────
     └───┘     └───┘

戻り値

量子回路としてのテンプレート

戻りの型

QuantumCircuit

template_nct_4a_2

qiskit.circuit.library.templates.nct.template_nct_4a_2()

GitHub

テンプレート 4a_2:

q_0: ──■─────────■───────
       │         │
q_1: ──■────■────■────■──
       │  ┌─┴─┐  │  ┌─┴─┐
q_2: ──┼──┤ X ├──┼──┤ X ├
     ┌─┴─┐└───┘┌─┴─┐└───┘
q_3: ┤ X ├─────┤ X ├─────
     └───┘     └───┘

戻り値

量子回路としてのテンプレート

戻りの型

QuantumCircuit

template_nct_4a_3

qiskit.circuit.library.templates.nct.template_nct_4a_3()

GitHub

テンプレート 4a_3:

q_0: ──■────■────■────■──
       │  ┌─┴─┐  │  ┌─┴─┐
q_1: ──┼──┤ X ├──┼──┤ X ├
     ┌─┴─┐└───┘┌─┴─┐└───┘
q_2: ┤ X ├─────┤ X ├─────
     └───┘     └───┘

戻り値

量子回路としてのテンプレート

戻りの型

QuantumCircuit

template_nct_4b_1

qiskit.circuit.library.templates.nct.template_nct_4b_1()

GitHub

テンプレート 4b_1:

q_0: ───────■─────────■──
            │         │
q_1: ──■────┼────■────┼──
       │    │    │    │
q_2: ──■────■────■────■──
     ┌─┴─┐┌─┴─┐┌─┴─┐┌─┴─┐
q_3: ┤ X ├┤ X ├┤ X ├┤ X ├
     └───┘└───┘└───┘└───┘

戻り値

量子回路としてのテンプレート

戻りの型

QuantumCircuit

template_nct_4b_2

qiskit.circuit.library.templates.nct.template_nct_4b_2()

GitHub

テンプレート 4b_2:

q_0: ──■─────────■───────
       │         │
q_1: ──■────■────■────■──
     ┌─┴─┐┌─┴─┐┌─┴─┐┌─┴─┐
q_2: ┤ X ├┤ X ├┤ X ├┤ X ├
     └───┘└───┘└───┘└───┘

戻り値

量子回路としてのテンプレート

戻りの型

QuantumCircuit

template_nct_5a_1

qiskit.circuit.library.templates.nct.template_nct_5a_1()

GitHub

テンプレート 5a_1:

q_0: ──■────■────■────■────■──
       │  ┌─┴─┐  │  ┌─┴─┐  │
q_1: ──■──┤ X ├──■──┤ X ├──┼──
     ┌─┴─┐└───┘┌─┴─┐└───┘┌─┴─┐
q_2: ┤ X ├─────┤ X ├─────┤ X ├
     └───┘     └───┘     └───┘

戻り値

量子回路としてのテンプレート

戻りの型

QuantumCircuit

template_nct_5a_2

qiskit.circuit.library.templates.nct.template_nct_5a_2()

GitHub

テンプレート 5a_2:

q_0: ──■─────────■─────────■──
       │  ┌───┐  │  ┌───┐  │
q_1: ──■──┤ X ├──■──┤ X ├──┼──
     ┌─┴─┐└───┘┌─┴─┐└───┘┌─┴─┐
q_2: ┤ X ├─────┤ X ├─────┤ X ├
     └───┘     └───┘     └───┘

戻り値

量子回路としてのテンプレート

戻りの型

QuantumCircuit

template_nct_5a_3

qiskit.circuit.library.templates.nct.template_nct_5a_3()

GitHub

テンプレート 5a_3:

q_0: ───────■─────────■────■──
          ┌─┴─┐     ┌─┴─┐  │
q_1: ──■──┤ X ├──■──┤ X ├──┼──
     ┌─┴─┐└───┘┌─┴─┐└───┘┌─┴─┐
q_2: ┤ X ├─────┤ X ├─────┤ X ├
     └───┘     └───┘     └───┘

戻り値

量子回路としてのテンプレート

戻りの型

QuantumCircuit

template_nct_5a_4

qiskit.circuit.library.templates.nct.template_nct_5a_4()

GitHub

テンプレート 5a_4:

          ┌───┐     ┌───┐
q_0: ──■──┤ X ├──■──┤ X ├
     ┌─┴─┐└───┘┌─┴─┐├───┤
q_1: ┤ X ├─────┤ X ├┤ X ├
     └───┘     └───┘└───┘

戻り値

量子回路としてのテンプレート

戻りの型

QuantumCircuit

template_nct_6a_1

qiskit.circuit.library.templates.nct.template_nct_6a_1()

GitHub

テンプレート 6a_1:

          ┌───┐     ┌───┐     ┌───┐
q_0: ──■──┤ X ├──■──┤ X ├──■──┤ X ├
     ┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘
q_1: ┤ X ├──■──┤ X ├──■──┤ X ├──■──
     └───┘     └───┘     └───┘

戻り値

量子回路としてのテンプレート

戻りの型

QuantumCircuit

template_nct_6a_2

qiskit.circuit.library.templates.nct.template_nct_6a_2()

GitHub

テンプレート 6a_2:

q_0: ──■────■────■────■────■────■──
       │  ┌─┴─┐  │  ┌─┴─┐  │  ┌─┴─┐
q_1: ──■──┤ X ├──■──┤ X ├──■──┤ X ├
     ┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘
q_2: ┤ X ├──■──┤ X ├──■──┤ X ├──■──
     └───┘     └───┘     └───┘

戻り値

量子回路としてのテンプレート

戻りの型

QuantumCircuit

template_nct_6a_3

qiskit.circuit.library.templates.nct.template_nct_6a_3()

GitHub

テンプレート 6a_3:

q_0: ───────■─────────■────■────■──
          ┌─┴─┐     ┌─┴─┐  │  ┌─┴─┐
q_1: ──■──┤ X ├──■──┤ X ├──■──┤ X ├
     ┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘
q_2: ┤ X ├──■──┤ X ├──■──┤ X ├──■──
     └───┘     └───┘     └───┘

戻り値

量子回路としてのテンプレート

戻りの型

QuantumCircuit

template_nct_6a_4

qiskit.circuit.library.templates.nct.template_nct_6a_4()

GitHub

テンプレート 6a_4:

q_0: ───────■──────────────■───────
          ┌─┴─┐     ┌───┐  │  ┌───┐
q_1: ──■──┤ X ├──■──┤ X ├──■──┤ X ├
     ┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘
q_2: ┤ X ├──■──┤ X ├──■──┤ X ├──■──
     └───┘     └───┘     └───┘

戻り値

量子回路としてのテンプレート

戻りの型

QuantumCircuit

template_nct_6b_1

qiskit.circuit.library.templates.nct.template_nct_6b_1()

GitHub

テンプレート 6b_1:

q_0: ──■─────────■────■─────────■──
       │       ┌─┴─┐  │       ┌─┴─┐
q_1: ──■────■──┤ X ├──■────■──┤ X ├
     ┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘
q_2: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──
     └───┘└───┘     └───┘└───┘

戻り値

量子回路としてのテンプレート

戻りの型

QuantumCircuit

template_nct_6b_2

qiskit.circuit.library.templates.nct.template_nct_6b_2()

GitHub

テンプレート 6b_2:

q_0: ───────■────■─────────■────■──
            │  ┌─┴─┐       │  ┌─┴─┐
q_1: ──■────■──┤ X ├──■────■──┤ X ├
     ┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘
q_2: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──
     └───┘└───┘     └───┘└───┘

戻り値

量子回路としてのテンプレート

戻りの型

QuantumCircuit

template_nct_6c_1

qiskit.circuit.library.templates.nct.template_nct_6c_1()

GitHub

テンプレート 6c_1:

q_0: ──■─────────■─────────■────■──
       │  ┌───┐  │  ┌───┐  │  ┌─┴─┐
q_1: ──■──┤ X ├──■──┤ X ├──■──┤ X ├
     ┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘
q_2: ┤ X ├──■──┤ X ├──■──┤ X ├──■──
     └───┘     └───┘     └───┘

戻り値

量子回路としてのテンプレート

戻りの型

QuantumCircuit

template_nct_7a_1

qiskit.circuit.library.templates.nct.template_nct_7a_1()

GitHub

テンプレート 7a_1:

     ┌───┐                    ┌───┐
q_0: ┤ X ├──■─────────■────■──┤ X ├──■──
     └─┬─┘┌─┴─┐       │  ┌─┴─┐└─┬─┘  │
q_1: ──■──┤ X ├──■────■──┤ X ├──■────■──
          └───┘┌─┴─┐┌─┴─┐└───┘     ┌─┴─┐
q_2: ──────────┤ X ├┤ X ├──────────┤ X ├
               └───┘└───┘          └───┘

戻り値

量子回路としてのテンプレート

戻りの型

QuantumCircuit

template_nct_7b_1

qiskit.circuit.library.templates.nct.template_nct_7b_1()

GitHub

テンプレート 7b_1:

     ┌───┐                    ┌───┐
q_0: ┤ X ├──■─────────■────■──┤ X ├──■──
     └───┘┌─┴─┐       │  ┌─┴─┐└───┘  │
q_1: ─────┤ X ├──■────■──┤ X ├───────■──
          └───┘┌─┴─┐┌─┴─┐└───┘     ┌─┴─┐
q_2: ──────────┤ X ├┤ X ├──────────┤ X ├
               └───┘└───┘          └───┘

戻り値

量子回路としてのテンプレート

戻りの型

QuantumCircuit

template_nct_7c_1

qiskit.circuit.library.templates.nct.template_nct_7c_1()

GitHub

テンプレート 7c_1:

     ┌───┐                    ┌───┐
q_0: ┤ X ├──■─────────■────■──┤ X ├──■──
     └───┘┌─┴─┐       │  ┌─┴─┐└───┘  │
q_1: ─────┤ X ├──■────■──┤ X ├───────■──
          └─┬─┘┌─┴─┐┌─┴─┐└─┬─┘     ┌─┴─┐
q_2: ───────■──┤ X ├┤ X ├──■───────┤ X ├
               └───┘└───┘          └───┘

戻り値

量子回路としてのテンプレート

戻りの型

QuantumCircuit

template_nct_7d_1

qiskit.circuit.library.templates.nct.template_nct_7d_1()

GitHub

テンプレート 7d_1:

     ┌───┐                    ┌───┐
q_0: ┤ X ├──■─────────■────■──┤ X ├──■──
     └─┬─┘┌─┴─┐       │  ┌─┴─┐└─┬─┘  │
q_1: ──■──┤ X ├──■────■──┤ X ├──■────■──
          └─┬─┘┌─┴─┐┌─┴─┐└─┬─┘     ┌─┴─┐
q_2: ───────■──┤ X ├┤ X ├──■───────┤ X ├
               └───┘└───┘          └───┘

戻り値

量子回路としてのテンプレート

戻りの型

QuantumCircuit

template_nct_7e_1

qiskit.circuit.library.templates.nct.template_nct_7e_1()

GitHub

テンプレート 7e_1:

     ┌───┐                    ┌───┐
q_0: ┤ X ├──■─────────■────■──┤ X ├──■──
     └───┘┌─┴─┐       │  ┌─┴─┐└───┘  │
q_1: ─────┤ X ├───────┼──┤ X ├───────┼──
          └─┬─┘┌───┐┌─┴─┐└─┬─┘     ┌─┴─┐
q_2: ───────■──┤ X ├┤ X ├──■───────┤ X ├
               └───┘└───┘          └───┘

戻り値

量子回路としてのテンプレート

戻りの型

QuantumCircuit

template_nct_9a_1

qiskit.circuit.library.templates.nct.template_nct_9a_1()

GitHub

テンプレート 9a_1:

     ┌───┐     ┌───┐          ┌───┐
q_0: ┤ X ├──■──┤ X ├──■────■──┤ X ├──■──
     └─┬─┘┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐
q_1: ──■──┤ X ├──■──┤ X ├┤ X ├──■──┤ X ├
          └─┬─┘  │  ├───┤└─┬─┘┌───┐└─┬─┘
q_2: ───────■────■──┤ X ├──■──┤ X ├──■──
                    └───┘     └───┘

戻り値

量子回路としてのテンプレート

戻りの型

QuantumCircuit

template_nct_9c_1

qiskit.circuit.library.templates.nct.template_nct_9c_1()

GitHub

テンプレート 9c_1:

     ┌───┐     ┌───┐┌───┐     ┌───┐          ┌───┐
q_0: ┤ X ├──■──┤ X ├┤ X ├─────┤ X ├──■───────┤ X ├
     └─┬─┘┌─┴─┐└───┘└─┬─┘┌───┐└─┬─┘┌─┴─┐┌───┐└─┬─┘
q_1: ──■──┤ X ├───────■──┤ X ├──■──┤ X ├┤ X ├──■──
          └───┘          └───┘     └───┘└───┘

戻り値

量子回路としてのテンプレート

戻りの型

QuantumCircuit

template_nct_9c_2

qiskit.circuit.library.templates.nct.template_nct_9c_2()

GitHub

テンプレート 9c_2:

q_0: ───────■────■──────────────■────■─────────■──
     ┌───┐  │  ┌─┴─┐┌───┐     ┌─┴─┐  │       ┌─┴─┐
q_1: ┤ X ├──■──┤ X ├┤ X ├─────┤ X ├──■───────┤ X ├
     └─┬─┘┌─┴─┐└───┘└─┬─┘┌───┐└─┬─┘┌─┴─┐┌───┐└─┬─┘
q_2: ──■──┤ X ├───────■──┤ X ├──■──┤ X ├┤ X ├──■──
          └───┘          └───┘     └───┘└───┘

戻り値

量子回路としてのテンプレート

戻りの型

QuantumCircuit

template_nct_9c_3

qiskit.circuit.library.templates.nct.template_nct_9c_3()

GitHub

テンプレート 9c_3:

q_0: ───────■────────────────────────■────────────
     ┌───┐  │  ┌───┐┌───┐     ┌───┐  │       ┌───┐
q_1: ┤ X ├──■──┤ X ├┤ X ├─────┤ X ├──■───────┤ X ├
     └─┬─┘┌─┴─┐└───┘└─┬─┘┌───┐└─┬─┘┌─┴─┐┌───┐└─┬─┘
q_2: ──■──┤ X ├───────■──┤ X ├──■──┤ X ├┤ X ├──■──
          └───┘          └───┘     └───┘└───┘

戻り値

量子回路としてのテンプレート

戻りの型

QuantumCircuit

template_nct_9c_4

qiskit.circuit.library.templates.nct.template_nct_9c_4()

GitHub

テンプレート 9c_4:

q_0: ──■────■─────────■──────────────■────────────
     ┌─┴─┐  │  ┌───┐┌─┴─┐     ┌───┐  │       ┌───┐
q_1: ┤ X ├──■──┤ X ├┤ X ├─────┤ X ├──■───────┤ X ├
     └─┬─┘┌─┴─┐└───┘└─┬─┘┌───┐└─┬─┘┌─┴─┐┌───┐└─┬─┘
q_2: ──■──┤ X ├───────■──┤ X ├──■──┤ X ├┤ X ├──■──
          └───┘          └───┘     └───┘└───┘

戻り値

量子回路としてのテンプレート

戻りの型

QuantumCircuit

template_nct_9c_5

qiskit.circuit.library.templates.nct.template_nct_9c_5()

GitHub

テンプレート 9c_5:

q_0: ────────────■─────────■──────────────■───────
     ┌───┐     ┌─┴─┐┌───┐  │  ┌───┐       │  ┌───┐
q_1: ┤ X ├──■──┤ X ├┤ X ├──┼──┤ X ├──■────┼──┤ X ├
     └─┬─┘┌─┴─┐└───┘└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘
q_2: ──■──┤ X ├───────■──┤ X ├──■──┤ X ├┤ X ├──■──
          └───┘          └───┘     └───┘└───┘

戻り値

量子回路としてのテンプレート

戻りの型

QuantumCircuit

template_nct_9c_6

qiskit.circuit.library.templates.nct.template_nct_9c_6()

GitHub

テンプレート 9c_6:

q_0: ───────■────■─────────■─────────■────■───────
     ┌───┐  │  ┌─┴─┐┌───┐  │  ┌───┐  │    │  ┌───┐
q_1: ┤ X ├──■──┤ X ├┤ X ├──┼──┤ X ├──■────┼──┤ X ├
     └─┬─┘┌─┴─┐└───┘└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘
q_2: ──■──┤ X ├───────■──┤ X ├──■──┤ X ├┤ X ├──■──
          └───┘          └───┘     └───┘└───┘

戻り値

量子回路としてのテンプレート

戻りの型

QuantumCircuit

template_nct_9c_7

qiskit.circuit.library.templates.nct.template_nct_9c_7()

GitHub

テンプレート 9c_7:

q_0: ──■────■────■────■────■─────────■────■───────
     ┌─┴─┐  │  ┌─┴─┐┌─┴─┐  │  ┌───┐  │    │  ┌───┐
q_1: ┤ X ├──■──┤ X ├┤ X ├──┼──┤ X ├──■────┼──┤ X ├
     └─┬─┘┌─┴─┐└───┘└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘
q_2: ──■──┤ X ├───────■──┤ X ├──■──┤ X ├┤ X ├──■──
          └───┘          └───┘     └───┘└───┘

戻り値

量子回路としてのテンプレート

戻りの型

QuantumCircuit

template_nct_9c_8

qiskit.circuit.library.templates.nct.template_nct_9c_8()

GitHub

テンプレート 9c_8:

q_0: ──■─────────■────■─────────■──────────────■──
     ┌─┴─┐     ┌─┴─┐┌─┴─┐     ┌─┴─┐          ┌─┴─┐
q_1: ┤ X ├──■──┤ X ├┤ X ├─────┤ X ├──■───────┤ X ├
     └─┬─┘┌─┴─┐└───┘└─┬─┘┌───┐└─┬─┘┌─┴─┐┌───┐└─┬─┘
q_2: ──■──┤ X ├───────■──┤ X ├──■──┤ X ├┤ X ├──■──
          └───┘          └───┘     └───┘└───┘

戻り値

量子回路としてのテンプレート

戻りの型

QuantumCircuit

template_nct_9c_9

qiskit.circuit.library.templates.nct.template_nct_9c_9()

GitHub

テンプレート 9c_9:

q_0: ──■────■────■────■─────────■────■─────────■──
     ┌─┴─┐  │  ┌─┴─┐┌─┴─┐     ┌─┴─┐  │       ┌─┴─┐
q_1: ┤ X ├──■──┤ X ├┤ X ├─────┤ X ├──■───────┤ X ├
     └─┬─┘┌─┴─┐└───┘└─┬─┘┌───┐└─┬─┘┌─┴─┐┌───┐└─┬─┘
q_2: ──■──┤ X ├───────■──┤ X ├──■──┤ X ├┤ X ├──■──
          └───┘          └───┘     └───┘└───┘

戻り値

量子回路としてのテンプレート

戻りの型

QuantumCircuit

template_nct_9c_10

qiskit.circuit.library.templates.nct.template_nct_9c_10()

GitHub

テンプレート 9c_10:

q_0: ──■─────────■────■────■────■─────────■────■──
     ┌─┴─┐     ┌─┴─┐┌─┴─┐  │  ┌─┴─┐       │  ┌─┴─┐
q_1: ┤ X ├──■──┤ X ├┤ X ├──┼──┤ X ├──■────┼──┤ X ├
     └─┬─┘┌─┴─┐└───┘└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘
q_2: ──■──┤ X ├───────■──┤ X ├──■──┤ X ├┤ X ├──■──
          └───┘          └───┘     └───┘└───┘

戻り値

量子回路としてのテンプレート

戻りの型

QuantumCircuit

template_nct_9c_11

qiskit.circuit.library.templates.nct.template_nct_9c_11()

GitHub

テンプレート 9c_11:

q_0: ───────■────■─────────■────■────■────■────■──
     ┌───┐  │  ┌─┴─┐┌───┐  │  ┌─┴─┐  │    │  ┌─┴─┐
q_1: ┤ X ├──■──┤ X ├┤ X ├──┼──┤ X ├──■────┼──┤ X ├
     └─┬─┘┌─┴─┐└───┘└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘
q_2: ──■──┤ X ├───────■──┤ X ├──■──┤ X ├┤ X ├──■──
          └───┘          └───┘     └───┘└───┘

戻り値

量子回路としてのテンプレート

戻りの型

QuantumCircuit

template_nct_9c_12

qiskit.circuit.library.templates.nct.template_nct_9c_12()

GitHub

テンプレート 9c_12:

q_0: ──■────■────■────■────■────■────■────■────■──
     ┌─┴─┐  │  ┌─┴─┐┌─┴─┐  │  ┌─┴─┐  │    │  ┌─┴─┐
q_1: ┤ X ├──■──┤ X ├┤ X ├──┼──┤ X ├──■────┼──┤ X ├
     └─┬─┘┌─┴─┐└───┘└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘
q_2: ──■──┤ X ├───────■──┤ X ├──■──┤ X ├┤ X ├──■──
          └───┘          └───┘     └───┘└───┘

戻り値

量子回路としてのテンプレート

戻りの型

QuantumCircuit

template_nct_9d_1

qiskit.circuit.library.templates.nct.template_nct_9d_1()

GitHub

テンプレート 9d_1:

               ┌───┐          ┌───┐          ┌───┐
q_0: ──■───────┤ X ├───────■──┤ X ├───────■──┤ X ├
     ┌─┴─┐┌───┐└─┬─┘┌───┐┌─┴─┐└─┬─┘┌───┐┌─┴─┐└─┬─┘
q_1: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──
     └───┘└───┘     └───┘└───┘     └───┘└───┘

戻り値

量子回路としてのテンプレート

戻りの型

QuantumCircuit

template_nct_9d_2

qiskit.circuit.library.templates.nct.template_nct_9d_2()

GitHub

テンプレート 9d_2:

q_0: ──■────■────■──────────────■──────────────■──
       │    │  ┌─┴─┐          ┌─┴─┐          ┌─┴─┐
q_1: ──■────┼──┤ X ├───────■──┤ X ├───────■──┤ X ├
     ┌─┴─┐┌─┴─┐└─┬─┘┌───┐┌─┴─┐└─┬─┘┌───┐┌─┴─┐└─┬─┘
q_2: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──
     └───┘└───┘     └───┘└───┘     └───┘└───┘

戻り値

量子回路としてのテンプレート

戻りの型

QuantumCircuit

template_nct_9d_3

qiskit.circuit.library.templates.nct.template_nct_9d_3()

GitHub

テンプレート 9d_3:

q_0: ──■────■───────────────────■─────────────────
       │    │  ┌───┐          ┌─┴─┐          ┌───┐
q_1: ──■────┼──┤ X ├───────■──┤ X ├───────■──┤ X ├
     ┌─┴─┐┌─┴─┐└─┬─┘┌───┐┌─┴─┐└─┬─┘┌───┐┌─┴─┐└─┬─┘
q_2: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──
     └───┘└───┘     └───┘└───┘     └───┘└───┘

戻り値

量子回路としてのテンプレート

戻りの型

QuantumCircuit

template_nct_9d_4

qiskit.circuit.library.templates.nct.template_nct_9d_4()

GitHub

テンプレート 9d_4:

q_0: ───────■─────────■──────────────■────────────
            │  ┌───┐  │       ┌───┐  │       ┌───┐
q_1: ──■────┼──┤ X ├──┼────■──┤ X ├──┼────■──┤ X ├
     ┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘
q_2: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──
     └───┘└───┘     └───┘└───┘     └───┘└───┘

戻り値

量子回路としてのテンプレート

戻りの型

QuantumCircuit

template_nct_9d_5

qiskit.circuit.library.templates.nct.template_nct_9d_5()

GitHub

テンプレート 9d_5:

q_0: ──■────■─────────■─────────■────■────────────
       │    │  ┌───┐  │       ┌─┴─┐  │       ┌───┐
q_1: ──■────┼──┤ X ├──┼────■──┤ X ├──┼────■──┤ X ├
     ┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘
q_2: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──
     └───┘└───┘     └───┘└───┘     └───┘└───┘

戻り値

量子回路としてのテンプレート

戻りの型

QuantumCircuit

template_nct_9d_6

qiskit.circuit.library.templates.nct.template_nct_9d_6()

GitHub

テンプレート 9d_6:

q_0: ──■────■──────────────■────■─────────■───────
       │    │  ┌───┐       │  ┌─┴─┐       │  ┌───┐
q_1: ──■────┼──┤ X ├───────■──┤ X ├───────■──┤ X ├
     ┌─┴─┐┌─┴─┐└─┬─┘┌───┐┌─┴─┐└─┬─┘┌───┐┌─┴─┐└─┬─┘
q_2: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──
     └───┘└───┘     └───┘└───┘     └───┘└───┘

戻り値

量子回路としてのテンプレート

戻りの型

QuantumCircuit

template_nct_9d_7

qiskit.circuit.library.templates.nct.template_nct_9d_7()

GitHub

テンプレート 9d_7:

q_0: ──■────■─────────■────■────■────■────■───────
       │    │  ┌───┐  │    │  ┌─┴─┐  │    │  ┌───┐
q_1: ──■────┼──┤ X ├──┼────■──┤ X ├──┼────■──┤ X ├
     ┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘
q_2: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──
     └───┘└───┘     └───┘└───┘     └───┘└───┘

戻り値

量子回路としてのテンプレート

戻りの型

QuantumCircuit

template_nct_9d_8

qiskit.circuit.library.templates.nct.template_nct_9d_8()

GitHub

テンプレート 9d_8:

q_0: ──■────■────■────■─────────■────■─────────■──
       │    │  ┌─┴─┐  │       ┌─┴─┐  │       ┌─┴─┐
q_1: ──■────┼──┤ X ├──┼────■──┤ X ├──┼────■──┤ X ├
     ┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘
q_2: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──
     └───┘└───┘     └───┘└───┘     └───┘└───┘

戻り値

量子回路としてのテンプレート

戻りの型

QuantumCircuit

template_nct_9d_9

qiskit.circuit.library.templates.nct.template_nct_9d_9()

GitHub

テンプレート 9d_9:

q_0: ──■────■────■─────────■────■─────────■────■──
       │    │  ┌─┴─┐       │  ┌─┴─┐       │  ┌─┴─┐
q_1: ──■────┼──┤ X ├───────■──┤ X ├───────■──┤ X ├
     ┌─┴─┐┌─┴─┐└─┬─┘┌───┐┌─┴─┐└─┬─┘┌───┐┌─┴─┐└─┬─┘
q_2: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──
     └───┘└───┘     └───┘└───┘     └───┘└───┘

戻り値

量子回路としてのテンプレート

戻りの型

QuantumCircuit

template_nct_9d_10

qiskit.circuit.library.templates.nct.template_nct_9d_10()

GitHub

テンプレート 9d_10:

q_0: ──■────■────■────■────■────■────■────■────■──
       │    │  ┌─┴─┐  │    │  ┌─┴─┐  │    │  ┌─┴─┐
q_1: ──■────┼──┤ X ├──┼────■──┤ X ├──┼────■──┤ X ├
     ┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘
q_2: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──
     └───┘└───┘     └───┘└───┘     └───┘└───┘

戻り値

量子回路としてのテンプレート

戻りの型

QuantumCircuit

クリフォード・テンプレート回路

クリフォードゲート上のテンプレート回路。

clifford_2_1

qiskit.circuit.library.clifford_2_1()

GitHub

クリフォード・テンプレート

q_0: ─■──■─
      │  │
q_1: ─■──■─

戻り値

量子回路としてのテンプレート

戻りの型

QuantumCircuit

clifford_2_2

qiskit.circuit.library.clifford_2_2()

GitHub

Clifford template 2_2:

q_0: ──■────■──
     ┌─┴─┐┌─┴─┐
q_1: ┤ X ├┤ X ├
     └───┘└───┘

戻り値

量子回路としてのテンプレート

戻りの型

QuantumCircuit

clifford_2_3

qiskit.circuit.library.clifford_2_3()

GitHub

Clifford template 2_3:

     ┌───┐┌───┐
q_0: ┤ H ├┤ H ├
     └───┘└───┘

戻り値

量子回路としてのテンプレート

戻りの型

QuantumCircuit

clifford_2_4

qiskit.circuit.library.clifford_2_4()

GitHub

Clifford template 2_4:

q_0: ─X──X─
      │  │
q_1: ─X──X─

戻り値

量子回路としてのテンプレート

戻りの型

QuantumCircuit

clifford_3_1

qiskit.circuit.library.clifford_3_1()

GitHub

クリフォード・テンプレート

     ┌───┐┌───┐┌───┐
q_0: ┤ S ├┤ S ├┤ Z ├
     └───┘└───┘└───┘

戻り値

量子回路としてのテンプレート

戻りの型

QuantumCircuit

clifford_4_1

qiskit.circuit.library.clifford_4_1()

GitHub

クリフォード・テンプレート

          ┌───┐
q_0: ──■──┤ X ├──■───X─
     ┌─┴─┐└─┬─┘┌─┴─┐ │
q_1: ┤ X ├──■──┤ X ├─X─
     └───┘     └───┘

戻り値

量子回路としてのテンプレート

戻りの型

QuantumCircuit

clifford_4_2

qiskit.circuit.library.clifford_4_2()

GitHub

Clifford template 4_2:

q_0: ───────■────────■─
     ┌───┐┌─┴─┐┌───┐ │
q_1: ┤ H ├┤ X ├┤ H ├─■─
     └───┘└───┘└───┘

戻り値

量子回路としてのテンプレート

戻りの型

QuantumCircuit

clifford_4_3

qiskit.circuit.library.clifford_4_3()

GitHub

Clifford template 4_3:

     ┌───┐     ┌─────┐
q_0: ┤ S ├──■──┤ SDG ├──■──
     └───┘┌─┴─┐└─────┘┌─┴─┐
q_1: ─────┤ X ├───────┤ X ├
          └───┘       └───┘

戻り値

量子回路としてのテンプレート

戻りの型

QuantumCircuit

clifford_4_4

qiskit.circuit.library.clifford_4_4()

GitHub

Clifford template 4_4:

     ┌───┐   ┌─────┐
q_0: ┤ S ├─■─┤ SDG ├─■─
     └───┘ │ └─────┘ │
q_1: ──────■─────────■─

戻り値

量子回路としてのテンプレート

戻りの型

QuantumCircuit

clifford_5_1

qiskit.circuit.library.clifford_5_1()

GitHub

クリフォード・テンプレート

q_0: ──■─────────■─────────■──
     ┌─┴─┐     ┌─┴─┐       │
q_1: ┤ X ├──■──┤ X ├──■────┼──
     └───┘┌─┴─┐└───┘┌─┴─┐┌─┴─┐
q_2: ─────┤ X ├─────┤ X ├┤ X ├
          └───┘     └───┘└───┘

戻り値

量子回路としてのテンプレート

戻りの型

QuantumCircuit

clifford_6_1

qiskit.circuit.library.clifford_6_1()

GitHub

クリフォード・テンプレート

     ┌───┐     ┌───┐┌───┐
q_0: ┤ H ├──■──┤ H ├┤ X ├
     ├───┤┌─┴─┐├───┤└─┬─┘
q_1: ┤ H ├┤ X ├┤ H ├──■──
     └───┘└───┘└───┘

戻り値

量子回路としてのテンプレート

戻りの型

QuantumCircuit

clifford_6_2

qiskit.circuit.library.clifford_6_2()

GitHub

Clifford template 6_2:

     ┌───┐
q_0: ┤ S ├──■───────────■───■─
     ├───┤┌─┴─┐┌─────┐┌─┴─┐ │
q_1: ┤ S ├┤ X ├┤ SDG ├┤ X ├─■─
     └───┘└───┘└─────┘└───┘

戻り値

量子回路としてのテンプレート

戻りの型

QuantumCircuit

clifford_6_3

qiskit.circuit.library.clifford_6_3()

GitHub

Clifford template 6_3:

           ┌───┐     ┌───┐
q_0: ─X──■─┤ H ├──■──┤ X ├─────
      │  │ └───┘┌─┴─┐└─┬─┘┌───┐
q_1: ─X──■──────┤ X ├──■──┤ H ├
                └───┘     └───┘

戻り値

量子回路としてのテンプレート

戻りの型

QuantumCircuit

clifford_6_4

qiskit.circuit.library.clifford_6_4()

GitHub

Clifford template 6_4:

global phase: 7π/4
   ┌───┐┌───┐┌───┐┌───┐┌───┐┌───┐
q: ┤ S ├┤ H ├┤ S ├┤ H ├┤ S ├┤ H ├
   └───┘└───┘└───┘└───┘└───┘└───┘

戻り値

量子回路としてのテンプレート

戻りの型

QuantumCircuit

clifford_6_5

qiskit.circuit.library.clifford_6_5()

GitHub

Clifford template 6_5:

              ┌───┐
q_0: ─■───■───┤ S ├───■───────
      │ ┌─┴─┐┌┴───┴┐┌─┴─┐┌───┐
q_1: ─■─┤ X ├┤ SDG ├┤ X ├┤ S ├
        └───┘└─────┘└───┘└───┘

戻り値

量子回路としてのテンプレート

戻りの型

QuantumCircuit

clifford_8_1

qiskit.circuit.library.clifford_8_1()

GitHub

クリフォード・テンプレート

               ┌───┐ ┌───┐ ┌───┐┌─────┐
q_0: ──■───────┤ X ├─┤ S ├─┤ X ├┤ SDG ├
     ┌─┴─┐┌───┐└─┬─┘┌┴───┴┐└─┬─┘└┬───┬┘
q_1: ┤ X ├┤ H ├──■──┤ SDG ├──■───┤ H ├─
     └───┘└───┘     └─────┘      └───┘

戻り値

量子回路としてのテンプレート

戻りの型

QuantumCircuit

clifford_8_2

qiskit.circuit.library.clifford_8_2()

GitHub

Clifford template 8_2:

                     ┌───┐
q_0: ──■─────────■───┤ S ├───■────────────
     ┌─┴─┐┌───┐┌─┴─┐┌┴───┴┐┌─┴─┐┌───┐┌───┐
q_1: ┤ X ├┤ H ├┤ X ├┤ SDG ├┤ X ├┤ S ├┤ H ├
     └───┘└───┘└───┘└─────┘└───┘└───┘└───┘

戻り値

量子回路としてのテンプレート

戻りの型

QuantumCircuit

clifford_8_3

qiskit.circuit.library.clifford_8_3()

GitHub

Clifford template 8_3:

q_0: ─────────────────■───────────────────────■──
     ┌───┐┌───┐┌───┐┌─┴─┐┌─────┐┌───┐┌─────┐┌─┴─┐
q_1: ┤ S ├┤ H ├┤ S ├┤ X ├┤ SDG ├┤ H ├┤ SDG ├┤ X ├
     └───┘└───┘└───┘└───┘└─────┘└───┘└─────┘└───┘

戻り値

量子回路としてのテンプレート

戻りの型

QuantumCircuit

RZXGateテンプレート回路

RZXGate. を含むテンプレート回路。

rzx_yz

qiskit.circuit.library.rzx_yz(theta=None)

GitHub

RZXベースのCX用テンプレート - RYGate - CX.

          ┌────────┐     ┌─────────┐┌─────────┐┌──────────┐
q_0: ──■──┤ RY(-ϴ) ├──■──┤ RX(π/2) ├┤0        ├┤ RX(-π/2) ├
     ┌─┴─┐└────────┘┌─┴─┐└─────────┘│  RZX(ϴ) │└──────────┘
q_1: ┤ X ├──────────┤ X ├───────────┤1        ├────────────
     └───┘          └───┘           └─────────┘

パラメーター

theta (ParameterExpression |float | None)

rzx_xz

qiskit.circuit.library.rzx_xz(theta=None)

GitHub

RZXベースのCX用テンプレート - RXGate - CX.

global phase: π
     ┌───┐         ┌───┐┌─────────┐┌─────────┐┌─────────┐┌──────────┐»
q_0: ┤ X ├─────────┤ X ├┤ Rz(π/2) ├┤ Rx(π/2) ├┤ Rz(π/2) ├┤0         ├»
     └─┬─┘┌───────┐└─┬─┘└─────────┘└─────────┘└─────────┘│  Rzx(-ϴ) │»
q_1: ──■──┤ Rx(ϴ) ├──■───────────────────────────────────┤1         ├»
          └───────┘                                      └──────────┘»
«     ┌─────────┐┌─────────┐┌─────────┐
«q_0: ┤ Rz(π/2) ├┤ Rx(π/2) ├┤ Rz(π/2) ├
«     └─────────┘└─────────┘└─────────┘
«q_1: ─────────────────────────────────
«

パラメーター

theta (ParameterExpression |float | None)

rzx_cy

qiskit.circuit.library.rzx_cy(theta=None)

GitHub

RZXベースのCX用テンプレート - RYGate - CX.

                                                       ┌──────────┐
q_0: ──■─────────────■─────────────────────────────────┤0         ├───────────
     ┌─┴─┐┌───────┐┌─┴─┐┌────────┐┌──────────┐┌───────┐│  RZX(-ϴ) │┌─────────┐
q_1: ┤ X ├┤ RY(ϴ) ├┤ X ├┤ RY(-ϴ) ├┤ RZ(-π/2) ├┤ RX(ϴ) ├┤1         ├┤ RZ(π/2) ├
     └───┘└───────┘└───┘└────────┘└──────────┘└───────┘└──────────┘└─────────┘

パラメーター

theta (ParameterExpression |float | None)

rzx_zz1

qiskit.circuit.library.rzx_zz1(theta=None)

GitHub

RZXベースのCX用テンプレート - RZGate - CX.

global phase: π/2
                                                                              »
  q_0: ──■────────────────────────────────────────────■───────────────────────»
       ┌─┴─┐┌───────┐┌────┐┌───────┐┌────┐┌────────┐┌─┴─┐┌────────┐┌─────────┐»
  q_1: ┤ X ├┤ Rz(ϴ) ├┤ √X ├┤ Rz(π) ├┤ √X ├┤ Rz(3π) ├┤ X ├┤ Rz(-ϴ) ├┤ Rz(π/2) ├»
       └───┘└───────┘└────┘└───────┘└────┘└────────┘└───┘└────────┘└─────────┘»
  «                                    ┌──────────┐                      »
  «q_0: ───────────────────────────────┤0         ├──────────────────────»
  «     ┌─────────┐┌─────────┐┌───────┐│  Rzx(-ϴ) │┌─────────┐┌─────────┐»
  «q_1: ┤ Rx(π/2) ├┤ Rz(π/2) ├┤ Rx(ϴ) ├┤1         ├┤ Rz(π/2) ├┤ Rx(π/2) ├»
  «     └─────────┘└─────────┘└───────┘└──────────┘└─────────┘└─────────┘»
  «
  «q_0: ───────────
  «     ┌─────────┐
  «q_1: ┤ Rz(π/2) ├
  «     └─────────┘

パラメーター

theta (ParameterExpression |float | None)

rzx_zz2

qiskit.circuit.library.rzx_zz2(theta=None)

GitHub

CX - PhaseGate - CXのRZXベースのテンプレート。

global phase: π
                                                                            »
  q_0: ──■────────────■─────────────────────────────────────────────────────»
       ┌─┴─┐┌──────┐┌─┴─┐┌───────┐┌─────────┐┌─────────┐┌─────────┐┌───────┐»
  q_1: ┤ X ├┤ P(ϴ) ├┤ X ├┤ P(-ϴ) ├┤ Rz(π/2) ├┤ Rx(π/2) ├┤ Rz(π/2) ├┤ Rx(ϴ) ├»
       └───┘└──────┘└───┘└───────┘└─────────┘└─────────┘└─────────┘└───────┘»
  «     ┌──────────┐
  «q_0: ┤0         ├─────────────────────────────────
  «     │  Rzx(-ϴ) │┌─────────┐┌─────────┐┌─────────┐
  «q_1: ┤1         ├┤ Rz(π/2) ├┤ Rx(π/2) ├┤ Rz(π/2) ├
  «     └──────────┘└─────────┘└─────────┘└─────────┘

パラメーター

theta (ParameterExpression |float | None)

rzx_zz3

qiskit.circuit.library.rzx_zz3(theta=None)

GitHub

RZXベースのCX用テンプレート - RZGate - CX.

global phase: π
                                                                              »
  q_0: ──■─────────────■──────────────────────────────────────────────────────»
       ┌─┴─┐┌───────┐┌─┴─┐┌────────┐┌─────────┐┌─────────┐┌─────────┐┌───────┐»
  q_1: ┤ X ├┤ Rz(ϴ) ├┤ X ├┤ Rz(-ϴ) ├┤ Rz(π/2) ├┤ Rx(π/2) ├┤ Rz(π/2) ├┤ Rx(ϴ) ├»
       └───┘└───────┘└───┘└────────┘└─────────┘└─────────┘└─────────┘└───────┘»
  «     ┌──────────┐
  «q_0: ┤0         ├─────────────────────────────────
  «     │  Rzx(-ϴ) │┌─────────┐┌─────────┐┌─────────┐
  «q_1: ┤1         ├┤ Rz(π/2) ├┤ Rx(π/2) ├┤ Rz(π/2) ├
  «     └──────────┘└─────────┘└─────────┘└─────────┘

パラメーター

theta (ParameterExpression |float | None)

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