Skip to main content
IBM Quantum Platform

PauliProductMeasurement

class qiskit.circuit.library.PauliProductMeasurement(pauli, label=None)

GitHub

Bases : Instruction

Instructions de mesure des produits Pauli.

Une mesure de produit de Pauli est une opération fondamentale dans l'informatique quantique tolérante aux pannes. Mathématiquement, cela correspond à une mesure projective conjointe sur plusieurs qubits, où l'observable mesuré est un produit tensoriel d'opérateurs de Pauli. Le résultat de cette mesure est une valeur propre unique, soit +1+1 soit 1-1, indiquant l'état propre du produit de Pauli.

Références :

[1] Daniel Litinski. « Un jeu de codes de surface : l'informatique quantique à grande échelle avec la chirurgie des réseaux » arXiv:1808.02892

Paramètres

  • pauli (qiskit.quantum_info.Pauli) – Un produit tensoriel d'opérateurs de Pauli définissant la mesure, par exemple Pauli("XY") ou Pauli("-XYIZ"). L'opérateur identité de Pauli n'est pas autorisé. Le Pauli peut inclure une phase d' 1-1, mais pas d' ii ou d' i-i.
  • label (str | None) – Étiquette facultative pour la porte à afficher dans les visualisations de circuit. Par défaut, l'étiquette est définie sur PPM(<pauli label>).
Remarque

Bien que les "I"termes impliquant Pauli soient entièrement pris en charge, il est recommandé de supprimer "I"les termes Pauli lors de la création d'une PauliProductMeasurement instruction, car cela ne modifie pas la mesure réelle, mais spécifie l'instruction sur un ensemble plus petit de qubits.

Augmentations

CircuitError – Si l’opérateur de Pauli est l’opérateur d’identité, s’il a pour valeur 0 ou s’il possède une phase complexe.

Paramètres


Attributs

base_class

Obtenir la classe de base de cette instruction. Ceci est garanti dans l'arborescence d'héritage de self.

La « classe de base » d'une instruction est la classe la plus basse dans son arbre d'héritage avec laquelle l'objet doit être considéré comme entièrement compatible pour toutes les applications de circuit. Cela signifie généralement que la sous-classe est définie uniquement pour offrir une certaine commodité au programmeur par rapport à la classe de base, et que la classe de base est la « véritable » classe du point de vue comportemental. En particulier, vous ne devez pas remplacer base_class si vous définissez une version personnalisée d'une instruction qui sera implémentée différemment par le matériel, telle qu'une stratégie de mesure alternative ou une version d'une porte paramétrée avec un ensemble particulier de paramètres dans le but de la distinguer dans un Target de la porte entièrement paramétrée.

Cela équivaut souvent exactement à type(obj), sauf dans le cas d'instances singleton d'instructions de la bibliothèque standard. Ces instances singleton sont des sous-classes spéciales de leur classe de base, et cette propriété renverra cette base. Par exemple :

>>> isinstance(XGate(), XGate)
True
>>> type(XGate()) is XGate
False
>>> XGate().base_class is XGate
True

En général, il ne faut pas se fier à la classe précise d'une instruction; dans un circuit donné, on s'attend à ce que Instruction.name soit un discriminateur plus approprié dans la plupart des situations.

decompositions

Obtenir les décompositions de l'instruction à partir de l' SessionEquivalenceLibrary e.

definition

Définir le retour en termes d'autres portes de base.

label

Étiquette d'instructions de retour

mutable

Cette instance est-elle une instance unique modifiable ou non?

Si cet attribut est False l'instance de porte est un singleton partagé et n'est pas modifiable.

name

Renvoyer le nom.

num_clbits

Renvoie le nombre de bits clbits.

num_qubits

Renvoie le nombre de qubits.

params

Les paramètres de ce Instruction. Idéalement, il s'agira d'angles de porte.


Méthodes

add_decomposition

add_decomposition(decomposition)

GitHub

Ajouter une décomposition de l'instruction à l' SessionEquivalenceLibrary e.

broadcast_arguments

broadcast_arguments(qargs, cargs)

GitHub

Validation des arguments.

Paramètres

  • qargs (List) – Liste des arguments relatifs aux bits quantiques.
  • cargs (List) – Liste des arguments classiques en bits.

Rendements

Tuple(Liste, Liste) – Un tuple avec des arguments uniques.

Augmentations

CircuitError – Si la saisie n'est pas valide. Par exemple, le nombre d'arguments ne correspond pas à ce qu'on attend de la porte logique.

copy

copy(name=None)

GitHub

Copie de l'instruction.

Paramètres

name (str) – nom à donner au circuit copié, si None alors le nom reste le même.

Retours

une copie de l'instruction actuelle, avec le nom mis à jour s'il a été fourni

Type de retour

qiskit.circuit.Instruction

inverse

inverse(annotated=False)

GitHub

Empêche l'appel inverse d'une instruction PauliProductMeasurement.

is_parameterized

is_parameterized()

GitHub

Indique si la fonction Instruction contient des paramètres définis à la compilation.

pauli

pauli()

GitHub

Renvoie le produit de Pauli mis en œuvre par cette mesure.

Il s'agit d'un accesseur public qui reconstitue et renvoie le Pauli correspondant au produit tensoriel sous-jacent des opérateurs de Pauli de cette instruction, y compris sa phase globale de +1 ou -1.

Retours

Le produit de Pauli mesuré par cette instruction.

Type de retour

Pauli

repeat

repeat(n)

GitHub

Crée une instruction self répétée nn fois.

Paramètres

n (int) – Nombre de fois où l'instruction doit être répétée

Retours

Contenant la définition.

Type de retour

qiskit.circuit.Instruction

Augmentations

CircuitError – Si n < 1.

reverse_ops

reverse_ops()

GitHub

Pour une instruction composite, inversez l'ordre des sous-instructions.

Pour ce faire, toutes les sous-instructions sont inversées de manière récursive. Il n'inverse aucune porte.

Retours

une nouvelle instruction avec

sous-instructions inversées.

Type de retour

qiskit.circuit.Instruction

soft_compare

soft_compare(other)

GitHub

Comparaison douce entre les portes. Leurs noms, leur nombre de qubits et leur nombre de bits classiques doivent correspondre. Le nombre de paramètres doit correspondre. Chaque paramètre est comparé. Si l'on est un ParameterExpression, cela n'est pas pris en compte.

Paramètres

other (instruction) – autre instruction.

Retours

sont égaux à eux-mêmes et aux autres jusqu'aux expressions paramétriques.

Type de retour

booléen

to_mutable

to_mutable()

GitHub

Renvoie une copie modifiable de cette porte.

Cette méthode renvoie une nouvelle copie modifiable de cette instance de porte. Si une instance singleton est utilisée, il s'agira d'une nouvelle instance unique pouvant être modifiée. Si l'instance est déjà modifiable, il s'agira d'une copie profonde de cette instance.

validate_parameter

validate_parameter(parameter)

GitHub

Le paramètre d'instruction n'a pas de validation ni de normalisation.

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