Có thuật toán lượng tử nào cải thiện SAT cổ điển không?


29

Các thuật toán cổ điển có thể giải 3-SAT trong thời gian (ngẫu nhiên) hoặc thời gian (xác định). (Tham khảo: tốt nhất Upper Bounds trên SAT )1.3071n1.3303n

Để so sánh, sử dụng thuật toán của Grover trên máy tính lượng tử sẽ tìm kiếm và cung cấp giải pháp trong , ngẫu nhiên. (Điều này vẫn có thể yêu cầu một số kiến ​​thức về việc có bao nhiêu giải pháp có thể có hoặc không, tôi không chắc những giới hạn đó vẫn cần thiết như thế nào.) Điều này rõ ràng tồi tệ hơn đáng kể. Có bất kỳ thuật toán lượng tử nào làm tốt hơn các thuật toán cổ điển tốt nhất (hoặc ít nhất - gần như là tốt không?)1.414n

Tất nhiên các thuật toán cổ điển có thể được sử dụng trên một máy tính lượng tử giả định có đủ không gian làm việc; Tôi đang tự hỏi về các thuật toán lượng tử vốn có.

Câu trả lời:


21

Tôi nghĩ rằng người ta có thể có được một giới hạn trên không tầm thường từ điện toán lượng tử bằng cách tăng tốc các thuật toán ngẫu nhiên của Schöning cho 3-SAT. Thuật toán của Schöning chạy theo thời gian và sử dụng các kỹ thuật khuếch đại biên độ tiêu chuẩn, người ta có thể có được thuật toán lượng tử chạy theo thời gian nhanh hơn đáng kể so với thuật toán cổ điển.(4/3)n(2/3)n=1.15n


Đẹp, có vẻ đúng. Cho thấy rằng tôi nên xem các thuật toán cổ điển một lần trước khi hỏi! :) Một số kỹ thuật đọc lướt khác gợi ý thuật toán ngẫu nhiên tốt nhất cho 3-SAT (không nhất thiết là duy nhất) là , vì vậy tôi đoán chúng ta có thể mong đợi 1.1492 n từ máy tính lượng tử ... cảm ơn! 1.32065n1.1492n
Alex Meiburg

Bạn cũng có thể thưởng thức bài báo này: digitalcommons.utep.edu/cgi/ Kẻ
Martin Schwarz

30

Thật vậy, như wwjohnsmith1 đã nói, bạn có thể tăng tốc độ căn bậc hai so với thuật toán của Schöning cho 3-SAT, nhưng nói chung hơn là đối với thuật toán của Schöning cho k-SAT. Trên thực tế, nhiều thuật toán ngẫu nhiên cho k-SAT có thể được thực hiện nhanh hơn theo phương pháp bậc hai trên máy tính lượng tử.

Lý do cho hiện tượng chung này là như sau. Nhiều thuật toán ngẫu nhiên cho k-SAT chạy trong thời gian (trong đó T ( n ) là một số hàm tăng trưởng theo cấp số nhân của n ) thực sự làm một cái gì đó mạnh hơn. Tại cốt lõi của chúng, có một thuật toán đa thức thời gian đưa ra một phép gán thỏa mãn, nếu có tồn tại, với xác suất ít nhất là 1 / T ( n ) . Từ đó, rõ ràng là nếu bạn lặp lại thuật toán đa thời gian O ( T nàyO(T(n)poly(n))T(n)n1/T(n) nhiều lần và chấp nhận nếu bất kỳ lần chạy nào trả về một giải pháp, bạn sẽ nhận được thuật toán ngẫu nhiên cho k-SAT chạy trong thời gian O ( T ( n ) p o l y ( n ) ) .O(T(n))O(T(n)poly(n))

Bây giờ thay vì chạy thuật toán này lần, bạn có thể chạy khuếch đại biên độ trên thuật toán đa thời gian này. Khuếch đại biên độ là một thuật toán lượng tử nói chung mà có thể quyết định nếu thuật toán khác chấp nhận với xác suất 0 hoặc với xác suất 1 / T chỉ sử dụng O ( O(T(n))1/Tsử dụng thuật toán này. Áp dụng khuếch đại biên độ đến như một k-SAT giải sẽ ngay lập tức tạo ra một thuật toán lượng tử cho k-SAT với thời gian chạyO(O(T), nhanh hơn bậc hai (bỏ qua thuật ngữ poly (n)).O(T(n)poly(n))

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.