Perché la trasformata discreta di Fourier può essere implementata in modo efficiente come circuito quantico?


17

È un risultato ben noto che la trasformata discreta di Fourier (DFT) di N=2n numeri ha complessità O(n2n) con l' algoritmo più noto , mentre esegue la trasformata di Fourier delle ampiezze di uno stato quantico, con il classico Algoritmo QFT , richiede solo porte elementari O(n2) .

C'è qualche motivo noto per cui questo è il caso? Con questo intendo se ci sono caratteristiche note del DFT che rendono possibile implementare una "versione quantistica" efficiente di esso.

In effetti, un vettore DFT su N dimensionale può essere pensato come l'operazione lineare

y=DFTx,DFTjk1Nexp(2πiNjk).

La "versione quantistica" di questo problema è il compito di, dato uno stato quantico |xk=1Nxk|k , ottenendo lo stato dell'uscita |yk=1Nyk|k tale che

|y=DFT|x=QFT|x.
  1. Una prima semplificazione sembra derivare dal fatto che, a causa della linearità del QM, possiamo concentrarci sugli stati di base |j,j=1,...,N , con l'evoluzione dei vettori generali poi venire gratis.|x
  2. Se , si può esprimere | j in base due, avendo | j = | j 1 , . . . , J n .N=2n|j|j=|j1,...,jn
  3. Nell'algoritmo QFT standard si sfrutta quindi il fatto che la trasformazione può essere scritta come
    |j1,...,jn2n/2l=1n[|0+exp(2πi(0.jnl+1jn))|1],
    che poi può essere implementato come circuito quantistico della forma dove U k è attuato con O ( n ) cancelli elementari.
    QFT|j1,...,jn=(k=1nUk)|j1,...,jn,
    UkO(n)

Supponiamo che ora abbiamo una trasformazione unitaria e che vogliamo trovare un circuito che implementa in modo efficiente la trasformazione quantistica equivalente | y = A | x . I primi due trucchi di cui sopra possono sempre essere applicati, ma non è poi banale quando e come l'altro punto può essere utilizzato per ottenere risultati di efficienza come quelli che abbiamo per il QFT.A

|y=A|x.

Ci sono criteri noti affinché ciò sia vero? O in altre parole, è possibile definire con precisione quali sono le caratteristiche del DFT che consentono di implementare in modo efficiente la trasformazione quantistica associata?


1
La struttura ricorsiva del QFT con il numero di qubit sembra contribuire a tale efficienza.
AHusain,

Risposte:


12

Introduzione alla classica trasformata discreta di Fourier:

La DFT trasforma una sequenza di numeri complessi { x n } : = x 0 , x 1 , x 2 , . . . , X N - 1 in un'altra sequenza di numeri complessi { X k } : = X 0 , X 1 , X 2 , . . . che è definito da X k = N - 1 N{xn}:=x0,x1,x2,...,xN1{Xk}:=X0,X1,X2,... Potremmo moltiplicare per costanti di normalizzazione adeguate, se necessario. Inoltre, se prendiamo il segno più o meno nella formula dipende dalla convenzione che scegliamo.

Xk=n=0N1xn.e±2πiknN

Supponiamo che sia dato che e x = ( 1 2 - i - i - 1 + 2 i )N=4x=(12ii1+2i) .

Abbiamo bisogno di trovare il vettore colonna . Il metodo generale è già mostrato sulla pagina di Wikipedia . Ma svilupperemo una notazione a matrice per lo stesso. X può essere facilmente ottenuto pre moltiplicando xXXx per la matrice:

M=1N(11111ww2w31w2w4w61w3w6w9)

dove è e - 2 π iw . Ogni elemento della matrice è fondamentalmentewij. 1e2πiNwij è semplicemente una costante di normalizzazione.1N

Alla fine, risulta essere: 1X.12(222i2i4+4i)

Ora, rilassati per un po 'e nota alcune proprietà importanti:

  • Tutte le colonne della matrice sono ortogonali tra loro.M
  • Tutte le colonne di hanno magnitudine 1 .M1
  • Se pubblichi la moltiplicazione con un vettore di colonna con molti zeri (grande diffusione) finirai con un vettore di colonna con solo pochi zeri (stretta). È vero anche il contrario. (Dai un'occhiata!)M

Si può semplicemente notare che il DFT classico ha una complessità temporale . Questo perché per ottenere ogni riga di X , è necessario eseguire N operazioni. E ci sono N righe in X .O(N2)XNNX


La trasformata di Fourier veloce:

Ora, diamo un'occhiata alla trasformata di Fourier veloce. La trasformata di Fourier veloce utilizza la simmetria della trasformata di Fourier per ridurre il tempo di calcolo. In poche parole, riscriviamo la trasformata di Fourier di dimensione come due trasformate di Fourier di dimensione N / 2 : i termini pari e dispari. Lo ripetiamo più volte per ridurre in modo esponenziale il tempo. Per vedere come funziona in dettaglio, passiamo alla matrice della trasformata di Fourier. Mentre affrontiamo questo, potrebbe essere utile avere DFT 8 di fronte a te per dare un'occhiata. Si noti che gli esponenti sono stati scritti modulo 8 , poiché w 8 = 1 .NN/2DFT88w8=1

enter image description here

Nota come la riga è molto simile alla riga j + 4 . Inoltre, nota come la colonna j è molto simile alla colonna j + 4 . Motivati ​​da questo, divideremo la trasformata di Fourier nelle sue colonne pari e dispari.jj+4jj+4

enter image description here

Nel primo fotogramma, abbiamo rappresentato tutta la trasformata di Fourier matrice descrivendo il esima riga e k esima colonna: w j k . Nel fotogramma successivo, separiamo le colonne pari e dispari e allo stesso modo separiamo il vettore che deve essere trasformato. Dovresti convincerti che la prima uguaglianza è davvero un'uguaglianza. Nel terzo fotogramma, aggiungiamo una piccola simmetria notando che w j + N / 2 = - w j (poiché w n / 2 = - 1jkwjkwj+N/2=wjwn/2=1 ).

Si noti che sia il lato dispari che il lato pari contengono il termine . Ma se w è l'ennesima radice primitiva dell'unità, allora w 2 è la radice primitiva N / 2 dell'unità. Pertanto, le matrici la cui j , k th entry è w 2 j k sono in realtà solo DFT ( N / 2 ) ! Ora possiamo scrivere DFT N in un modo nuovo: supponiamo ora di calcolare la trasformata di Fourier della funzione f ( x )w2jkww2N/2jkw2jkDFT(N/2)DFTNf(x). Possiamo scrivere le manipolazioni di cui sopra come un'equazione che calcola il termine j-esima f ( j ) .f^(j)

enter image description here

Nota: QFT nell'immagine sta per DFT in questo contesto. Inoltre, M si riferisce a ciò che chiamiamo N.

Questo trasforma il nostro calcolo di in due applicazioni di DFT ( N / 2 ) . Possiamo trasformarlo in quattro applicazioni di DFT ( N / 4 ) e così via. Finché N = 2 n per alcuni n , possiamo suddividere il nostro calcolo di DFT N in calcoli N di DFT 1 = 1 . Questo semplifica notevolmente il nostro calcolo.DFTNDFT(N/2)DFT(N/4)N=2nnDFTNNDFT1=1

Nel caso della trasformata di Fourier veloce la complessità del tempo si riduce a (prova a provarlo tu stesso). Questo è un enorme miglioramento rispetto al classico DFT e praticamente l'algoritmo all'avanguardia utilizzato nei sistemi musicali moderni come il tuo iPod!O(Nlog(N))


La trasformata di Quantum Fourier con porte quantistiche:

Il punto di forza della FFT è che siamo in grado di utilizzare la simmetria della trasformata discreta di Fourier a nostro vantaggio. L'applicazione del circuito di QFT utilizza lo stesso principio, ma a causa della potenza della sovrapposizione QFT è ancora più veloce.

The QFT is motivated by the FFT so we will follow the same steps, but because this is a quantum algorithm the implementation of the steps will be different. That is, we first take the Fourier transform of the odd and even parts, then multiply the odd terms by the phase wj.

In a quantum algorithm, the first step is fairly simple. The odd and even terms are together in superposition: the odd terms are those whose least significant bit is 1, and the even with 0. Therefore, we can apply QFT(N/2) to both the odd and even terms together. We do this by applying we will simply apply QFT(N/2) to the n1 most significant bits, and recombine the odd and even appropriately by applying the Hadamard to the least significant bit.

Now to carry out the phase multiplication, we need to multiply each odd term j by the phase wj . But remember, an odd number in binary ends with a 1 while an even ends with a 0. Thus we can use the controlled phase shift, where the least significant bit is the control, to multiply only the odd terms by the phase without doing anything to the even terms. Recall that the controlled phase shift is similar to the CNOT gate in that it only applies a phase to the target if the control bit is one.

enter image description here

Note: In the image M refers to what we are calling N.

The phase associated with each controlled phase shift should be equal to wj where j is associated to the k-th bit by j=2k. Thus, apply the controlled phase shift to each of the first n1 qubits, with the least significant bit as the control. With the controlled phase shift and the Hadamard transform, QFTN has been reduced to QFT(N/2).

enter image description here

Note: In the image, M refers to what we are calling N.

Example:

Lets construct QFT3. Following the algorithm, we will turn QFT3 into QFT2 and a few quantum gates. Then continuing on this way we turn QFT2 into QFT1 (which is just a Hadamard gate) and another few gates. Controlled phase gates will be represented by Rϕ. Then run through another iteration to get rid of QFT2. You should now be able to visualize the circuit for QFT on more qubits easily. Furthermore, you can see that the number of gates necessary to carry out QFTN it takes is exactly

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

Sources:

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

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

  3. Quantum Mechanics and Quantum Computation MOOC (UC BerkeleyX) - Lecture Notes : Chapter 5

P.S: This answer is in its preliminary version. As @DaftWillie mentions in the comments, it doesn't go much into "any insight that might give some guidance with regards to other possible algorithms". I encourage alternate answers to the original question. I personally need to do a bit of reading and resource-digging so that I can answer that aspect of the question.


Regarding the recursive structure: one might take that more or less by definition. If you want to talk about the scaling of an algorithm, you need a family of circuits for different sized inputs. The way this is typically done is to build the circuit for size n+1 out of the circuit for size n.What I'm not really seeing here is any insight that might give some guidance with regards to other possible algorithms (not that I claim that's an easy thing to do)
DaftWullie

@DaftWullie "What I'm not really seeing here is any insight that might give some guidance with regards to other possible algorithms (not that I claim that's an easy thing to do)" Well, yes! I have been thinking about that too. This is more of a preliminary answer. I will add more to it when I get about learning a bit more (and when I get more free time). I would be very glad to see alternate answers to this question. :-)
Sanchayan Dutta

Just because you have a sequence of problems, does not mean one gives the algorithm for the next (let alone a good one). It is typical because we typically think of nice functions. Being recursive in such a simple way is a property of a sequence of problems. Here what I mean is there exists a factorization Un=Un1x. Using this question to diagnose whether a sequence U has the same efficency properties.
AHusain

Hi, in QFT is it implicitly assumed that a, say 8 x 1, input vector x_classical is amplitude encoded with 3-qubits? Then the QFT operations are done on the encoded qubits? Also, can you please elaborate on "...and recombine the odd and even appropriately by applying the Hadamard to the least significant bit."?
Abdullah Ash- Saki

10

One possible answer as to why we can realise the QFT efficiently is down to the structure of its coefficients. To be precise, we can represent it easily as a quadratic form expansion, which is a sum over paths which have phases given by a quadratic function:

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


I am not sure I fully understand. Are you saying that any evolution represented as a quadratic form expansion with a quadratic form satisfying those two conditions can be efficiently implemented? Very interesting
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.


interesting, thanks. Could you include a sketch of the argument in the answer, if possible?
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
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.