Tài liệu tham khảo cho thuật toán bao thanh toán tối ưu của Levin?


13

Trong " Lời khuyên cho sinh viên mới tốt nghiệp " của Manuel Blum :

LEONID LEVIN tin rằng tôi làm điều đó bất cứ câu trả lời nào cho P = NP? vấn đề, nó sẽ không giống như bất cứ điều gì bạn nghĩ nó nên được. Và ông đã đưa ra một số ví dụ tuyệt vời. Đối với một người, anh ta đã đưa ra một ALGORITHM YẾU TỐ tối ưu có thể được tối ưu hóa, lên đến hằng số nhân. Anh ta chứng minh rằng nếu thuật toán của anh ta theo cấp số nhân, thì mọi thuật toán cho FACTORING đều theo cấp số nhân. Tương tự, nếu bất kỳ thuật toán nào cho bao thanh toán là đa thời gian, thì thuật toán của anh ta là đa thời gian. Nhưng chúng tôi chưa thể biết được thời gian chạy thuật toán của anh ấy bởi vì, theo nghĩa mạnh mẽ, thời gian chạy là không thể thay đổi.

Trang ấn phẩm của Levin trả về 404, DBLP cho thấy không có gì liên quan đến bao thanh toán và tìm kiếm "bao thanh toán lonid levin" trên Google Scholar không trả lại bất cứ điều gì tôi quan tâm. AFAIK sàng tổng quát là thuật toán nhanh nhất được biết đến bao thanh toán. Manuel Blum đang nói về cái gì? Bất cứ ai có thể liên kết tôi với một bài báo?

Câu trả lời:


11

Manuel Blum đang nói về việc áp dụng thuật toán tìm kiếm phổ quát của Levin cho vấn đề Integer Factorization. Ý tưởng của thuật toán tìm kiếm phổ Levin của cũng không kém phần áp dụng đối với bất kỳ vấn đề trong .NP

Dưới đây là một trích dẫn từ các bài giảng ghi chú được đưa ra bởi Blum về BẢO MẬT và CRYPTOGRAPHY:

SỐ LƯỢNG TỐI ƯU HÓA (YẾU TỐ) CỦA Leonid LEVIN. Đặt SPLIT biểu thị bất kỳ thuật toán nào tính toán INPUT: một số nguyên dương (tức là không phải số nguyên tố). OUTPUT: một yếu tố không cần thiết của n.

Định lý: Tồn tại thuật toán chia số "tối ưu", chúng tôi gọi là TỐI ƯU-SPLIT. Thuật toán này là TỐI ƯU theo nghĩa: với mỗi SPLIT thuật toán chia số có một hằng số C (khá lớn nhưng cố định) sao cho với mọi đầu vào số nguyên tổng hợp n, "thời gian chạy" của OPTIMAL-SPLIT trên đầu vào n là nhiều nhất là C lần thời gian chạy SPLIT trên đầu vào n.

Dưới đây là thuật toán bao thanh toán tối ưu của Levin :

ALGORITHM TỐI ƯU-SPLIT: BEGIN Liệt kê tất cả các thuật toán theo thứ tự kích thước, từ vựng trong mỗi kích thước. Chạy tất cả các thuật toán để tại bất kỳ thời điểm nào, t, thuật toán thứ i sẽ nhận được [1 / (2 ^ i)] phần thời gian để thực thi. Bất kỳ thuật toán nào dừng với một số nguyên m đầu ra trong phạm vi 1 <m <n, hãy kiểm tra xem m có chia n không (tức là nếu n mod m = 0). Nếu vậy, trả lại m. KẾT THÚC


Ai đó có thể giải thích tại sao phân số cần là 1 / (2 ^ i) nhưng không phải là một cái gì đó đơn giản hơn như 1 / i không?
netvope

1
@netvope: Tổng vô hạn của 1 / i phân kỳ. Bạn có thể làm điều đó với 1 / i ^ 2 nhưng 1/2 ^ i đơn giản hơn rất nhiều.
Antimon

3

NPcoNP

Cho một số chúng tôi muốn yếu tố N.

Là N nguyên tố? Nếu vậy, đầu ra 'PRIME' khác:

i=1...

P=1...i

Chạy chương trình P cho i bước với đầu vào N

L1M1N=LM(L,M)


4
Bạn không thể sử dụng một bài kiểm tra nguyên thủy đã biết vì nó không được biết là nhanh hơn bao thanh toán tối ưu. Ngoài ra, tôi không hiểu một điểm. Để chứng minh rằng điều này là tối ưu để bao thanh toán đến một yếu tố không đổi, tôi nghĩ rằng chúng ta phải chứng minh rằng phép nhân trong bước cuối cùng không phải là thuật ngữ chi phối trong độ phức tạp thời gian. Nếu tôi nhớ chính xác, thuật toán nhân nhanh nhất được biết đến trong cài đặt tiệm cận được dựa trên FFT và mất thời gian O (n log n log log n) cho số nguyên n bit. Có thể chứng minh rằng bao thanh toán tối ưu mất ít nhất là như thế này?
Tsuyoshi Ito

@Tsuyoshi: Tôi nghĩ rằng bạn đúng khi thuật toán này không tối ưu nếu các phép thử nhân / nguyên thủy đã biết khó hơn bao thanh toán. Tuy nhiên, nếu bạn đọc trích dẫn của Blum ở trên, anh ta chỉ nói rằng thuật toán của Levin là đa thức khi và chỉ khi phương án tối ưu là, giải quyết vấn đề này. Hai điều khác: (1) làm thế nào bạn có thể tránh sử dụng một bài kiểm tra nguyên thủy đã biết trong thuật toán này? (2) Tôi nghĩ thuật toán này không được xây dựng hoàn toàn đúng vì thời gian chạy không được phân vùng chính xác giữa các chương trình khác nhau; xem câu trả lời của Al-Turkistany cho công thức đúng.
Peter Shor

@Peter: Chà, trích dẫn của Blum nói rằng ông ấy [Levin] đã đưa ra một ALGORITHM THỰC SỰ tối ưu có thể chứng minh được, đến một hằng số nhân. Từ đó, chúng tôi thậm chí không biết liệu bao thanh toán có mất nhiều thời gian hơn hay không, tuyên bố thật khó tin
Tsuyoshi Ito

@Tsuyoshi: Tôi thấy, tôi đã đọc sai trích dẫn của Blum.
Peter Shor
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.