Skip to main content
IBM Quantum Platform

Bit-Flip-Prüfungen

qiskit_addon_utils.noise_management.bit_flip_checks

Funktionen und Klassen für die Nachauswahl mittels Bit-Flip-Prüfungen in Schaltungen.

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

Basen: object

Eine Hilfsklasse zum Speichern der Eigenschaften eines Quantenschaltkreises, die für die Nachselektion anhand von Bit-Flip-Prüfungen erforderlich sind.

Initialisiere ein PostSelectionSummary Objekt.

Parameter

  • primary_cregs (set[str]) – Die Namen der „primären“ klassischen Register, d. h. jener, die nicht mit den Suffixen für die Prüfung vor und nach dem Durchlauf enden.
  • measure_map (dict[int, tuple[str, int]]) – Eine Zuordnung zwischen den Qubit-Indizes im Register und den clbits, die eine Messung an diesen Qubits eindeutig definieren (Primärmessungen).
  • edges (set[frozenset[int]]) – Eine Liste von Tupeln, die Paare benachbarter Qubits definieren.
  • measure_map_ps (dict[int, tuple[str, int]] | None) – Eine optionale Karte für Messungen zur Überprüfung nach dem Durchlauf.
  • measure_map_pre (dict[int, tuple[str, int]] | None) – Eine optionale Karte für Messungen im Rahmen der Überprüfung vor der Rennrunde.
  • post_check_suffix (str) – Das Suffix der Register für die Überprüfung nach dem Schaltzyklus.
  • pre_check_suffix (str) – Das Suffix der Register für die Überprüfung vor dem Schaltvorgang.
  • AddSpectatorPostCircuitBitFlipChecksspectator_cregs (set[str] | None) – Namen der Primärregister, in denen die Zuschauer-Messwerte gespeichert sind (die erste Hälfte der von … erzeugten Zuschauer-Paritätsprüfung).

edges

Typ: set[frozenset[int]]

Eine Reihe von Kanten, die bei der kantenbasierten Nachauswahl zu berücksichtigen sind.

from_circuit

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

GitHub

Aus Quantenschaltungen initialisieren.

Parameter

  • circuit (QuantumCircuit) – Die Schaltung mit den Bit-Flip-Prüfungen...
  • coupling_map (CouplingMap |list[tuple[int, int]]) – Eine Kopplungskarte oder eine Liste von Tupeln, die Paare benachbarter Qubits angeben.
  • post_check_suffix (str) – Ein festes Suffix für klassische Register zur Überprüfung nach dem Schaltvorgang.
  • pre_check_suffix (str) – Ein festes Suffix für klassische Register zur Überprüfung vor der Schaltung.
  • spectator_cregs (set[str] | list[str] | None) – Namen der Primärregister, in denen Zuschauerwerte gespeichert sind. AddSpectatorPostCircuitBitFlipChecksStandardmäßig ist ["spec"], was dem von verwendeten Standardnamen entspricht.

Rückgabetyp

PostSelectionSummary

measure_map

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

Eine Zuordnung von Qubit-Indizes zu den Register- und Clbit-Indizes, die zur Messung dieser Qubits verwendet werden.

measure_map_pre

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

Eine Zuordnung von Qubit-Indizes zu den Register- und Clbit-Indizes für Messungen zur Schaltungsvorprüfung.

measure_map_ps

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

Eine Zuordnung von Qubit-Indizes zu den Register- und Clbit-Indizes für Messungen zur Überprüfung nach der Schaltung.

post_check_suffix

Typ: str

Das Suffix der Register für die Überprüfung nach dem Schaltzyklus.

pre_check_suffix

Typ: str

Das Suffix der Register für die Überprüfung vor dem Schaltvorgang.

primary_cregs

Typ: set[str]

Die Bezeichnungen der wichtigsten klassischen Register.

spectator_cregs

Typ: set[str]

Teilmenge von primary_cregs , die Zuschauer-Messungen enthalten.

Verwenden primary_cregs - spectator_cregs Sie, um die reinen Daten-Primärregister abzurufen, z. B. bei der Berechnung von Observablen aus gefilterten Schüssen.

PostSelector

class PostSelector(summary)

GitHub

Basen: object

Eine Klasse zur Verarbeitung der Ergebnisse von Bit-Flip-Prüfungen.

Initialisiere ein PostSelector Objekt.

Parameter

summary (PostSelectionSummary) – Eine Übersicht über die Schaltung mit Bit-Flip-Prüfungen.

compute_mask

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

GitHub

Berechne boolesche Masken, die angeben, welche Aufnahmen beibehalten oder verworfen werden sollen.

Aufgrund ihrer Konstruktion hat die zurückgegebene Maske dieselbe Form wie die Arrays im Ergebnis, jedoch mit einer Dimension weniger (die letzte Achse jedes Arrays, über clbits, ist in der Maske nicht vorhanden).

Parameter

  • result (dict[str, ndarray[tuple[int, ...], dtype[bool]]]) – Das Ergebnis, das nachbearbeitet werden soll. Es muss sich um ein Wörterbuch handeln, das Registernamen booleschen Arrays zuordnet.
  • strategy (Literal['node', 'edge'] | ~qiskit_addon_utils.noise_management.bit_flip_checks.post_selector.PostSelectionStrategy) – Die Strategie zur Nachauswahl („Knoten“ oder „Kante“).
  • mode (Literal['post', 'pre', 'both']) – Welche Art der Nachauswahl soll angewendet werden: - „post“: Nur Prüfungen nach dem Schaltvorgang durchführen - „pre“: Nur Prüfungen vor dem Schaltvorgang durchführen - „both“: Sowohl Prüfungen vor als auch nach dem Schaltvorgang durchführen

Rückgabe

Eine boolesche Maske, bei der „True“ die zu behaltenden Aufnahmen und „False“ die zu verwerfenden Aufnahmen kennzeichnet.

Erhöhungen

ValueError – Wenn der angeforderte Modus nicht verfügbar ist (z. B. keine Vorabprüfungsmessungen im Schaltkreis, obwohl „mode=“pre““ angefordert wurde).

Rückgabetyp

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

from_circuit

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

GitHub

Aus einem Quantenschaltkreis initialisieren.

Parameter

  • circuit (QuantumCircuit) – Die Schaltung mit Bit-Flip-Prüfungen.
  • coupling_map (CouplingMap |list[tuple[int, int]]) – Eine Kopplungskarte oder eine Liste von Tupeln, die Paare benachbarter Qubits angeben.
  • post_check_suffix (str) – Ein festes Suffix für klassische Register, das mit Überprüfungen nach dem Schaltvorgang verbunden ist.
  • pre_check_suffix (str) – Ein festes Suffix für klassische Register, das mit Vorabprüfungen verbunden ist.
  • AddSpectatorPostCircuitBitFlipChecksspectator_cregs (set[str] | list[str] | None) – Namen der Register, in denen die Zuschauer-Messwerte gespeichert sind (die erste Hälfte der von … erzeugten Zuschauer-Paritätsprüfung). AddSpectatorPostCircuitBitFlipChecksStandardmäßig wird verwendet ["spec"] , um mit abzugleichen.

Rückgabetyp

PostSelector

summary

Typ: PostSelectionSummary

Eine Übersicht über die Schaltung mit Bit-Flip-Prüfungen.

PostSelectionStrategy

class PostSelectionStrategy(value)

GitHub

Basen: str, Enum

Die unterstützten Strategien zur Nachauswahl.

EDGE

Standardwert: 'edge'

Verwerfe jeden Durchlauf, bei dem es ein Paar benachbarter Qubits gibt, bei dem beide Prüfungen fehlschlagen.

KNOTEN

Standardwert: 'node'

Verwerfe jeden Wurf, bei dem eine oder mehrere Prüfungen fehlgeschlagen sind.

capitalize

capitalize()

Gibt eine Version der Zeichenkette mit Großbuchstaben zurück.

Genauer gesagt: Das erste Zeichen soll groß geschrieben sein, die restlichen klein.

casefold

casefold()

Gibt eine Version der Zeichenkette zurück, die für groß-/kleinschreibungsunabhängige Vergleiche geeignet ist.

center

center(width, fillchar=' ', /)

Gibt eine zentrierte Zeichenkette der Länge „width“ zurück.

Das Auffüllen erfolgt mit dem angegebenen Füllzeichen (Standard ist ein Leerzeichen).

count

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

Gibt die Anzahl der nicht überlappenden Vorkommen der Teilzeichenfolge „sub“ in der Zeichenfolge „S“ zurück[Start:Ende]. Die optionalen Argumente „start“ und „end“ werden wie in der Slice-Notation interpretiert.

encode

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

Kodiere die Zeichenkette mithilfe des für die Kodierung registrierten Codecs.

Codierung

Die Kodierung, in der die Zeichenkette kodiert werden soll.

Fehler

Das für Kodierungsfehler zu verwendende Fehlerbehandlungsschema. Die Standardeinstellung ist „strict“, was bedeutet, dass Kodierungsfehler eine „ UnicodeEncodeError “ auslösen. Weitere mögliche Werte sind „ignore“, „replace“ und „xmlcharrefreplace“ sowie alle anderen bei codecs.register_error registrierten Namen, die UnicodeEncodeErrors verarbeiten können.

endswith

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

Gibt „True“ zurück, wenn S mit dem angegebenen Suffix endet, andernfalls „False“. Bei optionalem Start: Beginne den Test S an dieser Position. Mit „optional end“ wird der Vergleich von S an dieser Position beendet. Das Suffix kann auch ein Tupel aus zu prüfenden Zeichenfolgen sein.

expandtabs

expandtabs(tabsize=8)

Gibt eine Kopie zurück, in der alle Tabulatorzeichen durch Leerzeichen ersetzt wurden.

Wird „tabsize“ nicht angegeben, wird eine Tabulatorbreite von 8 Zeichen angenommen.

find

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

Gibt den niedrigsten Index in S zurück, an dem die Teilzeichenfolge sub gefunden wird, wobei sub im Bereich [Sstart:end] enthalten ist. Die optionalen Argumente „start“ und „end“ werden wie in der Slice-Notation interpretiert.

Bei einem Fehler wird „ -1 “ zurückgegeben.

format

format(*args, **kwargs) → str

Gibt eine formatierte Version von S zurück, wobei die Ersetzungen aus args und kwargs verwendet werden. Die Ersetzungen sind durch geschweifte Klammern („ {’ and ‘} “) gekennzeichnet.

format_map

format_map(mapping) → str

Gibt eine formatierte Version von S zurück, wobei die Ersetzungen aus der Zuordnung verwendet werden. Die Ersetzungen sind durch geschweifte Klammern („ {’ and ‘} “) gekennzeichnet.

index

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

Gibt den niedrigsten Index in S zurück, an dem die Teilzeichenfolge sub gefunden wird, wobei sub im Bereich [Sstart:end] enthalten ist. Die optionalen Argumente „start“ und „end“ werden wie in der Slice-Notation interpretiert.

Löst eine „ ValueError “-Ausnahme aus, wenn die Teilzeichenfolge nicht gefunden wird.

isalnum

isalnum()

Gibt „True“ zurück, wenn die Zeichenfolge alphanumerisch ist, andernfalls „False“.

Eine Zeichenkette ist alphanumerisch, wenn alle Zeichen in der Zeichenkette alphanumerisch sind und die Zeichenkette mindestens ein Zeichen enthält.

isalpha

isalpha()

Gibt „True“ zurück, wenn die Zeichenkette aus Buchstaben besteht, andernfalls „False“.

Eine Zeichenkette ist alphabetisch, wenn alle Zeichen in der Zeichenkette alphabetisch sind und die Zeichenkette mindestens ein Zeichen enthält.

isascii

isascii()

Gibt „True“ zurück, wenn alle Zeichen in der Zeichenkette ASCII-Zeichen sind, andernfalls „False“.

ASCII-Zeichen haben Codepunkte im Bereich von U+0000-U+007F. Eine leere Zeichenkette ist ebenfalls ASCII.

isdecimal

isdecimal()

Gibt „True“ zurück, wenn die Zeichenfolge eine Dezimalzahl ist, andernfalls „False“.

Eine Zeichenkette ist eine Dezimalzeichenkette, wenn alle Zeichen in der Zeichenkette Dezimalzeichen sind und die Zeichenkette mindestens ein Zeichen enthält.

isdigit

isdigit()

Gibt „True“ zurück, wenn die Zeichenkette aus Ziffern besteht, andernfalls „False“.

Eine Zeichenkette ist eine Ziffernfolge, wenn alle Zeichen in der Zeichenkette Ziffern sind und die Zeichenkette mindestens ein Zeichen enthält.

isidentifier

isidentifier()

Gibt „True“ zurück, wenn die Zeichenkette eine gültige „ Python “-Kennung ist, andernfalls „False“.

Rufen Sie die Funktion „ keyword.iskeyword “ auf, um zu prüfen, ob die Zeichenkette „s“ ein reservierter Bezeichner ist, wie beispielsweise „def“ oder „class“.

islower

islower()

Gibt „True“ zurück, wenn die Zeichenkette aus Kleinbuchstaben besteht, andernfalls „False“.

Eine Zeichenkette gilt als in Kleinbuchstaben geschrieben, wenn alle Zeichen mit Groß-/Kleinschreibung in der Zeichenkette Kleinbuchstaben sind und die Zeichenkette mindestens ein Zeichen mit Groß-/Kleinschreibung enthält.

isnumeric

isnumeric()

Gibt „True“ zurück, wenn die Zeichenfolge eine numerische Zeichenfolge ist, andernfalls „False“.

Eine Zeichenkette ist numerisch, wenn alle Zeichen in der Zeichenkette numerisch sind und die Zeichenkette mindestens ein Zeichen enthält.

isprintable

isprintable()

Gibt „True“ zurück, wenn die Zeichenkette druckbar ist, andernfalls „False“.

Eine Zeichenkette ist druckbar, wenn alle ihre Zeichen in repr() als druckbar gelten oder wenn sie leer ist.

isspace

isspace()

Gibt „True“ zurück, wenn die Zeichenkette ausschließlich aus Leerzeichen besteht, andernfalls „False“.

Eine Zeichenkette gilt als Leerzeichenzeichenkette, wenn alle Zeichen in der Zeichenkette Leerzeichen sind und die Zeichenkette mindestens ein Zeichen enthält.

istitle

istitle()

Gibt „True“ zurück, wenn die Zeichenkette in Titelschreibung vorliegt, andernfalls „False“.

In einer Zeichenkette mit Groß- und Kleinschreibung dürfen Großbuchstaben und Titelbuchstaben nur auf Zeichen ohne Groß-/Kleinschreibung folgen, und Kleinbuchstaben dürfen nur auf Zeichen mit Groß-/Kleinschreibung folgen.

isupper

isupper()

Gibt „True“ zurück, wenn die Zeichenkette aus Großbuchstaben besteht, andernfalls „False“.

Eine Zeichenkette gilt als in Großbuchstaben geschrieben, wenn alle Zeichen mit Groß-/Kleinschreibung in der Zeichenkette Großbuchstaben sind und die Zeichenkette mindestens ein Zeichen mit Groß-/Kleinschreibung enthält.

join

join(iterable, /)

Beliebig viele Zeichenfolgen verketten.

Die Zeichenkette, deren Methode aufgerufen wird, wird zwischen die einzelnen angegebenen Zeichenketten eingefügt. Das Ergebnis wird als neue Zeichenkette zurückgegeben.

Beispiel: „.“.join( [„ab“, „pq“, „rs“] ) -> „ ab.pq.rs “

ljust

ljust(width, fillchar=' ', /)

Gibt eine linksbündige Zeichenkette der Länge „width“ zurück.

Das Auffüllen erfolgt mit dem angegebenen Füllzeichen (Standard ist ein Leerzeichen).

lower

lower()

Gibt eine Kopie der Zeichenkette zurück, die in Kleinbuchstaben umgewandelt wurde.

lstrip

lstrip(chars=None, /)

Gibt eine Kopie der Zeichenkette zurück, aus der führende Leerzeichen entfernt wurden.

Wenn „chars“ angegeben wurde und nicht „None“ ist, werden stattdessen die Zeichen in „chars“ entfernt.

maketrans

static maketrans()

Gibt eine Übersetzungstabelle zurück, die für die Funktion str.translate () verwendet werden kann.

Wenn nur ein Argument vorhanden ist, muss es sich um ein Wörterbuch handeln, das Unicode-Ordinalzahlen (Ganzzahlen) oder Zeichen Unicode-Ordinalzahlen, Zeichenfolgen oder „None“ zuordnet. Zeichentasten werden anschließend in Ordinalzahlen umgewandelt. Wenn zwei Argumente vorhanden sind, müssen es Zeichenketten gleicher Länge sein, und im resultierenden Wörterbuch wird jedes Zeichen in x dem Zeichen an derselben Position in y zugeordnet. Wenn ein drittes Argument vorhanden ist, muss es sich um eine Zeichenkette handeln, deren Zeichen im Ergebnis auf „None“ abgebildet werden.

partition

partition(sep, /)

Teile die Zeichenkette mithilfe des angegebenen Trennzeichens in drei Teile auf.

Dadurch wird in der Zeichenfolge nach dem Trennzeichen gesucht. Wird das Trennzeichen gefunden, wird ein 3-Tupel zurückgegeben, das den Teil vor dem Trennzeichen, das Trennzeichen selbst und den Teil danach enthält.

Wird das Trennzeichen nicht gefunden, wird ein 3-Tupel zurückgegeben, das die ursprüngliche Zeichenkette und zwei leere Zeichenketten enthält.

removeprefix

removeprefix(prefix, /)

Gibt eine Zeichenkette zurück, aus der die angegebene Präfixzeichenkette entfernt wurde, sofern vorhanden.

Wenn die Zeichenkette mit der Präfixzeichenkette beginnt, gib die Zeichenkette zurück[len(Präfix):]. Andernfalls gib eine Kopie der ursprünglichen Zeichenkette zurück.

removesuffix

removesuffix(suffix, /)

Gibt eine Zeichenkette zurück, aus der die angegebene Endung entfernt wurde, sofern vorhanden.

Wenn die Zeichenkette mit der Suffix-Zeichenkette endet und dieses Suffix nicht leer ist, gib die Zeichenkette zurück[:-len(Suffix)]. Andernfalls gib eine Kopie der ursprünglichen Zeichenkette zurück.

replace

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

Gibt eine Kopie zurück, in der alle Vorkommen der Teilzeichenfolge „old“ durch „new“ ersetzt wurden.

count

Maximale Anzahl der zu ersetzenden Vorkommen. „ -1 “ (Standardwert) bedeutet, dass alle Vorkommen ersetzt werden.

Wird das optionale Argument „count“ angegeben, werden nur die ersten „count“ Vorkommen ersetzt.

rfind

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

Gibt den höchsten Index in S zurück, an dem die Teilzeichenfolge sub gefunden wird, wobei sub im Bereich [Sstart:end] enthalten ist. Die optionalen Argumente „start“ und „end“ werden wie in der Slice-Notation interpretiert.

Bei einem Fehler wird „ -1 “ zurückgegeben.

rindex

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

Gibt den höchsten Index in S zurück, an dem die Teilzeichenfolge sub gefunden wird, wobei sub im Bereich [Sstart:end] enthalten ist. Die optionalen Argumente „start“ und „end“ werden wie in der Slice-Notation interpretiert.

Löst eine „ ValueError “-Ausnahme aus, wenn die Teilzeichenfolge nicht gefunden wird.

rjust

rjust(width, fillchar=' ', /)

Gibt eine rechtsbündige Zeichenkette der Länge „width“ zurück.

Das Auffüllen erfolgt mit dem angegebenen Füllzeichen (Standard ist ein Leerzeichen).

rpartition

rpartition(sep, /)

Teile die Zeichenkette mithilfe des angegebenen Trennzeichens in drei Teile auf.

Dadurch wird die Zeichenfolge vom Ende her nach dem Trennzeichen durchsucht. Wird das Trennzeichen gefunden, wird ein 3-Tupel zurückgegeben, das den Teil vor dem Trennzeichen, das Trennzeichen selbst und den Teil danach enthält.

Wird das Trennzeichen nicht gefunden, wird ein 3-Tupel zurückgegeben, das zwei leere Zeichenketten und die ursprüngliche Zeichenkette enthält.

rsplit

rsplit(sep=None, maxsplit=-1)

Gibt eine Liste der Teilzeichenfolgen der Zeichenkette zurück, wobei „sep“ als Trennzeichen verwendet wird.

Sep

Das Trennzeichen, das zum Aufteilen der Zeichenkette verwendet wird.

Bei der Einstellung „None“ (Standardwert) erfolgt die Aufteilung an jedem Leerzeichen (einschließlich \n, \r, \t, \f und Leerzeichen), und leere Zeichenfolgen werden aus dem Ergebnis entfernt.

maxsplit

Maximale Anzahl der Teilungen (beginnend von links). „ -1 “ (Standardwert) bedeutet, dass keine Begrenzung gilt.

Die Aufteilung beginnt am Ende der Zeichenkette und erfolgt in Richtung Anfang.

rstrip

rstrip(chars=None, /)

Gibt eine Kopie der Zeichenkette zurück, aus der nachgestellte Leerzeichen entfernt wurden.

Wenn „chars“ angegeben wurde und nicht „None“ ist, werden stattdessen die Zeichen in „chars“ entfernt.

split

split(sep=None, maxsplit=-1)

Gibt eine Liste der Teilzeichenfolgen der Zeichenkette zurück, wobei „sep“ als Trennzeichen verwendet wird.

Sep

Das Trennzeichen, das zum Aufteilen der Zeichenkette verwendet wird.

Bei der Einstellung „None“ (Standardwert) erfolgt die Aufteilung an jedem Leerzeichen (einschließlich \n, \r, \t, \f und Leerzeichen), und leere Zeichenfolgen werden aus dem Ergebnis entfernt.

maxsplit

Maximale Anzahl der Teilungen (beginnend von links). „ -1 “ (Standardwert) bedeutet, dass keine Begrenzung gilt.

Beachten Sie, dass die Funktion „ str.split ()“ vor allem für Daten nützlich ist, die bewusst durch Trennzeichen getrennt wurden. Bei natürlichem Text, der Satzzeichen enthält, sollten Sie die Verwendung des Moduls für reguläre Ausdrücke in Betracht ziehen.

splitlines

splitlines(keepends=False)

Gibt eine Liste der Zeilen in der Zeichenkette zurück, wobei an den Zeilengrenzen getrennt wird.

Zeilenumbrüche werden in der resultierenden Liste nicht berücksichtigt, es sei denn, „keepends“ ist angegeben und auf „true“ gesetzt.

startswith

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

Gibt „True“ zurück, wenn S mit dem angegebenen Präfix beginnt, andernfalls „False“. Bei optionalem Start: Beginne den Test S an dieser Position. Mit „optional end“ wird der Vergleich von S an dieser Position beendet. Das Präfix kann auch ein Tupel aus zu prüfenden Zeichenfolgen sein.

strip

strip(chars=None, /)

Gibt eine Kopie der Zeichenkette zurück, bei der führende und abschließende Leerzeichen entfernt wurden.

Wenn „chars“ angegeben wurde und nicht „None“ ist, werden stattdessen die Zeichen in „chars“ entfernt.

swapcase

swapcase()

Großbuchstaben in Kleinbuchstaben und Kleinbuchstaben in Großbuchstaben umwandeln.

title

title()

Gib eine Version der Zeichenkette zurück, in der jedes Wort mit Großbuchstaben am Wortanfang geschrieben ist.

Genauer gesagt beginnen Wörter mit Großbuchstaben, und alle übrigen Buchstaben werden klein geschrieben.

translate

translate(table, /)

Ersetze jedes Zeichen in der Zeichenkette anhand der angegebenen Übersetzungstabelle.

Tabelle

Übersetzungstabelle, die eine Zuordnung von Unicode-Ordinalzahlen zu Unicode-Ordinalzahlen, Zeichenketten oder „None“ sein muss.

Die Tabelle muss die Suche und Indizierung über __getitem__ implementieren, beispielsweise ein Wörterbuch oder eine Liste. Wenn bei dieser Operation ein „ LookupError, “ ausgelöst wird, bleibt das Zeichen unverändert. Zeichen, denen „None“ zugeordnet ist, werden gelöscht.

upper

upper()

Gibt eine Kopie der Zeichenkette zurück, die in Großbuchstaben umgewandelt wurde.

zfill

zfill(width, /)

Eine Zahlenfolge links mit Nullen auffüllen, um ein Feld mit der angegebenen Breite auszufüllen.

Die Zeichenkette wird niemals gekürzt.

XSlowGate

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

GitHub

Basen: Gate

Das x-Slow-Gate.

Parameter

  • name – Der Name des Gates.
  • num_qubits – Die Anzahl der Qubits, auf die das Gatter wirkt.
  • params – Eine Liste von Parametern.
  • label (str) – Eine optionale Beschriftung für das Tor.
  • xslow_gate_name (str)

add_decomposition

add_decomposition(decomposition)

Fügen Sie eine Aufschlüsselung der Anweisung in die „ SessionEquivalenceLibrary “ ein.

base_class

Typ: type[Instruction]

Rufe die Basisklasse dieser Anweisung ab. Das wird garantiert im Vererbungsbaum von self… vorkommen.

Die „Basisklasse“ einer Anweisung ist die unterste Klasse in ihrem Vererbungsbaum, mit der das Objekt für _alle_ Schaltungsanwendungen als vollständig kompatibel angesehen werden sollte. Das bedeutet in der Regel, dass die Unterklasse lediglich definiert wird, um dem Programmierer gegenüber der Basisklasse gewisse Erleichterungen zu bieten, während die Basisklasse aus verhaltensbezogener Sicht die „wahre“ Klasse ist. Insbesondere sollten Sie die Definition nicht überschreiben base_class , wenn Sie eine benutzerdefinierte Version einer Anweisung definieren, die von der Hardware anders implementiert wird, wie beispielsweise eine alternative Messstrategie oder eine Version eines parametrisierten Gatters mit einem bestimmten Parametersatz, um diese in einem Target vom vollständig parametrisierten Gatter zu unterscheiden.

type(obj)Dies entspricht oft genau, außer im Fall von Singleton-Instanzen von Befehlen aus der Standardbibliothek. Diese Singleton-Instanzen sind spezielle Unterklassen ihrer Basisklasse, und diese Eigenschaft gibt diese Basisklasse zurück. Zum Beispiel:

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

Generell sollten Sie sich nicht auf die genaue Klasse eines Befehls verlassen; innerhalb einer bestimmten Schaltung ist davon auszugehen, dass Instruction.name in den meisten Situationen ein geeigneteres Unterscheidungsmerkmal darstellt.

broadcast_arguments

broadcast_arguments(qargs, cargs)

Validierung und Verarbeitung der Argumente sowie deren Beziehungen untereinander.

Beispielsweise bedeutet cx(q[0], q[2]); cx(q[1], q[2]). cx([q[0],q[1]], q[2]) Diese Methode liefert die Argumente in der richtigen Gruppierung. Im angegebenen Beispiel:

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

Die allgemeinen Regeln für die Übertragung lauten wie folgt:

  • Wenn len(qargs) == 1:

    [q[0], q[1]] -> [q[0]],[q[1]]
  • Wenn 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]]
  • Wenn len(qargs) >= 3:

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

Parameter

  • qargs (list) – Liste der Argumente für Quantenbits.
  • cargs (list) – Liste klassischer Bit-Argumente.

Rückgabe

Ein Tupel mit einem einzigen Argument.

Erhöhungen

CircuitError – Wenn die Eingabe ungültig ist. Beispielsweise stimmt die Anzahl der Argumente nicht mit der vom Gatter erwarteten Anzahl überein.

Rückgabetyp

Iterable [ Tupel [ Liste, Liste ]]

control

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

Gibt die kontrollierte Version von sich selbst zurück.

True``FalseDas gesteuerte Gate wird als ControlledGate implementiert, wenn annotated ist, und als AnnotatedOperation , wenn annotated ist.

Seit Version 2.3 veraltet

qiskit.circuit.gate.Gate.control()Das Argument annotated ist ab Qiskit 2.3 veraltet. Es wird in Qiskit 3.0 entfernt. Die Methode „ Gate.control ()“ akzeptiert nicht mehr „annotated=None“. Der neue Standardwert ist „annotated=True“, wodurch das gesteuerte Gatter als „ AnnotatedOperation “ dargestellt wird (sofern nicht bereits eine eigene Klasse für gesteuerte Gatter vorhanden ist). Sie können „annotated=False“ explizit festlegen, um das bisherige Verhalten beizubehalten. Es wird jedoch empfohlen, „annotated=True“ zu verwenden, da dadurch die Erstellung der kontrollierten Schaltung auf den Transpiler verschoben wird und darüber hinaus zusätzliche Optimierungen der kontrollierten Gatter ermöglicht werden (was in der Regel zu Schaltungen höherer Qualität führt).

Parameter

  • num_ctrl_qubits (int) – Anzahl der hinzuzufügenden Steuerelemente. Der Standardwert ist 1.
  • label (str | None) – Optionale Beschriftung des Tors. Der Standardwert ist None. Wird ignoriert, wenn das gesteuerte Gate als annotierte Operation implementiert ist.
  • ctrl_state (int |str | None) – Der Steuerzustand des Gatters, angegeben entweder als Ganzzahl oder als Bitfolge (z. B. "110"). 2**num_ctrl_qubits - 1Wenn None, wird standardmäßig der Zustand „alles Einsen“ angenommen.
  • annotated (bool | None) – Gibt an, ob das gesteuerte Gatter als gesteuertes Gatter oder als kommentierte Operation implementiert werden soll. FalseWenn None, dann wird dies als behandelt.

Rückgabe

Eine gesteuerte Version dieses Gatters.

Erhöhungen

QiskitError – ungültig num_ctrl_qubits oder ctrl_state.

copy

copy(name=None)

Kopie der Anleitung.

Parameter

name (str) – Name, der der kopierten Schaltung zugewiesen werden soll; wenn None dann bleibt der Name unverändert.

Rückgabe

eine Kopie der aktuellen Anleitung, wobei der Name aktualisiert wird, sofern er angegeben wurde

Rückgabetyp

qiskit.circuit.Instruction

decompositions

Rufen Sie die Aufschlüsselungen des Befehls aus der „ SessionEquivalenceLibrary “ ab.

definition

Definition des Rücklaufs anhand anderer Grundgatter.

inverse

inverse(annotated=False)

Drehe diese Anweisung um.

Ist „annotated“ auf „False“ gesetzt, wird die inverse Anweisung als neue Anweisung mit der rekursiv invertierten Definition implementiert.

AnnotatedOperationWenn „annotated“ auf „True“ gesetzt ist, wird die inverse Anweisung als implementiert und entspricht der angegebenen Anweisung, die mit dem „inverse modifier“ versehen ist.

Spezielle Befehle, die von „Instruction“ abgeleitet sind, können ihre eigene Inverse implementieren (z. B. T und Tdg, Barrier usw.) Insbesondere können sie festlegen, wie mit dem Argument annotated verfahren werden soll – dies kann auch bedeuten, es zu ignorieren und stets eine konkrete Gatterklasse zurückzugeben, wenn die Inverse als Standardgatter definiert ist.

Parameter

annotated (bool) – Wenn dieser Wert auf „True“ gesetzt ist, wird das inverse Ausgangsgatter als AnnotatedOperation. zurückgegeben.

Rückgabe

Die Umkehroperation.

Erhöhungen

CircuitError – wenn es sich nicht um eine zusammengesetzte Anweisung handelt und für diese keine Umkehrung implementiert wurde.

is_parameterized

is_parameterized()

Gibt zurück, ob das Instruction Kompilierungszeitparameter enthält.

label

Typ: str

Etikett mit Rücksendeanweisungen

mutable

Typ: bool

Ist diese Instanz eine veränderbare, eindeutige Instanz oder nicht?

Wenn dieses Attribut gesetzt ist False , handelt es sich bei der Gate-Instanz um ein gemeinsam genutztes Singleton, das nicht veränderbar ist.

name

Gib den Namen zurück.

num_clbits

Gibt die Anzahl der clbits zurück.

num_qubits

Gibt die Anzahl der Qubits zurück.

params

Die Parameter dieser Instruction. Im Idealfall handelt es sich dabei um Torwinkel.

power

power(exponent, annotated=False)

Erhebe dieses Tor zur Potenz von exponent.

UnitaryGateWird entweder als einheitliches Gatter implementiert (siehe ) oder als kommentierte Operation (siehe AnnotatedOperation). Bei mehreren Standardgattern, wie z. B. RXGate, lässt sich die Leistung eines Gatters als Funktion eines anderen Standardgatters ausdrücken, das direkt zurückgegeben wird.

Parameter

  • exponent (float) – die Möglichkeit, das Tor anzuheben, um
  • annotated (bool) – Gibt an, ob das Power-Gate als annotierte Operation implementiert werden kann. Bei einigen Standardgattern, wie z. B. RXGate, wird dieses Argument ignoriert, wenn sich die Leistung eines Gatters als Funktion eines anderen Standardgatters ausdrücken lässt.

Rückgabe

Eine Operation, die gate^exponent

Erhöhungen

CircuitError – Wenn das Gatter nicht unitär ist

repeat

repeat(n)

Erstellt eine Anweisung, die self nn -mal wiederholt wird.

Parameter

n (int) – Anzahl der Wiederholungen der Anweisung

Rückgabe

Enthält die Definition.

Rückgabetyp

qiskit.circuit.Instruction

Erhöhungen

CircuitError – Wenn n < 1 ist.

reverse_ops

reverse_ops()

Bei einem zusammengesetzten Befehl kehren Sie die Reihenfolge der Teilbefehle um.

Dies geschieht durch rekursive Umkehrung aller Unterbefehle. Es invertiert kein Gatter.

Rückgabe

eine neue Anweisung mit

Unterbefehle wurden umgekehrt.

Rückgabetyp

qiskit.circuit.Instruction

soft_compare

soft_compare(other)

Weicher Vergleich zwischen den Toren. Ihre Namen, die Anzahl der Qubits und die Anzahl der klassischen Bits müssen übereinstimmen. Die Anzahl der Parameter muss übereinstimmen. Jeder Parameter wird verglichen. Wenn man ein „ ParameterExpression “ ist, wird dies nicht berücksichtigt.

Parameter

other (instruction) – sonstige Anweisungen.

Rückgabe

sind „self“ und „other“ bis auf Parameterausdrücke gleich.

Rückgabetyp

bool

to_matrix

to_matrix()

Gibt ein „ Numpy.array “ für die unitäre Gate-Matrix zurück.

Rückgabe

wenn die Gate-Unterklasse eine Matrixdefinition enthält.

Rückgabetyp

np.ndarray

Erhöhungen

CircuitError – Wenn eine Gate-Unterklasse diese Methode nicht implementiert, wird beim Aufruf dieser Methode der Basisklasse eine Ausnahme ausgelöst.

to_mutable

to_mutable()

Gibt eine veränderbare Kopie dieses Gates zurück.

Diese Methode gibt eine neue, veränderbare Kopie dieser Gate-Instanz zurück. Wenn eine Singleton-Instanz verwendet wird, handelt es sich hierbei um eine neue, eindeutige Instanz, deren Zustand verändert werden kann. Wenn die Instanz bereits veränderbar ist, handelt es sich um eine Deep-Kopie dieser Instanz.

validate_parameter

validate_parameter(parameter)

Die Gate-Parameter sollten vom Typ „int“, „float“ oder „ ParameterExpression “ sein

War diese Seite hilfreich?
Melden Sie auf GitHub einen Fehler, einen Tippfehler oder fordern Sie Inhalte an.