StabilizerState
class qiskit.quantum_info.StabilizerState(data, validate=True)
ベース: QuantumState
StabilizerState クラスである。 スタビライザーシミュレーター(参考文献 [1の]規約を使用)。 内部クラスに基づく Clifford.
from qiskit import QuantumCircuit
from qiskit.quantum_info import StabilizerState, Pauli
# Bell state generation circuit
qc = QuantumCircuit(2)
qc.h(0)
qc.cx(0, 1)
stab = StabilizerState(qc)
# Print the StabilizerState
print(stab)
# Calculate the StabilizerState measurement probabilities dictionary
print (stab.probabilities_dict())
# Calculate expectation value of the StabilizerState
print (stab.expectation_value(Pauli('ZZ')))StabilizerState(StabilizerTable: ['+XX', '+ZZ'])
{'00': 0.5, '11': 0.5}
1スタビライザーのリストが与えられる、 qiskit.quantum_info.StabilizerState.from_stabilizer_list() によって安定化された状態を返す
from qiskit.quantum_info import StabilizerState
stabilizer_list = ["ZXX", "-XYX", "+ZYY"]
stab = StabilizerState.from_stabilizer_list(stabilizer_list)参考文献
- S. Aaronson, D. Gottesman, Improved Simulation of Stabilizer Circuits, Phys. Rev. A 70, 052328 (2004). arXiv:quant-ph/0406196
StabilizerState オブジェクトを初期化する。
パラメーター
- data (StabilizerState |Clifford |Pauli |QuantumCircuit |circuit.instruction.Instruction) – スタビライザーの状態を構築するためのデータ。
- validate (bool) – スタビライザーの状態データが有効なクリフォードであることを検証する。
属性
clifford
StabilizerState クリフォードのデータを返す
dim
状態次元の合計を返す。
num_qubits
N量子ビット状態であれば量子ビット数を、そうでなければNoneを返す。
方法
conjugate
copy
dims
equiv
equiv(other)
2つの生成集合が同じ安定化群を生成する場合に真を返す。
パラメーター
other (StabilizerState) – another StabilizerState.
戻り値
他方が同じ StabilizerState を生成する生成集合を持っていれば真。
戻りの型
evolve
evolve(other, qargs=None)
クリフォード演算子によってスタビライザー状態を進化させる。
パラメーター
- other (Clifford orQuantumCircuit orqiskit.circuit.Instruction) – 進化するクリフォード演算子。
- qargs (list) – オペレータを適用するスタビライザーサブシステムの位置のリスト。
戻り値
出力スタビライザー状態。
戻りの型
レイズ
- QiskitError - もう一方が StabilizerState でない場合。
- QiskitError - 演算子のディメンジョンが、指定された StabilizerState サブシステムのディメンジョンと一致しない場合。
expand
expand(other)
テンソル積スタビライザーの状態 other ⊗ self を返す。
パラメーター
other (StabilizerState) – スタビライザー状態オブジェクト。
戻り値
テンソル積演算子 other ⊗ self。
戻りの型
レイズ
QiskitError - もう一方が StabilizerState でない場合。
expectation_value
expectation_value(oper, qargs=None)
Pauli または SparsePauliOp 演算子の期待値を計算する。
パラメーター
- oper (Pauli |SparsePauliOp) – 期待値を評価するパウリ演算子または SparsePauliOp 演算子。
- qargs (None | list) – 演算子を適用するサブシステム。
戻り値
期待値。
レイズ
QiskitError - operがPauli演算子でも SparsePauliOp 演算子でもない場合。
戻りの型
from_stabilizer_list
classmethod from_stabilizer_list(stabilizers, allow_redundant=False, allow_underconstrained=False)
スタビライザーのコレクションからスタビライザーの状態を作成する。
パラメーター
- stabilizers (Collection[str]) – スタビライザー弦リスト
- allow_redundant (bool) – 冗長な安定化子(つまり、一部の安定化子が他の安定化子の積となる場合)を許容する
- allow_underconstrained (bool) – 制約が不十分な安定化子群を許容する(すなわち、安定化子が一意の状態を指定しない)
戻り値
スタビライザーによって安定化された状態。
戻りの型
is_valid
measure
measure(qargs=None)
サブシステムを測定し、結果と測定後の状態を返す。
この関数は、測定結果のサンプリングに QuantumStates 内部乱数発生器を使用することに注意してください。 RNGシードは seed() メソッドで設定できます。
パラメーター
qargs (list or None) – None の場合は、すべてのサブシステムの測定をサンプリングする。
戻り値
ペア (outcome, state) outcome は
測定結果の文字列ラベルであり、 state は、対応する結果に対する、測定後の折りたたまれたスタビライザーの状態である。
戻りの型
probabilities
probabilities(qargs=None, decimals=None)
サブシステムの測定確率ベクトルを返す。
測定確率は、計算(対角)基準での測定に関するものである。
パラメーター
- qargs (None or list) – None の場合はすべてのサブシステムに対して返す (デフォルト: None)。
- decimals (None or int) – 値を丸める小数点以下の桁数。 None の場合、丸めは行われない(デフォルト:None)。
戻り値
確率のNumpyベクトル配列。
戻りの型
np.array
probabilities_dict
probabilities_dict(qargs=None, decimals=None)
サブシステムの測定確率辞書を返す。
測定確率は、計算(対角)基準での測定に関するものである。
この辞書表現は、辞書のキーがサブシステムの基底ベクトルを表すqudit文字列であるKetのような表記法を用いている。 サブシステムの次元が10を超える場合は、サブシステムを区別できるように、整数の間にカンマ区切りが挿入される。
パラメーター
- qargs (None or list) – None の場合はすべてのサブシステムに対して返す (デフォルト: None)。
- decimals (None or int) – 値を丸める小数点以下の桁数。 None の場合、丸めは行われない(デフォルト:None)。
戻り値
ディクト(キー)形式の測定確率。
戻りの型
probabilities_dict_from_bitstring
probabilities_dict_from_bitstring(outcome_bitstring, qargs=None, decimals=None)
サブシステムの測定確率ディクショナリを返す。 これにより、対象となる1つの結果_bitstring値のみの確率が計算され、すべての可能な結果を計算するよりもパフォーマンスが向上する。
測定確率は、計算(対角)基準での測定に関するものである。
この辞書表現は、辞書のキーがサブシステムの基底ベクトルを表すqudit文字列であるKetのような表記法を用いている。 サブシステムの次元が10を超える場合は、サブシステムを区別できるように、整数の間にカンマ区切りが挿入される。
パラメーター
- outcome_bitstring (None or str) – 測定計算の対象となる目標結果のビット列。これにより、実行される計算の回数が大幅に削減されます(デフォルト:なし)
- qargs (None or list) – None の場合はすべてのサブシステムに対して返す (デフォルト: None)。
- decimals (None or int) – 値を四捨五入する小数点以下の桁数。 None の場合、丸め処理は行われない(デフォルト:None)
戻り値
ディクト(ケット)形式の測定確率。
戻りの型
purity
purity()
量子状態は常に純粋な状態であるため、量子状態の純度を返します。
戻り値
純度(1になるはず)。
戻りの型
レイズ
QiskitError - 入力が StabilizerState でない場合。
reset
reset(qargs=None)
状態またはサブシステムを0状態にリセットする。
パラメーター
qargs (list or None) – None の場合、すべてのサブシステムが 0 状態にリセットされます (デフォルト:None)。
戻り値
リセット状態。
戻りの型
追加情報:
すべてのサブシステムがリセットされると、すべてのサブシステムでグラウンド状態が返される。 一部のサブシステムだけがリセットされた場合、この関数はそれらのサブシステムに対して測定を実行し、サブシステムを進化させて、崩壊した測定後の状態を0状態に回転させる。 このサンプリングのRNGシードは seed() メソッドで設定できます。
sample_counts
sample_counts(shots, qargs=None)
量子ビットの測定結果のディクショ ンを計算基礎にサンプリングする。
パラメーター
戻り値
サンプル数辞書。
戻りの型
追加情報
この関数は*、* 現在の状態のメジャー
probabilities()を使用して測定結果をサンプリングします。 実際に測定を実施するわけではないので、現在の状態が変更されることはない。サンプリングに使用される乱数生成器のシードは、state
seed()のメソッドを使用して固定値に設定できます。
sample_memory
sample_memory(shots, qargs=None)
量子ビットの測定結果のリストを計算基礎にサンプリングする。
パラメーター
戻り値
サンプリング順に並べたサンプリングカウントの一覧。
戻りの型
np.array
追加情報
この関数は
measure()メソッドを実装します。サンプリングに使用される乱数生成器のシードは、state
seed()のメソッドを使用して固定値に設定できます。
seed
tensor
tensor(other)
テンソル積スタビライザーの状態 self ⊗ other を返す。
パラメーター
other (StabilizerState) – スタビライザー状態オブジェクト。
戻り値
テンソル積演算子 self ⊗ other。
戻りの型
レイズ
QiskitError - もう一方が StabilizerState でない場合。
to_operator
trace
trace()
スタビライザー状態のトレースを密度行列として返す。
戻り値
トレース(1に等しいはず)。
戻りの型
レイズ
QiskitError - 入力が StabilizerState でない場合。