Skip to main content
IBM Quantum Platform

InnerProduct

class qiskit.circuit.library.InnerProduct(num_qubits)

GitHub

Basen: QuantumCircuit

Eine 2n-qubit Boolesche Funktion, die das innere Produkt von zwei n-Qubit-Vektoren über F2F_2 berechnet.

Diese Implementierung ist ein Phasenorakel, das die folgende Transformation berechnet.

IP2n:F22n→−1,1IP2n(x1,⋯ ,xn,y1,⋯ ,yn)=(−1)x.y\mathcal{IP}_{2n} : F_2^{2n} \rightarrow {-1, 1} \mathcal{IP}_{2n}(x_1, \cdots, x_n, y_1, \cdots, y_n) = (-1)^{x.y}

Die entsprechende Unitary ist eine Diagonale, die eine -1 Phase auf allen Eingängen induziert, bei denen das innere Produkt des oberen und unteren Registers 1 ist. Andernfalls bleibt die Eingabe intakt.

q0_0: ─■──────────
       │
q0_1: ─┼──■───────
       │  │
q0_2: ─┼──┼──■────
       │  │  │
q0_3: ─┼──┼──┼──■─
       │  │  │  │
q1_0: ─■──┼──┼──┼─
          │  │  │
q1_1: ────■──┼──┼─
             │  │
q1_2: ───────■──┼─
                │
q1_3: ──────────■─

Referenzkreislauf:

Diagramm zur Veranschaulichung der zuvor beschriebenen Schaltung.
Veraltet seit Version 2.1

Die Klasse qiskit.circuit.library.boolean_logic.inner_product.InnerProduct ist ab Qiskit 2.1 veraltet. Sie wird in Qiskit 3.0 entfernt. Verwenden Sie stattdessen qiskit.circuit.library.InnerProductGate.

Parameter

num_qubits (int) – Breite des oberen und unteren Registers (die Hälfte der gesamten Schaltungsbreite)


Attribute

name

Typ: str

Ein von Menschen lesbarer Name für den Stromkreis.

Beispiel

from qiskit import QuantumCircuit

qc = QuantumCircuit(2, 2, name="my_circuit")
print(qc.name)
my_circuit
War diese Seite hilfreich?
Melden Sie auf GitHub einen Fehler, einen Tippfehler oder fordern Sie Inhalte an.