Biến đổi Fourier lượng tử

Bách khoa toàn thư mở Wikipedia
Bước tới: menu, tìm kiếm


Biến đổi Fourier lượng tử là một phép biến đổi tuyến tính trên các qubit (đơn vị cơ bản của thông tin lượng tử), phép biến đổi này tương tự như biến đổi Fourier rời rạc. Biến đổi Fourier lượng tử là một trong những thuật toán lượng tử quan trọng nhất, nó thường là một phần của các thuật toán lượng tử khác, đặc biệt là thuật toán Shor để phân tích thừa số nguyên tố và tính toán các logarit rời rạc.

Biến đổi Fourier lượng tử dựa trên thuật toán biến đổi Fourier nhanh của James CooleyJohn Tukey. Nó có thể được thực hiện hiệu quả trên máy tính lượng tử, bởi nó có thể triệt tiêu các thành phần bằng cách nhân với các ma trận unita (áp dụng toán tử \hat{U}^{(QFT)}). Biến đổi Fourier lượng tử có thể được cài đặt và thực hiện trên một mạch lượng tử.

Định nghĩa[sửa | sửa mã nguồn]

Biến đổi Fourier rời rạc "cổ điển" được định nghĩa như sau:

Dãy của N số phức:x_0, x_1,..., x_{N-1} được biến đổi thành chuỗi của N số phức y_0, y_1,..., y_{N-1} bởi công thức sau đây:

y_k = \sum_{l=0}^{N-1} e^{-\frac{2 \pi i}{N} k l} x_l \quad \quad k = 0, 1, \dots, N-1 \quad \quad \quad \quad(1)

với ecơ số của lôgarit tự nhiên, i\,đơn vị ảo (i^2=-1), và \pi là số pi.

Đặt \omega = e^{\frac{2 \pi i}{N}}, ta được:

y_k = \frac{1}{\sqrt{N}} \sum_{j=0}^{N-1} x_j \omega^{jk}

Như vậy, ta có thể xây dựng phép biến đổi Fourier thành ma trận unita F_N như sau:

 F_N = \frac{1}{\sqrt{N}} \begin{bmatrix} 1&1&1&1&\cdots &1 \\ 1&\omega&\omega^2&\omega^3&\cdots&\omega^{N-1} \\ 1&\omega^2&\omega^4&\omega^6&\cdots&\omega^{2(N-1)}\\ 1&\omega^3&\omega^6&\omega^9&\cdots&\omega^{3(N-1)}\\ \vdots&\vdots&\vdots&\vdots&&\vdots\\
1&\omega^{N-1}&\omega^{2(N-1)}&\omega^{3(N-1)}&\cdots&\omega^{(N-1)(N-1)}\\ \end{bmatrix}

Tương tự với "cổ điển", ta dùng các vector biểu diễn trạng thái lượng tử rồi áp dụng toán tử \hat{U}^{(QFT)}, hay nói cách khác là áp dụng ma trận trên.

Khi áp dụng cho một xâu n-qubit, ta được:

\hat{U}^{(QFT)}  |b_{n-1} b_{n-2}...b_0 \rangle  = \frac{1}{\sqrt{2^{n}}} \{|0 \rangle \ +  \ e^{2 \pi i [. b_0]}  \ |1 \rangle \} \ \{|0 \rangle \  + \  e^{2 \pi i [. b_1 b_0]} \  |1 \rangle \} \ \{|0 \rangle \  + \  e^{2 \pi i [. b_{n-1} b_{n-2}... b_0]} \  |1 \rangle \} \quad \quad \quad \quad(2)

Tính chất[1][sửa | sửa mã nguồn]

Tính đối xứng[sửa | sửa mã nguồn]

Xét với biến đổi Fourier "cổ điển":

Đặt 2 vector x^T = (x_0,x_1,...,x_{N-1})y^T = (y_0,y_1,...,y_{N-1}).Chúng ta có thể viết lại công thức (1) như sau:

y = U^{(FT)} x

Với U^{(FT)}ma trận biến đổi tuyến tính của ma trận có các phần tử là:

U_{kl}^{(FT)}=\frac{1}{\sqrt{N}} e^{\frac{2 \pi i k l}{N}} \quad \quad k,l = 0, 1,  \dots, N-1 \quad \quad \quad \quad (3)

Từ công thức (3), ta suy ra:

U_{kl}^{(FT)} = U_{lk}^{(FT)}

Hay nói cách khác, U^{(FT)}ma trận đối xứng.

Tương tự, ở biến đổi Fourier lượng tử, ta xét trạng thái |l\rangle.

Sử dụng toán tử \hat{U}^{(QFT)} tác động và trạng thái |l\rangle, biến đổi sang trạng thái |k\rangle.

\hat{U}^{(QFT)} |k\rangle = \frac{1}{\sqrt{N}} \sum_{l=0}^{N-1} e^{\frac{2 \pi i k l}{N}} |l\rangle

Từ đó, ta thấy các phần tử ma trận của toán tử \hat{U}^{(QFT)} là:

U_{lk}^{(QFT)} = \langle l| \hat{U}^{(QFT)} |k \rangle = \frac{1}{\sqrt{N}} e^{\frac{2 \pi i k l}{N}} = U_{lk}^{(FT)} = U_{kl}^{(FT)} = U_{kl}^{(QFT)}

Như vậy, \hat{U}^{(QFT)} cũng đối xứng.

Unita[sửa | sửa mã nguồn]

Để chứng minh tính unita của biến đổi Fourier lượng tử, ta cần biết đến hai công thức sau:

Đầu tiên, ta cần biết đến tổng hình học:

S = 1 + q + q^2 + q^3 +... + q^{N-1} = \sum_{l=0}^{N-1} q^l =  \frac{1-q^{N}}{1-q} \quad \quad \quad \quad (4)

Tiếp theo là:

T = \frac{1}{N} \sum_{l = 0}^{N-1} e^{\frac{2 \pi i M l}{N}} = \begin{cases} 1, & \mbox{khi }M = 0 \\ 0, & \mbox{khi } 0 < | M | < N\end{cases} \quad \quad \quad \quad \quad (5)

Chứng minh công thức này như sau:

1) Xét M = 0
T = \frac{1}{N} \sum_{l = 0}^{N-1} e^{0} = \frac{1}{N} \sum_{l = 0}^{N-1} 1 = \frac{1}{N} N = 1
2) Xét 0 < \left | M \right | < N, áp dụng công thức của tổng hình học
T = \frac{1}{N} \sum_{l = 0}^{N-1} e^{\frac{2 \pi i M l}{N}} = \frac{1}{N} \sum_{l = 0}^{N-1} [e^{\frac{2 \pi i l M }{N}}]^l = \frac{1}{N} \frac{1 - e^{2 \pi i M}}{1 - e^{\frac{2 \pi i M}{N}}} = 0

Do e^{2 \pi i M} = 11 - e^{\frac{2 \pi i M}{N}} \ne 0 với 0 < \left | M \right | < N

Áp dụng 2 công thức (4)(5), ta có:

[U^{(FT) \dagger} U^{(FT)}]_{mn} = \sum_{l=0}^{N-1} U^{(FT)^*}_{lm} U^{(FT)}_{ln}

= \sum_{l=0}^{N-1} \frac{1}{\sqrt{N}} e^{- \frac{2 \pi i l m}{N}} e^{\frac{2 \pi i l n}{N}} = \frac{1}{N} \sum_{l=0}^{N-1} e^{\frac{2 \pi i (n - m) l}{N}} = \delta_{mn}

Như vậy ta đã chứng minh biến đổi Fourier lượng tử có tính Unita

Ví dụ[1][sửa | sửa mã nguồn]

Biểu diễn mạch lượng tử cho biến đổi Fourier lượng tử cho 1,2,3 qubit trên wolfram[2]

Xét một vài trường hợp đơn giản.

Với trường hợp chỉ có 1 qubit, ta có n = 1N = 2^n = 2 trạng thái lượng tử cơ bản. Biến đổi Fourier lượng tử trong trường hợp này như sau:

\hat{U}^{(QFT)} |0\rangle = \frac{1}{\sqrt{N}} \sum_{l=0}^{N-1} e^{\frac{2 \pi i 0 l}{N}} |l \rangle = \frac{1}{\sqrt{2}}\{|0 \rangle  +  |1 \rangle  \}

\hat{U}^{(QFT)} |1\rangle = \frac{1}{\sqrt{N}} \sum_{l=0}^{N-1} e^{\frac{2 \pi i 1 l}{N}} |l \rangle = \frac{1}{\sqrt{2}}\{|0 \rangle  -  |1 \rangle  \}

Trong trường hợp này ta dễ thấy ma trận biến đổi của phép biến đổi Fourier lượng tử là:

 \operatorname {F_{2^1}} = \frac{1}{\sqrt{2}}  \begin{bmatrix} 1 & 1 \\ 1 & -1 \end{bmatrix}

Ma trận trên tương tự như ma trận của cổng Hadamard. Vì thế, mạch lượng tử được sử dụng trong việc biến đổi Fourier lượng tử cho 1 qubit chỉ dùng 1 cổng Hadamard.

Xét trong trường hợp 2 qubit, ta có n = 2N = 2^n = 4 trạng thái lượng tử cơ bản. Ta quy định |00\rangle \equiv |0\rangle, |01\rangle \equiv |1\rangle, |10\rangle \equiv |2\rangle, |11\rangle \equiv |3\rangle. Ta có:

\hat{U}^{(QFT)}  |00\rangle  \  = \frac{1}{\sqrt{4}} \sum_{l=0}^{3} e^{\frac{2 \pi i 0 l}{4}} |l \rangle = \frac{1}{2} (|0 \rangle  +  |1 \rangle  +  |2 \rangle    +  |3 \rangle)

= \frac{1}{2} (|00 \rangle  +  |01 \rangle  +  |10 \rangle    +  |11 \rangle) = \frac{1}{2} (|0 \rangle  +  |1 \rangle)(|0 \rangle    +  |1 \rangle),

\hat{U}^{(QFT)}  |01\rangle  \  = \frac{1}{\sqrt{4}} \sum_{l=0}^{3} e^{\frac{2 \pi i 1 l}{4}} |l \rangle = \frac{1}{2} (|0 \rangle  +  i|1 \rangle  -  |2 \rangle    -  i|3 \rangle)

= \frac{1}{2} (|00 \rangle  +  i|01 \rangle  -  |10 \rangle    -  i|11 \rangle) = \frac{1}{2} (|0 \rangle  -  |1 \rangle)(|0 \rangle    +  i|1 \rangle),

\hat{U}^{(QFT)}  |10\rangle  \  = \frac{1}{\sqrt{4}} \sum_{l=0}^{3} e^{\frac{2 \pi i 2 l}{4}} |l \rangle = \frac{1}{2} (|0 \rangle  - |1 \rangle  +  |2 \rangle  -  |3 \rangle)

= \frac{1}{2} (|00 \rangle  -  |01 \rangle  +  |10 \rangle    -  |11 \rangle) = \frac{1}{2} (|0 \rangle  +  |1 \rangle)(|0 \rangle  -  |1 \rangle),

\hat{U}^{(QFT)}  |11\rangle  \  = \frac{1}{\sqrt{4}} \sum_{l=0}^{3} e^{\frac{2 \pi i 3 l}{4}} |l \rangle = \frac{1}{2} (|0 \rangle  - i|1 \rangle  -  |2 \rangle  +  i|3 \rangle)

= \frac{1}{2} (|00 \rangle  -  i|01 \rangle  -  |10 \rangle    +  i|11 \rangle) = \frac{1}{2} (|0 \rangle  -  |1 \rangle)(|0 \rangle  -  i|1 \rangle),

Ma trận của phép biến đổi:

 \operatorname {F_{2^2}} = \frac{1}{\sqrt{2^2}} \begin{bmatrix} 1 & 1 & 1 & 1 \\ 1 & i & -1 & -i \\ 1 & -1 & 1 & -1 \\ 1 & -i & -1 & i \end{bmatrix}

Với trường hợp này, mạch lượng tử của biến đổi Fourier lượng tử ngoài các cổng Hadamard, còn cần sử dụng thêm một cổng điều khiển xoay pha R_{\frac{\pi}{2}}.

Mạch lượng tử của trường hợp 1, 2 và 3 qubit đầu vào được mô hình trình diễn trên wolfram[2]

Sơ đồ mạch lượng tử[sửa | sửa mã nguồn]

Mạch lượng tử cho biến đổi Fourier lượng tử trên n qubits

Như đã nói ở trên, biến đổi Fourier lượng tử là một thuật toán lượng tử nên có thể được cài đặt và thực hiện nhờ một mạch lượng tử.

Với một hệ cơ sở trực chuẩncác vector:

 |0\rangle, |1\rangle,..., |2^n - 1\rangle

Ta có thể biểu diễn một số x dưới dạng sau:

 | x \rangle = | x_1, x_2,..., x_n \rangle = | x_1 \rangle  | x_2 \rangle...  | x_n \rangle

với  x = x_1 2^{n-1} + x_2 2^{n-2} +...  + x_n 2^0\quad

Theo công thức (2), thì ta thực hiện biến đổi Fourier lượng tử như sau:

|x_1, x_2,...,  x_n \rangle \mapsto \frac{1}{\sqrt{2^{n}}} \ \left(|0\rangle + e^{2 \pi i \, [0.x_n] }|1\rangle\right)  \left(|0\rangle + e^{2 \pi i  \, [0.x_{n-1} x_n] }|1\rangle\right)...  \left(|0\rangle + e^{2 \pi i \, [0.x_1 x_2 \ldots x_n] }|1\rangle\right)

Như vậy, biến đổi Fourier rời rạc trên trạng thái lượng tử của n qubit (để biểu diễn số N) có thể thực hiện dễ dàng nhờ mạch lượng tử bên. Trên thực tế, mỗi qubit đơn có thể được thực hiện hiệu quả dựa vào cổng Hadamardcổng điều khiển xoay pha. Tổng số lượng cổng sử dụng là 1 + 2 +... + n = n(n+1)/2 = O(n^2) cổng.

Độ phức tạp[sửa | sửa mã nguồn]

Như các ví dụ trên và mạch lượng tử tổng quát, ta dễ thấy để triệt tiêu các thành phần, các phép biến đổi Fourier rời rạc được thực hiện qua O(n^2) cổng Hadamard và các cổng điều khiển xoay pha R_{{\frac{\pi}{2}}^{k}}, với n là số lượng qubit cần biến đổi, k = 0,1,...,n-1[3]. Trong khi đó, phép biến đổi Fourier rời rạc "cổ điển" cần dùng O(n2^n) (với n là số lượng bit cần biến đổi). Đây là độ phức tạp thuật toán trong thời gian đa thức. Tuy nhiên, biến đổi Fourier lượng tử áp dụng trên một trạng thái lượng tử còn biến đổi Fourier rời rạc "cổ điển" lại áp dụng trên một vector, nên không phải tất cả công việc sử dụng biến đổi Fourier rời rạc "cổ điển" có thể tận dụng mức độ tăng độ phức tạp cấp số nhân này.

Ngày nay, trường hợp tốt nhất của thuật toán biến đổi Fourier lượng tử, chỉ sử dụng O(n \log n) cổng lượng tử, đã đạt được hiệu quả tốt.[4]

Ứng dụng[sửa | sửa mã nguồn]

Biến đổi Fourier lượng tử là một thuật toán lượng tử quan trọng, nó thường là một phần của các thuật toán lượng tử khác, đặc biệt là thuật toán Shor để phân tích thừa số nguyên tố và tính toán các logarit rời rạc, thuật toán dự đoán pha lượng tử để ước tính giá trị riêng của các toán tử unita, và các thuật toán về vấn đề phân nhóm ẩn.

Liên kết ngoài[sửa | sửa mã nguồn]

  1. ^ a ă Reinhold, Blumel (2009). Foundations of Quantum Mechanics: From Photons to Quantum Computers, chương 10. 
  2. ^ a ă http://demonstrations.wolfram.com/QuantumFourierTransformCircuit/ Biểu diễn mạch lượng tử 1,2,3 qubit trên wolfram
  3. ^ Michael Nielsen and Isaac Chuang (2000). Quantum Computation and Quantum Information. Cambridge: Cambridge University Press. ISBN 0-521-63503-9. OCLC 174527496. 
  4. ^ L. Hales, S. Hallgren, An improved quantum Fourier transform algorithm and applications, Proceedings of the 41st Annual Symposium on Foundations of Computer Science, p.515, November 12–14, 2000

Tham khảo[sửa | sửa mã nguồn]

  • Nielsen, Michael A. & Chuang, Isaac L. (2000). Quantum Computation and Quantum Information. Cambridge University Press. ISBN 0-521-63235-8. 
  • K. R. Parthasarathy, Lectures on Quantum Computation and Quantum Error Correcting Codes (Indian Statistical Institute, Delhi Center, June 2001)
  • John Preskill, Lecture Notes for Physics 229: Quantum Information and Computation (CIT, September 1998)