Es un resultado bien conocido que la Transformada discreta de Fourier (DFT) de números tiene complejidad con el algoritmo más conocido , mientras realiza la transformación de Fourier de las amplitudes de un estado cuántico, con el algoritmo QFT clásico , solo requiere puertas elementales .
¿Hay alguna razón conocida por la cual este es el caso? Con esto quiero decir si hay características conocidas del DFT que hacen posible implementar una "versión cuántica" eficiente.
De hecho, un DFT sobre vectores dimensionales puede considerarse como la operación lineal
La "versión cuántica" de este problema es la tarea de, dado un estado cuántico , obteniendo el estado de salida | \ boldsymbol y \ rangle \ equiv \ sum_ {k = 1} ^ N y_k | k \ rangle tal que | \ boldsymbol y \ rangle = \ operatorname {DFT} | \ boldsymbol x \ rangle = \ operatorname {QFT} | \ boldsymbol x \ rangle.
- Una primera simplificación parece provenir del hecho de que, debido a la linealidad de QM, podemos centrarnos en los estados básicos , con la evolución de los vectores generales luego viene gratis.
- Si , se puede expresar en la base dos, teniendo .
- En el algoritmo QFT estándar, uno explota el hecho de que la transformación puede escribirse como
que luego puede implementarse como un circuito cuántico de la formadonde se implementa con puertas elementales.
Supongamos que tenemos ahora una transformación unitaria , y queremos encontrar un circuito que implemente eficientemente la transformación cuántica equivalente Los primeros dos trucos mencionados anteriormente siempre se pueden aplicar, pero no es trivial cuándo y cómo se puede usar el otro punto para obtener resultados de eficiencia como los que tenemos para el QFT.| y ⟩ = A | x ⟩ .
¿Existen criterios conocidos para que esto sea cierto? O, en otras palabras, ¿es posible precisar con precisión cuáles son las características de la DFT que permiten implementar eficientemente la transformación cuántica asociada?
Respuestas:
Introducción a la transformada de Fourier discreta clásica:
La DFT transforma una secuencia de números complejos { x n } : = x 0 , x 1 , x 2 , . . . , X N - 1 en otra secuencia de números complejos { X k } : = X 0 , X 1 , X 2 , . . . que se define por X k = N - 1 ∑norte { xnorte} : = x0 0, x1, x2, . . . , xnorte- 1 { Xk} : = X0 0, X1, X2, . . . Podríamos multiplicar por constantes de normalización adecuadas según sea necesario. Además, si tomamos el signo más o menos en la fórmula depende de la convención que elijamos.
Supongamos, que está dado que y x = ( 1 2 - i - i - 1 + 2 i ) .norte= 4 x = ⎛⎝⎜⎜⎜12 - i- yo−1+2i⎞⎠⎟⎟⎟
Tenemos que encontrar el vector columna . El método general ya se muestra en la página de Wikipedia . Pero desarrollaremos una notación matricial para el mismo. X se puede obtener fácilmente multiplicando previamente x por la matriz:X X x
donde es e - 2 π iw . Cada elemento de la matriz es básicamentewij. 1e−2πiN wij es simplemente una constante de normalización.1N√
Finalmente, resulta ser: 1X .12⎛⎝⎜⎜⎜2−2−2i−2i4+4i⎞⎠⎟⎟⎟
Ahora, siéntese un momento y observe algunas propiedades importantes:
Se puede notar muy simplemente que el DFT clásico tiene una complejidad temporal . Esto se debe a que para obtener cada fila de X , se deben realizar N operaciones. Y hay N filas de X .O(N2) X N N X
La transformada rápida de Fourier:
Ahora, echemos un vistazo a la transformación rápida de Fourier. La transformación rápida de Fourier utiliza la simetría de la transformación de Fourier para reducir el tiempo de cálculo. En pocas palabras, reescribimos la transformada de Fourier de tamaño como dos transformadas de Fourier de tamaño N / 2 , los términos pares e impares. Luego repetimos esto una y otra vez para reducir exponencialmente el tiempo. Para ver cómo funciona esto en detalle, pasamos a la matriz de la transformada de Fourier. Mientras pasamos por esto, puede ser útil tener DFT 8 frente a usted para echar un vistazo. Tenga en cuenta que los exponentes se han escrito módulo 8 , ya que w 8 = 1 .N N/2 DFT8 8 w8=1
Observe cómo la fila es muy similar a la fila j + 4 . Además, observe cómo la columna j es muy similar a la columna j + 4 . Motivados por esto, vamos a dividir la transformación de Fourier en sus columnas pares e impares.j j+4 j j+4
En el primer cuadro, hemos representado la matriz completa de la transformada de Fourier describiendo la fila y la columna k : w j k . En el siguiente cuadro, separamos las columnas pares e impares, y de manera similar separamos el vector que se va a transformar. Debes convencerte de que la primera igualdad es realmente una igualdad. En el tercer cuadro, agregamos un poco de simetría al notar que w j + N / 2 = - w j (ya que w n / 2 = - 1 ).j k wjk wj+N/2=−wj wn/2=−1
Observe que tanto el lado impar como el lado par contienen el término . Pero si w es la enésima raíz primitiva de la unidad, entonces w 2 es la raíz N / 2 primitiva de la unidad. Por lo tanto, las matrices cuya entrada j , k es w 2 j k son realmente solo DFT ( N / 2 ) . Ahora podemos escribir DFT N de una manera nueva: supongamos que estamos calculando la transformada de Fourier de la función f ( x )w2jk w w2 N/2 j k w2jk DFT(N/2) DFTN f(x) . Podemos escribir las manipulaciones anteriores como una ecuación que calcula el término de orden j f ( j ) .f^(j)
Nota: QFT en la imagen solo significa DFT en este contexto. Además, M se refiere a lo que llamamos N.
Esto convierte nuestro cálculo de en dos aplicaciones de DFT ( N / 2 ) . Podemos convertir esto en cuatro aplicaciones de DFT ( N / 4 ) , y así sucesivamente. Mientras N = 2 n para algún n , podemos desglosar nuestro cálculo de DFT N en N cálculos de DFT 1 = 1 . Esto simplifica enormemente nuestro cálculo.DFTN DFT(N/2) DFT(N/4) N=2n n DFTN N DFT1=1
En el caso de la transformación rápida de Fourier, la complejidad del tiempo se reduce a (intente probar esto usted mismo). ¡Esta es una gran mejora con respecto al DFT clásico y prácticamente el algoritmo de última generación utilizado en los sistemas de música modernos como su iPod!O(Nlog(N))
La transformación cuántica de Fourier con puertas cuánticas:
La fortaleza de la FFT es que podemos utilizar la simetría de la transformada discreta de Fourier para nuestra ventaja. La aplicación de circuito de QFT utiliza el mismo principio, pero debido al poder de superposición, QFT es aún más rápido.
El QFT está motivado por el FFT, por lo que seguiremos los mismos pasos, pero debido a que este es un algoritmo cuántico, la implementación de los pasos será diferente. Es decir, primero tomamos la transformada de Fourier de las partes pares e impares, luego multiplicamos los términos impares por la fase .wj
En un algoritmo cuántico, el primer paso es bastante simple. Los términos pares e impares están juntos en superposición: los términos impares son aquellos cuyo bit menos significativo es , y los pares con 0 . Por lo tanto, podemos aplicar QFT ( N / 2 ) a los términos pares e impares juntos. Hacemos esto aplicando simplemente aplicaremos QFT ( N / 2 ) a los n - 1 bits más significativos, y recombinamos los pares e impares aplicando el Hadamard al bit menos significativo.1 0 QFT(N/2) QFT(N/2) n−1
Ahora, para llevar a cabo la multiplicación de fase, necesitamos multiplicar cada término impar por la fase w j . Pero recuerde, un número impar en binario termina con un 1 mientras que un par termina con un 0 . Por lo tanto, podemos usar el cambio de fase controlado, donde el bit menos significativo es el control, para multiplicar solo los términos impares por la fase sin hacer nada a los términos pares. Recuerde que el cambio de fase controlado es similar a la puerta CNOT, ya que solo aplica una fase al objetivo si el bit de control es uno.j wj 1 0
Nota: En la imagen, M se refiere a lo que llamamos N.
La fase asociada con cada cambio de fase controlado debe ser igual a donde j está asociado al k -bit por j = 2 k . Por lo tanto, aplique el cambio de fase controlado a cada uno de los primeros n - 1 qubits, con el bit menos significativo como control. Con el cambio de fase controlado y la transformación de Hadamard, QFT N se ha reducido a QFT ( N / 2 ) .wj j k j=2k n−1 QFTN QFT(N/2)
Nota: En la imagen, M se refiere a lo que llamamos N.
Ejemplo:
Vamos a construir . Siguiendo el algoritmo, convertiremos QFT 3 en QFT 2 y algunas puertas cuánticas. Luego, de esta manera, convertimos QFT 2 en QFT 1 (que es solo una puerta Hadamard) y otras pocas puertas. Las puertas de fase controlada estarán representadas por R ϕ . Luego, ejecute otra iteración para deshacerse de QFT 2 . Ahora debería poder visualizar el circuito para QFT en más qubits fácilmente. Además, puede ver que el número de puertas necesarias para llevar a cabo la QFT N que necesita es exactamente logQFT3 QFT3 QFT2 QFT2 QFT1 Rϕ QFT2 QFT QFTN
Fuentes:
https://en.wikipedia.org/wiki/Discrete_Fourier_transform
https://en.wikipedia.org/wiki/Quantum_Fourier_transform
Mecánica cuántica y MOOC de computación cuántica (UC BerkeleyX) - Notas de la conferencia: Capítulo 5
PD: Esta respuesta está en su versión preliminar. Como @DaftWillie menciona en los comentarios, no entra mucho en " ninguna idea que pueda dar alguna orientación con respecto a otros algoritmos posibles ". Animo respuestas alternativas a la pregunta original. Personalmente, necesito leer un poco y buscar recursos para poder responder a ese aspecto de la pregunta.
fuente
We may think of the indices ofz=(k,x)∈{0,1}2n as input and output wires of a quantum circuit, where our task is to show what the circuit in the middle is which shows how the inputs connect to the outputs. The function f above allows us to see the association of output wires to input wires, that in each case there is a Hadamard gate which connects the two ends together, and that apart from the Hadamards (and SWAP gates which accounts for the reversal of in the order of the indices between (1,2,…,n) and (f(1),f(2),…,f(n)) ), all of the other operations are two-qubit controlled-phase gates for relative phases of exp(iθj,k) . The second condition on f serves to ensure that these controlled-phase gates can be given a well-defined time ordering.
There are more general conditions which one could describe for when a quadratic form expansion gives rise to a realisable circuit, along similar lines. The above describes one of the simplest cases, in which there are no indices in the sum except for those for the standard basis of the input and output states (in which case the coefficients of the associated unitary all have the same magnitude).
fuente
This is deviating a little from the original question, but I hope gives a little more insight that could be relevant to other problems.
One might ask "What is it about order finding that lends itself to efficient implementation on a quantum computer?". Order Finding is the main component of factoring algorithms, and includes the Fourier transform as part of it.
The interesting thing is that you can put things like order finding, and Simon's problem, in a general context called the "Hidden Subgroup Problem".
Let us take a groupG , with elements indexed by g , and a group operation '⊕ '. We are given an oracle that evaluates the function f(g) , and we are assured that there is a subgroup, K , of G with elements k such that for all g∈G and k∈K , f(g)=f(g⊕k) . It is our task to uncover the generators of the subgroup K . For example, in the case of Simon's problem, the group G is all n -bit numbers, and the subgroup K is a pair of elements {0,s} . The group operation is bitwise addition.
Efficient solutions (that scale as a polynomial oflog|G| ) exist if the group G is Abelian, i.e. if the operation ⊕ is commutative, making use of the Fourier Transform over the relevant group. There are well-established links between the group structure (e.g. {0,1}n,⊕ ) and the problem that can be solved efficiently (e.g. Simon's problem). For example, if we could solve the Hidden Subgroup Problem for the symmetric group, it would help with the solution of the graph isomorphism problem. In this particular case, how to perform the Fourier Transform is known, although this in itself is not sufficient for creating an algorithm, in part because there is some additional post-processing that is required. For example, in the case of Simon's Problem, we required multiple runs to find enough linearly independent vectors to determine s . In the case of factoring, we were required to run a continued fractions algorithm on the output. So, there's still some classical post-processing that has to be done efficiently, even once the appropriate Fourier transform can be implemented.
Some more details
In principle, the Hidden Subgroup Problem for Abelian groups is solved as follows. We start with two registers,|0⟩|0⟩ , and prepare the first in a uniform superposition of all group elements,
fuente
One of many possible constructions that gives some insight into this question, at least to me, is as follows. Using the CSD (cosine-sine decomposition), you can expand any unitary operator into a product of efficient gates V that fit nicely into a binary tree pattern. In the case of the QFT, that binary tree collapses to a single branch of the tree, all the V not in the branch are 1.
Ref: Quantum Fast Fourier Transform Viewed as a Special Case of Recursive Application of Cosine-Sine Decomposition, by myself.
fuente