Skip to main content
IBM Quantum Platform

vérifications de inversion de bits

qiskit_addon_utils.noise_management.bit_flip_checks

Fonctions et classes permettant une post-sélection par le biais de vérifications de l'inversion de bits dans les circuits.

PostSelectionSummary

class PostSelectionSummary(primary_cregs, measure_map, edges, *, measure_map_ps=None, measure_map_pre=None, post_check_suffix='_ps', pre_check_suffix='_pre', spectator_cregs=None)

GitHub

Bases : object

Classe d'aide permettant de stocker les propriétés d'un circuit quantique nécessaires à la post-sélection basée sur des vérifications de renversement de bits.

Initialiser un PostSelectionSummary objet.

Paramètres

  • primary_cregs (set[str]) – Les noms des registres classiques « principaux », c'est-à-dire ceux qui ne se terminent pas par les suffixes de vérification pré- et post-circuit.
  • measure_map (dict[int, tuple[str, int]]) – Une correspondance entre les indices des qubits du registre et les clbits qui définissent de manière unique une mesure sur ces qubits (mesures primaires).
  • edges (set[frozenset[int]]) – Une liste de tuples définissant des paires de qubits voisins.
  • measure_map_ps (dict[int, tuple[str, int]] | None) – Une carte facultative pour les mesures de contrôle après le circuit.
  • measure_map_pre (dict[int, tuple[str, int]] | None) – Une carte facultative pour les mesures de contrôle préalables au circuit.
  • post_check_suffix (str) – Le suffixe des registres de contrôle post-circuit.
  • pre_check_suffix (str) – Le suffixe des registres de contrôle préalable au circuit.
  • spectator_cregs (set[str] | None) – Noms des registres principaux contenant les mesures des spectateurs (la première moitié du contrôle de parité des spectateurs généré par AddSpectatorPostCircuitBitFlipChecks).

edges

Type : set[frozenset[int]]

Un ensemble d'arêtes à prendre en compte pour la post-sélection basée sur les arêtes.

from_circuit

classmethod from_circuit(circuit, coupling_map, *, post_check_suffix='_ps', pre_check_suffix='_pre', spectator_cregs=None)

GitHub

Initialisation à partir de circuits quantiques.

Paramètres

  • circuit (QuantumCircuit) – Le circuit comportant des contrôles de inversion de bits…
  • coupling_map (CouplingMap |list[tuple[int, int]]) – Une carte de couplage ou une liste de tuples indiquant des paires de qubits voisins.
  • post_check_suffix (str) – Un suffixe fixe pour les registres classiques destinés au contrôle post-circuit.
  • pre_check_suffix (str) – Un suffixe fixe pour les registres classiques destinés au contrôle préalable au circuit.
  • spectator_cregs (set[str] | list[str] | None) – Noms des registres principaux contenant les mesures des spectateurs. La valeur par défaut est ["spec"], ce qui correspond au nom par défaut utilisé par AddSpectatorPostCircuitBitFlipChecks.

Type de retour

PostSelectionSummary

measure_map

Type : dict[int, tuple[str, int]]

Une correspondance entre les indices des qubits et les indices des registres et des clbits utilisés pour mesurer ces qubits.

measure_map_pre

Type : dict[int, tuple[str, int]]

Tableau de correspondance entre les indices des qubits et les indices des registres et des clbits pour les mesures de vérification préalables au circuit.

measure_map_ps

Type : dict[int, tuple[str, int]]

Tableau de correspondance entre les indices des qubits et les indices des registres et des clbits pour les mesures de vérification post-circuit.

post_check_suffix

Type : str

Le suffixe des registres de contrôle post-circuit.

pre_check_suffix

Type : str

Le suffixe des registres de contrôle préalable au circuit.

primary_cregs

Type : set[str]

Les noms des principaux registres classiques.

spectator_cregs

Type : set[str]

Sous-ensemble de primary_cregs contenant les mesures effectuées par les observateurs.

Utilisez primary_cregs - spectator_cregs pour obtenir les registres primaires contenant uniquement les données, par exemple lors du calcul d'observables à partir de prises filtrées.

PostSelector

class PostSelector(summary)

GitHub

Bases : object

Une classe permettant de traiter les résultats des vérifications de bit-flip.

Initialiser un PostSelector objet.

Paramètres

summary (PostSelectionSummary) – Résumé du circuit intégrant des contrôles de bit inversé.

compute_mask

compute_mask(result, strategy=PostSelectionStrategy.NODE, *, mode='post')

GitHub

Calculer des masques booléens indiquant les plans à conserver ou à écarter.

Par définition, le masque renvoyé a la même forme que les tableaux du résultat, mais avec une dimension en moins (le dernier axe de chaque tableau, correspondant aux clbits, n'est pas présent dans le masque).

Paramètres

  • result (dict[str, ndarray[tuple[int, ...], dtype[bool]]]) – Le résultat à traiter ultérieurement. Il doit s'agir d'un dictionnaire associant les noms de registres à des tableaux de valeurs booléennes.
  • strategy (Literal['node', 'edge'] | ~qiskit_addon_utils.noise_management.bit_flip_checks.post_selector.PostSelectionStrategy) – La stratégie de post-sélection (« nœud » ou « arête »).
  • mode (Literal['post', 'pre', 'both']) – Type de post-sélection à appliquer : - « post » : appliquer uniquement les vérifications post-circuit - « pre » : appliquer uniquement les vérifications pré-circuit - « both » : appliquer à la fois les vérifications pré-circuit et post-circuit

Retours

Un masque booléen où « True » indique les plans à conserver et « False » ceux à écarter.

Augmentations

ValueError – Si le mode demandé n'est pas disponible (par exemple, aucune mesure de pré-vérification n'est présente dans le circuit, mais le mode « pre » a été demandé).

Type de retour

ndarray [ tuple [ int, …], dtype [ bool ]]

from_circuit

classmethod from_circuit(circuit, coupling_map, *, post_check_suffix='_ps', pre_check_suffix='_pre', spectator_cregs=None)

GitHub

Initialisation à partir d'un circuit quantique.

Paramètres

  • circuit (QuantumCircuit) – Le circuit intégrant des contrôles de inversion de bits.
  • coupling_map (CouplingMap |list[tuple[int, int]]) – Une carte de couplage ou une liste de tuples indiquant des paires de qubits voisins.
  • post_check_suffix (str) – Un suffixe fixe pour les registres classiques, associé à des vérifications post-circuit.
  • pre_check_suffix (str) – Un suffixe fixe pour les registres classiques, associé à des vérifications en amont du circuit.
  • spectator_cregs (set[str] | list[str] | None) – Noms des registres contenant les mesures des spectateurs (la première moitié du contrôle de parité des spectateurs généré par AddSpectatorPostCircuitBitFlipChecks). La valeur par défaut est ["spec"] pour correspondre à AddSpectatorPostCircuitBitFlipChecks.

Type de retour

PostSelector

summary

Type : PostSelectionSummary

Résumé du circuit intégrant des contrôles de bit inversé.

PostSelectionStrategy

class PostSelectionStrategy(value)

GitHub

Bases : str, Enum

Les stratégies de post-sélection prises en charge.

objet d"affichage évolutif

Valeur par défaut : 'edge'

Écarter toute prise de mesure pour laquelle il existe une paire de qubits voisins pour lesquels les deux vérifications échouent.

NODE

Valeur par défaut : 'node'

Écartez tous les lancers pour lesquels un ou plusieurs contrôles ont échoué.

capitalize

capitalize()

Renvoie une version en majuscules de la chaîne.

Plus précisément, faites en sorte que la première lettre soit en majuscule et les autres en minuscules.

casefold

casefold()

Renvoie une version de la chaîne adaptée aux comparaisons sans distinction de majuscules et minuscules.

center

center(width, fillchar=' ', /)

Renvoie une chaîne centrée d'une longueur de width.

Le remplissage s'effectue à l'aide du caractère de remplissage spécifié (par défaut, un espace).

count

count(sub[, start[, end]]) → int

Renvoie le nombre d'occurrences non chevauchantes de la sous-chaîne « sub » dans la chaîne [S entre les indices] Sstart et Send. Les arguments facultatifs « start » et « end » sont interprétés comme dans la notation par tranche.

encode

encode(encoding='utf-8', errors='strict')

Encodez la chaîne à l'aide du codec enregistré pour l'encodage.

codage

L'encodage à utiliser pour encoder la chaîne de caractères.

erreurs

Le mécanisme de gestion des erreurs à utiliser en cas d'erreurs d'encodage. La valeur par défaut est « strict », ce qui signifie que les erreurs d'encodage provoquent une exception de type « UnicodeEncodeError ». Les autres valeurs possibles sont « ignore », « replace » et « xmlcharrefreplace », ainsi que tout autre nom enregistré sur codecs.register_error capable de gérer les éléments de type « UnicodeEncodeErrors ».

endswith

endswith(suffix[, start[, end]]) → bool

Renvoie « True » si S se termine par le suffixe spécifié, « False » dans le cas contraire. Avec le démarrage optionnel, lancez le test S à partir de cette position. Avec l'option « end », arrêtez la comparaison de S à cette position. Le suffixe peut également être un tuple de chaînes de caractères à tester.

expandtabs

expandtabs(tabsize=8)

Renvoie une copie dans laquelle tous les caractères de tabulation sont remplacés par des espaces.

Si la valeur de « tabsize » n'est pas spécifiée, la taille de tabulation par défaut est de 8 caractères.

find

find(sub[, start[, end]]) → int

Renvoie l'indice le plus bas dans S où la sous-chaîne sub est trouvée, à condition que sub soit comprise entre [Sstart et end]. Les arguments facultatifs « start » et « end » sont interprétés comme dans la notation par tranche.

Renvoie « -1 » en cas d'échec.

format

format(*args, **kwargs) → str

Renvoie une version formatée de S, en utilisant les substitutions issues de args et kwargs. Les substitutions sont indiquées par des accolades (« {’ and ‘} »).

format_map

format_map(mapping) → str

Renvoie une version formatée de S, en utilisant les substitutions issues de la mise en correspondance. Les substitutions sont indiquées par des accolades (« {’ and ‘} »).

index

index(sub[, start[, end]]) → int

Renvoie l'indice le plus bas dans S où la sous-chaîne sub est trouvée, à condition que sub soit comprise entre [Sstart et end]. Les arguments facultatifs « start » et « end » sont interprétés comme dans la notation par tranche.

Lance une exception « ValueError » lorsque la sous-chaîne n'est pas trouvée.

isalnum

isalnum()

Renvoie « True » si la chaîne est alphanumérique, « False » dans le cas contraire.

Une chaîne est alphanumérique si tous ses caractères sont alphanumériques et si elle contient au moins un caractère.

isalpha

isalpha()

Renvoie « True » si la chaîne est une chaîne alphabétique, « False » dans le cas contraire.

Une chaîne est alphabétique si tous ses caractères sont alphabétiques et si elle contient au moins un caractère.

isascii

isascii()

Renvoie « True » si tous les caractères de la chaîne sont au format ASCII, « False » dans le cas contraire.

Les caractères ASCII ont des points de code compris entre U+0000-U+007F. Une chaîne vide est également codée en ASCII.

isdecimal

isdecimal()

Renvoie « True » si la chaîne est une chaîne décimale, « False » dans le cas contraire.

Une chaîne est une chaîne décimale si tous ses caractères sont décimaux et si elle contient au moins un caractère.

isdigit

isdigit()

Renvoie « True » si la chaîne est composée uniquement de chiffres, « False » dans le cas contraire.

Une chaîne est une chaîne de chiffres si tous ses caractères sont des chiffres et si elle contient au moins un caractère.

isidentifier

isidentifier()

Renvoie « True » si la chaîne correspond à un identifiant « Python » valide, « False » dans le cas contraire.

Appelez la fonction keyword.iskeyword pour vérifier si la chaîne s est un identifiant réservé, tel que « def » ou « class ».

islower

islower()

Renvoie « True » si la chaîne est composée de lettres minuscules, « False » dans le cas contraire.

Une chaîne est en minuscules si tous les caractères non neutres qu'elle contient sont en minuscules et s'il y a au moins un caractère non neutre dans cette chaîne.

isnumeric

isnumeric()

Renvoie « True » si la chaîne est une chaîne numérique, « False » dans le cas contraire.

Une chaîne est numérique si tous ses caractères sont numériques et si elle contient au moins un caractère.

isprintable

isprintable()

Renvoie « True » si la chaîne est imprimable, « False » dans le cas contraire.

Une chaîne est imprimable si tous ses caractères sont considérés comme imprimables par la fonction repr() ou si elle est vide.

isspace

isspace()

Renvoie « True » si la chaîne est composée uniquement d'espaces, « False » dans le cas contraire.

Une chaîne est considérée comme composée uniquement d'espaces si tous ses caractères sont des espaces et si elle contient au moins un caractère.

istitle

istitle()

Renvoie « True » si la chaîne est écrite en majuscules initiales, « False » dans le cas contraire.

Dans une chaîne en majuscules et minuscules, les caractères en majuscules et en majuscules de titre ne peuvent suivre que des caractères sans distinction de casse, tandis que les caractères en minuscules ne peuvent suivre que des caractères en majuscules.

isupper

isupper()

Renvoie « True » si la chaîne est composée de lettres majuscules, « False » dans le cas contraire.

Une chaîne est en majuscules si tous les caractères non neutres qu'elle contient sont en majuscules et s'il y a au moins un caractère non neutre dans cette chaîne.

join

join(iterable, /)

Concaténer un nombre quelconque de chaînes de caractères.

La chaîne dont la méthode est appelée est insérée entre chacune des chaînes indiquées. Le résultat est renvoyé sous la forme d'une nouvelle chaîne de caractères.

Exemple : «. ».join( [« ab », « pq », « rs »] ) -> « ab.pq.rs »

ljust

ljust(width, fillchar=' ', /)

Renvoie une chaîne alignée à gauche d'une longueur de width.

Le remplissage s'effectue à l'aide du caractère de remplissage spécifié (par défaut, un espace).

lower

lower()

Renvoie une copie de la chaîne convertie en minuscules.

lstrip

lstrip(chars=None, /)

Renvoie une copie de la chaîne dont les espaces en début ont été supprimés.

Si chars est fourni et n'est pas None, supprimer plutôt les caractères contenus dans chars.

maketrans

static maketrans()

Renvoie une table de traduction utilisable avec la fonction str.translate ().

S'il n'y a qu'un seul argument, celui-ci doit être un dictionnaire associant des ordinaux Unicode (entiers) ou des caractères à des ordinaux Unicode, des chaînes de caractères ou None. Les clés de caractères seront ensuite converties en valeurs ordinales. S'il y a deux arguments, ceux-ci doivent être des chaînes de caractères de même longueur; dans le dictionnaire obtenu, chaque caractère de x sera associé au caractère occupant la même position dans y. S'il y a un troisième argument, il doit s'agir d'une chaîne de caractères, dont les caractères seront remplacés par « None » dans le résultat.

partition

partition(sep, /)

Divisez la chaîne en trois parties à l'aide du séparateur indiqué.

Cela permettra de rechercher le séparateur dans la chaîne de caractères. Si le séparateur est trouvé, renvoie un triplet contenant la partie précédant le séparateur, le séparateur lui-même et la partie qui le suit.

Si le séparateur n'est pas trouvé, renvoie un triplet contenant la chaîne d'origine et deux chaînes vides.

removeprefix

removeprefix(prefix, /)

Renvoie une chaîne de caractères dont le préfixe donné a été supprimé, s'il existe.

Si la chaîne commence par la chaîne « préfixe », renvoie «[ longueur_chaîne(préfixe) :] ». Sinon, renvoie une copie de la chaîne d'origine.

removesuffix

removesuffix(suffix, /)

Renvoie une chaîne de caractères dont le suffixe indiqué a été supprimé, s'il existe.

Si la chaîne se termine par la chaîne « suffixe » et que ce suffixe n'est pas vide, renvoie « chaîne » [- len(« suffixe »)]. Sinon, renvoie une copie de la chaîne d'origine.

replace

replace(old, new, count=-1, /)

Renvoie une copie dans laquelle toutes les occurrences de la sous-chaîne « old » ont été remplacées par « new ».

count

Nombre maximal d'occurrences à remplacer. « -1 » (valeur par défaut) signifie remplacer toutes les occurrences.

Si l'argument facultatif « count » est fourni, seules les « count » premières occurrences sont remplacées.

rfind

rfind(sub[, start[, end]]) → int

Renvoie l'indice le plus élevé dans S où la sous-chaîne sub est trouvée, à condition que sub soit comprise entre [Sstart et end]. Les arguments facultatifs « start » et « end » sont interprétés comme dans la notation par tranche.

Renvoie « -1 » en cas d'échec.

rindex

rindex(sub[, start[, end]]) → int

Renvoie l'indice le plus élevé dans S où la sous-chaîne sub est trouvée, à condition que sub soit comprise entre [Sstart et end]. Les arguments facultatifs « start » et « end » sont interprétés comme dans la notation par tranche.

Lance une exception « ValueError » lorsque la sous-chaîne n'est pas trouvée.

rjust

rjust(width, fillchar=' ', /)

Renvoie une chaîne alignée à droite d'une longueur de width.

Le remplissage s'effectue à l'aide du caractère de remplissage spécifié (par défaut, un espace).

rpartition

rpartition(sep, /)

Divisez la chaîne en trois parties à l'aide du séparateur indiqué.

Cette opération recherchera le séparateur dans la chaîne, en commençant par la fin. Si le séparateur est trouvé, renvoie un triplet contenant la partie précédant le séparateur, le séparateur lui-même et la partie qui le suit.

Si le séparateur n'est pas trouvé, renvoie un triplet contenant deux chaînes vides et la chaîne d'origine.

rsplit

rsplit(sep=None, maxsplit=-1)

Renvoie une liste des sous-chaînes de la chaîne, en utilisant « sep » comme chaîne de séparation.

Sep

Le séparateur utilisé pour diviser la chaîne.

Lorsque ce paramètre est défini sur « None » (valeur par défaut), le texte sera divisé à chaque caractère d'espacement (y compris \n, \r, \t, \f et les espaces) et les chaînes vides seront supprimées du résultat.

maxsplit

Nombre maximal de divisions (en partant de la gauche). « -1 » (valeur par défaut) signifie qu’il n’y a pas de limite.

Le fractionnement commence à la fin de la chaîne et se poursuit vers le début.

rstrip

rstrip(chars=None, /)

Renvoie une copie de la chaîne dont les espaces à la fin ont été supprimés.

Si chars est fourni et n'est pas None, supprimer plutôt les caractères contenus dans chars.

split

split(sep=None, maxsplit=-1)

Renvoie une liste des sous-chaînes de la chaîne, en utilisant « sep » comme chaîne de séparation.

Sep

Le séparateur utilisé pour diviser la chaîne.

Lorsque ce paramètre est défini sur « None » (valeur par défaut), le texte sera divisé à chaque caractère d'espacement (y compris \n, \r, \t, \f et les espaces) et les chaînes vides seront supprimées du résultat.

maxsplit

Nombre maximal de divisions (en partant de la gauche). « -1 » (valeur par défaut) signifie qu’il n’y a pas de limite.

Remarque : la fonction str.split () est principalement utile pour les données qui ont été délimitées intentionnellement. Pour le texte naturel comportant des signes de ponctuation, pensez à utiliser le module d'expressions régulières.

splitlines

splitlines(keepends=False)

Renvoie une liste des lignes contenues dans la chaîne, en séparant les lignes par des sauts de ligne.

Les sauts de ligne ne sont pas inclus dans la liste finale, sauf si le paramètre keepends est spécifié et défini sur true.

startswith

startswith(prefix[, start[, end]]) → bool

Renvoie « True » si S commence par le préfixe indiqué, « False » dans le cas contraire. Avec le démarrage optionnel, lancez le test S à partir de cette position. Avec l'option « end », arrêtez la comparaison de S à cette position. Le préfixe peut également être un tuple de chaînes de caractères à tester.

strip

strip(chars=None, /)

Renvoie une copie de la chaîne dont les espaces en début et en fin ont été supprimés.

Si chars est fourni et n'est pas None, supprimer plutôt les caractères contenus dans chars.

swapcase

swapcase()

Convertir les majuscules en minuscules et les minuscules en majuscules.

title

title()

Renvoie une version de la chaîne dans laquelle chaque mot est mis en majuscules.

Plus précisément, les mots commencent par une majuscule et tous les autres caractères sont en minuscules.

translate

translate(table, /)

Remplacez chaque caractère de la chaîne à l'aide du tableau de traduction fourni.

TABLEAU

Table de traduction, qui doit être une correspondance entre des ordinaux Unicode et d'autres ordinaux Unicode, des chaînes de caractères ou la valeur None.

La table doit prendre en charge la recherche et l'indexation via __getitem__, par exemple à l'aide d'un dictionnaire ou d'une liste. Si cette opération génère une exception de type « LookupError, », le caractère reste inchangé. Les caractères associés à « None » sont supprimés.

upper

upper()

Renvoie une copie de la chaîne convertie en majuscules.

zfill

zfill(width, /)

Ajouter des zéros à gauche d'une chaîne numérique afin de remplir un champ d'une largeur donnée.

La chaîne n'est jamais tronquée.

XSlowGate

class XSlowGate(label='xslow', xslow_gate_name='xslow')

GitHub

Bases : Gate

La porte « x-slow ».

Paramètres

  • nom – Le nom de la porte.
  • num_qubits – Le nombre de qubits sur lesquels agit la porte.
  • params – Une liste de paramètres.
  • label (str) – Une étiquette facultative pour la barrière.
  • xslow_gate_name (str)

add_decomposition

add_decomposition(decomposition)

Ajoutez une analyse détaillée de l'instruction à la page « SessionEquivalenceLibrary ».

base_class

Type : type[Instruction]

Récupérer la classe de base de cette instruction. On peut être sûr que cela figure dans l'arbre généalogique de self.

La « classe de base » d’une instruction est la classe la plus basse de 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 facilité d'utilisation au programmeur par rapport à la classe de base, et que cette dernière est la « véritable » classe d'un point de vue comportemental. En particulier, vous ne devez pas redéfinir base_class si vous définissez une version personnalisée d'une instruction qui sera mise en œuvre différemment par le matériel, comme 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 revient souvent exactement à type(obj), sauf dans le cas des instances uniques 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 classe de base. Par exemple :

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

D'une manière générale, il ne faut pas se fier à la classe précise d'une instruction; au sein d'un circuit donné, on considère que Instruction.name devrait constituer un critère de distinction plus approprié dans la plupart des situations.

broadcast_arguments

broadcast_arguments(qargs, cargs)

Validation et traitement des arguments et de leurs relations.

Par exemple, cx([q[0],q[1]], q[2]) signifie cx(q[0], q[2]); cx(q[1], q[2]). Cette méthode permet d'obtenir les arguments dans le regroupement de droite. Dans l'exemple donné :

in: [[q[0],q[1]], q[2]],[]
outs: [q[0], q[2]], []
      [q[1], q[2]], []

Les règles générales en matière de diffusion sont les suivantes :

  • Si len(qargs) == 1 :

    [q[0], q[1]] -> [q[0]],[q[1]]
  • Si len(qargs) == 2 :

    [[q[0], q[1]], [r[0], r[1]]] -> [q[0], r[0]], [q[1], r[1]]
    [[q[0]], [r[0], r[1]]]       -> [q[0], r[0]], [q[0], r[1]]
    [[q[0], q[1]], [r[0]]]       -> [q[0], r[0]], [q[1], r[0]]
  • Si len(qargs) >= 3 :

    [q[0], q[1]], [r[0], r[1]],  ...] -> [q[0], r[0], ...], [q[1], r[1], ...]

Paramètres

  • qargs (list) – Liste des arguments relatifs aux bits quantiques.
  • cargs (list) – Liste des arguments de bits classiques.

Retours

Un tuple comportant un seul argument.

Augmentations

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

Type de retour

Iterable [ tuple [ liste, liste ]]

control

control(num_ctrl_qubits=1, label=None, ctrl_state=None, annotated=None)

Renvoie la version contrôlée d'elle-même.

La porte contrôlée est mise en œuvre comme ControlledGate lorsque annotated est égal à False, et comme AnnotatedOperation lorsque annotated est égal à True.

Obsolète depuis la version 2.3

qiskit.circuit.gate.Gate.control()L'argument annotated est obsolète depuis la version 2.3 de Qiskit. Elle sera supprimée dans la version 3.0 de Qiskit. La méthode Gate.control () n'accepte plus la valeur annotated=None. La nouvelle valeur par défaut est annotated=True, ce qui représente la porte contrôlée comme une « AnnotatedOperation » (à moins qu'une classe dédiée aux portes contrôlées n'existe déjà). Vous pouvez définir explicitement annotated=False pour conserver le comportement précédent. Il est toutefois recommandé d'utiliser annotated=True, car cela reporte la construction du circuit contrôlé au niveau du transpileur et permet en outre des optimisations supplémentaires au niveau des portes contrôlées (ce qui se traduit généralement par des circuits de meilleure qualité).

Paramètres

  • num_ctrl_qubits (int) – Nombre de contrôles à ajouter. Prend par défaut la valeur 1.
  • label (str | None) – Étiquette de portail (facultative). Prend par défaut la valeur None. Ignoré si la porte contrôlée est implémentée sous la forme d'une opération annotée.
  • ctrl_state (int |str | None) – L'état de commande de la porte, spécifié soit sous forme d'entier, soit sous forme de chaîne de bits (par exemple "110"). 2**num_ctrl_qubits - 1Si None, la valeur par défaut est l'état « tout à un ».
  • annotated (bool | None) – Indique si la porte contrôlée doit être implémentée en tant que porte contrôlée ou en tant qu'opération annotée. Si None, on considère que False.

Retours

Une version contrôlée de cette porte.

Augmentations

QiskitError – invalide num_ctrl_qubits ou ctrl_state.

copy

copy(name=None)

Copie de la notice.

Paramètres

name (str) – nom à attribuer au circuit copié; si None alors le nom reste inchangé.

Retours

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

Type de retour

qiskit.circuit.Instruction

decompositions

Récupérez les décompositions de l'instruction à partir de l' SessionEquivalenceLibrary.

definition

Définir la fonction de retour en termes d'autres portes logiques de base.

inverse

inverse(annotated=False)

Inversez cette instruction.

Si la valeur de « annotated » est « False », l'instruction inverse est implémentée sous la forme d'une nouvelle instruction dont la définition est inversée de manière récursive.

Si la valeur de « annotated » est « True », l'instruction inverse est implémentée sous la forme AnnotatedOperation, et correspond à l'instruction donnée annotée avec le « modificateur inverse ».

Les instructions spéciales dérivées de l'instruction « Instruction » peuvent implémenter leur propre inverse (par exemple : T et Tdg, Barrier, etc.) Ils peuvent notamment choisir la manière de traiter cet argument annotated , ce qui peut notamment consister à l'ignorer et à toujours renvoyer une classe de porte concrète si l'inverse est défini comme une porte standard.

Paramètres

annotated (bool) – Si cette option est définie sur « True », la porte inverse de sortie sera renvoyée sous la forme AnnotatedOperation.

Retours

L'opération inverse.

Augmentations

CircuitError – si l'instruction n'est pas composite et qu'aucune inverse n'a été implémentée pour celle-ci.

is_parameterized

is_parameterized()

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

label

Type : str

Étiquette d'instructions de retour

mutable

Type : bool

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

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

name

Renvoie le nom.

num_clbits

Renvoie le nombre de clbits.

num_qubits

Renvoie le nombre de qubits.

params

Les paramètres de ce Instruction. Dans l'idéal, il s'agira d'angles de porte.

power

power(exponent, annotated=False)

Élevez cette porte à la puissance de exponent.

Mis en œuvre soit sous la forme d'une porte unitaire (réf. UnitaryGate) ou sous forme d'opération annotée (cf. AnnotatedOperation). Dans le cas de plusieurs portes standard, telles que RXGate, lorsque la puissance d'une porte peut s'exprimer en fonction d'une autre porte standard qui est renvoyée directement.

Paramètres

  • exponent (float) – le pouvoir de lever la barrière pour
  • annotated (bool) – indique si la porte de puissance peut être implémentée sous la forme d'une opération annotée. Dans le cas de plusieurs portes standard, telles que RXGate, cet argument est ignoré lorsque la puissance d'une porte peut être exprimée en fonction d'une autre porte standard.

Retours

Une opération implémentant gate^exponent

Augmentations

CircuitError – Si la porte n'est pas unitaire

repeat

repeat(n)

self Crée une instruction 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()

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

Pour ce faire, on inverse de manière récursive toutes les sous-instructions. Elle n'inverse aucune porte logique.

Retours

une nouvelle instruction avec

les sous-instructions ont été inversées.

Type de retour

qiskit.circuit.Instruction

soft_compare

soft_compare(other)

Comparaison souple entre les portes logiques. 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

« self » et « other » sont égaux jusqu’aux expressions de paramètres.

Type de retour

booléen

to_matrix

to_matrix()

Renvoie une matrice de type « Numpy.array » correspondant à la matrice unitaire de la porte.

Retours

si la sous-classe « Gate » comporte une définition de matrice.

Type de retour

np.ndarray

Augmentations

CircuitError – Si une sous-classe de Gate n'implémente pas cette méthode, une exception sera levée lors de l'appel de cette méthode de la classe de base.

to_mutable

to_mutable()

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 en profondeur de cette instance.

validate_parameter

validate_parameter(parameter)

Les paramètres de la porte doivent être de type int, float ou ParameterExpression

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