Хорошо известен результат, что дискретное преобразование Фурье (ДПФ) из чисел имеет сложность с наилучшим известным алгоритмом при выполнении преобразования Фурье амплитуд квантового состояния с классическим Алгоритм QFT , требует только элементарных ворот.
Есть ли известная причина, почему это так? Под этим я подразумеваю, существуют ли известные характеристики ДПФ, которые позволяют реализовать его эффективную «квантовую версию».
Действительно, ДПФ над мерными векторами можно рассматривать как линейную операцию
«Квантовая версия» этой проблемы является задачей, учитывая квантовое состояние , получая состояние выхода такое , что
- Первое упрощение, по-видимому, связано с тем, что благодаря линейности QM мы можем сосредоточиться на базисных состояниях , с эволюцией общих векторов тогда приходит бесплатно.
- Если , можно выразить в базе два, имеющий .
- В стандартном алгоритме QFT используется тот факт, что преобразование может быть записано как
который затем может быть реализован в виде квантовой схемы видагде осуществляется с элементарных вентилей.
Предположим, что у нас есть некоторое унитарное преобразование , и мы хотим найти схему, эффективно реализующую эквивалентное квантовое преобразование | у ⟩ = | х ⟩ . Первые два трюка, упомянутые выше, всегда могут быть применены, но тогда нетривиально, когда и как можно использовать другую точку для получения результатов эффективности, как мы имеем для QFT.
Есть ли известные критерии, чтобы это было правдой? Или, другими словами, возможно ли точно определить, какие характеристики ДПФ позволяют эффективно реализовать соответствующее квантовое преобразование?
Ответы:
Введение в классическое дискретное преобразование Фурье:
ДПФ преобразует последовательность комплексных чисел { х п } : = х 0 , х 1 , х 2 , . , , , Х N - 1 в другой последовательности комплексных чисел { Х K } : = Х 0 , Х 1 , Х 2 , . , , который определяется как X k = N - 1 ∑N { хN} : = x0, х1, х2, . , , , хN- 1 { XК} : = X0, X1, X2,... Мы могли бы умножить на подходящие константы нормализации по мере необходимости. Кроме того, в зависимости от того, какую конвенцию мы выберем, зависит, примем ли мы знак плюс или минус в формуле.
Предположим, что дано, что и x = ( 1 2 - i - i - 1 + 2 i ) .N=4 x=⎛⎝⎜⎜⎜12−i−i−1+2i⎞⎠⎟⎟⎟
We need to find the column vectorX . The general method is already shown on the Wikipedia page. But we will develop a matrix notation for the same. X can be easily obtained by pre multiplying x by the matrix:
wherew is e−2πiN . Each element of the matrix is basically wij . 1N√ is simply a normalization constant.
Finally,X turns out to be: 12⎛⎝⎜⎜⎜2−2−2i−2i4+4i⎞⎠⎟⎟⎟ .
Now, sit back for a while and notice a few important properties:
It can be very simply noticed that the classical DFT has a time complexityO(N2) . That is because for obtaining every row of X , N operations need to be performed. And there are N rows in X .
The Fast fourier transform:
Now, let us look at the Fast fourier transform. The fast Fourier transform uses the symmetry of the Fourier transform to reduce the computation time. Simply put, we rewrite the Fourier transform of sizeN as two Fourier transforms of size N/2 - the odd and the even terms. We then repeat this over and over again to exponentially reduce the time. To see how this works in detail, we turn to the matrix of the Fourier transform. While we go through this, it might be helpful to have DFT8 in front of you to take a look at. Note that the exponents have been written modulo 8 , since w8=1 .
Notice how rowj is very similar to row j+4 . Also, notice how column j
is very similar to column j+4 . Motivated by this, we are going to split the
Fourier transform up into its even and odd columns.
In the first frame, we have represented the whole Fourier transform matrix by describing thej th row and k th column: wjk . In the next frame, we separate the odd and even columns, and similarly separate the vector that is to be transformed. You should convince yourself that the first equality really is
an equality. In the third frame, we add a little symmetry by noticing that
wj+N/2=−wj (since wn/2=−1 ).
Notice that both the odd side and even side contain the termw2jk . But
if w is the primitive Nth root of unity, then w2 is the primitive N/2 nd root of unity. Therefore, the matrices whose j , k th entry is w2jk are really just DFT(N/2) ! Now we can write DFTN in a new way:
Now suppose we are calculating the Fourier transform of the function f(x) .
We can write the above manipulations as an equation that computes the jth
term f^(j) .
Note: QFT in the image just stands for DFT in this context. Also, M refers to what we are calling N.
This turns our calculation ofDFTN into two applications of DFT(N/2) . We
can turn this into four applications of DFT(N/4) , and so forth. As long as N=2n for some n , we can break down our calculation of DFTN into N
calculations of DFT1=1 . This greatly simplifies our calculation.
In case of the Fast fourier transform the time complexity reduces toO(Nlog(N)) (try proving this yourself). This is a huge improvement over the classical DFT and pretty much the state-of-the-art algorithm used in modern day music systems like your iPod!
The Quantum Fourier transform with quantum gates:
The strength of the FFT is that we are able to use the symmetry of the discrete Fourier transform to our advantage. The circuit application of QFT uses the same principle, but because of the power of superposition QFT is even faster.
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 phasewj .
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 is1 , 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 n−1 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 termj 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.
Note: In the image M refers to what we are calling N.
The phase associated with each controlled phase shift should be equal towj where j is associated to the k -th bit by j=2k .
Thus, apply the controlled phase shift to each of the first n−1 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) .
Note: In the image, M refers to what we are calling N.
Example:
Sources:
https://en.wikipedia.org/wiki/Discrete_Fourier_transform
https://en.wikipedia.org/wiki/Quantum_Fourier_transform
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.
источник
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:
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).
источник
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,
источник
Одна из многих возможных конструкций, которая дает некоторое представление об этом вопросе, по крайней мере для меня, заключается в следующем. Используя CSD (разложение по косинусу-синусу), вы можете разложить любой унитарный оператор в произведение эффективных вентилей V, которые хорошо вписываются в структуру двоичного дерева. В случае QFT это двоичное дерево сворачивается в одну ветвь дерева, все V не в ветви равны 1.
Ссылка: квантовое быстрое преобразование Фурье, рассматриваемое мной как частный случай рекурсивного применения косинус-синусного разложения .
источник