¿Por qué consideramos vectores de longitud N=2nN=2nN = 2^n para la Transformada Cuántica de Fourier?

Transformada de Fourier discreta

La transformada de Fourier discreta clásica actúa sobre un vector ( X 0 , X 1 , . . . , X norte 1 ) C norte y lo asigna a vector ( y 0 , y 1 , . . . , y norte 1 ) C norte según la fórmula

y k = 1 norte j = 0 norte 1 mi 2 π i j k norte X j ,
dónde k = 0 , 1 , 2 , . . . , norte 1 .

Mi entendimiento de esto es que estamos expresando el mismo vector en una nueva base (que tiene la misma cantidad de dimensiones que el original). Además, cada coeficiente que se encuentra junto al vector de la nueva base depende de cada coeficiente de la base original.

Transformada cuántica de Fourier

En Quantum Fourier Transform consideramos vectores de longitud norte = 2 norte . Entonces cada coeficiente se calcula de la siguiente manera

y k = 1 2 norte / 2 j = 0 2 norte 1 mi 2 π i j k 2 norte X j

La página Wiki ( https://en.wikipedia.org/wiki/Quantum_Fourier_transform ) da el siguiente ejemplo:

Considere la transformada cuántica de Fourier en 3 qubits. Es la siguiente transformación:

q F T : | X   1 2 3 j = 0 2 3 1 mi 2 π i X k 2 3 | k

No puedo entender la correspondencia entre el número de qubits norte necesario para expresar el estado cuántico y esto norte = 2 norte . Nielsen y Chuang en su libro "Quantum Computation and Quantum Information" también escriben que "debido a que tomamos norte = 2 norte tenemos la base | 0 , | 1 , . . . , | 2 norte 1 que es la base de cálculo para norte computadora cuántica qubit".

¿Puedes explicarme por qué cambiamos la base de | 0 , | 1 , . . . , | norte 1 a | 0 , | 1 , . . . , | 2 norte 1 ? Mi intuición me dice que ahora operamos en tales vectores ( X 0 , X 1 , . . . , X 2 norte 1 ) C 2 norte 1 , pero sé que esto está mal.

Esto no es particularmente exclusivo de la versión cuántica: la transformada rápida de Fourier (clásica) también tiene esta restricción y, con frecuencia, es mucho más rápida que la DFT estándar, por lo que es más económico rellenar su vector con ceros y usar la FFT en un entrada más larga que ejecutar la DFT directamente. También hay variaciones de la FFT que pueden reducir eso y mantener el O ( norte registro ( norte ) ) tiempo de ejecución, que potencialmente podría replicarse en el lado cuántico si ejecuta cosas en qudits (aunque no es que tenga mucho sentido explorarlos).
@EmilioPisanty Padding no da como resultado un FT sobre Z_N.
@EmilioPisanty no es que tenga mucho sentido explorarlos, aunque tal vez no en el contexto de la computación cuántica con qubits, pero hay aplicaciones interesantes de QFT (rápido) sobre qudits, consulte, por ejemplo, arxiv.org/abs/1508.00782
@Norbert de hecho no lo hace; en algunas aplicaciones la diferencia importa y en otras no. Si te importa la diferencia y realmente quieres una DFT sobre Z pag para pag un primo grande, entonces estás atascado con un algoritmo lento que ya está en el lado clásico.

Respuestas (1)

Esta es simplemente la diferencia entre preguntar cuál es la dimensionalidad de tu espacio norte (o equivalentemente el número de estados base), y cuántos bits (o qubits) norte tienes. Para cada (qu) bit, duplica el número de estados básicos distintos, por lo que la relación entre norte y norte es

norte = 2 norte .
contando desde 0 esto es j [ 0 , norte 1 ] = [ 0 , 2 norte 1 ] .

Como ejemplo, 3 qubits abarcan un espacio de dimensión 2 3 = 8 porque cada qubit en el estado base se puede representar mediante un binario 0 o 1 . Entonces los estados base son

| b 1 | b 2 | b 3 ,
dónde b metro es el metro el qubit, y se puede etiquetar como 0 o 1 en una base dada. En forma condensada podría escribir | 0 | 1 | 0 como | 010 , o podría numerar los estados para que este estado pueda escribirse como | 2 .

Todavía no lo entiendo bien. Pienso en los qubits de manera similar a los bits. por ej. podemos tener el número decimal j = 10 = (1010)_bin = 1*2^3 + 0*2^2 + 1*2^1 + 0*2^0 (donde está la notación binaria) _bin. Entonces, por analogía, ¿no sería la base para una computadora cuántica con n quibts como |2^0>, |2^1>, |2^2>, |2^3>?
Creo que lo estás consiguiendo. norte contra norte es solo el número de estados totales en una base frente al número de qubits. Esto es lo mismo clásicamente cuando se habla de la cantidad de bits frente a la cantidad de opciones posibles. He ampliado mi respuesta con un ejemplo para (con suerte) aclarar esto. Avíseme si todavía está confundido y ampliaré esto más.
Entonces, cuando decimos que tenemos una base en la forma |0>, |1>, ..., |2^n - 1> es como una lista de todos los estados cuánticos posibles, que se pueden representar en norte qubits? Entonces no es como la base ortonormal (que en nuestro caso está hecha de qubits), donde expresamos un vector en forma α | j 1 > + β | j 2 > + . . . + ω | j norte > ? ¿Quizás mi problema es sobre el mal uso de la palabra "base" en estos dos contextos?
Sin embargo, es una pregunta interesante si se puede hacer una QFT sobre Z_N para cualquier N.
@Ozaru Hay una cantidad infinita de estados posibles, pero una base (completa) se establece en estados linealmente independientes que se pueden usar para representar cualquier estado. Entonces, para un solo qubit, necesita dos estados para ser la base, por ejemplo | 0 y | 1 son una base que puede representar cualquier estado (puro) | ψ = α | 0 + β | 1 . Para norte qubits que necesitas 2 norte estados independientes para formar una base.
@NorbertSchuch Si tiene el control total de un sistema cuántico con norte o más grados de libertad, entonces puede hacer la QFT para cualquier norte . Si su dispositivo es una computadora cuántica universal que utiliza norte qubits tales que 2 norte > norte , simplemente no usa todos los estados. Esto no es diferente a las computadoras clásicas. El hecho de que tenga 4 Gb de RAM no significa que no pueda hacer cálculos con números mucho más pequeños. No tengo que usar todos mis recursos disponibles en todo momento.
@Punk_Physicist Así que comenzamos eligiendo norte qubits, en los que queremos trabajar, y para representarlos necesitamos 2 norte estados base? Como |0>, |1> para 1 s t qubit, |2>, |3> para 2 norte d qubit y así sucesivamente?
Si agrega un tercer qubit, necesita agregar 4 estados más, pero los estados | 4 , | 5 , | 6 , y | 7 no están asociados solo con qubit 3, por lo que tiene más sentido hablar sobre la cantidad de qubits (y la cantidad de estados es 2 norte ), en lugar de hablar de un número exponencial de estados posibles.
Creo que por fin lo entiendo, muchas gracias por todas las explicaciones :)
@Punk_Physicist Obviamente, la pregunta es si puedes hacer el QFT sobre Z norte para cualquier norte eficientemente _ ¿Es obvio? ¿Cuál sería el circuito?
@Punk_Physicist Capítulo 3 de arxiv.org/abs/quant-ph/0212002 analiza preguntas de este tipo. La respuesta general parece que esto no se puede hacer de manera eficiente en general (o, al menos, no está claro). Parece que hay versiones aproximadas, consulte el Capítulo 5.
@NorbertSchuch estuvo de acuerdo en que preguntar si esto es computable de manera eficiente es sin duda la pregunta más interesante/sutil. Como señalan la referencia que proporciona (y el comentario anterior de Emilio Pisanty), esto también es un poco complicado en los algoritmos FT clásicos. Sin embargo, en la práctica, esto generalmente no es demasiado molesto (por ejemplo, uno puede rellenar el vector con ceros para hacer que el tamaño norte = 2 norte )
@punk_physicist Padding no da como resultado un FT sobre Z_N.