¿Por qué la Transformada discreta de Fourier se puede implementar eficientemente como un circuito cuántico?


17

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 .N=2nO(n2n)O(n2)

¿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 N

y=DFTx,DFTjk1Nexp(2πiNjk).

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.|xk=1Nxk|k|yk=1Nyk|k

|y=DFT|x=QFT|x.
  1. Una primera simplificación parece provenir del hecho de que, debido a la linealidad de QM, podemos centrarnos en los estados básicos |j,j=1,...,N , con la evolución de los vectores generales |x luego viene gratis.
  2. Si N=2n , se puede expresar |j en la base dos, teniendo |j=|j1,...,jn .
  3. En el algoritmo QFT estándar, uno explota el hecho de que la transformación puede escribirse como
    El |j1,...,jnorte2-norte/ /2l=1norte[El |0 0+Exp(2πyo(0.jnorte-l+1jnorte))El |1],
    que luego puede implementarse como un circuito cuántico de la forma
    QFTEl |j1,...,jnorte=(k=1norteUk)El |j1,...,jnorte,
    donde Uk se implementa con O(norte) 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 .UN

El |y=UNEl |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?


1
La estructura recursiva de la QFT con número de qubits parece contribuir a esa eficiencia.
AHusain

Respuestas:


12

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.

Xk=norte=0 0norte-1Xnorte.mi±2πyoknortenorte

Supongamos, que está dado que y x = ( 1 2 - i - i - 1 + 2 i ) .norte=4 4x=(12ii1+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:XXx

M=1N(11111ww2w31w2w4w61w3w6w9)

donde es e - 2 π iw . Cada elemento de la matriz es básicamentewij. 1e2πiNwij es simplemente una constante de normalización.1N

Finalmente, resulta ser: 1X.12(222i2i4+4i)

Ahora, siéntese un momento y observe algunas propiedades importantes:

  • Todas las columnas de la matriz son ortogonales entre sí.M
  • Todas las columnas de tienen magnitud 1 .M1
  • Si publicas multiplicar con un vector de columna que tiene muchos ceros (extensión grande), terminarás con un vector de columna con solo unos pocos ceros (extensión estrecha). Lo contrario también es cierto. (¡Cheque!)M

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)XNNX


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 .NN/2DFT88w8=1

ingrese la descripción de la imagen aquí

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.jj+4jj+4

ingrese la descripción de la imagen aquí

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 ).jkwjkwj+N/2=wjwn/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 )w2jkww2N/2jkw2jkDFT(N/2)DFTNf(x). Podemos escribir las manipulaciones anteriores como una ecuación que calcula el término de orden j f ( j ) .f^(j)

ingrese la descripción de la imagen aquí

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.DFTNDFT(N/2)DFT(N/4)N=2nnDFTNNDFT1=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.10QFT(N/2)QFT(N/2)n1

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.jwj10

ingrese la descripción de la imagen aquí

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 ) .wjjkj=2kn1QFTNQFT(N/2)

ingrese la descripción de la imagen aquí

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 logQFT3QFT3QFT2QFT2QFT1RϕQFT2QFTQFTN

i=1log(N)i=log(N)(log(N)+1)/2=O(log2N)

Fuentes:

  1. https://en.wikipedia.org/wiki/Discrete_Fourier_transform

  2. https://en.wikipedia.org/wiki/Quantum_Fourier_transform

  3. 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.


Con respecto a la estructura recursiva: uno podría tomar eso más o menos por definición. Si desea hablar sobre la escala de un algoritmo, necesita una familia de circuitos para entradas de diferentes tamaños. La forma en que esto se hace normalmente es construir el circuito para el tamaño n + 1 fuera del circuito para el tamaño n. Lo que realmente no estoy viendo aquí es alguna idea que pueda dar alguna orientación con respecto a otros algoritmos posibles (no es que yo afirma que es algo fácil de hacer)
DaftWullie

@DaftWullie "Lo que realmente no estoy viendo aquí es ninguna idea que pueda dar alguna orientación con respecto a otros algoritmos posibles (no es que afirme que es algo fácil de hacer)" ¡Bueno, sí! He estado pensando en eso también. Esta es más una respuesta preliminar. Agregaré más cuando llegue a aprender un poco más (y cuando tenga más tiempo libre). Estaría muy contento de ver respuestas alternativas a esta pregunta. :-)
Sanchayan Dutta

El hecho de que tenga una secuencia de problemas no significa que uno le dé el algoritmo para el siguiente (y mucho menos uno bueno). Es típico porque generalmente pensamos en buenas funciones. Ser recursivo de una manera tan simple es una propiedad de una secuencia de problemas. Aquí lo que quiero decir es que existe una factorización . Usando esta pregunta para diagnosticar si una secuencia U tiene las mismas propiedades de eficiencia. Un=Un1xU
AHusain

Hola, en QFT, ¿se supone implícitamente que a, digamos 8 x 1, el vector de entrada x_classical está codificado en amplitud con 3 qubits? ¿Entonces las operaciones QFT se realizan en los qubits codificados? Además, ¿puede por favor elaborar "... y recombinar lo impar e incluso apropiadamente aplicando el Hadamard al bit menos significativo"?
Abdullah Ash- Saki

10

F2n=12nk,x{0,1}nexp(iQ(k,x))|kx|,
where Q(z)=1jk2nθj,kzjzk is a quadratic form defined on 2n-bit strings. The quantum Fourier transform in particular involves a quadratic form whose angles are given by
θj,k={π/22njk,if 1jn<k2nj+10,otherwise.
The structure of these angles has an important feature, which allows the QFT to be easily realised as a unitary circuit:
  1. There is a function f:{1,2,,n}{n+1,n+2,,2n} such that θj,k=π for each 1jn (where f(j)=2nj+1 in the case of the QFT);
  2. For any 1h,jn for which θh,f(j)0, we have θj,f(h)=0.

We may think of the indices of z=(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).


No estoy seguro de entender completamente. ¿Está diciendo que cualquier evolución representada como una expansión de forma cuadrática con una forma cuadrática que satisfaga esas dos condiciones puede implementarse de manera eficiente? Muy interesante
glS

@gIS: yes, and furthermore the structure is essentially the same as the Coppersmith QFT circuit (or rather, the fact that the QFT has that form is why the Coppersmith circuit structure suffices to realise the QFT).
Niel de Beaudrap

8

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 group G, 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 gG and kK, f(g)=f(gk). 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 of log|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,

1|G|gG|g|0,
and perform the function evaluation
1|G|g|g|f(g)=1|G|gKkK|gk|f(g),
where K is defined such that by taking each element and combining with the members of K yields the whole group G (i.e. each member of K creates a different coset, yielding distinct values of f(g)), and is known as the orthogonal subgroup. Tracing over the second register,
1|K|gKk,kK|gkgk|.
Now we perform the Fourier Transform over the group G, giving the output state
|K||G|gK|gg|.
Each of the vectors |gK has a probability of |K|/|G| of being found, and all others have 0 probability. Once the generators of K have been determined, we can figure out the generators of K via some linear algebra.

3

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.


Interesante, gracias. ¿Podría incluir un boceto del argumento en la respuesta, si es posible?
glS

1
What I presented already is my version of a " sketch". If you want to delve more deeply, with equations and pictures, it's best to go to the arxiv ref given at the end
rrtucci
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.