Skip to main content
IBM Quantum Platform

FourierChecking

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

GitHub

Bases: QuantumCircuit

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 ff, outra camada de Hadamards, a função gg, seguida por uma camada final de Hadamards. As funções ff e gg 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 é p(f,g)p(f,g). O algoritmo resolve o problema de verificação da promessa de Fourier, que decide se f está correlacionado com a transformada de Fourier de g, testando se p(f,g)<=0.01p(f,g) <= 0.01 ou p(f,g)>=0.05p(f,g) >= 0.05, prometeu que um ou outro é verdadeiro.

As funções ff e gg são implementadas atualmente 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 kk -fold para a relação [2].

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

Crie um circuito de verificação de Fourier.

Descontinuado desde a versão 2.1

A classe qiskit.circuit.library.fourier_checking.FourierChecking está obsoleta desde o Qiskit 2.1. Ele será removido no Qiskit 3.0. Em vez disso, use qiskit.circuit.library.fourier_checking.

Parâmetros

  • f (Sequence[int]) – tabela verdade para f, comprimento 2**n lista de {1,-1}.
  • g (Sequence[int]) – tabela verdade para g, comprimento 2**n lista de {1,-1}.

Aumentos

CircuitError - se as entradas f e g não forem válidas.

Circuito de referência:

Diagrama que ilustra o circuito descrito anteriormente.

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.