Skip to main content
IBM Quantum Platform

Initialisieren

class qiskit.circuit.library.Initialize(params, num_qubits=None, normalize=False)

GitHub

Basen: Instruction

Komplexe Amplitudeninitialisierung.

Klasse, die eine flexible Sammlung von Qubit-Registern initialisiert, implementiert durch den Aufruf der StatePreparation klasse. Beachten Sie, dass Initialize ein Instruction und nicht ein Gate ist, da es eine Reset-Anweisung enthält, die nicht einheitlich ist.

Der Ausgangszustand wird auf der Grundlage der Isometry synthese, die in [1] beschrieben wurde.

Quellenangaben:

[1] Iten et al., Quantenschaltungen für Isometrien (2016). Phys. Rev. A 93, 032318.

Parameter

  • params (Statevector | Sequence[complex] | str |int) –

    Der Zustand, in den initialisiert werden soll, kann einer der folgenden sein

    • Zustandsvektor oder Vektor der komplexen Amplituden, auf den initialisiert werden soll.
    • Bezeichnungen der Basiszustände der Pauli-Eigenzustände Z, X, Y. Siehe Statevector.from_label(). Beachten Sie, dass die Reihenfolge der Bezeichnungen in Bezug auf den Qubit-Index, auf den sie angewendet werden sollen, umgekehrt ist. Das Beispiel-Label '01' initialisiert das Qubit Null auf ∣1⟩|1\rangle und das Qubit Eins auf ∣0⟩|0\rangle.
    • Eine ganze Zahl, die als Bitmap verwendet wird und angibt, welche Qubits auf ∣1⟩|1\rangle initialisiert werden sollen. Beispiel: Wenn params auf 5 gesetzt wird, werden Qubit 0 und Qubit 2 auf ∣1⟩|1\rangle und Qubit 1 auf ∣0⟩|0\rangle initialisiert.
  • num_qubits (int | None) – Dieser Parameter wird nur verwendet, wenn params ein int ist. Gibt die Gesamtzahl der Qubits im Initialisierungsaufruf an. Beispiel: initialize umfasst 5 Qubits und params ist 3. Dadurch können die Qubits 0 und 1 auf ∣1⟩|1\rangle und die restlichen 3 Qubits auf ∣0⟩|0\rangle initialisiert werden.

  • normalize (bool) – Ob ein Eingabefeld auf einen Einheitsvektor normalisiert werden soll.


Attribute

base_class

Ermittelt die Basisklasse dieser Instruktion. Dies ist garantiert im Vererbungsbaum von self zu finden.

Die "Basisklasse" einer Anweisung ist die niedrigste Klasse in ihrem Vererbungsbaum, mit der das Objekt für _all_ Schaltkreisanwendungen als vollständig kompatibel angesehen werden sollte. Das bedeutet in der Regel, dass die Unterklasse nur definiert ist, um dem Programmierer eine gewisse Bequemlichkeit gegenüber der Basisklasse zu bieten, und dass die Basisklasse aus der Sicht des Verhaltens die "wahre" Klasse ist. Insbesondere sollten Sie Folgendes nicht außer Kraft setzen base_class nicht überschreiben, wenn Sie eine benutzerdefinierte Version einer Anweisung definieren, die von der Hardware anders implementiert wird, wie z. B. eine alternative Messstrategie oder eine Version eines parametrisierten Gatters mit einem bestimmten Satz von Parametern, um es in einer Target von dem vollständig parametrisierten Gatter zu unterscheiden.

Dies ist oft genau gleichwertig mit type(obj), außer im Fall von Singleton-Instanzen von Standard-Bibliotheksanweisungen. Diese Singleton-Instanzen sind spezielle Unterklassen ihrer Basisklasse, und diese Eigenschaft gibt die Basisklasse zurück. Zum Beispiel:

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

Im Allgemeinen sollte man sich nicht auf die genaue Klasse eines Befehls verlassen; innerhalb einer bestimmten Schaltung sollte Instruction.name in den meisten Situationen ein geeigneteres Unterscheidungsmerkmal sein.

decompositions

Holen Sie sich die Zerlegungen der Anweisung von SessionEquivalenceLibrary.

definition

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

label

Etikett mit Rücksendeanweisungen

mutable

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

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

name

Geben Sie den Namen zurück.

num_clbits

Gibt die Anzahl der Clbits zurück.

num_qubits

Gibt die Anzahl der Qubits zurück.

params

Return initialize params.


Methoden

add_decomposition

add_decomposition(decomposition)

GitHub

Fügen Sie eine Dekomposition der Anweisung in die SessionEquivalenceLibrary ein.

broadcast_arguments

broadcast_arguments(qargs, cargs)

GitHub

Validierung der Argumente.

Parameter

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

Ergiebigkeit

Tupel(Liste, Liste) - Ein Tupel mit einzelnen Argumenten.

Erhöht

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 Anweisung.

Parameter

name (str) – name, der dem kopierten Stromkreis gegeben werden soll; wenn None , bleibt der Name gleich.

Rückgabe

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

Rückgabetyp

qiskit.circuit.Instruction

gates_to_uncompute

gates_to_uncompute()

GitHub

Aufruf zur Erstellung einer Schaltung mit Gattern, die den gewünschten Vektor auf Null setzen.

Rückgabe

schaltung, um den self.params Vektor zu ∣00…0⟩|{00\ldots0}\rangle

Rückgabetyp

QuantumCircuit

inverse

inverse(annotated=False)

GitHub

Löst einen Fehler aus, da „Initialize“ nicht invertiert werden kann.

Parameter

annotated (bool)

is_parameterized

is_parameterized()

GitHub

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

repeat

repeat(n)

GitHub

Erstellt eine Anweisung, die selfnn -mal wiederholt wird.

Parameter

n (int) – Anzahl der Wiederholungen des Befehls

Rückgabe

Enthält die Definition.

Rückgabetyp

qiskit.circuit.Instruction

Erhöht

CircuitError – Wenn n < 1 ist.

reverse_ops

reverse_ops()

GitHub

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

Dies geschieht durch rekursive Umkehrung aller Unterbefehle. Es wird kein Gate invertiert.

Rückgabe

eine neue Anweisung mit

unteranweisungen umgedreht.

Rückgabetyp

qiskit.circuit.Instruction

soft_compare

soft_compare(other)

GitHub

Weicher Vergleich zwischen Gates. Ihre Namen, die Anzahl der Qubits und die klassischen Bitnummern müssen übereinstimmen. Die Anzahl der Parameter muss übereinstimmen. Jeder Parameter wird verglichen. Wenn man eine ParameterExpression ist, wird sie nicht berücksichtigt.

Parameter

other (instruction) – sonstiger Unterricht.

Rückgabe

sind selbst und andere gleich bis hin zu Parameterausdrücken.

Rückgabetyp

bool

to_mutable

to_mutable()

GitHub

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

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

validate_parameter

validate_parameter(parameter)

GitHub

Befehlsparameter hat keine Validierung oder Normalisierung.

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