qiskit.circuit.library.fourier_checking
qiskit.circuit.library.fourier_checking(f, g)
Circuito de verificação de Fourier.
O circuito para o algoritmo de verificação de Fourier, apresentado em [1], envolve uma camada de Hadamards, a função , outra camada de Hadamards, a função , seguida por uma camada final de Hadamards. As funções e são funções clássicas realizadas como oráculos de fase (operadores diagonais com {-1, 1} na diagonal).
A probabilidade de observar a cadeia de caracteres de todos os zeros é . O algoritmo resolve o problema de verificação da promessa de Fourier, que decide se f está correlacionada com a transformada de Fourier de g, testando se ou , prometeu que uma ou outra é verdadeira.
As funções e são atualmente implementadas a partir de suas tabelas verdade, mas podem ser representadas de forma concisa e implementadas de forma eficiente para classes especiais de funções.
A verificação de Fourier é um caso especial de -fold para a relação [2].
Circuito de referência:
from qiskit.circuit.library import fourier_checking
circuit = fourier_checking([1, -1, -1, -1], [1, 1, -1, -1])
circuit.draw('mpl')
Referências
[1] S. Aaronson, BQP and the Polynomial Hierarchy, 2009 (Seção 3.2 ). arXiv:0910.4698
[2] S. Aaronson, A. Ambainis, Forrelation: um problema que separa de forma ideal a computação quântica da clássica, 2014. arXiv:1411.5729
Parâmetros
Tipo de retorno