Làm cách nào để thêm 1 + 1 bằng máy tính lượng tử?


29

Đây có thể được xem là phần mềm bổ sung cho Làm thế nào một máy tính lượng tử làm toán cơ bản ở cấp độ phần cứng?

Câu hỏi được đặt ra bởi một thành viên của khán giả tại mạng thứ 4 của Mạng Tây Ban Nha về Thông tin lượng tử và Công nghệ lượng tử . Bối cảnh mà người đưa ra là: " Tôi là một nhà khoa học vật liệu. Bạn đang đưa ra các khái niệm lý thuyết tinh vi tiên tiến, nhưng tôi gặp khó khăn khi hình dung hoạt động thực tế của máy tính lượng tử cho một nhiệm vụ đơn giản. Nếu tôi đang sử dụng điốt, bóng bán dẫn, v.v. dễ dàng tìm ra cho mình các hoạt động cổ điển mà tôi cần chạy để thêm 1 + 1. Làm thế nào bạn có thể làm điều đó, một cách chi tiết, trên một máy tính lượng tử? ".

Câu trả lời:


21

Theo câu hỏi được liên kết, giải pháp đơn giản nhất là để bộ xử lý cổ điển thực hiện các hoạt động đó nếu có thể . Tất nhiên, điều đó có thể là không thể, vì vậy chúng tôi muốn tạo một bộ cộng .

Có hai loại bộ cộng bit đơn - bộ cộng nửabộ cộng đầy đủ . Thời gian bán bộ cộng mất đầu vào MộtB và kết quả đầu ra 'tổng hợp' (XOR hoạt động) S= =MộtB và 'carry' (AND hoạt động) C= =MộtB . Một bộ cộng đầy đủ cũng có 'carry trong' Ctôin đầu vào và 'thực hiện' đầu ra Cobạnt , thay thế C . Đây nhuận S= =MộtBCtôin .Cobạnt= =Ctôin(Một+B)+MộtB


Phiên bản lượng tử của nửa cộng

Nhìn vào cổng CNOT trên thanh ghi qubit thanh ghi điều khiển B : CNOT A B | 0 Một | 0 BMộtB mà ngay lập tức cung cấp cho các đầu ra củaBđăng ký nhưmộtB=S. Tuy nhiên, chúng tôi vẫn chưa tính toán số mang và trạng thái củathanh ghiBđã thay đổi nên chúng tôi cũng cần thực hiện thao tác AND. Điều này có thể được thực hiện bằng cách sử dụng cổng Toffoli (kiểm soát-CNOT / CCNOT) 3 qubit. Điều này có thể được thực hiện bằng cách sử dụng các thanh ghiABlàm các thanh ghi điều khiển và khởi tạo thanh ghi thứ ba(C)ở trạng thái| 0

CNOTMộtB|0Một|0B= =|0Một|0BCNOTMộtB|0Một|1B= =|0Một|1BCNOTMộtB|1Một|0B= =|1Một|1BCNOTMộtB|1Một|1B= =|1Một|0B,
BMộtB= =SBMộtB(C)|0, Cho đầu ra của thanh ghi thứ ba như . Thực hiện Toffoli trên các thanh ghi AB thanh ghi điều khiển C theo sau là CNOT với A điều khiển B đưa ra đầu ra của thanh ghi B là tổng và đầu ra của thanh ghi C là mang. Một sơ đồ mạch lượng tử của nửa cộng được thể hiện trong hình 1.MộtB= =CMộtBCMộtBBC

Sơ đồ mạch của một nửa cộng

Hình 1: Sơ đồ mạch của một nửa cộng, bao gồm Toffoli theo sau là CNOT. Bit đầu vào là B , cho tổng S với carry ra C .MộtBSC


Phiên bản lượng tử của bộ cộng đầy đủ

Thể hiện trong hình 2, một cách đơn giản để thực hiện điều này cho các bit đơn là sử dụng thanh ghi qubit, ở đây có nhãn A , B , C i n1 , trong đó 1 bắt đầu ở trạng thái | 04MộtBCtôin11 , vì vậy tình trạng ban đầu là | Một | B | C i n | 0 :|0|Một|B|Ctôin|0

  1. Áp dụng Toffoli bằng B để kiểm soát 1 : | Một | B | C i n | Một B MộtB1|Một|B|Ctôin|MộtB
  2. CNOT với kiểm soát B : | Một | Một B | C i n | Một B MộtB|Một|MộtB|Ctôin|MộtB
  3. Toffoli với C i n kiểm soát 1 : | Một | Một B | C i n|BCtôin1|Một|MộtB|Ctôin|MộtB(MộtB)Ctôin= =Cobạnt
  4. CNOT với kiểm soát C i n : | Một | Một B | Một B C i n = S | C o u tBCtôin|Một|MộtB|MộtBCtôin= =S|Cobạnt

Bước cuối cùng để lấy lại đầu vào B là áp dụng CNOT với thanh ghi A thanh ghi điều khiển B , đưa ra trạng thái đầu ra cuối cùng là | ψ o u tMộtBMộtB

|ψobạnt= =|Một|B|S|Cobạnt

Điều này cho đầu ra của thanh ghi là tổng và đầu ra của thanh ghi 2 là thực hiện.Ctôin2

Phiên bản lượng tử của bộ cộng đầy đủ

Hình 2: Sơ đồ mạch của một bộ cộng đầy đủ. Các bit đầu vào là Một cùng với carry trong C i n , cho tổng S với thực hiện C o u t .BCtôinSCobạnt


Phiên bản lượng tử của bộ cộng mang gợn

Một phần mở rộng đơn giản của bộ cộng đầy đủ là một bộ cộng mang gợn, được đặt tên là 'gợn' mang theo để trở thành vật mang theo của bộ cộng tiếp theo trong một loạt các bộ cộng, cho phép tính tổng tùy ý (nếu chậm). Một phiên bản lượng tử của một bộ cộng như vậy có thể được tìm thấy, ví dụ ở đây


Thực hiện thực tế của một nửa cộng

Đối với nhiều hệ thống, việc thực hiện một cổng Toffoli không đơn giản bằng việc thực hiện một cổng qubit (hoặc thậm chí hai qubit). Câu trả lời này đưa ra cách phân tách Toffoli thành nhiều cổng nhỏ hơn. Tuy nhiên, trong các hệ thống thực, chẳng hạn như IBMQX , cũng có thể có các vấn đề về việc các qubit có thể được sử dụng làm mục tiêu. Như vậy, một triển khai thực tế trên IBMQX2 trông như thế này: Bộ cộng nửa qubit đơn trên IBMQX2

Hình 3: Triển khai bộ cộng một nửa trên IBMQX2. Ngoài việc phân tách cổng Toffoli thành nhiều cổng nhỏ hơn, các cổng bổ sung được yêu cầu vì không phải tất cả các thanh ghi qubit đều có thể được sử dụng làm mục tiêu. Các thanh ghi q [0] và q [1] được thêm vào để lấy tổng bằng q [1] và thực hiện trong q [2]. Trong trường hợp này, kết quả q [2] q [1] sẽ là 10. Chạy nó trên bộ xử lý đã cho kết quả chính xác với xác suất 42,8% (mặc dù đó vẫn là kết quả có khả năng nhất).


Có bất kỳ trình bổ sung máy tính lượng tử?
John Duffield

@JohnDuffield Tôi không chắc liệu bạn có nghĩa là bộ cộng lượng tử (trạng thái) gần đúng (bộ bổ sung trạng thái chính xác rõ ràng bị cấm) hoặc triển khai bộ cộng 'cổ điển' trên máy tính lượng tử - mặc dù tôi chưa thử mã cụ thể này - hoặc một cái gì đó khác ?
Mithrandir24601

Các con số được thể hiện như thế nào? Có phải trong nhị phân?
user3483902

01|0|1Một01B

@ Mithrandir24601: có vấn đề gì không? Không phải là câu trả lời không trong cả hai trường hợp? Tôi thực sự đã xây dựng một bộ cộng song song. Tôi có bằng Khoa học Cmputer.
John Duffield

6

`` Nếu tôi đang sử dụng điốt, bóng bán dẫn, v.v. Tôi có thể dễ dàng tự mình tìm ra các hoạt động cổ điển mà tôi cần chạy để thêm 1 + 1. Làm thế nào bạn sẽ làm điều đó, chi tiết, trên một máy tính lượng tử? ''

Ấn tượng! Tôi nghi ngờ rằng hầu hết mọi người không thể dễ dàng tìm ra cách kết hợp điốt và bóng bán dẫn để thực hiện một adde hai bit cổ điển (mặc dù tôi không nghi ngờ nhà khoa học vật liệu này có thể làm điều đó). ;)

Về mặt lý thuyết, cách bạn triển khai một bộ cộng cổ điển khá giống nhau trong máy tính cổ điển và lượng tử: bạn có thể làm điều đó trong cả hai trường hợp bằng cách thực hiện một cổng Toffoli ! (Xem câu trả lời của @ Mithrandir24601.)

Nhưng nhà khoa học vật liệu có lẽ muốn hiểu làm thế nào để thực hiện một cổng như vậy (hoặc một chuỗi tương đương của các cổng lượng tử khác) trên một thiết bị vật lý. Có lẽ có một cách vô hạn để làm điều đó bằng cách sử dụng các công nghệ lượng tử khác nhau, nhưng đây là hai cách thực hiện trực tiếp của cổng này bằng cách sử dụng các ion bị bẫy và các qubit siêu dẫn:

  1. Hiện thực hóa Cổng Toffoli lượng tử với các ion bị bẫy, T. Monz, K. Kim, W. Hänsel, M. Riebe, AS Villar, P. Schindler, M. Chwalla, M. Hennrich và R. Blatt, Phys. Mục sư Lett. 102 , 040501, arXiv: 0804.0082 .
  2. Triển khai cổng Toffoli với các mạch siêu dẫn A. Fedorov, L. Steffen, M. Baur, MP da Silva & A. Wallraff Nature 481 , 170 mật172 , arXiv: 1108,3966 .

Bạn cũng có thể phân tách cổng Toffoli thành một chuỗi các cổng đơn qubit và CNOT. https://media.nature.com/lw926/nature-assets/srep/2016/160802/srep30600/images/srep30600-f5.jpgnhập mô tả hình ảnh ở đây Bạn có thể đọc về cách thực hiện những điều này với các photon, hốc-QED và các ion bị bẫy trong Nielsen và Chuang .


Để tiết lộ, tôi không phải là nhà khoa học vật liệu, nhưng đúng hơn, vì cuộc thảo luận không có hồi kết vẫn không thỏa đáng và theo nghĩa trừu tượng, tôi là người hiểu những gì anh ta yêu cầu, googled cho nó và cho anh ta một câu trả lời tối thiểu nhưng thỏa đáng (a nửa cộng trên quantiki) trong các điều khoản của cổng lượng tử.
agaitaarino

5

Một phương pháp mới để tính toán tổng trên máy tính lượng tử được giới thiệu. Kỹ thuật này sử dụng biến đổi Fourier lượng tử và giảm số lượng qubit cần thiết để bổ sung bằng cách loại bỏ sự cần thiết của các bit mang tạm thời.

Liên kết PDF cho 'bổ sung trên máy tính lượng tử' , được viết bởi Thomas G. Draper, viết ngày 1 tháng 9 năm 1998, sửa đổi: ngày 15 tháng 6 năm 2000.

Để tóm tắt liên kết trên, việc bổ sung được thực hiện theo sơ đồ mạch sau (lấy từ trang 6):

nhập mô tả hình ảnh ở đây

Để trích dẫn bài báo (một lần nữa, trang 6):

n


1

Tính toán song song tổng của hai qubit

Tôi muốn trải nghiệm tính toán song song tổng của hai qubit, sự chồng chất của 0 và "1 với pha -1 " được thêm vào 1; và tôi đã được truyền cảm hứng từ câu trả lời của Mithrandir24601. Các kết quả dưới đây. Tôi hy vọng câu trả lời của tôi là trong bối cảnh của những gì đã được hỏi. Nó cho thấy cách 1 được thêm 1 và 0 vào cùng một lúc, nhưng trong khi cả hai câu trả lời được tính toán, chúng ta có thể đọc câu trả lời cho chỉ một trong các phép tính mỗi khi tính toán được chạy. Bạn có thể thấy rằng trong số 1000 lần chạy, chúng tôi đọc câu trả lời "1" (1 = 0 + 1) và 380 lần và chúng tôi đọc câu trả lời "2" (2 = 1 + 1).

(34 lần chúng tôi bị vô hiệu khi 1 bit bị lật thành vô ích, 54 lần chúng tôi nhận được 0 = 0 + 1, 29 lần chúng tôi nhận được 1 = 1 + 1, 28 lần chúng tôi nhận được 2 = 0 + 1, 42 lần chúng tôi nhận được 3 = 0 + 1 và 16 lần chúng tôi nhận được 3 = 1 + 1; mỗi lỗi này phát sinh không có nghi ngờ gì về việc lật bit, lật pha hoặc cả hai). nhập mô tả hình ảnh ở đây

π

Sự chồng chất của 0 và "1 với pha -1 " trong thanh ghi một qubit được thêm vào 1 trong thanh ghi hai qubit. Với ba qubit, hai qubit đầu tiên từ trái sang phải là tổng (hoặc thứ 3 và thứ 4 của 5) và qubit bên phải nhất cho biết liệu trạng thái cơ bản (được coi là 0) được thêm vào hay trạng thái kích thích (1 với trạng thái ban đầu pha -1) đã được thêm vào.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.