Skip to main content
IBM Quantum Platform

SparsePauliOp

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

GitHub

Bases : LinearOp

Opérateur N-qubit clair dans une représentation de base de Pauli.

Il s'agit d'une représentation éparse d'une matrice de N-qubits Operator en termes de N-qubits PauliList et de coefficients complexes.

Il peut être utilisé pour effectuer l'arithmétique des opérateurs pour des centaines de qubits si le nombre de termes de base de Pauli non nuls est suffisamment faible.

Les composants de la base de Pauli sont stockés sous forme d'objet PauliList et sont accessibles à l'aide de l'attribut paulis attribut. Les coefficients sont stockés sous la forme d'un tableau Numpy complexe et sont accessibles à l'aide de l'attribut coeffs attribut.

Type de données des coefficients

La valeur par défaut de dtype du tableau Numpy interne coeffs est complex128. Les utilisateurs peuvent configurer cela en passant np.ndarray avec un dtype différent. Par exemple, un SparsePauliOp paramétrée peut être réalisée comme suit :

>>> 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])])
Remarque

Paramétré SparsePauliOp ne prend pas en charge les méthodes suivantes :

  • to_matrix(sparse=True) puisque scipy.sparse ne peut pas avoir d'objets comme éléments.
  • to_operator() puisque Operator ne prend pas en charge les objets.
  • sort, argsort depuis ParameterExpression ne permet pas la comparaison.
  • equiv puisque ParameterExpression ne peut être converti en complexe.
  • chop puisque ParameterExpression ne prend pas en charge la valeur absolue.

Initialise un objet opérateur.

Paramètres

  • data (PauliList orSparsePauliOp orPauli orlist orstr) – Liste de termes de Pauli. Une liste de chaînes de Pauli ou une chaîne de Pauli est également autorisée.

  • coeffs (np.ndarray) –

    coefficients complexes pour les termes de Pauli.

    Remarque

    Si data est un SparsePauliOp et que coeffs n'est pas None, la valeur de SparsePauliOp.coeffs sera ignorée et seul le mot-clé passé en argument coeffs sera utilisé.

  • ignore_pauli_phase (bool) – Si cette condition est vraie, toute phase composante d'un élément donné PauliList sera considérée comme nulle. Cette méthode s'avère plus efficace lorsque un PauliList a été construit uniquement à cette fin et qu'on sait déjà que les phases, selon la convention ZX, sont nulles. Il n'est judicieux de passer cette option que lorsque l'on fournit PauliList des données. (Par défaut : False)

  • copy (bool) – copier les données d'entrée si la valeur est True, sinon les attribuer directement, si possible. (Par défaut : True)

Augmentations

QiskitError – Si les données d'entrée ou les coefficients ne sont pas valides.


Attributs

atol

Valeur par défaut : 1e-08

coeffs

Retourne les coefficients de Pauli.

dim

Retourne un tuple (forme_d'entrée, forme_de_sortie).

num_qubits

Renvoie le nombre de qubits s'il s'agit d'un opérateur à N qubits ou None dans le cas contraire.

parameters

Retourner le Parameters libre dans les coefficients.

paulis

Retourner le site PauliList.

qargs

Retourne les qargs de l'opérateur.

rtol

Valeur par défaut : 1e-05

settings

Paramètres de retour.

size

Le nombre de termes de Pauli dans l'opérateur.


Méthodes

adjoint

adjoint()

GitHub

Retourne l'adjoint de l'opérateur.

apply_layout

apply_layout(layout, num_qubits=None)

GitHub

Appliquer un schéma de transposition à cette SparsePauliOp

Paramètres

  • layout (TranspileLayout |list[int] | None) – Soit a TranspileLayout, soit une liste d'entiers, soit None. Si la configuration et le nombre de qubits sont tous deux nuls, une copie de l'opérateur est renvoyée.
  • num_qubits (int | None) – Le nombre de qubits auquel l'opérateur doit être étendu. S'il n'est pas fourni, alors si layout est un TranspileLayout le nombre de qubits du circuit de sortie du transpondeur sera utilisé par défaut. Si layout est une liste d'entiers, la permutation spécifiée sera appliquée sans expansion. Si la disposition est nulle, l'opérateur sera étendu au nombre de qubits indiqué.

Retours

Un nouveau SparsePauliOp avec la mise en page fournie appliquée

Type de retour

SparsePauliOp

argsort

argsort(weight=False)

GitHub

Renvoie des indices permettant de trier les lignes du tableau.

Renvoie la composition des permutations dans l'ordre du tri par coefficient et du tri par Pauli. En utilisant le poids kwarg, la sortie peut également être triée en fonction du nombre de termes non identiques dans le Pauli, où l'ensemble de tous les Pauli d'un poids donné est toujours ordonné lexicographiquement.

Exemple

Voici un exemple d'utilisation de 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]

Paramètres

  • weight (bool) – optionnellement trier par poids si True (Défaut : False).
  • sorted (By using the weight kwarg the output can additionally be)
  • Pauli. (by the number of non-identity terms in the)

Retours

les indices permettant de trier le tableau.

Type de retour

Tableau

assign_parameters

assign_parameters(parameters, inplace=False)

GitHub

Lier les Parameters libres des coefficients aux valeurs fournies.

Remarque

Si tous les paramètres du circuit sont liés à des valeurs numériques, le tableau des coefficients sera renvoyé avec un type complex dtype.

Paramètres

Retours

Une copie de l'opérateur avec les paramètres liés, si inplace est False, sinon None.

Type de retour

SparsePauliOp | Aucun

chop

chop(tol=1e-14)

GitHub

Mettre les parties réelles et imaginaires des coefficients à 0 si < tol en magnitude.

Par exemple, l'opérateur représentant 1+1e-17j X + 1e-17 Y avec une tolérance supérieure à 1e-17 sera réduit à 1 X alors que SparsePauliOp.simplify() renverrait 1+1e-17j X.

Si, après le tranchage, les parties réelle et imaginaire d'un coefficient sont toutes deux égales à 0, le terme de Pauli correspondant est supprimé de l'opérateur.

Paramètres

tol (float) – Tolérance absolue permettant de vérifier si une partie réelle ou imaginaire doit être mise à 0.

Retours

Cet opérateur à coefficients hachés.

Type de retour

SparsePauliOp

compose

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

GitHub

Retourner la composition de l'opérateur avec un autre SparsePauliOp.

Paramètres

  • other (SparsePauliOp) – un objet SparsePauliOp.
  • qargs (list or None) – une liste des postes au sein du sous-système auxquels appliquer d'autres mesures. Si « None » s'applique à tous les sous-systèmes (par défaut : None).
  • front (bool) – Si True, composer en utilisant la multiplication de l'opérateur de droite, au lieu de la multiplication de gauche [par défaut : False].

Retours

La composition SparsePauliOp.

Type de retour

SparsePauliOp

Augmentations

QiskitError – si l'autre ne peut pas être converti en opérateur ou si ses dimensions sont incompatibles avec celles des sous-systèmes spécifiés.

Remarque

La composition (&) est définie par défaut comme une multiplication matricielle à gauche pour les opérateurs matriciels, tandis que @ (équivalent à dot()) est définie comme une multiplication matricielle à droite. C'est-à-dire que A & B == A.compose(B) est équivalent à B @ A == B.dot(A) lorsque A et B sont du même type.

L'utilisation du kwarg front=True permet de passer à une multiplication matricielle à droite, ce qui équivaut à la méthode dot() méthode A.dot(B) == A.compose(B, front=True).

conjugate

conjugate()

GitHub

Retourne le conjugué de SparsePauliOp.

copy

copy()

GitHub

Effectuer une copie intégrale de l'opérateur actuel.

dot

dot(other, qargs=None)

GitHub

Retourne l'opérateur multiplié par la droite self * other.

Paramètres

  • other (Operator) – un objet opérateur.
  • qargs (list or None) – une liste des postes au sein du sous-système auxquels appliquer d'autres mesures. Si « None » s'applique à tous les sous-systèmes (par défaut : None).

Retours

La matrice droite multipliée Opérateur.

Type de retour

Opérateur

Remarque

Le produit de points peut être obtenu en utilisant l'opérateur binaire @ . Par conséquent, a.dot(b) est équivalent à a @ b.

equiv

equiv(other, atol=None)

GitHub

Vérifier si deux opérateurs SparsePauliOp sont équivalents.

Paramètres

  • other (SparsePauliOp) – un objet opérateur.
  • atol (float | None) – Tolérance numérique absolue pour le contrôle de l'équivalence.

Retours

Vrai si l'opérateur est équivalent à self.

Type de retour

booléen

expand

expand(other)

GitHub

Renvoyer le produit tensoriel d'ordre inverse avec un autre SparsePauliOp.

Paramètres

other (SparsePauliOp) – un objet SparsePauliOp.

Retours

le produit tensoriel bab \otimes a, où aa

est l'actuel SparsePauliOp, et bb est l'autre SparsePauliOp.

Type de retour

SparsePauliOp

from_list

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

GitHub

Construit à partir d'une liste de chaînes de Pauli et de coefficients.

Par exemple, l'hamiltonien à 5 qubits

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

peut être construit comme suit

from qiskit.quantum_info import SparsePauliOp

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

Paramètres

  • obj (Iterable[Tuple[str, complex]]) – La liste des 2-tuples spécifiant les termes de Pauli.
  • dtype (type | None) – Type de données des coefficients. Si None (par défaut), le type de données est automatiquement déduit.
  • num_qubits (int) – Le nombre de qubits de l'opérateur (par défaut : aucun).

Retours

La représentation SparsePauliOp des termes de Pauli.

Type de retour

SparsePauliOp

Augmentations

  • QiskitError – Si une liste vide est transmise et que num_qubits est None.
  • QiskitError – Si le nombre de qubits ne correspond pas au nombre d'éléments de la liste d'entrée.

from_operator

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

GitHub

Construire à partir d'un objet Operator.

Notez que le coût de cette construction est exponentiel en général car le nombre de termes de Pauli possibles dans la décomposition est exponentiel dans le nombre de qubits.

En interne, il utilise une implémentation de la "décomposition de Pauli tensoriée" présentée dans Hantzko, Binkowski et Gupta (2023).

Paramètres

  • obj (Operator) – un opérateur N-qubit.
  • atol (float) – En option. Tolérance absolue pour vérifier si les coefficients sont nuls (par défaut : 1e-8 ). Comme la comparaison se fait par rapport à zéro, la tolérance utilisée est en fait le maximum de atol et rtol.
  • rtol (float) – En option. tolérance relative pour vérifier si les coefficients sont nuls (par défaut : 1e-5 ). Comme la comparaison se fait par rapport à zéro, la tolérance utilisée est en fait le maximum de atol et rtol.

Retours

la représentation SparsePauliOp de l'opérateur.

Type de retour

SparsePauliOp

Augmentations

QiskitError – si l'opérateur d'entrée n'est pas un opérateur à N qubits.

from_sparse_list

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

GitHub

Construit à partir d'une liste de chaînes de Pauli locales et de coefficients.

Chaque élément de la liste est un triplet composé d'une chaîne de Pauli locale, d'indices permettant de l'appliquer et d'un coefficient.

Par exemple, l'hamiltonien à 5 qubits

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

peut être construit comme suit

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)])

Paramètres

  • obj (Iterable[tuple[str, list[int], complex]]) – La liste des 3-tuples spécifiant les Paulis.
  • num_qubits (int) – Le nombre de qubits de l'opérateur.
  • do_checks (bool) – Indique s'il faut effectuer des contrôles de validité sur les indices fournis.
  • dtype (type | None) – Type de données des coefficients. Si None (par défaut), le type de données est automatiquement déduit.

Retours

La représentation SparsePauliOp des termes de Pauli.

Type de retour

SparsePauliOp

Augmentations

  • QiskitError – Si le nombre de qubits n'est pas compatible avec les indices des termes de Pauli.
  • QiskitError – Si le qubit désigné est déjà attribué.

from_sparse_observable

static from_sparse_observable(obs)

GitHub

Initialiser à partir d'un SparseObservable.

Avertissement

A SparseObservable peut représenter efficacement les projecteurs d'états propres (tels que 00|0\langle\rangle 0| ), mais a SparsePauliOp ne le peut pas. Si l'entrée obs a nn projecteurs d'un seul qubit, la représentation qui en résulte SparsePauliOp qui en résulte utilisera 2n2^n termes, ce qui est une représentation exponentiellement coûteuse qui peut rapidement épuiser la mémoire.

Paramètres

obs (SparseObservable) – Les SparseObservable à convertir.

Retours

A SparsePauliOp version de l'observable.

Type de retour

SparsePauliOp

group_commuting

group_commuting(qubit_wise=False)

GitHub

Partitionner un site SparsePauliOp en ensembles de cordes de Pauli commutées.

Paramètres

qubit_wise (bool) –

si la règle de commutation est appliquée à l'ensemble de l'opérateur ou à chaque qubit. Par exemple :

>>> 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])]

Retours

Liste de SparsePauliOp où chaque SparsePauliOp contient

opérateurs de Pauli commutés.

Type de retour

liste [ SparsePauliOp ]

input_dims

input_dims(qargs=None)

GitHub

Retourne un ensemble de dimensions d'entrée pour les sous-systèmes spécifiés.

is_unitary

is_unitary(atol=None, rtol=None)

GitHub

Retourne True si l'opérateur est une matrice unitaire.

Cette méthode vérifie si l'opérateur composé avec son adjoint est égal à l'identité, jusqu'à la tolérance fournie. La tolérance est utilisée pour simplifier l'opérateur composé et vérifier si le résultat est l'identité.

Paramètres

  • atol (float) – En option. Tolérance absolue pour vérifier si les coefficients sont nuls (par défaut : 1e-8 ).
  • rtol (float) – En option. Tolérance relative pour vérifier si les coefficients sont nuls (par défaut : 1e-5 ).

Retours

Vrai si l'opérateur est unitaire, Faux sinon.

Type de retour

booléen

label_iter

label_iter()

GitHub

Renvoie un itérateur de représentation des étiquettes.

Il s'agit d'un itérateur paresseux qui convertit chaque terme du site SparsePauliOp en un tuple (label, coeff). Pour convertir l'ensemble du tableau en étiquettes, utilisez la méthode to_labels() .

Retours

objet itérateur d'étiquettes pour le site SparsePauliOp.

Type de retour

LabelIterator

matrix_iter

matrix_iter(sparse=False)

GitHub

Retourne un itérateur de représentation de la matrice.

Il s'agit d'un itérateur paresseux qui convertit chaque terme du site SparsePauliOp en une matrice au fur et à mesure de son utilisation. Pour convertir en une seule matrice, utilisez la méthode to_matrix() méthode.

Paramètres

sparse (bool) – Renvoie des matrices CSR creuses si la valeur est True; sinon, renvoie des matrices sous forme de tableaux Numpy (par défaut : False)

Retours

objet itérateur de matrice pour PauliList.

Type de retour

MatrixIterator

noncommutation_graph

noncommutation_graph(qubit_wise)

GitHub

Créez le graphe de non-commutation de cette SparsePauliOp.

Cela transforme le problème de regroupement des opérateurs de mesure en un problème de coloration de graphe. Le graphe construit contient un nœud pour chaque Pauli. Les nœuds seront connectés pour tout terme de Pauli qui ne commute pas.

Paramètres

qubit_wise (bool) – si la règle de commutation est appliquée à l'ensemble de l'opérateur ou à chaque qubit.

Retours

le graphe de non-commutation avec des nœuds pour chaque Pauli et des arêtes

indiquant une relation de non-commutation. Chaque nœud contient l'indice du terme de Pauli auquel il correspond dans ses données. Les bords du graphique ne contiennent aucune donnée.

Type de retour

rustworkx.PyGraph

output_dims

output_dims(qargs=None)

GitHub

Retourne un tuple de dimensions de sortie pour les sous-systèmes spécifiés.

power

power(n)

GitHub

Renvoie le résultat de la composition d'un opérateur avec lui-même n fois.

Paramètres

n (int) – le nombre de fois où l'on compose avec soi-même ( n>0 ).

Retours

l'opérateur composé n fois.

Type de retour

Clifford

Augmentations

QiskitError – si les dimensions d'entrée et de sortie de l'opérateur ne sont pas égales, ou si la puissance n'est pas un nombre entier positif.

reshape

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

GitHub

Renvoyer une copie peu profonde avec les dimensions des sous-systèmes d'entrée et de sortie remodelées.

Paramètres

  • input_dims (None or tuple) – les nouvelles dimensions d'entrée du sous-système. Si aucun, les gradations d'entrée d'origine seront conservées. [Par défaut : Aucun].
  • output_dims (None or tuple) – les nouvelles dimensions de sortie du sous-système. Si aucun, les gradations de sortie d'origine seront conservées. [Par défaut : Aucun].
  • num_qubits (None or int) – transformer en un opérateur N-qubit [Défaut : Aucun].

Retours

renvoie l'utilisateur avec les dimensions d'entrée et de sortie remodelées.

Type de retour

BaseOperator

Augmentations

QiskitError – si la somme des dimensions d'entrée ou de sortie de tous les sous-systèmes n'est pas constante.

simplify

simplify(atol=None, rtol=None)

GitHub

Simplifiez PauliList en combinant les doublons et en supprimant les zéros.

Paramètres

  • atol (float) – En option. Tolérance absolue pour vérifier si les coefficients sont nuls (par défaut : 1e-8 ).
  • rtol (float) – En option. tolérance relative pour vérifier si les coefficients sont nuls (par défaut : 1e-5 ).

Retours

l'opérateur simplifié SparsePauliOp.

Type de retour

SparsePauliOp

sort

sort(weight=False)

GitHub

Trier les lignes du tableau.

Après avoir trié les coefficients à l'aide de numpy's argsort, trier par Pauli. Le tri de Pauli est prioritaire. Si Pauli est le même, il sera trié par coefficient. En utilisant le poids kwarg, la sortie peut également être triée en fonction du nombre de termes non identiques dans le Pauli, où l'ensemble de tous les Pauli d'un poids donné est toujours ordonné lexicographiquement.

Exemple

Voici un exemple d'utilisation du tri SparsePauliOp.

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])

Paramètres

  • weight (bool) – optionnellement trier par poids si True (Défaut : False).
  • sorted (By using the weight kwarg the output can additionally be)
  • Pauli. (by the number of non-identity terms in the)

Retours

une copie triée du tableau original.

Type de retour

SparsePauliOp

sum

static sum(ops)

GitHub

Somme de SparsePauliOps.

Il s'agit d'une version spécialisée de la fonction intégrée sum pour SparsePauliOp avec des frais généraux moindres.

Paramètres

ops (list[SparsePauliOp]) – une liste de SparsePauliOps.

Retours

le site SparsePauliOp représentant la somme de la liste d'entrée.

Type de retour

SparsePauliOp

Augmentations

  • QiskitError – si la liste d'entrée est vide.
  • QiskitError – si la liste d'entrée contient un objet qui n'est pas de type « SparsePauliOp ».
  • QiskitError – si le nombre de qubits des objets figurant dans la liste d'entrée ne correspond pas.

tensor

tensor(other)

GitHub

Retourner le produit tensoriel avec un autre SparsePauliOp.

Paramètres

other (SparsePauliOp) – un objet SparsePauliOp.

Retours

le produit tensoriel aba \otimes b, où aa

est l'actuel SparsePauliOp, et bb est l'autre SparsePauliOp.

Type de retour

SparsePauliOp

Remarque

Le produit tensoriel peut être obtenu en utilisant l'opérateur binaire ^ . Par conséquent, a.tensor(b) est équivalent à a ^ b.

to_list

to_list(array=False)

GitHub

Convertir en une liste d'étiquettes et de coefficients de la chaîne de Pauli.

Pour les opérateurs comportant un grand nombre de termes, la conversion à l'aide de array=True kwarg sera plus efficace car elle alloue à l'avance de la mémoire pour le tableau Numpy complet d'étiquettes.

Paramètres

array (bool) – renvoie un tableau Numpy si True, sinon renvoie une liste (Défaut : False).

Retours

Liste des paires (label, coeff) pour les lignes du site PauliList.

Type de retour

liste ou tableau

to_matrix

to_matrix(sparse=False, force_serial=False)

GitHub

Convertir en une matrice dense ou éparse.

Paramètres

  • sparse (bool) – si True renvoie une matrice CSR éparse, sinon renvoie un tableau Numpy dense (par défaut).
  • force_serial (bool) – si True, utiliser une implémentation non threadée, quel que soit l'état des variables d'environnement de contrôle du threading de Qiskit. Par défaut, le parallélisme threadé est utilisé sur les unités centrales disponibles.

Retours

Une matrice dense si sparse=False. csr_matrix : Une matrice éparse au format CSR si sparse=True.

Type de retour

Tableau

to_operator

to_operator()

GitHub

Convertir en objet opérateur de matrice

Type de retour

Opérateur

to_sparse_list

to_sparse_list()

GitHub

Convertir en un format de liste de Pauli clairsemée avec des éléments (pauli, qubits, coefficient).

transpose

transpose()

GitHub

Retourne la transposition de SparsePauliOp.

Cette page a-t-elle été utile ?
Signaler un bogue, une coquille ou proposer du contenu sur GitHub.