Skip to main content
IBM Quantum Platform

PauliProductMeasurement

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

GitHub

Grundlagen: Instruction

Pauli Produkt Messanleitung.

Eine Pauli-Produktmessung ist eine grundlegende Operation im fehlertoleranten Quantencomputing. Mathematisch entspricht dies einer gemeinsamen projektiven Messung an mehreren Qubits, wobei die gemessene Observable ein Tensorprodukt von Pauli-Operatoren ist. Das Ergebnis dieser Messung ist ein einzelner Eigenwert, entweder +1+1 oder −1-1, der den Eigenzustand des Pauli-Produkts angibt.

Quellenangaben:

[1] Daniel Litinski. „Ein Spiel mit Oberflächencodes: Groß angelegtes Quantencomputing mit Gitterchirurgie“ arXiv:1808.02892

Parameter

  • pauli (qiskit.quantum_info.Pauli) – Ein Tensorprodukt von Pauli-Operatoren, das die Messung definiert, zum Beispiel Pauli("XY") oder Pauli("-XYIZ"). Der Identitäts-Pauli-Operator ist nicht zulässig. Der Pauli-Effekt kann eine Phase von −1-1 enthalten, jedoch nicht ii oder −i-i.
  • label (str | None) – Ein optionales Label für das Gate, das in Schaltungsvisualisierungen angezeigt wird. Standardmäßig ist das Label auf gesetzt PPM(<pauli label>).
Anmerkung

Obwohl "I"Pauli-Bedingungen vollständig unterstützt werden, wird empfohlen, Pauli-Bedingungen bei der Erstellung "I" einer PauliProductMeasurement Anweisung zu entfernen, da dies die tatsächliche Messung nicht verändert, sondern die Anweisung für eine kleinere Gruppe von Qubits festlegt.

Erhöhungen

CircuitError – Wenn der Pauli-Operator der Identitätsoperator ist, die Größe 0 hat oder eine komplexe Phase aufweist.

Parameter


Attribute

base_class

Rufe die Basisklasse dieser Anweisung ab. Dies ist garantiert im Vererbungsbaum von enthalten self.

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. Dies bedeutet in der Regel, dass die Unterklasse ausschließlich definiert ist, um dem Programmierer gegenüber der Basisklasse gewisse Vorteile zu bieten, und dass die Basisklasse aus Sicht des Verhaltens die „wahre“ Klasse ist. Insbesondere sollten Sie nicht überschreiben, base_class wenn Sie eine benutzerdefinierte Version einer Anweisung definieren, die von der Hardware anders implementiert wird, z. B. eine alternative Messstrategie oder eine Version eines parametrisierten Gatter mit einem bestimmten Parametersatz, um es in einem Target vom vollständig parametrisierten Gatter zu unterscheiden.

Dies entspricht oft genau type(obj), außer im Fall von Singleton-Instanzen von Standardbibliotheksanweisungen. 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

Im Allgemeinen sollten Sie sich nicht auf die genaue Klasse einer Anweisung verlassen; innerhalb einer bestimmten Schaltung ist zu erwarten, dass in den meisten Situationen ein Instruction.name geeigneterer Unterscheidungsfaktor ist.

decompositions

Holen Sie sich die Zerlegungen der Anweisung aus dem Befehlssatz ( SessionEquivalenceLibrary ).

definition

Definition der Rückgabe in Bezug auf andere grundlegende Gatter.

label

Rücksendeetikett

mutable

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

Wenn dieses Attribut ist, ist False die Gate-Instanz ein gemeinsam genutztes Singleton und nicht veränderbar.

name

Den Namen zurückgeben.

num_clbits

Gibt die Anzahl der clbits zurück.

num_qubits

Gibt die Anzahl der Qubits zurück.

params

Die Parameter dieses Instruction. Idealerweise handelt es sich dabei um Torwinkel.


Methoden

add_decomposition

add_decomposition(decomposition)

GitHub

Fügen Sie eine Zerlegung der Anweisung zum „ SessionEquivalenceLibrary ” hinzu.

broadcast_arguments

broadcast_arguments(qargs, cargs)

GitHub

Validierung der Argumente.

Parameter

  • qargs (List) – Liste der Quantenbit-Argumente.
  • cargs (List) – Liste der klassischen Bitargumente.

Ergiebigkeit

Tuple(Liste, Liste) – Ein Tupel mit einzelnen Argumenten.

Erhöhungen

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

copy

copy(name=None)

GitHub

Kopie der Anleitung.

Parameter

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

Rückgabe

eine Kopie der aktuellen Anweisung, wobei der Name aktualisiert wurde, falls er angegeben wurde

Rückgabetyp

qiskit.circuit.Instruction

inverse

inverse(annotated=False)

GitHub

Verhindert den Aufruf inverse einer Anweisung „ PauliProductMeasurement “.

is_parameterized

is_parameterized()

GitHub

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

pauli

pauli()

GitHub

Gibt das durch diese Messung realisierte Pauli-Produkt zurück.

Dies ist ein öffentlicher Zugriffsoperator, der das diesem Pauli Befehl zugrunde liegende Tensorprodukt der Pauli-Operatoren rekonstruiert und zurückgibt, einschließlich seiner globalen Phase von +1 oder -1.

Rückgabe

Das durch diesen Befehl gemessene Pauli-Produkt.

Rückgabetyp

Pauli

repeat

repeat(n)

GitHub

Erstellt eine Anweisung, die selfnn -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()

GitHub

Bei einer zusammengesetzten Anweisung kehren Sie die Reihenfolge der Unteranweisungen um.

Dies geschieht durch rekursives Umkehren aller Unteranweisungen. Es invertiert kein Gate.

Rückgabe

eine neue Anweisung mit

Unteranweisungen umgekehrt.

Rückgabetyp

qiskit.circuit.Instruction

soft_compare

soft_compare(other)

GitHub

Weicher Vergleich zwischen 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 es sich um ein „ ParameterExpression ” handelt, wird es nicht berücksichtigt.

Parameter

other (instruction) – andere Anweisung.

Rückgabe

sind selbst und andere bis zu Parameterausdrücken gleich.

Rückgabetyp

bool

to_mutable

to_mutable()

GitHub

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 um eine neue eindeutige Instanz, die mutiert werden kann. Wenn die Instanz bereits veränderbar ist, handelt es sich um eine Deepcopy dieser Instanz.

validate_parameter

validate_parameter(parameter)

GitHub

Der Befehlsparameter unterliegt keiner Validierung oder Normalisierung.

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