Có một lời giải thích tốt của Craig Gidney ở đây (anh ta cũng có nội dung tuyệt vời khác, bao gồm một trình mô phỏng mạch, trên blog của mình ).
Về cơ bản, thuật toán của Grover áp dụng khi bạn có một hàm trả về True
một trong những đầu vào có thể của nó và False
cho tất cả các đầu vào khác. Công việc của thuật toán là tìm ra cái trả về True
.
Để làm điều này, chúng ta biểu thị các đầu vào dưới dạng các chuỗi bit và mã hóa chúng bằng cách sử dụng |0⟩ và |1⟩ trạng thái của một chuỗi các qubit. Vì vậy, chuỗi bit 0011
sẽ được mã hóa ở trạng thái bốn qubit |0011⟩ , ví dụ.
Chúng ta cũng cần có khả năng thực hiện chức năng bằng cách sử dụng cổng lượng tử. Cụ thể, chúng ta cần tìm một chuỗi các cổng sẽ thực hiện một U đơn nhất sao cho
U|a⟩=−|a⟩,U|b⟩=|b⟩
trong đó a là chuỗi bit mà hàm sẽ trả về True
và b là bất kỳ chuỗi nào sẽ trả về False
.
Nếu chúng ta bắt đầu với sự chồng chất của tất cả các chuỗi bit có thể, điều này khá dễ thực hiện chỉ bằng cách Hadamending mọi thứ, tất cả các đầu vào bắt đầu với cùng biên độ 12n√ (trong đónlà độ dài của chuỗi bit chúng ta đang tìm kiếm và do đó số lượng qubit chúng ta đang sử dụng). Nhưng nếu sau đó chúng ta áp dụng ororyU, biên độ của trạng thái mà chúng ta đang tìm kiếm sẽ thay đổi thành−12n√ .
Đây không phải là bất kỳ sự khác biệt dễ quan sát, vì vậy chúng ta cần phải khuếch đại nó. Để làm điều này chúng ta sử dụng Grover Diffusion điều hành , D . Tác dụng của toán tử này về cơ bản là xem xét mỗi biên độ khác với biên độ trung bình như thế nào, và sau đó đảo ngược sự khác biệt này. Vì vậy, nếu một biên độ nhất định là một lượng nhất định lớn hơn biên độ trung bình, nó sẽ trở thành cùng một lượng nhỏ hơn giá trị trung bình và ngược lại.
Cụ thể, nếu bạn có sự chồng chất của các chuỗi bit bj , toán tử khuếch tán có hiệu lực
D:∑jαj|bj⟩↦∑j(2μ−αj)|bj⟩
nơi μ=∑jαj là biên độ trung bình. Vì vậy, bất kỳ biên độ μ+δ bị biến thành μ−δ . Để xem tại sao nó có hiệu ứng này, và làm thế nào để thực hiện nó, hãy xem các ghi chú bài giảng này .
Hầu hết các biên độ sẽ lớn hơn một chút so với giá trị trung bình (do ảnh hưởng của đơn −12n√ ), vì vậy chúng sẽ trở nên nhỏ hơn một chút so với giá trị trung bình thông qua thao tác này. Không phải là một sự thay đổi lớn.
Nhà nước chúng tôi đang tìm kiếm sẽ bị ảnh hưởng mạnh mẽ hơn. Biên độ của nó nhỏ hơn rất nhiều so với giá trị trung bình, và do đó sẽ trở nên trung bình lớn hơn rất nhiều sau khi toán tử khuếch tán được áp dụng. Do đó, hiệu ứng cuối của toán tử khuếch tán là gây ra hiệu ứng nhiễu đối với các trạng thái lướt qua biên độ 12n√ từ tất cả các câu trả lời sai và thêm nó vào câu trả lời đúng. Bằng cách lặp lại quá trình này, chúng ta có thể nhanh chóng đi đến điểm mà giải pháp của chúng ta nổi bật giữa đám đông đến mức chúng ta có thể xác định được nó.
Tất nhiên, tất cả điều này cho thấy rằng tất cả các công việc được thực hiện bởi toán tử khuếch tán. Tìm kiếm chỉ là một ứng dụng mà chúng ta có thể kết nối với nó.
Xem câu trả lời cho các câu hỏi khác để biết chi tiết về cách thức thực hiện chức năng và toán tử khuếch tán .