Skip to main content
IBM Quantum Platform

InnerProduct

class qiskit.circuit.library.InnerProduct(num_qubits)

GitHub

Bases: QuantumCircuit

Una función booleana 2n-qubit que calcula el producto interior de dos vectores n-qubit sobre F2F_2.

Esta implementación es un oráculo de fase que calcula la siguiente transformación.

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}

El unitario correspondiente es una diagonal, que induce una fase -1 en cualquier entrada en la que el producto interior de los registros superior e inferior sea 1. De lo contrario, mantiene la entrada intacta.

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

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

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

Circuito de referencia:

Diagrama que ilustra el circuito descrito anteriormente.
Obsoleto desde la versión 2.1

La clase qiskit.circuit.library.boolean_logic.inner_product.InnerProduct está obsoleta a partir de Qiskit 2.1. Se eliminará en Qiskit 3.0. Utilice qiskit.circuit.library.InnerProductGate en su lugar.

Parámetros

num_qubits (int) – anchura de los registros superior e inferior (la mitad de la anchura total del circuito)


Atributos

name

Tipo: str

Un nombre legible para el circuito.

Ejemplo

from qiskit import QuantumCircuit

qc = QuantumCircuit(2, 2, name="my_circuit")
print(qc.name)
my_circuit
¿Le ha resultado útil esta página?
Informe de un error, de una errata o solicite contenido en GitHub.