Skip to main content
IBM Quantum Platform

InnerProduct

class qiskit.circuit.library.InnerProduct(num_qubits)

GitHub

Basi: QuantumCircuit

Una funzione booleana 2n-qubit che calcola il prodotto interno di due vettori di n-qubit su F2F_2.

Questa implementazione è un oracolo di fase che calcola la seguente trasformazione.

IP2n:F22n1,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}

L'unitario corrispondente è una diagonale, che induce una fase -1 su qualsiasi ingresso in cui il prodotto interno dei registri superiore e inferiore è 1. Altrimenti, mantiene l'input intatto.

q0_0: ─■──────────

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

q1_3: ──────────■─

Circuito di riferimento:

Schema che illustra il circuito precedentemente descritto.
Deprecato dalla versione 2.1

La classe qiskit.circuit.library.boolean_logic.inner_product.InnerProduct è deprecata a partire da Qiskit 2.1. Verrà rimosso in Qiskit 3.0. Utilizzare invece qiskit.circuit.library.InnerProductGate.

Parametri

num_qubits (int) – larghezza dei registri superiore e inferiore (pari alla metà della larghezza totale del circuito)


Attributi

name

Tipo: str

Un nome leggibile per il circuito.

Esempio

from qiskit import QuantumCircuit

qc = QuantumCircuit(2, 2, name="my_circuit")
print(qc.name)
my_circuit
Questa pagina è stata utile?
Segnala un bug, un errore di battitura o richiedi contenuti su GitHub.