Tính toán lượng tử/Tính toán lượng tử

Tủ sách mở Wikibooks

Trong tính toán cổ điển, có các "cổng" để thực hiện các phép tính, nhận đầu vào là bit hoặc chuỗi các bit, và cho đầu ra là kết quả phép tính. Với cổng nhận 1 bit, có cổng NOT, cổng ZERO, ... tổng cộng 4 cổng. Với cổng nhận 2 bit, có cổng AND, OR, XOR, NAND, NOR, ... tổng cộng 16 cổng. Có thể chứng minh rằng mọi biểu thức Boole có thể được biểu diễn bằng cổng NOT, cổng AND và cổng OR, mà các cổng này lại đều có thể biểu diễn bằng công NAND (hoặc cổng NOR) nên mọi mạch tính toán đều có thể được xây dựng bằng cổng NAND (hoặc cổng NOR). Ngoài ra, cũng có thể chứng minh rằng mọi biểu thức Boole đều có thể được biểu diễn bằng cổng Toffoli. Các bộ {NOT, AND, OR} hoặc {NAND} hoặc {NOR} hoặc {Toffoli} được gọi là bộ cổng đầy đủ.

Trong tính toán lượng tử, cũng có các "cổng lượng tử" để thực hiện phép tính lượng tử. Cổng này nhận đầu vào là chuỗi qubit, và cho ra kết quả phép tính. Cũng có thể chứng minh rằng mọi phép tính lượng tử đều có thể được xấp xỉ, đến độ chính xác tùy ý, bằng một tổ hợp hữu hạn của các cổng lượng thuộc về một bộ cổng đầy đủ.

Cổng một qubit[sửa]

Trạng thái của một qubit là một véc tơ trong không gian véc tơ 2 chiều. Một phép tính lượng tử với đầu vào là một qubit sẽ tương ứng với một phép toán tuyến tính trên véc tơ trong không gian véc tơ 2 chiều này. Tức là tương đương việc nhân một ma trận vào với véc tơ thể hiện trạng thái qubit đầu vào, với ma trận là ma trận của phép tính. Một cách tổng quát, ma trận này là:

Ở đây, a, b, c, d là các số phức.

Một số cổng nhận đầu vào là một qubit hay được đề cập đến được liệt kê ở dưới đây.

Cổng Pauli[sửa]

Ba cổng Pauli, gọi là cổng Pauli X, ứng với toán tử , cổng Pauli Y, ứng với toán tử , và cổng Pauli Z, ứng với toán tử , có ma trận là:

Bài tập ví dụ

Qubit đang ở trạng thái |0>. Xác suất mà phép đo spin theo trục X thu được kết quả bằng 1 là bao nhiêu?

Lời giải

Biểu diễn trạng thái của qubit trên hệ cơ sở của các véc tơ riêng của :

Xác suất thu được spin theo trục X bằng 1, ứng với trạng thái qubit sụp về |+>, là:

Bài tập nâng cao

Qubit đang ở trạng thái |0>. Xác suất mà phép đo spin dọc theo phương véc tơ e=(sinΘ cosΦ, sinΘ sinΦ, cosΘ) thu được kết quả bằng 1 là bao nhiêu?

Gợi ý lời giải

Đại lượng cần đo là S.e = sinΘ cosΦ X + sinΘ sinΦ Y + cosΘ Z. Toán tử của đại lượng cần đo, do đó có ma trận là:

Biểu diễn trạng thái của qubit trên hệ cơ sở của các véc tơ riêng của ma trận này, sẽ thu được kết quả đo ra trị riêng bằng 1 với xác suất cos(Θ/2)2.

Cổng Pauli X còn được gọi là cổng NOT. Cổng này có ý nghĩa là tạo ra trang thái "ngược" với trạng thái |0> hoặc |1> đầu vào, tương đương với việc quay trạng thái qubit trên mặt cầu Bloch sang điểm đối diện với nó trên mặt cầu.

Ba toán tử Pauli có mối liên hệ với nhau tương tự như ba toán tử thành phần mô men động lượng , , , ví dụ:

Trong cơ học lượng tử, bộ ba toán tử nào liên hệ với nhau theo kiểu trên đều được coi như tương ứng với đại lượng mô men động lượng. Cụ thể các toán tử Pauli tương ứng với một dạng mô men động lượng đặc biệt của hệ vật chất gọi là spin. Toán tử X ứng với đại lượng vật lý spin theo trục X, toán tử Y ứng với spin theo trục Y, toán tử Z ứng với spin theo trục Z. Véc tơ spin là:

Véc tơ riêng của Pauli Z là |0> và |1>, ứng với trị riêng 1 và -1:

Véc tơ riêng của Pauli X là |+> và |->, ứng với trị riêng 1 và -1:

Véc tơ riêng của Pauli Y là , ứng với trị riêng 1 và -1:

.

Hadamard[sửa]

Biểu diễn mạch chứa cổng Hadamard
Mạch khởi tạo thanh ghi lượng tử

Cổng Hadamard có ma trận là:

Cổng Hadamard có thể được biểu diễn trên mạch tính toán lượng tử như ở hình bên phải.

Cổng này có ý nghĩa là tạo ra trang thái "trộn" đều từ trạng thái |0> hoặc |1> đầu vào.

Một mạch lượng tử tạo bởi các cổng Hadamard như hình bên được gọi là mạch khởi tạo thanh ghi lượng tử. Đầu ra của mạch này là:

Ở đây, N là số qubit đầu vào. Như vậy đầu ra của mạch khởi tạo thanh ghi lượng tử, với đầu vào N qubit ở trạng thái |0>, là trạng thái "trộn" đều của tất cả các véc tơ trong hệ cơ sở của không gian 2N chiều chứa các trạng thái của N qubit.

Quay pha[sửa]

Biểu diễn mạch chứa cổng quay pha

Cổng quay pha, với pha được quay đi một góc , có ma trận là:

Cổng quay pha có thể được biểu diễn trên mạch tính toán lượng tử như ở hình bên phải.

Như vậy, . Còn cổng quay pha tác động lên trạng thái qubit tổng quát, trên một mặt cầu Bloch, ra kết quả là xoay trạng thái này theo góc quanh trục thẳng đứng trên mặt cầu Bloch.

Cổng hai qubit[sửa]

Trạng thái của hai qubit là một véc tơ trong không gian véc tơ 4 chiều. Một phép tính lượng tử với đầu vào là một qubit sẽ tương ứng với một phép toán tuyến tính trên véc tơ trong không gian véc tơ 4 chiều này. Tức là tương đương việc nhân một ma trận vào với véc tơ thể hiện trạng thái qubit đầu vào, với ma trận là ma trận của phép tính. Một cách tổng quát, ma trận này là:

Ở đây, aij là các số phức. Một số cổng nhận đầu vào là hai qubit hay được đề cập đến được liệt kê ở dưới đây.

CNOT[sửa]

Biểu diễn trên mạch của cổng CNOT

Cổng CNOT nhận đầu vào là hai qubit: qubit thứ nhất là qubit điều khiển và qubit thứ hai là qubit bị điều khiển. Ở kết quả đầu ra, qubit thứ hai cho ra sẽ bằng NOT của qubit bị điều khiển cho vào, khi và chỉ khi qubit điều khiển bằng |1>. Ma trận của CNOT là:

Cổng CNOT chuyển đầu vào là hai qubit đang vướng víu lượng tử thành đầu ra không bị vướng víu lượng tử. Ví dụ:

Ngược lại, cổng CNOT chuyển đầu vào là hai qubit đang không vướng víu lượng tử thành đầu ra bị vướng víu lượng tử.

Các cổng điều khiển khác[sửa]

Biểu diễn trong mạch lượng tử của cổng điều khiển CU

Một cách tổng quát, cho một cổng U nhận một qubit đầu vào và cho ra 1 qubit, với ma trận:

Một cổng điều khiển lượng tử tương ứng với U, viết tắt là CU, nhận đầu vào là hai qubit: qubit thứ nhất là qubit điều khiển và qubit thứ hai là qubit bị điều khiển. Ở kết quả đầu ra, qubit thứ hai cho ra sẽ bằng U của qubit bị điều khiển cho vào, khi và chỉ khi qubit điều khiển bằng |1>. Ma trận của CU là:

Biểu diễn trong mạch lượng tử của cổng điều khiển CU như hình bên phải.

Cổng ba qubit[sửa]

Với cổng nhận đầu vào là ba qubit, ma trận có kích thước 8×8. Một số cổng nhận đầu vào là ba qubit hay được đề cập đến được liệt kê ở dưới đây.

Deustch[sửa]

Cổng Deutsch , thực hiện việc biến đổi đầu vào ba qubit như sau[1]

Tiffoli[sửa]

Biểu diễn trên mạch tính toán lượng tử của cổng Toffoli

Cổng Toffoli, còn gọi là cổng CCNOT, có ma trận như sau:

Bộ cổng đầy đủ[sửa]

Trong tính toán cổ điển, bộ {Tiffoli} là một bộ đầy đủ, mà cổng Tiffoli cổ điển có cổng Tiffoli lượng tử hoàn toàn tương ứng, do đó, mọi tính toán cổ điển đều có thể được thực hiện trên máy tính lượng tử. Điều này nghĩa là mọi biểu thức toán học f(x), với x là một đầu vào có thể biểu diễn bằng trạng thái lượng tử , đều có thể được thực thi bằng một toán tử ứng với f trên .

Trong tính toán lượng tử, bộ {H, , CNOT} là một bộ đầy đủ, tức là mọi biểu thức tính toán trên các mạch hoặc máy tính lượng tử đều có thể thực hiện đến độ chính xác tùy ý bằng việc kết hợp thực thi các cổng Hadamard, quay pha và CNOT. Một bộ đầy đủ khác là {}.

Đo lường[sửa]

Biểu diễn trong mạch lượng tử của phép đo

Bản thân phép đo trong cơ học lượng tử cũng là một phép tính lượng tử, thực hiện trên một trạng thái lượng tử của một hoặc nhiều qubit đầu vào, và cho ra một trong các trạng thái riêng của các qubit này đối với toán tử của đại lượng vật lý cần đo.

Như vậy, khi nói đến phép đo, luôn cần nói rõ đo đại lượng vật lý nào, ứng với toán tử nào, có hàm riêng là các hàm nào và các trị riêng tương ứng là gì.

Biểu diễn trong mạch lượng tử của phép đo như hình bên phải.


  1. Deutsch, David (September 8, 1989), "Quantum computational networks", Proc. R. Soc. Lond. A 425 (1968): 73–90, Bibcode:1989RSPSA.425...73D, doi:10.1098/rspa.1989.0099