Transformada de Fourier quântica
Para este módulo Qiskit em Salas de Aula, os alunos precisam ter um ambiente Python funcional com os seguintes pacotes instalados:
qiskitv2.1.0 ou mais recenteqiskit-ibm-runtimev0.40.1 ou mais recenteqiskit-aerv0.17.0 ou mais recenteqiskit.visualizationnumpypylatexenc
Para configurar e instalar os pacotes acima, consulte o guia Instalar o Qiskit. Para executar jobs em computadores quânticos reais, os alunos precisarão criar uma conta no IBM Quantum® seguindo os passos do guia Configurar sua conta IBM Cloud.
Este módulo foi testado e utilizou 13 segundos de tempo de QPU. Esta é uma estimativa de boa-fé; o uso real pode variar.
# Added by doQumentation — required packages for this notebook
!pip install -q numpy qiskit qiskit-aer qiskit-ibm-runtime
# Uncomment and modify this line as needed to install dependencies
#!pip install 'qiskit>=2.1.0' 'qiskit-ibm-runtime>=0.40.1' 'qiskit-aer>=0.17.0' 'numpy' 'pylatexenc'
Introdução
A transformada de Fourier é uma ferramenta amplamente utilizada com aplicações em matemática, física, processamento de sinais, compressão de dados e inúmeros outros campos. Uma versão quântica da transformada de Fourier, apropriadamente chamada de transformada de Fourier quântica, forma a base de alguns dos algoritmos quânticos mais importantes.
Hoje, após uma revisão da transformada de Fourier clássica, falaremos sobre como implementamos a transformada de Fourier quântica em um computador quântico. Em seguida, discutiremos uma das aplicações da transformada de Fourier quântica a um algoritmo chamado algoritmo de estimativa de fase. A estimativa de fase quântica é uma sub-rotina do famoso algoritmo de fatoração de Shor, que às vezes é chamado de "joia da coroa" da computação quântica. Este módulo é um passo em direção a outro módulo totalmente dedicado ao algoritmo de Shor, mas também foi pensado para ser independente. A transformada de Fourier quântica é um algoritmo fascinante e útil por si só!
A transformada de Fourier clássica
Antes de mergulharmos na transformada de Fourier quântica, vamos primeiro nos lembrar da versão clássica. A transformada de Fourier é um método de transformar de uma chamada "base" para outra. Você pode pensar em duas bases como perspectivas diferentes do mesmo problema — ambas são formas válidas de expressar uma função, mas uma ou outra pode ser mais esclarecedora, dependendo do problema em questão. Alguns exemplos de pares de bases conectados pela transformada de Fourier são posição e momento, e tempo e frequência.
Vamos ver um exemplo de como a transformada de Fourier pode nos ajudar a descobrir qual nota um instrumento está tocando com base em sua forma de onda de áudio. Normalmente, vemos as formas de onda representadas na base temporal — ou seja, a amplitude da onda é expressa como uma função do tempo.

Podemos aplicar a transformada de Fourier a esta forma de onda para passar da base temporal para a base de frequências:

Na base de frequências, podemos ver claramente um pico em torno de 260 Hz. Isso é um dó central!
Agora, talvez você tenha conseguido identificar que um dó central estava sendo tocado sem usar a transformada de Fourier, mas e se várias notas forem tocadas ao mesmo tempo? Nesse caso, a forma de onda se torna mais complexa quando a plotamos na base temporal:

Mas o espectro de frequências identifica claramente três picos:

Este era um acorde de dó maior, tocando as notas dó, mi e sol.
Este tipo de análise de Fourier pode nos ajudar a extrair os componentes de frequência de qualquer tipo de sinal complexo.
Transformada discreta de Fourier
A transformada de Fourier é útil para diversas aplicações de processamento de sinais. Mas na maioria dessas aplicações do mundo real (incluindo o exemplo musical que usamos acima), queremos transformar um conjunto discreto de pontos de dados — não uma função contínua. Nesse caso, usamos a transformada de Fourier discreta. A transformada discreta de Fourier (TDF) atua em um vetor e o mapeia para o vetor de acordo com a fórmula:
onde tomamos . (Note que existem outras convenções que têm um sinal negativo no expoente, portanto, tenha cuidado ao encontrar a TDF na prática.) Lembre-se de que é uma função periódica, com período . Portanto, ao multiplicar por esta função, a transformada de Fourier é essencialmente uma maneira de decompor a função (discreta) em uma combinação linear de suas funções periódicas constituintes, cada uma com período .
A transformada de Fourier quântica
Agora, vimos como a transformada de Fourier é usada para representar uma função como uma combinação linear de um novo conjunto das chamadas "funções de base". Transformações de base também são feitas regularmente em estados de qubits. Por exemplo, o estado de um único qubit pode ser expresso na base computacional , com estados de base e , ou na base com estados de base e . Ambas são igualmente válidas, mas uma pode ser mais natural que a outra, dependendo do tipo de problema que você está tentando resolver.
Os estados de qubits também podem ser expressos na base de Fourier, onde um estado é expresso em termos de uma combina ção linear dos estados de base de Fourier , em vez dos estados de base computacional usuais, . Para isso, você precisa aplicar uma transformada de Fourier quântica (TFQ):
com como acima, e é o número de estados de base em seu sistema quântico. Note que, como estamos trabalhando com qubits, qubits fornecem estados de base, então . Aqui, os estados de base são escritos como um único número , onde vai de a , mas você pode vê-los mais comumente expressos como , , , ..., , onde cada dígito binário representa o estado do qubit 0 ao , da direita para a esquerda. Há uma maneira fácil de converter esses estados binários em um único número: basta tratá-los como números binários! Assim, , , , , e assim por diante, até .
Desenvolva intuição para os estados de base de Fourier
Então, acabamos de revisar quais são os estados de base computacional e como eles são ordenados: são o conjunto de estados onde cada qubit está em ou , e os ordenamos do estado onde todos os qubits são , , até o estado onde todos são , .
Mas como podemos entender os estados de base de Fourier? Todos os estados de base de Fourier são superposições iguais de todos os estados de base computacional, mas cada estado difere dos outros pela periodicidade na fase dos componentes. Para entender isso de forma mais concreta, vamos analisar os quatro estados de base de Fourier de um sistema de dois qubits. O estado de Fourier mais baixo é aquele cuja fase não varia:
Podemos visualizar este estado plotando a amplitude complexa de cada um dos termos. A linha vermelha guia o olho para mostrar como a fase desta amplitude gira em torno do plano complexo em função do estado de base computacional. Para , a fase permanece constante:

O próximo estado de base de Fourier é aquele cujas fases dos componentes giram de a exatamente uma vez:
E podemos ver essa rotação no gráfico de amplitude complexa versus estado de base computacional:

Então, cada estado tem uma fase que é radianos maior do que o estado anterior quando ordenados da forma padrão, já que neste exemplo temos quatro estados de base (). O próximo estado de base gira de 0 a duas vezes:

Por fim, o componente de Fourier mais alto é aquele com a fase que varia mais rapidamente. Em nosso exemplo com dois qubits, é aquele cujas fases giram de 0 a três vezes: