Làm cho người giải SAT cạnh tranh với các thuật toán chuyên ngành


11

Những trở ngại để làm cho người giải SAT cạnh tranh với các thuật toán đồ thị chuyên dụng là gì? Nói cách khác, có khả thi khi mong đợi các bộ giải SAT có thể thay thế vai trò của người thiết kế thuật toán - tức là có thể tự động nhận ra cấu trúc vấn đề và sau đó giải quyết nó nhanh như một thuật toán chuyên dụng?

Dưới đây là một số ví dụ tôi nghĩ là thách thức cho người giải SAT ngày nay:

  • Đếm các bộ độc lập có kích thước . Mã hóa "x là một tập hợp kích thước k" độc lập đưa ra một công thức lớn rất khó giải quyết. Một người giải SAT lý tưởng sẽ nhận ra rằng vấn đề này rất dễ dàng trên biểu đồ chiều rộng cây có giới hạn với việc thêm một biến "đếm" bổ sung cho các túi.k

  • Tìm cây Steiner tối thiểu. Một lần nữa, "cây Steiner" có một ràng buộc toàn cầu, tuy nhiên, một thuật toán chuyên dụng (như ở đây ) làm cho công việc dễ dàng hơn bằng cách thêm một biến phụ

  • Bất kỳ vấn đề mà giảm để khớp phẳng hoàn hảo.


Điều này đã không xảy ra? Đây là một mẹo phổ biến để giảm một vấn đề đối với SAT và sau đó chạy một bộ giải.
Suresh Venkat

Có, nhưng họ có cạnh tranh? Tôi đang tự hỏi liệu có bất kỳ bộ giải SAT nào có thể có một tập các ràng buộc đơn giản mô tả sơ đồ con Euler của đồ thị hai mặt không và thực hiện #SAT trong thời gian đa thức
Yaroslav Bulatov

Câu trả lời:


7

Có một bài báo hay giúp hình dung cấu trúc bên trong của các trường hợp SAT. Xem trực quan hóa các trường hợp SAT và chạy thuật toán DPLL của Carsten Sienz (Xuất hiện trong SAT 2004). Về cơ bản, nó vẽ một biểu đồ mà tác giả gọi là "biểu đồ tương tác biến" (theo một số quy tắc) để hình dung mối quan hệ giữa các mệnh đề thỏa mãn. Tác giả cho thấy điều này bằng một số lần chạy DPLL.

Yêu cầu chính là các kỹ thuật trực quan này có thể được sử dụng để phát hiện cấu trúc và thiết kế một thuật toán phù hợp cho nó. Tuy nhiên, vẫn chưa rõ làm thế nào chúng ta có thể phát hiện các cấu trúc hiệu quả như cấu trúc được trình bày trong bài báo. Người ta biết rằng các thuật toán SAT cho một vấn đề cụ thể hoạt động kém trong các vấn đề khác. Vì vậy, có "bữa ăn trưa miễn phí", mặc dù yêu cầu này không thể được tuyên bố chính thức theo như tôi biết.


Tôi nghĩ rằng định lý "không ăn trưa miễn phí" có liên quan là "không có bữa trưa miễn phí cho tìm kiếm" no-free-lunch.org . Về cơ bản, chúng tôi không thể đủ khả năng tìm kiếm trên tất cả các cấu trúc vấn đề có thể và phải thiên vị tìm kiếm của chúng tôi đối với các cấu trúc cụ thể. Tôi nghĩ rằng điều đó ổn vì các nhà thiết kế thuật toán của con người đã làm điều đó rồi
Yaroslav Bulatov
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.