Skip to main content
IBM Quantum Platform

RGQFTMultiplicateur

class qiskit.circuit.library.RGQFTMultiplier(num_state_qubits, num_result_qubits=None, name='RGQFTMultiplier')

GitHub

Bases : Multiplier

Un circuit de multiplication QFT pour stocker le produit de deux registres d'entrée hors place.

Dans ce circuit, la multiplication est mise en œuvre selon la procédure décrite à la figure 3 de [la référence 1], où les rotations de la somme pondérée sont réalisées comme indiqué à la figure 5 de [la référence 1]. La fonction QFT est appliquée au registre de sortie et est suivie de rotations commandées par les registres d'entrée. Les rotations transforment l'état en produit de deux registres d'entrée dans la base QFT, qui est ensuite ramené à la base QFT à l'aide de la QFT inverse.

À titre d'exemple, voici un circuit qui effectue une multiplication modulaire en théorie quantique des champs sur deux registres d'entrée de 2 qubits, avec un registre de sortie de 2 qubits :

  a_0: ────────────────────────────────────────■───────■──────■──────■────────────────
                                               │       │      │      │
  a_1: ─────────■───────■───────■───────■──────┼───────┼──────┼──────┼────────────────
                │       │       │       │      │       │      │      │
  b_0: ─────────┼───────┼───────■───────■──────┼───────┼──────■──────■────────────────
                │       │       │       │      │       │      │      │
  b_1: ─────────■───────■───────┼───────┼──────■───────■──────┼──────┼────────────────
       ┌──────┐ │P(4π)  │       │P(2π)  │      │P(2π)  │      │P(π)  │       ┌───────┐
out_0: ┤0     ├─■───────┼───────■───────┼──────■───────┼──────■──────┼───────┤0      ├
       │  qft │         │P(2π)          │P(π)          │P(π)         │P(π/2) │  iqft │
out_1: ┤1     ├─────────■───────────────■──────────────■─────────────■───────┤1      ├
       └──────┘                                                              └───────┘
Voir aussi

Cet MultiplierGate objet représente une multiplication, à l'instar de cette classe de circuit, mais permet au compilateur de choisir la décomposition optimale en fonction du contexte. Les implémentations spécifiques peuvent être définies via le HLSConfig, par exemple, ce circuit peut être sélectionné via Multiplier=["qft_r17"].

Références :

[1] Ruiz-Perez et al, Arithmétique quantique avec la transformée de Fourier quantique, 2017. arXiv:1411.5949

Paramètres

  • num_state_qubits (int) – Le nombre de qubits dans l'un ou l'autre des registres d'entrée pour l'état a|a\rangle ou b|b\rangle. Les deux registres d'entrée doivent avoir le même nombre de qubits.
  • num_result_qubits (int | None) – Le nombre de qubits de résultat à limiter à la sortie. Si le nombre de qubits de résultat est nn, une multiplication modulo 2n2^n est effectuée pour limiter la sortie au nombre de qubits spécifié. La valeur par défaut est 2 * num_state_qubits pour représenter tout résultat possible de la multiplication des deux entrées.
  • name (str) – Le nom de l'objet 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.