Skip to main content
IBM Quantum Platform

Schaltkreisbibliothek

qiskit.circuit.library

Die Schaltkreisbibliothek ist eine Sammlung von Quantenschaltkreisen, die als algorithmische Bausteine, Benchmarking-Werkzeuge und Beispiele dienen, von denen angenommen wird, dass sie klassisch nur schwer zu simulieren sind. Das Ziel besteht darin, Schaltkreise bereitzustellen, die klar definiert, vielseitig einsetzbar und in verschiedenen Arbeitsabläufen leicht wiederverwendbar sind.

Die Kriterien für eine Schaltung in der Bibliothek lauten:

Klar definiert

Die Schaltung weist eine klare Struktur oder einen mathematischen Ablauf auf, der durch eine Abhandlung oder eine Quelle belegt ist.

Weit verbreitet und relevant

Die Schaltung ist eine kanonische oder allgemein anerkannte Wahl für eine genau definierte Aufgabe, dient als Standardreferenz oder gängige Basis oder ist historisch gesehen von grundlegender Bedeutung für einen wesentlichen Teilbereich des Quantencomputings.

Eigenständig

Die Schaltung ist in sich geschlossen, was bedeutet, dass sie effizient und ohne neue externe Abhängigkeiten erstellt werden kann.

Die Elemente in der Schaltkreisbibliothek sind entweder QuantumCircuits oder Instructions, sodass sie leicht untersucht oder in andere Schaltkreise eingebunden werden können. Dies ermöglicht ein schnelles Prototyping und Schaltungsdesign auf höheren Abstraktionsebenen.

Zum Beispiel:

from qiskit.circuit import QuantumCircuit
from qiskit.circuit.library import PauliEvolutionGate
from qiskit.quantum_info import SparsePauliOp

hamiltonian = SparsePauliOp(["ZZI", "IZZ", "IXI"], coeffs=[1, 1, -1])
gate = PauliEvolutionGate(hamiltonian)

circuit = QuantumCircuit(hamiltonian.num_qubits)
circuit.append(gate, circuit.qubits)

circuit.draw("mpl")
Ein Schaltkreis, der eine Suzuki-Trotter-Erweiterung einer Hamilton-Evolution implementiert.

Diese Bibliothek ist in verschiedene Abschnitte unterteilt:

Wir unterscheiden zwischen verschiedenen Kategorien von Vorgängen:

Standard-Tore

Dies sind grundlegende Quantengatter, von denen eine Teilmenge in der Regel den Basisgatter-Satz eines Quantencomputers bildet. GateDies sind Einheitsoperationen, die als dargestellt werden. BarrierDie Bibliothek stellt außerdem Standard-Compiler-Direktiven (a) und nicht-unitäre Operationen (wie Measure) bereit.

Abstrakte Operationen

Diese Kategorie umfasst Operationen, die durch eine mathematische Aktion definiert sind, jedoch mit unterschiedlichen Zerlegungen umgesetzt werden können. Beispielsweise bewirkt ein Multi-Control-Gatter XGate eine Umkehrung des Ziel-Qubits, wenn alle Steuer-Qubits den Zustand „ ∣1⟩|1\rangle “ annehmen, und es gibt eine Vielzahl konkreter Schaltungen, die diese Operation mithilfe von Gatterelementen auf niedrigerer Ebene umsetzen. InstructionSolche abstrakten Operationen werden als Gate oder dargestellt. Auf diese Weise lässt sich die Schaltung aufbauen, ohne für jeden Block eine konkrete Implementierung festlegen zu müssen, und schließlich kann der Compiler (oder Sie als Benutzer) die optimale Aufgliederung auswählen. Zum Beispiel:

from qiskit.circuit.library import MCXGate
mcx = MCXGate(4)

from qiskit import QuantumCircuit
circuit = QuantumCircuit(5)
circuit.append(mcx, [0, 1, 4, 2, 3])
circuit.draw("mpl")
Eine Schaltung mit einem mehrfach gesteuerten X-Gatter.

Bei Schaltungen mit abstrakten Operationen wird der Kontext der Schaltung bei der Transpilierung berücksichtigt. Stehen beispielsweise ungenutzte Qubits zur Verfügung, so können diese verwendet werden, um einen flacheren Schaltkreis zu erhalten:

from qiskit import transpile

small_circuit = QuantumCircuit(5)  # here we have no idle qubits
small_circuit.append(mcx, [0, 1, 4, 2, 3])
small_tqc = transpile(small_circuit, basis_gates=["u", "cx"])
print("No aux:", small_tqc.count_ops())

large_circuit = QuantumCircuit(10)  # now we will have 5 idle qubits
large_circuit.append(mcx, [0, 1, 4, 2, 3])
large_tqc = transpile(large_circuit, basis_gates=["u", "cx"])
print("With aux:", large_tqc.count_ops())

Welche Drucke:

No aux: OrderedDict([('u', 41), ('cx', 36)])
With aux: OrderedDict([('u', 24), ('cx', 18)])

Strukturelle Maßnahmen

Diese Vorgänge haben eine eindeutige Untergliederung. Da der Compiler nicht auf einer höheren Ebene über sie nachdenken muss, werden sie als Funktionen implementiert, die ein QuantumCircuit objekt zurückgeben. Zum Beispiel:

from qiskit.circuit.library import real_amplitudes

ansatz = real_amplitudes(5, entanglement="pairwise")
ansatz.draw("mpl")
Die reale Amplituden-Ansatzschaltung.

Standardtore

GateDiese Operationen sind umkehrbare unitäre Gatter und bilden alle eine Unterklasse von. Folglich verfügen sie alle über die Methoden to_matrix(), power(), und control(), die wir im Allgemeinen nur auf unitäre Operationen anwenden können.

Zum Beispiel:

from qiskit.circuit.library import XGate
gate = XGate()
print(gate.to_matrix())             # X gate
print(gate.power(1/2).to_matrix())  # √X gate -- see also the SXGate
print(gate.control(1).to_matrix())  # CX (controlled X) gate
[[0.+0.j 1.+0.j]
 [1.+0.j 0.+0.j]]
[[0.5+0.5j 0.5-0.5j]
 [0.5-0.5j 0.5+0.5j]]
[[1.+0.j 0.+0.j 0.+0.j 0.+0.j]
 [0.+0.j 0.+0.j 0.+0.j 1.+0.j]
 [0.+0.j 0.+0.j 1.+0.j 0.+0.j]
 [0.+0.j 1.+0.j 0.+0.j 0.+0.j]]

Die Funktion get_standard_gate_name_mapping() können Sie die verfügbaren Standardtore und -operationen anzeigen.

get_standard_gate_name_mapping

qiskit.circuit.library.get_standard_gate_name_mapping()

GitHub

Rückgabe eines Wörterbuchs, das den Namen von Standardgattern und -anweisungen auf ein Objekt mit diesem Namen abbildet.

Beispiele

from qiskit.circuit.library import get_standard_gate_name_mapping

gate_name_map = get_standard_gate_name_mapping()
cx_object = gate_name_map["cx"]

print(cx_object)
print(type(cx_object))
Instruction(name='cx', num_qubits=2, num_clbits=0, params=[])
_SingletonCXGate

1-Qubit-Standardgatter

Kolumne „ 1 “
Kolumne „ 2 “
HGate(*args[, _force_mutable] )Ein-Qubit-Hadamard-Tor.
IGate(*args[, _force_mutable] )Identity Gate.
PhaseGate(Theta[, Bezeichnung] )Ein-Qubit-Drehung um die Z-Achse.
RGate(Theta, Phi[, Bezeichnung] )Rotation θ\theta um die Achse cos⁡(ϕ)x+sin⁡(ϕ)y\cos(\phi)x + \sin(\phi)y.
RXGate(Theta[, Bezeichnung] )Ein-Qubit-Drehung um die X-Achse.
RYGate(Theta[, Bezeichnung] )Ein-Qubit-Drehung um die Y-Achse.
RZGate(phi[, Bezeichnung] )Ein-Qubit-Drehung um die Z-Achse.
SGate(*args[, _force_mutable] )Einzelqubit-S-Gate ( Z\sqrt{Z} ).
SdgGate(*args[, _force_mutable] )S-adjungiertes Gatter für ein einzelnes Qubit ( S†S^\dagger ).
SXGate(*args[, _force_mutable] )Das Ein-Qubit-Gatter Sqrt(X) ( X\sqrt{X} ).
SXdgGate(*args[, _force_mutable] )Das inverse Ein-Qubit-Gatter Sqrt(X).
TGate(*args[, _force_mutable] )Einzelqubit-T-Gatter ( Z4\sqrt[4]{Z} ).
TdgGate(*args[, _force_mutable] )T-adjungiertes Gatter für ein einzelnes Qubit ( T†T^\dagger ).
UGate(Theta, Phi, Lam[, Label] )Allgemeine Ein-Qubit-Rotation in Form von ZYZ-Euler-Winkeln.
U1Gate(Theta[, Bezeichnung] )Ein-Qubit-Drehung um die Z-Achse.
U2Gate(phi, lam[, label] )Ein-Qubit-Drehung um die X+Z-Achse.
U3Gate(Theta, Phi, Lam[, Label] )Generisches Ein-Qubit-Rotationstor mit 3 Euler-Winkeln.
XGate(*args[, _force_mutable] )Das Ein-Qubit-Pauli-X-Gatter ( σx\sigma_x ).
YGate(*args[, _force_mutable] )Das Ein-Qubit-Pauli-Y-Gatter ( σy\sigma_y ).
ZGate(*args[, _force_mutable] )Das Ein-Qubit-Pauli-Z-Gatter ( σz\sigma_z ).

2-Qubit-Standardgatter

Kolumne „ 1 “
Kolumne „ 2 “
CHGate(*args[, _force_mutable] )Kontrolliertes Hadamard-Tor.
CPhaseGate(theta[, label, ctrl_state,...] )Controlled-Phase-Gate.
CRXGate(theta[, label, ctrl_state, _base_label] )Kontrolliertes RX-Gate.
CRYGate(theta[, label, ctrl_state, _base_label] )Gesteuertes-RY-Gate.
CRZGate(theta[, label, ctrl_state, _base_label] )Kontrolliertes RZ-Gatter.
CSGate(*args[, _force_mutable] )Kontrolliertes S-Gatter.
CSdgGate(*args[, _force_mutable] )Gesteuertes Gate vom Typ „ S†S^\dagger “.
CSXGate(*args[, _force_mutable] )Gesteuertes-√X-Gate.
CUGate(Theta, Phi, Lam, Gamma[, Label,...] )Kontrolliertes U-Gatter (4-Parameter-Zwei-Qubit-Gatter).
CU1Gate(theta[, label, ctrl_state, _base_label] )Controlled-U1 tor.
CU3Gate(Theta, Phi, Lam[, Label,...] )Controlled-U3 gatter (3-Parameter-Zwei-Qubit-Gatter).
CXGate(*args[, _force_mutable] )Kontrolliertes X-Gate.
CYGate(*args[, _force_mutable] )Kontrolliertes Y-Tor.
CZGate(*args[, _force_mutable] )Kontrolliertes Z-Tor.
DCXGate(*args[, _force_mutable] )Doppel-CX-Gatter.
ECRGate(*args[, _force_mutable] )Ein Kreuzresonanztor mit Echo.
iSwapGate(*args[, _force_mutable] )iSWAP tor.
RXXGate(Theta[, Bezeichnung] )Eine parametrische 2-Qubit-Wechselwirkung X⊗XX \otimes X (Drehung um XX).
RYYGate(Theta[, Bezeichnung] )Eine parametrische 2-Qubit-Wechselwirkung Y⊗YY \otimes Y (Drehung um YY).
RZXGate(Theta[, Bezeichnung] )Eine parametrische 2-Qubit-Wechselwirkung Z⊗XZ \otimes X (Drehung um ZX).
RZZGate(Theta[, Bezeichnung] )Eine parametrische 2-Qubit-Wechselwirkung Z⊗ZZ \otimes Z (Drehung um ZZ).
SwapGate(*args[, _force_mutable] )Das SWAP-Gate.
XXMinusYYGate(Theta[, Beta, Bezeichnung] )XX-YY-Interaktionstor.
XXPlusYYGate(Theta[, Beta, Bezeichnung] )XX+YY Interaktionsgatter.

3+ Qubit-Standardgatter

Kolumne „ 1 “
Kolumne „ 2 “
C3SXGate(*args[, _force_mutable] )Das 3-Qubit-gesteuerte sqrt-X-Gatter.
C3XGate(*args[, _force_mutable] )Das X-Gate wird über 3 Qubits gesteuert.
C4XGate(*args[, _force_mutable] )Das 4-Qubit-gesteuerte X-Gatter.
CCXGate(*args[, _force_mutable] )CCX-Tor, auch bekannt als Toffoli-Tor.
CCZGate(*args[, _force_mutable] )CCZ-Tor.
CSwapGate(*args[, _force_mutable] )Controlled-SWAP-Gate, auch Fredkin-Gate genannt.
RCCXGate(*args[, _force_mutable] )Das vereinfachte Toffoli-Tor, das auch als Margolus-Tor bezeichnet wird.
RC3XGate(*args[, _force_mutable] )Das vereinfachte 3-kontrollierte Toffoli-Tor.

Globale Standardtore

Das folgende Gatter ist global und benötigt keine Qubit-Argumente.

Kolumne „ 1 “
Kolumne „ 2 “
GlobalPhaseGate(Phase[, Bezeichnung] )Das globale Phasengatter ( eiθe^{i\theta} ).

Standardrichtlinien

Direktiven sind Operationen auf dem Quantenstapel, die vom Backend oder dem Transpiler interpretiert werden sollen. Im Allgemeinen kann der Transpiler oder das Backend diese optional ignorieren, wenn es keine Implementierung für sie gibt.


Standardvorgänge

Operationen sind nicht umkehrbare Änderungen des Quantenzustands des Schaltkreises.

Zusätzlich gibt es eine Measureverallgemeinerte gemeinsame Pauli-Messung, die als Grundoperation in der Pauli-basierten Berechnung verwendet wird.

Kolumne „ 1 “
Kolumne „ 2 “
PauliProductMeasurement(Pauli[, Label] )Pauli Produkt Messanleitung.

Verallgemeinerte Gates

Dieses Modul erweitert die Standardgatter um eine breitere Sammlung von Grundgattern. Dazu gehören Gatter, die variabel sind, d. h. die Anzahl der Qubits hängt von der Eingabe ab. Zum Beispiel:

from qiskit.circuit.library import DiagonalGate

diagonal = DiagonalGate([1, 1j])
print(diagonal.num_qubits)

diagonal = DiagonalGate([1, 1, 1, -1])
print(diagonal.num_qubits)

der druckt:

1
2
Kolumne „ 1 “
Kolumne „ 2 “
DiagonalGate(diag)Ein allgemeines diagonales Quantengatter.
PermutationGate(Muster)Ein Tor, das Qubits vertauscht.
MCMTGate(Gatter, Anzahl_Steuer-Qubits,...[,...] )Das mehrfach gesteuerte Mehrzieltor, für ein beliebiges einfach gesteuertes Zieltor.
MCPhaseGate(lam, num_ctrl_qubits[, label,...] )Multi-Controlled-Phase-Gate.
MCXGate( [num_ctrl_qubits, label,...] )Das allgemeine, mehrfach gesteuerte X-Gate.
MSGate(num_qubits, theta[, label] )Das Mølmer-Sørensen-Tor.
RVGate(v_x, v_y, v_z[, Basis] )Drehung um eine beliebige Drehachse v⃗\vec{v}, wobei vertv⃗vert2\\vert \vec{v}\\vert _2 der Drehwinkel in Radianten ist.
PauliGate(Bezeichnung)Ein Multi-Qubit-Pauli-Gatter.
PauliProductRotationGate(Pauli, Winkel[, Bezeichnung] )Eine generische Pauli-Rotation.
LinearFunction(linear[, validate_input] )Eine lineare reversible Schaltung mit n Qubits.
Isometry(Isometrie, num_ancillas_zero,...[,...] )Zersetzung beliebiger Isometrien von mm bis nn qubits.
UnitaryGate(Daten[, Bezeichnung, Eingabeprüfung,...] )Klasse für Quanten-Gates, die durch eine unitäre Matrix spezifiziert sind.
UCGate(gate_list[, up_to_diagonal, mux_simp] )Gleichmäßig gesteuertes Gatter (auch Multiplex-Gatter genannt).
UCPauliRotGate(Winkel_Liste, Drehachse)Gleichmäßig kontrollierte Pauli-Rotationen.
UCRXGate(Winkel_Liste)Gleichmäßig kontrollierte Pauli-X-Drehungen.
UCRYGate(Winkel_Liste)Gleichmäßig kontrollierte Pauli-Y-Drehungen.
UCRZGate(Winkel_Liste)Gleichmäßig kontrollierte Pauli-Z-Drehungen.

InstructionDie oben genannten Objekte leiten Gate oder ab, wodurch der Compiler sie auf einer abstrakten Ebene analysieren kann. Wir empfehlen daher, diese anstelle der folgenden zu verwenden, die abgeleitet werden QuantumCircuit und vorzeitig konstruiert werden.

Kolumne „ 1 “
Kolumne „ 2 “
Diagonal(diag)Schaltung zur Durchführung einer diagonalen Transformation.
MCMT(Gate, Anzahl_Steuer-Qubits, Anzahl_Ziel-Qubits)Das mehrfach gesteuerte Mehrzieltor, für ein beliebiges einfach gesteuertes Zieltor.
MCMTVChain(Gatter, Anzahl_Steuer-Qubits,...)Die MCMT-Implementierung unter Verwendung der CCX-V-Kette.
MCXGrayCode( [num_ctrl_qubits, label,...] )Implementieren Sie das mehrfach gesteuerte X-Gatter mit Hilfe des Gray-Codes.
MCXRecursive( [num_ctrl_qubits, label,...] )Implementierung des mehrfach gesteuerten X-Gatters durch Rekursion.
MCXVChain( [num_ctrl_qubits, dirty_ancillas,...] )Implementierung des mehrfach gesteuerten X-Gatters mit einer V-Kette von CX-Gattern.
Permutation(num_qubits[, Muster, Startwert] )Eine n_qubit-Schaltung, die Qubits vertauscht.
GMS(num_qubits, theta)Globales Mølmer-Sørensen-Tor.
GR(num_qubits, theta, phi)Globales R-Tor.
GRX(num_qubits, theta)Globales RX-Gate.
GRY(num_qubits, theta)Globales RY-Gate.
GRZ(num_qubits, phi)Globales RZ-Tor.

Boolesche Logik

GateDiese implementieren boolesche Logikoperationen, wie beispielsweise die logische or einer Menge von Qubit-Zuständen.

Kolumne „ 1 “
Kolumne „ 2 “
AndGate(num_variable_qubits[, flags] )Ein Gatter, das die logische UND-Verknüpfung einer Anzahl von Qubits darstellt.
OrGate(num_variable_qubits[, flags] )Ein Gatter, das die logische ODER-Verknüpfung mit einer Anzahl von Qubits darstellt.
BitwiseXorGate(Anzahl_Qubits, Betrag)Ein n-Qubit-Gatter zur bitweisen Xor-Verknüpfung des Eingangs mit einer ganzen Zahl amount.
InnerProductGate(Anzahl der Qubits)Eine 2n-qubit Boolesche Funktion, die das innere Produkt von zwei n-Qubit-Vektoren über F2F_2 berechnet.

Die oben genannten Objekte leiten diesen Typ ab Gate (bzw. geben ihn zurück), wodurch der Compiler sie auf einer abstrakten Ebene analysieren kann. Wir empfehlen daher, diese anstelle der folgenden zu verwenden, die abgeleitet werden QuantumCircuit und vorzeitig erstellt werden.

Kolumne „ 1 “
Kolumne „ 2 “
AND(num_variable_qubits[, flags, mcx_mode] )Ein Schaltkreis, der die logische UND-Verknüpfung einer Anzahl von Qubits durchführt.
OR(num_variable_qubits[, flags, mcx_mode] )Ein Schaltkreis, der die logische ODER-Verknüpfung einer Anzahl von Qubits durchführt.
XOR(num_qubits[, amount, seed] )Eine n_qubit-Schaltung zur bitweisen Xor-Verknüpfung der Eingabe mit einer ganzen Zahl amount.
InnerProduct(Anzahl der Qubits)Eine 2n-qubit Boolesche Funktion, die das innere Produkt von zwei n-Qubit-Vektoren über F2F_2 berechnet.

Eine zufällige bitweise xor Schaltung kann direkt mit erzeugt werden:

Kolumne „ 1 “
Kolumne „ 2 “
random_bitwise_xor(num_qubits, seed)Erstellen Sie eine zufällige BitwiseXorGate.

Basisänderung

Diese Gatter führen Basistransformationen der Qubitzustände durch. Bei der Quanten-Fourier-Transformation (QFT) wird beispielsweise zwischen der Berechnungsbasis und der Fourier-Basis transformiert.

Kolumne „ 1 “
Kolumne „ 2 “
QFTGate(Anzahl der Qubits)Quantum Fourier Transform Gate.

GateDas oben genannte Objekt leitet sich ab, wodurch der Compiler es auf einer abstrakten Ebene analysieren kann. Wir empfehlen daher, dies anstelle der folgenden Variante zu verwenden, die abgeleitet wird QuantumCircuit und vorzeitig aufgebaut wird.

Kolumne „ 1 “
Kolumne „ 2 “
QFT( [Anzahl_der_Qubits, Näherungsgrad,...] )Quanten-Fourier-Transformations-Schaltung.

Arithmetische Operatoren

Diese Gatter und Schaltungen führen klassische arithmetische Operationen wie Addition oder Multiplikation aus.

Adders

Addierer berechnen die Summe von zwei nn -qubit-Registern, d. h

∣a⟩n∣b⟩n↦∣a⟩n∣a+b⟩t,|a\rangle_n |b\rangle_n \mapsto |a\rangle_n |a + b\rangle_{t},

wobei die Größe tt des Ausgangsregisters von der Art des verwendeten Addierers abhängt.

Kolumne „ 1 “
Kolumne „ 2 “
ModularAdderGate(Anzahl der Zustands-Qubits[, Bezeichnung] )Berechnen Sie die Summe modulo 2n2^n von zwei nn -großen Qubit-Registern.
HalfAdderGate(Anzahl der Zustands-Qubits[, Bezeichnung] )Berechnen Sie die Summe von zwei gleich großen Qubit-Registern, einschließlich eines Übertragsbits.
FullAdderGate(Anzahl der Zustands-Qubits[, Bezeichnung] )Berechnen Sie die Summe zweier nn -großer Qubit-Register, einschließlich Carry-In- und -Out-Bits.

GateDie oben genannten Objekte leiten sich ab, was es dem Compiler ermöglicht, auf abstrakter Ebene über sie zu urteilen. Wir empfehlen daher, diese anstelle der folgenden zu verwenden, die abgeleitet werden QuantumCircuit und vorzeitig erstellt werden.

Kolumne „ 1 “
Kolumne „ 2 “
DraperQFTAdder(Anzahl_Zustands-Qubits[, Typ, Name] )Eine Schaltung, die QFT verwendet, um die Addition von zwei Qubit-Registern an Ort und Stelle durchzuführen.
CDKMRippleCarryAdder(Anzahl der Zustands-Qubits[,...] )Eine Ripple-Carry-Schaltung zur Durchführung von In-Place-Addition auf zwei Qubit-Registern.
VBERippleCarryAdder(Anzahl der Zustands-Qubits[,...] )Der VBE-Ripple-Carry-Addierer [1].

Multiplikatoren

Multiplikatoren berechnen das Produkt zweier nn -qubit-Register, d. h

∣a⟩n∣b⟩n∣0⟩t↦∣a⟩n∣b⟩n∣a⋅b⟩t,|a\rangle_n |b\rangle_n |0\rangle_{t} \mapsto |a\rangle_n |b\rangle_n |a \cdot b\rangle_t,

wobei tt die Anzahl der Bits ist, die zur Darstellung des Ergebnisses verwendet werden.

Kolumne „ 1 “
Kolumne „ 2 “
MultiplierGate(Anzahl der Zustands-Qubits[,...] )Berechne das Produkt aus zwei gleich großen Qubit-Registern in ein neues Register.

GateDas oben genannte Objekt leitet sich ab, wodurch der Compiler es auf einer abstrakten Ebene analysieren kann. Wir empfehlen daher, diese zu verwenden, anstatt die folgenden, die abgeleitet werden QuantumCircuit und vorzeitig erstellt werden.

Kolumne „ 1 “
Kolumne „ 2 “
HRSCumulativeMultiplier(Anzahl der Zustands-Qubits[,...] )Eine Multiplikationsschaltung zur Speicherung des Produkts zweier Eingangsregister an einer anderen Stelle.
RGQFTMultiplier(Anzahl der Zustands-Qubits[,...] )Eine QFT-Multiplikationsschaltung zur Speicherung des Produkts zweier Eingangsregister an einer anderen Stelle.

Amplitudenfunktionen

Eine Amplitudenfunktion approximiert eine Funktion f:{0,...,2n−1}→[0,1]f: \{0, ..., 2^n - 1\} \rightarrow [0, 1], die auf die Amplituden von nn Qubits angewendet wird. Siehe die Klassendoku für weitere Informationen.

Kolumne „ 1 “
Kolumne „ 2 “
LinearAmplitudeFunctionGate(...[, ...])Eine Schaltung, die eine (stückweise) lineare Funktion auf Qubit-Amplituden implementiert.

GateDas oben genannte Objekt leitet sich ab, wodurch der Compiler es auf einer abstrakten Ebene analysieren kann. Wir empfehlen daher, dies anstelle der folgenden Variante zu verwenden, die abgeleitet wird QuantumCircuit und vorzeitig aufgebaut wird.

Kolumne „ 1 “
Kolumne „ 2 “
LinearAmplitudeFunction(Anzahl der Zustands-Qubits,...)Eine Schaltung, die eine (stückweise) lineare Funktion auf Qubit-Amplituden implementiert.

Funktionale Pauli-Rotationen

Funktionale Pauli-Drehungen setzen Operationen der Form

∣x⟩∣0⟩↦cos⁡(f(x))∣x⟩∣0⟩+sin⁡(f(x))∣x⟩∣1⟩|x\rangle |0\rangle \mapsto \cos(f(x))|x\rangle|0\rangle + \sin(f(x))|x\rangle|1\rangle

unter Verwendung von Pauli- YY Rotationen für verschiedene Arten von Funktionen ff, wie lineare, polynomiale oder stückweise Versionen dieser Funktionen. Sie ähneln den obigen Amplitudenfunktionen, jedoch ohne Vor- und Nachbearbeitung für den Bereich und das Bild der Zielfunktion.

Kolumne „ 1 “
Kolumne „ 2 “
LinearPauliRotationsGate(Anzahl der Zustands-Qubits[,...] )Linear gesteuerte X-, Y- oder Z-Drehung.
PolynomialPauliRotationsGate(Anzahl der Zustands-Qubits)Ein Tor, das polynomiale Pauli-Drehungen implementiert.
PiecewiseLinearPauliRotationsGate([...])Stückweise, linear gesteuerte Pauli-Drehungen.
PiecewisePolynomialPauliRotationsGate(...[, ...])Stückweise polynomial gesteuerte Pauli-Drehungen.
PiecewiseChebyshevGate(f_x, num_state_qubits)Stückweise Tschebyscheff-Annäherung an eine Eingangsfunktion.

GateDie oben genannten Objekte leiten sich ab, was es dem Compiler ermöglicht, auf abstrakter Ebene über sie zu urteilen. Wir empfehlen daher, diese anstelle der folgenden zu verwenden, die abgeleitet werden QuantumCircuit und vorzeitig erstellt werden.

Kolumne „ 1 “
Kolumne „ 2 “
FunctionalPauliRotations( [Anzahl der Zustands-Qubits,...] )Basisklasse für funktionale Pauli-Drehungen.
LinearPauliRotations( [Anzahl der Zustands-Qubits,...] )Linear gesteuerte X-, Y- oder Z-Drehung.
PolynomialPauliRotations( [Anzahl der Zustands-Qubits,...] )Ein Schaltkreis, der polynomiale Pauli-Drehungen implementiert.
PiecewiseLinearPauliRotations([...])Stückweise, linear gesteuerte Pauli-Drehungen.
PiecewisePolynomialPauliRotations([...])Stückweise polynomial gesteuerte Pauli-Drehungen.
PiecewiseChebyshev(f_x[, Grad,...] )Stückweise Tschebyscheff-Annäherung an eine Eingangsfunktion.

Andere arithmetische Funktionen

Hier finden Sie weitere arithmetische Schaltungen. Weitere Einzelheiten finden Sie in den Dokumentationen der einzelnen Klassen.

Kolumne „ 1 “
Kolumne „ 2 “
ExactReciprocalGate(Anzahl der Zustands-Qubits, Skalierung)Implementiert eine exakte reziproke Funktion.
IntegerComparatorGate(Anzahl der Zustands-Qubits, Wert)Führen Sie eine ≥\geq (oder << ) auf einem Qubit-Register gegen eine klassische ganze Zahl durch.
QuadraticFormGate( [num_result_qubits,...] )Implementiert eine quadratische Form auf binären Variablen, die in Qubit-Registern kodiert sind.
WeightedSumGate(Anzahl der Zustands-Qubits[, Gewichte,...] )Ein Gatter zur Berechnung der gewichteten Summe von Qubit-Registern.

GateDie oben genannten Objekte leiten sich ab, was es dem Compiler ermöglicht, auf abstrakter Ebene über sie zu urteilen. Wir empfehlen daher, diese anstelle der folgenden zu verwenden, die abgeleitet werden QuantumCircuit und vorzeitig erstellt werden.

Kolumne „ 1 “
Kolumne „ 2 “
ExactReciprocal(Anzahl der Zustands-Qubits, Skalierung[,...] )Exakter Kehrwert
IntegerComparator( [Anzahl der Zustands-Qubits, Wert,...] )Ganzzahliger Komparator.
QuadraticForm( [num_result_qubits,...] )Implementiert eine quadratische Form auf binären Variablen, die in Qubit-Registern kodiert sind.
WeightedAdder( [Anzahl der Zustands-Qubits, Gewichte, Name] )Eine Schaltung zur Berechnung der gewichteten Summe von Qubit-Registern.

Spezifische Quantenschaltungen

Die folgenden Gatter und Quantenschaltungen definieren spezifische Operationen von Interesse:

Kolumne „ 1 “
Kolumne „ 2 “
fourier_checking(f, g)Fourier-Kontrollschaltung.
hidden_linear_function(Adjazenzmatrix)Schaltung zur Lösung des Problems der verborgenen linearen Funktion.
iqp(Wechselwirkungen)IQP-Schaltung (Instantaneous Quantum Polynomial Time).
random_iqp(num_qubits[, seed] )Ein zufälliger instantaner Quantenpolynomialzeit-Schaltkreis (IQP).
quantum_volume(num_qubits[, Tiefe, Startwert] )Ein Quanten-Volumenmodell-Schaltkreis.
phase_estimation(Anzahl der Auswertungs-Qubits, unitär)Schaltung zur Phasenschätzung.
grover_operator(Oracle[, state_preparation,...] )Konstruieren Sie den Grover-Operator.
unitary_overlap(unitary1, unitary2[, ...])Schaltung, die die Überschneidung zwischen zwei Einheiten zurückgibt U2†U1U_2^{\dag} U_1.
GraphStateGate(Adjazenzmatrix)Ein Gatter, das einen Graphzustand darstellt.
PauliEvolutionGate(Operator[, Zeit, Bezeichnung,...] )Zeitliche Entwicklung eines aus Paulis bestehenden Operators.
HamiltonianGate(Datum, Uhrzeit[, Bezeichnung] )Klasse zur Darstellung der Entwicklung durch einen Hamilton-Operator als Tor.

Im Folgenden werden die gleichen Operationen wie bei den Klassen angeboten, die sich von QuantumCircuit. Für eine bessere Laufzeit und Compilerleistung empfehlen wir jedoch die Verwendung der oben genannten Funktionen und Gatter.

Kolumne „ 1 “
Kolumne „ 2 “
FourierChecking(f, g)Fourier-Kontrollschaltung.
GraphState(Adjazenzmatrix)Schaltung zur Vorbereitung eines Diagrammzustands.
HiddenLinearFunction(Adjazenzmatrix)Schaltung zur Lösung des Problems der verborgenen linearen Funktion.
IQP(Wechselwirkungen)Instantane Quantenpolynomschaltung (IQP).
QuantumVolume(num_qubits[, Tiefe, Startwert,...] )Ein Quanten-Volumenmodell-Schaltkreis.
PhaseEstimation(Anzahl der Auswertungs-Qubits, unitär)Schaltung zur Phasenschätzung.
GroverOperator(Oracle[, state_preparation,...] )Der Betreiber Grover.
UnitaryOverlap(unitary1, unitary2[, ...])Schaltung, die die Überschneidung zwischen zwei Einheiten zurückgibt U2†U1U_2^{\dag} U_1.

N-lokale Schaltungen

Die folgenden Funktionen geben einen parametrisierten QuantumCircuit zurück, der als Ansatz in einer breiten Palette von Variationsquantenalgorithmen verwendet werden kann.

Wir können zum Beispiel einen Variationskreislauf aufbauen

from qiskit.circuit.library import efficient_su2

num_qubits = 4
ansatz = efficient_su2(num_qubits, entanglement="pairwise")
ansatz.draw("mpl")
Der effiziente SU2 ansatz schaltung...

und kombinieren sie mit

from qiskit.circuit.library import zz_feature_map

circuit = zz_feature_map(num_qubits)
circuit.barrier()
circuit.compose(ansatz, inplace=True)

circuit.draw("mpl")
... kombiniert mit der ZZ-Merkmalskarte. ... kombiniert mit der ZZ-Merkmalskarte.

um eine Schaltung für die Variationsquantenklassifizierung zu erhalten.

Die folgenden Funktionen konstruieren alle Variationsschaltungen und sind für eine schnelle Konstruktion optimiert:

Kolumne „ 1 “
Kolumne „ 2 “
n_local(Anzahl_Qubits, Rotationsblöcke,...[,...] )Konstruieren Sie einen n-lokalen Variationskreis.
efficient_su2(num_qubits[, su2_gates,...] )Die hardware-effiziente SU(2)SU(2) 2-Lokal-Schaltung.
real_amplitudes(Anzahl der Qubits[, Verschränkung,...] )Konstruieren Sie eine 2-lokale Schaltung mit reellen Amplituden.
pauli_two_design(num_qubits[, reps, seed,...] )Konstruieren Sie einen Pauli-2-Entwurf-Ansatz.
excitation_preserving(num_qubits[, mode,...] )Der heuristische anregungserhaltende Wellenfunktionsansatz.
qaoa_ansatz(Kosten_Operator[, Wiederholungen,...] )Ein verallgemeinerter QAOA-Quantenschaltkreis mit einer Unterstützung von benutzerdefinierten Anfangszuständen und Mischern.
hamiltonian_variational_ansatz(Hamiltonian)Konstruieren Sie einen Hamiltonschen Variationsansatz.
evolved_operator_ansatz(Betreiber[, Vertreter, …] )Konstruieren Sie einen Ansatz aus Operatorentwicklungen.

Wir empfehlen die Verwendung der oben genannten Funktionen, unterstützen aber auch weiterhin die folgenden BlueprintCircuit, die die Schaltkreise in einen Block verpacken und Inplace-Mutationen der Schaltkreise ermöglichen:

Kolumne „ 1 “
Kolumne „ 2 “
NLocal( [Anzahl_Qubits, Rotationsblöcke,...] )Die n-örtliche Schaltkreisklasse.
TwoLocal( [Anzahl_Qubits, Rotationsblöcke,...] )Die Zweilokalschaltung.
PauliTwoDesign( [num_qubits, reps, seed,...] )Der Pauli Two-Design Ansatz.
RealAmplitudes( [Anzahl der Qubits, Verschränkung,...] )Der 2-Lokal-Schaltkreis mit reellen Amplituden.
EfficientSU2( [num_qubits, su2_gates,...] )Die hardware-effiziente SU(2)-2-local-Schaltung.
EvolvedOperatorAnsatz( [Betreiber, Vertreter, …] )Der evolvierte Operator-Ansatz.
ExcitationPreserving( [num_qubits, mode,...] )Der heuristische anregungserhaltende Wellenfunktionsansatz.
QAOAAnsatz( [Kosten_Operator, Wiederholungen,...] )Ein verallgemeinerter QAOA-Quantenschaltkreis mit einer Unterstützung von benutzerdefinierten Anfangszuständen und Mischern.

Datenkodierungsschaltungen

Die folgenden Funktionen geben eine parametrisierte QuantumCircuit zurück, die als Datenkodierungsschaltungen in einer Reihe von variablen Quantenalgorithmen verwendet werden können:

Kolumne „ 1 “
Kolumne „ 2 “
pauli_feature_map(Merkmal_Dimension[, Wiederholungen,...] )Der Pauli-Expansionskreislauf.
z_feature_map(Merkmal_Dimension[, Wiederholungen,...] )Der Pauli-Z-Evolutionskreis erster Ordnung.
zz_feature_map(Merkmal_Dimension[, Wiederholungen,...] )Pauli-Z-Evolutionskreis zweiter Ordnung.

Wir empfehlen die Verwendung der oben genannten Funktionen, unterstützen aber auch weiterhin die folgenden BlueprintCircuit, die die Schaltkreise in einen Block verpacken und Inplace-Mutationen der Schaltkreise ermöglichen:

Kolumne „ 1 “
Kolumne „ 2 “
PauliFeatureMap( [Merkmal_Dimension, Wiederholungen,...] )Der Kreislauf der Pauli-Erweiterung.
ZFeatureMap(Merkmal_Dimension[, Wiederholungen,...] )Der Pauli-Z-Evolutionskreis erster Ordnung.
ZZFeatureMap(Merkmal_Dimension[, Wiederholungen,...] )Pauli-Z-Evolutionskreis zweiter Ordnung.

Datenaufbereitungsschaltungen

Die folgenden Operationen werden für die Vorbereitung des Status verwendet:

Kolumne „ 1 “
Kolumne „ 2 “
StatePreparation(params[, num_qubits,...] )Vorbereitung eines Zustands mit komplexer Amplitude.
Initialize(params[, num_qubits, normalize] )Komplexe Amplitudeninitialisierung.

Oracle

Ein "Orakel" kann sich auf eine Vielzahl von Black-Box-Operationen mit Quantenzuständen beziehen. Hier betrachten wir Orakel, die boolesche Funktionen f:{0,...,2n−1}→{0,1}f: \{0, ..., 2^n - 1\} \rightarrow \{0, 1\} über Phasenumkehrungen implementieren

∣x⟩n↦(−1)f(x)∣x⟩n,|x\rangle_n \mapsto (-1)^{f(x)} |x\rangle_n,

oder Bit-flips

∣x⟩n∣b⟩↦∣x⟩n∣b⊕f(x)⟩.|x\rangle_n |b\rangle \mapsto |x\rangle_n |b \oplus f(x)\rangle.

Diese sind implementiert in

Kolumne „ 1 “
Kolumne „ 2 “
PhaseOracleGate(Ausdruck[, var_order, Bezeichnung] )Implementiert ein Phasenorakel.
BitFlipOracleGate(Ausdruck[, var_order, Bezeichnung] )Implementiert ein Bit-flip-Orakel

und ein wichtiger Baustein für den Grover-Algorithmus (siehe grover_operator()).

Neben der Gate-basierten Implementierung unterstützen wir auch die QuantumCircuit-Version des Phasenumkehr-Orakels

Kolumne „ 1 “
Kolumne „ 2 “
PhaseOracle(Ausdruck[, var_order] )Phase Oracle.

Schablonen-Schaltungen

Templates sind Funktionen, die Schaltkreise zurückgeben, die die Identität berechnen. Sie werden bei der Optimierung von Schaltkreisen verwendet, wo die Übereinstimmung mit einem Teil der Schablone es dem Compiler ermöglicht, die Übereinstimmung durch die Umkehrung des Restes der Schablone zu ersetzen.

In diesem Beispiel wird die Identitätskonstante in einer Vorlage geprüft:

from qiskit.circuit.library.templates import template_nct_4b_1
from qiskit.quantum_info import Operator
import numpy as np

template = template_nct_4b_1()

identity = np.identity(2 ** len(template.qubits), dtype=complex)
data = Operator(template).data
np.allclose(data, identity)  # True, template_nct_4b_1 is the identity

NCT-Vorlagenschaltungen (Not-CNOT-Toffoli)

Schaltungsvorlagen für XGate, CXGate, und CCXGate (Toffoli-)Gatter.

Quellenangaben:

Maslov, D. und Dueck, G. W. und Miller, D. M., Techniken für die Synthese von reversiblen Toffoli-Netzwerken, 2007 https://dx.doi.org/10.1145/1278349.1278355

template_nct_2a_1

qiskit.circuit.library.templates.nct.template_nct_2a_1()

GitHub

Vorlage 2a_1:

     ┌───┐┌───┐
q_0: ┤ X ├┤ X ├
     └───┘└───┘

Rückgabe

vorlage als Quantenschaltung.

Rückgabetyp

QuantumCircuit

template_nct_2a_2

qiskit.circuit.library.templates.nct.template_nct_2a_2()

GitHub

Vorlage 2a_2:

q_0: ──■────■──
     ┌─┴─┐┌─┴─┐
q_1: ┤ X ├┤ X ├
     └───┘└───┘

Rückgabe

vorlage als Quantenschaltung.

Rückgabetyp

QuantumCircuit

template_nct_2a_3

qiskit.circuit.library.templates.nct.template_nct_2a_3()

GitHub

Vorlage 2a_3:

q_0: ──■────■──
       │    │
q_1: ──■────■──
     ┌─┴─┐┌─┴─┐
q_2: ┤ X ├┤ X ├
     └───┘└───┘

Rückgabe

vorlage als Quantenschaltung.

Rückgabetyp

QuantumCircuit

template_nct_4a_1

qiskit.circuit.library.templates.nct.template_nct_4a_1()

GitHub

Vorlage 4a_1:

q_0: ───────■─────────■──
            │         │
q_1: ──■────┼────■────┼──
       │    │    │    │
q_2: ──■────■────■────■──
       │  ┌─┴─┐  │  ┌─┴─┐
q_3: ──┼──┤ X ├──┼──┤ X ├
     ┌─┴─┐└───┘┌─┴─┐└───┘
q_4: ┤ X ├─────┤ X ├─────
     └───┘     └───┘

Rückgabe

vorlage als Quantenschaltung.

Rückgabetyp

QuantumCircuit

template_nct_4a_2

qiskit.circuit.library.templates.nct.template_nct_4a_2()

GitHub

Vorlage 4a_2:

q_0: ──■─────────■───────
       │         │
q_1: ──■────■────■────■──
       │  ┌─┴─┐  │  ┌─┴─┐
q_2: ──┼──┤ X ├──┼──┤ X ├
     ┌─┴─┐└───┘┌─┴─┐└───┘
q_3: ┤ X ├─────┤ X ├─────
     └───┘     └───┘

Rückgabe

vorlage als Quantenschaltung.

Rückgabetyp

QuantumCircuit

template_nct_4a_3

qiskit.circuit.library.templates.nct.template_nct_4a_3()

GitHub

Vorlage 4a_3:

q_0: ──■────■────■────■──
       │  ┌─┴─┐  │  ┌─┴─┐
q_1: ──┼──┤ X ├──┼──┤ X ├
     ┌─┴─┐└───┘┌─┴─┐└───┘
q_2: ┤ X ├─────┤ X ├─────
     └───┘     └───┘

Rückgabe

vorlage als Quantenschaltung.

Rückgabetyp

QuantumCircuit

template_nct_4b_1

qiskit.circuit.library.templates.nct.template_nct_4b_1()

GitHub

Vorlage 4b_1:

q_0: ───────■─────────■──
            │         │
q_1: ──■────┼────■────┼──
       │    │    │    │
q_2: ──■────■────■────■──
     ┌─┴─┐┌─┴─┐┌─┴─┐┌─┴─┐
q_3: ┤ X ├┤ X ├┤ X ├┤ X ├
     └───┘└───┘└───┘└───┘

Rückgabe

vorlage als Quantenschaltung.

Rückgabetyp

QuantumCircuit

template_nct_4b_2

qiskit.circuit.library.templates.nct.template_nct_4b_2()

GitHub

Vorlage 4b_2:

q_0: ──■─────────■───────
       │         │
q_1: ──■────■────■────■──
     ┌─┴─┐┌─┴─┐┌─┴─┐┌─┴─┐
q_2: ┤ X ├┤ X ├┤ X ├┤ X ├
     └───┘└───┘└───┘└───┘

Rückgabe

vorlage als Quantenschaltung.

Rückgabetyp

QuantumCircuit

template_nct_5a_1

qiskit.circuit.library.templates.nct.template_nct_5a_1()

GitHub

Vorlage 5a_1:

q_0: ──■────■────■────■────■──
       │  ┌─┴─┐  │  ┌─┴─┐  │
q_1: ──■──┤ X ├──■──┤ X ├──┼──
     ┌─┴─┐└───┘┌─┴─┐└───┘┌─┴─┐
q_2: ┤ X ├─────┤ X ├─────┤ X ├
     └───┘     └───┘     └───┘

Rückgabe

vorlage als Quantenschaltung.

Rückgabetyp

QuantumCircuit

template_nct_5a_2

qiskit.circuit.library.templates.nct.template_nct_5a_2()

GitHub

Vorlage 5a_2:

q_0: ──■─────────■─────────■──
       │  ┌───┐  │  ┌───┐  │
q_1: ──■──┤ X ├──■──┤ X ├──┼──
     ┌─┴─┐└───┘┌─┴─┐└───┘┌─┴─┐
q_2: ┤ X ├─────┤ X ├─────┤ X ├
     └───┘     └───┘     └───┘

Rückgabe

vorlage als Quantenschaltung.

Rückgabetyp

QuantumCircuit

template_nct_5a_3

qiskit.circuit.library.templates.nct.template_nct_5a_3()

GitHub

Vorlage 5a_3:

q_0: ───────■─────────■────■──
          ┌─┴─┐     ┌─┴─┐  │
q_1: ──■──┤ X ├──■──┤ X ├──┼──
     ┌─┴─┐└───┘┌─┴─┐└───┘┌─┴─┐
q_2: ┤ X ├─────┤ X ├─────┤ X ├
     └───┘     └───┘     └───┘

Rückgabe

vorlage als Quantenschaltung.

Rückgabetyp

QuantumCircuit

template_nct_5a_4

qiskit.circuit.library.templates.nct.template_nct_5a_4()

GitHub

Vorlage 5a_4:

          ┌───┐     ┌───┐
q_0: ──■──┤ X ├──■──┤ X ├
     ┌─┴─┐└───┘┌─┴─┐├───┤
q_1: ┤ X ├─────┤ X ├┤ X ├
     └───┘     └───┘└───┘

Rückgabe

vorlage als Quantenschaltung.

Rückgabetyp

QuantumCircuit

template_nct_6a_1

qiskit.circuit.library.templates.nct.template_nct_6a_1()

GitHub

Vorlage 6a_1:

          ┌───┐     ┌───┐     ┌───┐
q_0: ──■──┤ X ├──■──┤ X ├──■──┤ X ├
     ┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘
q_1: ┤ X ├──■──┤ X ├──■──┤ X ├──■──
     └───┘     └───┘     └───┘

Rückgabe

vorlage als Quantenschaltung.

Rückgabetyp

QuantumCircuit

template_nct_6a_2

qiskit.circuit.library.templates.nct.template_nct_6a_2()

GitHub

Vorlage 6a_2:

q_0: ──■────■────■────■────■────■──
       │  ┌─┴─┐  │  ┌─┴─┐  │  ┌─┴─┐
q_1: ──■──┤ X ├──■──┤ X ├──■──┤ X ├
     ┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘
q_2: ┤ X ├──■──┤ X ├──■──┤ X ├──■──
     └───┘     └───┘     └───┘

Rückgabe

vorlage als Quantenschaltung.

Rückgabetyp

QuantumCircuit

template_nct_6a_3

qiskit.circuit.library.templates.nct.template_nct_6a_3()

GitHub

Vorlage 6a_3:

q_0: ───────■─────────■────■────■──
          ┌─┴─┐     ┌─┴─┐  │  ┌─┴─┐
q_1: ──■──┤ X ├──■──┤ X ├──■──┤ X ├
     ┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘
q_2: ┤ X ├──■──┤ X ├──■──┤ X ├──■──
     └───┘     └───┘     └───┘

Rückgabe

vorlage als Quantenschaltung.

Rückgabetyp

QuantumCircuit

template_nct_6a_4

qiskit.circuit.library.templates.nct.template_nct_6a_4()

GitHub

Vorlage 6a_4:

q_0: ───────■──────────────■───────
          ┌─┴─┐     ┌───┐  │  ┌───┐
q_1: ──■──┤ X ├──■──┤ X ├──■──┤ X ├
     ┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘
q_2: ┤ X ├──■──┤ X ├──■──┤ X ├──■──
     └───┘     └───┘     └───┘

Rückgabe

vorlage als Quantenschaltung.

Rückgabetyp

QuantumCircuit

template_nct_6b_1

qiskit.circuit.library.templates.nct.template_nct_6b_1()

GitHub

Vorlage 6b_1:

q_0: ──■─────────■────■─────────■──
       │       ┌─┴─┐  │       ┌─┴─┐
q_1: ──■────■──┤ X ├──■────■──┤ X ├
     ┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘
q_2: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──
     └───┘└───┘     └───┘└───┘

Rückgabe

vorlage als Quantenschaltung.

Rückgabetyp

QuantumCircuit

template_nct_6b_2

qiskit.circuit.library.templates.nct.template_nct_6b_2()

GitHub

Vorlage 6b_2:

q_0: ───────■────■─────────■────■──
            │  ┌─┴─┐       │  ┌─┴─┐
q_1: ──■────■──┤ X ├──■────■──┤ X ├
     ┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘
q_2: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──
     └───┘└───┘     └───┘└───┘

Rückgabe

vorlage als Quantenschaltung.

Rückgabetyp

QuantumCircuit

template_nct_6c_1

qiskit.circuit.library.templates.nct.template_nct_6c_1()

GitHub

Vorlage 6c_1:

q_0: ──■─────────■─────────■────■──
       │  ┌───┐  │  ┌───┐  │  ┌─┴─┐
q_1: ──■──┤ X ├──■──┤ X ├──■──┤ X ├
     ┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘
q_2: ┤ X ├──■──┤ X ├──■──┤ X ├──■──
     └───┘     └───┘     └───┘

Rückgabe

vorlage als Quantenschaltung.

Rückgabetyp

QuantumCircuit

template_nct_7a_1

qiskit.circuit.library.templates.nct.template_nct_7a_1()

GitHub

Vorlage 7a_1:

     ┌───┐                    ┌───┐
q_0: ┤ X ├──■─────────■────■──┤ X ├──■──
     └─┬─┘┌─┴─┐       │  ┌─┴─┐└─┬─┘  │
q_1: ──■──┤ X ├──■────■──┤ X ├──■────■──
          └───┘┌─┴─┐┌─┴─┐└───┘     ┌─┴─┐
q_2: ──────────┤ X ├┤ X ├──────────┤ X ├
               └───┘└───┘          └───┘

Rückgabe

vorlage als Quantenschaltung.

Rückgabetyp

QuantumCircuit

template_nct_7b_1

qiskit.circuit.library.templates.nct.template_nct_7b_1()

GitHub

Vorlage 7b_1:

     ┌───┐                    ┌───┐
q_0: ┤ X ├──■─────────■────■──┤ X ├──■──
     └───┘┌─┴─┐       │  ┌─┴─┐└───┘  │
q_1: ─────┤ X ├──■────■──┤ X ├───────■──
          └───┘┌─┴─┐┌─┴─┐└───┘     ┌─┴─┐
q_2: ──────────┤ X ├┤ X ├──────────┤ X ├
               └───┘└───┘          └───┘

Rückgabe

vorlage als Quantenschaltung.

Rückgabetyp

QuantumCircuit

template_nct_7c_1

qiskit.circuit.library.templates.nct.template_nct_7c_1()

GitHub

Vorlage 7c_1:

     ┌───┐                    ┌───┐
q_0: ┤ X ├──■─────────■────■──┤ X ├──■──
     └───┘┌─┴─┐       │  ┌─┴─┐└───┘  │
q_1: ─────┤ X ├──■────■──┤ X ├───────■──
          └─┬─┘┌─┴─┐┌─┴─┐└─┬─┘     ┌─┴─┐
q_2: ───────■──┤ X ├┤ X ├──■───────┤ X ├
               └───┘└───┘          └───┘

Rückgabe

vorlage als Quantenschaltung.

Rückgabetyp

QuantumCircuit

template_nct_7d_1

qiskit.circuit.library.templates.nct.template_nct_7d_1()

GitHub

Vorlage 7d_1:

     ┌───┐                    ┌───┐
q_0: ┤ X ├──■─────────■────■──┤ X ├──■──
     └─┬─┘┌─┴─┐       │  ┌─┴─┐└─┬─┘  │
q_1: ──■──┤ X ├──■────■──┤ X ├──■────■──
          └─┬─┘┌─┴─┐┌─┴─┐└─┬─┘     ┌─┴─┐
q_2: ───────■──┤ X ├┤ X ├──■───────┤ X ├
               └───┘└───┘          └───┘

Rückgabe

vorlage als Quantenschaltung.

Rückgabetyp

QuantumCircuit

template_nct_7e_1

qiskit.circuit.library.templates.nct.template_nct_7e_1()

GitHub

Vorlage 7e_1:

     ┌───┐                    ┌───┐
q_0: ┤ X ├──■─────────■────■──┤ X ├──■──
     └───┘┌─┴─┐       │  ┌─┴─┐└───┘  │
q_1: ─────┤ X ├───────┼──┤ X ├───────┼──
          └─┬─┘┌───┐┌─┴─┐└─┬─┘     ┌─┴─┐
q_2: ───────■──┤ X ├┤ X ├──■───────┤ X ├
               └───┘└───┘          └───┘

Rückgabe

vorlage als Quantenschaltung.

Rückgabetyp

QuantumCircuit

template_nct_9a_1

qiskit.circuit.library.templates.nct.template_nct_9a_1()

GitHub

Vorlage 9a_1:

     ┌───┐     ┌───┐          ┌───┐
q_0: ┤ X ├──■──┤ X ├──■────■──┤ X ├──■──
     └─┬─┘┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐
q_1: ──■──┤ X ├──■──┤ X ├┤ X ├──■──┤ X ├
          └─┬─┘  │  ├───┤└─┬─┘┌───┐└─┬─┘
q_2: ───────■────■──┤ X ├──■──┤ X ├──■──
                    └───┘     └───┘

Rückgabe

vorlage als Quantenschaltung.

Rückgabetyp

QuantumCircuit

template_nct_9c_1

qiskit.circuit.library.templates.nct.template_nct_9c_1()

GitHub

Vorlage 9c_1:

     ┌───┐     ┌───┐┌───┐     ┌───┐          ┌───┐
q_0: ┤ X ├──■──┤ X ├┤ X ├─────┤ X ├──■───────┤ X ├
     └─┬─┘┌─┴─┐└───┘└─┬─┘┌───┐└─┬─┘┌─┴─┐┌───┐└─┬─┘
q_1: ──■──┤ X ├───────■──┤ X ├──■──┤ X ├┤ X ├──■──
          └───┘          └───┘     └───┘└───┘

Rückgabe

vorlage als Quantenschaltung.

Rückgabetyp

QuantumCircuit

template_nct_9c_2

qiskit.circuit.library.templates.nct.template_nct_9c_2()

GitHub

Vorlage 9c_2:

q_0: ───────■────■──────────────■────■─────────■──
     ┌───┐  │  ┌─┴─┐┌───┐     ┌─┴─┐  │       ┌─┴─┐
q_1: ┤ X ├──■──┤ X ├┤ X ├─────┤ X ├──■───────┤ X ├
     └─┬─┘┌─┴─┐└───┘└─┬─┘┌───┐└─┬─┘┌─┴─┐┌───┐└─┬─┘
q_2: ──■──┤ X ├───────■──┤ X ├──■──┤ X ├┤ X ├──■──
          └───┘          └───┘     └───┘└───┘

Rückgabe

vorlage als Quantenschaltung.

Rückgabetyp

QuantumCircuit

template_nct_9c_3

qiskit.circuit.library.templates.nct.template_nct_9c_3()

GitHub

Vorlage 9c_3:

q_0: ───────■────────────────────────■────────────
     ┌───┐  │  ┌───┐┌───┐     ┌───┐  │       ┌───┐
q_1: ┤ X ├──■──┤ X ├┤ X ├─────┤ X ├──■───────┤ X ├
     └─┬─┘┌─┴─┐└───┘└─┬─┘┌───┐└─┬─┘┌─┴─┐┌───┐└─┬─┘
q_2: ──■──┤ X ├───────■──┤ X ├──■──┤ X ├┤ X ├──■──
          └───┘          └───┘     └───┘└───┘

Rückgabe

vorlage als Quantenschaltung.

Rückgabetyp

QuantumCircuit

template_nct_9c_4

qiskit.circuit.library.templates.nct.template_nct_9c_4()

GitHub

Vorlage 9c_4:

q_0: ──■────■─────────■──────────────■────────────
     ┌─┴─┐  │  ┌───┐┌─┴─┐     ┌───┐  │       ┌───┐
q_1: ┤ X ├──■──┤ X ├┤ X ├─────┤ X ├──■───────┤ X ├
     └─┬─┘┌─┴─┐└───┘└─┬─┘┌───┐└─┬─┘┌─┴─┐┌───┐└─┬─┘
q_2: ──■──┤ X ├───────■──┤ X ├──■──┤ X ├┤ X ├──■──
          └───┘          └───┘     └───┘└───┘

Rückgabe

vorlage als Quantenschaltung.

Rückgabetyp

QuantumCircuit

template_nct_9c_5

qiskit.circuit.library.templates.nct.template_nct_9c_5()

GitHub

Vorlage 9c_5:

q_0: ────────────■─────────■──────────────■───────
     ┌───┐     ┌─┴─┐┌───┐  │  ┌───┐       │  ┌───┐
q_1: ┤ X ├──■──┤ X ├┤ X ├──┼──┤ X ├──■────┼──┤ X ├
     └─┬─┘┌─┴─┐└───┘└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘
q_2: ──■──┤ X ├───────■──┤ X ├──■──┤ X ├┤ X ├──■──
          └───┘          └───┘     └───┘└───┘

Rückgabe

vorlage als Quantenschaltung.

Rückgabetyp

QuantumCircuit

template_nct_9c_6

qiskit.circuit.library.templates.nct.template_nct_9c_6()

GitHub

Vorlage 9c_6:

q_0: ───────■────■─────────■─────────■────■───────
     ┌───┐  │  ┌─┴─┐┌───┐  │  ┌───┐  │    │  ┌───┐
q_1: ┤ X ├──■──┤ X ├┤ X ├──┼──┤ X ├──■────┼──┤ X ├
     └─┬─┘┌─┴─┐└───┘└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘
q_2: ──■──┤ X ├───────■──┤ X ├──■──┤ X ├┤ X ├──■──
          └───┘          └───┘     └───┘└───┘

Rückgabe

vorlage als Quantenschaltung.

Rückgabetyp

QuantumCircuit

template_nct_9c_7

qiskit.circuit.library.templates.nct.template_nct_9c_7()

GitHub

Vorlage 9c_7:

q_0: ──■────■────■────■────■─────────■────■───────
     ┌─┴─┐  │  ┌─┴─┐┌─┴─┐  │  ┌───┐  │    │  ┌───┐
q_1: ┤ X ├──■──┤ X ├┤ X ├──┼──┤ X ├──■────┼──┤ X ├
     └─┬─┘┌─┴─┐└───┘└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘
q_2: ──■──┤ X ├───────■──┤ X ├──■──┤ X ├┤ X ├──■──
          └───┘          └───┘     └───┘└───┘

Rückgabe

vorlage als Quantenschaltung.

Rückgabetyp

QuantumCircuit

template_nct_9c_8

qiskit.circuit.library.templates.nct.template_nct_9c_8()

GitHub

Vorlage 9c_8:

q_0: ──■─────────■────■─────────■──────────────■──
     ┌─┴─┐     ┌─┴─┐┌─┴─┐     ┌─┴─┐          ┌─┴─┐
q_1: ┤ X ├──■──┤ X ├┤ X ├─────┤ X ├──■───────┤ X ├
     └─┬─┘┌─┴─┐└───┘└─┬─┘┌───┐└─┬─┘┌─┴─┐┌───┐└─┬─┘
q_2: ──■──┤ X ├───────■──┤ X ├──■──┤ X ├┤ X ├──■──
          └───┘          └───┘     └───┘└───┘

Rückgabe

vorlage als Quantenschaltung.

Rückgabetyp

QuantumCircuit

template_nct_9c_9

qiskit.circuit.library.templates.nct.template_nct_9c_9()

GitHub

Vorlage 9c_9:

q_0: ──■────■────■────■─────────■────■─────────■──
     ┌─┴─┐  │  ┌─┴─┐┌─┴─┐     ┌─┴─┐  │       ┌─┴─┐
q_1: ┤ X ├──■──┤ X ├┤ X ├─────┤ X ├──■───────┤ X ├
     └─┬─┘┌─┴─┐└───┘└─┬─┘┌───┐└─┬─┘┌─┴─┐┌───┐└─┬─┘
q_2: ──■──┤ X ├───────■──┤ X ├──■──┤ X ├┤ X ├──■──
          └───┘          └───┘     └───┘└───┘

Rückgabe

vorlage als Quantenschaltung.

Rückgabetyp

QuantumCircuit

template_nct_9c_10

qiskit.circuit.library.templates.nct.template_nct_9c_10()

GitHub

Vorlage 9c_10:

q_0: ──■─────────■────■────■────■─────────■────■──
     ┌─┴─┐     ┌─┴─┐┌─┴─┐  │  ┌─┴─┐       │  ┌─┴─┐
q_1: ┤ X ├──■──┤ X ├┤ X ├──┼──┤ X ├──■────┼──┤ X ├
     └─┬─┘┌─┴─┐└───┘└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘
q_2: ──■──┤ X ├───────■──┤ X ├──■──┤ X ├┤ X ├──■──
          └───┘          └───┘     └───┘└───┘

Rückgabe

vorlage als Quantenschaltung.

Rückgabetyp

QuantumCircuit

template_nct_9c_11

qiskit.circuit.library.templates.nct.template_nct_9c_11()

GitHub

Vorlage 9c_11:

q_0: ───────■────■─────────■────■────■────■────■──
     ┌───┐  │  ┌─┴─┐┌───┐  │  ┌─┴─┐  │    │  ┌─┴─┐
q_1: ┤ X ├──■──┤ X ├┤ X ├──┼──┤ X ├──■────┼──┤ X ├
     └─┬─┘┌─┴─┐└───┘└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘
q_2: ──■──┤ X ├───────■──┤ X ├──■──┤ X ├┤ X ├──■──
          └───┘          └───┘     └───┘└───┘

Rückgabe

vorlage als Quantenschaltung.

Rückgabetyp

QuantumCircuit

template_nct_9c_12

qiskit.circuit.library.templates.nct.template_nct_9c_12()

GitHub

Vorlage 9c_12:

q_0: ──■────■────■────■────■────■────■────■────■──
     ┌─┴─┐  │  ┌─┴─┐┌─┴─┐  │  ┌─┴─┐  │    │  ┌─┴─┐
q_1: ┤ X ├──■──┤ X ├┤ X ├──┼──┤ X ├──■────┼──┤ X ├
     └─┬─┘┌─┴─┐└───┘└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘
q_2: ──■──┤ X ├───────■──┤ X ├──■──┤ X ├┤ X ├──■──
          └───┘          └───┘     └───┘└───┘

Rückgabe

vorlage als Quantenschaltung.

Rückgabetyp

QuantumCircuit

template_nct_9d_1

qiskit.circuit.library.templates.nct.template_nct_9d_1()

GitHub

Vorlage 9d_1:

               ┌───┐          ┌───┐          ┌───┐
q_0: ──■───────┤ X ├───────■──┤ X ├───────■──┤ X ├
     ┌─┴─┐┌───┐└─┬─┘┌───┐┌─┴─┐└─┬─┘┌───┐┌─┴─┐└─┬─┘
q_1: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──
     └───┘└───┘     └───┘└───┘     └───┘└───┘

Rückgabe

vorlage als Quantenschaltung.

Rückgabetyp

QuantumCircuit

template_nct_9d_2

qiskit.circuit.library.templates.nct.template_nct_9d_2()

GitHub

Vorlage 9d_2:

q_0: ──■────■────■──────────────■──────────────■──
       │    │  ┌─┴─┐          ┌─┴─┐          ┌─┴─┐
q_1: ──■────┼──┤ X ├───────■──┤ X ├───────■──┤ X ├
     ┌─┴─┐┌─┴─┐└─┬─┘┌───┐┌─┴─┐└─┬─┘┌───┐┌─┴─┐└─┬─┘
q_2: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──
     └───┘└───┘     └───┘└───┘     └───┘└───┘

Rückgabe

vorlage als Quantenschaltung.

Rückgabetyp

QuantumCircuit

template_nct_9d_3

qiskit.circuit.library.templates.nct.template_nct_9d_3()

GitHub

Vorlage 9d_3:

q_0: ──■────■───────────────────■─────────────────
       │    │  ┌───┐          ┌─┴─┐          ┌───┐
q_1: ──■────┼──┤ X ├───────■──┤ X ├───────■──┤ X ├
     ┌─┴─┐┌─┴─┐└─┬─┘┌───┐┌─┴─┐└─┬─┘┌───┐┌─┴─┐└─┬─┘
q_2: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──
     └───┘└───┘     └───┘└───┘     └───┘└───┘

Rückgabe

vorlage als Quantenschaltung.

Rückgabetyp

QuantumCircuit

template_nct_9d_4

qiskit.circuit.library.templates.nct.template_nct_9d_4()

GitHub

Vorlage 9d_4:

q_0: ───────■─────────■──────────────■────────────
            │  ┌───┐  │       ┌───┐  │       ┌───┐
q_1: ──■────┼──┤ X ├──┼────■──┤ X ├──┼────■──┤ X ├
     ┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘
q_2: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──
     └───┘└───┘     └───┘└───┘     └───┘└───┘

Rückgabe

vorlage als Quantenschaltung.

Rückgabetyp

QuantumCircuit

template_nct_9d_5

qiskit.circuit.library.templates.nct.template_nct_9d_5()

GitHub

Vorlage 9d_5:

q_0: ──■────■─────────■─────────■────■────────────
       │    │  ┌───┐  │       ┌─┴─┐  │       ┌───┐
q_1: ──■────┼──┤ X ├──┼────■──┤ X ├──┼────■──┤ X ├
     ┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘
q_2: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──
     └───┘└───┘     └───┘└───┘     └───┘└───┘

Rückgabe

vorlage als Quantenschaltung.

Rückgabetyp

QuantumCircuit

template_nct_9d_6

qiskit.circuit.library.templates.nct.template_nct_9d_6()

GitHub

Vorlage 9d_6:

q_0: ──■────■──────────────■────■─────────■───────
       │    │  ┌───┐       │  ┌─┴─┐       │  ┌───┐
q_1: ──■────┼──┤ X ├───────■──┤ X ├───────■──┤ X ├
     ┌─┴─┐┌─┴─┐└─┬─┘┌───┐┌─┴─┐└─┬─┘┌───┐┌─┴─┐└─┬─┘
q_2: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──
     └───┘└───┘     └───┘└───┘     └───┘└───┘

Rückgabe

vorlage als Quantenschaltung.

Rückgabetyp

QuantumCircuit

template_nct_9d_7

qiskit.circuit.library.templates.nct.template_nct_9d_7()

GitHub

Vorlage 9d_7:

q_0: ──■────■─────────■────■────■────■────■───────
       │    │  ┌───┐  │    │  ┌─┴─┐  │    │  ┌───┐
q_1: ──■────┼──┤ X ├──┼────■──┤ X ├──┼────■──┤ X ├
     ┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘
q_2: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──
     └───┘└───┘     └───┘└───┘     └───┘└───┘

Rückgabe

vorlage als Quantenschaltung.

Rückgabetyp

QuantumCircuit

template_nct_9d_8

qiskit.circuit.library.templates.nct.template_nct_9d_8()

GitHub

Vorlage 9d_8:

q_0: ──■────■────■────■─────────■────■─────────■──
       │    │  ┌─┴─┐  │       ┌─┴─┐  │       ┌─┴─┐
q_1: ──■────┼──┤ X ├──┼────■──┤ X ├──┼────■──┤ X ├
     ┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘
q_2: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──
     └───┘└───┘     └───┘└───┘     └───┘└───┘

Rückgabe

vorlage als Quantenschaltung.

Rückgabetyp

QuantumCircuit

template_nct_9d_9

qiskit.circuit.library.templates.nct.template_nct_9d_9()

GitHub

Vorlage 9d_9:

q_0: ──■────■────■─────────■────■─────────■────■──
       │    │  ┌─┴─┐       │  ┌─┴─┐       │  ┌─┴─┐
q_1: ──■────┼──┤ X ├───────■──┤ X ├───────■──┤ X ├
     ┌─┴─┐┌─┴─┐└─┬─┘┌───┐┌─┴─┐└─┬─┘┌───┐┌─┴─┐└─┬─┘
q_2: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──
     └───┘└───┘     └───┘└───┘     └───┘└───┘

Rückgabe

vorlage als Quantenschaltung.

Rückgabetyp

QuantumCircuit

template_nct_9d_10

qiskit.circuit.library.templates.nct.template_nct_9d_10()

GitHub

Vorlage 9d_10:

q_0: ──■────■────■────■────■────■────■────■────■──
       │    │  ┌─┴─┐  │    │  ┌─┴─┐  │    │  ┌─┴─┐
q_1: ──■────┼──┤ X ├──┼────■──┤ X ├──┼────■──┤ X ├
     ┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘
q_2: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──
     └───┘└───┘     └───┘└───┘     └───┘└───┘

Rückgabe

vorlage als Quantenschaltung.

Rückgabetyp

QuantumCircuit

Clifford-Schablonenschaltungen

Schablonenschaltungen über Clifford-Gatter.

clifford_2_1

qiskit.circuit.library.clifford_2_1()

GitHub

Clifford Vorlage 2_1:

q_0: ─■──■─
      │  │
q_1: ─■──■─

Rückgabe

vorlage als Quantenschaltung.

Rückgabetyp

QuantumCircuit

clifford_2_2

qiskit.circuit.library.clifford_2_2()

GitHub

Clifford-Vorlage 2_2:

q_0: ──■────■──
     ┌─┴─┐┌─┴─┐
q_1: ┤ X ├┤ X ├
     └───┘└───┘

Rückgabe

vorlage als Quantenschaltung.

Rückgabetyp

QuantumCircuit

clifford_2_3

qiskit.circuit.library.clifford_2_3()

GitHub

Clifford-Vorlage 2_3:

     ┌───┐┌───┐
q_0: ┤ H ├┤ H ├
     └───┘└───┘

Rückgabe

vorlage als Quantenschaltung.

Rückgabetyp

QuantumCircuit

clifford_2_4

qiskit.circuit.library.clifford_2_4()

GitHub

Clifford-Vorlage 2_4:

q_0: ─X──X─
      │  │
q_1: ─X──X─

Rückgabe

vorlage als Quantenschaltung.

Rückgabetyp

QuantumCircuit

clifford_3_1

qiskit.circuit.library.clifford_3_1()

GitHub

Clifford Vorlage 3_1:

     ┌───┐┌───┐┌───┐
q_0: ┤ S ├┤ S ├┤ Z ├
     └───┘└───┘└───┘

Rückgabe

vorlage als Quantenschaltung.

Rückgabetyp

QuantumCircuit

clifford_4_1

qiskit.circuit.library.clifford_4_1()

GitHub

Clifford Vorlage 4_1:

          ┌───┐
q_0: ──■──┤ X ├──■───X─
     ┌─┴─┐└─┬─┘┌─┴─┐ │
q_1: ┤ X ├──■──┤ X ├─X─
     └───┘     └───┘

Rückgabe

vorlage als Quantenschaltung.

Rückgabetyp

QuantumCircuit

clifford_4_2

qiskit.circuit.library.clifford_4_2()

GitHub

Clifford-Vorlage 4_2:

q_0: ───────■────────■─
     ┌───┐┌─┴─┐┌───┐ │
q_1: ┤ H ├┤ X ├┤ H ├─■─
     └───┘└───┘└───┘

Rückgabe

vorlage als Quantenschaltung.

Rückgabetyp

QuantumCircuit

clifford_4_3

qiskit.circuit.library.clifford_4_3()

GitHub

Clifford-Vorlage 4_3:

     ┌───┐     ┌─────┐
q_0: ┤ S ├──■──┤ SDG ├──■──
     └───┘┌─┴─┐└─────┘┌─┴─┐
q_1: ─────┤ X ├───────┤ X ├
          └───┘       └───┘

Rückgabe

vorlage als Quantenschaltung.

Rückgabetyp

QuantumCircuit

clifford_4_4

qiskit.circuit.library.clifford_4_4()

GitHub

Clifford-Vorlage 4_4:

     ┌───┐   ┌─────┐
q_0: ┤ S ├─■─┤ SDG ├─■─
     └───┘ │ └─────┘ │
q_1: ──────■─────────■─

Rückgabe

vorlage als Quantenschaltung.

Rückgabetyp

QuantumCircuit

clifford_5_1

qiskit.circuit.library.clifford_5_1()

GitHub

Clifford Vorlage 5_1:

q_0: ──■─────────■─────────■──
     ┌─┴─┐     ┌─┴─┐       │
q_1: ┤ X ├──■──┤ X ├──■────┼──
     └───┘┌─┴─┐└───┘┌─┴─┐┌─┴─┐
q_2: ─────┤ X ├─────┤ X ├┤ X ├
          └───┘     └───┘└───┘

Rückgabe

vorlage als Quantenschaltung.

Rückgabetyp

QuantumCircuit

clifford_6_1

qiskit.circuit.library.clifford_6_1()

GitHub

Clifford-Vorlage 6_1:

     ┌───┐     ┌───┐┌───┐
q_0: ┤ H ├──■──┤ H ├┤ X ├
     ├───┤┌─┴─┐├───┤└─┬─┘
q_1: ┤ H ├┤ X ├┤ H ├──■──
     └───┘└───┘└───┘

Rückgabe

vorlage als Quantenschaltung.

Rückgabetyp

QuantumCircuit

clifford_6_2

qiskit.circuit.library.clifford_6_2()

GitHub

Clifford-Vorlage 6_2:

     ┌───┐
q_0: ┤ S ├──■───────────■───■─
     ├───┤┌─┴─┐┌─────┐┌─┴─┐ │
q_1: ┤ S ├┤ X ├┤ SDG ├┤ X ├─■─
     └───┘└───┘└─────┘└───┘

Rückgabe

vorlage als Quantenschaltung.

Rückgabetyp

QuantumCircuit

clifford_6_3

qiskit.circuit.library.clifford_6_3()

GitHub

Clifford-Vorlage 6_3:

           ┌───┐     ┌───┐
q_0: ─X──■─┤ H ├──■──┤ X ├─────
      │  │ └───┘┌─┴─┐└─┬─┘┌───┐
q_1: ─X──■──────┤ X ├──■──┤ H ├
                └───┘     └───┘

Rückgabe

vorlage als Quantenschaltung.

Rückgabetyp

QuantumCircuit

clifford_6_4

qiskit.circuit.library.clifford_6_4()

GitHub

Clifford-Vorlage 6_4:

global phase: 7π/4
   ┌───┐┌───┐┌───┐┌───┐┌───┐┌───┐
q: ┤ S ├┤ H ├┤ S ├┤ H ├┤ S ├┤ H ├
   └───┘└───┘└───┘└───┘└───┘└───┘

Rückgabe

vorlage als Quantenschaltung.

Rückgabetyp

QuantumCircuit

clifford_6_5

qiskit.circuit.library.clifford_6_5()

GitHub

Clifford-Vorlage 6_5:

              ┌───┐
q_0: ─■───■───┤ S ├───■───────
      │ ┌─┴─┐┌┴───┴┐┌─┴─┐┌───┐
q_1: ─■─┤ X ├┤ SDG ├┤ X ├┤ S ├
        └───┘└─────┘└───┘└───┘

Rückgabe

vorlage als Quantenschaltung.

Rückgabetyp

QuantumCircuit

clifford_8_1

qiskit.circuit.library.clifford_8_1()

GitHub

Clifford Vorlage 8_1:

               ┌───┐ ┌───┐ ┌───┐┌─────┐
q_0: ──■───────┤ X ├─┤ S ├─┤ X ├┤ SDG ├
     ┌─┴─┐┌───┐└─┬─┘┌┴───┴┐└─┬─┘└┬───┬┘
q_1: ┤ X ├┤ H ├──■──┤ SDG ├──■───┤ H ├─
     └───┘└───┘     └─────┘      └───┘

Rückgabe

vorlage als Quantenschaltung.

Rückgabetyp

QuantumCircuit

clifford_8_2

qiskit.circuit.library.clifford_8_2()

GitHub

Clifford-Vorlage 8_2:

                     ┌───┐
q_0: ──■─────────■───┤ S ├───■────────────
     ┌─┴─┐┌───┐┌─┴─┐┌┴───┴┐┌─┴─┐┌───┐┌───┐
q_1: ┤ X ├┤ H ├┤ X ├┤ SDG ├┤ X ├┤ S ├┤ H ├
     └───┘└───┘└───┘└─────┘└───┘└───┘└───┘

Rückgabe

vorlage als Quantenschaltung.

Rückgabetyp

QuantumCircuit

clifford_8_3

qiskit.circuit.library.clifford_8_3()

GitHub

Clifford-Vorlage 8_3:

q_0: ─────────────────■───────────────────────■──
     ┌───┐┌───┐┌───┐┌─┴─┐┌─────┐┌───┐┌─────┐┌─┴─┐
q_1: ┤ S ├┤ H ├┤ S ├┤ X ├┤ SDG ├┤ H ├┤ SDG ├┤ X ├
     └───┘└───┘└───┘└───┘└─────┘└───┘└─────┘└───┘

Rückgabe

vorlage als Quantenschaltung.

Rückgabetyp

QuantumCircuit

RZXGate-Schablonenschaltungen

Schaltplanvorlagen mit RZXGate.

rzx_yz

qiskit.circuit.library.rzx_yz(theta=None)

GitHub

RZX-basierte Vorlage für CX - RYGate - CX.

          ┌────────┐     ┌─────────┐┌─────────┐┌──────────┐
q_0: ──■──┤ RY(-ϴ) ├──■──┤ RX(π/2) ├┤0        ├┤ RX(-π/2) ├
     ┌─┴─┐└────────┘┌─┴─┐└─────────┘│  RZX(ϴ) │└──────────┘
q_1: ┤ X ├──────────┤ X ├───────────┤1        ├────────────
     └───┘          └───┘           └─────────┘

Parameter

theta (ParameterExpression |float | None)

rzx_xz

qiskit.circuit.library.rzx_xz(theta=None)

GitHub

RZX-basierte Vorlage für CX - RXGate - CX.

global phase: π
     ┌───┐         ┌───┐┌─────────┐┌─────────┐┌─────────┐┌──────────┐»
q_0: ┤ X ├─────────┤ X ├┤ Rz(π/2) ├┤ Rx(π/2) ├┤ Rz(π/2) ├┤0         ├»
     └─┬─┘┌───────┐└─┬─┘└─────────┘└─────────┘└─────────┘│  Rzx(-ϴ) │»
q_1: ──■──┤ Rx(ϴ) ├──■───────────────────────────────────┤1         ├»
          └───────┘                                      └──────────┘»
«     ┌─────────┐┌─────────┐┌─────────┐
«q_0: ┤ Rz(π/2) ├┤ Rx(π/2) ├┤ Rz(π/2) ├
«     └─────────┘└─────────┘└─────────┘
«q_1: ─────────────────────────────────
«

Parameter

theta (ParameterExpression |float | None)

rzx_cy

qiskit.circuit.library.rzx_cy(theta=None)

GitHub

RZX-basierte Vorlage für CX - RYGate - CX.

                                                       ┌──────────┐
q_0: ──■─────────────■─────────────────────────────────┤0         ├───────────
     ┌─┴─┐┌───────┐┌─┴─┐┌────────┐┌──────────┐┌───────┐│  RZX(-ϴ) │┌─────────┐
q_1: ┤ X ├┤ RY(ϴ) ├┤ X ├┤ RY(-ϴ) ├┤ RZ(-π/2) ├┤ RX(ϴ) ├┤1         ├┤ RZ(π/2) ├
     └───┘└───────┘└───┘└────────┘└──────────┘└───────┘└──────────┘└─────────┘

Parameter

theta (ParameterExpression |float | None)

rzx_zz1

qiskit.circuit.library.rzx_zz1(theta=None)

GitHub

RZX-basierte Vorlage für CX - RZGate - CX.

global phase: π/2
                                                                              »
  q_0: ──■────────────────────────────────────────────■───────────────────────»
       ┌─┴─┐┌───────┐┌────┐┌───────┐┌────┐┌────────┐┌─┴─┐┌────────┐┌─────────┐»
  q_1: ┤ X ├┤ Rz(ϴ) ├┤ √X ├┤ Rz(π) ├┤ √X ├┤ Rz(3π) ├┤ X ├┤ Rz(-ϴ) ├┤ Rz(π/2) ├»
       └───┘└───────┘└────┘└───────┘└────┘└────────┘└───┘└────────┘└─────────┘»
  «                                    ┌──────────┐                      »
  «q_0: ───────────────────────────────┤0         ├──────────────────────»
  «     ┌─────────┐┌─────────┐┌───────┐│  Rzx(-ϴ) │┌─────────┐┌─────────┐»
  «q_1: ┤ Rx(π/2) ├┤ Rz(π/2) ├┤ Rx(ϴ) ├┤1         ├┤ Rz(π/2) ├┤ Rx(π/2) ├»
  «     └─────────┘└─────────┘└───────┘└──────────┘└─────────┘└─────────┘»
  «
  «q_0: ───────────
  «     ┌─────────┐
  «q_1: ┤ Rz(π/2) ├
  «     └─────────┘

Parameter

theta (ParameterExpression |float | None)

rzx_zz2

qiskit.circuit.library.rzx_zz2(theta=None)

GitHub

RZX-basierte Vorlage für CX - PhaseGate - CX.

global phase: π
                                                                            »
  q_0: ──■────────────■─────────────────────────────────────────────────────»
       ┌─┴─┐┌──────┐┌─┴─┐┌───────┐┌─────────┐┌─────────┐┌─────────┐┌───────┐»
  q_1: ┤ X ├┤ P(ϴ) ├┤ X ├┤ P(-ϴ) ├┤ Rz(π/2) ├┤ Rx(π/2) ├┤ Rz(π/2) ├┤ Rx(ϴ) ├»
       └───┘└──────┘└───┘└───────┘└─────────┘└─────────┘└─────────┘└───────┘»
  «     ┌──────────┐
  «q_0: ┤0         ├─────────────────────────────────
  «     │  Rzx(-ϴ) │┌─────────┐┌─────────┐┌─────────┐
  «q_1: ┤1         ├┤ Rz(π/2) ├┤ Rx(π/2) ├┤ Rz(π/2) ├
  «     └──────────┘└─────────┘└─────────┘└─────────┘

Parameter

theta (ParameterExpression |float | None)

rzx_zz3

qiskit.circuit.library.rzx_zz3(theta=None)

GitHub

RZX-basierte Vorlage für CX - RZGate - CX.

global phase: π
                                                                              »
  q_0: ──■─────────────■──────────────────────────────────────────────────────»
       ┌─┴─┐┌───────┐┌─┴─┐┌────────┐┌─────────┐┌─────────┐┌─────────┐┌───────┐»
  q_1: ┤ X ├┤ Rz(ϴ) ├┤ X ├┤ Rz(-ϴ) ├┤ Rz(π/2) ├┤ Rx(π/2) ├┤ Rz(π/2) ├┤ Rx(ϴ) ├»
       └───┘└───────┘└───┘└────────┘└─────────┘└─────────┘└─────────┘└───────┘»
  «     ┌──────────┐
  «q_0: ┤0         ├─────────────────────────────────
  «     │  Rzx(-ϴ) │┌─────────┐┌─────────┐┌─────────┐
  «q_1: ┤1         ├┤ Rz(π/2) ├┤ Rx(π/2) ├┤ Rz(π/2) ├
  «     └──────────┘└─────────┘└─────────┘└─────────┘

Parameter

theta (ParameterExpression |float | None)

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