Skip to main content
IBM Quantum Platform

PhasedQubitSparsePauli

class qiskit.quantum_info.PhasedQubitSparsePauli(data, /, num_qubits=None)

GitHub

ベース: object

量子ビット・スパース形式で格納されたパウリ演算子。


表現

P=(i)mnAi(n)P = (-i)^m \bigotimes_n A^{(n)}_i パウリ演算子とは、 Ai(n){I,X,Y,Z}A^{(n)}_i \in \{I, X, Y, Z\}、位相指数と呼ばれる整数 mm の形を持つ1量子ビットのパウリ演算子のテンソル積である。 の内部表現は PhasedQubitSparsePauli には非同一1量子ビットのパウリ演算子のみが格納される。

内部的には、各1量子ビットのパウリ演算子は数値で格納されている。 のドキュメントを参照のこと。 QubitSparsePauli の説明を参照してください。 paulis および indices 属性の説明を参照してください。

さらに、演算子の位相は phase 属性で取得することができ、グループ位相指数を返します。 Pauli.


建設

PhasedQubitSparsePauli はいくつかのコンストラクタを定義している。 デフォルトのコンストラクタは、入力の型に基づいて、より特殊なコンストラクタのいずれかに委譲しようとする。 特定のコンストラクタを使用することで、よりコントロールしやすくなる。

メソッド
サマリー
from_label()密な文字列ラベルを PhasedQubitSparsePauli.
from_sparse_label()を構築します。 PhasedQubitSparsePauli フェーズ、疎な文字列ラベル、およびそれらが適用される量子ビットのタプルから構築します。
from_pauli()シングル PauliPhasedQubitSparsePauli.
from_raw_parts()生データ配列と位相からリストを構築する。

__new__

__new__(data, /, num_qubits=None)

のデフォルトコンストラクタは QubitSparsePauli.

これは、 data の引数の型に基づいて、 明示的な変換コンストラクタ・メソッドのいずれかに委譲する。 num_qubits が与えられ、 data の型が暗示するコンストラクタが数値を受け付けない場合、与えられた整数は入力と一致しなければならない。

パラメーター

  • data - 入力のデータ型。 この場合、入力はコピーされる。 QubitSparsePauliこの場合、入力はコピーされます。 from_label() または from_sparse_label().
  • num_qubits (int|None) – 演算子の量子ビット数(オプション)。 ほとんどのデータ入力では、これは推測できるので、渡す必要はない。 これはスパースラベルフォーマットでのみ必要である。 不必要に与えられる場合は、入力されたデータと一致しなければならない。

属性

indices

各非同一シングル量子ビットの項のインデックスに関する読み取り専用ビュー。

インデックスは常にソート順となる。

num_qubits

その項が定義されている量子ビットの数。

paulis

個々の単一量子ビット項に関する読み取り専用ビュー。

配列の中で有効な値は、対応する Pauli を持つものだけである。

phase

フェーズの読み取り専用ビュー。


方法

commutes

commutes(other)

self` が別のフェーズド・クビット・スパース・パウリと交 通するかチェックする。

パラメーター

other (PhasedQubitSparsePauli) – との整合をチェックするために、位相量子ビットのスパース・パウリを使用する。

compose

compose(other)

別の構成 PhasedQubitSparsePauli.

パラメーター

other (PhasedQubitSparsePauli) – 量子ビット・スパース・パウリで作曲する。

copy

copy()

今期のコピーを入手する

from_label

static from_label(label, /)

密な文字列ラベルから構築する。

ラベルはアルファベット 'IXYZ' の並びでなければならない。 ラベルはビット列と同様に解釈される。 つまり、一番右の文字が0番量子ビットに対応し、以下同様である。 のラベルと同じである。 PauliSparsePauliOp.

パラメーター

label (str) – 濃密なラベル。

>>> QubitSparsePauli.from_label("IIIIXZI")
<QubitSparsePauli on 7 qubits: X_2 Z_1>
>>> label = "IYXZI"
>>> pauli = Pauli(label)
>>> assert QubitSparsePauli.from_label(label) == QubitSparsePauli.from_pauli(pauli)

from_pauli

static from_pauli(pauli, /)

を構築する。 PhasedQubitSparsePauli インスタンスから Pauli インスタンスから構築する。

パラメーター

pauli (Pauli) – コンバートするシングル・パウリ。

>>> label = "iIYXZI"
>>> pauli = Pauli(label)
>>> PhasedQubitSparsePauli.from_pauli(pauli)
<PhasedQubitSparsePauli on 5 qubits: iY_3 X_2 Z_1>
>>> assert PhasedQubitSparsePauli.from_label(label) == PhasedQubitSparsePauli.from_pauli(pauli)

from_raw_parts

static from_raw_parts(num_qubits, paulis, indices, phase=0)

を構築する。 PhasedQubitSparsePauli を、クラスレベルのドキュメントに記述されている必要なデータ表現に一致する生のNumpy配列から構築します。

各配列のデータは、新しい、成長可能なRust-spaceアロケーションにコピーされる。

パラメーター

  • num_qubits - 演算子が作用する量子ビットの数。
  • paulis - 単一量子ビット項のリスト。 のNumpy配列でなければならない。 uint8 (これは Pauli).
  • indices - 各1量子ビット項が対応する量子ビットの並べ替えリスト。 これはd型のNumpy配列でなければならない。 uint32.
  • phase - 演算子の位相指数.

100量子ビットのうち50量子ビットに作用する ZZ 演算子を構成する。

>>> num_qubits = 100
>>> terms = np.array([PhasedQubitSparsePauli.Pauli.Z], dtype=np.uint8)
>>> indices = np.array([50], dtype=np.uint32)
>>> phase = 0
>>> PhasedQubitSparsePauli.from_raw_parts(num_qubits, terms, indices, phase)
<PhasedQubitSparsePauli on 100 qubits: Z_50>

from_sparse_label

static from_sparse_label(sparse_label, num_qubits)

位相指数を表すint、パウリの文字列、および対応する量子ビットのインデックスのタプルとして与えられるスパースラベルから、位相付き量子ビットのスパースパウリを構築します。

これは SparsePauliOp.from_sparse_list().

パラメーター

  • sparse_label (tuple[int, str, Sequence[int]]) – ラベルと、それぞれの単一量子ビット項が適用される量子ビット。
  • num_qubits (int) – 演算子が作用する量子ビットの数。

シンプルなパウリを作る:

>>> PhasedQubitSparsePauli.from_sparse_label(
...     (0, "ZX", (1, 4)),
...     num_qubits=5,
... )
<PhasedQubitSparsePauli on 5 qubits: X_4 Z_1>

このメソッドは from_label()もしタプルのqubit-argumentsフィールドが減少する整数に設定されていれば:

>>> label = "XYXZ"
>>> from_label = PhasedQubitSparsePauli.from_label(label)
>>> from_sparse_label = PhasedQubitSparsePauli.from_sparse_label(
...     (0, label, (3, 2, 1, 0)),
...     num_qubits=4
... )
>>> assert from_label == from_sparse_label

identity

static identity(num_qubits)

指定された数の量子ビットのID演算子を取得します。

100量子ビットのアイデンティティを得る:

>>> QubitSparsePauli.identity(100)
<QubitSparsePauli on 100 qubits: >

to_pauli

to_pauli()

を返す。 Pauli を返す。

to_phased_qubit_sparse_pauli_list

to_phased_qubit_sparse_pauli_list()

このパウリを単一要素に変換する PhasedQubitSparsePauliList.

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