Giới thiệu về biến đổi Fourier rời rạc cổ điển:
DFT biến đổi một chuỗi gồm số phức thành một chuỗi số phức khác được xác định bởi Chúng ta có thể nhân với các hằng số chuẩn hóa phù hợp khi cần thiết. Hơn nữa, việc chúng ta lấy dấu cộng hay dấu trừ trong công thức tùy thuộc vào quy ước chúng ta chọn.{ x n } : = x 0 , x 1 , x 2 , . . . , x NN { X k }:= X 0 , X 1 , X 2 ,. . . X k = N - 1 ∑ n = 0 x n . e ± 2 π i n{ xn} : = x0, x1, x2, . . . , xN- 1{ Xk} : = X0, X1, X2, . . .
Xk= ∑n = 0N- 1xn. e± 2 πi k nN
Giả sử, đã cho rằng và .x = ( 1 2 - i - i - 1 + 2 i )N= 4x = ⎛⎝⎜⎜⎜12 - tôi- tôi- 1 + 2 tôi⎞⎠⎟⎟⎟
Chúng ta cần tìm vectơ cột . Phương pháp chung đã được hiển thị trên trang Wikipedia . Nhưng chúng tôi sẽ phát triển một ký hiệu ma trận cho cùng. có thể dễ dàng thu được bằng cách nhân trước với ma trận:X xXXx
M= 1N--√⎛⎝⎜⎜⎜11111ww2w31w2w4w61w3w6w9⎞⎠⎟⎟⎟
trong đó là . Mỗi phần tử của ma trận về cơ bản là . đơn giản là hằng số chuẩn hóa.e - 2 π iw wij1e- 2 πTôiNwtôi j1N√
Cuối cùng, hóa ra là: .1X12⎛⎝⎜⎜⎜2- 2 - 2 tôi- 2 tôi4 + 4 tôi⎞⎠⎟⎟⎟
Bây giờ, ngồi lại một lúc và nhận thấy một vài thuộc tính quan trọng:
- Tất cả các cột của ma trận là trực giao với nhau.M
- Tất cả các cột của có cường độ .1M1
- Nếu bạn đăng bội số với một vectơ cột có nhiều số 0 (mức chênh lệch lớn), bạn sẽ kết thúc bằng một vectơ cột chỉ có một vài số không (mức chênh lệch hẹp). Converse cũng đúng. (Kiểm tra!)M
Có thể nhận thấy rất đơn giản rằng DFT cổ điển có độ phức tạp về thời gian . Đó là bởi vì để có được mọi hàng , cần phải được thực hiện. Và có hàng trong .X N N XÔ ( N2)XNNX
Biến đổi Fourier nhanh:
Bây giờ, chúng ta hãy nhìn vào biến đổi Fourier nhanh. Biến đổi Fourier nhanh sử dụng tính đối xứng của biến đổi Fourier để giảm thời gian tính toán. Nói một cách đơn giản, chúng tôi viết lại biến đổi Fourier có kích thước là hai biến đổi Fourier có kích thước - các số hạng lẻ và số chẵn. Sau đó chúng tôi lặp lại điều này nhiều lần để giảm thời gian theo cấp số nhân. Để xem cách thức hoạt động của chi tiết này, chúng tôi chuyển sang ma trận của biến đổi Fourier. Trong khi chúng tôi trải qua điều này, có thể hữu ích khi có trước mặt bạn để xem xét. Lưu ý rằng số mũ đã được viết modulo , vì .N / 2 DFT 8 8 w 8 = 1NN/ 2DFTsố 8số 8wsố 8= 1
Lưu ý cách hàng rất giống với hàng . Ngoài ra, chú ý cách cột
rất giống với cột . Được thúc đẩy bởi điều này, chúng tôi sẽ phân tách biến đổi Fourier thành các cột chẵn và lẻ.j + 4 j j + 4jj + 4jj + 4
Trong khung đầu tiên, chúng tôi đã biểu diễn toàn bộ ma trận biến đổi Fourier bằng cách mô tả hàng thứ và cột thứ : . Trong khung tiếp theo, chúng ta tách các cột lẻ và chẵn và tương tự tách vectơ sẽ được chuyển đổi. Bạn nên thuyết phục bản thân rằng sự bình đẳng đầu tiên thực sự là một sự bình đẳng. Trong khung thứ ba, chúng tôi thêm một chút đối xứng bằng cách nhận thấy rằng
(vì ).k w j k w j + N / 2 = - w j w n / 2 = - 1jkwj kwj + N/ 2= - wjwn / 2= - 1
Lưu ý rằng cả bên lẻ và bên chẵn đều chứa thuật ngữ . Nhưng nếu là gốc Nth nguyên thủy của sự thống nhất, thì là gốc thứ nhất của sự thống nhất. Do đó, các ma trận có mục nhập thứ , thứ là thực sự chỉ là ! Bây giờ chúng ta có thể viết theo một cách mới: Bây giờ giả sử chúng ta đang tính toán biến đổi Fourier của hàm . Chúng ta có thể viết các thao tác trên như một phương trình tính toán thuật ngữ thứ j . w w 2 N / 2 j k w 2 j kw2 j kww2N/ 2jkw2 j k DFT N f ( x ) f ( j )DFT( N/ 2)DFTNf( x )f^( j )
Lưu ý: QFT trong ảnh chỉ là viết tắt của DFT trong ngữ cảnh này. Ngoài ra, M đề cập đến những gì chúng ta đang gọi N.
Điều này biến phép tính của chúng tôi về thành hai ứng dụng của . Chúng ta có thể biến ứng dụng này thành bốn ứng dụng của , v.v. Miễn là cho một số , chúng ta có thể chia nhỏ phép tính thành
tính toán của . Điều này rất đơn giản hóa tính toán của chúng tôi.DFT ( N / 2 ) DFT ( N / 4 ) N = 2 n n DFT N N DFT 1 = 1DFTNDFT( N/ 2)DFT( N/ 4)N= 2 nnDFTNNDFT1= 1
Trong trường hợp biến đổi tốc độ nhanh, độ phức tạp thời gian giảm xuống còn (hãy tự mình chứng minh điều này). Đây là một cải tiến vượt bậc so với DFT cổ điển và khá nhiều thuật toán tiên tiến được sử dụng trong các hệ thống âm nhạc hiện đại như iPod của bạn!Ô ( Nđăng nhập( N) )
Biến đổi lượng tử Fourier với các cổng lượng tử:
Điểm mạnh của FFT là chúng tôi có thể sử dụng tính đối xứng của biến đổi Fourier rời rạc thành lợi thế của chúng tôi. Ứng dụng mạch của QFT sử dụng cùng một nguyên tắc, nhưng vì sức mạnh của chồng chất nên QFT thậm chí còn nhanh hơn.
QFT được thúc đẩy bởi FFT vì vậy chúng tôi sẽ làm theo các bước tương tự, nhưng vì đây là thuật toán lượng tử nên việc thực hiện các bước sẽ khác nhau. Đó là, trước tiên chúng ta lấy biến đổi Fourier của các phần lẻ và chẵn, sau đó nhân các số hạng lẻ với pha .wj
Trong một thuật toán lượng tử, bước đầu tiên khá đơn giản. Các thuật ngữ lẻ và chẵn được kết hợp với nhau trong sự chồng chất: các thuật ngữ lẻ là những thuật ngữ có bit có ý nghĩa nhỏ nhất là và chẵn với . Do đó, chúng ta có thể áp dụng cho cả hai điều khoản lẻ và chẵn. Chúng tôi thực hiện điều này bằng cách áp dụng đơn giản là chúng tôi sẽ áp dụng cho các bit quan trọng nhất và kết hợp lại số lẻ và thậm chí một cách thích hợp bằng cách áp dụng Hadamard cho bit có trọng số thấp nhất.0 QFT ( N / 2 ) QFT ( N / 2 ) n - 110QFT( N/ 2)QFT( N/ 2)n - 1
Bây giờ để thực hiện phép nhân pha, chúng ta cần nhân mỗi số hạng lẻ với pha . Nhưng hãy nhớ rằng, một số lẻ trong nhị phân kết thúc bằng trong khi số chẵn kết thúc bằng . Do đó, chúng ta có thể sử dụng sự dịch pha được kiểm soát, trong đó bit có trọng số thấp nhất là điều khiển, để nhân các số hạng lẻ với pha mà không làm gì với các số hạng chẵn. Hãy nhớ lại rằng sự dịch pha được điều khiển tương tự như cổng CNOT ở chỗ nó chỉ áp dụng một pha cho mục tiêu nếu bit điều khiển là một.w j 1 0jwj10
Lưu ý: Trong hình ảnh M đề cập đến những gì chúng ta đang gọi là N.
Pha được liên kết với mỗi lần dịch pha được kiểm soát phải bằng
trong đó được liên kết với bit thứ bởi . Do đó, áp dụng sự dịch pha được kiểm soát cho từng qubit đầu tiên , với bit có ý nghĩa ít nhất là điều khiển. Với sự dịch chuyển pha được kiểm soát và biến đổi Hadamard, đã được giảm xuống thành . j k j = 2 k n - 1 QFT N QFT ( N / 2 )wjjkj = 2 kn - 1QFTNQFT( N/ 2)
Lưu ý: Trong hình ảnh, M đề cập đến những gì chúng ta đang gọi là N.
Thí dụ:
Cho phép xây dựng . Theo thuật toán, chúng tôi sẽ biến thành
và một vài cổng lượng tử. Sau đó, tiếp tục theo cách này, chúng tôi biến thành
(chỉ là một cổng Hadamard) và một vài cổng khác. Cổng pha được điều khiển sẽ được đại diện bởi . Sau đó chạy qua một lần lặp khác để thoát khỏi . Bây giờ bạn có thể trực quan hóa mạch cho trên nhiều qubit hơn một cách dễ dàng. Hơn nữa, bạn có thể thấy rằng số lượng cổng cần thiết để thực hiện cần chính xácQFT 3 QFT 2 QFT 2 QFT 1 R ϕ QFT 2 QFT QFT N log ( N ) ∑ i = 1 i = log ( N ) ( log ( N ) + 1 ) / 2 = O ( log 2 N )QFT3QFT3QFT2QFT2QFT1RφQFT2QFTQFTN
Σi = 1đăng nhập( N)tôi = đăng nhập( N) ( nhật ký( N) + 1 ) / 2 = O ( nhật ký2N)
Nguồn:
https://en.wikipedia.org/wiki/Discittle_Fourier_transform
https://en.wikipedia.org/wiki/Quantum_Fourier_transform
Cơ học lượng tử và tính toán lượng tử MOOC (UC BerkeleyX) - Ghi chú bài giảng: Chương 5
PS: Câu trả lời này là trong phiên bản sơ bộ của nó. Như @DaftWillie đề cập trong các bình luận, nó không đi sâu vào " bất kỳ cái nhìn sâu sắc nào có thể đưa ra một số hướng dẫn liên quan đến các thuật toán có thể khác ". Tôi khuyến khích câu trả lời thay thế cho câu hỏi ban đầu. Cá nhân tôi cần thực hiện một chút về đọc và đào tài nguyên để tôi có thể trả lời khía cạnh đó của câu hỏi.