Thuật toán Grover cho tìm kiếm cơ sở dữ liệu: lợi thế lượng tử ở đâu?


8

Tôi đã cố gắng hiểu những gì có thể là lợi thế của việc sử dụng thuật toán Grover để tìm kiếm trong cơ sở dữ liệu D (khóa, giá trị) tùy ý với các giá trị N thay vì tìm kiếm cổ điển.

Tôi giả sử rằng hàm oracle là hàm f (key) = y, trong đó y là chỉ số của giá trị tương ứng trong cơ sở dữ liệu cổ điển.

Vấn đề của tôi liên quan đến nhà tiên tri. Mạch oracle phải được sửa đổi cho mỗi tìm kiếm được thực hiện trong cơ sở dữ liệu vì khóa được chỉ định trong orory. Giả sử đây là một hoạt động không đáng kể cho đơn giản.

Giả sử rằng mạch orory phải được tính toán một cách cổ điển, nó sẽ yêu cầu tạo ra một mạch hoạt động giống như hàm f (key) = y. Hàm này sẽ được lấy trong ít nhất các bước O (N) (trừ một số trường hợp đặc biệt). Mạch chức năng oracle phải được tính toán lại mỗi khi mục nhập cơ sở dữ liệu được sửa đổi / thêm / xóa, với chi phí là O (N).

Nhiều bài báo như Triển khai thuật toán lượng tử cho người mới bắt đầu , Thuật toán lượng tử cho kết hợp và luồng mạng dường như không xem xét đến lời tiên tri nào cả.

Tôi không biết liệu tôi có phải xem xét một cơ sở dữ liệu lượng tử để có được lợi thế thực sự hay không ( điều này và sự không đáng tin cậy của kết quả lượng tử đã thuyết phục tôi không phải là một ý tưởng hay, nhưng đó chỉ là phỏng đoán).

Vì vậy, nơi được coi là phức tạp để xây dựng nhà tiên tri? Có phải tôi đã hiểu nhầm điều gì không?

Có phải "mạch chức năng orory phải được tính toán lại mỗi khi mục nhập cơ sở dữ liệu được sửa đổi / thêm / xóa, với chi phí O (N)" là một giả định sai?


tại sao bạn lại nói rằng " Mạch chức năng orory phải được tính toán lại mỗi khi mục nhập cơ sở dữ liệu được sửa đổi / thêm / xóa "? Hàm oracle sẽ chỉ cần là một phiên bản có thể đảo ngược của mạch cổ điển để kiểm tra xem một khóa đã cho có phải là khóa bạn đang tìm kiếm hay không. Thay đổi số lượng khóa (nghĩa là các thành phần nào trong cơ sở dữ liệu) không yêu cầu bạn thay đổi cấu trúc của nhà tiên tri, giống như nó không yêu cầu bạn thay đổi chức năng cổ điển bạn sẽ sử dụng cho tìm kiếm thông thường
glS

Vâng, vấn đề là "chỉ cần là một phiên bản đảo ngược của mạch cổ điển". Nếu nó là một sự không chính xác 1: 1 giữa thuật toán cổ điển và thuật toán lượng tử, thì sẽ có một loại trình biên dịch từ ngôn ngữ lập trình cổ điển sang mạch lượng tử. Chuyển đổi mọi thứ từ thuật toán cổ điển "như hiện tại" sang các thuật toán lượng tử dường như luôn là một ý tưởng tồi, bởi vì hầu hết các hoạt động hầu như không mở rộng quy mô ( xem triển khai nCNOT ).
Moreno G

Trong mạch lượng tử, bạn không có quyền truy cập vào cơ sở dữ liệu cổ điển vật lý. Hệ thống "máy tính lượng tử" tương tác với: - Mô tả sơ đồ mạch, được đưa ra bởi (thường) một chương trình cổ điển làm đầu vào; - Các kết quả của việc thực hiện như đầu ra. Trong quá trình thực thi, không có quyền truy cập vào các tài nguyên bên ngoài khác (tôi không chắc đây là do thiết kế hay theo giới hạn của công nghệ thực tế). Vì vậy, biết rằng nhà tiên tri mô tả cả cơ sở dữ liệu và khóa, nó phải được sửa đổi. Và đây thường là một hoạt động không tầm thường
Moreno G

Câu trả lời:


2

Ω~(n)O(n0.99)Ω~(n1.5)O(n0.5)

Thuật toán của Grover chỉ có lợi thế khi thứ bạn đang tìm kiếm là trừu tượng, giống như các giải pháp khả thi cho vấn đề SAT, trái ngược với nghĩa đen được lưu trữ trong phần cứng ở đâu đó, như cơ sở dữ liệu.


nnnO(log2n)

2w2nnwnO(1)W(nO(1))M=2(2n)nnhà tiên tri nóng bỏng, tránh điều đếm, bạn sẽ cần lặp lại dữ liệu cổ điển như là một phần của việc xây dựng mạch lượng tử. Tôi đoán rằng về mặt triết học, tôi phản đối việc sử dụng mô hình RAM khi so sánh các loại máy tính khác nhau như vậy.
Craig Gidney

ww2wwnwMW

Tóm lại, điều tôi đang cố gắng nói là sẽ thật tuyệt nếu bạn có thể mở rộng câu trả lời này. Dường như có thông tin hữu ích ở đây. Đây có phải là loại đối số đếm từ đâu đó? Tôi chưa từng thấy nó trước đây
glS

w2wwww

6

Bạn có quyền nhận ra sự phức tạp của việc xây dựng nhà tiên tri để sử dụng nó với tìm kiếm của Grover - đó thực sự là phần khó khăn trong việc giải quyết vấn đề, và thực sự rất nhiều nguồn không xem xét sự phức tạp này.

Tôi thích nghĩ về lời sấm truyền như một công cụ để nhận ra câu trả lời, không phải để tìm ra nó. Ví dụ: nếu bạn đang tìm cách giải quyết vấn đề SAT , mạch orory sẽ mã hóa công thức Boolean cho một trường hợp cụ thể của vấn đề bạn đang cố gắng giải quyết. Kích thước mạch trong trường hợp này phụ thuộc vào kích thước của công thức chứ không phụ thuộc vào kích thước của không gian tìm kiếm. Bạn có thể tìm thấy một ví dụ về việc thực hiện một lời tiên tri cho một ví dụ về vấn đề SAT trong hướng dẫn của tôi .

Nếu bạn sử dụng thuật toán của Grover để tìm kiếm cơ sở dữ liệu, nhà tiên tri sẽ phải mã hóa điều kiện bạn đang tìm kiếm, nhưng cũng là tiêu chí của việc phần tử có trong cơ sở dữ liệu hay không. Ví dụ: nếu bạn đang tìm kiếm một tên bắt đầu bằng A, nhà tiên tri cần nhận ra tất cả các chuỗi bắt đầu bằng A, nhưng nó cũng cần nhận ra chuỗi nào có trong cơ sở dữ liệu - nếu không thuật toán sẽ tạo ra một chuỗi ngẫu nhiên bắt đầu với A, có lẽ không phải là thứ bạn đang tìm kiếm. (Đây không phải là vấn đề với ví dụ về vấn đề SAT, vì bất kỳ phép gán biến nào thỏa mãn công thức đều là phép gán biến hợp lệ.)

Tôi không biết về một ví dụ hay về việc sử dụng tìm kiếm của Grover để tìm kiếm thông qua cơ sở dữ liệu phi cấu trúc - theo hiểu biết của tôi, thuật toán này phù hợp với các tìm kiếm có cấu trúc nào đó. Rất đáng để kiểm tra các câu hỏi khác trên Grover trên trang web này, vì rất nhiều trong số họ sẽ xem xét việc triển khai tiên tri.


Tôi có một số nghi ngờ về sự tồn tại của một cách chung chung tốt để xây dựng một nhà tiên tri, nếu không tôi sẽ mong muốn tìm thấy nó ít nhất là một triển khai tiên tri. Thật vậy, dường như sử dụng thuật toán Grover để tìm kiếm trong cơ sở dữ liệu là một ứng dụng tồi. Tôi hoàn toàn đồng ý về ứng dụng giải SAT, nó phù hợp hơn nhiều với những gì thuật toán Grover cho phép làm.
Moreno G

5

Vấn đề là với giả định ban đầu của bạn: lời tiên tri cho Grover dựa trên hàm f (value) = 0/1, trong đó 1 chỉ ra rằng giá trị đáp ứng tiêu chí tìm kiếm của bạn và 0 chỉ ra rằng nó không. Điều này có nghĩa là bạn phải xây dựng một nhà tiên tri mới cho mỗi tìm kiếm khác nhau, nhưng không phải cho mỗi cơ sở dữ liệu khác nhau.

Điều đó nói rằng, thuật toán của Grover và cơ sở dữ liệu lượng tử không tạo ra sự thay thế tốt cho các phương pháp tra cứu cơ sở dữ liệu cổ điển. Hãy xem bài viết này để thảo luận về tính thực tiễn của thuật toán Grover trong bối cảnh này.

Thuật toán của Grover có ứng dụng thực tế khi được khái quát hóa thành khuếch đại biên độ , xuất hiện như một thành phần của nhiều thuật toán lượng tử khác. Khuếch đại biên độ là một cách để cải thiện khả năng thành công của thuật toán lượng tử xác suất.


"Mặc dù thuật toán của Grover đáp ứng Yêu cầu 2 về nguyên tắc, việc đáp ứng nó bằng một mức đáng kể trên thang đo log có thể khó khăn trong nhiều trường hợp vì việc triển khai mạch nhỏ của hàm orory p (x) có thể không tồn tại hoặc có thể yêu cầu không hợp lý nỗ lực tìm kiếm. ". Đây thực tế là cùng một phỏng đoán tôi đã đưa ra. Điều tôi muốn biết là liệu tìm kiếm cơ sở dữ liệu có phải là ứng dụng tồi cho thuật toán Grover hay không. Có bằng chứng chính thức nào về những gì được nói ở đây không?
Moreno G

Ngoài ra, điều đó không hoàn toàn đúng, việc triển khai này mang lại kết quả (có thể hữu ích khi có nhiều hơn một yếu tố được đánh dấu)
Moreno G

1

Thuật toán của Grover là một bộ giải SAT (lượng tử-) mạch. Tôi cho rằng nó cũng có thể là một bộ giải hộp đen theo nghĩa đen, nhưng nó chỉ hoạt động với các hộp đen không trang trí trạng thái đầu vào vướng víu của bạn và tôi gặp khó khăn khi tin rằng những thứ đó tồn tại.

Tôi không biết tại sao Grover hoặc bất kỳ ai khác gọi nó là thuật toán tìm kiếm cơ sở dữ liệu. Tất nhiên, bạn có thể cung cấp cho nó một mạch thực hiện kiểm tra thành viên đã đặt, với một số đầu vào được gắn vào khóa bạn đang tìm kiếm và phần còn lại đại diện cho giá trị đầu ra và gọi đó là tìm kiếm cơ sở dữ liệu. Nhưng bạn có thể làm điều tương tự với một bộ giải SAT cổ điển và không ai gọi chúng là thuật toán tìm kiếm cơ sở dữ liệu theo hiểu biết của tôi. Và để Grover (hoặc người giải SAT cổ điển) có khả năng cạnh tranh với loại vấn đề này, "cơ sở dữ liệu" về cơ bản không thể giải thích được, điều đó có nghĩa là nó quá lớn để có thể lập chỉ mục, điều đó có nghĩa là nó không thực sự được lưu trữ ở bất cứ đâu, khiến nó không thực sự được lưu trữ theo tôi không phải là cơ sở dữ liệu (và không phải dữ liệu).

Tìm một mạch hiệu quả thực hiện một chức năng nhất định là một vấn đề quan trọng và thú vị, nhưng nó cũng rất rộng; nó bao gồm nhiều thứ gọi là khoa học máy tính. Tôi không thấy những gì có thể nói về nó trong bối cảnh thuật toán của Grover sẽ không áp dụng như nhau trong bất kỳ bối cảnh nào khác. Thuật toán của Grover chỉ cần một mạch được tối ưu hóa sau khi bạn tìm thấy nó và đánh giá nó khoảng timesN lần. Mạch cần phải có thể đảo ngược, làm cho nó hơi khác so với các mạch cổ điển thông thường, nhưng điều đó vẫn không liên quan trực tiếp đến Grover.

Tóm lại, tôi nghĩ rằng mọi người không nói về việc tìm ra mạch tiên tri bởi vì nó không thực sự liên quan đến thuật toán lượng tử (mặc dù tiêu đề của bài báo của Grover) và bởi vì đó là một chủ đề phức tạp và sâu rộng mà không có cách xử lý nào có thể thực hiện công lý .

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.