Xây dựng Oracle cho thuật toán Grover


16

Trong "Thông tin lượng tử và thông tin lượng tử" của Mike và Ike, thuật toán của Grover được giải thích rất chi tiết. Tuy nhiên, trong cuốn sách và trong tất cả các giải thích tôi đã tìm thấy trực tuyến về thuật toán của Grover, dường như không có đề cập nào về cách thức xây dựng Oracle của Grover, trừ khi chúng ta đã biết chúng ta đang tìm kiếm trạng thái nào, đánh bại mục đích của thuật toán. Cụ thể, câu hỏi của tôi là: đưa ra một số f (x) sao cho với một số giá trị x, f (x) = 1, nhưng đối với tất cả những người khác, f (x) = 0, làm thế nào một người xây dựng một nhà tiên tri sẽ đưa chúng ta từ trạng thái ban đầu, tùy ý của chúng tôi | x> | y> đến | x> | y + f (x)>? Càng nhiều chi tiết rõ ràng càng tốt (có lẽ là một ví dụ?) Sẽ được đánh giá rất cao. Nếu việc xây dựng như vậy cho bất kỳ chức năng tùy ý nào là có thể với Hadamard, Pauli hoặc các cổng lượng tử tiêu chuẩn khác,


"Ở đây dường như không đề cập đến cách thức xây dựng Oracle của Grover, trừ khi chúng ta đã biết chúng ta đang tìm kiếm trạng thái nào, đánh bại mục đích của thuật toán." ... "Oracle của Grover" là vấn đề cần giải quyết. Bạn không xây dựng nó. Bạn đã được cấp (quyền truy cập vào) nó và được yêu cầu thực hiện tính toán để khám phá giá trị. Nếu nó giúp, giả vờ rằng tôi xây dựng nhà tiên tri, và sau đó yêu cầu bạn giải quyết vấn đề. (Ngoài ra, lưu ý rằng việc đọc / ghi / chuẩn bị cơ sở dữ liệu của mục mất nhiều thời gian hơn so với chạy thuật toán thời gian của Grover .)NN
Daniel Apon

2
Nhưng điều gì sẽ xảy ra nếu thay vì được ban cho lời sấm truyền, chúng ta được ban cho một số f (x)? Hãy tưởng tượng chúng ta đang giải quyết vấn đề 3-SAT và muốn sử dụng Grover để cung cấp giải pháp tăng tốc cho giải pháp. Chúng tôi biết f (x) trong câu hỏi (mệnh đề 3-SAT), nhưng không nhất thiết phải biết chuỗi bit x nào sẽ mang lại kết quả đúng khi cắm vào 3-SAT. Không phải có cách xây dựng một nhà tiên tri từ hàm 3-SAT để tìm chuỗi bit chính xác? Nếu không, và đúng như bạn đề xuất, một thứ gì đó sẽ được cung cấp bởi người khác, thuật toán của Grover có vẻ khá giả tạo, chỉ đơn thuần là một bài tập dành cho bạn.
Sẽ

Câu trả lời:


20

Nhà tiên tri về cơ bản chỉ là một triển khai của vị từ mà bạn muốn tìm kiếm một giải pháp thỏa mãn.

Ví dụ: giả sử bạn có vấn đề 3 sat:

(¬x1 ∨ ¬x3 ∨ ¬x4) ∧
    (x2 ∨ x3 ∨ ¬x4) ∧
    (x1 ∨ ¬x2 ∨ x4) ∧
    (x1 ∨ x3 ∨ x4) ∧
    (¬x1 ∨ x2 ∨ ¬x3)

Hoặc, ở dạng bảng với mỗi hàng là một mệnh đề 3, x có nghĩa là "biến này sai", o có nghĩa là "biến này đúng" và không gian có nghĩa là "không có trong mệnh đề":

1 2 3 4
-------
x   x x
  o o x
o x   o
x o x

Bây giờ tạo một mạch tính toán xem đầu vào là một giải pháp, như thế này:

kiểm tra giải pháp

Bây giờ, để biến mạch của bạn thành một nhà tiên tri, hãy nhấn bit đầu ra bằng cổng Z và giải nén bất kỳ rác nào bạn đã tạo ra (tức là chạy mạch tính toán theo thứ tự ngược lại):

mạch orory

Thats tất cả để có nó. Tính toán vị ngữ, đánh kết quả bằng Z, không tính toán vị ngữ. Đó là một lời sấm truyền.

Lặp lại các bước khuếch tán với các bước tiên tri và bạn đã có cho mình một tìm kiếm khác nhau :

tìm kiếm

... mặc dù bạn có thể nên chọn một ví dụ với ít giải pháp hơn, vì vậy tiến trình diễn ra dần dần (thay vì xoay dọc theo mặt phẳng trạng thái bắt đầu trạng thái giải pháp hơn 90 độ mỗi bước như ví dụ của tôi).


Cảm ơn, điều này rất hữu ích. Rất rõ ràng, đã trả lời tất cả mọi thứ tôi yêu cầu (và thậm chí đã sử dụng các cổng lượng tử thông thường!) Có bất kỳ lý do nào khiến bạn quyết định thay đổi tất cả các qubit bắt đầu của mình sang trạng thái | 1> trước khi đặt chúng vào vị trí chồng chất với cổng Hadamard thay vì chỉ đặt | 0 > qubit nhà nước thông qua Hadamards (nghĩa là có lợi thế cho việc này)? Ngoài ra, hoạt động nào là cho các bước khuếch tán của bạn? Trông giống như X được kiểm soát, nhưng bạn đang sử dụng các điều khiển của | 1> hay | 0>?
Sẽ

@ Tôi sẽ sử dụng một trạng thái bắt đầu khác nhau. Bạn có thể làm điều đó miễn là bạn cũng thay đổi trạng thái bị phủ định bởi toán tử khuếch tán (chúng phải khớp). Tất cả các trạng thái bắt đầu / khuếch tán có khoảng cách góc bằng nhau đến mọi trạng thái cơ sở tính toán đều hoạt động tốt như nhau. Điều khiển cộng với vòng tròn nhỏ trong sơ đồ của tôi là "Điều khiển trục X", tương đương với điều khiển thông thường được bao quanh bởi cổng Hadamard. Nó trông giống như KHÔNG vì chúng có thể hoán đổi cho nhau . Trạng thái bắt đầu / khuếch tán của tôi là . (12|012|1)n
Craig Gidney

Câu trả lời tuyệt vời và cảm ơn vì liên kết đến algassert.com/quirk !
Frédéric Grosshans
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.