Skip to main content
IBM Quantum Platform

InnerProduct

class qiskit.circuit.library.InnerProduct(num_qubits)

GitHub

Bases : QuantumCircuit

Une fonction booléenne 2n-qubit qui calcule le produit intérieur de deux vecteurs de n-qubits sur F2F_2.

Cette implémentation est un oracle de phase qui calcule la transformation suivante.

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'unité correspondante est une diagonale, qui induit une phase -1 sur toutes les entrées où le produit intérieur des registres supérieur et inférieur est égal à 1. Dans le cas contraire, l'entrée reste intacte.

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

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

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

Circuit de référence :

Schéma illustrant le circuit décrit précédemment.
Déclassé depuis la version 2.1

La classe qiskit.circuit.library.boolean_logic.inner_product.InnerProduct est obsolète depuis Qiskit 2.1. Elle sera supprimée à Qiskit 3.0. Utilisez plutôt qiskit.circuit.library.InnerProductGate.

Paramètres

num_qubits (int) – largeur des registres supérieur et inférieur (la moitié de la largeur totale du circuit)


Attributs

name

Type : str

Un nom lisible par l'homme pour le circuit.

Exemple

from qiskit import QuantumCircuit

qc = QuantumCircuit(2, 2, name="my_circuit")
print(qc.name)
my_circuit
Cette page a-t-elle été utile ?
Signaler un bogue, une coquille ou proposer du contenu sur GitHub.