Skip to main content
IBM Quantum Platform

量子情報

qiskit.quantum_info


演算子

Operator(data[, input_dims, output_dims] )行列演算子クラス
Pauli[(データ)]N量子ビットのパウリ演算子。
Clifford(データ[、検証、コピー)]クリフォード群のN量子ビットユニタリー演算子。
ScalarOp([dims, coeff] )スカラー ID 演算子クラス。
SparseObservable(データ, /[, 量子ビット数] )qubit-sparseフォーマットでデータを保存するパウリ基底上の観測可能。
SparsePauliOp(データ[、係数、...] )パウリ基底表現のスパースN量子ビット演算子。
PauliLindbladMap(データ, /[, 量子ビット数] )量子ビット・スパース形式で保存されたパウリ・リンドブラッド写像。
QubitSparsePauli(データ, /[, 量子ビット数] )qubit-sparseフォーマットで保存された位相のないパウリ演算子。
QubitSparsePauliList(データ, /[, 量子ビット数] )qubit-sparseフォーマットで保存された位相なしパウリ演算子のリスト。
PhasedQubitSparsePauli(データ, /[, 量子ビット数] )量子ビット・スパース形式で格納されたパウリ演算子。
PhasedQubitSparsePauliList(データ, /[, 量子ビット数] )パウリ演算子の位相のリスト。
CNOTDihedral([data, num_qubits, validate] )CNOT-Dihedral群のN量子ビット演算子。
PauliList(データ)N量子ビットのパウリ演算子のリスト。
pauli_basis(num_qubits[, weight] )n-qubit Pauli基底の順序付き PauliList。
get_clifford_gate_names()クリフォードゲート名のリストを返す。

状態

Statevector(データ[, dims] )状態ベクトルクラス
DensityMatrix(データ[, dims] )DensityMatrix クラス
StabilizerState(データ[、検証] )StabilizerState クラスである。

チャネル

Choi(data[, input_dims, output_dims] )量子チャネルのチョイ行列表現。
SuperOp(data[, input_dims, output_dims] )量子チャネルのスーパーオペレーター表現。
Kraus(data[, input_dims, output_dims] )量子チャネルのクラウス表現。
Stinespring(data[, input_dims, output_dims] )量子チャネルのスティンスプリング表現。
Chi(data[, input_dims, output_dims] )量子チャネルのパウリ基底カイ行列表現。
PTM(data[, input_dims, output_dims] )量子チャネルのパウリ転送行列(PTM)表現。

測定

average_gate_fidelity

qiskit.quantum_info.average_gate_fidelity(channel, target=None, require_cp=True, require_tp=False)

GitHub

ノイズの多い量子チャネルの平均ゲート忠実度を返す。

平均ゲート忠実度 FaveF_{\text{ave}} は次式で与えられる

Fave(E,U)=dψψUE(ψ ⁣ψ)Uψ=dFpro(E,U)+1d+1\begin{aligned} F_{\text{ave}}(\mathcal{E}, U) &= \int d\psi \langle\psi|U^\dagger \mathcal{E}(|\psi\rangle\!\langle\psi|)U|\psi\rangle \\ &= \frac{d F_{\text{pro}}(\mathcal{E}, U) + 1}{d + 1} \end{aligned}

ここで、 Fpro(E,U)F_{\text{pro}}(\mathcal{E}, U)process_fidelity() 入力量子チャネルの E\mathcal{E}ターゲットユニタリー UUddチャネルの次元である。

パラメーター

  • channel (QuantumChannel or Operator) – ノイズの多い量子チャネル。
  • target (Operator or None) – 対象となるユニタリー演算子。 Noneの場合、ターゲットはID演算子 [Default:なし]。
  • require_cp (bool) – 入力チャンネルとターゲットチャンネルが完全に正かどうか、およびChoi行列の負の固有値を含む非CPログ警告があるかどうかをチェック[する:真]。
  • require_tp (bool) – 入力チャンネルとターゲットチャンネルがトレース保存かどうか、および部分Choi-matrixの負の固有値を含む非TPログ警告かどうかをチェックする Trout[E]ITr_{\text{out}}[\mathcal{E}] - I [デフォルト:True]。

戻り値

平均ゲート・フィデリティ FaveF_{\text{ave}}

戻りの型

浮動小数点

レイズ

QiskitError - チャンネルとターゲットの寸法が同じでないか、入力と出力の寸法が異なる場合。

process_fidelity

qiskit.quantum_info.process_fidelity(channel, target=None, require_cp=True, require_tp=True)

GitHub

ノイズの多い量子チャネルのプロセス忠実度を返します。

2つの量子チャネル間のプロセス忠実度 Fpro(E,F)F_{\text{pro}}(\mathcal{E}, \mathcal{F}) E,F\mathcal{E}, \mathcal{F} は次式で与えられる

Fpro(E,F)=F(ρE,ρF)F_{\text{pro}}(\mathcal{E}, \mathcal{F}) = F(\rho_{\mathcal{E}}, \rho_{\mathcal{F}})

ここで、 FFstate_fidelity()ρE=ΛE/d\rho_{\mathcal{E}} = \Lambda_{\mathcal{E}} / d は正規化された ChoiE\mathcal{E} 行列であり, ddE\mathcal{E} の入力次元である.

ターゲット・チャンネルがユニタリーである場合、次のようになる

Fpro(E,U)=Tr[SUSE]d2F_{\text{pro}}(\mathcal{E}, U) = \frac{Tr[S_U^\dagger S_{\mathcal{E}}]}{d^2}

ここで、 SE,SUS_{\mathcal{E}}, S_{U}SuperOp はそれぞれ入力量子チャネル E\mathcal{E}ターゲットユニタリー UU の行列であり、 dd はチャネルの入力次元である。

パラメーター

  • channel (Operator or QuantumChannel) – 入力量子チャンネル。
  • target (Operator or QuantumChannel or None) – ターゲットの量子チャネル。 Noneの場合、ターゲットはID演算子 [Default:なし]。
  • require_cp (bool) – 入力チャンネルとターゲットチャンネルが完全に正かどうか、およびChoi行列の負の固有値を含む非CPログ警告があるかどうかをチェック[する:真]。
  • require_tp (bool) – 入力チャンネルとターゲットチャンネルがトレース保存かどうか、および部分Choi-matrixの負の固有値を含む非TPログ警告かどうかをチェックする Trout[E]ITr_{\text{out}}[\mathcal{E}] - I [デフォルト:True]。

戻り値

プロセスの忠実度 FproF_{\text{pro}}.

戻りの型

浮動小数点

レイズ

QiskitError - チャンネルとターゲットが同じ寸法でない場合。

gate_error

qiskit.quantum_info.gate_error(channel, target=None, require_cp=True, require_tp=False)

GitHub

ノイズの多い量子チャネルのゲートエラーを返します。

ゲートエラー EE は、平均ゲート不忠実度によって与えられる

E(E,U)=1Fave(E,U)E(\mathcal{E}, U) = 1 - F_{\text{ave}}(\mathcal{E}, U)

ここで Fave(E,U)F_{\text{ave}}(\mathcal{E}, U)average_gate_fidelity() 入力量子チャンネル E\mathcal{E}ターゲット・ ユニタリー UU

パラメーター

  • channel (QuantumChannel) – ノイズの多い量子チャネル。
  • target (Operator or None) – 対象となるユニタリー演算子。 Noneの場合、ターゲットはID演算子 [Default:なし]。
  • require_cp (bool) – 入力チャンネルとターゲットチャンネルが完全に正かどうか、およびChoi行列の負の固有値を含む非CPログ警告があるかどうかをチェック[する:真]。
  • require_tp (bool) – 入力チャンネルとターゲットチャンネルがトレース保存かどうか、および部分Choi-matrixの負の固有値を含む非TPログ警告かどうかをチェックする Trout[E]ITr_{\text{out}}[\mathcal{E}] - I [デフォルト:True]。

戻り値

平均ゲートエラー EE

戻りの型

浮動小数点

レイズ

QiskitError - チャンネルとターゲットの寸法が同じでないか、入力と出力の寸法が異なる場合。

diamond_norm

qiskit.quantum_info.diamond_norm(choi, solver='SCS', **kwargs)

GitHub

入力量子チャンネルオブジェクトのダイヤモンドノルムを返す。

この関数は、参考文献 [1の]半定義プログラムを用いて、入力量子チャンネルオブジェクトの完全境界トレースノルム(しばしばダイアモンドノルムと呼ばれる)を計算する。

パラメーター

  • choi (Choi or QuantumChannel) – 量子チャネルオブジェクトまたはチョイ行列配列。
  • solver (str) – 使用するソルバー。
  • kwargs - CVXPYソルバに渡すオプション引数.

戻り値

完全拘束トレースノルム E\|\mathcal{E}\|_{\diamond}

戻りの型

浮動小数点

レイズ

QiskitError - CVXPY パッケージが見つからない場合。

追加情報:

この関数の入力は、通常、CPTP量子チャネルではなく、2つの量子チャネルの ΔE\|\Delta\mathcal{E}\|_\diamondΔE=E1E2\Delta\mathcal{E} = \mathcal{E}_1 - \mathcal{E}_2 )である。

参照:

J. ワトラスだ。 "Simpler semidefinite programs for completely bounded norms", arXiv:1207.5726 [quant-ph] (2012).

この機能には、オプションのCVXPYパッケージがインストールされている必要があります。 追加のkwargsは cvxpy.solve 関数に渡される。 利用可能なSDPソルバーについては、CVXPYのドキュメントを参照してください。

state_fidelity

qiskit.quantum_info.state_fidelity(state1, state2, validate=True)

GitHub

2つの量子状態の間の状態の忠実度を返します。

密度行列入力状態 ρ1,ρ2\rho_1, \rho_2 の状態忠実度 FF は次式で与えられる

F(ρ1,ρ2)=Tr[ρ1ρ2ρ1]2.F(\rho_1, \rho_2) = Tr[\sqrt{\sqrt{\rho_1}\rho_2\sqrt{\rho_1}}]^2.

ρ1=ψ1 ⁣ψ1\rho_1 = |\psi_1\rangle\!\langle\psi_1| いずれかの状態が純粋な状態である場合、これは F(ρ1,ρ2)=ψ1ρ2ψ1F(\rho_1, \rho_2) = \langle\psi_1|\rho_2|\psi_1\rangle に単純化される。

パラメーター

戻り値

州のフィデリティ F(ρ1,ρ2)F(\rho_1, \rho_2).

戻りの型

浮動小数点

レイズ

QiskitError - validate=True 、入力が無効な量子状態である場合。

purity

qiskit.quantum_info.purity(state, validate=True)

GitHub

量子状態の純度を計算する。

密度行列の純度 ρ\rho は次のとおりである

Purity(ρ)=Tr[ρ2]\text{Purity}(\rho) = Tr[\rho^2]

パラメーター

  • state (Statevector orDensityMatrix) – 量子状態。
  • validate (bool) – 入力状態が有効かどうかをチェックする [Default:真]

戻り値

the purity Tr[ρ2]Tr[\rho^2].

戻りの型

浮動小数点

レイズ

QiskitError - 入力が有効な量子状態でない場合。

concurrence

qiskit.quantum_info.concurrence(state)

GitHub

量子状態の同時性を計算する。

の同時性は次式で与えられる。 Statevectorψ|\psi\rangle は次式で与えられる

C(ψ)=2(1Tr[ρ02])C(|\psi\rangle) = \sqrt{2(1 - Tr[\rho_0^2])}

ここで、 ρ0=Tr1[ψ ⁣ψ]\rho_0 = Tr_1[|\psi\rangle\!\langle\psi|] は、入力状態の partial_trace() を適用して得られる縮約状態である。

密度行列の場合、同時性は2量子ビットの状態に対してのみ定義され、次式で与えられる:

C(ρ)=max(0,λ1λ2λ3λ4)C(\rho) = \max(0, \lambda_1 - \lambda_2 - \lambda_3 - \lambda_4)

ここで、 λ1λ2λ3λ4\lambda _1 \ge \lambda _2 \ge \lambda _3 \ge \lambda _4 は行列 R=ρ(YY)ρ(YY)ρR=\sqrt{\sqrt{\rho }(Y\otimes Y)\overline{\rho}(Y\otimes Y)\sqrt{\rho}} の順序付き固有値である。

パラメーター

state (Statevector orDensityMatrix) – 2量子ビットの量子状態。

戻り値

同意する。

戻りの型

浮動小数点

レイズ

  • QiskitError - 入力状態が有効でない場合 QuantumState。
  • QiskitError - 入力が二分割でない場合 QuantumState。
  • QiskitError - 密度行列入力が2量子ビット状態でない場合。

entropy

qiskit.quantum_info.entropy(state, base=2)

GitHub

量子状態のフォン・ノイマン・エントロピーを計算しなさい。

エントロピー SS は次式で与えられる

S(ρ)=Tr[ρlog(ρ)]S(\rho) = - Tr[\rho \log(\rho)]

パラメーター

戻り値

フォン・ノイマン・エントロピーS(rho)。

戻りの型

浮動小数点

レイズ

QiskitError - 入力状態が有効でない場合 QuantumState。

entanglement_of_formation

qiskit.quantum_info.entanglement_of_formation(state)

GitHub

量子状態を形成するエンタングルメントを計算する。

入力量子状態は、2分割状態ベクトルか2量子ビット密度行列でなければならない。

パラメーター

state (Statevector orDensityMatrix) – 2量子ビットの量子状態。

戻り値

形成のもつれ。

戻りの型

浮動小数点

レイズ

  • QiskitError - 入力状態が有効でない場合 QuantumState。
  • QiskitError - 入力が二分割でない場合 QuantumState。
  • QiskitError - 密度行列入力が2量子ビット状態でない場合。

mutual_information

qiskit.quantum_info.mutual_information(state, base=2)

GitHub

二分割状態の相互情報を計算する。

相互情報量 II は次式で与えられる:

I(ρAB)=S(ρA)+S(ρB)S(ρAB)I(\rho_{AB}) = S(\rho_A) + S(\rho_B) - S(\rho_{AB})

ここで、 ρA=TrB[ρAB],ρB=TrA[ρAB]\rho_A=Tr_B[\rho_{AB}], \rho_B=Tr_A[\rho_{AB}]、は二分割状態 ρAB\rho_{AB} の縮小密度行列である。

パラメーター

戻り値

相互情報 I(ρAB)I(\rho_{AB})

戻りの型

浮動小数点

レイズ

  • QiskitError - 入力状態が有効でない場合 QuantumState。
  • QiskitError - 入力が二分割でない場合 QuantumState。

ユーティリティー関数

Quaternion(データ)クォータニオンを表すクラス。

partial_trace

qiskit.quantum_info.partial_trace(state, qargs)

GitHub

量子状態の一部をトレースして縮小密度行列を返す。

すべてのサブシステムをトレースすると、入力状態の trace() を返す。

パラメーター

戻り値

縮小密度行列。

戻りの型

DensityMatrix

レイズ

QiskitError - 入力状態が無効の場合

schmidt_decomposition

qiskit.quantum_info.schmidt_decomposition(state, qargs)

GitHub

純粋量子状態のシュミット分解を返す。

任意の二分割状態の場合:

ψAB=i,jcijxiAyjB,|\psi\rangle_{AB} = \sum_{i,j} c_{ij} |x_i\rangle_A \otimes |y_j\rangle_B,

そのシュミット分解は、k上の単一インデックスの和で与えられる:

ψAB=kλkukAvkB|\psi\rangle_{AB} = \sum_{k} \lambda_{k} |u_k\rangle_A \otimes |v_k\rangle_B

ここで、 ukA|u_k\rangle_AvkB|v_k\rangle_B は、それぞれの空間 AABB におけるベクトルの正規直交集合であり、シュミット係数 λk\lambda_k は正の実数値である。

パラメーター

  • state (Statevector orDensityMatrix) – 入力状態。
  • qargs (list) – サブシステム BB に対応する入力状態位置のリスト。

戻り値

タプルのリスト (s, u, v), s (float) はシュミット係数 λk\lambda_k, u (Statevector), v (Statevector) はシュミットベクトル ukA|u_k\rangle_A, ukB|u_k\rangle_B, それぞれ。

戻りの型

リスト

レイズ

  • QiskitError - 入力 qargs が入力状態の位置のリストでない場合。
  • QiskitError - Input qargsがInput stateの適切な部分集合でない場合。

Qiskitでは、量子ビットはリトルエンディアン表記で並べられ、最下位量子ビットのインデックスが小さくなる。 例えば、4量子ビットのシステムは q3q2q1q0|q_3q_2q_1q_0\rangle のように表される。この表記法を用いると、 qargs=[0] を設定すると、 q3q2q1Aq0B|q_3q_2q_1\rangle_A\otimes|q_0\rangle_B のように状態が分割される。さらに、量子ビットは渡される順番に関係なく、この表記法で整理される。 例えば、 qargs=[1,2] または qargs=[2,1] のどちらかを渡すと、 q3q0Aq2q1B|q_3q_0\rangle_A\otimes|q_2q_1\rangle_B のように分割される。

shannon_entropy

qiskit.quantum_info.shannon_entropy(pvec, base=2)

GitHub

確率ベクトルのシャノン・エントロピーを計算する。

確率ベクトル p=[p0,...,pn1]\vec{p} = [p_0, ..., p_{n-1}] のシャノン・エントロピーは次のように定義される

H(p)=i=0n1pilogb(pi)H(\vec{p}) = \sum_{i=0}^{n-1} p_i \log_b(p_i)

ここで、 bb は対数ベースであり(デフォルトは2)、 0logb(0)00 \log_b(0) \equiv 0

パラメーター

  • pvec (array_like) – 確率ベクトル。
  • base (int) – 対数の底[デフォルト:2].

戻り値

シャノンエントロピーH(pvec)。

戻りの型

浮動小数点

commutator

qiskit.quantum_info.commutator(a, b)

GitHub

aとbのコミュテーターを計算せよ。

abba.ab - ba.

パラメーター

  • a (OperatorTypeT) – オペレーターa。
  • b (OperatorTypeT) – オペレーターb。

戻り値

整流子

戻りの型

OperatorTypeT

anti_commutator

qiskit.quantum_info.anti_commutator(a, b)

GitHub

aとbの反共役を計算せよ。

ab+ba.ab + ba.

パラメーター

  • a (OperatorTypeT) – オペレーターa。
  • b (OperatorTypeT) – オペレーターb。

戻り値

反整流子

戻りの型

OperatorTypeT

double_commutator

qiskit.quantum_info.double_commutator(a, b, c, *, commutator=True)

GitHub

a、b、cの対称二重コミュテータを計算せよ。

[1の]式( 13.6.18 )も参照。

コミュテータがTrueの場合

[[A,B],C]/2+[A,[B,C]]/2=(2ABC+2CBABACCABACBBCA)/2.[[A, B], C]/2 + [A, [B, C]]/2 = (2ABC + 2CBA - BAC - CAB - ACB - BCA)/2.

コミュテータが False の場合、次の値を返す

{[A,B],C}/2+{A,[B,C]}/2=(2ABC2CBABAC+CABACB+BCA)/2.\lbrace[A, B], C\rbrace/2 + \lbrace A, [B, C]\rbrace/2 = (2ABC - 2CBA - BAC + CAB - ACB + BCA)/2.

パラメーター

  • a (OperatorTypeT) – オペレーターa。
  • b (OperatorTypeT) – オペレーターb。
  • c (OperatorTypeT) – オペレーター c.
  • commutator (bool) – True の場合は二重整流子を計算し、 の場合は二重反整流子を計算する。 False

戻り値

二重整流子

戻りの型

OperatorTypeT

参考文献

[1] : R. McWeeny.

分子量子力学の方法。 2nd Edition, Academic Press, 1992. ISBN 0-12-486552-6.


ランダム

random_statevector

qiskit.quantum_info.random_statevector(dims, seed=None)

GitHub

ランダムな状態ベクトルを生成する。

状態ベクトルは一様分布からサンプリングされる。 これはユニタリー行列上のハール測度によって誘導される測度である。

パラメーター

  • dims (int ortuple) – 国家の次元である。
  • seed (int or np.random.Generator) – オプションだ。 RNGに固定シードまたはジェネレーターを設定する。

戻り値

ランダムな状態ベクトル。

戻りの型

状態ベクトル

参照:

K. ZyczkowskiとH. Sommers (2001), "Induced measures in space of mixed quantum states", J. フィジーク。 A:数学。 Gen. 34 7111.

random_density_matrix

qiskit.quantum_info.random_density_matrix(dims, rank=None, method='Hilbert-Schmidt', seed=None)

GitHub

ランダムな密度行列を生成する。

パラメーター

  • dims (int ortuple) – DensityMatrix の寸法。
  • rank (int or None) – 密度行列の次元。 デフォルト値はフルランクです。
  • method (string) – オプションだ。 使うべき方法だ。 'Hilbert-Schmidt': (デフォルト) Hilbert-Schmidt メトリックからのサンプル。 Bures」:Buresメトリックからのサンプル。
  • seed (int or np.random.Generator) – オプションだ。 RNGに固定シードまたはジェネレーターを設定する。

戻り値

ランダム密度行列。

戻りの型

DensityMatrix

レイズ

QiskitError - メソッドが有効でない場合

random_unitary

qiskit.quantum_info.random_unitary(dims, seed=None)

GitHub

ランダムなユニタリー演算子を返す。

演算子はユニタリー・ハール測度からサンプリングされる。

パラメーター

  • dims (int ortuple) – オペレータの入力寸法。
  • seed (int or np.random.Generator) – オプションだ。 RNGに固定シードまたはジェネレーターを設定する。

戻り値

ユニタリー演算子。

戻りの型

オペレーター

random_hermitian

qiskit.quantum_info.random_hermitian(dims, traceless=False, seed=None)

GitHub

ランダムなエルミート演算子を返す。

演算子はガウシアン・ユニタリー・アンサンブルからサンプリングされる。

パラメーター

  • dims (int ortuple) – オペレータの入力次元。
  • traceless (bool) – オプションだ。 Trueの場合、対角エントリを減算して、トレースレスなエルミート演算子を返す(デフォルト:False)。
  • seed (int or np.random.Generator) – オプションだ。 RNGに固定シードまたはジェネレーターを設定する。

戻り値

エルミート作用素。

戻りの型

オペレーター

random_pauli

qiskit.quantum_info.random_pauli(num_qubits, group_phase=False, seed=None)

GitHub

ランダムなパウリを返す。

パラメーター

  • num_qubits (int) – 量子ビットの数。
  • group_phase (bool) – オプションだ。 True の場合、 ラ ンダム位相が生成 さ れます。 そうでない場合は、パウリ係数が+1になるように位相が設定される(デフォルト:False)。
  • seed (int or np.random.Generator) – オプションだ。 RNGに固定シードまたはジェネレーターを設定する。

戻り値

ランダムなパウリ

戻りの型

パウリ

random_clifford

qiskit.quantum_info.random_clifford(num_qubits, seed=None)

GitHub

ランダムなクリフォード演算子を返す。

クリフォードは参考文献 [1の]方法でサンプリングされる。

パラメーター

  • num_qubits (int) – クリフォードの量子ビット数
  • seed (int or np.random.Generator) – オプションだ。 RNGに固定シードまたはジェネレーターを設定する。

戻り値

ランダムなクリフォード作用素。

戻りの型

Clifford

参照:

  1. S. ブラヴィイとD. マスロフ、 ハダマード自由回路がクリフォード群の構造を暴露arXiv:2003.09412 [quant-ph]。

random_quantum_channel

qiskit.quantum_info.random_quantum_channel(input_dims=None, output_dims=None, rank=None, seed=None)

GitHub

ランダムな CPTP 量子チャネルを返す。

これは、ユニタリー・ハール測度からランダムなアイソメトリをサンプリングすることで、量子チャネルのスタインスプリング演算子を構成する。

パラメーター

  • input_dims (int ortuple) – チャンネルの入力次元。
  • output_dims (int ortuple) – チャンネルの出力次元。
  • rank (int) – オプションだ。 量子チャネルChoi行列のランク。
  • seed (int or np.random.Generator) – オプションだ。 RNGに固定シードまたはジェネレーターを設定する。

戻り値

量子チャンネル演算子。

戻りの型

スティンスプリング

レイズ

QiskitError - ランクまたは寸法が無効な場合。

random_cnotdihedral

qiskit.quantum_info.random_cnotdihedral(num_qubits, seed=None)

GitHub

ランダムな CNOTDihedral 要素を返す。

パラメーター

  • num_qubits (int) – CNOTDihedralオブジェクトの量子ビット数。
  • seed (int or RandomState) – オプションだ。 RNGに固定シードまたはジェネレーターを設定する。

戻り値

ランダムなCNOTDihedral要素。

戻りの型

CNOT二面体

random_pauli_list

qiskit.quantum_info.random_pauli_list(num_qubits, size=1, seed=None, phase=True)

GitHub

ランダムな PauliList を返す。

パラメーター

  • num_qubits (int) – 量子ビットの数。
  • size (int) – オプションだ。 Pauli リ ス ト の長 さ (デ フ ォ ル ト : 1)。
  • seed (int or np.random.Generator) – オプションだ。 RNGに固定シードまたはジェネレーターを設定する。
  • phase (bool) – Trueの場合、パウリ位相はランダムになり、そうでない場合は位相は0に固定される。 [デフォルト: True]

戻り値

a random PauliList.

戻りの型

PauliList


解析

hellinger_distance

qiskit.quantum_info.hellinger_distance(dist_p, dist_q)

GitHub

2つのカウント分布間のヘリンジャー距離を計算します。

パラメーター

  • dist_p (dict) – カウントの最初のディクテーション。
  • dist_q (dict) – カウントの2番目のディクテーション。

戻り値

距離

戻りの型

浮動小数点

参考文献

ヘリンガー距離 @ wikipedia

hellinger_fidelity

qiskit.quantum_info.hellinger_fidelity(dist_p, dist_q)

GitHub

2つのカウント分布間のヘリンジャー忠実度を計算します。

忠実度は (1H2)2\left(1-H^{2}\right)^{2}、Hはヘリンジャー距離である。 この値は [0, 1の]範囲に収まる。

これは標準的な古典的忠実度( F(Q,P)=(ipiqi)2F(Q,P)=\left(\sum_{i}\sqrt{p_{i}q_{i}}\right)^{2} )と等価であり、対角密度行列の場合は量子状態の忠実度と等しくなる。

パラメーター

  • dist_p (dict) – カウントの最初のディクテーション。
  • dist_q (dict) – カウントの2番目のディクテーション。

戻り値

身元保証

戻りの型

浮動小数点

from qiskit import QuantumCircuit
from qiskit.quantum_info.analysis import hellinger_fidelity
from qiskit.providers.basic_provider import BasicSimulator

qc = QuantumCircuit(5, 5)
qc.h(2)
qc.cx(2, 1)
qc.cx(2, 3)
qc.cx(3, 4)
qc.cx(1, 0)
qc.measure(range(5), range(5))

sim = BasicSimulator()
res1 = sim.run(qc).result()
res2 = sim.run(qc).result()

hellinger_fidelity(res1.get_counts(), res2.get_counts())

参考文献

量子忠実度 @ wikipedia ヘリンジャー距離 @ wikipedia

Z2Symmetries(symmetries, sq_paulis, sq_list)$Z_2$ 対称性コンバータは、問題のハミルトニアンから対称性を識別し、それを用いて、この問題に対するポーリスのような演算子のテーパー表現(より効率的な表現)を提供する。
このページは役に立ちましたか?
バグや誤字の報告、またはコンテンツの要求はGitHubで行ってください。