Skip to main content
IBM Quantum Platform

InnerProduct

class qiskit.circuit.library.InnerProduct(num_qubits)

GitHub

Bases: QuantumCircuit

Uma função booleana 2n-qubit que calcula o produto interno de dois vetores de n-qubit em F2F_2.

Essa implementação é um oráculo de fase que calcula a seguinte transformação.

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}

A unidade correspondente é uma diagonal, que induz uma fase -1 em qualquer entrada em que o produto interno dos registros superior e inferior seja 1. Caso contrário, ele mantém a entrada intacta.

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

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

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

Circuito de referência:

Diagrama que ilustra o circuito descrito anteriormente.
Descontinuado desde a versão 2.1

A classe qiskit.circuit.library.boolean_logic.inner_product.InnerProduct está obsoleta desde o Qiskit 2.1. Ele será removido no Qiskit 3.0. Em vez disso, use qiskit.circuit.library.InnerProductGate.

Parâmetros

num_qubits (int) – largura dos registros superior e inferior (metade da largura total do circuito)


Atributos

name

Tipo: str

Um nome legível por humanos para o circuito.

Exemplo

from qiskit import QuantumCircuit

qc = QuantumCircuit(2, 2, name="my_circuit")
print(qc.name)
my_circuit
Esta página foi útil?
Relate um bug, erro de digitação ou solicite conteúdo no GitHub.