Giới thiệu :
Vấn đề va chạm thường được đề cập nhất là phiên bản 2 trên 1 được Scott Aaronson mô tả trong luận án tiến sĩ của ông. Cho rằng là chẵn và một hàm f : { 1 , . . . , n } → { 1 , . . . , n } chúng tôi biết trước rằng f là 1 trên 1 hoặc 2 trên 1. Chúng tôi chỉ được phép thực hiện các truy vấn về giá trị của f ( i ) cho bất kỳ i ∈ { 1 , 2 ,nf:{1,...,n}→{1,...,n}ff(i) . Sau đó, vấn đề sẽ hỏi có bao nhiêu truy vấn chúng ta cần thực hiện để xác định chắc chắn liệu f là 1 đối 1 hay 2 đối 1.i∈{1,2,...,n}f
Việc giải quyết phiên bản 2 trên 1 một cách nhất định đòi hỏi các truy vấn và nói chung, việc phân biệt các hàm r-to-1 với các hàm 1 đến 1 đòi hỏi các truy vấn n / r + 1 .n/2+1n/r+1
Giải pháp cổ điển quyết định :
Đây là một ứng dụng đơn giản của nguyên tắc pigeonhole: nếu một hàm là r-to-1, thì sau các truy vấn chúng tôi được đảm bảo đã tìm thấy xung đột. Nếu một hàm là 1-1, thì không có xung đột nào tồn tại. Nếu chúng ta không may mắn thì các truy vấn n / r có thể trả về các câu trả lời riêng biệt. Vì vậy, truy vấn n / r + 1 là cần thiết.n/r+1n/rn/r+1
Giải pháp cổ điển ngẫu nhiên :
Nếu chúng ta cho phép ngẫu nhiên, vấn đề sẽ dễ dàng hơn. Bằng cách nghịch lý ngày sinh nhật, nếu chúng ta chọn (riêng biệt) các truy vấn một cách ngẫu nhiên, sau đó với xác suất cao, chúng tôi tìm thấy một vụ va chạm trong bất kỳ cố định 2-to-1 chức năng sau
truy vấn.Θ(n−−√)
Giải pháp BHT lượng tử :
Theo trực giác, thuật toán kết hợp việc tăng tốc căn bậc hai từ
nghịch lý sinh nhật
bằng cách sử dụng ngẫu nhiên (cổ điển) với tăng tốc căn bậc hai từ thuật toán của Grover (lượng tử).
Thứ nhất, đầu vào cho e được lựa chọn một cách ngẫu nhiên và f được truy vấn ở tất cả trong số họ. Nếu có xung đột giữa các đầu vào này, thì chúng ta trả về cặp đầu vào va chạm. Mặt khác, tất cả các đầu vào này ánh xạ tới các giá trị riêng biệt bởi f . Sau đó, thuật toán của Grover được sử dụng để tìm đầu vào mới cho f va chạm. Vì chỉ có
n 2 / 3 đầu vào như vậy để f , Thuật toán Grover có thể tìm thấy một (nếu nó tồn tại) bằng cách làm cho chỉ
O ( √n1/3ffffn2/3ftruy vấn đểf.O(n2/3−−−−√)=O(n1/3)f