Thuật toán của Grover: nhập gì vào Oracle?


9

Tôi bối rối về những gì để nhập vào Oracle trong thuật toán của Grover.

Chúng ta không cần phải nhập những gì chúng ta đang tìm kiếm và nơi để tìm thấy những gì chúng ta đang tìm kiếm cho Oracle, ngoài các trạng thái lượng tử chồng chất?

Ví dụ: giả sử chúng tôi có một danh sách tên của mọi người {"Alice", "Bob", "Corey", "Dio"} và chúng tôi muốn tìm xem "Dio" có trong danh sách không. Sau đó, Oracle nên mất như một đầu vào và đầu ra 1 / 2 ( | 00 + | 01 + | 10 - | 11 ) . Tôi hiểu điều đó1/2(|00+|01+|10+|11)1/2(|00+|01+|10|11)

Nhưng không phải chúng ta cũng cần nhập từ "Dio" và danh sách {"Alice", "Bob", "Corey", "Dio"} vào Oracle? Nếu không, làm thế nào Oracle có thể trả lại đầu ra? Có phải nó không được đề cập rõ ràng vì Oracle là một hộp đen và chúng ta không phải suy nghĩ về cách thực hiện nó?

Hiểu biết của tôi về Oracle là,

  • Oracle có khả năng nhận ra nếu từ "Dio" có trong danh sách.
  • Để làm như vậy, Oracle lấy các trạng thái lượng tử chồng chất làm đầu vào, trong đó mỗi trạng thái lượng tử đại diện cho chỉ số của danh sách.
  • Vì vậy, đầu vào để phương tiện Oracle, kiểm tra nếu từ "Dio" là trong chỉ số 0 của danh sách và lợi nhuận - | 00 nếu có và lợi nhuận | 00 khác.|00|00|00
  • Trong trường hợp của chúng tôi, Oracle trả .1/2(|00+|01+|10|11)
  • Nhưng những gì về danh sách và từ?

1
Mặc dù không được thực hiện theo cùng một cách, tôi tin rằng câu hỏi của bạn ít nhiều giống với câu hỏi này: Thuật toán của Grover: danh sách ở đâu?
DaftWullie

Câu trả lời:


4

O(NF)NF

NFO(N)O(NF)=O(NN)=O(N1.5)N1.5>N


O(Nlog(N))

@DaftWullie Vấn đề là Grover phải thực hiện tra cứu dưới sự chồng chất và điều này đòi hỏi một mạch ghép kênh với các cổng N AND (hoặc các hoạt động không phải Clifford khác). Cổng AND lượng tử (tức là Toffoli) có chi phí không đáng kể khi thực hiện sửa lỗi. Chi phí này về mặt kỹ thuật cũng có trong máy cổ điển (tức là RAM có cổng O (N) AND), nó chỉ xảy ra không đáng kể và thậm chí có thể tránh được trong bối cảnh đó.
Craig Gidney

Tôi không hiểu bạn đang nói gì. Bạn có thể bày tỏ một câu hỏi và trả lời nó để hiển thị chi tiết không? (Tôi không nghĩ rằng tôi có thể diễn đạt một câu hỏi đủ tốt vào thời điểm này)
DaftWullie

@DaftWullie Tôi nghĩ rằng câu hỏi sẽ giống như "làm thế nào để tôi cho một máy tính lượng tử đọc quyền truy cập vào cơ sở dữ liệu cổ điển và nó đắt như thế nào".
Craig Gidney
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.