Đế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.