Skip to main content
IBM Quantum Platform

SparsePauliOp

class qiskit.quantum_info.SparsePauliOp(data, coeffs=None, *, ignore_pauli_phase=False, copy=True)

GitHub

Basen: LinearOp

Sparse N-Qubit-Operator in einer Pauli-Basis-Darstellung.

Dies ist eine spärliche Darstellung einer N-Qubit-Matrix Operator in Form von N-Qubit PauliList und komplexen Koeffizienten.

Sie kann zur Durchführung von Operator-Arithmetik für Hunderte von Qubits verwendet werden, wenn die Anzahl der Pauli-Basisterme, die nicht Null sind, ausreichend klein ist.

Die Pauli-Basiskomponenten werden als PauliList objekt gespeichert und können über das paulis attribut zugegriffen werden. Die Koeffizienten werden als komplexer Numpy-Array-Vektor gespeichert und können mit dem coeffs attribut zugegriffen werden.

Datentyp der Koeffizienten

Die Standardeinstellung dtype des internen coeffs Numpy-Arrays ist complex128. Benutzer können dies konfigurieren, indem sie np.ndarray mit einem anderen dtype übergeben. Zum Beispiel kann eine parametrisierte SparsePauliOp kann wie folgt erstellt werden:

>>> import numpy as np
>>> from qiskit.circuit import ParameterVector
>>> from qiskit.quantum_info import SparsePauliOp
>>> SparsePauliOp(["II", "XZ"], np.array(ParameterVector("a", 2)))
SparsePauliOp(['II', 'XZ'],
      coeffs=[ParameterExpression(1.0*a[0]), ParameterExpression(1.0*a[1])])
Anmerkung

Parametrisiert SparsePauliOp unterstützt die folgenden Methoden nicht:

  • to_matrix(sparse=True) da scipy.sparse keine Objekte als Elemente haben kann.
  • to_operator() da Operator keine Objekte unterstützt.
  • sort, argsort da ParameterExpression keinen Vergleich unterstützt.
  • equiv da ParameterExpression nicht in komplex umgewandelt werden kann.
  • chop da ParameterExpression keinen absoluten Wert unterstützt.

Initialisieren Sie ein Operator-Objekt.

Parameter

  • data (PauliList orSparsePauliOp orPauli orlist orstr) – Pauli-Liste der Begriffe. Eine Liste von Pauli-Strings oder ein Pauli-String ist ebenfalls zulässig.

  • coeffs (np.ndarray) –

    komplexe Koeffizienten für Pauli-Terme.

    Anmerkung

    Wenn data ein SparsePauliOp ist und coeffs nicht None ist, wird der Wert von SparsePauliOp.coeffs ignoriert, und nur das übergebene Schlüsselwortargument coeffs wird verwendet.

  • ignore_pauli_phase (bool) – Ist dies der Fall, wird jede phasePauliList Komponente eines gegebenen Wertes als Null angenommen. Dies ist effizienter in Fällen, in denen ein ausschließlich zu diesem PauliList Zweck konstruiert wurde und bereits bekannt ist, dass die Phasen in der ZX-Konvention null sind. Diese Option sollte nur bei der Übergabe PauliList von Daten verwendet werden. (Standard: False)

  • copy (bool) – Wenn „True“, werden die Eingabedaten kopiert, andernfalls werden sie, sofern möglich, direkt zugewiesen. (Standard: True)

Erhöht

QiskitError – Wenn die Eingabedaten oder Koeffizienten ungültig sind.


Attribute

atol

Standardwert: 1e-08

coeffs

Gibt die Pauli-Koeffizienten zurück.

dim

Rückgabe Tupel (input_shape, output_shape).

num_qubits

Gibt die Anzahl der Qubits zurück, wenn es sich um einen N-Qubit-Operator handelt, andernfalls None.

parameters

Rückgabe der freien Parameters in den Koeffizienten.

paulis

Senden Sie die PauliList zurück.

qargs

Gibt die qargs für den Operator zurück.

rtol

Standardwert: 1e-05

settings

Einstellungen zurückgeben.

size

Die Anzahl der Pauli-Terme im Operator.


Methoden

adjoint

adjoint()

GitHub

Gibt den Adjungierten des Operators zurück.

apply_layout

apply_layout(layout, num_qubits=None)

GitHub

Wenden Sie ein Transpiler-Layout auf diese SparsePauliOp

Parameter

  • layout (TranspileLayout |list[int] | None) – Entweder ein Wert vom Typ a TranspileLayout, eine Liste von Ganzzahlen oder None. Wenn sowohl „layout“ als auch „num_qubits“ auf „none“ gesetzt sind, wird eine Kopie des Operators zurückgegeben.
  • num_qubits (int | None) – Die Anzahl der Qubits, auf die der Operator erweitert werden soll. Wenn nicht angegeben, wird, wenn layout ein TranspileLayout ist, wird standardmäßig die Anzahl der Qubits der Transpiler-Ausgangsschaltung verwendet. Wenn layout eine Liste von ganzen Zahlen ist, wird die angegebene Permutation ohne Expansion angewendet. Ist Layout gleich Null, wird der Operator auf die angegebene Anzahl von Qubits erweitert.

Rückgabe

Eine neue SparsePauliOp mit dem angegebenen Layout

Rückgabetyp

SparsePauliOp

argsort

argsort(weight=False)

GitHub

Rückgabe von Indizes für die Sortierung der Zeilen der Tabelle.

Gibt die Zusammensetzung von Permutationen in der Reihenfolge der Sortierung nach Koeffizienten und der Sortierung nach Pauli zurück. Durch die Verwendung des Gewichts kwarg kann die Ausgabe zusätzlich nach der Anzahl der nicht-identischen Terme im Pauli sortiert werden, wobei die Menge aller Pauli eines bestimmten Gewichts weiterhin lexikographisch geordnet ist.

Beispiel

Hier ist ein Beispiel für die Verwendung von SparsePauliOp argsort.

import numpy as np
from qiskit.quantum_info import SparsePauliOp

# 2-qubit labels
labels = ["XX", "XX", "XX", "YI", "II", "XZ", "XY", "XI"]
# coeffs
coeffs = [2.+1.j, 2.+2.j, 3.+0.j, 3.+0.j, 4.+0.j, 5.+0.j, 6.+0.j, 7.+0.j]

# init
spo = SparsePauliOp(labels, coeffs)
print('Initial Ordering')
print(spo)

# Lexicographic Ordering
srt = spo.argsort()
print('Lexicographically sorted')
print(srt)

# Lexicographic Ordering
srt = spo.argsort(weight=False)
print('Lexicographically sorted')
print(srt)

# Weight Ordering
srt = spo.argsort(weight=True)
print('Weight sorted')
print(srt)
Initial Ordering
SparsePauliOp(['XX', 'XX', 'XX', 'YI', 'II', 'XZ', 'XY', 'XI'],
              coeffs=[2.+1.j, 2.+2.j, 3.+0.j, 3.+0.j, 4.+0.j, 5.+0.j, 6.+0.j, 7.+0.j])
Lexicographically sorted
[4 7 0 1 2 6 5 3]
Lexicographically sorted
[4 7 0 1 2 6 5 3]
Weight sorted
[4 7 3 0 1 2 6 5]

Parameter

  • weight (bool) – optional nach Gewicht sortieren, wenn True (Standard: False).
  • sorted (By using the weight kwarg the output can additionally be)
  • Pauli. (by the number of non-identity terms in the)

Rückgabe

die Indizes für die Sortierung der Tabelle.

Rückgabetyp

Bereich

assign_parameters

assign_parameters(parameters, inplace=False)

GitHub

Binden Sie die freien Parameters in den Koeffizienten an die angegebenen Werte.

Anmerkung

Wenn alle Parameter in der Schaltung an numerische Werte gebunden sind, wird das Koeffizienten-Array mit einem complex dtype.

Parameter

Rückgabe

Eine Kopie des Operators mit gebundenen Parametern, wenn inplace False ist, sonst None.

Rückgabetyp

SparsePauliOp | Keine

chop

chop(tol=1e-14)

GitHub

Setzen Sie Real- und Imaginärteil der Koeffizienten auf 0, wenn < tol in der Größenordnung.

Zum Beispiel wird der Operator, der 1+1e-17j X + 1e-17 Y mit einer größeren Toleranz als 1e-17 darstellt, auf 1 X reduziert, während SparsePauliOp.simplify()1+1e-17j X zurückgeben würde.

Wenn sowohl der Realteil als auch der Imaginärteil eines Koeffizienten nach dem Abschneiden 0 sind, wird der entsprechende Pauli-Term aus dem Operator entfernt.

Parameter

tol (float) – Die absolute Toleranz zur Prüfung, ob ein Real- oder Imaginärteil auf 0 gesetzt werden soll.

Rückgabe

Dieser Operator mit abgehackten Koeffizienten.

Rückgabetyp

SparsePauliOp

compose

compose(other, qargs=None, front=False)

GitHub

Geben Sie den Operator Komposition mit einem anderen SparsePauliOp zurück.

Parameter

  • other (SparsePauliOp) – ein SparsePauliOp Objekt.
  • qargs (list or None) – eine Liste von Subsystempositionen, auf die andere angewendet werden sollen. Wenn „None“ auf alle Teilsysteme angewendet wird (Standard: None).
  • front (bool) – Wenn True, wird mit der Multiplikation des Rechtsoperators anstelle der Linksmultiplikation komponiert, [Standard: False].

Rückgabe

Die komponierte SparsePauliOp.

Rückgabetyp

SparsePauliOp

Erhöht

QiskitError – wenn andere nicht in einen Operator umgewandelt werden können oder für die angegebenen Teilsysteme inkompatible Dimensionen aufweisen.

Anmerkung

Die Komposition (&) ist standardmäßig als linke Matrixmultiplikation für Matrixoperatoren definiert, während @ (entspricht dot()) als rechte Matrixmultiplikation definiert ist. Das heißt, dass A & B == A.compose(B) gleichwertig mit B @ A == B.dot(A) ist, wenn A und B vom gleichen Typ sind.

Die Einstellung front=True kwarg ändert dies in eine rechte Matrixmultiplikation und ist äquivalent zu der dot() methode A.dot(B) == A.compose(B, front=True).

conjugate

conjugate()

GitHub

Gibt die Konjugierte der SparsePauliOp zurück.

copy

copy()

GitHub

Erstellen Sie eine Tiefenkopie des aktuellen Operators.

dot

dot(other, qargs=None)

GitHub

Rückgabe des rechtsmultiplizierten Operators self * other.

Parameter

  • other (Operator) – ein Operator-Objekt.
  • qargs (list or None) – eine Liste von Subsystempositionen, auf die andere angewendet werden sollen. Wenn „None“ auf alle Teilsysteme angewendet wird (Standard: None).

Rückgabe

Die rechte Matrix multipliziert Operator.

Rückgabetyp

Bediener

Anmerkung

Das Punktprodukt kann mit dem binären Operator @ ermittelt werden. Daher ist a.dot(b) gleichbedeutend mit a @ b.

equiv

equiv(other, atol=None)

GitHub

Prüfen Sie, ob zwei SparsePauliOp Operatoren gleichwertig sind.

Parameter

  • other (SparsePauliOp) – ein Operator-Objekt.
  • atol (float | None) – Absolute numerische Toleranz zur Überprüfung der Gleichwertigkeit.

Rückgabe

Wahr, wenn der Operator äquivalent zu self ist.

Rückgabetyp

bool

expand

expand(other)

GitHub

Geben Sie das Tensorprodukt umgekehrter Ordnung mit einem anderen SparsePauliOp zurück.

Parameter

other (SparsePauliOp) – ein SparsePauliOp Objekt.

Rückgabe

das Tensorprodukt b⊗ab \otimes a, wobei aa

ist die aktuelle SparsePauliOp, und bb ist die andere SparsePauliOp.

Rückgabetyp

SparsePauliOp

from_list

static from_list(obj, dtype=None, *, num_qubits=None)

GitHub

Konstruieren Sie aus einer Liste von Pauli-Strings und Koeffizienten.

Zum Beispiel kann der 5-Qubit-Hamiltonian

H=Z1X4+2Y0Y3H = Z_1 X_4 + 2 Y_0 Y_3

kann konstruiert werden als

from qiskit.quantum_info import SparsePauliOp

# via tuples and the full Pauli string
op = SparsePauliOp.from_list([("XIIZI", 1), ("IYIIY", 2)])

Parameter

  • obj (Iterable[Tuple[str, complex]]) – Die Liste der 2-Tupel zur Angabe der Pauli-Terme.
  • dtype (type | None) – Datentyp für die Koeffizienten. Wenn None (Standard), wird der Datentyp automatisch ermittelt.
  • num_qubits (int) – Die Anzahl der Qubits des Operators (Voreinstellung: Keine).

Rückgabe

Die SparsePauliOp Darstellung der Pauli-Terme.

Rückgabetyp

SparsePauliOp

Erhöht

  • QiskitError – Wenn eine leere Liste übergeben wird und num_qubits den Wert „None“ hat.
  • QiskitError – Wenn „num_qubits“ und die Objekte in der Eingabeliste nicht übereinstimmen.

from_operator

static from_operator(obj, atol=None, rtol=None)

GitHub

Aus einem Operator-Objekt erstellen.

Man beachte, dass die Kosten dieser Konstruktion im Allgemeinen exponentiell sind, da die Anzahl der möglichen Pauli-Terme in der Zerlegung exponentiell zur Anzahl der Qubits ist.

Intern wird dabei eine Implementierung der "tensorisierten Pauli-Zerlegung" verwendet, die in Hantzko, Binkowski und Gupta (2023 ) vorgestellt wurde.

Parameter

  • obj (Operator) – ein N-Qubit-Operator.
  • atol (float) – Optional. Absolute Toleranz für die Prüfung, ob die Koeffizienten Null sind (Standard: 1e-8 ). Da der Vergleich mit Null erfolgt, ist die verwendete Toleranz das Maximum von atol und rtol.
  • rtol (float) – Optional. relative Toleranz für die Prüfung, ob die Koeffizienten Null sind (Standard: 1e-5 ). Da der Vergleich mit Null erfolgt, ist die verwendete Toleranz das Maximum von atol und rtol.

Rückgabe

die SparsePauliOp Darstellung des Betreibers.

Rückgabetyp

SparsePauliOp

Erhöht

QiskitError – wenn der Eingabeoperator kein N-Qubit-Operator ist.

from_sparse_list

static from_sparse_list(obj, num_qubits, do_checks=True, dtype=None)

GitHub

Konstruieren Sie aus einer Liste von lokalen Pauli-Strings und Koeffizienten.

Jedes Listenelement ist ein 3er-Tupel aus einer lokalen Pauli-Kette, Indizes, auf die sie angewendet werden soll, und einem Koeffizienten.

Zum Beispiel kann der 5-Qubit-Hamiltonian

H=Z1X4+2Y0Y3H = Z_1 X_4 + 2 Y_0 Y_3

kann konstruiert werden als

from qiskit.quantum_info import SparsePauliOp

# via triples and local Paulis with indices
op = SparsePauliOp.from_sparse_list([("ZX", [1, 4], 1), ("YY", [0, 3], 2)], num_qubits=5)

# equals the following construction from "dense" Paulis
op = SparsePauliOp.from_list([("XIIZI", 1), ("IYIIY", 2)])

Parameter

  • obj (Iterable[tuple[str, list[int], complex]]) – Die Liste der 3-Tupel, die die Paulis spezifizieren.
  • num_qubits (int) – Die Anzahl der Qubits des Operators.
  • do_checks (bool) – Ob Gültigkeitsprüfungen für die Eingabeindizes durchgeführt werden sollen.
  • dtype (type | None) – Datentyp für die Koeffizienten. Wenn None (Standard), wird der Datentyp automatisch ermittelt.

Rückgabe

Die SparsePauliOp Darstellung der Pauli-Terme.

Rückgabetyp

SparsePauliOp

Erhöht

  • QiskitError – Wenn die Anzahl der Qubits nicht mit den Indizes der Pauli-Terme vereinbar ist.
  • QiskitError – Wenn das angegebene Qubit bereits belegt ist.

from_sparse_observable

static from_sparse_observable(obs)

GitHub

Initialisieren von einem SparseObservable.

Achtung

A SparseObservable kann Eigenzustandsprojektoren (wie ∣0⟨⟩0∣|0\langle\rangle 0| ) effizient darstellen, aber a SparsePauliOp nicht. Wenn die Eingabe obs nn Ein-Qubit-Projektoren hat, wird die resultierende SparsePauliOp2n2^n Terme verwenden, was eine exponentiell teure Darstellung ist, die schnell den Speicher erschöpft.

Parameter

obs (SparseObservable) – Die SparseObservable zu konvertieren.

Rückgabe

A SparsePauliOp version der Beobachtungsgröße.

Rückgabetyp

SparsePauliOp

group_commuting

group_commuting(qubit_wise=False)

GitHub

Partitionieren Sie eine SparsePauliOp in Mengen von kommutierenden Pauli-Strings.

Parameter

qubit_wise (bool) –

ob die Kommutierungsregel auf den gesamten Operator oder auf ein einzelnes Qubit angewendet wird. Zum Beispiel:

>>> from qiskit.quantum_info import SparsePauliOp
>>> op = SparsePauliOp.from_list([("XX", 2), ("YY", 1), ("IZ",2j), ("ZZ",1j)])
>>> op.group_commuting()
[SparsePauliOp(["IZ", "ZZ"], coeffs=[0.+2.j, 0.+1j]),
 SparsePauliOp(["XX", "YY"], coeffs=[2.+0.j, 1.+0.j])]
>>> op.group_commuting(qubit_wise=True)
[SparsePauliOp(['XX'], coeffs=[2.+0.j]),
 SparsePauliOp(['YY'], coeffs=[1.+0.j]),
 SparsePauliOp(['IZ', 'ZZ'], coeffs=[0.+2.j, 0.+1.j])]

Rückgabe

Liste von SparsePauliOp, wobei jede SparsePauliOp enthält

pendelnde Pauli-Operatoren.

Rückgabetyp

liste [ SparsePauliOp ]

input_dims

input_dims(qargs=None)

GitHub

Rückgabe eines Tupels der Eingabedimension für die angegebenen Teilsysteme.

is_unitary

is_unitary(atol=None, rtol=None)

GitHub

Gibt True zurück, wenn der Operator eine unitäre Matrix ist.

Diese Methode prüft, ob der Operator, der mit seinem Adjungierten zusammengesetzt ist, bis zur angegebenen Toleranz gleich der Identität ist. Die Toleranz wird bei der Vereinfachung des zusammengesetzten Operators und bei der Prüfung, ob das Ergebnis die Identität ist, verwendet.

Parameter

  • atol (float) – Optional. Absolute Toleranz für die Prüfung, ob die Koeffizienten Null sind (Standard: 1e-8 ).
  • rtol (float) – Optional. Relative Toleranz für die Prüfung, ob die Koeffizienten Null sind (Standard: 1e-5 ).

Rückgabe

Wahr, wenn der Operator unitär ist, sonst Falsch.

Rückgabetyp

bool

label_iter

label_iter()

GitHub

Gibt einen Iterator für die Darstellung von Etiketten zurück.

Dies ist ein träger Iterator, der jeden Term in SparsePauliOp in ein Tupel (label, coeff) umwandelt. Um die gesamte Tabelle in Etiketten umzuwandeln, verwenden Sie die Methode to_labels() .

Rückgabe

label-Iterator-Objekt für die SparsePauliOp.

Rückgabetyp

LabelIterator

matrix_iter

matrix_iter(sparse=False)

GitHub

Gibt einen Iterator für die Matrixdarstellung zurück.

Dies ist ein träger Iterator, der jeden Begriff in der SparsePauliOp in eine Matrix umwandelt, wenn er verwendet wird. Zur Umwandlung in eine einzelne Matrix verwenden Sie die to_matrix() methode.

Parameter

sparse (bool) – Gibt optional spärliche CSR-Matrizen zurück, wenn „True“; andernfalls werden Numpy-Array-Matrizen zurückgegeben (Standard: „False“)

Rückgabe

matrix-Iterator-Objekt für die PauliList.

Rückgabetyp

MatrixIterator

noncommutation_graph

noncommutation_graph(qubit_wise)

GitHub

Erstellen Sie den Nicht-Kommutationsgraphen dieser SparsePauliOp.

Dadurch wird das Problem der Gruppierung von Messoperatoren in ein Problem der Graphenfärbung umgewandelt. Der konstruierte Graph enthält einen Knoten für jeden Pauli. Die Knoten verbinden sich für zwei beliebige Pauli-Terme, die sich nicht vertauschen.

Parameter

qubit_wise (bool) – ob die Kommutierungsregel auf den gesamten Operator oder auf ein einzelnes Qubit angewendet wird.

Rückgabe

der Nicht-Kommutationsgraph mit Knoten für jedes Pauli und Kanten

was auf eine Nicht-Kommutationsbeziehung hinweist. Jeder Knoten enthält den Index des Pauli-Terms, dem er in seinen Daten entspricht. Die Kanten des Graphen enthalten keine Daten.

Rückgabetyp

rustworkx.PyGraph

output_dims

output_dims(qargs=None)

GitHub

Rückgabe eines Tupels der Ausgabedimension für die angegebenen Teilsysteme.

power

power(n)

GitHub

Gibt das Ergebnis der n-maligen Anwendung eines Operators auf sich selbst zurück.

Parameter

n (int) – die Anzahl der Kompositionen mit sich selbst ( n>0 ).

Rückgabe

der n-fach zusammengesetzte Operator.

Rückgabetyp

Clifford

Erhöht

QiskitError – wenn die Eingabe- und Ausgabedimensionen des Operators nicht gleich sind oder die Potenz keine positive ganze Zahl ist.

reshape

reshape(input_dims=None, output_dims=None, num_qubits=None)

GitHub

Rückgabe einer flachen Kopie mit umgestalteten Dimensionen des Eingangs- und Ausgangssubsystems.

Parameter

  • input_dims (None or tuple) – neue Subsystem-Eingangsmaße. Wenn Keine, werden die ursprünglichen Eingangsdimms beibehalten [Standard: Keine].
  • output_dims (None or tuple) – neue Dimensionen der Teilsystemleistung. Wenn Keine, werden die ursprünglichen Ausgangsdimms beibehalten [Standard: Keine].
  • num_qubits (None or int) – in einen N-Qubit-Operator umwandeln [Standard: Keine].

Rückgabe

gibt self mit umgestalteten Eingabe- und Ausgabeabmessungen zurück.

Rückgabetyp

BaseOperator

Erhöht

QiskitError – wenn die Summe aller Eingangs- oder Ausgangsabmessungen der Teilsysteme nicht konstant ist.

simplify

simplify(atol=None, rtol=None)

GitHub

Vereinfachen Sie PauliList, indem Sie Duplikate kombinieren und Nullen entfernen.

Parameter

  • atol (float) – Optional. Absolute Toleranz für die Prüfung, ob die Koeffizienten Null sind (Standard: 1e-8 ).
  • rtol (float) – Optional. relative Toleranz für die Prüfung, ob die Koeffizienten Null sind (Standard: 1e-5 ).

Rückgabe

der vereinfachte SparsePauliOp Operator.

Rückgabetyp

SparsePauliOp

sort

sort(weight=False)

GitHub

Sortieren Sie die Zeilen der Tabelle.

Nach dem Sortieren der Koeffizienten mit numpy's argsort, sortieren Sie nach Pauli. Die Pauli-Sorte hat Vorrang. Wenn Pauli gleich ist, werden sie nach Koeffizienten sortiert. Durch die Verwendung des Gewichts kwarg kann die Ausgabe zusätzlich nach der Anzahl der nicht-identischen Terme im Pauli sortiert werden, wobei die Menge aller Pauli eines bestimmten Gewichts weiterhin lexikographisch geordnet ist.

Beispiel

Hier ist ein Beispiel für die Verwendung von SparsePauliOp sort.

import numpy as np
from qiskit.quantum_info import SparsePauliOp

# 2-qubit labels
labels = ["XX", "XX", "XX", "YI", "II", "XZ", "XY", "XI"]
# coeffs
coeffs = [2.+1.j, 2.+2.j, 3.+0.j, 3.+0.j, 4.+0.j, 5.+0.j, 6.+0.j, 7.+0.j]

# init
spo = SparsePauliOp(labels, coeffs)
print('Initial Ordering')
print(spo)

# Lexicographic Ordering
srt = spo.sort()
print('Lexicographically sorted')
print(srt)

# Lexicographic Ordering
srt = spo.sort(weight=False)
print('Lexicographically sorted')
print(srt)

# Weight Ordering
srt = spo.sort(weight=True)
print('Weight sorted')
print(srt)
Initial Ordering
SparsePauliOp(['XX', 'XX', 'XX', 'YI', 'II', 'XZ', 'XY', 'XI'],
              coeffs=[2.+1.j, 2.+2.j, 3.+0.j, 3.+0.j, 4.+0.j, 5.+0.j, 6.+0.j, 7.+0.j])
Lexicographically sorted
SparsePauliOp(['II', 'XI', 'XX', 'XX', 'XX', 'XY', 'XZ', 'YI'],
              coeffs=[4.+0.j, 7.+0.j, 2.+1.j, 2.+2.j, 3.+0.j, 6.+0.j, 5.+0.j, 3.+0.j])
Lexicographically sorted
SparsePauliOp(['II', 'XI', 'XX', 'XX', 'XX', 'XY', 'XZ', 'YI'],
              coeffs=[4.+0.j, 7.+0.j, 2.+1.j, 2.+2.j, 3.+0.j, 6.+0.j, 5.+0.j, 3.+0.j])
Weight sorted
SparsePauliOp(['II', 'XI', 'YI', 'XX', 'XX', 'XX', 'XY', 'XZ'],
              coeffs=[4.+0.j, 7.+0.j, 3.+0.j, 2.+1.j, 2.+2.j, 3.+0.j, 6.+0.j, 5.+0.j])

Parameter

  • weight (bool) – optional nach Gewicht sortieren, wenn True (Standard: False).
  • sorted (By using the weight kwarg the output can additionally be)
  • Pauli. (by the number of non-identity terms in the)

Rückgabe

eine sortierte Kopie der Originaltabelle.

Rückgabetyp

SparsePauliOp

sum

static sum(ops)

GitHub

Summe von SparsePauliOps.

Dies ist eine spezialisierte Version der eingebauten Funktion sum für SparsePauliOp mit geringerem Overhead.

Parameter

ops (list[SparsePauliOp]) – eine Liste von SparsePauliOps.

Rückgabe

die SparsePauliOp, die die Summe der Eingabeliste darstellt.

Rückgabetyp

SparsePauliOp

Erhöht

  • QiskitError – wenn die Eingabeliste leer ist.
  • QiskitError – wenn die Eingabeliste ein Objekt enthält, das nicht „ SparsePauliOp “ ist.
  • QiskitError – wenn die Anzahl der Qubits der Objekte in der Eingabeliste nicht übereinstimmt.

tensor

tensor(other)

GitHub

Geben Sie das Tensorprodukt mit einem anderen SparsePauliOp zurück.

Parameter

other (SparsePauliOp) – ein SparsePauliOp Objekt.

Rückgabe

das Tensorprodukt a⊗ba \otimes b, wobei aa

ist die aktuelle SparsePauliOp, und bb ist die andere SparsePauliOp.

Rückgabetyp

SparsePauliOp

Anmerkung

Das Tensorprodukt kann mit dem binären Operator ^ erhalten werden. Daher ist a.tensor(b) gleichbedeutend mit a ^ b.

to_list

to_list(array=False)

GitHub

Umwandlung in eine Liste von Pauli-String-Beschriftungen und -Koeffizienten.

Für Operatoren mit vielen Begriffen ist die Konvertierung mit array=True kwarg effizienter, da es im Voraus Speicher für das gesamte Numpy-Array der Bezeichnungen zuweist.

Parameter

array (bool) – gibt ein Numpy-Array zurück, wenn True, andernfalls eine Liste (Standard: False).

Rückgabe

Liste der Paare (label, coeff) für die Zeilen der PauliList.

Rückgabetyp

Liste oder Array

to_matrix

to_matrix(sparse=False, force_serial=False)

GitHub

Umwandlung in eine dichte oder dünnbesetzte Matrix.

Parameter

  • sparse (bool) – wenn True eine dünnbesetzte CSR-Matrix zurückgibt, andernfalls ein dichtes Numpy-Array (die Vorgabe).
  • force_serial (bool) – wenn True, verwenden Sie eine unthreaded Implementierung, unabhängig vom Status der Qiskit threading-control Umgebungsvariablen. Standardmäßig wird dabei die Thread-Parallelität über die verfügbaren CPUs verwendet.

Rückgabe

Eine dichte Matrix, wenn sparse=False. csr_matrix: Eine dünnbesetzte Matrix im CSR-Format, wenn sparse=True.

Rückgabetyp

Bereich

to_operator

to_operator()

GitHub

Umwandlung in ein Matrix-Operator-Objekt

Rückgabetyp

Operator

to_sparse_list

to_sparse_list()

GitHub

Umwandlung in ein spärliches Pauli-Listenformat mit Elementen (Pauli, Qubits, Koeffizient).

transpose

transpose()

GitHub

Gibt die Transponierung der SparsePauliOp zurück.

War diese Seite hilfreich?
Melden Sie auf GitHub einen Fehler, einen Tippfehler oder fordern Sie Inhalte an.