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)
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
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)
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é parAddSpectatorPostCircuitBitFlipChecks.
Type de retour
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
spectator_cregs
PostSelector
class PostSelector(summary)
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')
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
from_circuit
classmethod from_circuit(circuit, coupling_map, *, post_check_suffix='_ps', pre_check_suffix='_pre', spectator_cregs=None)
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
summary
Type : PostSelectionSummary
Résumé du circuit intégrant des contrôles de bit inversé.
PostSelectionStrategy
class PostSelectionStrategy(value)
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')
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
TrueD'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
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.
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 - 1SiNone, 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 queFalse.
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
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 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
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
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
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