Transformada de Fourier cuántica
Para este módulo de Qiskit en el aula, los estudiantes deben tener un entorno de Python funcional con los siguientes paquetes instalados:
qiskitv2.1.0 o más recienteqiskit-ibm-runtimev0.40.1 o más recienteqiskit-aerv0.17.0 o más recienteqiskit.visualizationnumpypylatexenc
Para configurar e instalar los paquetes anteriores, consulta la guía Instalar Qiskit. Para poder ejecutar trabajos en computadoras cuánticas reales, los estudiantes necesitarán crear una cuenta en IBM Quantum® siguiendo los pasos de la guía Configura tu cuenta de IBM Cloud.
Este módulo fue probado y utilizó 13 segundos de tiempo de QPU. Esta es una estimación de buena fe; tu uso real puede 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'
Introducción
La transformada de Fourier es una herramienta omnipresente con aplicaciones en matemáticas, física, procesamiento de señales, compresión de datos y un sinfín de otros campos. Una versión cuántica de la transformada de Fourier, acertadamente llamada transformada de Fourier cuántica, constituye la base de algunos de los algoritmos cuánticos más importantes.
Hoy, tras repasar brevemente la transformada de Fourier clásica, hablaremos de cómo implementamos la transformada de Fourier cuántica en una computadora cuántica. Luego, analizaremos una de las aplicaciones de la transformada de Fourier cuántica a un algoritmo llamado algoritmo de estimación de fase. La estimación de fase cuántica es una subrutina del famoso algoritmo de factorización de Shor, que a veces se describe como la "joya de la corona" de la computación cuántica. Este módulo sirve de preparación para otro módulo dedicado por completo al algoritmo de Shor, aunque también está pensado para ser independiente. ¡La transformada de Fourier cuántica es un algoritmo fascinante y útil por derecho propio!
La transformada de Fourier clásica
Antes de adentrarnos en la transformada de Fourier cuántica, recordemos la versión clásica. La transformada de Fourier es un método para pasar de una llamada "base" a otra. Puedes pensar en dos bases como dos perspectivas diferentes del mismo problema: ambas son formas válidas de expresar una función, pero una u otra puede resultar más esclarecedora según el problema en cuestión. Algunos ejemplos de pares de bases relacionadas por la transformada de Fourier son posición y momento, y tiempo y frecuencia.
Veamos un ejemplo de cómo la transformada de Fourier puede ayudarnos a determinar qué nota está tocando un instrumento a partir de su forma de onda de audio. Normalmente, vemos las formas de onda representadas en la base temporal, es decir, la amplitud de la onda se expresa como función del tiempo.

Podemos aplicar la transformada de Fourier a esta forma de onda para pasar de la base temporal a la base de frecuencias:

En la base de frecuencias, podemos ver claramente un pico en torno a 260 Hz. ¡Es un Do central!
Ahora bien, quizás habrías podido determinar que se estaba tocando un Do central sin necesidad de la transformada de Fourier, pero ¿qué ocurre si se tocan varias notas a la vez? Entonces la forma de onda se vuelve más complicada cuando la representamos en la base temporal:

Pero el espectro de frecuencias identifica claramente tres picos:

Ese era un acorde de Do mayor, tocando las notas Do, Mi y Sol.
Este tipo de análisis de Fourier puede ayudarnos a extraer los componentes de frecuencia de cualquier tipo de señal complicada.
Transformada de Fourier discreta
La transformada de Fourier es útil para multitud de aplicaciones de procesamiento de señales. Pero en la mayoría de estas aplicaciones del mundo real (incluido el ejemplo musical que utilizamos anteriormente), queremos transformar un conjunto discreto de puntos de datos, no una función continua. En este caso, usamos la transformada de Fourier discreta. La transformada de Fourier discreta (DFT) actúa sobre un vector y lo asigna al vector según la fórmula:
donde tomamos . (Ten en cuenta que existen otras convenciones que incluyen un signo negativo en el exponente, así que presta atención cuando veas la DFT en otros contextos.) Recuerda que es una función periódica con periodo . Por tanto, al multiplicar por esta función, la transformada de Fourier es esencialmente una forma de descomponer la función (discreta) en una combinación lineal de sus funciones periódicas constituyentes, cada una con periodo .
La transformada de Fourier cuántica
Así pues, hemos visto cómo la transformada de Fourier se utiliza para representar una función como combinación lineal de un nuevo conjunto de llamadas "funciones de base". Las transformaciones de base también se aplican regularmente a estados de qubits. Por ejemplo, el estado de un único Qubit puede expresarse en la base computacional , con estados base y , o en la base con estados base y . Ambas son igualmente válidas, pero una puede resultar más natural que la otra según el tipo de problema que estés tratando de resolver.
Los estados de Qubit también pueden expresarse en la base de Fourier, donde un estado se expresa en términos de una combinación lineal de los estados base de Fourier , en lugar de los estados base computacionales habituales . Para ello, debes aplicar una transformada de Fourier cuántica (QFT):
con como antes, y es el número de estados base en tu sistema cuántico. Ten en cuenta que, como ahora trabajamos con qubits, qubits te proporcionan estados base, por lo que . Aquí, los estados base se escriben como un único número donde va de a , aunque es más habitual ver los estados base expresados como , , , ..., , donde cada dígito binario representa el estado del Qubit 0 al , de derecha a izquierda. Hay una forma sencilla de convertir estos estados binarios a un único número: ¡simplemente trátalos como números binarios! Así, , , , , y así sucesivamente hasta .
Desarrolla la intuición sobre los estados base de Fourier
Acabamos de repasar qué son los estados base computacionales y cómo se ordenan: son el conjunto de estados donde cada Qubit está en o , y los ordenamos desde el estado en que todos los qubits son , , hasta el estado en que todos son , .
¿Pero cómo podemos interpretar los estados base de Fourier? Todos los estados base de Fourier son superposiciones iguales de todos los estados base computacionales, pero cada estado difiere de los demás en la periodicidad de la fase de sus componentes. Para entenderlo de forma más concreta, examinemos los cuatro estados base de Fourier de un sistema de dos qubits. El estado de Fourier más bajo es aquel cuya fase no varía en absoluto:
Podemos visualizar este estado representando la amplitud compleja de cada uno de los términos. La línea roja sirve de guía visual para mostrar cómo la fase de esta amplitud gira alrededor del plano complejo en función del estado base computacional. Para , la fase permanece constante:

El siguiente estado base de Fourier es aquel cuyas fases de los componentes giran desde hasta exactamente una vez:
Y podemos ver este giro en el gráfico de amplitud compleja frente al estado base computacional:

Así, cada estado tiene una fase radianes mayor que el estado anterior cuando se ordenan de la forma estándar, ya que en este ejemplo tenemos cuatro estados base (). El siguiente estado base gira de 0 a dos veces: