Làm thế nào để sử dụng một bộ giải SAT cũ để khám phá một cái mới, như được thực hiện trong The Golden Ticket?


7

Trong cuốn sách Chiếc vé vàng của Lance Fortnow , ông đã đề cập rằng một khi bạn có thuật toán thời gian đa thức cho bài toán hoàn thành NP, bạn có thể sử dụng nó để tìm thuật toán nhanh hơn. Bạn có thể cho tôi biết làm thế nào được thực hiện? Và một khi điều đó được thực hiện, bạn có thể sử dụng thuật toán mới để khám phá một infinitum quảng cáo thậm chí còn nhanh hơn , cho đến một điểm cố định. Dưới đây là trích dẫn chính xác từ cuốn sách:

"Vì vậy, những gì bạn yêu cầu một vị thần sẽ chỉ cho bạn một điều ước?" cố vấn nói.

"Tôi không có ý kiến," Steve trả lời.

"Bạn yêu cầu một vị thần sẽ thực hiện tất cả các mong muốn của bạn."

Cái bóng đèn tục ngữ đã tắt trong đầu Steve. Anh ta biết rằng phải có một số thuật toán tốt hơn để giải quyết các vấn đề khó khăn ngoài kia ở đâu đó, nhưng anh ta không thể tự mình tìm ra nó. Nhưng anh ta có thần đèn, mã Tsinghua, có thể tìm kiếm số lượng khả năng theo cấp số nhân một cách nhanh chóng. Vì vậy, ông đã viết ra một chương trình sử dụng các thói quen của Tsinghua để tìm kiếm một thuật toán tốt hơn cho các vấn đề NP. Ông được phép sử dụng tài nguyên điện toán của Trung tâm Ứng dụng siêu máy tính quốc gia (NCSA), có trụ sở tại Đại học Illinois. Sau nhiều tuần xử lý, công việc của anh đã được đền đáp một chút, tìm ra một thuật toán mới cải thiện 5% so với mã Tsinghua - đủ tốt cho một bài nghiên cứu nhưng không đủ để tạo ra tác động thực sự.

Cố vấn của ông chỉ đơn giản nói: "Hãy thử lại bằng cách sử dụng mã mới."

Vì vậy, Steve đã sử dụng mã mới của mình để tìm ra một thuật toán thậm chí nhanh hơn cho các vấn đề NP. Một vài tuần sau đó, anh ấy đã cải thiện 20%.

Nhưng cố vấn của ông không ấn tượng. "Thử lại lần nữa."

Steve trả lời: "Tại sao tôi không thiết lập máy tính để tự động tiếp tục thử với mã mới mà nó tìm thấy?"

Người cố vấn đã đưa ra cái nhìn đó, cái nhìn nói với một sinh viên mà anh ta đã đạt được giác ngộ, hoặc ít nhất là đã nhận ra điều hiển nhiên.

Steve quay trở lại văn phòng của mình và bắt đầu quá trình viết mã phức tạp để tìm kiếm mã nhanh hơn, sau đó sử dụng mã nhanh hơn này để tìm mã nhanh hơn và tiếp tục quá trình này cho đến khi không thể cải thiện thêm.

Bây giờ tập trung vào SAT. MiniSAT là một trình giải SAT nhanh, mặc dù không đến mức đa thức thời gian.

Làm cách nào để sử dụng MiniSAT để khám phá một cách cơ học một bộ giải SAT mới?


@ZiruiWang - Tìm kiếm một thuật toán từ một bộ thuật toán ứng cử viên cố định thường là một vấn đề / chứ không phải là một vấn đề hoàn chỉnh NP. Tác giả có thể có nghĩa là (chúng có thể được giải quyết bằng các bộ giải SAT lồng nhau). Ngoài ra, tác giả có thể có nghĩa là để tối ưu hóa các tham số nhất định của các thuật toán hiện có. Σ2PTôi2
DCTLib

Tập hợp các thuật toán là vô hạn. Bạn sẽ chỉ có thể tìm thấy một thuật toán bằng cách sử dụng bộ giải SAT nếu bạn sửa không gian tìm kiếm. Không gian tìm kiếm sau đó sẽ là không gian của các thuật toán ứng cử viên. Các trình giải SAT lồng nhau để tìm các thuật toán mới được mô tả trong bài viết này: link.springer.com/article/10.1007%2Fs10009-012-0249-7
DCTLib

"Tìm kiếm một thuật toán" về cơ bản là tổng hợp. Đó là trong Sigma_2, vì chúng tôi muốn kiểm tra (1) nếu có tồn tại một triển khai sao cho (2) cho tất cả các đầu vào, việc triển khai hoạt động chính xác. Phần sau (2) về cơ bản là một vấn đề đồng NP. Bạn có thể gọi nó được lồng vào nhau như bất cứ khi nào một người giải SAT tìm thấy giải pháp, thì người giải SAT khác được sử dụng để kiểm tra nó. Khi đây không phải là trường hợp, các mệnh đề được thêm vào đầu tiên. Do đó, người giải SAT đầu tiên lặp lại công việc của mình cho đến khi lần thứ hai ổn với giải pháp. Vì vậy, một người giải SAT được gọi trong một thủ tục SAT.
DCTLib

1
@DCTLib Giả định là P = NP, do đó PH sụp đổ và mọi thứ đơn giản hóa thành P.
Zirui Wang

@DCTLib, rất nhiều ý kiến ​​tuyệt vời đó. Bạn muốn viết một câu trả lời đầy đủ?
DW

Câu trả lời:


7

Trên thực tế, có lẽ bạn không thể sử dụng bộ giải SAT để tìm một bộ giải SAT khác, trừ khi có điều gì đó đáng ngạc nhiên xảy ra.

Nếu P = NP, thì bạn có thể. Nếu P = NP, thì hệ thống phân cấp đa thức sụp đổ (nghĩa là P = PH), do đó, có một thuật toán thời gian đa thức cho mọi vấn đề trong PH . Vấn đề hỏi liệu có một thuật toán giải SAT nhanh hơn hay không thực chất là mộtΣ2vấn đề, là một phần của hệ thống phân cấp đa thức; nếu hệ thống phân cấp đa thức sụp đổ, sẽ có một thuật toán thời gian đa thức cho mọi vấn đề trong PH và do đó cho mọi vấn đề trongΣ2. Do đó, bạn có thể trong thời gian đa thức tìm kiếm một bộ giải SAT tốt hơn, nếu P = NP.

Nhưng hầu hết các nhà nghiên cứu đều kỳ vọng rằng P không bằng NP, vì vậy tuyên bố này rất có thể là tranh luận và không có khả năng hữu ích trong thực tế.

Nếu P không bằng NP, thì lý do này không hoạt động. Trên thực tế, nhiều nhà nghiên cứu mong đợi rằngΣ2 thậm chí còn khó hơn NP (có vấn đề trong Σ2khó hơn bất kỳ vấn đề nào trong NP), vì vậy sẽ rất ngạc nhiên nếu có một cách giảm đơn giản để diễn đạt vấn đề "tìm cho tôi một người giải SAT nhanh hơn" như một ví dụ của SAT. Cụ thể, người giải SAT có thể giải SAT, hoặc bất kỳ vấn đề nào khác trong NP - nhưng trong mọi trường hợp, chỉ có vấn đề trong NP. Nếu (như chúng tôi nghi ngờ)Σ2 khó hơn NP, sau đó người giải SAT không thể giải quyết vấn đề trong Σ2.

Tất nhiên, chúng tôi không thực sự biết. Luôn luôn có thể là sự khôn ngoan thông thường là sai và ngày mai chúng ta phát hiện ra rằng P thực sự bằng NP. Đó sẽ là một bất ngờ lớn, nhưng chúng ta không thể loại trừ hoàn toàn.

Chiếc vé vàng đang cố gắng cung cấp cho sự hiểu biết sâu sắc hơn về lý do tại sao các nhà lý thuyết phức tạp coi vấn đề P vs NP rất quan trọng và cơ bản. Một phần trong đó liên quan đến việc khám phá các thế giới phản tác dụng và các giả định phản tác dụng mà chúng ta nghi ngờ có lẽ là sai, để xem hậu quả của chúng sẽ là gì.


Hoặc, để giải thích nó theo một cách khác:

Vấn đề là việc tìm một người giải SAT tốt hơn là một loại tuyên bố. Tuyên bố có dạngMộtx.P(Một,x), Ở đâu P(Một,x) là tuyên bố rằng Một là nhanh chóng và chính xác giải quyết trường hợp SAT x. Những loại báo cáo đó không thể được giải quyết bằng một bộ giải SAT. Người giải SAT có thể giải quyết các vấn đề về hình thứcx.Q(x). Tuy nhiên, báo cáo khó hơn các câu lệnh. Đây là sự khác biệt giữaΣ2 và NP.


Tại sao người giải SAT không thể giải Σ2tuyên bố? Nó vẫn còn theo thời gian. Khó khăn nằm ở việc mã hóa.
Zirui Wang

@ZiruiWang, tôi đã chỉnh sửa đoạn thứ tư trong câu trả lời của mình để giải thích tại sao rõ ràng hơn. Người giải SAT không thể giải quyết tất cả các vấn đề theo thời gian theo cấp số nhân (trừ khi NP = EXPTIME, mà chúng tôi nghi ngờ không phải là trường hợp này).
DW

1
@ZiruiWang Bạn có thể mã hóa nhiều vấn đề như SAT, nhưng chúng có thể không phải là đa thức về chiều dài. SAT đánh các trường hợp khó cho đầu vào đa thức, do đó, chạy nó trên đầu vào có kích thước theo cấp số nhân có thể sẽ không hoạt động.
jmite
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.