Có một thuật toán đôi khi hiệu quả để giải quyết #SAT không?


24

Đặt là một công thức boolean bao gồm các toán tử AND, OR và NOT thông thường và một số biến. Tôi muốn đếm số lượng đáp ứng nhiệm vụ cho B . Đó là, tôi muốn tìm số lượng các giá trị khác nhau của các giá trị thật cho các biến của BB giả định giá trị thực. Ví dụ, công thức a b có ba bài tập thỏa mãn; ( Một b ) ( c ¬ b ) có bốn. Đây là vấn đề #SAT .BBBBab(ab)(c¬b)

Rõ ràng một giải pháp hiệu quả cho vấn đề này sẽ ngụ ý một giải pháp hiệu quả cho SAT, điều không thể xảy ra, và thực tế vấn đề này là # P-đầy đủ, và do đó có thể khó hơn SAT rất nhiều. Vì vậy, tôi không mong đợi một giải pháp hiệu quả được đảm bảo.

Nhưng điều nổi tiếng là có rất ít trường hợp SAT thực sự khó khăn. (Xem ví dụ Cheeseman 1991, "Trường hợp các vấn đề thực sự khó khăn" .) Tìm kiếm cắt tỉa thông thường, mặc dù theo cấp số nhân trong trường hợp xấu nhất, có thể giải quyết nhiều trường hợp một cách hiệu quả; phương pháp giải quyết, mặc dù theo cấp số nhân trong trường hợp xấu nhất, thậm chí còn hiệu quả hơn trong thực tế.

Câu hỏi của tôi là:

Có bất kỳ thuật toán nào được biết có thể nhanh chóng đếm số lượng bài tập thỏa mãn của một công thức boolean điển hình, ngay cả khi các thuật toán đó yêu cầu thời gian theo cấp số nhân trong ví dụ chung không? Có điều gì đáng chú ý tốt hơn so với việc liệt kê mọi nhiệm vụ có thể?


1
Tôi đã cố gắng thêm thẻ cho # p-đầy đủ, nhưng phần mềm Stack Exchange không giống như dấu #.
Đánh dấu Dominus

Tôi sẽ cẩn thận khi tuyên bố rằng "có rất ít trường hợp SAT thực sự khó khăn". Tôi tin rằng bài báo bạn liên kết thực sự nói về k -SAT ngẫu nhiên . Hơn nữa, hiện tượng chuyển pha chỉ áp dụng cho các trường hợp ngẫu nhiên. Có rất nhiều trường hợp thực hành thủ công, công nghiệp, v.v. k
Juho

Cảm ơn. Bạn có nghĩ rằng điều này có xu hướng làm cho câu hỏi của tôi ít rõ ràng hơn? Bạn có hiểu những gì tôi đang yêu cầu?
Đánh dấu Dominus

Nó là rõ ràng với tôi. Điều quan trọng duy nhất là phải nhớ những trường hợp nào thể hiện quá trình chuyển pha :)
Juho

Câu trả lời:


21

Đếm trong trường hợp chung

2

Các phương pháp đếm chính xác thường dựa trên tìm kiếm toàn diện theo kiểu DPLL hoặc một số loại tổng hợp kiến ​​thức. Các phương pháp gần đúng thường được phân loại là các phương pháp đưa ra ước tính nhanh mà không có bất kỳ đảm bảo và phương pháp nào cung cấp giới hạn dưới hoặc trên với bảo đảm chính xác. Ngoài ra còn có các phương pháp khác có thể không phù hợp với các danh mục, chẳng hạn như khám phá các cửa hậu hoặc các phương thức nhấn mạnh vào các thuộc tính cấu trúc nhất định để giữ các công thức (hoặc biểu đồ ràng buộc của chúng).

Có những triển khai thực tế ngoài kia. Một số bộ đếm mô hình chính xác là CDP, Relsat, Cachet, sharpSAT và c2d. Các loại kỹ thuật chính được sử dụng bởi các bộ giải chính xác là đếm từng phần, phân tích thành phần (của biểu đồ ràng buộc không thay đổi), bộ nhớ đệm công thức và thành phần và lý luận thông minh tại mỗi nút. Một phương pháp khác dựa trên quá trình biên dịch kiến ​​thức sẽ chuyển đổi công thức CNF đầu vào thành một dạng logic khác. Từ dạng này, số lượng mô hình có thể được suy ra một cách dễ dàng (thời gian đa thức theo kích thước của công thức mới được sản xuất). Ví dụ, người ta có thể chuyển đổi công thức thành sơ đồ quyết định nhị phân (BDD). Sau đó, người ta có thể đi qua BDD từ lá "1" trở lại gốc. Hoặc cho một ví dụ khác, c2d sử dụng một trình biên dịch biến các công thức CNF thành dạng bình thường phủ định có thể phân tách xác định (d-DNNF).

ϕϕ

Gogate và Dechter [3] sử dụng một kỹ thuật đếm mô hình được gọi là SampleMinisat. Nó dựa trên việc lấy mẫu từ không gian tìm kiếm không có backtrack của công thức boolean. Kỹ thuật này dựa trên ý tưởng lấy mẫu lại tầm quan trọng, sử dụng các bộ giải SAT dựa trên DPLL để xây dựng không gian tìm kiếm không có backtrack. Điều này có thể được thực hiện hoàn toàn hoặc lên đến gần đúng. Lấy mẫu cho các ước tính với đảm bảo cũng có thể. Xây dựng trên [2], Gomes et al. [4] cho thấy rằng sử dụng lấy mẫu với chiến lược ngẫu nhiên đã sửa đổi, người ta có thể nhận được các giới hạn thấp hơn có thể chứng minh được trên tổng số mô hình với đảm bảo tính chính xác xác suất cao.

Cũng có công việc dựa trên sự truyền bá niềm tin (BP). Xem Kroc et al. [5] và BPCount họ giới thiệu. Trong cùng một bài báo, các tác giả đưa ra một phương pháp thứ hai gọi là MiniCount, để cung cấp giới hạn trên về số lượng mô hình. Ngoài ra còn có một khung thống kê cho phép người ta tính các giới hạn trên theo các giả định thống kê nhất định.

Các thuật toán cho # 2-SAT và # 3-SAT

O(1.3247n)O(1.6894n)O(1.6423n)

Như bản chất của vấn đề, nếu bạn muốn giải quyết các trường hợp trong thực tế, rất nhiều phụ thuộc vào kích thước và cấu trúc của các thể hiện của bạn. Bạn càng biết nhiều, bạn càng có nhiều khả năng trong việc lựa chọn phương pháp phù hợp.


[1] Vilmus Dahllöf, Peter Jonsson và Magnus Wahlström. Đếm các bài tập thỏa mãn trong 2-SAT và 3-SAT. Trong Kỷ yếu của Hội nghị kết hợp và tính toán quốc tế thường niên lần thứ 8 (COCOON-2002), 535-543, 2002.

[2] W. Wei và B. Selman. Một cách tiếp cận mới để đếm mô hình. Trong Kỷ yếu SAT05: Hội nghị quốc tế lần thứ 8 về Lý thuyết và Ứng dụng của Kiểm tra mức độ thỏa mãn, tập 3569 của Ghi chú bài giảng trong Khoa học máy tính, 324-339, 2005.

[3] R. Gogate và R. Dechter. Đếm gần đúng bằng cách lấy mẫu Không gian tìm kiếm không có backtrack. Trong Kỷ yếu của Hội nghị quốc gia về trí tuệ nhân tạo lần thứ 22 của AAAI-07: 22, 203 203, Vancouver, 2007.

[4] CP Gomes, J. Hoffmann, A. Sabharwal và B. Selman. Từ lấy mẫu đến đếm mẫu. Trong Kỷ yếu của IJCAI-07: Hội nghị chung quốc tế về trí tuệ nhân tạo lần thứ 20, 2293 Vang2299, 2007.

[5] L. Kroc, A. Sabharwal và B. Selman. Tận dụng Tuyên truyền niềm tin, Tìm kiếm Backtrack và Thống kê để đếm mô hình. Trong CPAIOR-08: Hội nghị quốc tế lần thứ 5 về Tích hợp AI và OR Kỹ thuật trong lập trình ràng buộc, tập 5015 của Ghi chú bài giảng trong Khoa học máy tính, 127 Phản141, 2008.

[6] K.Kutzkov. Giới hạn trên mới cho vấn đề # 3-SAT. Thư xử lý thông tin 105 (1), 1-5, 2007.


8

Ngoài các bài báo được liệt kê bởi Juho, đây là một số bài viết khác mô tả công việc về chủ đề này, đặc biệt là về xấp xỉ số lượng giải pháp:

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.