PTM
class qiskit.quantum_info.PTM(data, input_dims=None, output_dims=None)
Bases : QuantumChannel
Représentation de la matrice de transfert de Pauli (PTM) d'un canal quantique.
La représentation PTM d'un canal quantique -qubit est un -qubit SuperOp défini par rapport à la vectorisation dans la base de Pauli au lieu de la vectorisation en colonnes. Les éléments du PTM sont donnés par les éléments suivants
où est la base de Pauli de -qubit dans l'ordre lexicographique.
L'évolution de a DensityMatrix par rapport au PTM est donnée par
où désigne la vectorisation dans la base de Pauli .
Voir la référence [1] pour plus de détails.
Références
- C.J. Bois, J.D. Biamonte, D.G. Cory, Tensor networks and graphical calculus for open quantum systems, Quant. Inf. Comp. 15, 0579-0811 (2015). arXiv:1111.6950 [quant-ph]
Initialiser un opérateur de canal quantique PTM.
Paramètres
- data (QuantumCircuit |circuit.instruction.Instruction | BaseOperator | np.ndarray) – données permettant d'initialiser le superopérateur.
- input_dims (int |tuple | None) – les dimensions du sous-système d'entrée.
- output_dims (int |tuple | None) – les dimensions du sous-système de sortie.
Augmentations
QiskitError – si les données d'entrée ne constituent pas un canal à N qubits ou ne peuvent pas être initialisées en tant que PTM.
Renseignements supplémentaires :
Si les dimensions d'entrée ou de sortie sont nulles, elles seront automatiquement déterminées à partir des données d'entrée. La représentation PTM n'est valable que pour les canaux à N qubits.
Attributs
atol
Valeur par défaut : 1e-08
data
Données de retour.
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.
qargs
Retourne les qargs de l'opérateur.
rtol
Valeur par défaut : 1e-05
settings
Paramètres de retour.
Méthodes
adjoint
adjoint()
Retourne le canal quantique adjoint.
Cela équivaut au conjugué hermitien de la matrice dans la représentation SuperOp c'est-à-dire que pour un canal , le SuperOp du canal adjoint est .
compose
compose(other, qargs=None, front=False)
Renvoyer la composition de l'opérateur avec un autre PTM.
Paramètres
- other (PTM) – un objet PTM.
- 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
Le PTM composé.
Type de retour
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.
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()
Retourne le canal quantique conjugué.
Cela équivaut au conjugué complexe de la matrice dans la représentation SuperOp c'est-à-dire que pour un canal , le SuperOp du canal conjugué est .
copy
dot
dot(other, qargs=None)
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
Le produit de points peut être obtenu en utilisant l'opérateur binaire @ . Par conséquent, a.dot(b) est équivalent à a @ b.
expand
expand(other)
Renvoie le produit tensoriel d'ordre inverse avec un autre PTM.
Paramètres
other (PTM) – un objet PTM.
Retours
le produit tensoriel , où
est la PTM actuelle, et est l'autre PTM.
Type de retour
input_dims
input_dims(qargs=None)
Retourne un ensemble de dimensions d'entrée pour les sous-systèmes spécifiés.
is_cp
is_cp(atol=None, rtol=None)
Tester si la matrice de Choi est complètement positive (CP)
Paramètres
Type de retour
is_cptp
is_cptp(atol=None, rtol=None)
Retourne True si la préservation de la trace est entièrement positive (CPTP).
Paramètres
Type de retour
is_tp
is_unitary
is_unitary(atol=None, rtol=None)
Retourne True si QuantumChannel est un canal unitaire.
Paramètres
Type de retour
output_dims
output_dims(qargs=None)
Retourne un tuple de dimensions de sortie pour les sous-systèmes spécifiés.
power
power(n)
Renvoyer la puissance du canal quantique.
Paramètres
n (float) – l'exposant de puissance.
Retours
le canal .
Type de retour
Augmentations
QiskitError – si les dimensions d'entrée et de sortie de l' SuperOp e ne sont pas identiques.
Pour les exposants non positifs ou non entiers, la puissance est définie comme la puissance matricielle de la représentation SuperOp c'est-à-dire que pour un canal , le SuperOp du canal alimenté est .
reshape
reshape(input_dims=None, output_dims=None, num_qubits=None)
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.
tensor
tensor(other)
Renvoie le produit tensoriel avec un autre PTM.
Paramètres
other (PTM) – un objet PTM.
Retours
le produit tensoriel , où
est la PTM actuelle, et est l'autre PTM.
Type de retour
Le produit tensoriel peut être obtenu en utilisant l'opérateur binaire ^ . Par conséquent, a.tensor(b) est équivalent à a ^ b.
to_instruction
to_instruction()
Convertir en instruction de circuit Kraus ou UnitaryGate.
Si le canal est unitaire, il sera ajouté en tant que porte unitaire, sinon il sera ajouté en tant qu'instruction du simulateur de Kraus.
Retours
Une instruction kraus pour le canal.
Type de retour
Augmentations
QiskitError – si les données d'entrée ne constituent pas un canal quantique CPTP à N qubits.
to_operator
to_operator()
Essayer de convertir le canal en une représentation unitaire Opérateur.
Type de retour