Toàn cầu của cổng Toffoli


20

Về cổng Toffoli lượng tử :

  1. nó là cổ điển phổ quát, và nếu vậy, tại sao?
  2. là nó quantumly phổ quát, và tại sao?

Trong logic phi lượng tử, bạn chỉ ra rằng một tập hợp toán tử boolean khác được biết là phổ quát có thể được mô phỏng bằng tập hợp trong tay. Tôi không biết rằng nó giống nhau trong thế giới lượng tử, nhưng tôi sẽ nghĩ vậy.
Raphael

8
Trong logic lượng tử, cổng Toffoli không phải là phổ quát, bởi vì bạn chỉ có thể thực hiện các tính toán cổ điển với nó. Bạn cũng cần một số cổng lượng tử, nếu đầu vào ở trạng thái cơ bản, đặt đầu ra thành chồng chập các trạng thái cơ bản.
Peter Shor

Tôi nhận ra câu hỏi có thể gây nhầm lẫn, có lẽ nó nên được chỉnh sửa để hỏi sự khác biệt giữa tính phổ quát trong thế giới lượng tử / cổ điển.
Ran G.

Tôi chỉnh sửa câu trả lời của mình để bao quát trường hợp lượng tử. Bây giờ bạn đang nghĩ gì?
Victor Stafusa

1
@RanG. Chúng tôi có nhiệm vụ chỉ đường cho các câu hỏi trong tương lai, câu hỏi này được gắn thẻ bài tập về nhà, nhưng có vẻ như bạn không giải thích lý do tại sao bạn không thể tự giải quyết nó (và vấn đề nằm ở đâu). Tôi nghĩ đó không phải là một câu hỏi hay cho phiên bản beta riêng tư (xem phần thảo luận về meta ). Tôi bỏ phiếu để đóng câu hỏi này.
Gopi

Câu trả lời:


13

Toffoli là phổ quát cho tính toán cổ điển (như được hiển thị bởi @Victor). Tuy nhiên, Toffoli KHÔNG phổ biến cho tính toán lượng tử (trừ khi chúng ta có thứ gì đó điên rồ như ).P=BQP

Để trở nên phổ biến cho tính toán lượng tử (theo định nghĩa thông thường), nhóm được tạo ra bởi các cổng của bạn phải dày đặc trong các thể thống nhất. Nói cách khác, đưa ra một tùy và mục tiêu đơn nhất U có một số cách để áp dụng một số hữu hạn các bạn cổng lượng tử để có được một đơn nhất U ' như vậy | | U - U | | < ϵ .ϵUU||UU||<ϵ

Toffoli tự nó rõ ràng không phải là phổ quát theo định nghĩa này vì nó luôn luôn đưa các trạng thái cơ bản thành các trạng thái cơ bản, và do đó không thể thực hiện một cái gì đó có ví dụ. Nói cách khác, nó không thể tạo ra sự chồng chất.|012(|0+|1)


10

Từ bài viết trên wikipedia mà bạn đã trích dẫn :

Cổng Toffoli là phổ quát; điều này có nghĩa là đối với bất kỳ hàm boolean f (x1, x2, ..., xm), có một mạch bao gồm các cổng Toffoli có x1, x2, ..., xm và một số bit bổ sung được đặt thành 0 hoặc 1 và xuất ra x1, x2, ..., xm, f (x1, x2, ..., xm) và một số bit bổ sung (được gọi là rác). Về cơ bản, điều này có nghĩa là người ta có thể sử dụng cổng Toffoli để xây dựng các hệ thống sẽ thực hiện bất kỳ tính toán hàm boolean mong muốn nào theo cách có thể đảo ngược.

Điều đó có nghĩa đơn giản là bất kỳ hàm boolean nào chỉ có thể được xây dựng với các cổng Toffoli.

Các hàm Boolean thường được xây dựng từ các cổng OR, AND và NOT, có thể được kết hợp để tạo thành bất kỳ hàm boolean nào. Người ta biết rộng rãi rằng điều tương tự chỉ có thể xảy ra với cổng NOR hoặc chỉ với cổng NAND.

Cổng Toffoli có thể được tóm tắt là:

Toffoli(a,b,c)={(a,b,¬c)when a=b=1(a,b,c)otherwise.

Vì đầu ra thứ nhất và thứ hai luôn bằng với đầu vào thứ nhất và thứ hai, chúng tôi có thể xem xét chúng. Vì vậy chúng tôi có:

Toffoli(a,b,c)={¬cwhen a=b=1cotherwise.

Cùng với đó, có thể định nghĩa cổng NAND là:

NAND(a,b)=Toffoli(a,b,1)

Vì cổng NAND là phổ quát và cổng NAND có thể được định nghĩa là cổng Toffoli, nên cổng Toffoli là phổ quát.

Có một cách khác để chứng minh rằng Toffoli là phổ quát, bằng cách xây dựng trực tiếp các cổng AND và KHÔNG:

NOT(x)=Toffoli(1,1,x)

AND(a,b)=Toffoli(a,b,0)

Sau đó, chúng tôi có thể xây dựng cổng OR bằng luật của De Morgan :

OR(a,b)=NOT(AND(NOT(a),NOT(b))=Toffoli(1,1,Toffoli(Toffoli(1,1,a),Toffoli(1,1,b),0))


EDIT, vì câu hỏi đã được chỉnh sửa và phạm vi của nó đã thay đổi:

Đầu tiên, tôi không hiểu về điện toán định lượng, vì vậy nếu có gì sai, xin vui lòng thêm một nhận xét. Tôi đã làm một nghiên cứu nhỏ để cố gắng hoàn thành câu trả lời này và kết thúc bằng câu này:

Cổng Toffoli có thể đảo ngược (nhưng Toffoli 'được sử dụng ở trên thì không). Điều này có nghĩa là bất kỳ tính toán nào đã làm với nó đều có thể được hoàn tác. Đây là:

(a,b,c)=Toffoli(Toffoli(a,b,c))

Điều đó có nghĩa là với bất kỳ bộ ba (a, b, c) nào nếu Toffoli được áp dụng hai lần, đầu vào ban đầu được lấy làm đầu ra.

Khả năng đảo ngược rất quan trọng vì các cổng lượng tử phải có thể đảo ngược, do đó cổng Toffoli (cổ điển) có thể được sử dụng làm cổng lượng tử do điều này.

Như đã trình bày ở đây , cổng tiếng Đức được định nghĩa theo cách tương tự như cổng Toffoli, nhưng thay vì cổng cổ điển, nó là cổng số lượng:

Deutsch(a,b,c)=|a,b,c{icos(θ)|a,b,c+sin(θ)|a,b,1cfor a=b=1|a,b,cotherwise.

Theo cách này, cổng Toffoli là một trường hợp cụ thể của cổng tiếng Đức trong đó:

Toffoli(a,b,c)=Deutsch(π2)(a,b,c)

π2

Một bộ Tgate lượng tử phổ quát có thể thu được, nếu chúng ta kết hợp cổng Toffoli với cổng Hadamard. Đây chính xác là những gì cổng Đức làm.

Tài liệu tham khảo thú vị có thể được tìm thấy ở đây , ở đâyở đây . Một tài liệu tham khảo có giá trị có thể, cho thấy nền tảng của biến đổi tiếng Đức nên ở đây , tuy nhiên liên kết được bảo vệ bằng mật khẩu.


Toffolli không phải là phổ quát cho tính toán lượng tử, bản thân CNOT cũng không. Điều này dễ thấy vì họ không thể tạo ra sự chồng chất.
Artem Kaznatcheev

Phần cổ điển trong câu trả lời của bạn là tuyệt vời, tôi không chắc các phần lượng tử có ý nghĩa nhiều như vậy. Không cần phải tranh luận rằng cổng Toffoli là cổng đảo ngược, vì nó là cổng lượng tử hợp lệ và do đó, theo định nghĩa, có thể đảo ngược. Đối với Edit2: bài báo đó nói rằng{Hadamard, Toffoli}là một bộ phổ quát, nhưng tôi không nghĩ rằng nó nói Toffoli là một bộ phổ quát (hoặc tôi có bỏ lỡ điều gì không?)
Ran G.

Tài liệu tham khảo của bạn trong EDIT 2 là sai. Bài báo đó nói rõ rằng Toffoli + Hadamard là phổ quát, chứ không phải Toffoli một mình
Artem Kaznatcheev

@ArtemKaznatcheev: Bài báo viết "Toffoli và Hadamard". Sau đó tôi nghĩ rằng điều này có nghĩa là "Toffoli là một ví dụ và Hadamart là một ví dụ khác". Dù sao thì rõ ràng rồi.
Victor Stafusa

Tôi chỉnh sửa nó, nên ok bây giờ.
Victor Stafusa
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.