Làm thế nào các nhà tiên tri trong thuật toán tìm kiếm của Grover được thực hiện?


27

Thuật toán tìm kiếm của Grover cung cấp khả năng tăng tốc bậc hai có thể chứng minh cho tìm kiếm cơ sở dữ liệu chưa được sắp xếp. Thuật toán thường được biểu thị bằng mạch lượng tử sau:

Trong hầu hết các đại diện, một phần quan trọng của giao thức là "cổng tiên tri" , "kỳ diệu" thực hiện thao tác . Tuy nhiên, người ta thường không biết rằng thực sự khó khăn như thế nào khi nhận ra một cổng như vậy. Thật vậy, có vẻ như việc sử dụng một "lời sấm" này chỉ là một cách để quét những khó khăn dưới thảm.Bạnω|x(-1)f(x)|x

Làm thế nào để chúng ta biết liệu một hoạt động hoành tráng như vậy là thực sự có thể thực hiện được? Và nếu vậy, độ phức tạp của nó là gì (ví dụ về độ phức tạp của phân rã cổng)?


5
Đó cũng là điều tôi băn khoăn. Trong thí nghiệm này, ví dụ, họ cứng cáp giải pháp vào nhà tiên tri, có vị hơi giống như lừa dối tôi ...
M. Stern

Một câu trả lời tuyệt vời khác cho câu hỏi này được cung cấp trong câu trả lời này trên CS Theory SE.
glS

Câu trả lời:


20

Hàm chỉ đơn giản là một hàm boolean tùy ý của một chuỗi bit: . Đối với các ứng dụng phá mật mã, chẳng hạn như [1] , [2] hoặc [3] , đây thực sự không phải là một 'tra cứu cơ sở dữ liệu', mà sẽ cần phải lưu trữ toàn bộ cơ sở dữ liệu dưới dạng mạch lượng tử, mà là một chức năng nhưff:{0,1}n{0,1}

x{1,nếu SHMột-256(x)= =y;0,nếu không thì,

đối cố định , không có cấu trúc, chúng ta có thể khai thác cho tìm kiếm cổ điển, không giống như chức năngy

x{1,nếu 2xy(mod22048-1942289),0,nếu không thì,

cấu trúc có thể được khai thác để đảo ngược nó nhanh hơn ngay cả trên một máy tính cổ điển.

Câu hỏi về chi phí cụ thể nói chung không thể được trả lời bởi vì có thể là bất kỳ mạch nào. Đây chỉ là vấn đề tạo ra một mạch lượng tử ra khỏi mạch cổ điển . Nhưng thông thường, như trong ví dụ trên, hàm rất rẻ để đánh giá trên máy tính cổ điển, do đó, nó không gây gánh nặng đặc biệt cho máy tính lượng tử mà mọi thứ khác về thuật toán của Grover đều nằm trong ngân sách của bạn.fff

Chi phí chung duy nhất trên đầu là một cổng KHÔNG có điều kiện bổ sung trong đó là xor và một qubit phụ trợ cho nó. Cụ thể, nếu chúng ta có một mạch được tạo từ và mạch cho , sau đó nếu chúng ta áp dụng nó cho cùng với một qubit phụ trợ ban đầu ở trạng thái trong đóf

C:|một|b|một|mộtb
F:|x|một|rác|x|mộtf(x)|rác'
Cf|x|-= =H|1= =(1/2)(|0-|1)H là một cổng Hadamard, sau đó chúng ta nhận được

F|x|-|rác= =12(F|x|0|rác-F|x|1|rác)= =12(|x|f(x)|rác'-|x|1f(x)|rác').

Nếu thì , do đó, bằng cách đơn giản hóa, chúng ta thu được trong khi nếu thì , vì vậy và nói chung làf(x)= =01f(x)= =1

F|x|-|rác= =|x|-|rác',
f(x)= =11f(x)= =0
F|x|-|rác= =-|x|-|rác',
F|x|-|rác= =(-1)f(x)|x|-|rác'.


5

Chà, bài báo gốc của Grover, "Cơ học lượng tử giúp tìm kiếm kim trong đống cỏ khô" nói rõ, nó giả định rằng C (S) có thể được đánh giá trong một thời gian không đổi. Tìm kiếm của Grover không quan tâm đến khả năng triển khai, nhưng việc giảm đa thức trong cái được gọi là độ phức tạp truy vấn (số lần bạn tham khảo lời tiên tri, như cơ sở dữ liệu cổ điển)

Trên thực tế, khái niệm tiên tri trong điện toán đã được Alan Turing đề xuất để mô tả các cấu trúc mà mô tả về UTM có thể không thực hiện được (Wikipedia). Đó trong một số ý nghĩa huyền diệu.

Nhưng tất nhiên, trở lại câu hỏi của bạn, làm thế nào để chúng ta thực sự tạo ra mạch cho thuật toán tìm kiếm Grover (hoặc bất kỳ thuật ngữ nào)? Chúng ta có cần biết câu trả lời trước để tìm kiếm kết quả không? Vâng, trong một số ý nghĩa bạn cần phải. Đó chính xác là những cải tiến thông minh trên tìm kiếm Grover cố gắng thực hiện, do đó, chúng tôi không cần biết câu trả lời chính xác trước, nhưng một số thuộc tính của nó. Hãy để tôi minh họa bằng một ví dụ.

Đối với vấn đề nhận dạng mẫu bằng cách sử dụng tìm kiếm của Grover, nếu tôi có 4 mẫu trên 2 qubit (00, 01, 10, 11) và tôi muốn đánh dấu và khuếch đại 11, đường chéo của đơn vị tiên tri của tôi sẽ giống như (1,1,1 , -1) để chăm sóc sự thay đổi pha pi cho giải pháp. Vì vậy, để thực hiện đơn giản này, để xây dựng đơn vị, bạn cần biết câu trả lời đầy đủ trước.

Một cải tiến thông minh về hoàn thành mẫu nếu được đưa ra trong bài báo "Kết hợp mẫu lượng tử" của Mateas và Omar. Về bản chất, nó xây dựng nhiều phép lạ cố định như có bảng chữ cái trong tập hợp. Vì vậy, đối với chuỗi nhị phân của chúng tôi, sẽ có một lời tiên tri đánh dấu tất cả 1 và một chuỗi khác đánh dấu tất cả 0. Các nhà tiên tri được viện dẫn có điều kiện dựa trên những gì tôi muốn tìm kiếm. Nếu tôi muốn tìm kiếm 11, tôi gọi oracle 1 trên LSqubit và oracle 1 một lần nữa trên MSqubit. Bằng lời tiên tri đầu tiên, tôi sẽ khuếch đại các trạng thái (01, 11), tức là các trạng thái có LSQ là 1, và trong lệnh gọi thứ 2, nó sẽ khuếch đại (10, 11). Vì vậy, như bạn thấy, 11 là trạng thái duy nhất được khuếch đại hai lần, kết thúc với xác suất đo cao hơn. Mặc dù mạch lượng tử được biên dịch sẽ thay đổi dựa trên mẫu tìm kiếm đầu vào của tôi là gì, một mô tả cấp cao của thuật toán lượng tử vẫn giữ nguyên. Bạn có thể nghĩ về các phép lạ như các lời gọi hàm dựa trên trường hợp chuyển đổi của bộ bảng chữ cái được gọi cho mỗi ký tự trong chuỗi tìm kiếm.

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.