¿Cómo funciona la transformación cuántica de Fourier?

La Transformada Cuántica de Fourier funciona igual que la Transformada Clásica de Fourier, sin embargo, tiene aplicaciones muy profundas y elegantes en algoritmos cuánticos exponencialmente rápidos sin contrapartes clásicas que nos llevan a creer en la potencial superioridad de las computadoras cuánticas.

Más:
La transformada de Fourier clásica mapea el vector [matemática] x [/ matemática] de números complejos [matemática] x_ {1}, x_ {2}, x_ {n} [/ matemática]
en el vector [matemática] y [/ matemática] de números complejos [matemática] y_ {1}, y_ {2}, y_ {n} [/ matemática] a través de la receta

[matemáticas] y_ {k} = \ frac {1} {\ sqrt {N}} \ sum_ {j = 0} ^ {N-1} x_ {j}
e ^ {\ frac {2 \ pi jk} {N}} [/ matemáticas]

La transformación cuántica de Fourier hace más o menos lo mismo. Sin embargo, actúa sobre estados cuánticos: versiones cuánticas de los vectores que vimos en el caso clásico.

Por lo tanto, un vector de base cuántica [math] | j> [/ math] se mapea en

[matemáticas] \ frac {1} {\ sqrt {N}} \ sum_ {j = 0} ^ {N-1}
e ^ {\ frac {2 \ pi jk} {N}} | k \ rangle [/ math]

Usando esto podemos ver que el estado arbitrario

[math] \ sum_ {j = 0} ^ {N-1} x_ {j} | j \ rangle [/ math] se asigna a [math] \ sum_ {k = 0} ^ {N-1} y_k | k \ rangle [/ matemáticas]

Dónde
[matemáticas] y_ {k} = \ frac {1} {\ sqrt {N}} \ sum_ {j = 0} ^ {N-1} x_ {j}
e ^ {\ frac {2 \ pi jk} {N}} [/ math] (es decir, los estados arbitrarios están relacionados por una transformada de Fourier)

La Transformada Cuántica de Fourier se puede escribir explícitamente como el operador:

[matemáticas] F = \ frac {1} {\ sqrt {N}} \ sum_ {j, k} ^ {N-1} e ^ {\ frac {2 \ pi jk} {N}}
| k \ rangle \ langle j | [/ math]

Propiedades y aplicaciones

La transformación cuántica de Fourier se puede implementar físicamente
Una cosa clave a tener en cuenta aquí es que la Transformada Cuántica de Fourier es unitaria y, por lo tanto, puede implementarse a través de procesos físicos coherentes, es decir, qubits en una computadora cuántica [1].

Al alinear los qubits en el circuito cuántico apropiado (tal como se podría alinear las puertas lógicas clásicas) se puede calcular la Transformación Cuántica de Fourier.

La transformación cuántica de Fourier se implementa de manera más eficiente en una computadora cuántica

Una diferencia importante entre las transformadas de Fourier cuántica y clásica es que solo necesitamos puertas [matemáticas] O (n ^ 2) [/ matemáticas] para implementar la transformación cuántica de Fourier mientras que la secuencia equivalente de [matemáticas] 2 ^ n [/ matemáticas] Las amplitudes clásicas requieren compuertas [matemáticas] O (n2 ^ n) [/ matemáticas]. Esta es una ganancia exponencial en eficiencia.

Sin embargo, la Computadora Quantum es solo más eficiente en el cálculo de las Transformaciones Cuánticas de Fourier y no las Transformaciones Clásicas de Fourier. Por lo tanto, la Transformación Cuántica de Fourier no necesariamente proporciona aceleraciones directas para problemas clásicos que requieren una Transformada de Fourier.

La transformación cuántica de Fourier está en el corazón de los algoritmos cuánticos que resuelven problemas que las computadoras clásicas no pueden resolver.

Aunque la ganancia exponencial no se puede usar directamente para obtener aceleraciones en problemas clásicos, la eficiencia de calcular la Transformación Cuántica de Fourier en una Computadora Cuántica se puede aprovechar de manera más sutil.
En particular, se puede demostrar que el problema de encontrar [matemáticas] r [/ matemáticas]: el menor entero tal que [matemáticas] x ^ {r} = 1 (mod N) con 0 <x <N [/ matemáticas] donde [matemáticas] x [/ matemáticas] y [matemáticas] N [/ matemáticas] no tienen factores comunes. es equivalente al problema de factorización prima.

Armado con la Transformación Cuántica de Fourier y la equivalencia de encontrar y ordenar factores, uno puede encontrar un algoritmo [matemático] O (n ^ 2 \ log n \ log \ log n) [/ matemático] para factorizar un número entero (bueno, al menos Peter Shor Can :)). Esto es exponencialmente más rápido que el algoritmo clásico más conocido: el tamiz de campo numérico que se ejecuta en [matemáticas] O (\ exp (cn ^ {1/3} (\ log n) ^ {2/3})) [/ matemáticas] tiempo [2].

Es bien sabido que este hecho de que los algoritmos cuánticos pueden encontrar factores primos de manera eficiente representa una amenaza para la criptografía RSA estándar.

Nuevamente: matemáticamente, la Transformación Cuántica de Fourier funciona de manera muy similar a la transformada clásica de Fourier, sin embargo, tiene implicaciones y aplicaciones de largo alcance en la búsqueda de algoritmos cuánticos eficientes que no tienen contrapartes clásicas eficientes.

[1] “La transformación es unitaria” significa que cuando transforma un vector cuántico de Fourier no cambia la magnitud del vector
[2] En esta sección (a diferencia de la primera sección que trata solo con la transformada de Fourier) “n” se refiere a la longitud de bits del número que estamos factorizando.

Debo Olaosebikan te da una buena respuesta independiente y bien escrita. Añadiré un comentario relacionado con “¿por qué deberíamos preocuparnos por el Fourier cuántico”?

En los algoritmos cuánticos, el objetivo es usar interferencia destructiva para eliminar el árbol de estados qubit en expansión a medida que el algoritmo avanza. Recuerde que cada vez que opera en una computadora cuántica, forma un producto tensor que aumenta la dimensión de superposición.

La Transformada cuántica de Fourier es el operador unitario que explora todas las opciones de poda posibles a la vez.

Vea la respuesta de Jameson Quinn a ¿Cómo funciona la computación cuántica? ¿Qué lo hace diferente del paradigma informático actual? ¿Qué tipo de problemas podría ayudar a resolver la computación cuántica? ¿Cómo se realiza la corrección de errores? para una descripción menos matemática del algoritmo de Shor, incluida la función del paso cuántico FFT.

More Interesting

¿Qué algoritmos se utilizan para el proceso de aprendizaje automático de Yandex?

¿Existen buenos libros o recursos para resolver problemas y algoritmos en C #, para la preparación de entrevistas SDET?

¿Dónde puedo aprender los algoritmos de clasificación y búsqueda?

Cómo usar estructuras de datos como listas enlazadas en preguntas de entrevistas de Javascript

¿Cómo funciona el 'algoritmo tabula rasa' de AlphaGo Zero?

Quiero aprender la estructura de datos y Java, ¿cuál debería aprender primero?

¿Mejorará la velocidad de búsqueda y clasificación de algoritmos o hemos alcanzado el límite?

Como senior que busca postularse a empresas como Google, Palantir, etc., ¿cómo puedo mejorar mis estructuras de datos avanzadas, algoritmos y cursos de bioinformática y tener más confianza en mí mismo al ingresar a un aula y no pensar automáticamente que soy estúpido? ?

Cómo resolver UVA 10407

Quiero comenzar un proyecto de programación. ¿Cuáles son algunas sugerencias al respecto?

Cómo calcular dos nodos distantes mínimos a partir de dos conjuntos de nodos en un gráfico

¿Cuánta competencia en la estructura de datos y el algoritmo es más que suficiente para ingresar a Google / Facebook y cuál debería ser la estrategia de 4 meses para aprenderlo?

¿Escribir un algoritmo simple para verificar si el número dado es primo o no?

¿Cuál es la complejidad de T (n) = 2T (n-3)?

¿Puedo obtener un enlace a algunas buenas preguntas de programación dinámica 3-D?