Skip to main content
IBM Quantum Platform

FourierChecking

class qiskit.circuit.library.FourierChecking(f, g)

GitHub

Bases : QuantumCircuit

Circuit de vérification de Fourier.

Le circuit de l'algorithme de vérification de Fourier, présenté au point [1], comprend une couche de Hadamards, la fonction ff, une autre couche de Hadamards, la fonction gg, suivie d'une dernière couche de Hadamards. Les fonctions ff et gg sont des fonctions classiques réalisées comme des oracles de phase (opérateurs diagonaux avec {-1, 1} sur la diagonale).

La probabilité d'observer la chaîne de tous les zéros est de p(f,g)p(f,g). L'algorithme résout le problème de vérification de la promesse de Fourier, qui détermine si f est corrélé avec la transformée de Fourier de g, en testant si p(f,g)<=0.01p(f,g) <= 0.01 ou p(f,g)>=0.05p(f,g) >= 0.05, en promettant que l'un ou l'autre est vrai.

Les fonctions ff et gg sont actuellement mises en œuvre à partir de leurs tables de vérité, mais elles pourraient être représentées de manière concise et mises en œuvre efficacement pour des classes spéciales de fonctions.

La vérification de Fourier est un cas particulier de kk -fold pour la relation [2.]

Références :

[1] S. Aaronson, BQP and the Polynomial Hierarchy, 2009 (Section 3.2 ). arXiv:0910.4698

[2] S. Aaronson, A. Ambainis, Forrelation : a problem that optimally separates quantum from classical computing, 2014. arXiv:1411.5729

Créer un circuit de vérification de Fourier.

Déclassé depuis la version 2.1

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

Paramètres

  • f (Sequence[int]) – table de vérité pour f, longueur 2**n liste de {1,-1}.
  • g (Sequence[int]) – table de vérité pour g, longueur 2**n liste de {1,-1}.

Augmentations

CircuitError – si les données d'entrée f et g ne sont pas valides.

Circuit de référence :

Schéma illustrant le circuit décrit précédemment.

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.