Skip to main content
IBM Quantum Platform

回路ライブラリー

qiskit.circuit.library

回路ライブラリーは、貴重な回路とビルディング・ブロックのコレクションです。 私たちがこれらを価値あるものと呼ぶ理由はそれぞれ異なる。 例えば、アルゴリズムのビルディング・ブロックとして使用されたり、ベンチマークとして機能したり、古典的なシミュレーションが困難と推測される回路であったりする。

回路ライブラリの要素は QuantumCircuitまたは Instructionのどちらかであり、簡単に調査したり、他の回路に接続したりすることができる。 これにより、より高い抽象度での高速プロトタイピングと回路設計が可能になる。

例:

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. ライブラリはまた、標準的なコンパイラ指令 (a Barrierなど)や非単位演算( Measure).

抽象的な操作

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

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. 結果として、これらのメソッドはすべて to_matrix(), power()control()を持っている。

例:

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(theta, phi, lam[, label] )ZYZオイラー角による一般的な単一量子ビット回転。
U1Gate(θ[、ラベル] )Z軸を中心とした1量子ビットの回転。
U2Gate(phi, lam[, label] )X+Z軸を中心とした1量子ビットの回転。
U3Gate(theta, phi, lam[, 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(theta[, label, ctrl_state,...] )制御位相ゲート。
CRXGate(theta[, label, ctrl_state, ˶´⚰︎`˵] )制御されたRXゲート。
CRYGate(theta[, label, ctrl_state, ˶´⚰︎`˵] )制御されたRYゲート。
CRZGate(theta[, label, ctrl_state, ˶´⚰︎`˵] )制御されたRZゲート。
CSGate(˶*args[,˶*force_mutable] )制御Sゲート。
CSdgGate(˶*args[,˶*force_mutable] )制御付き - SS^\dagger ゲート。
CSXGate(˶*args[,˶*force_mutable] )制御された√Xゲート。
CUGate(シータ, ファイ, ラム, ガンマ[, ラベル,...] )Controlled-Uゲート(4パラメータ2量子ビットゲート)。
CU1Gate(theta[, label, ctrl_state, ˶´⚰︎`˵] )Controlled-U1 ゲート
CU3Gate(シータ, ファイ, ラム[, ラベル,...] )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(パウリ[, ラベル] )パウリ積測定手順書

一般化されたゲート

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

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(斜め)一般的な斜め量子ゲート。
PermutationGate(パターン)量子ビットを並べ替えるゲート。
MCMTGate(gate, num_ctrl_qubits,...[,...] )マルチ制御マルチターゲットゲート、任意の単一制御ターゲットゲート用。
MCPhaseGate(lam, num_ctrl_qubits[, label,...] )マルチ制御位相ゲート。
MCXGate([num_ctrl_qubits, label,...] )一般的なマルチコントロールXゲート。
MSGate(num_qubits, theta[, label] )メルマー・ソーレンセン門。
RVGate(v_x, v_y, v_z[, basis] )任意の回転軸 v\vec{v} を中心とした回転。 v2\|\vec{v}\|_2 はラジアン単位の回転角。
PauliGate(ラベル)マルチ量子ビットのパウリゲート。
PauliProductRotationGate(pauli, angle[, label] )一般的なパウリ回転。
LinearFunction(linear[, validate_input] )n量子ビットの線形可逆回路。
Isometry(isometry, num_ancillas,...[,...] )mm から nn クビットへの任意のアイソメトリーの分解。
UnitaryGate(data[, label, check_input,...] )ユニタリ行列で指定される量子ゲートのクラス。
UCGate(gate_list[, up_to_diagonal, mux_simp] )均一制御ゲート(多重化ゲートとも呼ばれる)。
UCPauliRotGate(angle_list, rot_axis)一様に制御されたパウリ回転。
UCRXGate(angle_list)一様に制御されたパウリ-X回転。
UCRYGate(angle_list)一様に制御されたパウリ-Y回転。
UCRZGate(angle_list)一様に制御されたパウリ-Z回転。

上記のオブジェクトは Gate または Instructionを派生させ、コンパイラが抽象的なレベルで推論できるようにしている。 従って、次のようなものを使用することをお勧めする。 QuantumCircuit を導出するものであり、熱心に構築されている。

Diagonal(斜め)対角変換を行う回路。
MCMT(gate, num_ctrl_qubits, num_target_qubits)マルチ制御マルチターゲットゲート、任意の単一制御ターゲットゲート用。
MCMTVChain(gate, num_ctrl_qubits,...)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([num_qubits, approximation_degree,...] )量子フーリエ変換回路。

算術

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

毒蛇

加算器は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[, degree,...] )入力関数に対する区分的チェビシェフ近似。

その他の算術関数

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

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

上記のオブジェクトは Gateこれは、コンパイラが抽象的なレベルでこれらを推論することを可能にする。 従って、以下のような導出ではなく、これらを使用することをお勧めする。 QuantumCircuit を派生させるものである。

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

特定の量子回路

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

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

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

FourierChecking(f, g)フーリエ検査回路。
GraphState(adjacency_matrix)グラフの状態を準備する回路。
HiddenLinearFunction(adjacency_matrix)隠れ一次関数問題を解く回路。
IQP交流瞬間量子多項式(IQP)回路。
QuantumVolume(num_qubits[, depth, seed,...] )量子ボリュームモデル回路。
PhaseEstimation(num_evaluation_qubits, unitary)位相推定回路。
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(num_qubits[, entanglement,...] )実振幅の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([num_qubits, entanglement,...] )実振幅2ローカル回路。
EfficientSU2( [num_qubits、 su2_gates、...] )ハードウェア的に効率的なSU(2) 2ローカル回路。
EvolvedOperatorAnsatz[(オペレーター、レップ、...)]進化した演算子ansatz。
ExcitationPreserving([num_qubits, mode,...] )発見的励起保存波動関数アサッツ。
QAOAAnsatz([cost_operator, reps,...] )カスタム初期状態とミキサーをサポートした一般化QAOA量子回路。

データ符号化回路

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

pauli_feature_map(feature_dimension[, reps,...] )パウリ拡大回路。
z_feature_map(feature_dimension[, reps,...] )1次のパウリZ進化回路。
zz_feature_map(feature_dimension[, reps,...] )2次パウリ-Z進化回路。

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

PauliFeatureMap([feature_dimension, reps,...] )パウリ拡大回路。
ZFeatureMap(feature_dimension[, reps,...] )1次のパウリZ進化回路。
ZZFeatureMap(feature_dimension[, reps,...] )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(expression[, var_order, label] )位相オラクルを実装します。
BitFlipOracleGate(expression[, var_order, label] )ビット反転オラクルの実装

の重要な構成要素であり、グローバーのアルゴリズム( grover_operator()).

に加えて Gate-ベースの実装に加えて QuantumCircuit-バージョンの位相反転オラクル

PhaseOracle(expression[, 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-トフォリ)テンプレート回路

のテンプレート回路 XGate, CXGateおよび 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:

     ┌───┐┌───┐┌───┐┌───┐┌───┐┌───┐
q_0: ┤ 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.

     ┌───┐         ┌───┐┌─────────┐┌─────────┐┌─────────┐┌──────────┐»
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.

                                                                            »
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ベースのテンプレート。

                                                                          »
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.

                                                                            »
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で行ってください。